From b81e208a7a8eb57be11193298982295e9f636aca Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Tue, 8 May 2018 14:22:14 -0500 Subject: [PATCH 001/864] fix for invalid login --- src/commands/configure.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/commands/configure.js b/src/commands/configure.js index b6344d87..150b563e 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -80,9 +80,13 @@ module.exports.ConfigureCommand = class { const auth = new Auth(cortexUrl); try { const token = yield auth.login(account, username, password); - debug('token: %s', token); - cmd.saveConfig(config, profileName, cortexUrl, account, username, token); - console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); + if (token.status === 401) { + console.error(chalk.red(`LOGIN FAILED: ${token.message}`)); + } else { + debug('token: %s', token); + cmd.saveConfig(config, profileName, cortexUrl, account, username, token); + console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); + } } catch (e) { console.error(chalk.red(`LOGIN FAILED: ${e.message}`)); From 855c55fd756b5cc1a63736ccc824754196984868 Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Tue, 8 May 2018 14:22:23 -0500 Subject: [PATCH 002/864] 0.6.24 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 94a9bf0b..e7aa9422 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.6.23", + "version": "0.6.24", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 15640733d9acfcdd4b4494d09bce474349e9a0e7 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Mon, 14 May 2018 16:31:27 -0500 Subject: [PATCH 003/864] bumped `generator-cortex` version to `0.3.10` (#78) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e7aa9422..8097d23e 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.9", + "@c12e/generator-cortex": "0.3.10", "chalk": "2.3.0", "cli-table": "0.3.1", "co": "4.6.0", From 3f626db8024a7734c36ec38a2a874cbef99bf35c Mon Sep 17 00:00:00 2001 From: clee Date: Mon, 14 May 2018 16:32:19 -0500 Subject: [PATCH 004/864] bump version to `0.6.25` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8097d23e..a5c33244 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.6.24", + "version": "0.6.25", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 740474a1fddd87241118b357e5ded43b2910f474 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Thu, 17 May 2018 13:52:19 -0500 Subject: [PATCH 005/864] Add environmentName option to list snapshots (#80) --- bin/cortex-agents.js | 1 + src/client/agents.js | 7 ++++--- src/commands/agents.js | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 3591a1a3..2a92400e 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -132,6 +132,7 @@ program .description('List agent snapshots') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .action((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); diff --git a/src/client/agents.js b/src/client/agents.js index 09a54ad0..d59544d4 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -61,9 +61,10 @@ module.exports = class Agents { }); } - listAgentSnapshots(token, agentName) { - const endpoint = `${this.endpoint}/snapshots/${agentName}`; - debug('listAgentSnapshots(%s) => %s', agentName, endpoint); + listAgentSnapshots(token, agentName, environmentName) { + let endpoint = `${this.endpoint}/snapshots/${agentName}`; + debug('listAgentSnapshots(%s, %s) => %s', agentName, environmentName, endpoint); + if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; return request .get(endpoint) .set('Authorization', `Bearer ${token}`) diff --git a/src/commands/agents.js b/src/commands/agents.js index 7b1ce146..d62431e0 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -239,10 +239,11 @@ module.exports.ListAgentSnapshotsCommand = class { execute(agentName, options) { const profile = loadProfile(options.profile); + const envName = options.environmentName; debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listAgentSnapshots(profile.token, agentName).then((response) => { + agents.listAgentSnapshots(profile.token, agentName, envName).then((response) => { if (response.success) { let result = filterObject(response.result.snapshots, options); if (options.json) { @@ -253,6 +254,7 @@ module.exports.ListAgentSnapshotsCommand = class { { column: 'Snapshot ID', field: 'id', width: 30 }, { column: 'Title', field: 'title', width: 30 }, { column: 'Description', field: 'description', width: 50 }, + { column: 'Environment', field: 'environmentName', width: 30 }, { column: 'Created On', field: 'createdAt', width: 26 } ]; printTable(tableSpec, result); From d26903bc425d17570e2c46079d798c390e5e84a6 Mon Sep 17 00:00:00 2001 From: Victor Adan Date: Tue, 29 May 2018 17:03:21 -0500 Subject: [PATCH 006/864] CCF-5792-daemon-lb Daemons no longer take a list of ports, but rather just one port. --- bin/cortex-actions.js | 4 ++-- package.json | 2 +- src/client/actions.js | 4 ++-- src/commands/actions.js | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 9f1d3534..0f5ad4e2 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -118,7 +118,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--actionType [actionType]', 'Type of action') - .option('--ports [ports]', 'Docker ports') //'["9091/tcp"]' + .option('--port [port]', 'Docker port') //'9091' .option('--environment [environment]', 'Environment') .option('--cmd [cmd]', 'Command to be executed') //'["--daemon"]' .action((actionName, options) => { @@ -143,4 +143,4 @@ process.env.DOC && require('../src/commands/utils').exportDoc(program); program.parse(process.argv); if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); \ No newline at end of file + ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/package.json b/package.json index a5c33244..7fba6fbf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.6.25", + "version": "0.7.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/actions.js b/src/client/actions.js index 0bdc9c09..7b375e81 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -52,7 +52,7 @@ module.exports = class Actions { }); } - deployAction(token, actionName, docker, kind, code, memory, timeout, actionType, command, ports, environment) { + deployAction(token, actionName, docker, kind, code, memory, timeout, actionType, command, port, environment) { let endpoint = `${this.endpointV3}`; if (actionType) { endpoint = `${endpoint}?actionType=${actionType}`; @@ -71,7 +71,7 @@ module.exports = class Actions { if (timeout) req.field('timeout', timeout); if (code) req.attach('code', code); if (command) req.field('command', command); - if (ports) req.field('ports', ports); + if (port) req.field('port', port); if (environment) req.field('environment', environment); return req.then((res) => { diff --git a/src/commands/actions.js b/src/commands/actions.js index f365847e..547adf90 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -106,11 +106,11 @@ module.exports.DeployActionCommand = class { const timeout = parseInt(options.timeout); const actionType = options.actionType; const cmd = options.cmd; - const ports = options.ports; + const port = options.port; const environment = options.environment; const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, timeout, actionType, cmd, ports, environment) + actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, timeout, actionType, cmd, port, environment) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); @@ -191,4 +191,4 @@ module.exports.DeleteActionCommand = class { printError(`Failed to delete action: ${err.status} ${err.message}`, options); }); } -}; \ No newline at end of file +}; From ab10e53c949db981ca4cbee3c4e5f020ae1c77b0 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 31 May 2018 17:51:01 -0500 Subject: [PATCH 007/864] CCF-5853 cli should return message on bad password and not corrupt config file --- src/client/auth.js | 2 +- src/commands/configure.js | 20 +++++++++++--------- src/config.js | 7 ++++--- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/client/auth.js b/src/client/auth.js index b3de4ea0..3cb87340 100644 --- a/src/client/auth.js +++ b/src/client/auth.js @@ -38,7 +38,7 @@ module.exports = class Auth { .then((response) => { if (response.ok) { debug('login response: %o', response.body); - return response.body.jwt; + return response.body; } else { throw new Error('Authentication failed'); diff --git a/src/commands/configure.js b/src/commands/configure.js index 150b563e..4c77dbed 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -16,10 +16,11 @@ const debug = require('debug')('cortex:cli'); const co = require('co'); +const _ = require('lodash'); const prompt = require('co-prompt'); const chalk = require('chalk'); const Auth = require('../client/auth'); -const { readConfig, writeConfig, defaultConfig } = require('../config'); +const { readConfig, defaultConfig } = require('../config'); const { printSuccess, printError } = require('./utils'); const DEFAULT_CORTEX_URL = 'https://api.cortex.insights.ai'; @@ -32,10 +33,10 @@ module.exports.ConfigureCommand = class { execute(options) { const config = readConfig(); - const profileName = options.profile || (config && config.currentProfile) || 'default'; - const profileUrl = this.program.url || (config && config.url) || undefined; - const profileAccount = this.program.account || (config && config.account) || undefined; - const profileUsername = this.program.username || (config && config.username) || undefined; + const profileName = options.profile || _.get(config,'currentProfile','default'); + const profileUrl = this.program.url || _.get(config,'url'); + const profileAccount = this.program.account || _.get(config ,'account'); + const profileUsername = this.program.username || _.get(config,'username'); const profilePassword = this.program.password || undefined; debug('configuring profile: %s', profileName); @@ -79,11 +80,12 @@ module.exports.ConfigureCommand = class { const auth = new Auth(cortexUrl); try { - const token = yield auth.login(account, username, password); - if (token.status === 401) { - console.error(chalk.red(`LOGIN FAILED: ${token.message}`)); + const authResp = yield auth.login(account, username, password); + if (! _.has(authResp,'jwt') ) { + console.error(chalk.red(`LOGIN FAILED: ${authResp.message}`)); } else { - debug('token: %s', token); + const token = authResp.jwt; + debug('token: %s', authResp); cmd.saveConfig(config, profileName, cortexUrl, account, username, token); console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); } diff --git a/src/config.js b/src/config.js index 8a854eaa..e445975e 100644 --- a/src/config.js +++ b/src/config.js @@ -69,13 +69,12 @@ class Profile { } validate() { - const {error, value} = Joi.validate(this, ProfileSchema); + const {error, value} = Joi.validate(this, ProfileSchema,{abortEarly: false}); if (error) { throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. Please run "cortex configure".`); } return this; } - toJSON() { return {url: this.url, username: this.username, account: this.account, token: this.token}; } @@ -109,7 +108,9 @@ class Config { } setProfile(name, {url, account, tenantId, username, token}) { - this.profiles[name] = new Profile(name, {url, username, account, tenantId, token}); + const profile = new Profile(name, {url, username, account, tenantId, token}); + profile.validate(); // do not set/save invalid profiles .. + this.profiles[name] = profile } toJSON() { From 181eb9694af4150f2fc2b8b04a8ff0616aeb9824 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 31 May 2018 17:51:35 -0500 Subject: [PATCH 008/864] 0.7.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7fba6fbf..534a1949 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.0", + "version": "0.7.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From a303f898046b50fdf55c84a70e0c19c98cc4bfa5 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 31 May 2018 14:15:40 -0500 Subject: [PATCH 009/864] Make instance definition optional for cortex agents create-instance --- bin/cortex-agents.js | 4 +++- src/commands/agents.js | 15 +++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 2a92400e..30a892fb 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -181,10 +181,12 @@ program //Create agent instances program - .command('create-instance ') + .command('create-instance [instanceDefinition]') .description('Create agent instance') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--snapshotId [snapshotId]', 'The name of the agent to snapshot') + .action((instanceDefinition, options) => { try { new CreateAgentInstanceCommand(program).execute(instanceDefinition, options); diff --git a/src/commands/agents.js b/src/commands/agents.js index d62431e0..92feb661 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); -const _ = require('lodash/object'); +const _ = require('lodash'); const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -317,10 +317,17 @@ module.exports.CreateAgentInstanceCommand = class { execute(instanceDefinition, options) { const profile = loadProfile(options.profile); debug('%s.createAgentInstance', profile.name); - const agents = new Agents(profile.url); - const instanceDefStr = fs.readFileSync(instanceDefinition); - const instance = parseObject(instanceDefStr, options); + let instance; + if (instanceDefinition) { + const instanceDefStr = fs.readFileSync(instanceDefinition); + instance = parseObject(instanceDefStr, options); + } else if ( !_.isEmpty(_.get(options,'snapshotId','')) ) { + instance = { snapshotId: options.snapshotId, environmentName: options.environmentName || 'cortex/default'} + } else { + printError(`Either --snapshotId <..> or a instance definition file must be provided`, options); + return; + } agents.createAgentInstance(profile.token, instance).then((response) => { if (response.success) { let result = filterObject(response.result, options); From 12cda41702394a1e390153424a8c49c5c5a401f6 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 1 Jun 2018 16:30:26 -0500 Subject: [PATCH 010/864] Add environment to list agent output (#84) --- src/commands/agents.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/agents.js b/src/commands/agents.js index 92feb661..dd89fb24 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -76,6 +76,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { { column: 'Name', field: 'name', width: 50 }, { column: 'Title', field: 'title', width: 25 }, { column: 'Description', field: 'description', width: 50 }, + { column: 'Environment', field: 'environmentId', width: 25 }, { column: 'Created On', field: 'createdAt', width: 26 } ]; From 312dd2d7f57b2fe880a777a1601e7d067c088076 Mon Sep 17 00:00:00 2001 From: Agrim Asthana Date: Fri, 1 Jun 2018 16:31:00 -0500 Subject: [PATCH 011/864] Handling case where driver file path is not provided. (#79) * Handling case where driver file path is not provided. So default should be ignored. * Bumping Version of CLI. --- package.json | 1 + src/commands/connections.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 534a1949..3663afbf 100644 --- a/package.json +++ b/package.json @@ -45,3 +45,4 @@ "mocha": "5.0.0" } } + diff --git a/src/commands/connections.js b/src/commands/connections.js index ca18212e..d9459e2b 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -97,7 +97,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); const contentKey = this.getParamsValue(connObj, 'managed_content_key'); - if (jdbcJarFilePath) { + if (jdbcJarFilePath && !jdbcJarFilePath.includes("--Insert jar file path--")) { const content = new Content(profile.url); const connection = new Connections(profile.url); From 6e8f3246c1c385c0d1febdf59bcd58189b70acf3 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Wed, 6 Jun 2018 12:10:13 -0500 Subject: [PATCH 012/864] Cleanup handling when url isnt right on config --- src/commands/configure.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/commands/configure.js b/src/commands/configure.js index 4c77dbed..5bb33bd9 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -56,6 +56,7 @@ module.exports.ConfigureCommand = class { const password = (profilePassword) ? profilePassword : yield prompt.password('Password: '); cortexUrl = cortexUrl || defaultCortexUrl; + cortexUrl = cortexUrl.replace(/\/$/, ''); // strip any trailing / account = account || defaultAccount; username = username || defaultUsername; @@ -82,7 +83,7 @@ module.exports.ConfigureCommand = class { try { const authResp = yield auth.login(account, username, password); if (! _.has(authResp,'jwt') ) { - console.error(chalk.red(`LOGIN FAILED: ${authResp.message}`)); + console.error(chalk.red(`LOGIN FAILED: ${authResp.message || 'No token returned'}`)); } else { const token = authResp.jwt; debug('token: %s', authResp); From 936a8c2a18f60be250298f883da97f9d4079d400 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Wed, 20 Jun 2018 13:45:26 -0500 Subject: [PATCH 013/864] Add describe-snapshot, clean up error handling --- bin/cortex-agents.js | 17 +++++++++++++++++ src/client/agents.js | 19 ++++++++++++++++++- src/commands/agents.js | 28 +++++++++++++++++++++++++++- src/commands/utils.js | 15 ++++++++++----- 4 files changed, 72 insertions(+), 7 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 30a892fb..09877029 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -32,6 +32,7 @@ const { StopAgentInstanceCommand, ListTriggersCommand, ListAgentSnapshotsCommand, + DescribeAgentSnapshotCommand, CreateAgentSnapshotCommand } = require('../src/commands/agents'); @@ -143,6 +144,22 @@ program } }); +program + .command('describe-snapshot ') + .description('Describe agent snapshot') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--environmentName [environmentName]', 'The environment to list or \'all\'') + .action((snapshotId, options) => { + try { + new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + //Create Agent Snapshot program .command('create-snapshot [snapshotDefinition]') diff --git a/src/client/agents.js b/src/client/agents.js index d59544d4..6fb27d60 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -79,8 +79,25 @@ module.exports = class Agents { }); } + describeAgentSnapshot(token, snapshotId, environmentName) { + let endpoint = `${this.endpoint}/snapshots/${snapshotId}?deps=true`; + debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, environmentName, endpoint); + if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + createAgentSnapshot(token, snapshot) { - const agentName = snapshot.agentName; const endpoint = `${this.endpoint}/snapshots`; debug('getAgentSnapshot=> %s', endpoint); return request diff --git a/src/commands/agents.js b/src/commands/agents.js index dd89fb24..88cb1f1b 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -254,7 +254,7 @@ module.exports.ListAgentSnapshotsCommand = class { const tableSpec = [ { column: 'Snapshot ID', field: 'id', width: 30 }, { column: 'Title', field: 'title', width: 30 }, - { column: 'Description', field: 'description', width: 50 }, + { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Environment', field: 'environmentName', width: 30 }, { column: 'Created On', field: 'createdAt', width: 26 } ]; @@ -272,6 +272,32 @@ module.exports.ListAgentSnapshotsCommand = class { } }; + +module.exports.DescribeAgentSnapshotCommand = class { + constructor(program) { + this.program = program; + } + + execute(snapshotId, options) { + const profile = loadProfile(options.profile); + const envName = options.environmentName; + debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); + + const agents = new Agents(profile.url); + agents.describeAgentSnapshot(profile.token, snapshotId, envName).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`, options); + } + }).catch((err) => { + printError(`Failed to describe agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.CreateAgentSnapshotCommand = class { constructor(program) { diff --git a/src/commands/utils.js b/src/commands/utils.js index 42829b04..12bd1de7 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -21,12 +21,17 @@ const debug = require('debug')('cortex:cli'); const Table = require('cli-table'); module.exports.constructError = function(error) { - const errorText = JSON.parse(error.response.text); - if (errorText.message) { - return {success: false, message: errorText.message, status: error.status}; - } else { - return {success: false, message: JSON.stringify(errorText), status: error.status}; + // fallback to text in message or standard error message + let errorText = error.response.text || error.message; + + // if JSON was returned, look for either a message or error in it + try { + const resp = JSON.parse(error.response.text); + if (resp.message || resp.error) errorText = resp.message || resp.error; + } catch(e) { + // Guess it wasn't JSON! } + return {success: false, message: errorText, status: error.status}; }; module.exports.printSuccess = function(message, options) { From 96bc655ad74e1c1647dbb3d0be3d1665673c1266 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Wed, 20 Jun 2018 17:38:15 -0500 Subject: [PATCH 014/864] Bump to v0.7.2 --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 3663afbf..4b17d308 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.1", + "version": "0.7.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -45,4 +45,3 @@ "mocha": "5.0.0" } } - From 42671873742b380108bfccb377fe4a16c10ca775 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Thu, 21 Jun 2018 08:49:40 -0500 Subject: [PATCH 015/864] Further error handling tweak --- src/commands/utils.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 12bd1de7..33550560 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -22,16 +22,17 @@ const Table = require('cli-table'); module.exports.constructError = function(error) { // fallback to text in message or standard error message - let errorText = error.response.text || error.message; + let errResp = error.response; + let errorText = (errResp && errResp.text) || error.message; // if JSON was returned, look for either a message or error in it try { - const resp = JSON.parse(error.response.text); + const resp = errResp ? JSON.parse(errResp.text) : {}; if (resp.message || resp.error) errorText = resp.message || resp.error; } catch(e) { // Guess it wasn't JSON! } - return {success: false, message: errorText, status: error.status}; + return {success: false, message: errorText, status: error.status || ''}; }; module.exports.printSuccess = function(message, options) { From 8fe90b7cd279224b7c14b04bba5d6424e4f96355 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Thu, 21 Jun 2018 14:07:23 -0500 Subject: [PATCH 016/864] Add 'environments list-instances' and details to 'agents list-instances' --- bin/cortex-agents.js | 3 +++ bin/cortex-environments.js | 23 ++++++++++++++++- src/client/agents.js | 10 +++++--- src/client/environments.js | 17 +++++++++++++ src/commands/agents.js | 24 +++++++++++++++--- src/commands/environments.js | 48 ++++++++++++++++++++++++++++++++++-- 6 files changed, 115 insertions(+), 10 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 09877029..277d720b 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -186,6 +186,9 @@ program .description('List agent instances ') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--environmentName [environmentName]', 'The environment to list or \'all\'') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action((agentName, options) => { try { new ListAgentInstancesCommand(program).execute(agentName, options); diff --git a/bin/cortex-environments.js b/bin/cortex-environments.js index 40d504f7..5f34e29a 100755 --- a/bin/cortex-environments.js +++ b/bin/cortex-environments.js @@ -19,7 +19,8 @@ const helper = require('./utils.js'); const program = require('commander'); const chalk = require('chalk'); -const { ListEnvironments, SaveEnvironmentCommand, PromoteEnvironmentCommand, DescribeEnvironmentCommand } = require('../src/commands/environments'); +const { ListEnvironments, SaveEnvironmentCommand, PromoteEnvironmentCommand, + DescribeEnvironmentCommand, ListInstancesCommand } = require('../src/commands/environments'); let processed = false; program.description('Work with Cortex Environments'); @@ -96,6 +97,26 @@ program } }); + + +// List Instances in Environment +program + .command('list-instances [environmentName]') + .description('List instances in environment') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action((environmentName, options) => { + try { + new ListInstancesCommand(program).execute(environmentName || 'cortex/default', options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + process.env.DOC && require('../src/commands/utils').exportDoc(program); program.parse(process.argv); if (!processed) diff --git a/src/client/agents.js b/src/client/agents.js index 6fb27d60..b4864cfb 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -115,15 +115,17 @@ module.exports = class Agents { }); } - listAgentInstances(token, agentName) { - const endpoint = `${this.endpoint}/instances/${agentName}`; - debug('getAgentInstances(%s) => %s', agentName, endpoint); + listAgentInstances(token, agentName, environmentName) { + let endpoint = `${this.endpoint}/instances/${agentName}`; + debug('getAgentInstances(%s, %s) => %s', agentName, environmentName, endpoint); + if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; + return request .get(endpoint) .set('Authorization', `Bearer ${token}`) .then((res) => { if (res.ok) { - return {success: true, result: res.body}; + return {success: true, instances: res.body.instances}; } return {success: false, status: res.status, message: res.body}; }) diff --git a/src/client/environments.js b/src/client/environments.js index 7b12e410..dc6fce26 100644 --- a/src/client/environments.js +++ b/src/client/environments.js @@ -92,5 +92,22 @@ module.exports = class Environments { return constructError(err); }); } + + listInstances(token, environmentName) { + const endpoint = `${this.endpoint}/${environmentName}/instances`; + debug('listInstances(%s) => %s', environmentName, this.endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } }; diff --git a/src/commands/agents.js b/src/commands/agents.js index 88cb1f1b..c34ff82a 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -215,13 +215,31 @@ module.exports.ListAgentInstancesCommand = class { execute(agentName, options) { const profile = loadProfile(options.profile); + const envName = options.environmentName; debug('%s.listAgentInstances(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listAgentInstances(profile.token, agentName).then((response) => { + agents.listAgentInstances(profile.token, agentName, envName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + let result = response.instances; + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + { column: 'Instance Id', field: 'id', width: 26 }, + { column: 'Status', field: 'status', width: 15 }, + { column: 'Snapshot Id', field: 'snapshotId', width: 26 }, + { column: 'Agent Version', field: 'agentVersion', width: 15 }, + { column: 'Environment', field: 'environmentName', width: 26 }, + { column: 'Created At', field: 'createdAt', width: 26 }, + ]; + + printTable(tableSpec, result); + } } else { printError(`Failed to list agent instances ${agentName}: ${response.message}`, options); diff --git a/src/commands/environments.js b/src/commands/environments.js index 9324ba29..06802872 100644 --- a/src/commands/environments.js +++ b/src/commands/environments.js @@ -32,8 +32,8 @@ module.exports.ListEnvironments = class ListEnvironments { const profile = loadProfile(options.profile); debug('%s.listEnvironment()', profile.name); - const conns = new Environments(profile.url); - conns.listEnvironments(profile.token).then((response) => { + const envs = new Environments(profile.url); + envs.listEnvironments(profile.token).then((response) => { if (response.success) { let result = _.get(response,'result.environments',[]); if (options.query) @@ -119,6 +119,50 @@ module.exports.DescribeEnvironmentCommand = class DescribeEnvironmentCommand { }); } }; + +module.exports.ListInstancesCommand = class ListInstancesCommand { + + constructor(program) { + this.program = program; + } + + execute(environmentName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeListInstances(%s)', profile.name, environmentName); + const environment = new Environments(profile.url); + + environment.listInstances(profile.token, environmentName).then((response) => { + if (response.success) { + let result = _.get(response,'result.instances',[]); + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + let tableSpec = [ + { column: 'Instance Id', field: 'id', width: 26 }, + { column: 'Status', field: 'status', width: 15 }, + { column: 'Snapshot Id', field: 'snapshotId', width: 26 }, + { column: 'Agent Name', field: 'agentName', width: 50 }, + { column: 'Agent Version', field: 'agentVersion', width: 15 }, + { column: 'Environment', field: 'environmentName', width: 26 }, + { column: 'Created At', field: 'createdAt', width: 26 }, + ]; + printTable(tableSpec, result); + } + } + else { + printError(`Failed to list instances in environment ${environmentName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list instances in environment ${environmentName}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.PromoteEnvironmentCommand = class PromoteEnvironmentCommand { constructor(program) { From 271d81af8e4c426bdeb2ec6bd6081a19cb39d402 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Thu, 21 Jun 2018 17:18:15 -0500 Subject: [PATCH 017/864] Bump version to 0.7.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4b17d308..2e915fdd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.2", + "version": "0.7.3", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From c25cf3f1025adcdc18d4b70a91eb68ddd51472a3 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Mon, 25 Jun 2018 09:07:41 -0500 Subject: [PATCH 018/864] Add --json and --query options for list-snapshots --- bin/cortex-agents.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 277d720b..7e319a00 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -134,6 +134,8 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); From 817637cd80161dc092e32d4571e0e54bd2e829b6 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 26 Jun 2018 17:42:11 -0500 Subject: [PATCH 019/864] Made snapshot ID column wider to support uuid/v4 --- src/commands/agents.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index c34ff82a..2735fb76 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -232,7 +232,7 @@ module.exports.ListAgentInstancesCommand = class { const tableSpec = [ { column: 'Instance Id', field: 'id', width: 26 }, { column: 'Status', field: 'status', width: 15 }, - { column: 'Snapshot Id', field: 'snapshotId', width: 26 }, + { column: 'Snapshot Id', field: 'snapshotId', width: 40 }, { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Environment', field: 'environmentName', width: 26 }, { column: 'Created At', field: 'createdAt', width: 26 }, @@ -270,7 +270,7 @@ module.exports.ListAgentSnapshotsCommand = class { } else { const tableSpec = [ - { column: 'Snapshot ID', field: 'id', width: 30 }, + { column: 'Snapshot ID', field: 'id', width: 40 }, { column: 'Title', field: 'title', width: 30 }, { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Environment', field: 'environmentName', width: 30 }, @@ -410,7 +410,7 @@ module.exports.GetAgentInstanceCommand = class { { column: 'Instance Id', field: '_id', width: 26 }, { column: 'Status', field: 'status', width: 15 }, { column: 'Tenant Id', field: 'tenantId', width: 20 }, - { column: 'Snapshot Id', field: 'snapshotId', width: 26 }, + { column: 'Snapshot Id', field: 'snapshotId', width: 40 }, { column: 'Environment Id', field: 'environmentId', width: 26 }, { column: 'Created At', field: 'createdAt', width: 26 }, { column: 'Updated At', field: 'updatedAt', width: 26 } From 4ab8e6c091d624aabba509e553896fe039bbf902 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 26 Jun 2018 17:42:41 -0500 Subject: [PATCH 020/864] 0.7.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2e915fdd..291ed4fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.3", + "version": "0.7.4", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 05a2c40fa1cb195f68004256164a757c33798700 Mon Sep 17 00:00:00 2001 From: rdeleon-cs <31740128+rdeleon-cs@users.noreply.github.com> Date: Wed, 27 Jun 2018 14:15:07 -0500 Subject: [PATCH 021/864] V0 7 3 (#90) * Add describe-snapshot, clean up error handling * Bump to v0.7.2 * Further error handling tweak * Add 'environments list-instances' and details to 'agents list-instances' * Bump version to 0.7.3 --- bin/cortex-agents.js | 20 ++++++++++++++ bin/cortex-environments.js | 23 +++++++++++++++- package.json | 3 +-- src/client/agents.js | 29 ++++++++++++++++---- src/client/environments.js | 17 ++++++++++++ src/commands/agents.js | 52 +++++++++++++++++++++++++++++++++--- src/commands/environments.js | 48 +++++++++++++++++++++++++++++++-- src/commands/utils.js | 16 +++++++---- 8 files changed, 189 insertions(+), 19 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 30a892fb..277d720b 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -32,6 +32,7 @@ const { StopAgentInstanceCommand, ListTriggersCommand, ListAgentSnapshotsCommand, + DescribeAgentSnapshotCommand, CreateAgentSnapshotCommand } = require('../src/commands/agents'); @@ -143,6 +144,22 @@ program } }); +program + .command('describe-snapshot ') + .description('Describe agent snapshot') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--environmentName [environmentName]', 'The environment to list or \'all\'') + .action((snapshotId, options) => { + try { + new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + //Create Agent Snapshot program .command('create-snapshot [snapshotDefinition]') @@ -169,6 +186,9 @@ program .description('List agent instances ') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--environmentName [environmentName]', 'The environment to list or \'all\'') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action((agentName, options) => { try { new ListAgentInstancesCommand(program).execute(agentName, options); diff --git a/bin/cortex-environments.js b/bin/cortex-environments.js index 40d504f7..5f34e29a 100755 --- a/bin/cortex-environments.js +++ b/bin/cortex-environments.js @@ -19,7 +19,8 @@ const helper = require('./utils.js'); const program = require('commander'); const chalk = require('chalk'); -const { ListEnvironments, SaveEnvironmentCommand, PromoteEnvironmentCommand, DescribeEnvironmentCommand } = require('../src/commands/environments'); +const { ListEnvironments, SaveEnvironmentCommand, PromoteEnvironmentCommand, + DescribeEnvironmentCommand, ListInstancesCommand } = require('../src/commands/environments'); let processed = false; program.description('Work with Cortex Environments'); @@ -96,6 +97,26 @@ program } }); + + +// List Instances in Environment +program + .command('list-instances [environmentName]') + .description('List instances in environment') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action((environmentName, options) => { + try { + new ListInstancesCommand(program).execute(environmentName || 'cortex/default', options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + process.env.DOC && require('../src/commands/utils').exportDoc(program); program.parse(process.argv); if (!processed) diff --git a/package.json b/package.json index 3663afbf..2e915fdd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.1", + "version": "0.7.3", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -45,4 +45,3 @@ "mocha": "5.0.0" } } - diff --git a/src/client/agents.js b/src/client/agents.js index d59544d4..b4864cfb 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -79,8 +79,25 @@ module.exports = class Agents { }); } + describeAgentSnapshot(token, snapshotId, environmentName) { + let endpoint = `${this.endpoint}/snapshots/${snapshotId}?deps=true`; + debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, environmentName, endpoint); + if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + createAgentSnapshot(token, snapshot) { - const agentName = snapshot.agentName; const endpoint = `${this.endpoint}/snapshots`; debug('getAgentSnapshot=> %s', endpoint); return request @@ -98,15 +115,17 @@ module.exports = class Agents { }); } - listAgentInstances(token, agentName) { - const endpoint = `${this.endpoint}/instances/${agentName}`; - debug('getAgentInstances(%s) => %s', agentName, endpoint); + listAgentInstances(token, agentName, environmentName) { + let endpoint = `${this.endpoint}/instances/${agentName}`; + debug('getAgentInstances(%s, %s) => %s', agentName, environmentName, endpoint); + if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; + return request .get(endpoint) .set('Authorization', `Bearer ${token}`) .then((res) => { if (res.ok) { - return {success: true, result: res.body}; + return {success: true, instances: res.body.instances}; } return {success: false, status: res.status, message: res.body}; }) diff --git a/src/client/environments.js b/src/client/environments.js index 7b12e410..dc6fce26 100644 --- a/src/client/environments.js +++ b/src/client/environments.js @@ -92,5 +92,22 @@ module.exports = class Environments { return constructError(err); }); } + + listInstances(token, environmentName) { + const endpoint = `${this.endpoint}/${environmentName}/instances`; + debug('listInstances(%s) => %s', environmentName, this.endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } }; diff --git a/src/commands/agents.js b/src/commands/agents.js index dd89fb24..c34ff82a 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -215,13 +215,31 @@ module.exports.ListAgentInstancesCommand = class { execute(agentName, options) { const profile = loadProfile(options.profile); + const envName = options.environmentName; debug('%s.listAgentInstances(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listAgentInstances(profile.token, agentName).then((response) => { + agents.listAgentInstances(profile.token, agentName, envName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + let result = response.instances; + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + { column: 'Instance Id', field: 'id', width: 26 }, + { column: 'Status', field: 'status', width: 15 }, + { column: 'Snapshot Id', field: 'snapshotId', width: 26 }, + { column: 'Agent Version', field: 'agentVersion', width: 15 }, + { column: 'Environment', field: 'environmentName', width: 26 }, + { column: 'Created At', field: 'createdAt', width: 26 }, + ]; + + printTable(tableSpec, result); + } } else { printError(`Failed to list agent instances ${agentName}: ${response.message}`, options); @@ -254,7 +272,7 @@ module.exports.ListAgentSnapshotsCommand = class { const tableSpec = [ { column: 'Snapshot ID', field: 'id', width: 30 }, { column: 'Title', field: 'title', width: 30 }, - { column: 'Description', field: 'description', width: 50 }, + { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Environment', field: 'environmentName', width: 30 }, { column: 'Created On', field: 'createdAt', width: 26 } ]; @@ -272,6 +290,32 @@ module.exports.ListAgentSnapshotsCommand = class { } }; + +module.exports.DescribeAgentSnapshotCommand = class { + constructor(program) { + this.program = program; + } + + execute(snapshotId, options) { + const profile = loadProfile(options.profile); + const envName = options.environmentName; + debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); + + const agents = new Agents(profile.url); + agents.describeAgentSnapshot(profile.token, snapshotId, envName).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`, options); + } + }).catch((err) => { + printError(`Failed to describe agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.CreateAgentSnapshotCommand = class { constructor(program) { diff --git a/src/commands/environments.js b/src/commands/environments.js index 9324ba29..06802872 100644 --- a/src/commands/environments.js +++ b/src/commands/environments.js @@ -32,8 +32,8 @@ module.exports.ListEnvironments = class ListEnvironments { const profile = loadProfile(options.profile); debug('%s.listEnvironment()', profile.name); - const conns = new Environments(profile.url); - conns.listEnvironments(profile.token).then((response) => { + const envs = new Environments(profile.url); + envs.listEnvironments(profile.token).then((response) => { if (response.success) { let result = _.get(response,'result.environments',[]); if (options.query) @@ -119,6 +119,50 @@ module.exports.DescribeEnvironmentCommand = class DescribeEnvironmentCommand { }); } }; + +module.exports.ListInstancesCommand = class ListInstancesCommand { + + constructor(program) { + this.program = program; + } + + execute(environmentName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeListInstances(%s)', profile.name, environmentName); + const environment = new Environments(profile.url); + + environment.listInstances(profile.token, environmentName).then((response) => { + if (response.success) { + let result = _.get(response,'result.instances',[]); + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + let tableSpec = [ + { column: 'Instance Id', field: 'id', width: 26 }, + { column: 'Status', field: 'status', width: 15 }, + { column: 'Snapshot Id', field: 'snapshotId', width: 26 }, + { column: 'Agent Name', field: 'agentName', width: 50 }, + { column: 'Agent Version', field: 'agentVersion', width: 15 }, + { column: 'Environment', field: 'environmentName', width: 26 }, + { column: 'Created At', field: 'createdAt', width: 26 }, + ]; + printTable(tableSpec, result); + } + } + else { + printError(`Failed to list instances in environment ${environmentName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list instances in environment ${environmentName}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.PromoteEnvironmentCommand = class PromoteEnvironmentCommand { constructor(program) { diff --git a/src/commands/utils.js b/src/commands/utils.js index 42829b04..33550560 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -21,12 +21,18 @@ const debug = require('debug')('cortex:cli'); const Table = require('cli-table'); module.exports.constructError = function(error) { - const errorText = JSON.parse(error.response.text); - if (errorText.message) { - return {success: false, message: errorText.message, status: error.status}; - } else { - return {success: false, message: JSON.stringify(errorText), status: error.status}; + // fallback to text in message or standard error message + let errResp = error.response; + let errorText = (errResp && errResp.text) || error.message; + + // if JSON was returned, look for either a message or error in it + try { + const resp = errResp ? JSON.parse(errResp.text) : {}; + if (resp.message || resp.error) errorText = resp.message || resp.error; + } catch(e) { + // Guess it wasn't JSON! } + return {success: false, message: errorText, status: error.status || ''}; }; module.exports.printSuccess = function(message, options) { From 508df95901aadbda0a1ba3413f40b62b98ec8091 Mon Sep 17 00:00:00 2001 From: Matt Sanchez Date: Fri, 29 Jun 2018 07:33:17 -0600 Subject: [PATCH 022/864] Adding new NPM token to fix deploy issue --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6f6e67bb..59c2364b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ deploy: on: branch: master api_key: - secure: q7P79e+krncuRo130vZJTZ4uG++yhYeWBYNZQC4/fDrta4qF7ER9W0CQ/CTzfnqnT6arkQS+l0QmIrzxEiB0VDh2Oa9ZFTlwHomOQYUaZon1g7+8vlfGUbU6t52fRwhDZDZElJjYRz24D9yI6WIf8RErTYp/zP4ezkm/hwHm1x7Usrea5kVdAz7sBzuUGWwf5G7+Kxav6tYhe8YE4+VNfCvrDqBaYlzh4/9kGnPMEPe2GaiLWoEvdhP35TgVQvZCe+pehp7EtuwreGBETB0TTsmVQSwkVGvgMHjncjFEsOO4ClCTnbe6OrQ3NDf+JMA4gjRPh22B731GQZDhIbVP1CH2ODqFNy6cVwoc7Bz778vYyedXWtzlX9BD1gB9qUXPFS+XtS59PY2CL1c+cMuIdfYDyrJ1CIYHoosVxao1S/dwt7lgufB4acDgwwcQwZLzM12Bl4H2ibDbCFikcQgXZWoeHCkVXL2rZ9tnd0G5y/UuWUnU5rgR4v5YG/D5lrnIU4E2OkoW3uTNjt+JBmLkqMkwe7W7YeXtCJ95bd97cc+uQetevNay+dIwDZ3wage7Dfih8gl3muFKdea/FFNsElLVo8kgF5lyM6Eaf1rc5G3Zoq+5B8led6CFLvfbeVkeq3fZIVsNuXD+LeuJENlxPmYsgg9VrJdtKhIn9V0kF28= + secure: "kEgcF2ZX/Yddk4GseEIn9agHKeDsX4jsFZNguVz/QVmTWHS4wUVOYULoKRreJg101wfzVPo1xoRqcryCMFBsBHTMLK6KxKqj2TIYppW7e2YwqDSYzo9orOHPPQeJrVSiTa0SHj0aapgICu6F8MMkug2nyYlt74DCXIbXwnB7afayUHrsgYc3imkkI7wRxJyO8dofdRTvb1bTLpUf+Gibdj34OGrsgvAapky0bhycysZvRfYX5H2juhJD3yTCpuqwuvynkmkoGtbZrfKRuO5Y9gZMPVxy7tncF1fpT/BbQ09Xfjwn1yC7zQxTkcSOLfThlgOk/P2JHvCebnRgkSS58AtuY8ESnywnwpijgoWp478UsiHqX1AiVv3ZG/w0dGBYptpF9jC3b3Ke7NZezfpP6/1uKpzdFh0FjAKnsapUEydam8Bysp0kBIEOwgBG/83xeLKZ4hk3+0kCU6Fh6gNvyhthl3DEXKcxQijyc6NzFaiQvRjnpgPQjV13fFW/sBDSVqDjOsXPY8V1GYWpCk9tU1/4tDL+jjEsElYc43g4PSy4/1IliJuwSIIebG54kYT3Ux4wRfoYzDAYZKH9vAofQjE2H+j/5zqSTFvp46ZXNRdmLS3OcgUK0GCrykFmiUsTBYalAkvf7YAF1+maJlgR1RuA8OFHDN8yBRRY7oFDJ8s=" #deploy: # provider: npm # email: msanchez@cognitivescale.com From 08329bc6eae75b04842ebc31d2b42dc8c18c491c Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Sat, 30 Jun 2018 16:44:29 -0500 Subject: [PATCH 023/864] Report promote detail errors, and drop confusing env name param when listing catalog items --- src/commands/agents.js | 1 - src/commands/environments.js | 15 +++++++++------ src/commands/utils.js | 4 +++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 2735fb76..a46cc21a 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -76,7 +76,6 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { { column: 'Name', field: 'name', width: 50 }, { column: 'Title', field: 'title', width: 25 }, { column: 'Description', field: 'description', width: 50 }, - { column: 'Environment', field: 'environmentId', width: 25 }, { column: 'Created On', field: 'createdAt', width: 26 } ]; diff --git a/src/commands/environments.js b/src/commands/environments.js index 06802872..88d8c621 100644 --- a/src/commands/environments.js +++ b/src/commands/environments.js @@ -45,11 +45,8 @@ module.exports.ListEnvironments = class ListEnvironments { else { let tableSpec = [ { column: 'Name', field: 'name', width: 25 }, - { column: 'Label', field: 'label', width: 25 }, - { column: 'Type', field: 'type', width: 15 }, - { column: 'Console Url', field: 'consoleUrl', width: 50 }, - { column: 'White List', field: 'whiteList', width: 50 }, - { column: 'Black List', field: 'blackList', width: 50 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Region', field: 'regionRef', width: 25 } ]; printTable(tableSpec, result); } @@ -190,7 +187,13 @@ module.exports.PromoteEnvironmentCommand = class PromoteEnvironmentCommand { if (response.success) { printSuccess(`Snapshot: \'${promObj.snapshotId}\' successfully promoted to environment:\'${promObj.environmentName}\'`, options); } else { - printError(`Failed to promote to environment: ${response.status} ${response.message}`, options); + let errMsg = `Failed to promote to environment: ${response.status} ${response.message}\n`; + if (response.details) { + response.details.forEach(d => + errMsg = errMsg + `${d.resource} ${d.name} - ${d.error}\n`); + } + printError(errMsg, options); + }}) .catch((err) => { printError(`Failed to promote to environment: ${err.response.body.message}`, options); diff --git a/src/commands/utils.js b/src/commands/utils.js index 33550560..50cb5dd2 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -24,15 +24,17 @@ module.exports.constructError = function(error) { // fallback to text in message or standard error message let errResp = error.response; let errorText = (errResp && errResp.text) || error.message; + let details; // if JSON was returned, look for either a message or error in it try { const resp = errResp ? JSON.parse(errResp.text) : {}; if (resp.message || resp.error) errorText = resp.message || resp.error; + details = resp.details; } catch(e) { // Guess it wasn't JSON! } - return {success: false, message: errorText, status: error.status || ''}; + return {success: false, message: errorText, details, status: error.status || ''}; }; module.exports.printSuccess = function(message, options) { From 46597c5ecee0474a19bcc74f04a13a769b2dd796 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Sun, 1 Jul 2018 14:18:36 -0500 Subject: [PATCH 024/864] Increase snapshotId column for list instances --- src/commands/environments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/environments.js b/src/commands/environments.js index 88d8c621..86fbef7e 100644 --- a/src/commands/environments.js +++ b/src/commands/environments.js @@ -141,7 +141,7 @@ module.exports.ListInstancesCommand = class ListInstancesCommand { let tableSpec = [ { column: 'Instance Id', field: 'id', width: 26 }, { column: 'Status', field: 'status', width: 15 }, - { column: 'Snapshot Id', field: 'snapshotId', width: 26 }, + { column: 'Snapshot Id', field: 'snapshotId', width: 40 }, { column: 'Agent Name', field: 'agentName', width: 50 }, { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Environment', field: 'environmentName', width: 26 }, From 1699edaa6444f4d41d5d35555c329a40633b34ce Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Fri, 6 Jul 2018 05:23:11 -0500 Subject: [PATCH 025/864] 0.7.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 291ed4fa..ea58cd99 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.4", + "version": "0.7.5", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 7c7cb9a68206e5566c238d4e322470c465b2977e Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Tue, 10 Jul 2018 11:11:20 -0500 Subject: [PATCH 026/864] Create instance needs --environmentName --- bin/cortex-agents.js | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 7e319a00..44f2db40 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -206,6 +206,7 @@ program .command('create-instance [instanceDefinition]') .description('Create agent instance') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--environmentName [environmentName]', 'The environment to use') .option('--profile [profile]', 'The profile to use') .option('--snapshotId [snapshotId]', 'The name of the agent to snapshot') From 914874ed0789a367451816b314b9adbfe3465219 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 18 Jul 2018 11:41:55 -0500 Subject: [PATCH 027/864] Updated travis settings --- .travis.yml | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 59c2364b..64a0c4c3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,19 +6,9 @@ cache: - node_modules deploy: provider: npm - email: msanchez@cognitivescale.com + email: jgielstra@cognitivescale.com skip_cleanup: true on: branch: master api_key: - secure: "kEgcF2ZX/Yddk4GseEIn9agHKeDsX4jsFZNguVz/QVmTWHS4wUVOYULoKRreJg101wfzVPo1xoRqcryCMFBsBHTMLK6KxKqj2TIYppW7e2YwqDSYzo9orOHPPQeJrVSiTa0SHj0aapgICu6F8MMkug2nyYlt74DCXIbXwnB7afayUHrsgYc3imkkI7wRxJyO8dofdRTvb1bTLpUf+Gibdj34OGrsgvAapky0bhycysZvRfYX5H2juhJD3yTCpuqwuvynkmkoGtbZrfKRuO5Y9gZMPVxy7tncF1fpT/BbQ09Xfjwn1yC7zQxTkcSOLfThlgOk/P2JHvCebnRgkSS58AtuY8ESnywnwpijgoWp478UsiHqX1AiVv3ZG/w0dGBYptpF9jC3b3Ke7NZezfpP6/1uKpzdFh0FjAKnsapUEydam8Bysp0kBIEOwgBG/83xeLKZ4hk3+0kCU6Fh6gNvyhthl3DEXKcxQijyc6NzFaiQvRjnpgPQjV13fFW/sBDSVqDjOsXPY8V1GYWpCk9tU1/4tDL+jjEsElYc43g4PSy4/1IliJuwSIIebG54kYT3Ux4wRfoYzDAYZKH9vAofQjE2H+j/5zqSTFvp46ZXNRdmLS3OcgUK0GCrykFmiUsTBYalAkvf7YAF1+maJlgR1RuA8OFHDN8yBRRY7oFDJ8s=" -#deploy: -# provider: npm -# email: msanchez@cognitivescale.com -# skip_cleanup: true -# on: -# branch: staging -# api_key: -# secure: q7P79e+krncuRo130vZJTZ4uG++yhYeWBYNZQC4/fDrta4qF7ER9W0CQ/CTzfnqnT6arkQS+l0QmIrzxEiB0VDh2Oa9ZFTlwHomOQYUaZon1g7+8vlfGUbU6t52fRwhDZDZElJjYRz24D9yI6WIf8RErTYp/zP4ezkm/hwHm1x7Usrea5kVdAz7sBzuUGWwf5G7+Kxav6tYhe8YE4+VNfCvrDqBaYlzh4/9kGnPMEPe2GaiLWoEvdhP35TgVQvZCe+pehp7EtuwreGBETB0TTsmVQSwkVGvgMHjncjFEsOO4ClCTnbe6OrQ3NDf+JMA4gjRPh22B731GQZDhIbVP1CH2ODqFNy6cVwoc7Bz778vYyedXWtzlX9BD1gB9qUXPFS+XtS59PY2CL1c+cMuIdfYDyrJ1CIYHoosVxao1S/dwt7lgufB4acDgwwcQwZLzM12Bl4H2ibDbCFikcQgXZWoeHCkVXL2rZ9tnd0G5y/UuWUnU5rgR4v5YG/D5lrnIU4E2OkoW3uTNjt+JBmLkqMkwe7W7YeXtCJ95bd97cc+uQetevNay+dIwDZ3wage7Dfih8gl3muFKdea/FFNsElLVo8kgF5lyM6Eaf1rc5G3Zoq+5B8led6CFLvfbeVkeq3fZIVsNuXD+LeuJENlxPmYsgg9VrJdtKhIn9V0kF28= -# tag: -# staging + secure: fhlUa7hMYZjIuaqR61QlDuluha/Wm3t2W0lvQ4aRKs+he8Vx41m/p/eI6eM5hKoasICXyTdEGOOPEZVSNPs960/dn3tUFtTTo+rsyt+2devyp/787+n2yso7luGGno8EiJjo4pXaSGaoHWOdriL2XE5qubxIdU2BplGRDPTZ3ImpwyOunkS0RCKyMxX0iOkPMblXBWazFW1eA+PfadlW9bu2I1QawCESkrH5AVDhvDIRgBQ9NM6FkcEMZ2PB6IA98gsTANQHQMcQxHpspOVhNk/RDEnAB6FIK4SSM3YfMzLSVvP00G4JmouyyTFSQaSkv5QvXZEulTjX9kii9olQVPu3gaT7rwNeuBWBaRB5ABcleprBvzRDIMwDIJRSGsNdBQ1kreTs7nhxVtRGy8rP3wx1s/RjzkbcdCq7BtPzQJ4hV2/KzLU7xZUfPME6n3sql0RS/Q6eiNUGaIX3gjvVlbV1fxqqkxcEK7oWk2xa8m2erzRxxeK62hGVkW9W4D8mnOB39pazyRwafjOj3Xxf/N3EDCwwx++6Nt6UCZBUFuDDcQssnsezmhYR5X+sKwkfgzisyaIdbT/3R7DJx8nrFDcmeOGdh0kW23mT6u70p/lcYSBgsrvMFvaQLOSm1FA7SAuK2zq0g0e/UMAnpb/NSksyfnsOV1UbuJvFccI9eMw= From 313719c43d3c1681e42f3733cd8531996f3f5ff6 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 18 Jul 2018 11:54:24 -0500 Subject: [PATCH 028/864] Updated travis settings --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 64a0c4c3..ca26631f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,4 +11,4 @@ deploy: on: branch: master api_key: - secure: fhlUa7hMYZjIuaqR61QlDuluha/Wm3t2W0lvQ4aRKs+he8Vx41m/p/eI6eM5hKoasICXyTdEGOOPEZVSNPs960/dn3tUFtTTo+rsyt+2devyp/787+n2yso7luGGno8EiJjo4pXaSGaoHWOdriL2XE5qubxIdU2BplGRDPTZ3ImpwyOunkS0RCKyMxX0iOkPMblXBWazFW1eA+PfadlW9bu2I1QawCESkrH5AVDhvDIRgBQ9NM6FkcEMZ2PB6IA98gsTANQHQMcQxHpspOVhNk/RDEnAB6FIK4SSM3YfMzLSVvP00G4JmouyyTFSQaSkv5QvXZEulTjX9kii9olQVPu3gaT7rwNeuBWBaRB5ABcleprBvzRDIMwDIJRSGsNdBQ1kreTs7nhxVtRGy8rP3wx1s/RjzkbcdCq7BtPzQJ4hV2/KzLU7xZUfPME6n3sql0RS/Q6eiNUGaIX3gjvVlbV1fxqqkxcEK7oWk2xa8m2erzRxxeK62hGVkW9W4D8mnOB39pazyRwafjOj3Xxf/N3EDCwwx++6Nt6UCZBUFuDDcQssnsezmhYR5X+sKwkfgzisyaIdbT/3R7DJx8nrFDcmeOGdh0kW23mT6u70p/lcYSBgsrvMFvaQLOSm1FA7SAuK2zq0g0e/UMAnpb/NSksyfnsOV1UbuJvFccI9eMw= + secure: aKgZRwBvLfIc/SV86gRabhOWYBV/9o5IXGmtxgHeM+nKW+94pz8Akh/mHilkM7ZAvK8WJaXRjHJrX3xez1rhuYEmVoXk5XXEUig9dc3YqzP1T7x9DRK4p3+0dGKEkzRacqZ94EDXQmvEd066KU/4lzsRxEQkhudUTDPVNngqMiRQEUPzLxGbmO1f+TIJ9MBvWo42Gci0c5KT8Zf4f2rX9PIxfmNGq/lHDMIe6DVIHrEHVspNjjuYO4TOHg9i2DQiXAc6F56qCkoGoBvaUj/p5Aljk6ue31MD5OzC4UxB+znyXh8wk1FgKiErr0wodNfHbIlId+74OFYmNp0Of8RkrdScXT1GgX/wFRncu23b73ndx0itm/FjFNUodDLyONm3lpvtOgRGk7Q0fv7/NBikVIZqtPAtWuDbw26btOz2+9xTDdM0g68mn62EJ2injEBpqbK7JnUilpSjT4rnMzvKcRoQeEJQ8CAIPZKt91+7pEFYMfQyIt/sz3kro1GnDb4rJxpVkwqfsn3muB86UuS7UzAia4DLnXDCPPLLfaqMjo+u4eh1UxGvlVXhXIO0PpQ7jZlM9WM8gT0kpbrkcBTzgH7LlZgSZLBQfTZr4xo9kIIFZF3D/MnDGqW14xb/H3aWhxdl4u5+XwEBFtfqaugZB3mzoClowfO3IO4ZKwpQBbA= From 6dddca0de2b99288f617af4d407968da7bdbb02f Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 18 Jul 2018 11:54:24 -0500 Subject: [PATCH 029/864] Updated travis settings --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 64a0c4c3..ca26631f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,4 +11,4 @@ deploy: on: branch: master api_key: - secure: fhlUa7hMYZjIuaqR61QlDuluha/Wm3t2W0lvQ4aRKs+he8Vx41m/p/eI6eM5hKoasICXyTdEGOOPEZVSNPs960/dn3tUFtTTo+rsyt+2devyp/787+n2yso7luGGno8EiJjo4pXaSGaoHWOdriL2XE5qubxIdU2BplGRDPTZ3ImpwyOunkS0RCKyMxX0iOkPMblXBWazFW1eA+PfadlW9bu2I1QawCESkrH5AVDhvDIRgBQ9NM6FkcEMZ2PB6IA98gsTANQHQMcQxHpspOVhNk/RDEnAB6FIK4SSM3YfMzLSVvP00G4JmouyyTFSQaSkv5QvXZEulTjX9kii9olQVPu3gaT7rwNeuBWBaRB5ABcleprBvzRDIMwDIJRSGsNdBQ1kreTs7nhxVtRGy8rP3wx1s/RjzkbcdCq7BtPzQJ4hV2/KzLU7xZUfPME6n3sql0RS/Q6eiNUGaIX3gjvVlbV1fxqqkxcEK7oWk2xa8m2erzRxxeK62hGVkW9W4D8mnOB39pazyRwafjOj3Xxf/N3EDCwwx++6Nt6UCZBUFuDDcQssnsezmhYR5X+sKwkfgzisyaIdbT/3R7DJx8nrFDcmeOGdh0kW23mT6u70p/lcYSBgsrvMFvaQLOSm1FA7SAuK2zq0g0e/UMAnpb/NSksyfnsOV1UbuJvFccI9eMw= + secure: aKgZRwBvLfIc/SV86gRabhOWYBV/9o5IXGmtxgHeM+nKW+94pz8Akh/mHilkM7ZAvK8WJaXRjHJrX3xez1rhuYEmVoXk5XXEUig9dc3YqzP1T7x9DRK4p3+0dGKEkzRacqZ94EDXQmvEd066KU/4lzsRxEQkhudUTDPVNngqMiRQEUPzLxGbmO1f+TIJ9MBvWo42Gci0c5KT8Zf4f2rX9PIxfmNGq/lHDMIe6DVIHrEHVspNjjuYO4TOHg9i2DQiXAc6F56qCkoGoBvaUj/p5Aljk6ue31MD5OzC4UxB+znyXh8wk1FgKiErr0wodNfHbIlId+74OFYmNp0Of8RkrdScXT1GgX/wFRncu23b73ndx0itm/FjFNUodDLyONm3lpvtOgRGk7Q0fv7/NBikVIZqtPAtWuDbw26btOz2+9xTDdM0g68mn62EJ2injEBpqbK7JnUilpSjT4rnMzvKcRoQeEJQ8CAIPZKt91+7pEFYMfQyIt/sz3kro1GnDb4rJxpVkwqfsn3muB86UuS7UzAia4DLnXDCPPLLfaqMjo+u4eh1UxGvlVXhXIO0PpQ7jZlM9WM8gT0kpbrkcBTzgH7LlZgSZLBQfTZr4xo9kIIFZF3D/MnDGqW14xb/H3aWhxdl4u5+XwEBFtfqaugZB3mzoClowfO3IO4ZKwpQBbA= From 2ce7d78c7074f2546607dfa45a2ba700f83cf408 Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Thu, 19 Jul 2018 12:08:48 -0500 Subject: [PATCH 030/864] notify user on cortex configure --- package.json | 2 +- src/client/accounts.js | 8 ++++++++ src/client/auth.js | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ea58cd99..06b1d177 100644 --- a/package.json +++ b/package.json @@ -33,10 +33,10 @@ "commander": "2.12.2", "debug": "3.1.0", "event-stream": "3.3.4", - "lodash": "^4.17.5", "jmespath": "0.15.0", "joi": "13.1.0", "js-yaml": "3.10.0", + "lodash": "4.17.10", "superagent": "3.8.2", "uuid": "3.2.1", "yeoman-environment": "2.0.5" diff --git a/src/client/accounts.js b/src/client/accounts.js index ca41c39e..4b36395b 100644 --- a/src/client/accounts.js +++ b/src/client/accounts.js @@ -33,6 +33,7 @@ module.exports = class Accounts { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { if (res.ok) { return {success: true, result: res.body}; @@ -50,6 +51,7 @@ module.exports = class Accounts { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { if (res.ok) { return {success: true, result: res.body}; @@ -72,6 +74,7 @@ module.exports = class Accounts { return request .post(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send(body) .then((res) => { if (res.ok) { @@ -90,6 +93,7 @@ module.exports = class Accounts { return request .put(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send({ members: members }) @@ -110,6 +114,7 @@ module.exports = class Accounts { return request .delete(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { if (res.ok) { return {success: true, result: res.body}; @@ -127,6 +132,7 @@ module.exports = class Accounts { return request .delete(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send({ members: members }) @@ -154,6 +160,7 @@ module.exports = class Accounts { return request .post(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send(body) .then((res) => { if (res.ok) { @@ -172,6 +179,7 @@ module.exports = class Accounts { return request .put(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send({ groupId: groupName }) diff --git a/src/client/auth.js b/src/client/auth.js index 3cb87340..945c9bd8 100644 --- a/src/client/auth.js +++ b/src/client/auth.js @@ -16,6 +16,8 @@ const request = require('superagent'); const debug = require('debug')('cortex:cli'); +const _ = require('lodash'); +const chalk = require('chalk'); const { constructError } = require('../commands/utils'); module.exports = class Auth { @@ -31,11 +33,15 @@ module.exports = class Auth { return request .post(endpoint) + .set('x-cortex-proxy-notify', true) .send({ username: username, password: password }) .then((response) => { + if (Boolean(_.get(response, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); + if (response.ok) { debug('login response: %o', response.body); return response.body; From a0e5720a209f29d23b405754775ea14a78b3aa70 Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Thu, 19 Jul 2018 13:02:31 -0500 Subject: [PATCH 031/864] notify proxying of agent and catalog requests --- src/client/agents.js | 35 +++++++++++++++++++++++++++++++++++ src/client/catalog.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/src/client/agents.js b/src/client/agents.js index b4864cfb..fa2c4ba2 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -16,6 +16,8 @@ const request = require('superagent'); const debug = require('debug')('cortex:cli'); +const _ = require('lodash'); +const chalk = require('chalk'); const { constructError } = require('../commands/utils'); module.exports = class Agents { @@ -32,8 +34,11 @@ module.exports = class Agents { return request .post(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send(params) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -50,7 +55,10 @@ module.exports = class Agents { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -68,7 +76,10 @@ module.exports = class Agents { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -86,7 +97,10 @@ module.exports = class Agents { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -103,8 +117,11 @@ module.exports = class Agents { return request .post(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send(snapshot) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -123,7 +140,10 @@ module.exports = class Agents { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, instances: res.body.instances}; } @@ -140,9 +160,12 @@ module.exports = class Agents { return request .post(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send(instance) .type('json') .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -159,7 +182,10 @@ module.exports = class Agents { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -176,7 +202,10 @@ module.exports = class Agents { return request .delete(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -193,7 +222,10 @@ module.exports = class Agents { return request .post(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -210,7 +242,10 @@ module.exports = class Agents { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } diff --git a/src/client/catalog.js b/src/client/catalog.js index 1be81eb3..62a269d5 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -16,6 +16,8 @@ const request = require('superagent'); const debug = require('debug')('cortex:cli'); +const _ = require('lodash'); +const chalk = require('chalk'); const { constructError } = require('../commands/utils'); const createEndpoints = (baseUri) => { @@ -40,8 +42,11 @@ module.exports = class Catalog { return request .post(this.endpoints.skills) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send(skillObj) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, message: res.body}; } @@ -57,7 +62,10 @@ module.exports = class Catalog { return request .get(this.endpoints.skills) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, skills: res.body.skills || res.body.processors}; } @@ -74,7 +82,10 @@ module.exports = class Catalog { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, skill: res.body}; } @@ -92,7 +103,10 @@ module.exports = class Catalog { return request .get(this.endpoints.agents) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, agents: res.body.agents}; } @@ -108,8 +122,11 @@ module.exports = class Catalog { return request .post(this.endpoints.agents) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send(agentObj) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, message: res.body}; } @@ -126,7 +143,10 @@ module.exports = class Catalog { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, agent: res.body}; } @@ -146,7 +166,10 @@ module.exports = class Catalog { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, agent: res.body}; } @@ -165,8 +188,11 @@ module.exports = class Catalog { return request .post(this.endpoints.types) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .send(types) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, message: res.body}; } @@ -183,7 +209,10 @@ module.exports = class Catalog { return request .get(endpoint) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, type: res.body}; } @@ -201,7 +230,10 @@ module.exports = class Catalog { return request .get(this.endpoints.types) .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.log(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, types: res.body.types}; } From 0265ffc8cb3fa7c1f08a9b4850b761adfd1ef0cc Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Thu, 19 Jul 2018 13:22:09 -0500 Subject: [PATCH 032/864] print proxied to cloud to stderr so as not to corrupt scripting or jq. --- src/client/agents.js | 22 +++++++++++----------- src/client/auth.js | 2 +- src/client/catalog.js | 20 ++++++++++---------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/client/agents.js b/src/client/agents.js index fa2c4ba2..1ab39e49 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -38,7 +38,7 @@ module.exports = class Agents { .send(params) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -58,7 +58,7 @@ module.exports = class Agents { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -79,7 +79,7 @@ module.exports = class Agents { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -100,7 +100,7 @@ module.exports = class Agents { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -121,7 +121,7 @@ module.exports = class Agents { .send(snapshot) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -143,7 +143,7 @@ module.exports = class Agents { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, instances: res.body.instances}; } @@ -165,7 +165,7 @@ module.exports = class Agents { .type('json') .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -185,7 +185,7 @@ module.exports = class Agents { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -205,7 +205,7 @@ module.exports = class Agents { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -225,7 +225,7 @@ module.exports = class Agents { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } @@ -245,7 +245,7 @@ module.exports = class Agents { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, result: res.body}; } diff --git a/src/client/auth.js b/src/client/auth.js index 945c9bd8..068cf493 100644 --- a/src/client/auth.js +++ b/src/client/auth.js @@ -40,7 +40,7 @@ module.exports = class Auth { }) .then((response) => { if (Boolean(_.get(response, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (response.ok) { debug('login response: %o', response.body); diff --git a/src/client/catalog.js b/src/client/catalog.js index 62a269d5..2ef57c73 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -46,7 +46,7 @@ module.exports = class Catalog { .send(skillObj) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, message: res.body}; } @@ -65,7 +65,7 @@ module.exports = class Catalog { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, skills: res.body.skills || res.body.processors}; } @@ -85,7 +85,7 @@ module.exports = class Catalog { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, skill: res.body}; } @@ -106,7 +106,7 @@ module.exports = class Catalog { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, agents: res.body.agents}; } @@ -126,7 +126,7 @@ module.exports = class Catalog { .send(agentObj) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, message: res.body}; } @@ -146,7 +146,7 @@ module.exports = class Catalog { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, agent: res.body}; } @@ -169,7 +169,7 @@ module.exports = class Catalog { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, agent: res.body}; } @@ -192,7 +192,7 @@ module.exports = class Catalog { .send(types) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, message: res.body}; } @@ -212,7 +212,7 @@ module.exports = class Catalog { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, type: res.body}; } @@ -233,7 +233,7 @@ module.exports = class Catalog { .set('x-cortex-proxy-notify', true) .then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.log(chalk.blue('Request proxied to cloud.')); + console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, types: res.body.types}; } From 60daea20384210bb1958105dff47e72e82b91a9a Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Thu, 19 Jul 2018 13:26:15 -0500 Subject: [PATCH 033/864] 0.7.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 06b1d177..ba770813 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.5", + "version": "0.7.6", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From bb26963b34c1a1d35352b91603f5beb71a82822b Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 26 Jul 2018 08:28:48 -0500 Subject: [PATCH 034/864] Add support for listing, reading, and writing secure variables --- .gitignore | 3 + bin/cortex-variables.js | 86 +++++++++++++++++++++++++ bin/cortex.js | 3 +- src/client/variables.js | 85 ++++++++++++++++++++++++ src/commands/variables.js | 132 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 308 insertions(+), 1 deletion(-) create mode 100755 bin/cortex-variables.js create mode 100644 src/client/variables.js create mode 100644 src/commands/variables.js diff --git a/.gitignore b/.gitignore index 03269ada..e48a0286 100644 --- a/.gitignore +++ b/.gitignore @@ -66,6 +66,9 @@ jspm_packages # Mongo Explorer plugin: .idea/mongoSettings.xml +# Visual Studio Code +.vscode/ + ## File-based project format: *.iws diff --git a/bin/cortex-variables.js b/bin/cortex-variables.js new file mode 100755 index 00000000..b6b0fb75 --- /dev/null +++ b/bin/cortex-variables.js @@ -0,0 +1,86 @@ +#!/usr/bin/env node + +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const helper = require('./utils.js'); +const program = require('commander'); +const chalk = require('chalk'); + +const { + ListVariablesCommand, + ReadVariableCommand, + WriteVariableCommand, +} = require('../src/commands/variables'); + +let processed = false; +program.description('Work with Cortex Secure Variables'); + +// List Secure Variable Keys +program + .command('list') + .description('List secure variable keys') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action((options) => { + try { + new ListVariablesCommand(program).execute(options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + +// Read Secure Variable Value +program + .command('read ') + .description('Read secure variable value') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action((keyName, options) => { + try { + new ReadVariableCommand(program).execute(keyName, options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + +// Write Secure Variable Value +program + .command('write [value]') + .description('Write secure variable value') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--data [data]', 'JSON value to store') + .option('--data-file [dataFile]', 'A file containing either JSON or YAML formatted value to store') + .option('--profile [profile]', 'The profile to use') + .action((keyName, value, options) => { + try { + new WriteVariableCommand(program).execute(keyName, value, options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + +process.env.DOC && require('../src/commands/utils').exportDoc(program); + +program.parse(process.argv); +if (!processed) + ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); \ No newline at end of file diff --git a/bin/cortex.js b/bin/cortex.js index 88e29bc2..2100d6ba 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -36,7 +36,8 @@ program .command('project [cmd]', 'Work with a related collection of Cortex contributions') .command('skills [cmd]', 'Work with Cortex Skills') .command('tasks [cmd]', 'Work with Cortex Tasks') - .command('types [cmd]', 'Work with Cortex Types'); + .command('types [cmd]', 'Work with Cortex Types') + .command('variables [cmd]', 'Work with Cortex Secure Variables'); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/src/client/variables.js b/src/client/variables.js new file mode 100644 index 00000000..8bd8d241 --- /dev/null +++ b/src/client/variables.js @@ -0,0 +1,85 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const debug = require('debug')('cortex:cli'); +const request = require('superagent'); + +const { constructError } = require('../commands/utils'); + +module.exports = class Variables { + + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/v2/tenants/secrets/variables`; + } + + listVariables(token) { + const endpoint = `${this.endpoint}?list=true`; + debug('listVariables => %s', endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + readVariable(token, keyName) { + const endpoint = `${this.endpoint}/${keyName}`; + const body = {} + debug('readVariable($s) => %s', keyName, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + writeVariable(token, keyName, value) { + const endpoint = `${this.endpoint}/${keyName}`; + debug('writeVariable(%s) => %s', keyName, endpoint); + const body = { value }; + return request + .post(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .send(body) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } +}; diff --git a/src/commands/variables.js b/src/commands/variables.js new file mode 100644 index 00000000..7559061f --- /dev/null +++ b/src/commands/variables.js @@ -0,0 +1,132 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const getOr = require('lodash/fp/getOr'); +const isUndefined = require('lodash/fp/isUndefined'); +const map = require('lodash/fp/map'); + +const { loadProfile } = require('../config'); +const Variables = require('../client/variables'); +const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); + +module.exports.ListVariablesCommand = class { + + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listVariables(%s)', profile.name); + + const variables = new Variables(profile.url); + variables.listVariables(profile.token) + .then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + if (options.json) + printSuccess(JSON.stringify(result, null, 2), options); + else { + const tableSpec = [ + { column: 'Variable Key Name', field: 'keyName', width: 50 }, + ]; + printTable(tableSpec, map(x => ({ keyName: x }), result)); + } + } + else { + printError(`Failed to list variables: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list variables : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ReadVariableCommand = class { + + constructor(program) { + this.program = program; + } + + execute(keyName, options) { + const profile = loadProfile(options.profile); + debug('%s.readVariable(%s)', profile.name, keyName); + + const variables = new Variables(profile.url); + variables.readVariable(profile.token, keyName).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + if (options.json) + printSuccess(JSON.stringify(result, null, 2), options); + else { + const tableSpec = [ + { column: 'Variable Key Name', field: 'keyName', width: 50 }, + { column: 'Value', field: 'value', width: 50 } + ]; + printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2)}]); + } + } + else { + printError(`Failed to read secure variable : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to read secure variable : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.WriteVariableCommand = class { + + constructor(program) { + this.program = program; + } + + execute(keyName, value, options) { + const profile = loadProfile(options.profile); + debug('%s.writeVariable(%s)', profile.name, keyName); + + let data = value; + if (options.data) { + data = parseObject(options.data, options); + } + else if (options.dataFile) { + const dataStr = fs.readFileSync(options.dataFile); + data = parseObject(dataStr, options); + } + + if (isUndefined(data)) { + return printError('Failed to write secure variable : no value specified', options); + } + + const variables = new Variables(profile.url); + variables.writeVariable(profile.token, keyName, data).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(result.message, options); + } + else { + printError(`Failed to write secure variable : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to write secure variable : ${err.status} ${err.message}`, options); + }); + } +}; From fd6771119c837fe67bc171cef2b3180273ac8188 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Fri, 27 Jul 2018 08:04:49 -0500 Subject: [PATCH 035/864] Address MBurpo's PR suggestions for naming/describing secure variables commands --- bin/cortex-variables.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bin/cortex-variables.js b/bin/cortex-variables.js index b6b0fb75..a111d4ce 100755 --- a/bin/cortex-variables.js +++ b/bin/cortex-variables.js @@ -47,8 +47,8 @@ program // Read Secure Variable Value program - .command('read ') - .description('Read secure variable value') + .command('describe ') + .description('Retrieve the value stored for the given variable key.') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .action((keyName, options) => { @@ -63,11 +63,11 @@ program // Write Secure Variable Value program - .command('write [value]') - .description('Write secure variable value') + .command('save [value]') + .description('Save or overwrite a secure variable value. By default, values are stored as strings but can also be saved as JSON or YAML values.') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--data [data]', 'JSON value to store') - .option('--data-file [dataFile]', 'A file containing either JSON or YAML formatted value to store') + .option('--data [data]', 'JSON value to save') + .option('--data-file [dataFile]', 'A file containing either JSON or YAML formatted value to save') .option('--profile [profile]', 'The profile to use') .action((keyName, value, options) => { try { From f9f566e125e3861c83fbdd77773e4b58a1496aba Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Fri, 27 Jul 2018 14:44:04 -0500 Subject: [PATCH 036/864] 0.7.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ba770813..987cd652 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.6", + "version": "0.7.7", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 75b9c161858b2d57d08b7395d7cc4f2d91c11ec6 Mon Sep 17 00:00:00 2001 From: dwisecup-cs Date: Fri, 27 Jul 2018 15:12:43 -0500 Subject: [PATCH 037/864] Bump Version (#98) * Add support for listing, reading, and writing secure variables * Address MBurpo's PR suggestions for naming/describing secure variables commands * 0.7.7 --- .gitignore | 3 + bin/cortex-variables.js | 86 +++++++++++++++++++++++++ bin/cortex.js | 3 +- package.json | 2 +- src/client/variables.js | 85 ++++++++++++++++++++++++ src/commands/variables.js | 132 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 309 insertions(+), 2 deletions(-) create mode 100755 bin/cortex-variables.js create mode 100644 src/client/variables.js create mode 100644 src/commands/variables.js diff --git a/.gitignore b/.gitignore index 03269ada..e48a0286 100644 --- a/.gitignore +++ b/.gitignore @@ -66,6 +66,9 @@ jspm_packages # Mongo Explorer plugin: .idea/mongoSettings.xml +# Visual Studio Code +.vscode/ + ## File-based project format: *.iws diff --git a/bin/cortex-variables.js b/bin/cortex-variables.js new file mode 100755 index 00000000..a111d4ce --- /dev/null +++ b/bin/cortex-variables.js @@ -0,0 +1,86 @@ +#!/usr/bin/env node + +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const helper = require('./utils.js'); +const program = require('commander'); +const chalk = require('chalk'); + +const { + ListVariablesCommand, + ReadVariableCommand, + WriteVariableCommand, +} = require('../src/commands/variables'); + +let processed = false; +program.description('Work with Cortex Secure Variables'); + +// List Secure Variable Keys +program + .command('list') + .description('List secure variable keys') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action((options) => { + try { + new ListVariablesCommand(program).execute(options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + +// Read Secure Variable Value +program + .command('describe ') + .description('Retrieve the value stored for the given variable key.') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action((keyName, options) => { + try { + new ReadVariableCommand(program).execute(keyName, options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + +// Write Secure Variable Value +program + .command('save [value]') + .description('Save or overwrite a secure variable value. By default, values are stored as strings but can also be saved as JSON or YAML values.') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--data [data]', 'JSON value to save') + .option('--data-file [dataFile]', 'A file containing either JSON or YAML formatted value to save') + .option('--profile [profile]', 'The profile to use') + .action((keyName, value, options) => { + try { + new WriteVariableCommand(program).execute(keyName, value, options); + processed = true; + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + +process.env.DOC && require('../src/commands/utils').exportDoc(program); + +program.parse(process.argv); +if (!processed) + ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); \ No newline at end of file diff --git a/bin/cortex.js b/bin/cortex.js index 88e29bc2..2100d6ba 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -36,7 +36,8 @@ program .command('project [cmd]', 'Work with a related collection of Cortex contributions') .command('skills [cmd]', 'Work with Cortex Skills') .command('tasks [cmd]', 'Work with Cortex Tasks') - .command('types [cmd]', 'Work with Cortex Types'); + .command('types [cmd]', 'Work with Cortex Types') + .command('variables [cmd]', 'Work with Cortex Secure Variables'); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/package.json b/package.json index ba770813..987cd652 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.6", + "version": "0.7.7", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/variables.js b/src/client/variables.js new file mode 100644 index 00000000..8bd8d241 --- /dev/null +++ b/src/client/variables.js @@ -0,0 +1,85 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const debug = require('debug')('cortex:cli'); +const request = require('superagent'); + +const { constructError } = require('../commands/utils'); + +module.exports = class Variables { + + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/v2/tenants/secrets/variables`; + } + + listVariables(token) { + const endpoint = `${this.endpoint}?list=true`; + debug('listVariables => %s', endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + readVariable(token, keyName) { + const endpoint = `${this.endpoint}/${keyName}`; + const body = {} + debug('readVariable($s) => %s', keyName, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + writeVariable(token, keyName, value) { + const endpoint = `${this.endpoint}/${keyName}`; + debug('writeVariable(%s) => %s', keyName, endpoint); + const body = { value }; + return request + .post(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .send(body) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } +}; diff --git a/src/commands/variables.js b/src/commands/variables.js new file mode 100644 index 00000000..7559061f --- /dev/null +++ b/src/commands/variables.js @@ -0,0 +1,132 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const getOr = require('lodash/fp/getOr'); +const isUndefined = require('lodash/fp/isUndefined'); +const map = require('lodash/fp/map'); + +const { loadProfile } = require('../config'); +const Variables = require('../client/variables'); +const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); + +module.exports.ListVariablesCommand = class { + + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listVariables(%s)', profile.name); + + const variables = new Variables(profile.url); + variables.listVariables(profile.token) + .then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + if (options.json) + printSuccess(JSON.stringify(result, null, 2), options); + else { + const tableSpec = [ + { column: 'Variable Key Name', field: 'keyName', width: 50 }, + ]; + printTable(tableSpec, map(x => ({ keyName: x }), result)); + } + } + else { + printError(`Failed to list variables: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list variables : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ReadVariableCommand = class { + + constructor(program) { + this.program = program; + } + + execute(keyName, options) { + const profile = loadProfile(options.profile); + debug('%s.readVariable(%s)', profile.name, keyName); + + const variables = new Variables(profile.url); + variables.readVariable(profile.token, keyName).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + if (options.json) + printSuccess(JSON.stringify(result, null, 2), options); + else { + const tableSpec = [ + { column: 'Variable Key Name', field: 'keyName', width: 50 }, + { column: 'Value', field: 'value', width: 50 } + ]; + printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2)}]); + } + } + else { + printError(`Failed to read secure variable : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to read secure variable : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.WriteVariableCommand = class { + + constructor(program) { + this.program = program; + } + + execute(keyName, value, options) { + const profile = loadProfile(options.profile); + debug('%s.writeVariable(%s)', profile.name, keyName); + + let data = value; + if (options.data) { + data = parseObject(options.data, options); + } + else if (options.dataFile) { + const dataStr = fs.readFileSync(options.dataFile); + data = parseObject(dataStr, options); + } + + if (isUndefined(data)) { + return printError('Failed to write secure variable : no value specified', options); + } + + const variables = new Variables(profile.url); + variables.writeVariable(profile.token, keyName, data).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(result.message, options); + } + else { + printError(`Failed to write secure variable : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to write secure variable : ${err.status} ${err.message}`, options); + }); + } +}; From 28ec0fb0bfdde6c1600c9e3a2697bbf614a7ddf4 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 2 Aug 2018 11:59:54 -0500 Subject: [PATCH 038/864] 0.7.8 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 987cd652..b361b150 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.7", + "version": "0.7.8", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 07139a064160b12391775d5e8af7296e94d1d736 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 2 Aug 2018 16:24:50 -0500 Subject: [PATCH 039/864] Add backend compatibility check to all commands which use a profile --- .dockerignore | 1 - bin/cortex-accounts.js | 38 ++++----- bin/cortex-actions.js | 27 ++++--- bin/cortex-agents.js | 59 +++++++------- bin/cortex-configure.js | 9 ++- bin/cortex-connections.js | 40 +++++---- bin/cortex-content.js | 30 ++++--- bin/cortex-datasets.js | 39 +++++---- bin/cortex-environments.js | 36 +++++---- bin/cortex-jobs.js | 30 ++++--- bin/cortex-processors.js | 31 +++---- bin/cortex-project.js | 11 ++- bin/cortex-skills.js | 29 ++++--- bin/cortex-tasks.js | 30 ++++--- bin/cortex-types.js | 25 +++--- bin/cortex-variables.js | 18 +++-- package.json | 13 ++- src/commands/connections.js | 2 +- src/commands/skills.js | 2 +- src/compatibility.js | 133 ++++++++++++++++++++++++++++++ src/config.js | 6 +- test/compatibility.js | 156 ++++++++++++++++++++++++++++++++++++ 22 files changed, 572 insertions(+), 193 deletions(-) create mode 100644 src/compatibility.js create mode 100644 test/compatibility.js diff --git a/.dockerignore b/.dockerignore index a5e4eb39..612967f9 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,4 @@ .dockerignore -package.json README.md Dockerfile.c12e-ci.cortex-cli c12e-ci.yml diff --git a/bin/cortex-accounts.js b/bin/cortex-accounts.js index a7c57ad6..6c326600 100755 --- a/bin/cortex-accounts.js +++ b/bin/cortex-accounts.js @@ -16,9 +16,11 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); const { CreateGroupCommand, @@ -41,7 +43,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--description [description]', 'Group description') - .action((groupName, options) => { + .action(withCompatibilityCheck((groupName, options) => { try { new CreateGroupCommand(program).execute(groupName, options); processed = true; @@ -49,7 +51,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Add Members to Group program @@ -57,7 +59,7 @@ program .description('Add members to group') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((groupName, members, options) => { + .action(withCompatibilityCheck((groupName, members, options) => { try { new AddMembersToGroupCommand(program).execute(groupName, members, options); processed = true; @@ -65,7 +67,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Groups program @@ -73,7 +75,7 @@ program .description('List groups') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListGroupsCommand(program).execute(options); processed = true; @@ -81,7 +83,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Group program @@ -89,7 +91,7 @@ program .description('Describe a group') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((groupName, options) => { + .action(withCompatibilityCheck((groupName, options) => { try { new DescribeGroupCommand(program).execute(groupName, options); processed = true; @@ -97,7 +99,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Delete Group program @@ -105,7 +107,7 @@ program .description('Delete a group') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((groupName, options) => { + .action(withCompatibilityCheck((groupName, options) => { try { new DeleteGroupCommand(program).execute(groupName, options); processed = true; @@ -113,7 +115,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Remove Members From Group program @@ -121,7 +123,7 @@ program .description('Remove members from a group') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((groupName, members, options) => { + .action(withCompatibilityCheck((groupName, members, options) => { try { new RemoveMembersFromGroupCommand(program).execute(groupName, members, options); processed = true; @@ -129,7 +131,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Register Resource program @@ -139,7 +141,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--description [description]', 'Resource description') .option('--access [access]', 'Access level of resource [read/write/admin/execute]') - .action((resourceName, options) => { + .action(withCompatibilityCheck((resourceName, options) => { try { new RegisterResourceCommand(program).execute(resourceName, options); processed = true; @@ -147,7 +149,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Grant Group Access To Resource program @@ -155,7 +157,7 @@ program .description('Grant group access to a resource') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((resourceId, groupName, options) => { + .action(withCompatibilityCheck((resourceId, groupName, options) => { try { new GrantGroupAccessToResourceCommand(program).execute(resourceId, groupName, options); processed = true; @@ -163,7 +165,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 0f5ad4e2..9601668f 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -16,9 +16,12 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + const { ListActionsCommand, DescribeActionCommand, @@ -38,7 +41,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); processed = true; @@ -46,7 +49,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Action program @@ -56,7 +59,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('-d, --download', 'Download code binary in response') - .action((actionName, options) => { + .action(withCompatibilityCheck((actionName, options) => { try { new DescribeActionCommand(program).execute(actionName, options); processed = true; @@ -64,7 +67,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Delete Action program @@ -74,7 +77,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') - .action((actionName, options) => { + .action(withCompatibilityCheck((actionName, options) => { try { new DeleteActionCommand(program).execute(actionName, options); processed = true; @@ -82,7 +85,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Invoke Action program @@ -96,7 +99,7 @@ program .option('--actionType [actionType]', 'Type of action') .option('--path [path]', 'Path to the daemon service url being invoked', '') .option('--method [method]', 'HTTP method') // GET, POST ... - .action((actionName, options) => { + .action(withCompatibilityCheck((actionName, options) => { try { new InvokeActionCommand(program).execute(actionName, options); processed = true; @@ -104,7 +107,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Deploy Action program @@ -121,7 +124,7 @@ program .option('--port [port]', 'Docker port') //'9091' .option('--environment [environment]', 'Environment') .option('--cmd [cmd]', 'Command to be executed') //'["--daemon"]' - .action((actionName, options) => { + .action(withCompatibilityCheck((actionName, options) => { try { if (!options.kind && !options.docker) { throw new Error('--kind [kind] or --docker [image] required'); @@ -137,7 +140,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 44f2db40..4071dd35 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -16,9 +16,12 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + const { SaveAgentCommand, ListAgentsCommand, @@ -46,7 +49,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action((agentDefinition, options) => { + .action(withCompatibilityCheck((agentDefinition, options) => { try { new SaveAgentCommand(program).execute(agentDefinition, options); processed = true; @@ -54,7 +57,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Agents program @@ -64,7 +67,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); processed = true; @@ -72,7 +75,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Agent program @@ -82,7 +85,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--versions', 'To get list of versions of an agent') - .action((agentName, options) => { + .action(withCompatibilityCheck((agentName, options) => { try { new DescribeAgentCommand(program).execute(agentName, options); processed = true; @@ -90,7 +93,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Invoke Agent Service program @@ -100,7 +103,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .action((agentName, serviceName, options) => { + .action(withCompatibilityCheck((agentName, serviceName, options) => { try { new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); processed = true; @@ -108,7 +111,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Get Agent Service Activation program @@ -136,7 +139,7 @@ program .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((agentName, options) => { + .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); processed = true; @@ -144,7 +147,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); program .command('describe-snapshot ') @@ -152,7 +155,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') - .action((snapshotId, options) => { + .action(withCompatibilityCheck((snapshotId, options) => { try { new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); processed = true; @@ -160,7 +163,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Create Agent Snapshot program @@ -171,7 +174,7 @@ program .option('--agentName [name[:version]]', 'The name of the agent to snapshot') .option('--title [title]', 'A descriptive title for the snapshot') - .action((snapshotDefinition, options) => { + .action(withCompatibilityCheck((snapshotDefinition, options) => { try { new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); processed = true; @@ -179,7 +182,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); //List agent instances @@ -191,7 +194,7 @@ program .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((agentName, options) => { + .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentInstancesCommand(program).execute(agentName, options); processed = true; @@ -199,7 +202,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Create agent instances program @@ -210,7 +213,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--snapshotId [snapshotId]', 'The name of the agent to snapshot') - .action((instanceDefinition, options) => { + .action(withCompatibilityCheck((instanceDefinition, options) => { try { new CreateAgentInstanceCommand(program).execute(instanceDefinition, options); processed = true; @@ -218,7 +221,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Get agent instance program @@ -227,7 +230,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .action((instanceId, options) => { + .action(withCompatibilityCheck((instanceId, options) => { try { new GetAgentInstanceCommand(program).execute(instanceId, options); processed = true; @@ -235,7 +238,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Delete agent instance program @@ -243,7 +246,7 @@ program .description('Delete agent instance') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((instanceId, options) => { + .action(withCompatibilityCheck((instanceId, options) => { try { new DeleteAgentInstanceCommand(program).execute(instanceId, options); processed = true; @@ -251,7 +254,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Stop agent instance program @@ -259,7 +262,7 @@ program .description('Stop agent instance') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((instanceId, options) => { + .action(withCompatibilityCheck((instanceId, options) => { try { new StopAgentInstanceCommand(program).execute(instanceId, options); processed = true; @@ -267,7 +270,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); //List triggers program @@ -275,7 +278,7 @@ program .description('List of triggers for the current tenant') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListTriggersCommand(program).execute(options); processed = true; @@ -283,7 +286,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 7c98e075..ff99fd77 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -17,7 +17,14 @@ */ const program = require('commander'); -const { ConfigureCommand, DescribeProfileCommand, ListProfilesCommand, SetProfileCommand } = require('../src/commands/configure'); + +const { + ConfigureCommand, + DescribeProfileCommand, + ListProfilesCommand, + SetProfileCommand +} = require('../src/commands/configure'); + program.description('Configure the Cortex CLI'); let cmd = undefined; diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 4c3cd20e..a6ca9efe 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -16,11 +16,20 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListConnections, SaveConnectionCommand, DescribeConnectionCommand, TestConnectionCommand, - ListConnectionsTypes, GenerateConnectionCommand } = require('../src/commands/connections'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + +const { + ListConnections, + SaveConnectionCommand, + DescribeConnectionCommand, + TestConnectionCommand, + ListConnectionsTypes, + GenerateConnectionCommand +} = require('../src/commands/connections'); let processed = false; program.description('Work with Cortex Connections'); @@ -34,7 +43,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); processed = true; @@ -42,7 +51,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Save Connections program @@ -51,7 +60,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action((connDefinition, options) => { + .action(withCompatibilityCheck((connDefinition, options) => { try { new SaveConnectionCommand(program).execute(connDefinition, options); processed = true; @@ -59,7 +68,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Connection program @@ -68,7 +77,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((connectionName, options) => { + .action(withCompatibilityCheck((connectionName, options) => { try { new DescribeConnectionCommand(program).execute(connectionName, options); processed = true; @@ -76,7 +85,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Test Connections program @@ -85,7 +94,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action((connDefinition, options) => { + .action(withCompatibilityCheck((connDefinition, options) => { try { new TestConnectionCommand(program).execute(connDefinition, options); processed = true; @@ -93,7 +102,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Connections Types program @@ -103,7 +112,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListConnectionsTypes(program).execute(options); processed = true; @@ -111,7 +120,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Generate Connections @@ -119,8 +128,7 @@ program .command('generate') .description('Generates the structure of the connection payload') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use', 'default') - .action((options) => { + .action((options) => { // deliberately not using withCompatibilityCheck() try { new GenerateConnectionCommand(program).execute(options); processed = true; diff --git a/bin/cortex-content.js b/bin/cortex-content.js index fcf54ee3..6cf4a609 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -16,10 +16,18 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListContent, UploadContent, DeleteContent, DownloadContent } = require('../src/commands/content'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + +const { + ListContent, + UploadContent, + DeleteContent, + DownloadContent +} = require('../src/commands/content'); let processed = false; program.description('Work with Cortex Contents'); @@ -33,7 +41,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListContent(program).execute(options); processed = true; @@ -41,7 +49,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Upload Content program @@ -50,7 +58,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--secure', 'Uploads the content securely to the Cortex Vault. Use this option for keytab files or content that contains sensitive information that is required during Runtime. Take note of the contentKey you give to this content for future reference.') - .action((contentKey, filePath, options) => { + .action(withCompatibilityCheck((contentKey, filePath, options) => { try { new UploadContent(program).execute(contentKey, filePath, options); processed = true; @@ -58,7 +66,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Delete Content program @@ -66,7 +74,7 @@ program .description('Delete content') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((contentKey, options) => { + .action(withCompatibilityCheck((contentKey, options) => { try { new DeleteContent(program).execute(contentKey, options); processed = true; @@ -74,7 +82,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Download Content program @@ -83,7 +91,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--secure', 'Downloads the content securely from the Cortex Vault.') - .action((contentKey, options) => { + .action(withCompatibilityCheck((contentKey, options) => { try { new DownloadContent(program).execute(contentKey, options); processed = true; @@ -91,7 +99,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/bin/cortex-datasets.js b/bin/cortex-datasets.js index 09199fb6..d361c7a7 100644 --- a/bin/cortex-datasets.js +++ b/bin/cortex-datasets.js @@ -16,11 +16,20 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListDatasets, SaveDatasetsCommand, DescribeDatasetCommand, GetDataframeCommand, - StreamDatasetCommand, GenerateDatasetCommand } = require('../src/commands/datasets'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + +const { + ListDatasets, + SaveDatasetsCommand, + DescribeDatasetCommand, + GetDataframeCommand, + StreamDatasetCommand, + GenerateDatasetCommand +} = require('../src/commands/datasets'); let processed = false; program.description('Work with Cortex Connections'); @@ -34,7 +43,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using detailed JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListDatasets(program).execute(options); processed = true; @@ -42,7 +51,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Save Dataset program @@ -51,7 +60,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for dataset file definition format') - .action((datasetDef, options) => { + .action(withCompatibilityCheck((datasetDef, options) => { try { new SaveDatasetsCommand(program).execute(datasetDef, options); processed = true; @@ -59,7 +68,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Dataset program @@ -68,7 +77,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((datasetName, options) => { + .action(withCompatibilityCheck((datasetName, options) => { try { new DescribeDatasetCommand(program).execute(datasetName, options); processed = true; @@ -76,7 +85,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Get Dataframe program @@ -84,7 +93,7 @@ program .description('Get dataset in dataframe format') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((datasetName, options) => { + .action(withCompatibilityCheck((datasetName, options) => { try { new GetDataframeCommand(program).execute(datasetName, options); processed = true; @@ -92,7 +101,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Get Stream program @@ -100,7 +109,7 @@ program .description('Stream dataset content') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((datasetName, options) => { + .action(withCompatibilityCheck((datasetName, options) => { try { new StreamDatasetCommand(program).execute(datasetName, options); processed = true; @@ -108,14 +117,14 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); program .command('generate') .description('Generates the structure and top level build script for a dataset') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use', 'default') - .action((options) => { + .action((options) => { // deliberately not using withCompatibilityCheck() try { new GenerateDatasetCommand(program).execute(options); } diff --git a/bin/cortex-environments.js b/bin/cortex-environments.js index 5f34e29a..68bf591a 100755 --- a/bin/cortex-environments.js +++ b/bin/cortex-environments.js @@ -16,11 +16,19 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListEnvironments, SaveEnvironmentCommand, PromoteEnvironmentCommand, - DescribeEnvironmentCommand, ListInstancesCommand } = require('../src/commands/environments'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + +const { + ListEnvironments, + SaveEnvironmentCommand, + PromoteEnvironmentCommand, + DescribeEnvironmentCommand, + ListInstancesCommand +} = require('../src/commands/environments'); let processed = false; program.description('Work with Cortex Environments'); @@ -34,7 +42,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListEnvironments(program).execute(options); processed = true; @@ -42,7 +50,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Save Environement program @@ -51,7 +59,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for environment definition format') - .action((envDefinition, options) => { + .action(withCompatibilityCheck((envDefinition, options) => { try { new SaveEnvironmentCommand(program).execute(envDefinition, options); processed = true; @@ -59,7 +67,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Promote Environment program @@ -70,7 +78,7 @@ program .option('-y, --yaml', 'Use YAML for environment definition format') .option('--snapshotId [snapshotId]', 'SnapshotID to promote') .option('--environmentName [environmentName]', 'Environment to promote snapshotId to') - .action((promotionDefinition, options) => { + .action(withCompatibilityCheck((promotionDefinition, options) => { try { new PromoteEnvironmentCommand(program).execute(promotionDefinition, options); processed = true; @@ -78,7 +86,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Environment program @@ -87,7 +95,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((environmentName, options) => { + .action(withCompatibilityCheck((environmentName, options) => { try { new DescribeEnvironmentCommand(program).execute(environmentName, options); processed = true; @@ -95,7 +103,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); @@ -107,7 +115,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((environmentName, options) => { + .action(withCompatibilityCheck((environmentName, options) => { try { new ListInstancesCommand(program).execute(environmentName || 'cortex/default', options); processed = true; @@ -115,7 +123,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); program.parse(process.argv); diff --git a/bin/cortex-jobs.js b/bin/cortex-jobs.js index af17c2f0..e1de3b8f 100755 --- a/bin/cortex-jobs.js +++ b/bin/cortex-jobs.js @@ -16,10 +16,18 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListJobs, JobStatus, DescribeJob, SaveJob } = require('../src/commands/jobs'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + +const { + ListJobs, + JobStatus, + DescribeJob, + SaveJob +} = require('../src/commands/jobs'); let processed = false; program.description('Work with Cortex Jobs'); @@ -33,7 +41,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListJobs(program).execute(options); processed = true; @@ -41,7 +49,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Job program @@ -50,7 +58,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .action((jobDefinition, options) => { + .action(withCompatibilityCheck((jobDefinition, options) => { try { new DescribeJob(program).execute(jobDefinition, options); processed = true; @@ -58,7 +66,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Get Job Status program @@ -67,7 +75,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .action((jobDefinition, options) => { + .action(withCompatibilityCheck((jobDefinition, options) => { try { new JobStatus(program).execute(jobDefinition, options); processed = true; @@ -75,7 +83,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Save Job @@ -85,7 +93,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for job definition format') - .action((jobDefinition, options) => { + .action(withCompatibilityCheck((jobDefinition, options) => { try { new SaveJob(program).execute(jobDefinition, options); processed = true; @@ -93,7 +101,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/bin/cortex-processors.js b/bin/cortex-processors.js index 6f7f2f16..0e524a0d 100755 --- a/bin/cortex-processors.js +++ b/bin/cortex-processors.js @@ -16,9 +16,12 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + const { ListRuntimesCommand, ListRuntimeTypesCommand, @@ -39,7 +42,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListRuntimeTypesCommand(program).execute(options); processed = true; @@ -47,7 +50,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Processor Runtimes program @@ -57,7 +60,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListRuntimesCommand(program).execute(options); processed = true; @@ -65,7 +68,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Processor Runtime program @@ -74,7 +77,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((runtimeName, options) => { + .action(withCompatibilityCheck((runtimeName, options) => { try { new DescribeRuntimeCommand(program).execute(runtimeName, options); processed = true; @@ -82,7 +85,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Delete Processor Runtime program @@ -90,7 +93,7 @@ program .description('Delete a processor runtime') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((runtimeName, options) => { + .action(withCompatibilityCheck((runtimeName, options) => { try { new DeleteRuntimeCommand(program).execute(runtimeName, options); processed = true; @@ -98,7 +101,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Actions program @@ -108,7 +111,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((runtimeName, options) => { + .action(withCompatibilityCheck((runtimeName, options) => { try { new ListActionsCommand(program).execute(runtimeName, options); processed = true; @@ -116,7 +119,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Invoke Action program @@ -127,7 +130,7 @@ program .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .action((runtimeName, actionId, options) => { + .action(withCompatibilityCheck((runtimeName, actionId, options) => { try { new InvokeActionCommand(program).execute(runtimeName, actionId, options); processed = true; @@ -135,7 +138,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/bin/cortex-project.js b/bin/cortex-project.js index d9b80d55..3272deb2 100644 --- a/bin/cortex-project.js +++ b/bin/cortex-project.js @@ -16,12 +16,12 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { - GenerateProjectCommand -} = require('../src/commands/project'); +const program = require('commander'); + +const helper = require('./utils.js'); + +const { GenerateProjectCommand } = require('../src/commands/project'); let processed = false; program.description('Work with a related collection of Cortex contributions'); @@ -31,7 +31,6 @@ program .command('generate') .description('Generates the structure and top level build script for a project') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') .action((options) => { try { new GenerateProjectCommand(program).execute(options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index d38307c2..86b2d384 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -16,10 +16,18 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { SaveSkillCommand, ListSkillsCommand, DescribeSkillCommand, GenerateSkillCommand } = require('../src/commands/skills'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + +const { + SaveSkillCommand, + ListSkillsCommand, + DescribeSkillCommand, + GenerateSkillCommand +} = require('../src/commands/skills'); let processed = false; program.description('Work with Cortex Skills'); @@ -31,7 +39,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for skill definition format') - .action((skillDefinition, options) => { + .action(withCompatibilityCheck((skillDefinition, options) => { try { new SaveSkillCommand(program).execute(skillDefinition, options); processed = true; @@ -39,7 +47,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Skills program @@ -49,7 +57,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListSkillsCommand(program).execute(options); processed = true; @@ -57,7 +65,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Skill program @@ -66,7 +74,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((skillName, options) => { + .action(withCompatibilityCheck((skillName, options) => { try { new DescribeSkillCommand(program).execute(skillName, options); processed = true; @@ -74,14 +82,13 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); program .command('generate') .description('Generates the structure and top level build script for a skill') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use', 'default') - .action((options) => { + .action((options) => { // deliberately not using withCompatibilityCheck() try { new GenerateSkillCommand(program).execute(options); processed = true; diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index b805cdac..735a0eae 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -16,10 +16,18 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListTasks, TaskLogs, CancelTask, DescribeTask } = require('../src/commands/tasks'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + +const { + ListTasks, + TaskLogs, + CancelTask, + DescribeTask +} = require('../src/commands/tasks'); let processed = false; program.description('Work with Cortex Jobs'); @@ -33,7 +41,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((jobId, options) => { + .action(withCompatibilityCheck((jobId, options) => { try { new ListTasks(program).execute(jobId, options); processed = true; @@ -41,7 +49,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Get Tasks logs program @@ -51,7 +59,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((jobId, taskId, options) => { + .action(withCompatibilityCheck((jobId, taskId, options) => { try { new TaskLogs(program).execute(jobId, taskId, options); processed = true; @@ -59,7 +67,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Cancel task program @@ -69,7 +77,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('-m, --message ', 'Cancellation message') - .action((jobId, taskId, options) => { + .action(withCompatibilityCheck((jobId, taskId, options) => { try { new CancelTask(program).execute(jobId, taskId, options); processed = true; @@ -77,7 +85,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe task program @@ -87,7 +95,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((jobId, taskId, options) => { + .action(withCompatibilityCheck((jobId, taskId, options) => { try { new DescribeTask(program).execute(jobId, taskId, options); processed = true; @@ -95,7 +103,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 30212c3e..d400956c 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -16,10 +16,17 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { SaveTypeCommand, ListTypesCommand, DescribeTypeCommand } = require('../src/commands/types'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); + +const { + SaveTypeCommand, + ListTypesCommand, + DescribeTypeCommand +} = require('../src/commands/types'); let processed = false; program.description('Work with Cortex Types'); @@ -31,7 +38,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for type definition format') - .action((typeDefinition, options) => { + .action(withCompatibilityCheck((typeDefinition, options) => { try { new SaveTypeCommand(program).execute(typeDefinition, options); processed = true; @@ -39,7 +46,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Types program @@ -49,7 +56,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); processed = true; @@ -57,7 +64,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Type program @@ -66,7 +73,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((typeName, options) => { + .action(withCompatibilityCheck((typeName, options) => { try { new DescribeTypeCommand(program).execute(typeName, options); processed = true; @@ -74,7 +81,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/bin/cortex-variables.js b/bin/cortex-variables.js index a111d4ce..3257857e 100755 --- a/bin/cortex-variables.js +++ b/bin/cortex-variables.js @@ -16,9 +16,11 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const helper = require('./utils.js'); const { ListVariablesCommand, @@ -35,7 +37,7 @@ program .description('List secure variable keys') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListVariablesCommand(program).execute(options); processed = true; @@ -43,7 +45,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Read Secure Variable Value program @@ -51,7 +53,7 @@ program .description('Retrieve the value stored for the given variable key.') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((keyName, options) => { + .action(withCompatibilityCheck((keyName, options) => { try { new ReadVariableCommand(program).execute(keyName, options); processed = true; @@ -59,7 +61,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Write Secure Variable Value program @@ -69,7 +71,7 @@ program .option('--data [data]', 'JSON value to save') .option('--data-file [dataFile]', 'A file containing either JSON or YAML formatted value to save') .option('--profile [profile]', 'The profile to use') - .action((keyName, value, options) => { + .action(withCompatibilityCheck((keyName, value, options) => { try { new WriteVariableCommand(program).execute(keyName, value, options); processed = true; @@ -77,7 +79,7 @@ program catch (err) { console.error(chalk.red(err.message)); } - }); + })); process.env.DOC && require('../src/commands/utils').exportDoc(program); diff --git a/package.json b/package.json index b361b150..ea64c4e3 100644 --- a/package.json +++ b/package.json @@ -26,22 +26,31 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "@c12e/generator-cortex": "0.3.10", + "boxen": "1.3.0", "chalk": "2.3.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "2.12.2", + "commander": "2.16.0", "debug": "3.1.0", "event-stream": "3.3.4", + "find-package-json": "1.1.0", + "is-installed-globally": "0.1.0", "jmespath": "0.15.0", "joi": "13.1.0", "js-yaml": "3.10.0", "lodash": "4.17.10", + "npm-registry-fetch": "3.2.0", + "semver": "5.5.0", "superagent": "3.8.2", "uuid": "3.2.1", "yeoman-environment": "2.0.5" }, "devDependencies": { - "mocha": "5.0.0" + "chai": "4.1.2", + "chai-as-promised": "7.1.1", + "mocha": "5.2.0", + "rewire": "4.0.1", + "superagent-mocker": "0.5.2" } } diff --git a/src/commands/connections.js b/src/commands/connections.js index d9459e2b..3b114945 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -293,7 +293,7 @@ module.exports.GenerateConnectionCommand = class GenerateConnectionCommand { } execute(options) { - debug('%s.generateConnection()', options.profile); + debug('%s.generateConnection()'); const yenv = yeoman.createEnv(); yenv.lookup(()=>{ yenv.run('@c12e/cortex:connections', diff --git a/src/commands/skills.js b/src/commands/skills.js index e032bba1..090bec7f 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -122,7 +122,7 @@ module.exports.GenerateSkillCommand = class GenerateSkillCommand { } execute(options) { - debug('%s.generateSkill()', options.profile); + debug('%s.generateSkill()'); const yenv = yeoman.createEnv(); yenv.lookup(()=>{ yenv.run('@c12e/cortex:skill', diff --git a/src/compatibility.js b/src/compatibility.js new file mode 100644 index 00000000..9401cf4b --- /dev/null +++ b/src/compatibility.js @@ -0,0 +1,133 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const boxen = require('boxen'); +const chalk = require('chalk'); +const debug = require('debug')('cortex:cli'); +const filter = require('lodash/fp/filter'); +const findPackageJson = require('find-package-json'); +const getOr = require('lodash/fp/getOr'); +const isInstalledGlobally = require('is-installed-globally'); +const keys = require('lodash/fp/keys'); +const last = require('lodash/fp/last'); +const npmFetch = require('npm-registry-fetch'); +const request = require('superagent'); +const semver = require('semver'); + +const { loadProfile } = require('./config'); +const { printError } = require('../src/commands/utils'); + +const pkg = findPackageJson(__dirname).next().value; + +function getAvailableVersions(name) { + return npmFetch + .json(pkg.name) + .then(manifest => keys(getOr({}, 'versions', manifest))) + .then(versions => versions.sort(semver.compare)) + .catch((error) => { + throw new Error('Unable to determine CLI available versions'); + }); +} + +function getRequiredVersion(profile) { + const endpoint = `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${profile.token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (!res.ok) { throw new Error('Unable to fetch compatibility'); } + const { semver } = res.body; + return semver; + }); +} + +function notifyUpdate({ required = false, current, latest }) { + const opts = { + padding: 1, + margin: 1, + align: 'center', + borderColor: 'yellow', + borderStyle: 'round' + }; + + const message = + `Update ${required ? chalk.bold('required') : 'available'} ` + + chalk.dim(current) + + chalk.reset(' → ') + + chalk.green(latest) + + '\nRun ' + + chalk.cyan(`npm i ${isInstalledGlobally ? '-g' : ''}${pkg.name}@${latest}`) + + ' to update'; + + console.log(boxen(message, opts)); +} + +function upgradeAvailable(args) { + process.on('exit', () => { + notifyUpdate(args); + }); +} + +function upgradeRequired(args) { + notifyUpdate({ required: true, ...args }); + process.exit(-1); +} + +function getCompatibility(profile) { + debug('getCompatibility => %s', this.endpoint); + return Promise + .all([ + getAvailableVersions(pkg.name), + getRequiredVersion(profile) + ]) + .then(([versions, requirements]) => { + const compatibleVersions = filter(v => semver.satisfies(v, requirements), versions); + + const { version: current } = pkg; + const latest = last(compatibleVersions); + const satisfied = semver.satisfies(pkg.version, requirements); + + return ({ current, latest, satisfied }); + }); +}; + +function withCompatibilityCheck(fn) { + return (...args) => { + const options = last(args) || {}; + const { profile: profileName } = options; + const profile = loadProfile(profileName); + + return getCompatibility(profile) + .then(({ current, latest, satisfied }) => { + if (!satisfied) { + upgradeRequired({ current, latest }); + } + else if (semver.gt(latest, current)) { + upgradeAvailable({ current, latest }); + } + }) + .then(() => fn(...args)) + .catch((error) => { + printError(error); + }); + }; +}; + +module.exports = { + getCompatibility, + withCompatibilityCheck +} \ No newline at end of file diff --git a/src/config.js b/src/config.js index e445975e..c19bf119 100644 --- a/src/config.js +++ b/src/config.js @@ -101,15 +101,15 @@ class Config { getProfile(name) { const profile = this.profiles[name]; if (!profile) { - return null; + return undefined; } return new Profile(name, profile).validate(); } setProfile(name, {url, account, tenantId, username, token}) { - const profile = new Profile(name, {url, username, account, tenantId, token}); - profile.validate(); // do not set/save invalid profiles .. + const profile = new Profile(name, {url, username, account, tenantId, token}); + profile.validate(); // do not set/save invalid profiles .. this.profiles[name] = profile } diff --git a/test/compatibility.js b/test/compatibility.js new file mode 100644 index 00000000..e6d06ba9 --- /dev/null +++ b/test/compatibility.js @@ -0,0 +1,156 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chai = require("chai"); +const chaiAsPromised = require("chai-as-promised"); +const findPackageJson = require('find-package-json'); +const rewire = require('rewire'); +const semver = require('semver'); +const superagent = require('superagent'); +const superagentMock = require('superagent-mocker'); + +const compatibilityModule = rewire('../src/compatibility'); + +chai.use(chaiAsPromised); +const expect = chai.expect; + +const pkg = findPackageJson(__dirname).next().value; + +describe('compatibility checks', function () { + const profile = { + url: 'http://example.com', + account: 'testAccount', + tenantId: 'testTenant', + username: 'testUser', + token: 'testToken' + }; + + describe('with a compatible application version', function () { + let requestMock; + let revertCompatibilityModule; + + before(function () { + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + () => ({ ok: true, body: { semver: pkg.version } }) + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + }, + }); + }); + + after(function () { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should resolve as satisfied', function () { + const expected = { current: pkg.version, latest: pkg.version, satisfied: true }; + return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + }); + }); + + describe('with an incompatible application version', () => { + const nextMajorVersion = semver.inc(pkg.version, 'major'); + let requestMock; + let revertCompatibilityModule; + + before(() => { + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + () => ({ ok: true, body: { semver: nextMajorVersion } }) + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.resolve({ + versions: { + [pkg.version]: {}, + [nextMajorVersion]: {} + } + }) + }, + }); + }); + + after(() => { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should resolve as unsatisfied', () => { + const expected = { current: pkg.version, latest: nextMajorVersion, satisfied: false }; + return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + }); + }); + + describe('when the NPM registry cannot be reached', () => { + let requestMock; + let revertCompatibilityModule; + + before(() => { + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + () => { throw new Error('BOOM!'); } + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + }, + }); + }); + + after(() => { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should reject', () => { + return expect(compatibilityModule.getCompatibility(profile)).to.be.rejected; + }); + }); + + describe('when the compatibility API cannot be reached', () => { + let requestMock; + let revertCompatibilityModule; + + before(() => { + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + () => ({ ok: true, body: { semver: pkg.version } }) + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.reject(new Error('BOOM!')) + }, + }); + }); + + after(() => { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should reject', () => { + return expect(compatibilityModule.getCompatibility(profile)).to.be.rejected; + }); + }); +}); \ No newline at end of file From 59001d460147148bffe45bc157ff5906e76f4e73 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 9 Aug 2018 11:14:40 -0500 Subject: [PATCH 040/864] 0.8.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ea64c4e3..14f54b1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.8", + "version": "0.8.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From f95a37a9ae6a1afb64cd6fe928605487bcf882a1 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Mon, 13 Aug 2018 07:58:27 -0500 Subject: [PATCH 041/864] Force rebuild to trigger pipeline --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 22b099e8..68124b15 100644 --- a/README.md +++ b/README.md @@ -189,3 +189,4 @@ cortex agents list --query "[].{name: name, title: title}" - [ ] list - [ ] save [registryName] - [ ] delete [registryName] + From 9484d76ddd41705b4dfb6292d097e985b4187bf6 Mon Sep 17 00:00:00 2001 From: Agrim Asthana Date: Tue, 14 Aug 2018 16:37:03 -0500 Subject: [PATCH 042/864] upgrading generator version for generic JDBC --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b361b150..d2d3e7be 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.10", + "@c12e/generator-cortex": "0.3.11", "chalk": "2.3.0", "cli-table": "0.3.1", "co": "4.6.0", From 3508085ccd3dc3b21ac003d0c54f9feac3debc07 Mon Sep 17 00:00:00 2001 From: Agrim Asthana Date: Wed, 15 Aug 2018 14:47:11 -0500 Subject: [PATCH 043/864] version bump assuming 105 is already merged --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d2d3e7be..909abaf0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.8", + "version": "0.9.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 2868e567bbb59e1617a14c7e1d3a697888c28b2c Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 2 Aug 2018 16:24:50 -0500 Subject: [PATCH 044/864] Add backend compatibility check to all commands which use a profile --- .dockerignore | 1 - bin/cortex-accounts.js | 60 +++++++------- bin/cortex-actions.js | 41 +++++----- bin/cortex-agents.js | 97 +++++++++++----------- bin/cortex-configure.js | 23 +++--- bin/cortex-connections.js | 54 +++++++------ bin/cortex-content.js | 41 +++++----- bin/cortex-datasets.js | 52 ++++++------ bin/cortex-environments.js | 49 +++++------ bin/cortex-jobs.js | 42 +++++----- bin/cortex-processors.js | 47 +++++------ bin/cortex-project.js | 15 +--- bin/cortex-skills.js | 42 +++++----- bin/cortex-tasks.js | 42 +++++----- bin/cortex-types.js | 35 ++++---- bin/cortex-variables.js | 32 ++++---- bin/cortex.js | 22 +++-- bin/utils.js | 4 - package.json | 15 +++- src/commander.js | 53 ++++++++++++ src/commands/connections.js | 2 +- src/commands/skills.js | 2 +- src/compatibility.js | 146 +++++++++++++++++++++++++++++++++ src/config.js | 6 +- test/compatibility.js | 156 ++++++++++++++++++++++++++++++++++++ 25 files changed, 717 insertions(+), 362 deletions(-) delete mode 100644 bin/utils.js create mode 100644 src/commander.js create mode 100644 src/compatibility.js create mode 100644 test/compatibility.js diff --git a/.dockerignore b/.dockerignore index a5e4eb39..612967f9 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,4 @@ .dockerignore -package.json README.md Dockerfile.c12e-ci.cortex-cli c12e-ci.yml diff --git a/bin/cortex-accounts.js b/bin/cortex-accounts.js index a7c57ad6..f64c743f 100755 --- a/bin/cortex-accounts.js +++ b/bin/cortex-accounts.js @@ -16,9 +16,10 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); const { CreateGroupCommand, @@ -31,142 +32,137 @@ const { GrantGroupAccessToResourceCommand, } = require('../src/commands/accounts'); -let processed = false; program.description('Work with Cortex Accounts'); // Create Group program .command('create-groups ') .description('Create a group') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--description [description]', 'Group description') - .action((groupName, options) => { + .action(withCompatibilityCheck((groupName, options) => { try { new CreateGroupCommand(program).execute(groupName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Add Members to Group program .command('add-members-groups [members...]') .description('Add members to group') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((groupName, members, options) => { + .action(withCompatibilityCheck((groupName, members, options) => { try { new AddMembersToGroupCommand(program).execute(groupName, members, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Groups program .command('list-groups') .description('List groups') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListGroupsCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Group program .command('describe-groups ') .description('Describe a group') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((groupName, options) => { + .action(withCompatibilityCheck((groupName, options) => { try { new DescribeGroupCommand(program).execute(groupName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Delete Group program .command('delete-groups ') .description('Delete a group') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((groupName, options) => { + .action(withCompatibilityCheck((groupName, options) => { try { new DeleteGroupCommand(program).execute(groupName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Remove Members From Group program .command('remove-members-groups [members...]') .description('Remove members from a group') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((groupName, members, options) => { + .action(withCompatibilityCheck((groupName, members, options) => { try { new RemoveMembersFromGroupCommand(program).execute(groupName, members, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Register Resource program .command('register-resources ') .description('Register a resource') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--description [description]', 'Resource description') .option('--access [access]', 'Access level of resource [read/write/admin/execute]') - .action((resourceName, options) => { + .action(withCompatibilityCheck((resourceName, options) => { try { new RegisterResourceCommand(program).execute(resourceName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Grant Group Access To Resource program .command('grant-group-access-resources ') .description('Grant group access to a resource') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((resourceId, groupName, options) => { + .action(withCompatibilityCheck((resourceId, groupName, options) => { try { new GrantGroupAccessToResourceCommand(program).execute(resourceId, groupName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); - -process.env.DOC && require('../src/commands/utils').exportDoc(program); + })); -program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); \ No newline at end of file +program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 0f5ad4e2..010500ec 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -16,9 +16,11 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + const { ListActionsCommand, DescribeActionCommand, @@ -27,67 +29,67 @@ const { DeployActionCommand } = require('../src/commands/actions'); -let processed = false; program.description('Work with Cortex Actions'); // List Actions program .command('list') .description('List the deployed actions') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Action program .command('describe ') .description('Describe an action') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('-d, --download', 'Download code binary in response') - .action((actionName, options) => { + .action(withCompatibilityCheck((actionName, options) => { try { new DescribeActionCommand(program).execute(actionName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Delete Action program .command('delete ') .description('Delete an action') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') - .action((actionName, options) => { + .action(withCompatibilityCheck((actionName, options) => { try { new DeleteActionCommand(program).execute(actionName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Invoke Action program .command('invoke ') .description('Invoke an action') + .option('--no-compat', 'Ignore API compatibility checks') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') @@ -96,20 +98,20 @@ program .option('--actionType [actionType]', 'Type of action') .option('--path [path]', 'Path to the daemon service url being invoked', '') .option('--method [method]', 'HTTP method') // GET, POST ... - .action((actionName, options) => { + .action(withCompatibilityCheck((actionName, options) => { try { new InvokeActionCommand(program).execute(actionName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Deploy Action program .command('deploy ') .description('Deploy an action') + .option('--no-compat', 'Ignore API compatibility checks') .option('--kind [kind]', 'Action runtime kind') // python:3, python:2, nodejs:default .option('--code [code]', 'The code file or code archive to deploy') .option('--docker [image]', 'Docker image to use as the runner') @@ -121,7 +123,7 @@ program .option('--port [port]', 'Docker port') //'9091' .option('--environment [environment]', 'Environment') .option('--cmd [cmd]', 'Command to be executed') //'["--daemon"]' - .action((actionName, options) => { + .action(withCompatibilityCheck((actionName, options) => { try { if (!options.kind && !options.docker) { throw new Error('--kind [kind] or --docker [image] required'); @@ -132,15 +134,10 @@ program } new DeployActionCommand(program).execute(actionName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); - -process.env.DOC && require('../src/commands/utils').exportDoc(program); + })); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 44f2db40..69b1cf4b 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -16,9 +16,11 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + const { SaveAgentCommand, ListAgentsCommand, @@ -36,258 +38,251 @@ const { CreateAgentSnapshotCommand } = require('../src/commands/agents'); -let processed = false; program.description('Work with Cortex Agents'); // Save Agent program .command('save ') .description('Save an agent definition') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action((agentDefinition, options) => { + .action(withCompatibilityCheck((agentDefinition, options) => { try { new SaveAgentCommand(program).execute(agentDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Agents program .command('list') .description('List agent definitions') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Agent program .command('describe ') .description('Describe agent') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--versions', 'To get list of versions of an agent') - .action((agentName, options) => { + .action(withCompatibilityCheck((agentName, options) => { try { new DescribeAgentCommand(program).execute(agentName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Invoke Agent Service program .command('invoke ') .description('Invoke an agent service') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .action((agentName, serviceName, options) => { + .action(withCompatibilityCheck((agentName, serviceName, options) => { try { new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Get Agent Service Activation program .command('get-service-activation ') .description('Get service activation') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((activationId, options) => { + .action(withCompatibilityCheck((activationId, options) => { try { new GetServiceActivationCommand(program).execute(activationId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); program .command('list-snapshots ') .description('List agent snapshots') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((agentName, options) => { + .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); program .command('describe-snapshot ') .description('Describe agent snapshot') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') - .action((snapshotId, options) => { + .action(withCompatibilityCheck((snapshotId, options) => { try { new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Create Agent Snapshot program .command('create-snapshot [snapshotDefinition]') .description('Create an agent snapshot') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--agentName [name[:version]]', 'The name of the agent to snapshot') .option('--title [title]', 'A descriptive title for the snapshot') - - .action((snapshotDefinition, options) => { + .action(withCompatibilityCheck((snapshotDefinition, options) => { try { new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); //List agent instances program .command('list-instances ') .description('List agent instances ') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((agentName, options) => { + .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentInstancesCommand(program).execute(agentName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Create agent instances program .command('create-instance [instanceDefinition]') .description('Create agent instance') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--environmentName [environmentName]', 'The environment to use') .option('--profile [profile]', 'The profile to use') .option('--snapshotId [snapshotId]', 'The name of the agent to snapshot') - - .action((instanceDefinition, options) => { + .action(withCompatibilityCheck((instanceDefinition, options) => { try { new CreateAgentInstanceCommand(program).execute(instanceDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Get agent instance program .command('get-instance ') .description('Get agent instance') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .action((instanceId, options) => { + .action(withCompatibilityCheck((instanceId, options) => { try { new GetAgentInstanceCommand(program).execute(instanceId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Delete agent instance program .command('delete-instance ') .description('Delete agent instance') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((instanceId, options) => { + .action(withCompatibilityCheck((instanceId, options) => { try { new DeleteAgentInstanceCommand(program).execute(instanceId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); //Stop agent instance program .command('stop-instance ') .description('Stop agent instance') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((instanceId, options) => { + .action(withCompatibilityCheck((instanceId, options) => { try { new StopAgentInstanceCommand(program).execute(instanceId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); //List triggers program .command('list-triggers') .description('List of triggers for the current tenant') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListTriggersCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); - + })); -process.env.DOC && require('../src/commands/utils').exportDoc(program); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 7c98e075..1788baab 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -16,8 +16,15 @@ * limitations under the License. */ -const program = require('commander'); -const { ConfigureCommand, DescribeProfileCommand, ListProfilesCommand, SetProfileCommand } = require('../src/commands/configure'); +const program = require('../src/commander'); + +const { + ConfigureCommand, + DescribeProfileCommand, + ListProfilesCommand, + SetProfileCommand +} = require('../src/commands/configure'); + program.description('Configure the Cortex CLI'); let cmd = undefined; @@ -34,7 +41,6 @@ program .command('list') .description('List configured profiles') .action((options) => { - cmd = 'list'; new ListProfilesCommand(program).execute({color: program.color}); }); @@ -42,7 +48,6 @@ program .command('describe ') .description('Describe a configured profile') .action((profileName, options) => { - cmd = 'describe'; new DescribeProfileCommand(program).execute({profile: profileName, color: program.color}); }); @@ -50,15 +55,9 @@ program .command('set-profile ') .description('Sets the current profile.') .action((profileName, options) => { - cmd = 'set-profile'; new SetProfileCommand(program).execute(profileName, {color: program.color}); }); -process.env.DOC && require('../src/commands/utils').exportDoc(program); - - -program.parse(process.argv); - -if (cmd === undefined) { +program.parse(process.argv, { noActionHandler: function() { new ConfigureCommand(program).execute({profile: program.profile, color: program.color}); -} +}}); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 4c3cd20e..dee84418 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -16,13 +16,20 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListConnections, SaveConnectionCommand, DescribeConnectionCommand, TestConnectionCommand, - ListConnectionsTypes, GenerateConnectionCommand } = require('../src/commands/connections'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListConnections, + SaveConnectionCommand, + DescribeConnectionCommand, + TestConnectionCommand, + ListConnectionsTypes, + GenerateConnectionCommand +} = require('../src/commands/connections'); -let processed = false; program.description('Work with Cortex Connections'); @@ -30,88 +37,88 @@ program.description('Work with Cortex Connections'); program .command('list') .description('List connections definitions') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Save Connections program .command('save ') .description('Save a connections definition. Takes JSON file by default.') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action((connDefinition, options) => { + .action(withCompatibilityCheck((connDefinition, options) => { try { new SaveConnectionCommand(program).execute(connDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Connection program .command('describe ') .description('Describe connection') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((connectionName, options) => { + .action(withCompatibilityCheck((connectionName, options) => { try { new DescribeConnectionCommand(program).execute(connectionName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Test Connections program .command('test ') .description('Test a connections definition before saving. Takes JSON file by default.') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action((connDefinition, options) => { + .action(withCompatibilityCheck((connDefinition, options) => { try { new TestConnectionCommand(program).execute(connDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Connections Types program .command('list-types') .description('List connections types') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListConnectionsTypes(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Generate Connections @@ -119,18 +126,13 @@ program .command('generate') .description('Generates the structure of the connection payload') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use', 'default') - .action((options) => { + .action((options) => { // deliberately not using withCompatibilityCheck() try { new GenerateConnectionCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } }); -process.env.DOC && require('../src/commands/utils').exportDoc(program); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index fcf54ee3..87a1ba4d 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -16,12 +16,18 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListContent, UploadContent, DeleteContent, DownloadContent } = require('../src/commands/content'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListContent, + UploadContent, + DeleteContent, + DownloadContent +} = require('../src/commands/content'); -let processed = false; program.description('Work with Cortex Contents'); @@ -29,72 +35,69 @@ program.description('Work with Cortex Contents'); program .command('list') .description('List content') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListContent(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Upload Content program .command('upload ') .description('Upload content') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--secure', 'Uploads the content securely to the Cortex Vault. Use this option for keytab files or content that contains sensitive information that is required during Runtime. Take note of the contentKey you give to this content for future reference.') - .action((contentKey, filePath, options) => { + .action(withCompatibilityCheck((contentKey, filePath, options) => { try { new UploadContent(program).execute(contentKey, filePath, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Delete Content program .command('delete ') .description('Delete content') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((contentKey, options) => { + .action(withCompatibilityCheck((contentKey, options) => { try { new DeleteContent(program).execute(contentKey, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Download Content program .command('download ') .description('Download content') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--secure', 'Downloads the content securely from the Cortex Vault.') - .action((contentKey, options) => { + .action(withCompatibilityCheck((contentKey, options) => { try { new DownloadContent(program).execute(contentKey, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); -process.env.DOC && require('../src/commands/utils').exportDoc(program); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-datasets.js b/bin/cortex-datasets.js index 09199fb6..ec45bf15 100644 --- a/bin/cortex-datasets.js +++ b/bin/cortex-datasets.js @@ -16,13 +16,20 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListDatasets, SaveDatasetsCommand, DescribeDatasetCommand, GetDataframeCommand, - StreamDatasetCommand, GenerateDatasetCommand } = require('../src/commands/datasets'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListDatasets, + SaveDatasetsCommand, + DescribeDatasetCommand, + GetDataframeCommand, + StreamDatasetCommand, + GenerateDatasetCommand +} = require('../src/commands/datasets'); -let processed = false; program.description('Work with Cortex Connections'); @@ -30,92 +37,92 @@ program.description('Work with Cortex Connections'); program .command('list') .description('List Datasets') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using detailed JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListDatasets(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Save Dataset program .command('save ') .description('Save a dataset definition. Takes JSON file by default.') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for dataset file definition format') - .action((datasetDef, options) => { + .action(withCompatibilityCheck((datasetDef, options) => { try { new SaveDatasetsCommand(program).execute(datasetDef, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Dataset program .command('describe ') .description('Describe dataset') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((datasetName, options) => { + .action(withCompatibilityCheck((datasetName, options) => { try { new DescribeDatasetCommand(program).execute(datasetName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Get Dataframe program .command('get-dataframe ') .description('Get dataset in dataframe format') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((datasetName, options) => { + .action(withCompatibilityCheck((datasetName, options) => { try { new GetDataframeCommand(program).execute(datasetName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Get Stream program .command('get-stream ') .description('Stream dataset content') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((datasetName, options) => { + .action(withCompatibilityCheck((datasetName, options) => { try { new StreamDatasetCommand(program).execute(datasetName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); program .command('generate') .description('Generates the structure and top level build script for a dataset') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use', 'default') - .action((options) => { + .action((options) => { // deliberately not using withCompatibilityCheck() try { new GenerateDatasetCommand(program).execute(options); } @@ -124,7 +131,4 @@ program } }); -process.env.DOC && require('../src/commands/utils').exportDoc(program); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-environments.js b/bin/cortex-environments.js index 5f34e29a..ae9f69ec 100755 --- a/bin/cortex-environments.js +++ b/bin/cortex-environments.js @@ -16,13 +16,19 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListEnvironments, SaveEnvironmentCommand, PromoteEnvironmentCommand, - DescribeEnvironmentCommand, ListInstancesCommand } = require('../src/commands/environments'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListEnvironments, + SaveEnvironmentCommand, + PromoteEnvironmentCommand, + DescribeEnvironmentCommand, + ListInstancesCommand +} = require('../src/commands/environments'); -let processed = false; program.description('Work with Cortex Environments'); @@ -30,72 +36,72 @@ program.description('Work with Cortex Environments'); program .command('list') .description('List environments') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListEnvironments(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Save Environement program .command('save ') .description('Create an environment. Takes JSON file by default.') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for environment definition format') - .action((envDefinition, options) => { + .action(withCompatibilityCheck((envDefinition, options) => { try { new SaveEnvironmentCommand(program).execute(envDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Promote Environment program .command('promote [promotionDefinition]') .description('Promote a snapshot to an environment. Takes JSON file by default.') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for environment definition format') .option('--snapshotId [snapshotId]', 'SnapshotID to promote') .option('--environmentName [environmentName]', 'Environment to promote snapshotId to') - .action((promotionDefinition, options) => { + .action(withCompatibilityCheck((promotionDefinition, options) => { try { new PromoteEnvironmentCommand(program).execute(promotionDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Environment program .command('describe ') .description('Describe environment') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((environmentName, options) => { + .action(withCompatibilityCheck((environmentName, options) => { try { new DescribeEnvironmentCommand(program).execute(environmentName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); @@ -103,21 +109,18 @@ program program .command('list-instances [environmentName]') .description('List instances in environment') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((environmentName, options) => { + .action(withCompatibilityCheck((environmentName, options) => { try { new ListInstancesCommand(program).execute(environmentName || 'cortex/default', options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); -process.env.DOC && require('../src/commands/utils').exportDoc(program); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-jobs.js b/bin/cortex-jobs.js index af17c2f0..3c0f3c61 100755 --- a/bin/cortex-jobs.js +++ b/bin/cortex-jobs.js @@ -16,12 +16,18 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListJobs, JobStatus, DescribeJob, SaveJob } = require('../src/commands/jobs'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListJobs, + JobStatus, + DescribeJob, + SaveJob +} = require('../src/commands/jobs'); -let processed = false; program.description('Work with Cortex Jobs'); @@ -29,74 +35,70 @@ program.description('Work with Cortex Jobs'); program .command('list') .description('List job definitions') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListJobs(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Job program .command('describe ') .description('Describe job definition') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .action((jobDefinition, options) => { + .action(withCompatibilityCheck((jobDefinition, options) => { try { new DescribeJob(program).execute(jobDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Get Job Status program .command('status ') .description('Get job status') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .action((jobDefinition, options) => { + .action(withCompatibilityCheck((jobDefinition, options) => { try { new JobStatus(program).execute(jobDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Save Job program .command('save ') .description('Save a job definition') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for job definition format') - .action((jobDefinition, options) => { + .action(withCompatibilityCheck((jobDefinition, options) => { try { new SaveJob(program).execute(jobDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); - -process.env.DOC && require('../src/commands/utils').exportDoc(program); + })); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-processors.js b/bin/cortex-processors.js index 6f7f2f16..44403dc8 100755 --- a/bin/cortex-processors.js +++ b/bin/cortex-processors.js @@ -16,9 +16,11 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + const { ListRuntimesCommand, ListRuntimeTypesCommand, @@ -28,117 +30,112 @@ const { InvokeActionCommand } = require('../src/commands/processors'); -let processed = false; program.description('Work with the Cortex Processor Runtime'); // List Processor Runtime Types program .command('list-runtime-types') .description('List available processor runtime types') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListRuntimeTypesCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Processor Runtimes program .command('list-runtimes') .description('List configured processor runtimes') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListRuntimesCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Processor Runtime program .command('describe ') .description('Describe a processor runtime') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((runtimeName, options) => { + .action(withCompatibilityCheck((runtimeName, options) => { try { new DescribeRuntimeCommand(program).execute(runtimeName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Delete Processor Runtime program .command('delete ') .description('Delete a processor runtime') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .action((runtimeName, options) => { + .action(withCompatibilityCheck((runtimeName, options) => { try { new DeleteRuntimeCommand(program).execute(runtimeName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Actions program .command('list-actions ') .description('List the available processor runtime actions') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((runtimeName, options) => { + .action(withCompatibilityCheck((runtimeName, options) => { try { new ListActionsCommand(program).execute(runtimeName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Invoke Action program .command('invoke ') .description('Invoke a processor action') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .action((runtimeName, actionId, options) => { + .action(withCompatibilityCheck((runtimeName, actionId, options) => { try { new InvokeActionCommand(program).execute(runtimeName, actionId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); - -process.env.DOC && require('../src/commands/utils').exportDoc(program); + })); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-project.js b/bin/cortex-project.js index d9b80d55..53c18c47 100644 --- a/bin/cortex-project.js +++ b/bin/cortex-project.js @@ -16,14 +16,11 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { - GenerateProjectCommand -} = require('../src/commands/project'); +const program = require('./src/commander'); + +const { GenerateProjectCommand } = require('../src/commands/project'); -let processed = false; program.description('Work with a related collection of Cortex contributions'); // Generate Project @@ -31,19 +28,13 @@ program .command('generate') .description('Generates the structure and top level build script for a project') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') .action((options) => { try { new GenerateProjectCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } }); -process.env.DOC && require('../src/commands/utils').exportDoc(program); - program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index d38307c2..e956078b 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -16,83 +16,83 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { SaveSkillCommand, ListSkillsCommand, DescribeSkillCommand, GenerateSkillCommand } = require('../src/commands/skills'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + SaveSkillCommand, + ListSkillsCommand, + DescribeSkillCommand, + GenerateSkillCommand +} = require('../src/commands/skills'); -let processed = false; program.description('Work with Cortex Skills'); - + // Save Skill program .command('save ') .description('Save a skill definition') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for skill definition format') - .action((skillDefinition, options) => { + .action(withCompatibilityCheck((skillDefinition, options) => { try { new SaveSkillCommand(program).execute(skillDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Skills program .command('list') .description('List skill definitions') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListSkillsCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Skill program .command('describe ') .description('Describe skill') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((skillName, options) => { + .action(withCompatibilityCheck((skillName, options) => { try { new DescribeSkillCommand(program).execute(skillName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); program .command('generate') .description('Generates the structure and top level build script for a skill') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use', 'default') - .action((options) => { + .action((options) => { // deliberately not using withCompatibilityCheck() try { new GenerateSkillCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } }); -process.env.DOC && require('../src/commands/utils').exportDoc(program); - program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); \ No newline at end of file diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index b805cdac..43b4efe0 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -16,12 +16,18 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { ListTasks, TaskLogs, CancelTask, DescribeTask } = require('../src/commands/tasks'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListTasks, + TaskLogs, + CancelTask, + DescribeTask +} = require('../src/commands/tasks'); -let processed = false; program.description('Work with Cortex Jobs'); @@ -29,76 +35,72 @@ program.description('Work with Cortex Jobs'); program .command('list ') .description('List task definitions within a job definition') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((jobId, options) => { + .action(withCompatibilityCheck((jobId, options) => { try { new ListTasks(program).execute(jobId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Get Tasks logs program .command('logs ') .description('Get Tasks logs') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((jobId, taskId, options) => { + .action(withCompatibilityCheck((jobId, taskId, options) => { try { new TaskLogs(program).execute(jobId, taskId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Cancel task program .command('cancel ') .description('Cancel a task') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('-m, --message ', 'Cancellation message') - .action((jobId, taskId, options) => { + .action(withCompatibilityCheck((jobId, taskId, options) => { try { new CancelTask(program).execute(jobId, taskId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe task program .command('describe ') .description('Describe a task definition') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action((jobId, taskId, options) => { + .action(withCompatibilityCheck((jobId, taskId, options) => { try { new DescribeTask(program).execute(jobId, taskId, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); - -process.env.DOC && require('../src/commands/utils').exportDoc(program); + })); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 30212c3e..a4026824 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -16,68 +16,69 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); -const { SaveTypeCommand, ListTypesCommand, DescribeTypeCommand } = require('../src/commands/types'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + SaveTypeCommand, + ListTypesCommand, + DescribeTypeCommand +} = require('../src/commands/types'); -let processed = false; program.description('Work with Cortex Types'); // Save Type program .command('save ') .description('Save a type definition') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for type definition format') - .action((typeDefinition, options) => { + .action(withCompatibilityCheck((typeDefinition, options) => { try { new SaveTypeCommand(program).execute(typeDefinition, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // List Types program .command('list') .description('List type definitions') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Describe Type program .command('describe ') .description('Describe type') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action((typeName, options) => { + .action(withCompatibilityCheck((typeName, options) => { try { new DescribeTypeCommand(program).execute(typeName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); - -process.env.DOC && require('../src/commands/utils').exportDoc(program); + })); program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); diff --git a/bin/cortex-variables.js b/bin/cortex-variables.js index a111d4ce..edb0e44d 100755 --- a/bin/cortex-variables.js +++ b/bin/cortex-variables.js @@ -16,9 +16,10 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const program = require('commander'); const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); const { ListVariablesCommand, @@ -26,61 +27,58 @@ const { WriteVariableCommand, } = require('../src/commands/variables'); -let processed = false; program.description('Work with Cortex Secure Variables'); // List Secure Variable Keys program .command('list') .description('List secure variable keys') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') - .action((options) => { + .action(withCompatibilityCheck((options) => { try { new ListVariablesCommand(program).execute(options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Read Secure Variable Value program .command('describe ') .description('Retrieve the value stored for the given variable key.') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') - .action((keyName, options) => { + .action(withCompatibilityCheck((keyName, options) => { try { new ReadVariableCommand(program).execute(keyName, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); + })); // Write Secure Variable Value program .command('save [value]') .description('Save or overwrite a secure variable value. By default, values are stored as strings but can also be saved as JSON or YAML values.') + .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--data [data]', 'JSON value to save') .option('--data-file [dataFile]', 'A file containing either JSON or YAML formatted value to save') .option('--profile [profile]', 'The profile to use') - .action((keyName, value, options) => { + .action(withCompatibilityCheck((keyName, value, options) => { try { new WriteVariableCommand(program).execute(keyName, value, options); - processed = true; } catch (err) { console.error(chalk.red(err.message)); } - }); - -process.env.DOC && require('../src/commands/utils').exportDoc(program); + })); -program.parse(process.argv); -if (!processed) - ['string', 'undefined'].includes(typeof program.args[0]) && helper.helpAndExit(program); \ No newline at end of file +program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex.js b/bin/cortex.js index 2100d6ba..29764918 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -16,12 +16,15 @@ * limitations under the License. */ -const helper = require('./utils.js'); -const { version } = require('../package.json'); -const program = require('commander'); +const findPackageJson = require('find-package-json'); +const identity = require('lodash/fp/identity'); + +const program = require('../src/commander'); + +const pkg = findPackageJson(__dirname).next().value; program - .version(version, '-v, --version') + .version(pkg.version, '-v, --version') .description('Cortex CLI') .command('accounts [cmd]', 'Work with Cortex Accounts') .command('actions [cmd]', 'Work with Cortex Actions') @@ -39,8 +42,11 @@ program .command('types [cmd]', 'Work with Cortex Types') .command('variables [cmd]', 'Work with Cortex Secure Variables'); -process.env.DOC && require('../src/commands/utils').exportDoc(program); - -program.parse(process.argv); -!program.commands.map(cmd => cmd._name).includes(program.args[0]) && helper.helpAndExit(program); +program.parse(process.argv, { noActionHandler: function() { + +}}); +if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { + program.outputHelp(identity); + process.exit(1); +} diff --git a/bin/utils.js b/bin/utils.js deleted file mode 100644 index b4f3ef36..00000000 --- a/bin/utils.js +++ /dev/null @@ -1,4 +0,0 @@ -exports.helpAndExit = function (theProgram) { - theProgram.outputHelp((txt) => {return txt}); - process.exit(1); -}; diff --git a/package.json b/package.json index b361b150..fcb6f6a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.8", + "version": "0.9.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -26,22 +26,31 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "@c12e/generator-cortex": "0.3.10", + "boxen": "1.3.0", "chalk": "2.3.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "2.12.2", + "commander": "2.16.0", "debug": "3.1.0", "event-stream": "3.3.4", + "find-package-json": "1.1.0", + "is-installed-globally": "0.1.0", "jmespath": "0.15.0", "joi": "13.1.0", "js-yaml": "3.10.0", "lodash": "4.17.10", + "npm-registry-fetch": "3.2.0", + "semver": "5.5.0", "superagent": "3.8.2", "uuid": "3.2.1", "yeoman-environment": "2.0.5" }, "devDependencies": { - "mocha": "5.0.0" + "chai": "4.1.2", + "chai-as-promised": "7.1.1", + "mocha": "5.2.0", + "rewire": "4.0.1", + "superagent-mocker": "0.5.2" } } diff --git a/src/commander.js b/src/commander.js new file mode 100644 index 00000000..364e5e68 --- /dev/null +++ b/src/commander.js @@ -0,0 +1,53 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const commander = require('commander'); +const identity = require('lodash/fp/identity'); +const merge = require('lodash/fp/merge'); + +const { exportDoc } = require('./commands/utils.js'); + +// Monkey-patch `commander` library to keep track of when an action executes +commander.Command.prototype._action = commander.Command.prototype.action; +commander.Command.prototype.action = function(fn) { + return this._action(function wrapped(...args) { + (this.parent || this)._actionTaken = true; + fn(...args); + }); +}; + +commander.Command.prototype.wasActionTaken = function() { + return (this.parent || this)._actionTaken || false; +}; + +commander.Command.prototype.helpAndExit = function() { + this.outputHelp(identity); + process.exit(1); +}; + +commander.Command.prototype._parse = commander.Command.prototype.parse; +commander.Command.prototype.parse = function(argv, options) { + const defaultOpts = { noActionHandler: this.helpAndExit.bind(this) }; + const opts = merge(defaultOpts, options || {}); + process.env.DOC && exportDoc(this); + + this._parse(argv); + if (!this.wasActionTaken()) { + opts.noActionHandler(); + } +}; + +module.exports = commander; diff --git a/src/commands/connections.js b/src/commands/connections.js index d9459e2b..3b114945 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -293,7 +293,7 @@ module.exports.GenerateConnectionCommand = class GenerateConnectionCommand { } execute(options) { - debug('%s.generateConnection()', options.profile); + debug('%s.generateConnection()'); const yenv = yeoman.createEnv(); yenv.lookup(()=>{ yenv.run('@c12e/cortex:connections', diff --git a/src/commands/skills.js b/src/commands/skills.js index e032bba1..090bec7f 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -122,7 +122,7 @@ module.exports.GenerateSkillCommand = class GenerateSkillCommand { } execute(options) { - debug('%s.generateSkill()', options.profile); + debug('%s.generateSkill()'); const yenv = yeoman.createEnv(); yenv.lookup(()=>{ yenv.run('@c12e/cortex:skill', diff --git a/src/compatibility.js b/src/compatibility.js new file mode 100644 index 00000000..47501695 --- /dev/null +++ b/src/compatibility.js @@ -0,0 +1,146 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const boxen = require('boxen'); +const chalk = require('chalk'); +const concat = require('lodash/fp/concat'); +const debug = require('debug')('cortex:cli'); +const filter = require('lodash/fp/filter'); +const findPackageJson = require('find-package-json'); +const getOr = require('lodash/fp/getOr'); +const isInstalledGlobally = require('is-installed-globally'); +const keys = require('lodash/fp/keys'); +const last = require('lodash/fp/last'); +const npmFetch = require('npm-registry-fetch'); +const request = require('superagent'); +const semver = require('semver'); +const uniq = require('lodash/fp/uniq'); + +const { loadProfile } = require('./config'); +const { printError } = require('../src/commands/utils'); + +const pkg = findPackageJson(__dirname).next().value; + +function getAvailableVersions(name) { + debug('getAvailableVersions => %s', name); + return npmFetch + .json(pkg.name) + .then(manifest => keys(getOr({}, 'versions', manifest))) + .then(versions => uniq(concat(versions, pkg.version))) + .then(versions => versions.sort(semver.compare)) + .catch((error) => { + throw new Error('Unable to determine CLI available versions'); + }); +} + +function getRequiredVersion(profile) { + const endpoint = `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`; + debug('getRequiredVersion => %s', endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${profile.token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (!res.ok) { throw new Error('Unable to fetch compatibility'); } + const { semver } = res.body; + return semver; + }); +} + +function notifyUpdate({ required = false, current, latest }) { + const opts = { + padding: 1, + margin: 1, + align: 'center', + borderColor: 'yellow', + borderStyle: 'round' + }; + + const message = + `Update ${required ? chalk.bold('required') : 'available'} ` + + chalk.dim(current) + + chalk.reset(' → ') + + chalk.green(latest) + + '\nRun ' + + chalk.cyan(`npm i ${isInstalledGlobally ? '-g' : ''}${pkg.name}@${latest}`) + + ' to update'; + + console.log(boxen(message, opts)); +} + +function upgradeAvailable(args) { + process.on('exit', () => { + notifyUpdate(args); + }); +} + +function upgradeRequired(args) { + notifyUpdate({ required: true, ...args }); + process.exit(-1); +} + +function getCompatibility(profile) { + debug('getCompatibility => %s profile', profile.name); + return Promise + .all([ + getAvailableVersions(pkg.name), + getRequiredVersion(profile) + ]) + .then(([versions, requirements]) => { + debug('getCompatibility => versions: %s, requirements: %s', versions, requirements); + const compatibleVersions = filter(v => semver.satisfies(v, requirements), versions); + debug('getCompatibility => compatible versions: %s', compatibleVersions); + + const { version: current } = pkg; + const latest = last(compatibleVersions); + const satisfied = semver.satisfies(pkg.version, requirements); + debug('getCompatibility => satisfied: %s', satisfied); + + return ({ current, latest, satisfied }); + }); +}; + +function withCompatibilityCheck(fn) { + return (...args) => { + const options = last(args) || {}; + + if (options.compat) { + const { profile: profileName } = options; + const profile = loadProfile(profileName); + + return getCompatibility(profile) + .then(({ current, latest, satisfied }) => { + if (!satisfied) { + upgradeRequired({ current, latest }); + } + else if (semver.gt(latest, current)) { + upgradeAvailable({ current, latest }); + } + }) + .then(() => fn(...args)) + .catch((error) => { + printError(error); + }); + } + + return Promise.resolve().then(() => fn(...args)); + }; +}; + +module.exports = { + getCompatibility, + withCompatibilityCheck +} \ No newline at end of file diff --git a/src/config.js b/src/config.js index e445975e..c19bf119 100644 --- a/src/config.js +++ b/src/config.js @@ -101,15 +101,15 @@ class Config { getProfile(name) { const profile = this.profiles[name]; if (!profile) { - return null; + return undefined; } return new Profile(name, profile).validate(); } setProfile(name, {url, account, tenantId, username, token}) { - const profile = new Profile(name, {url, username, account, tenantId, token}); - profile.validate(); // do not set/save invalid profiles .. + const profile = new Profile(name, {url, username, account, tenantId, token}); + profile.validate(); // do not set/save invalid profiles .. this.profiles[name] = profile } diff --git a/test/compatibility.js b/test/compatibility.js new file mode 100644 index 00000000..e6d06ba9 --- /dev/null +++ b/test/compatibility.js @@ -0,0 +1,156 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chai = require("chai"); +const chaiAsPromised = require("chai-as-promised"); +const findPackageJson = require('find-package-json'); +const rewire = require('rewire'); +const semver = require('semver'); +const superagent = require('superagent'); +const superagentMock = require('superagent-mocker'); + +const compatibilityModule = rewire('../src/compatibility'); + +chai.use(chaiAsPromised); +const expect = chai.expect; + +const pkg = findPackageJson(__dirname).next().value; + +describe('compatibility checks', function () { + const profile = { + url: 'http://example.com', + account: 'testAccount', + tenantId: 'testTenant', + username: 'testUser', + token: 'testToken' + }; + + describe('with a compatible application version', function () { + let requestMock; + let revertCompatibilityModule; + + before(function () { + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + () => ({ ok: true, body: { semver: pkg.version } }) + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + }, + }); + }); + + after(function () { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should resolve as satisfied', function () { + const expected = { current: pkg.version, latest: pkg.version, satisfied: true }; + return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + }); + }); + + describe('with an incompatible application version', () => { + const nextMajorVersion = semver.inc(pkg.version, 'major'); + let requestMock; + let revertCompatibilityModule; + + before(() => { + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + () => ({ ok: true, body: { semver: nextMajorVersion } }) + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.resolve({ + versions: { + [pkg.version]: {}, + [nextMajorVersion]: {} + } + }) + }, + }); + }); + + after(() => { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should resolve as unsatisfied', () => { + const expected = { current: pkg.version, latest: nextMajorVersion, satisfied: false }; + return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + }); + }); + + describe('when the NPM registry cannot be reached', () => { + let requestMock; + let revertCompatibilityModule; + + before(() => { + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + () => { throw new Error('BOOM!'); } + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + }, + }); + }); + + after(() => { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should reject', () => { + return expect(compatibilityModule.getCompatibility(profile)).to.be.rejected; + }); + }); + + describe('when the compatibility API cannot be reached', () => { + let requestMock; + let revertCompatibilityModule; + + before(() => { + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + () => ({ ok: true, body: { semver: pkg.version } }) + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.reject(new Error('BOOM!')) + }, + }); + }); + + after(() => { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should reject', () => { + return expect(compatibilityModule.getCompatibility(profile)).to.be.rejected; + }); + }); +}); \ No newline at end of file From b4994f4e22bac88166ba52b60cc1c2141cfe8138 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Wed, 15 Aug 2018 16:21:06 -0500 Subject: [PATCH 045/864] Merging the compatibility-checks shouldn't have changed package.json. Reverting to 0.7.8. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fcb6f6a7..ea64c4e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.9.0", + "version": "0.7.8", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 94c2ec0a21a8c213f011f95301f0a2f452d5a49c Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Wed, 15 Aug 2018 16:21:24 -0500 Subject: [PATCH 046/864] 0.8.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ea64c4e3..14f54b1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.7.8", + "version": "0.8.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 29e29a66d09a31ceea8a586c372c5dfaeefeb701 Mon Sep 17 00:00:00 2001 From: Agrim Asthana Date: Wed, 15 Aug 2018 16:31:13 -0500 Subject: [PATCH 047/864] 0.9.0 --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index f66b36c2..bea32150 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,6 @@ { "name": "cortex-cli", - "version": "0.9.1", - "version": "0.8.0", + "version": "0.9.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 28118ddd3fea55886f2dc7fd85067b0f1e25ce90 Mon Sep 17 00:00:00 2001 From: Agrim Asthana Date: Thu, 16 Aug 2018 13:17:54 -0500 Subject: [PATCH 048/864] fixing project generate command --- bin/cortex-project.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-project.js b/bin/cortex-project.js index 53c18c47..54d548ab 100644 --- a/bin/cortex-project.js +++ b/bin/cortex-project.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('./src/commander'); +const program = require('../src/commander'); const { GenerateProjectCommand } = require('../src/commands/project'); From be205e70beb269e00b823a115b8e35fda3716544 Mon Sep 17 00:00:00 2001 From: Agrim Asthana Date: Thu, 16 Aug 2018 13:32:39 -0500 Subject: [PATCH 049/864] 0.9.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bea32150..d31ae351 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.9.0", + "version": "0.9.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From c63c1e2c973934fe055da86ddbf8e8943c042968 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Fri, 17 Aug 2018 17:03:51 -0500 Subject: [PATCH 050/864] Add `agents list-activations` command --- bin/cortex-agents.js | 35 ++++++++++++++++++++++++++-- src/client/agents.js | 27 ++++++++++++++++++--- src/commands/agents.js | 53 ++++++++++++++++++++++++++++++++++++++---- 3 files changed, 105 insertions(+), 10 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 69b1cf4b..c6630d8f 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -26,7 +26,8 @@ const { ListAgentsCommand, DescribeAgentCommand, InvokeAgentServiceCommand, - GetServiceActivationCommand, + GetActivationCommand, + ListActivationsCommand, ListAgentInstancesCommand, CreateAgentInstanceCommand, GetAgentInstanceCommand, @@ -38,6 +39,8 @@ const { CreateAgentSnapshotCommand } = require('../src/commands/agents'); +const { printError } = require('../src/commands/utils'); + program.description('Work with Cortex Agents'); // Save Agent @@ -119,15 +122,43 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(() => { + printError('DEPRECATED. Use get-activation instead.'); + }); + +program + .command('get-activation ') + .description('Get dataset or service activation') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { - new GetServiceActivationCommand(program).execute(activationId, options); + new GetActivationCommand(program).execute(activationId, options); } catch (err) { console.error(chalk.red(err.message)); } })); +program + .command('list-activations ') + .description('List agent instance activations') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--environmentName [environmentName]', 'The environment to list or \'all\'') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((instanceId, options) => { + try { + new ListActivationsCommand(program).execute(instanceId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); program .command('list-snapshots ') diff --git a/src/client/agents.js b/src/client/agents.js index 1ab39e49..982666fc 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -49,9 +49,30 @@ module.exports = class Agents { }); } - getServiceActivation(token, activationId) { - const endpoint = `${this.endpointV3}/services/activations/${activationId}`; - debug('getServiceActivation(%s) => %s', activationId, endpoint); + getActivation(token, activationId) { + const endpoint = `${this.endpointV3}/activations/${activationId}`; + debug('getActivation(%s) => %s', activationId, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + listActivations(token, instanceId, environmentName) { + let endpoint = `${this.endpointV3}/instances/${instanceId}/activations`; + debug('listActivations(%s, %s) => %s', instanceId, environmentName, endpoint); + if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; return request .get(endpoint) .set('Authorization', `Bearer ${token}`) diff --git a/src/commands/agents.js b/src/commands/agents.js index a46cc21a..936333eb 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -179,7 +179,7 @@ module.exports.InvokeAgentServiceCommand = class { } }; -module.exports.GetServiceActivationCommand = class { +module.exports.GetActivationCommand = class { constructor(program) { this.program = program; @@ -187,24 +187,67 @@ module.exports.GetServiceActivationCommand = class { execute(activationId, options) { const profile = loadProfile(options.profile); - debug('%s.getServiceActivation(%s)', profile.name, activationId); + debug('%s.getActivation(%s)', profile.name, activationId); const agents = new Agents(profile.url); - agents.getServiceActivation(profile.token, activationId).then((response) => { + agents.getActivation(profile.token, activationId).then((response) => { if (response.success) { let result = filterObject(response.result.activation, options); printSuccess(JSON.stringify(result, null, 2), options); } else { - printError(`Failed to get service activation ${activationId}: ${response.message}`, options); + printError(`Failed to get activation ${activationId}: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to get service activation ${activationId}: ${err.status} ${err.message}`, options); + printError(`Failed to get activation ${activationId}: ${err.status} ${err.message}`, options); }); } }; +module.exports.ListActivationsCommand = class { + + constructor(program) { + this.program = program; + } + + execute(instanceId, options) { + const profile = loadProfile(options.profile); + const envName = options.environmentName; + debug('%s.listActivations(%s)', profile.name, instanceId); + + const agents = new Agents(profile.url); + agents.listActivations(profile.token, instanceId, envName).then((response) => { + if (response.success) { + let result = response.result.activations; + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + { column: 'Activation Id', field: 'activationId', width: 38 }, + { column: 'Type', field: 'type', width: 20 }, + { column: 'Status', field: 'status', width: 15 }, + { column: 'Start', field: 'start', width: 15 }, + { column: 'End', field: 'end', width: 15 }, + { column: 'Session Id', field: 'sessionId', width: 38 }, + ]; + + printTable(tableSpec, result); + } + } + else { + printError(`Failed to list agent instances ${agentName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list agent instances ${instanceId}: ${err.status} ${err.message}`, options); + }); + } +}; module.exports.ListAgentInstancesCommand = class { From 180c6a48298fbc923eeea6a1c170a12c6e948d99 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Wed, 22 Aug 2018 15:43:27 -0500 Subject: [PATCH 051/864] Allow the old `get-service`activation` command to still work (with the deprecation warning message) --- bin/cortex-agents.js | 14 ++++++++++---- src/commands/utils.js | 9 +++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index c6630d8f..ae11233c 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -39,7 +39,7 @@ const { CreateAgentSnapshotCommand } = require('../src/commands/agents'); -const { printError } = require('../src/commands/utils'); +const { printWarning } = require('../src/commands/utils'); program.description('Work with Cortex Agents'); @@ -122,9 +122,15 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(() => { - printError('DEPRECATED. Use get-activation instead.'); - }); + .action(withCompatibilityCheck((activationId, options) => { + try { + printWarning('DEPRECATED. This command will be removed in a future version. Use get-activation instead.', options); + new GetActivationCommand(program).execute(activationId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); program .command('get-activation ') diff --git a/src/commands/utils.js b/src/commands/utils.js index 50cb5dd2..6a4265c0 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -46,6 +46,15 @@ module.exports.printSuccess = function(message, options) { } }; +module.exports.printWarning = function(message, options) { + if (!options || options.color === 'on') { + console.log(chalk.yellow(message)); + } + else { + console.log(message); + } +}; + module.exports.printError = function(message, options) { if (!options || options.color === 'on') { console.error(chalk.red(message)); From 724076b2660ee5f4dc14db1c8d9760048a75a213 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 23 Aug 2018 09:18:39 -0500 Subject: [PATCH 052/864] 0.10.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d31ae351..0eed3139 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.9.1", + "version": "0.10.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 27fa121dbf755261b8efc1c1c2c43d9dc63d7c38 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 23 Aug 2018 13:37:47 -0500 Subject: [PATCH 053/864] Print `get-service-activation` to stderr --- bin/cortex-agents.js | 4 ++-- src/commands/utils.js | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index ae11233c..f73d4e07 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -39,7 +39,7 @@ const { CreateAgentSnapshotCommand } = require('../src/commands/agents'); -const { printWarning } = require('../src/commands/utils'); +const { printError } = require('../src/commands/utils'); program.description('Work with Cortex Agents'); @@ -124,7 +124,7 @@ program .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { - printWarning('DEPRECATED. This command will be removed in a future version. Use get-activation instead.', options); + printError('DEPRECATED. This command will be removed in a future version. Use get-activation instead.', options, false); new GetActivationCommand(program).execute(activationId, options); } catch (err) { diff --git a/src/commands/utils.js b/src/commands/utils.js index 6a4265c0..bab92ca7 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -55,14 +55,16 @@ module.exports.printWarning = function(message, options) { } }; -module.exports.printError = function(message, options) { +module.exports.printError = function(message, options, exit = true) { if (!options || options.color === 'on') { console.error(chalk.red(message)); } else { console.error(message); } - process.exit(1) + if (exit) { + process.exit(1) + } }; module.exports.filterObject = function(obj, options) { From bedf0d6b0fcc662d0d729cf91c810838c1a4d5c4 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 23 Aug 2018 14:08:42 -0500 Subject: [PATCH 054/864] 0.10.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0eed3139..20a3c119 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.10.0", + "version": "0.10.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 6f2487698f6658f0acae2974da796bbf993c9f06 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 29 Aug 2018 18:47:17 -0500 Subject: [PATCH 055/864] Fix skill save error, return validation errors (#109) --- src/commands/skills.js | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index 090bec7f..cd94fd21 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +const _ = require('lodash'); const fs = require('fs'); const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); @@ -21,6 +21,25 @@ const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +function _formatpath(p){ + let cnt=0, res = ''; + const len = p.length; + p.forEach(s => { + if (_.isNumber(s)) { + res += `[${s}]` + }else + if ( cnt < len) + res += s; + else + res +=s; + if (cnt < len-1 && !_.isNumber(p[cnt+1])) + res += '.'; + cnt += 1; + + }) + return res; +} + module.exports.SaveSkillCommand = class SaveSkillCommand { constructor(program) { @@ -38,9 +57,19 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { catalog.saveSkill(profile.token, skill).then((response) => { if (response.success) { printSuccess(`Skill saved`, options); - } - else { - printError(`Failed to save skill: ${response.status} ${response.message}`, options); + } else { + if (response.details) { + console.log(`Failed to save skill: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + {column: 'Path', field: 'path', width: 50}, + {column: 'Message', field: 'message', width: 100}, + ]; + response.details.map(d => d.path = _formatpath(d.path)); + printTable(tableSpec,response.details); + printError(''); // Just exit + + } } }) .catch((err) => { From f4cbe1f15fbc923409b29ca76ee898e8813ba08e Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 30 Aug 2018 13:37:50 -0500 Subject: [PATCH 056/864] Fix typo in connection error (#110) * Fix typo in connection error * Deal with missing params gracefully --- src/commands/connections.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/connections.js b/src/commands/connections.js index 3b114945..d7b2a9bf 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +const _ = require('lodash'); const fs = require('fs'); const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); @@ -174,7 +174,7 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = connectionDefinition.params.filter(item => item.name === paramName); + const results = _.get(connectionDefinition,'params',[]).filter(item => item.name === paramName); if (results && results.length) { return results[0]['value']; @@ -233,7 +233,7 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { printSuccess(`Connection successfully tested`, options); } else { - printError(`Failed while testing connection: ${err.response.body.message}`, options); + printError(`Failed while testing connection: ${response.message || response.body.message }`, options); } }) .catch((err) => { From f7f76c3e68d8e47caf5286c82d43769079ed431b Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 6 Sep 2018 20:19:48 -0500 Subject: [PATCH 057/864] Add black box support to cli, correct api call fo daemon invoke (#113) * Add black box support to cli, correct api call fo daemon invoke --- bin/cortex-actions.js | 8 ++++---- src/client/actions.js | 9 +++------ src/commands/actions.js | 8 +++++--- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 010500ec..196f2784 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -128,10 +128,10 @@ program if (!options.kind && !options.docker) { throw new Error('--kind [kind] or --docker [image] required'); } - - if (options.docker && options.kind) { - throw new Error('Use either --kind [kind] or --docker [image], but not both'); - } + // allow kind with docker for blackbox images.. + // if (options.docker && options.kind) { + // throw new Error('Use either --kind [kind] or --docker [image], but not both'); + // } new DeployActionCommand(program).execute(actionName, options); } diff --git a/src/client/actions.js b/src/client/actions.js index 7b375e81..0ced470c 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -26,21 +26,18 @@ module.exports = class Actions { this.endpointV3 = `${cortexUrl}/v3/actions`; } - invokeAction(token, actionName, path, params, actionType, method) { + invokeAction(token, actionName, params, actionType) { let endpoint = `${this.endpointV3}/${actionName}/invoke`; - if (path) { - endpoint = `${endpoint}/${path}` - } if (actionType) { endpoint = `${endpoint}?actionType=${actionType}` } debug('invokeAction(%s) => %s', actionName, endpoint); - const req = request(method || 'POST', endpoint) + const req = request + .post(endpoint) .set('Authorization', `Bearer ${token}`) .send(params); - return req.then((res) => { if (res.ok) { return {success: true, result: res.body}; diff --git a/src/commands/actions.js b/src/commands/actions.js index 547adf90..ac110f65 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -146,10 +146,12 @@ module.exports.InvokeActionCommand = class { debug('params: %o', params); const actionType = options.actionType; - const path = options.path; - const method = options.method; + params.properties = { + 'daemon.method': options.method, + 'daemon.path': options.path, + }; const actions = new Actions(profile.url); - actions.invokeAction(profile.token, actionName, path, params, actionType, method) + actions.invokeAction(profile.token, actionName, params, actionType) .then((response) => { if (response.success) { let result = filterObject(response.result, options); From 53e961fe6084eb7d90f2c8d95848da2c3daec67e Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 7 Sep 2018 09:13:11 -0500 Subject: [PATCH 058/864] 0.10.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 20a3c119..11afe3fc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.10.1", + "version": "0.10.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 6213d2113615682efbe1891ad385cfcf62d1c175 Mon Sep 17 00:00:00 2001 From: vadan-cs Date: Mon, 10 Sep 2018 11:58:06 -0500 Subject: [PATCH 059/864] daemon-invocation-fix (#115) conditionally overwriting params `properties` on daemon invocation --- src/commands/actions.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index ac110f65..4c79eb04 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -146,10 +146,10 @@ module.exports.InvokeActionCommand = class { debug('params: %o', params); const actionType = options.actionType; - params.properties = { - 'daemon.method': options.method, - 'daemon.path': options.path, - }; + if (options.method) + params.properties['daemon.method'] = options.method; + if (options.path) + params.properties['daemon.path'] = options.path; const actions = new Actions(profile.url); actions.invokeAction(profile.token, actionName, params, actionType) .then((response) => { From 45a5c6e4d39602ce96e144c3e71828db7ef5cf59 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 11 Sep 2018 11:21:38 -0500 Subject: [PATCH 060/864] 0.10.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 11afe3fc..9428758b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.10.2", + "version": "0.10.3", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 1297e82b7aae4a99c70c681163a4ab3138575784 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Tue, 11 Sep 2018 11:22:57 -0500 Subject: [PATCH 061/864] Fix error message for list activations (#116) --- src/commands/agents.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 936333eb..6ebced1a 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -240,11 +240,11 @@ module.exports.ListActivationsCommand = class { } } else { - printError(`Failed to list agent instances ${agentName}: ${response.message}`, options); + printError(`Failed to list activations for instance ${instanceId}: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list agent instances ${instanceId}: ${err.status} ${err.message}`, options); + printError(`Failed to list activations for instance ${instanceId}: ${err.status} ${err.message}`, options); }); } }; From a712641c91ba0f73774d3f20b02ca428cad7a3a7 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Tue, 11 Sep 2018 19:35:44 -0500 Subject: [PATCH 062/864] Handle invoke params with no properties --- src/commands/actions.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/actions.js b/src/commands/actions.js index 4c79eb04..3e8415ea 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -146,6 +146,7 @@ module.exports.InvokeActionCommand = class { debug('params: %o', params); const actionType = options.actionType; + params.properties = params.properties || {}; if (options.method) params.properties['daemon.method'] = options.method; if (options.path) From 3c83462ead63d533203b3eb8dca37001d1342499 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Wed, 12 Sep 2018 08:11:32 -0500 Subject: [PATCH 063/864] 0.10.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9428758b..ac5f8476 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.10.3", + "version": "0.10.4", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From e1a1d576d318d295fef28402c7ae70263a4754e5 Mon Sep 17 00:00:00 2001 From: dwisecup-cs Date: Fri, 21 Sep 2018 12:58:07 -0500 Subject: [PATCH 064/864] Ccf 7476 task status (#118) * Working logs: cortex actions task-logs jobId taskId * Working Cancel: cortex actions task-cancel jobId taskId * Working task status: cortex actions task-status * 0.11.0 --- bin/cortex-actions.js | 56 +++++++++++++++++++++++++++++++++- package.json | 2 +- src/client/actions.js | 66 ++++++++++++++++++++++++++++++++++++++++ src/commands/actions.js | 67 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 189 insertions(+), 2 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 196f2784..e1f34716 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -26,7 +26,10 @@ const { DescribeActionCommand, DeleteActionCommand, InvokeActionCommand, - DeployActionCommand + DeployActionCommand, + TaskLogsActionCommand, + TaskCancelActionCommand, + TaskStatusActionCommand } = require('../src/commands/actions'); program.description('Work with Cortex Actions'); @@ -140,4 +143,55 @@ program } })); +// Get Tasks logs +program + .command('task-logs ') + .description('Get Tasks logs') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((jobId, taskId, options) => { + try { + new TaskLogsActionCommand(program).execute(jobId, taskId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Cancel Tasks +program + .command('task-cancel ') + .description('Cancel Task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((jobId, taskId, options) => { + try { + new TaskCancelActionCommand(program).execute(jobId, taskId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Get Tasks Status +program + .command('task-status ') + .description('Get Tasks status') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((jobId, taskId, options) => { + try { + new TaskStatusActionCommand(program).execute(jobId, taskId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/package.json b/package.json index ac5f8476..439b01c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.10.4", + "version": "0.11.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/actions.js b/src/client/actions.js index 0ced470c..eb9a2768 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -14,6 +14,7 @@ * limitations under the License. */ +const chalk = require('chalk'); const request = require('superagent'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); @@ -24,6 +25,7 @@ module.exports = class Actions { this.cortexUrl = cortexUrl; this.endpoint = `${cortexUrl}/v2/actions`; this.endpointV3 = `${cortexUrl}/v3/actions`; + this.endpointJobsV3 = `${cortexUrl}/v3/jobs`; } invokeAction(token, actionName, params, actionType) { @@ -136,4 +138,68 @@ module.exports = class Actions { return constructError(err); }); } + + taskLogs(token, jobId, taskId) { + const canonicalJobId = Actions.getCanonicalJobId(jobId); + const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}/logs`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .accept('application/json') + .then((res) => { + if (res.ok) { + return res.body; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + taskCancel(token, jobId, taskId) { + const canonicalJobId = Actions.getCanonicalJobId(jobId); + const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}`; + return request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .accept('application/json') + .then((res) => { + if (res.ok) { + return res.body; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + taskStatus(token, jobId, taskId) { + const canonicalJobId = Actions.getCanonicalJobId(jobId); + const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}/status`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .accept('application/json') + .then((res) => { + if (res.ok) { + return res.body; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + static getCanonicalJobId(jobId) { + let canonicalJobId = jobId; + const namespaceProvided = /\w\/\w/.test(jobId); + if (!namespaceProvided) { + canonicalJobId = `default/${jobId}`; + console.warn(chalk.yellow(`Namespace not given in jobId, assuming 'default'`)); + } + return canonicalJobId; + } }; diff --git a/src/commands/actions.js b/src/commands/actions.js index 3e8415ea..c90ca0ad 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -195,3 +195,70 @@ module.exports.DeleteActionCommand = class { }); } }; + +module.exports.TaskLogsActionCommand = class { + constructor(program) { + this.program = program; + } + + execute(jobId, taskId, options) { + const profile = loadProfile(options.profile); + debug('%s.taskLogsActions (%s, %s)', profile.name, jobId, taskId); + const actions = new Actions(profile.url); + actions.taskLogs(profile.token, jobId, taskId) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Action task logs failed: ${response.status} ${response.message}`, options); + } + }) + } +}; + +module.exports.TaskCancelActionCommand = class { + constructor(program) { + this.program = program; + } + + execute(jobId, taskId, options) { + const profile = loadProfile(options.profile); + debug('%s.taskCancelActions (%s, %s)', profile.name, jobId, taskId); + const actions = new Actions(profile.url); + actions.taskCancel(profile.token, jobId, taskId) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Action cancel task failed: ${response.status} ${response.message}`, options); + } + }) + } +}; + +module.exports.TaskStatusActionCommand = class { + constructor(program) { + this.program = program; + } + + execute(jobId, taskId, options) { + const profile = loadProfile(options.profile); + debug('%s.taskStatusActions (%s, %s)', profile.name, jobId, taskId); + const actions = new Actions(profile.url); + actions.taskStatus(profile.token, jobId, taskId) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Action task logs failed: ${response.status} ${response.message}`, options); + } + }) + } +} + From 7193c299edd1839bcb4f94a67abd8ecad0549f6e Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Mon, 24 Sep 2018 17:28:24 -0500 Subject: [PATCH 065/864] Fix missing space in 'npm install -gcortex-cli' instruction --- src/compatibility.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compatibility.js b/src/compatibility.js index 8ef203e9..5036e187 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -75,7 +75,7 @@ function notifyUpdate({ required = false, current, latest }) { chalk.reset(' → ') + chalk.green(latest) + '\nRun ' + - chalk.cyan(`npm i ${isInstalledGlobally ? '-g' : ''}${pkg.name}@${latest}`) + + chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) + ' to update'; console.log(boxen(message, opts)); From edb920f719862fbf311a0f57708257c6c7eae5f3 Mon Sep 17 00:00:00 2001 From: dwisecup-cs Date: Thu, 27 Sep 2018 12:30:28 -0500 Subject: [PATCH 066/864] Update to v0.11.0 (#120) * Ccf 7476 task status (#118) * Working logs: cortex actions task-logs jobId taskId * Working Cancel: cortex actions task-cancel jobId taskId * Working task status: cortex actions task-status * 0.11.0 * Fix missing space in 'npm install -gcortex-cli' instruction --- bin/cortex-actions.js | 56 +++++++++++++++++++++++++++++++++- package.json | 2 +- src/client/actions.js | 66 ++++++++++++++++++++++++++++++++++++++++ src/commands/actions.js | 67 +++++++++++++++++++++++++++++++++++++++++ src/compatibility.js | 2 +- 5 files changed, 190 insertions(+), 3 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 196f2784..e1f34716 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -26,7 +26,10 @@ const { DescribeActionCommand, DeleteActionCommand, InvokeActionCommand, - DeployActionCommand + DeployActionCommand, + TaskLogsActionCommand, + TaskCancelActionCommand, + TaskStatusActionCommand } = require('../src/commands/actions'); program.description('Work with Cortex Actions'); @@ -140,4 +143,55 @@ program } })); +// Get Tasks logs +program + .command('task-logs ') + .description('Get Tasks logs') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((jobId, taskId, options) => { + try { + new TaskLogsActionCommand(program).execute(jobId, taskId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Cancel Tasks +program + .command('task-cancel ') + .description('Cancel Task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((jobId, taskId, options) => { + try { + new TaskCancelActionCommand(program).execute(jobId, taskId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Get Tasks Status +program + .command('task-status ') + .description('Get Tasks status') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((jobId, taskId, options) => { + try { + new TaskStatusActionCommand(program).execute(jobId, taskId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/package.json b/package.json index ac5f8476..439b01c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.10.4", + "version": "0.11.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/actions.js b/src/client/actions.js index 0ced470c..eb9a2768 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -14,6 +14,7 @@ * limitations under the License. */ +const chalk = require('chalk'); const request = require('superagent'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); @@ -24,6 +25,7 @@ module.exports = class Actions { this.cortexUrl = cortexUrl; this.endpoint = `${cortexUrl}/v2/actions`; this.endpointV3 = `${cortexUrl}/v3/actions`; + this.endpointJobsV3 = `${cortexUrl}/v3/jobs`; } invokeAction(token, actionName, params, actionType) { @@ -136,4 +138,68 @@ module.exports = class Actions { return constructError(err); }); } + + taskLogs(token, jobId, taskId) { + const canonicalJobId = Actions.getCanonicalJobId(jobId); + const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}/logs`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .accept('application/json') + .then((res) => { + if (res.ok) { + return res.body; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + taskCancel(token, jobId, taskId) { + const canonicalJobId = Actions.getCanonicalJobId(jobId); + const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}`; + return request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .accept('application/json') + .then((res) => { + if (res.ok) { + return res.body; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + taskStatus(token, jobId, taskId) { + const canonicalJobId = Actions.getCanonicalJobId(jobId); + const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}/status`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .accept('application/json') + .then((res) => { + if (res.ok) { + return res.body; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + static getCanonicalJobId(jobId) { + let canonicalJobId = jobId; + const namespaceProvided = /\w\/\w/.test(jobId); + if (!namespaceProvided) { + canonicalJobId = `default/${jobId}`; + console.warn(chalk.yellow(`Namespace not given in jobId, assuming 'default'`)); + } + return canonicalJobId; + } }; diff --git a/src/commands/actions.js b/src/commands/actions.js index 3e8415ea..c90ca0ad 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -195,3 +195,70 @@ module.exports.DeleteActionCommand = class { }); } }; + +module.exports.TaskLogsActionCommand = class { + constructor(program) { + this.program = program; + } + + execute(jobId, taskId, options) { + const profile = loadProfile(options.profile); + debug('%s.taskLogsActions (%s, %s)', profile.name, jobId, taskId); + const actions = new Actions(profile.url); + actions.taskLogs(profile.token, jobId, taskId) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Action task logs failed: ${response.status} ${response.message}`, options); + } + }) + } +}; + +module.exports.TaskCancelActionCommand = class { + constructor(program) { + this.program = program; + } + + execute(jobId, taskId, options) { + const profile = loadProfile(options.profile); + debug('%s.taskCancelActions (%s, %s)', profile.name, jobId, taskId); + const actions = new Actions(profile.url); + actions.taskCancel(profile.token, jobId, taskId) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Action cancel task failed: ${response.status} ${response.message}`, options); + } + }) + } +}; + +module.exports.TaskStatusActionCommand = class { + constructor(program) { + this.program = program; + } + + execute(jobId, taskId, options) { + const profile = loadProfile(options.profile); + debug('%s.taskStatusActions (%s, %s)', profile.name, jobId, taskId); + const actions = new Actions(profile.url); + actions.taskStatus(profile.token, jobId, taskId) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Action task logs failed: ${response.status} ${response.message}`, options); + } + }) + } +} + diff --git a/src/compatibility.js b/src/compatibility.js index 8ef203e9..5036e187 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -75,7 +75,7 @@ function notifyUpdate({ required = false, current, latest }) { chalk.reset(' → ') + chalk.green(latest) + '\nRun ' + - chalk.cyan(`npm i ${isInstalledGlobally ? '-g' : ''}${pkg.name}@${latest}`) + + chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) + ' to update'; console.log(boxen(message, opts)); From 38095cd0b36e4bd3c23a8e0d8345daaf2c1aad17 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Tue, 2 Oct 2018 13:48:09 -0500 Subject: [PATCH 067/864] First pass at streaming and non-text download --- src/client/content.js | 45 ++++++++++++++++++++++++++++++----------- src/commands/content.js | 8 ++++---- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/src/client/content.js b/src/client/content.js index 162c2565..72fb3c06 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -102,25 +102,46 @@ module.exports = class Content { downloadContent(token, contentKey) { debug('downloadContent(%s) => %s', contentKey, this.endpoint); - const url = `${this.endpoint}/${contentKey}`; - return request + // strip leading slash, if any + const cleanedKey = contentKey.replace(/^\//, ''); + const url = `${this.endpoint}/${cleanedKey}`; + const stream = request .get(url) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return {success: true, message: res.text}; + .set('Authorization', `Bearer ${token}`); + + return new Promise((resolve, reject) => { + stream.on('response', function(response) { + if (response.status !== 200) { + stream.abort(); + return resolve({ + success: false, + status: stream.response.status, + message: stream.response.error + }); } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); }); + + stream.on('end', () => { + return resolve({ + success: true, + message: `\nDownloaded ${contentKey}`, + status: stream.response.status + }); + }); + + stream.on('error', (err) => { + return resolve(constructError(err)); + }); + + stream.pipe(process.stdout); + }); } downloadSecureContent(token, contentKey) { - const url = `${this.cortexUrl}/v2/tenants/secrets/${contentKey}`; + // strip leading slash, if any + const cleanedKey = contentKey.replace(/^\//, ''); + const url = `${this.cortexUrl}/v2/tenants/secrets/${cleanedKey}`; debug('downloadContent(%s) => %s', contentKey); return request .get(url) diff --git a/src/commands/content.js b/src/commands/content.js index b550bde5..9a747e0e 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -160,16 +160,16 @@ module.exports.DownloadContent = class DownloadContent { else { content.downloadContent(profile.token, contentKey).then((response) => { if (response.success) { - printSuccess(response.message, options); + // messages need to be on stderr as content is streamed to stdout + console.error(response.message); } else { printError(`Failed to download content: ${response.status} ${response.message}`, options); } - }) - .catch((err) => { + }).catch((err) => { debug(err); printError(`Failed to download content: ${err.status} ${err.message}`, options); - }); + }); } } From 907d5895410ceca7c5435583ea88a5ac552bc10d Mon Sep 17 00:00:00 2001 From: mbiehl-cs <37336575+mbiehl-cs@users.noreply.github.com> Date: Wed, 3 Oct 2018 09:17:16 -0500 Subject: [PATCH 068/864] COPS-1826 (#121) Added line to generate docs on every build. We then update docs repo with the generated docs. --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 75331f17..3ffc0770 100755 --- a/build.sh +++ b/build.sh @@ -30,7 +30,7 @@ function docker_build(){ npm cache clear --force npm install -dd --verbose echo ${VERSION} > version.txt - + ./generate_docs.sh BRANCH=$(git symbolic-ref --short -q HEAD) if [[ ${BRANCH} = "master" ]]; then rm -rf node_modules From 036c1e3349022a2d74224ca926774ba72d082d6d Mon Sep 17 00:00:00 2001 From: dwisecup-cs Date: Tue, 9 Oct 2018 09:07:14 -0500 Subject: [PATCH 069/864] Ccf 7777 list job tasks (#123) * list job tasks and status * fixed profile import * 0.11.1 * removed unused argument --- bin/cortex-actions.js | 21 ++++++++++++++++++++- package.json | 2 +- src/client/actions.js | 18 ++++++++++++++++++ src/commands/actions.js | 24 +++++++++++++++++++++++- 4 files changed, 62 insertions(+), 3 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index e1f34716..cb10df19 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -29,7 +29,8 @@ const { DeployActionCommand, TaskLogsActionCommand, TaskCancelActionCommand, - TaskStatusActionCommand + TaskStatusActionCommand, + JobTaskListActionCommand } = require('../src/commands/actions'); program.description('Work with Cortex Actions'); @@ -194,4 +195,22 @@ program } })); +// List Job tasks +program + .command('task-list ') + .description('List Job\'s tasks status') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' + + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') + .action(withCompatibilityCheck((jobId, options) => { + try { + new JobTaskListActionCommand(program).execute(jobId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/package.json b/package.json index 439b01c7..67d31bfa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.11.0", + "version": "0.11.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/actions.js b/src/client/actions.js index eb9a2768..9c82e32a 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -193,6 +193,24 @@ module.exports = class Actions { }); } + jobListTasks(token, jobId) { + const canonicalJobId = Actions.getCanonicalJobId(jobId); + const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .accept('application/json') + .then((res) => { + if (res.ok) { + return res.body; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + static getCanonicalJobId(jobId) { let canonicalJobId = jobId; const namespaceProvided = /\w\/\w/.test(jobId); diff --git a/src/commands/actions.js b/src/commands/actions.js index c90ca0ad..f02d2777 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -260,5 +260,27 @@ module.exports.TaskStatusActionCommand = class { } }) } -} +}; + +module.exports.JobTaskListActionCommand = class { + constructor(program) { + this.program = program; + } + + execute(jobId, options) { + const profile = loadProfile(options.profile); + debug('%s.jobTaskListActions (%s, %s)', profile.name, jobId); + const actions = new Actions(profile.url); + actions.jobListTasks(profile.token, jobId) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Action list job\'s tasks failed: ${response.status} ${response.message}`, options); + } + }) + } +}; From 638bed315daef89f9960d8540a298bc91f15f80d Mon Sep 17 00:00:00 2001 From: dwisecup-cs Date: Tue, 9 Oct 2018 09:25:17 -0500 Subject: [PATCH 070/864] working job stats (#125) --- bin/cortex-actions.js | 23 ++++++++++++++++++++++- src/client/actions.js | 18 ++++++++++++++++++ src/commands/actions.js | 26 ++++++++++++++++++++++++-- 3 files changed, 64 insertions(+), 3 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index cb10df19..e1363663 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -30,7 +30,11 @@ const { TaskLogsActionCommand, TaskCancelActionCommand, TaskStatusActionCommand, +<<<<<<< HEAD JobTaskListActionCommand +======= + TaskStatsActionCommand +>>>>>>> working job stats } = require('../src/commands/actions'); program.description('Work with Cortex Actions'); @@ -181,7 +185,7 @@ program // Get Tasks Status program .command('task-status ') - .description('Get Tasks status') + .description('Get Task\'s status') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -213,4 +217,21 @@ program } })); +// Get Job Stats +program + .command('task-stats ') + .description('Get Task\'s stats for a given Job') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((jobId, options) => { + try { + new TaskStatsActionCommand(program).execute(jobId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/actions.js b/src/client/actions.js index 9c82e32a..ff5c6a9d 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -211,6 +211,24 @@ module.exports = class Actions { }); } + taskStats(token, jobId) { + const canonicalJobId = Actions.getCanonicalJobId(jobId); + const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/stats`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .accept('application/json') + .then((res) => { + if (res.ok) { + return res.body; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + static getCanonicalJobId(jobId) { let canonicalJobId = jobId; const namespaceProvided = /\w\/\w/.test(jobId); diff --git a/src/commands/actions.js b/src/commands/actions.js index f02d2777..98eba40a 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -263,7 +263,7 @@ module.exports.TaskStatusActionCommand = class { }; module.exports.JobTaskListActionCommand = class { - constructor(program) { + constructor(program) { this.program = program; } @@ -280,7 +280,29 @@ module.exports.JobTaskListActionCommand = class { else { printError(`Action list job\'s tasks failed: ${response.status} ${response.message}`, options); } - }) + }) } }; + +module.exports.TaskStatsActionCommand = class { + constructor(program) { + this.program = program; + } + + execute(jobId, options) { + const profile = loadProfile(options.profile); + debug('%s.taskStatsActions (%s, %s)', profile.name, jobId); + const actions = new Actions(profile.url); + actions.taskStats(profile.token, jobId) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Action get Job tasks stats failed: ${response.status} ${response.message}`, options); + } + }) + } +}; From f7ea5de6e56fff3bd933e8bdacd6923c4c1d9b1b Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Tue, 9 Oct 2018 11:01:06 -0500 Subject: [PATCH 071/864] fix bad merge --- bin/cortex-actions.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index e1363663..6316e381 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -30,11 +30,8 @@ const { TaskLogsActionCommand, TaskCancelActionCommand, TaskStatusActionCommand, -<<<<<<< HEAD - JobTaskListActionCommand -======= - TaskStatsActionCommand ->>>>>>> working job stats + JobTaskListActionCommand, + TaskStatsActionCommand, } = require('../src/commands/actions'); program.description('Work with Cortex Actions'); From 41ce1d7bc3282009be115d41494dbe27e7651dfa Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 11 Oct 2018 21:22:38 -0500 Subject: [PATCH 072/864] [CCF-7795] Managed content upload now uses streaming --- bin/cortex-content.js | 2 + package.json | 2 + src/client/content.js | 108 ++++++++++++++++++++++++++++++------ src/commands/connections.js | 8 +-- src/commands/content.js | 11 ++-- 5 files changed, 104 insertions(+), 27 deletions(-) diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 87a1ba4d..e79d74dc 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -53,6 +53,7 @@ program program .command('upload ') .description('Upload content') + .option('--progress', 'Show upload progress') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -86,6 +87,7 @@ program program .command('download ') .description('Download content') + .option('--progress', 'Show download progress') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/package.json b/package.json index 67d31bfa..97e62900 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,8 @@ "js-yaml": "3.10.0", "lodash": "4.17.10", "npm-registry-fetch": "3.2.0", + "progress": "2.0.0", + "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", "uuid": "3.2.1", diff --git a/src/client/content.js b/src/client/content.js index 72fb3c06..45a9d2d2 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -14,6 +14,12 @@ * limitations under the License. */ +const fs = require('fs'); +const os = require('os'); +const path = require('path'); +const { URL } = require('url'); + +const ProgressBar = require('progress'); const request = require('superagent'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); @@ -25,6 +31,11 @@ module.exports = class Content { this.endpoint = `${cortexUrl}/v2/content`; } + _sanitizeKey(key) { + // strip leading slash, if any + return key.replace(/^\//, ''); + } + listContent(token) { debug('listContent %s', this.endpoint); return request @@ -43,12 +54,13 @@ module.exports = class Content { } uploadContent(token, {content, key}) { - debug('saveContent(%s, %s) => %s', key, content, this.endpoint); + debug('uploadContent(%s, %s) => %s', key, content, this.endpoint); + const contentKey = this._sanitizeKey(key); return request .post(this.endpoint) .set('Authorization', `Bearer ${token}`) .accept('application/json') - .field('key', key) + .field('key', contentKey) .attach('content', content) .then((res) => { if (res.ok) { @@ -61,9 +73,52 @@ module.exports = class Content { }); } + uploadContentStreaming(token, key, content, showProgress = false) { + debug('uploadContentStreaming(%s, %s) => %s', key, content, `${this.endpoint}/${key}`); + + // NOTE: superagent only supports uploads via .attach(), which uses multipart forms (@see + // https://github.com/visionmedia/superagent/issues/1250). To perform a streaming upload, + // we use requestjs instead. + const request = require('request'); + + const contentKey = this._sanitizeKey(key); + const url = new URL(`${this.endpoint}/${contentKey}`); + + let progressBar; + if (showProgress) { + progressBar = new ProgressBar( + ' uploading [:bar] :percent :etas', + { renderThrottle: 500, total: fs.statSync(content).size } + ); + } + + return new Promise((resolve) => { + fs + .createReadStream(content) + .on('data', (chunk) => progressBar && progressBar.tick(chunk.length)) + .pipe(request + .post({ + uri: url, + headers: { + 'Accept': 'application/json', + 'Authorization': `Bearer ${token}` + } + }) + .on('response', (res) => { + if (res.statusCode === 200) { + resolve({success: true, message: res.body}); + } + resolve({success: false, message: res.body, status: res.status}); + }) + .on('error', (err) => resolve(constructError(err))) + ); + }); + } + uploadSecureContent(token, key, content) { - const url = `${this.cortexUrl}/v2/tenants/secrets/${key}`; - debug('uploadSecureContent(%s => %s', content, url); + const contentKey = this._sanitizeKey(key); + const url = `${this.cortexUrl}/v2/tenants/secrets/${contentKey}`; + debug('uploadSecureContent(%s) => %s', content, url); return request .post(url) .set('Authorization', `Bearer ${token}`) @@ -82,8 +137,9 @@ module.exports = class Content { } - deleteContent(token, contentKey) { - debug('deleteContent(%s) => %s', contentKey, this.endpoint); + deleteContent(token, key) { + debug('deleteContent(%s) => %s', key, this.endpoint); + const contentKey = this._sanitizeKey(key); const url = `${this.endpoint}/${contentKey}`; return request .delete(url) @@ -100,14 +156,33 @@ module.exports = class Content { }); } - downloadContent(token, contentKey) { - debug('downloadContent(%s) => %s', contentKey, this.endpoint); - // strip leading slash, if any - const cleanedKey = contentKey.replace(/^\//, ''); - const url = `${this.endpoint}/${cleanedKey}`; + downloadContent(token, key, showProgress = false) { + debug('downloadContent(%s) => %s', key, this.endpoint); + const contentKey = this._sanitizeKey(key); + const url = `${this.endpoint}/${contentKey}`; + const stream = request .get(url) - .set('Authorization', `Bearer ${token}`); + .set('Authorization', `Bearer ${token}`) + .use((req) => { + if (showProgress) { + req.on('request', (clientReq) => { + clientReq.on('response', function(res) { + const total = +(res.headers['content-length'] || res.headers['Content-Length']); + const progressBar = new ProgressBar( + ' downloading [:bar] :percent :etas', + { + current: 0, + renderThrottle: 500, + total: total, + } + ); + + res.on('data', (chunk) => progressBar.tick(chunk.length)); + }); + }); + } + }); return new Promise((resolve, reject) => { stream.on('response', function(response) { @@ -138,11 +213,10 @@ module.exports = class Content { } - downloadSecureContent(token, contentKey) { - // strip leading slash, if any - const cleanedKey = contentKey.replace(/^\//, ''); - const url = `${this.cortexUrl}/v2/tenants/secrets/${cleanedKey}`; - debug('downloadContent(%s) => %s', contentKey); + downloadSecureContent(token, key) { + const contentKey = this._sanitizeKey(key); + const url = `${this.cortexUrl}/v2/tenants/secrets/${contentKey}`; + debug('downloadContent(%s) => %s', contentKey, url); return request .get(url) .set('Authorization', `Bearer ${token}`) diff --git a/src/commands/connections.js b/src/commands/connections.js index d7b2a9bf..215262ff 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -101,9 +101,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { const content = new Content(profile.url); const connection = new Connections(profile.url); - const payload = {'content': jdbcJarFilePath, 'key': contentKey}; - - content.uploadContent(profile.token, payload).then((response) => { + content.uploadContentStreaming(profile.token, contentKey, jdbcJarFilePath).then((response) => { let marshaledConnObj = connObj; marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); @@ -202,9 +200,7 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { const content = new Content(profile.url); const connection = new Connections(profile.url); - const payload = {'content': jdbcJarFilePath, 'key': contentKey}; - - content.uploadContent(profile.token, payload).then((response) => { + content.uploadContentStreaming(profile.token, contentKey, jdbcJarFilePath).then((response) => { const connection = new Connections(profile.url); let marshaledConnObj = connObj; diff --git a/src/commands/content.js b/src/commands/content.js index 9a747e0e..80c397b7 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -69,8 +69,11 @@ module.exports.UploadContent = class UploadContent { execute(contentKey, filePath, options) { const profile = loadProfile(options.profile); - debug('%s.listContent()', profile.name); + debug('%s.uploadContent()', profile.name); + const content = new Content(profile.url); + const showProgress = !!options.progress; + if (options.secure) { const fileContent = fs.readFileSync(filePath); const fileBaseName = path.basename(filePath); @@ -87,8 +90,7 @@ module.exports.UploadContent = class UploadContent { }) } else { - const payload = {'content': filePath, 'key': contentKey}; - content.uploadContent(profile.token, payload).then((response) => { + content.uploadContentStreaming(profile.token, contentKey, filePath, showProgress).then((response) => { if (response.success) { printSuccess(`Content successfully uploaded.`, options); } @@ -141,6 +143,7 @@ module.exports.DownloadContent = class DownloadContent { debug('%s.DownloadContent()', profile.name); const content = new Content(profile.url); + const showProgress = !!options.progress; // To download content from Secrets if (options.secure) { @@ -158,7 +161,7 @@ module.exports.DownloadContent = class DownloadContent { }); } else { - content.downloadContent(profile.token, contentKey).then((response) => { + content.downloadContent(profile.token, contentKey, showProgress).then((response) => { if (response.success) { // messages need to be on stderr as content is streamed to stdout console.error(response.message); From ca4b8c8f576add6b5b78219f1a0c21b45f1e69cd Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Fri, 12 Oct 2018 14:22:20 -0500 Subject: [PATCH 073/864] 0.12.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 97e62900..9cc87154 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.11.1", + "version": "0.12.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From a1743192d921d7a67d185cddbbc1d33529f2003b Mon Sep 17 00:00:00 2001 From: Victor Adan Date: Tue, 9 Oct 2018 14:42:19 -0500 Subject: [PATCH 074/864] CCF-7794-action-deploy-push-image - Added `--push-docker` CLI option to push docker image to the private - cortex actions deploy now pushes a Docker image not in the private registry into the private registry - Added dockerTag.sh utility script for Cortex private registry 'migration' --- bin/cortex-actions.js | 1 + bin/cortex-jobs.js | 1 + package.json | 4 ++- scripts/dockerTag.sh | 33 ++++++++++++++++++++++ src/client/actions.js | 61 +++++++++++++++++++++++++++++++++++++++-- src/client/jobs.js | 13 +++++++-- src/commands/actions.js | 3 +- src/commands/jobs.js | 2 +- src/commands/utils.js | 25 ++++++++++++++++- test/docker-registry.js | 42 ++++++++++++++++++++++++++++ 10 files changed, 176 insertions(+), 9 deletions(-) create mode 100755 scripts/dockerTag.sh create mode 100644 test/docker-registry.js diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 6316e381..371ff4af 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -128,6 +128,7 @@ program .option('--port [port]', 'Docker port') //'9091' .option('--environment [environment]', 'Environment') .option('--cmd [cmd]', 'Command to be executed') //'["--daemon"]' + .option('--push-docker', 'Push Docker image to the Cortex registry.') .action(withCompatibilityCheck((actionName, options) => { try { if (!options.kind && !options.docker) { diff --git a/bin/cortex-jobs.js b/bin/cortex-jobs.js index 3c0f3c61..0da0376b 100755 --- a/bin/cortex-jobs.js +++ b/bin/cortex-jobs.js @@ -92,6 +92,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for job definition format') + .option('--push-docker', 'Push Docker image to the Cortex registry.') .action(withCompatibilityCheck((jobDefinition, options) => { try { new SaveJob(program).execute(jobDefinition, options); diff --git a/package.json b/package.json index 67d31bfa..dc039ae6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.11.1", + "version": "0.12.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -39,10 +39,12 @@ "jmespath": "0.15.0", "joi": "13.1.0", "js-yaml": "3.10.0", + "jsonwebtoken": "^8.3.0", "lodash": "4.17.10", "npm-registry-fetch": "3.2.0", "semver": "5.5.0", "superagent": "3.8.2", + "url": "^0.11.0", "uuid": "3.2.1", "yeoman-environment": "2.0.5" }, diff --git a/scripts/dockerTag.sh b/scripts/dockerTag.sh new file mode 100755 index 00000000..d4fabfa3 --- /dev/null +++ b/scripts/dockerTag.sh @@ -0,0 +1,33 @@ +#!/bin/bash -eu + +# PREREQS +# - Login against the secured docker registry with JWT as the password, docker login private-registry.${CORTEX_ENV}.insights.ai + +### +# +# USAGE: ./dockerTag.sh [] +# Ex. ./dockerTag.sh c12e ansible:latest colttest cortex-dev +# +### + + +# Organization/User Namespace in DockerHub +DOCKERHUB_ORG=${1:-c12e} +# Image name published to DockerHub +# The image name and tag that exists in DockerHub +IMAGE=${2:-ansible} +# The Cortex account/tenant name +TENANT_NAME=${3:-company} +# The Cortex deployment that the tenant exists in, should be not needed for PROD +CORTEX_ENV=${4:-cortex} +SECURED_REGISTRY=private-registry.${CORTEX_ENV}.insights.ai + +echo "Attempting to pull '${DOCKERHUB_ORG}/${IMAGE}' from hub.docker.com" +docker pull ${DOCKERHUB_ORG}/${IMAGE} || (echo "Unable to pull '${DOCKERHUB_ORG}/${IMAGE}'" && exit 1) + +echo "Retagging '${DOCKERHUB_ORG}/${IMAGE}' as '${SECURED_REGISTRY}/${TENANT_NAME}/${IMAGE}'" +docker tag ${DOCKERHUB_ORG}/${IMAGE} ${SECURED_REGISTRY}/${TENANT_NAME}/${IMAGE} + +echo "Pushing '${SECURED_REGISTRY}/${TENANT_NAME}/${IMAGE}'" +docker push ${SECURED_REGISTRY}/${TENANT_NAME}/${IMAGE} || (echo "Unable to push '${SECURED_REGISTRY}/${TENANT_NAME}/${IMAGE}', Are you sure you logged in?" && exit 1) + diff --git a/src/client/actions.js b/src/client/actions.js index ff5c6a9d..8ced6b04 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -14,10 +14,13 @@ * limitations under the License. */ +const url = require('url'); const chalk = require('chalk'); const request = require('superagent'); const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); +const _ = require('lodash'); +const jsonwebtoken = require('jsonwebtoken'); +const { constructError, callMe } = require('../commands/utils'); module.exports = class Actions { @@ -51,7 +54,7 @@ module.exports = class Actions { }); } - deployAction(token, actionName, docker, kind, code, memory, timeout, actionType, command, port, environment) { + async deployAction(token, actionName, docker, kind, code, memory, timeout, actionType, command, port, environment, pushDocker) { let endpoint = `${this.endpointV3}`; if (actionType) { endpoint = `${endpoint}?actionType=${actionType}`; @@ -59,6 +62,12 @@ module.exports = class Actions { debug('deployAction(%s, docker=%s, kind=%s, code=%s, memory=%s, timeout=%s) => %s', actionName, docker, kind, code, memory, timeout, endpoint); + try { + docker = await this._maybePushDockerImage(docker, token, pushDocker); + } catch (error) { + return {success: false, status: 400, message: error.message || error}; + } + const req = request .post(endpoint) .set('Authorization', `Bearer ${token}`) @@ -229,6 +238,21 @@ module.exports = class Actions { }); } + getConfig(token) { + return request + .get(_.join([this.endpointV3, '_config'], '/')) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, config: res.body.config}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + static getCanonicalJobId(jobId) { let canonicalJobId = jobId; const namespaceProvided = /\w\/\w/.test(jobId); @@ -238,4 +262,37 @@ module.exports = class Actions { } return canonicalJobId; } + + async _cortexRegistryUrl(token) { + const res = await this.getConfig(token); + if (res.success) + return res.config.dockerPrivateRegistryUrl + else + throw res + } + + _cortexRegistryImagePath(registryUrl, imageRepo, tenant) { + const imageName = _.split(imageRepo, '/').slice(-1)[0]; + return _.join([registryUrl, tenant, imageName], '/'); + } + + _stripCortexPullthroughRegistry(image) { + return image.replace(/^registry\.cortex.*\.insights\.ai:5000\//, '') + } + + async _maybePushDockerImage(image, token, pushDocker) { + if (!image || !pushDocker) { + return image + } + const imageClean = this._stripCortexPullthroughRegistry(image); + const registryUrl = await this._cortexRegistryUrl(token); + const imageName = image.replace(/.+\..+\//, ''); + const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, jsonwebtoken.decode(token).tenant); + + await callMe(`docker login -u cli --password ${token} ${registryUrl}`); + await callMe(`docker pull ${imageClean}`); + await callMe(`docker tag ${imageClean} ${cortexImageUrl}`); + await callMe(`docker push ${cortexImageUrl}`); + return cortexImageUrl; + } }; diff --git a/src/client/jobs.js b/src/client/jobs.js index 48e90827..fe1bb6ca 100644 --- a/src/client/jobs.js +++ b/src/client/jobs.js @@ -17,6 +17,7 @@ const request = require('superagent'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); +const Actions = require('./actions'); module.exports = class Jobs { @@ -73,10 +74,16 @@ module.exports = class Jobs { }); } - saveJob(token, {name, image, command, memory, vcpus, environment}) { - const endpoint = `${this.endpoint}`; + async saveJob(token, {name, image, command, memory, vcpus, environment}, pushDocker) { + const action = new Actions(this.cortexUrl); + try { + image = await action._maybePushDockerImage(image, token, pushDocker); + } catch (error) { + return {success: false, status: 400, message: error.message || error}; + } + return request - .post(endpoint) + .post(this.endpoint) .set('Authorization', `Bearer ${token}`) .send({name, image, command, memory, vcpus, environment}) .then((res) => { diff --git a/src/commands/actions.js b/src/commands/actions.js index 98eba40a..b8c174a6 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -108,9 +108,10 @@ module.exports.DeployActionCommand = class { const cmd = options.cmd; const port = options.port; const environment = options.environment; + const pushDocker = options.pushDocker; const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, timeout, actionType, cmd, port, environment) + actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, timeout, actionType, cmd, port, environment, pushDocker) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); diff --git a/src/commands/jobs.js b/src/commands/jobs.js index 31a20f11..0550ac83 100644 --- a/src/commands/jobs.js +++ b/src/commands/jobs.js @@ -152,7 +152,7 @@ module.exports.SaveJob = class SaveJob { debug('%o', job); const jobs = new Jobs(profile.url); - jobs.saveJob(profile.token, job).then((response) => { + jobs.saveJob(profile.token, job, options.pushDocker).then((response) => { if (response.success) { printSuccess('Job saved', options); } diff --git a/src/commands/utils.js b/src/commands/utils.js index bab92ca7..f5fed1ff 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -19,6 +19,7 @@ const jmsepath = require('jmespath'); const yaml = require('js-yaml'); const debug = require('debug')('cortex:cli'); const Table = require('cli-table'); +const { exec } = require('child_process'); module.exports.constructError = function(error) { // fallback to text in message or standard error message @@ -116,4 +117,26 @@ module.exports.exportDoc = function(program){ })) })))); process.exit(0); -}; \ No newline at end of file +}; + +/** + * Execute a sub command, return stdout on success, return stderr on failure + * @param commandStr + * @returns {Promise<*>} + */ +async function callMe(commandStr) { + return new Promise((resolve, reject) => { + const proc = exec(commandStr,(err, stdout) => { + if (err) { + reject(err.message + stdout); + } else { + resolve(stdout); + } + }); + // Pipe stdout to stderr in real time: + proc.stdout.pipe(process.stderr); + + }); +} + +module.exports.callMe = callMe; \ No newline at end of file diff --git a/test/docker-registry.js b/test/docker-registry.js new file mode 100644 index 00000000..ad7038da --- /dev/null +++ b/test/docker-registry.js @@ -0,0 +1,42 @@ +const {assert} = require('chai'); +const Actions = require('../src/client/actions'); + +const action = new Actions('https://api.cortex-dev.insights.ai'); + + +describe('_stripCortexPullthroughRegistry()', () => { + it('strips pullthrough registry', () => { + assert.equal(action._stripCortexPullthroughRegistry('registry.cortex.insights.ai:5000/foo/bar'), 'foo/bar') + assert.equal(action._stripCortexPullthroughRegistry('registry.cortex-dev.insights.ai:5000/foo/bar'), 'foo/bar') + }) + it('leaves image url alone when not pullthrough registry', () => { + assert.equal(action._stripCortexPullthroughRegistry('bar'), 'bar') + assert.equal(action._stripCortexPullthroughRegistry('foo/bar'), 'foo/bar') + assert.equal(action._stripCortexPullthroughRegistry('docker.io/foo/bar'), 'docker.io/foo/bar') + assert.equal(action._stripCortexPullthroughRegistry('private-registry.cortex.insights.ai/foo/bar'), 'private-registry.cortex.insights.ai/foo/bar') + }) +}) + +describe('_cortexRegistryImagePath()', () => { + it('returns the full URL of the image in the private registry', () => { + const registryUrl = 'private-registry.cortex.insights.ai'; + const tenant = 'tenant' + + const i1 = 'image' + const i2 = 'c12e/image' + const i3 = 'docker.io/library/image' + + const t1 = 'image:1234' + const t2 = 'c12e/image:1234' + const t3 = 'docker.io/library/image:1234' + + for (i of [i1, i2, i3]) { + assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image') + } + + for (i of [t1, t2, t3]) { + assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image:1234') + } + }) + +}) \ No newline at end of file From da7e449e50ef052d95aba9f12603d878574cd47f Mon Sep 17 00:00:00 2001 From: Victor Adan Date: Wed, 17 Oct 2018 14:53:50 -0500 Subject: [PATCH 075/864] CCF-7909-cli-docker-login Added `cortex docker login` command. It performs a `docker login` against the Cortex registry using the profile's JWT. --- bin/cortex-docker.js | 46 ++++++++++++++++++++++++++++++++++++++++++ bin/cortex.js | 2 +- package.json | 2 +- src/commands/docker.js | 42 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 2 deletions(-) create mode 100755 bin/cortex-docker.js create mode 100644 src/commands/docker.js diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js new file mode 100755 index 00000000..9fc67de4 --- /dev/null +++ b/bin/cortex-docker.js @@ -0,0 +1,46 @@ +#!/usr/bin/env node + +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + DockerLoginCommand, +} = require('../src/commands/docker'); + +program.description('Work with Docker'); + +// Login +program + .command('login') + .description('Docker login to the Cortex registry with your jwt token') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((options) => { + try { + new DockerLoginCommand(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex.js b/bin/cortex.js index 29764918..f1d83784 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -34,6 +34,7 @@ program .command('content [cmd]', 'Work with Cortex Managed Content') .command('environments [cmd]', 'Work with Cortex Environments') .command('datasets [cmd]', 'Work with Cortex Datasets') + .command('docker [cmd]', 'Work with Docker') .command('jobs [cmd]', 'Work with Cortex Jobs') .command('processors [cmd]', 'Work with the Cortex Processor Runtime') .command('project [cmd]', 'Work with a related collection of Cortex contributions') @@ -49,4 +50,3 @@ if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { program.outputHelp(identity); process.exit(1); } - diff --git a/package.json b/package.json index e5f8aa7c..22584633 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.0", + "version": "0.12.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/commands/docker.js b/src/commands/docker.js new file mode 100644 index 00000000..7439dd89 --- /dev/null +++ b/src/commands/docker.js @@ -0,0 +1,42 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const debug = require('debug')('cortex:cli'); +const {loadProfile} = require('../config'); +const {printSuccess, printError} = require('./utils'); +const Actions = require('../client/actions'); +const { callMe } = require('../commands/utils'); + +module.exports.DockerLoginCommand = class { + + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeDockerLogin()', profile.name); + + const action = new Actions(profile.url); + const registryUrl = await action._cortexRegistryUrl(profile.token); + try { + await callMe(`docker login -u cli --password ${profile.token} ${registryUrl}`); + printSuccess(JSON.stringify('Login Succeeded', null, 2), options); + } catch (err) { + printError(`Failed to docker login: ${err.message || err}`, options); + } + } +}; \ No newline at end of file From 47fdb5c4ea692ed21243c30d2f3a86d541ba4b4e Mon Sep 17 00:00:00 2001 From: dwisecup-cs Date: Thu, 27 Sep 2018 12:30:28 -0500 Subject: [PATCH 076/864] Update to v0.11.0 (#120) * Ccf 7476 task status (#118) * Working logs: cortex actions task-logs jobId taskId * Working Cancel: cortex actions task-cancel jobId taskId * Working task status: cortex actions task-status * 0.11.0 * Fix missing space in 'npm install -gcortex-cli' instruction --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 22584633..4ea9437e 100644 --- a/package.json +++ b/package.json @@ -58,3 +58,4 @@ "superagent-mocker": "0.5.2" } } + From 62853168bc54d9ac05c37a9a737aec6786aad347 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 26 Oct 2018 08:45:40 -0500 Subject: [PATCH 077/864] merge ? --- bin/cortex-actions.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 7f4bbd0d..371ff4af 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -197,4 +197,39 @@ program } })); +// List Job tasks +program + .command('task-list ') + .description('List Job\'s tasks status') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' + + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') + .action(withCompatibilityCheck((jobId, options) => { + try { + new JobTaskListActionCommand(program).execute(jobId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Get Job Stats +program + .command('task-stats ') + .description('Get Task\'s stats for a given Job') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((jobId, options) => { + try { + new TaskStatsActionCommand(program).execute(jobId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); From 0184c2e7088b1c6338b936acd27ef03ba5d9dc7b Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 26 Oct 2018 09:00:25 -0500 Subject: [PATCH 078/864] pinned url & jsonwebtoken --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 4ea9437e..d5a7bd3a 100644 --- a/package.json +++ b/package.json @@ -39,14 +39,14 @@ "jmespath": "0.15.0", "joi": "13.1.0", "js-yaml": "3.10.0", - "jsonwebtoken": "^8.3.0", + "jsonwebtoken": "8.3.0", "lodash": "4.17.10", "npm-registry-fetch": "3.2.0", "progress": "2.0.0", "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", - "url": "^0.11.0", + "url": "0.11.0", "uuid": "3.2.1", "yeoman-environment": "2.0.5" }, From 275dad96eeef71934166a5e4b01a70dc183bb764 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Tue, 27 Nov 2018 11:59:43 -0600 Subject: [PATCH 079/864] 0.12.2 release (#140) * Ccf 8184 v3 types (#134) * CCF-8184 bump generator-cortex * 0.12.2 * CCF-8270: Add v2 job descriptions. * Incorporate Melissa's feedback. * Update readme to kick off build. * Api services (#133) * Permissions check, need to make a few more changes * Fixed up most of the issues Victor pointed out. * Updated the version to be a const at the top of the file so it can be changed easily * Updated the code per Christine's comments * Updated with changes from Christine. Now the logic is found in the catalog.js file rather than the agent.js file * Changed default print option to print out a table of links rather than just links as text * Minor error handling fixes * Increased width of url table output to accomidate larger links * Added the service name alongside the url on default output * CCF-8193 Simplify list services * Back out get-service-activation change --- README.md | 1 + bin/cortex-agents.js | 22 +++++++++++++++++++++- bin/cortex-jobs.js | 12 ++++++------ bin/cortex-tasks.js | 10 +++++----- bin/cortex.js | 6 +++--- package.json | 5 ++--- src/client/agents.js | 2 ++ src/client/catalog.js | 16 ++++++++++++++++ src/commands/agents.js | 34 +++++++++++++++++++++++++++++++++- 9 files changed, 89 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 68124b15..cedeb85e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Cortex CLI A command line utility for the Cortex Platform. + [![Build Status](https://secure.travis-ci.org/CognitiveScale/cortex-cli.svg)](http://travis-ci.org/CognitiveScale/cortex-cli) ### Installation: diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 86cda374..f6315c82 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -34,6 +34,7 @@ const { DeleteAgentInstanceCommand, StopAgentInstanceCommand, ListTriggersCommand, + ListServicesCommand, ListAgentSnapshotsCommand, DescribeAgentSnapshotCommand, CreateAgentSnapshotCommand @@ -166,6 +167,25 @@ program } })); + + program + .command('list-services ') + .description('List agent service endpoints') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((agentName, options) => { + try { + new ListServicesCommand(program).execute(agentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + + } + })); + program .command('list-snapshots ') .description('List agent snapshots') @@ -321,4 +341,4 @@ program } })); -program.parse(process.argv); +program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-jobs.js b/bin/cortex-jobs.js index 0da0376b..5a9d59f9 100755 --- a/bin/cortex-jobs.js +++ b/bin/cortex-jobs.js @@ -28,13 +28,13 @@ const { SaveJob } = require('../src/commands/jobs'); -program.description('Work with Cortex Jobs'); +program.description('Work with Cortex v2 Jobs. Use Cortex Actions for v3 jobs.'); // List Jobs program .command('list') - .description('List job definitions') + .description('List v2 job definitions') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -52,7 +52,7 @@ program // Describe Job program .command('describe ') - .description('Describe job definition') + .description('Describe v2 job definition') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -69,7 +69,7 @@ program // Get Job Status program .command('status ') - .description('Get job status') + .description('Get v2 job status') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -87,12 +87,12 @@ program // Save Job program .command('save ') - .description('Save a job definition') + .description('Save a v2 job definition') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for job definition format') - .option('--push-docker', 'Push Docker image to the Cortex registry.') + .option('--push-docker', 'Push Docker image to the Cortex registry.') .action(withCompatibilityCheck((jobDefinition, options) => { try { new SaveJob(program).execute(jobDefinition, options); diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 43b4efe0..979b24e5 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -28,13 +28,13 @@ const { DescribeTask } = require('../src/commands/tasks'); -program.description('Work with Cortex Jobs'); +program.description('Work with Cortex v2 tasks. Use Cortex Actions for v3 tasks.'); // List Tasks program .command('list ') - .description('List task definitions within a job definition') + .description('List task definitions within a v2 job definition') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -52,7 +52,7 @@ program // Get Tasks logs program .command('logs ') - .description('Get Tasks logs') + .description('Get v2 task logs') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -70,7 +70,7 @@ program // Cancel task program .command('cancel ') - .description('Cancel a task') + .description('Cancel a v2 task') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -88,7 +88,7 @@ program // Describe task program .command('describe ') - .description('Describe a task definition') + .description('Describe a v2 task definition') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex.js b/bin/cortex.js index f1d83784..9822cc3e 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -35,16 +35,16 @@ program .command('environments [cmd]', 'Work with Cortex Environments') .command('datasets [cmd]', 'Work with Cortex Datasets') .command('docker [cmd]', 'Work with Docker') - .command('jobs [cmd]', 'Work with Cortex Jobs') + .command('jobs [cmd]', 'Work with Cortex v2 Jobs') .command('processors [cmd]', 'Work with the Cortex Processor Runtime') .command('project [cmd]', 'Work with a related collection of Cortex contributions') .command('skills [cmd]', 'Work with Cortex Skills') - .command('tasks [cmd]', 'Work with Cortex Tasks') + .command('tasks [cmd]', 'Work with Cortex v2 Tasks') .command('types [cmd]', 'Work with Cortex Types') .command('variables [cmd]', 'Work with Cortex Secure Variables'); program.parse(process.argv, { noActionHandler: function() { - + }}); if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { program.outputHelp(identity); diff --git a/package.json b/package.json index d5a7bd3a..125d0dc3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.1", + "version": "0.12.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.11", + "@c12e/generator-cortex": "0.3.12", "boxen": "1.3.0", "chalk": "2.3.0", "cli-table": "0.3.1", @@ -58,4 +58,3 @@ "superagent-mocker": "0.5.2" } } - diff --git a/src/client/agents.js b/src/client/agents.js index 982666fc..921534bc 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -175,6 +175,7 @@ module.exports = class Agents { }); } + createAgentInstance(token, instance) { const endpoint = `${this.endpoint}/instances`; debug('createAgentInstance => %s', endpoint); @@ -257,6 +258,7 @@ module.exports = class Agents { }); } + listTriggers(token) { const endpoint = `${this.endpoint}/triggers`; debug('listTriggers => %s', endpoint); diff --git a/src/client/catalog.js b/src/client/catalog.js index 2ef57c73..138edc1d 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -19,6 +19,7 @@ const debug = require('debug')('cortex:cli'); const _ = require('lodash'); const chalk = require('chalk'); const { constructError } = require('../commands/utils'); +const AGENTS_API_VERSION = 'v3'; const createEndpoints = (baseUri) => { return { @@ -117,6 +118,21 @@ module.exports = class Catalog { }); } + listServices(token, agentName, profile) { + debug('listServices() using describeAgent'); + return this.describeAgent(profile.token, agentName).then((response) => { + if (response.success) { + const urlBase = `${profile.url}/${AGENTS_API_VERSION}/agents/${agentName}/services`; + const servicesList = response.agent.inputs + .filter(i => i.signalType === 'Service') + .map(i => ({ ...i, url: `${urlBase}/${i.name}` })); + return { success: true, services: servicesList }; + } else { + return response; + } + }); + } + saveAgent(token, agentObj) { debug('saveAgent(%s) => %s', agentObj.name, this.endpoints.agents); return request diff --git a/src/commands/agents.js b/src/commands/agents.js index 6ebced1a..ba40eca9 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,7 +21,6 @@ const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const _ = require('lodash'); const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - module.exports.SaveAgentCommand = class SaveAgentCommand { constructor(program) { @@ -293,6 +292,39 @@ module.exports.ListAgentInstancesCommand = class { } }; +module.exports.ListServicesCommand = class ListServicesCommand{ + constructor(program) { + this.program = program; + } + + execute(agentName, options) { + const profile = loadProfile(options.profile); + debug('%s.listServices(%s)', profile.name, agentName); + + const catalog = new Catalog(profile.url); + catalog.listServices(profile.token, agentName, profile).then((response) => { + if (response.success) { + let result = filterObject(response.services, options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + {column: 'Service Name', field: 'name', width: 25}, + {column: 'Service Endpoint URL', field: 'url', width: 115} + ]; + printTable(tableSpec, result); + } + } + else { + printError(`Failed to return agent service information: ${agentName}: ${response.message}`, options); + } + }).catch((err) => { + printError(`Failed to return agent service information: ${agentName}: ${err.status} ${err.message}`, options); + }); + } +} + module.exports.ListAgentSnapshotsCommand = class { constructor(program) { this.program = program; From 74d7fedacdfe03dd86e7af0394d8497902e55813 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 10 Dec 2018 14:59:20 -0600 Subject: [PATCH 080/864] Release 0.12.3 (#141) * CCF-8270: Add v2 job descriptions. * CCF-8234 add --content-type to cortex content upload command (#136) * 0.12.3 * CCF-8404 support environment variables for actions deploy (#142) * CCF-8404 support environment variables for actions * 0.12.4 --- bin/cortex-actions.js | 1 + bin/cortex-content.js | 3 ++- bin/cortex.js | 1 + package.json | 2 +- src/client/actions.js | 3 ++- src/client/content.js | 5 +++-- src/commands/actions.js | 3 ++- src/commands/content.js | 5 +++-- 8 files changed, 15 insertions(+), 8 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 371ff4af..00415c1b 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -128,6 +128,7 @@ program .option('--port [port]', 'Docker port') //'9091' .option('--environment [environment]', 'Environment') .option('--cmd [cmd]', 'Command to be executed') //'["--daemon"]' + .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') .option('--push-docker', 'Push Docker image to the Cortex registry.') .action(withCompatibilityCheck((actionName, options) => { try { diff --git a/bin/cortex-content.js b/bin/cortex-content.js index e79d74dc..22f71499 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -57,7 +57,8 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .option('--secure', 'Uploads the content securely to the Cortex Vault. Use this option for keytab files or content that contains sensitive information that is required during Runtime. Take note of the contentKey you give to this content for future reference.') + .option('--secure', 'Uploads the content securely to the Cortex Vault. \n\t\t\t\tUse this option for keytab files or content that contains sensitive information that is required during Runtime. \n\t\t\t\tTake note of the contentKey you give to this content for future reference.') + .option('--content-type [MIME type]', 'Sets the \`Content-Type\` or MIME type of the content ( default: application/octet-stream )') .action(withCompatibilityCheck((contentKey, filePath, options) => { try { new UploadContent(program).execute(contentKey, filePath, options); diff --git a/bin/cortex.js b/bin/cortex.js index 9822cc3e..9b66f6f0 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -50,3 +50,4 @@ if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { program.outputHelp(identity); process.exit(1); } + diff --git a/package.json b/package.json index 125d0dc3..aacf2f89 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.2", + "version": "0.12.4", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/actions.js b/src/client/actions.js index 8ced6b04..f87e5b1d 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -54,7 +54,7 @@ module.exports = class Actions { }); } - async deployAction(token, actionName, docker, kind, code, memory, timeout, actionType, command, port, environment, pushDocker) { + async deployAction(token, actionName, docker, kind, code, memory, timeout, actionType, command, port, environment, environmentVariables, pushDocker) { let endpoint = `${this.endpointV3}`; if (actionType) { endpoint = `${endpoint}?actionType=${actionType}`; @@ -81,6 +81,7 @@ module.exports = class Actions { if (command) req.field('command', command); if (port) req.field('port', port); if (environment) req.field('environment', environment); + if (environmentVariables) req.field('environmentVariables', environmentVariables); return req.then((res) => { if (res.ok) { diff --git a/src/client/content.js b/src/client/content.js index 45a9d2d2..4a21bce1 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -73,7 +73,7 @@ module.exports = class Content { }); } - uploadContentStreaming(token, key, content, showProgress = false) { + uploadContentStreaming(token, key, content, showProgress = false, contentType='application/octet-stream') { debug('uploadContentStreaming(%s, %s) => %s', key, content, `${this.endpoint}/${key}`); // NOTE: superagent only supports uploads via .attach(), which uses multipart forms (@see @@ -101,7 +101,8 @@ module.exports = class Content { uri: url, headers: { 'Accept': 'application/json', - 'Authorization': `Bearer ${token}` + 'Authorization': `Bearer ${token}`, + 'Content-Type': contentType, } }) .on('response', (res) => { diff --git a/src/commands/actions.js b/src/commands/actions.js index b8c174a6..3a585a5f 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -108,10 +108,11 @@ module.exports.DeployActionCommand = class { const cmd = options.cmd; const port = options.port; const environment = options.environment; + const environmentVariables = options.environmentVariables; const pushDocker = options.pushDocker; const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, timeout, actionType, cmd, port, environment, pushDocker) + actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, timeout, actionType, cmd, port, environment, environmentVariables, pushDocker) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); diff --git a/src/commands/content.js b/src/commands/content.js index 80c397b7..82037343 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +const _ = require('lodash'); const fs = require('fs'); const path = require('path'); const yeoman = require('yeoman-environment'); @@ -90,7 +90,8 @@ module.exports.UploadContent = class UploadContent { }) } else { - content.uploadContentStreaming(profile.token, contentKey, filePath, showProgress).then((response) => { + const contentType = _.get(options, 'contentType', 'application/octet-stream'); + content.uploadContentStreaming(profile.token, contentKey, filePath, showProgress, contentType).then((response) => { if (response.success) { printSuccess(`Content successfully uploaded.`, options); } From e6718d2e4cfce863c6c027379e61896752103269 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 31 Jan 2019 13:24:55 -0600 Subject: [PATCH 081/864] Cm198 (#150) * CCF-8270: Add v2 job descriptions. * CCF-8234 add --content-type to cortex content upload command (#136) * 0.12.3 * CCF-8404 support environment variables for actions deploy (#142) * CCF-8404 support environment variables for actions * 0.12.4 * Changes for Skill Lab and better SDK integration (#130) * Adds support for env variable overrides for URI and TOKEN * Add token and apiEndpoint to actions requests * strip _providerStatus from resp in cli (#144) * Display npm upgrade message on stderr instead of stdout, to avoid corrupting any command that pipes to stdout (e.g. content download) * 0.12.5 * initial checkin for listing taskId by activationId * fixed missing activationId * 0.12.6 --- bin/cortex-agents.js | 20 ++++++++++++++++++++ package.json | 2 +- src/client/actions.js | 24 ++++++++++++++++++++++-- src/commands/actions.js | 33 ++++++++++++++++++++++++++++++++- src/compatibility.js | 2 +- src/config.js | 4 ++-- 6 files changed, 78 insertions(+), 7 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index f6315c82..9f7cfad3 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -40,6 +40,10 @@ const { CreateAgentSnapshotCommand } = require('../src/commands/agents'); +const { + ListTaskByActivation, +} = require('../src/commands/actions'); + const { printError } = require('../src/commands/utils'); program.description('Work with Cortex Agents'); @@ -341,4 +345,20 @@ program } })); +//List Tasks +program + .command('list-tasks ') + .description('List tasks associated with a given activationId') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((activationId, options) => { + try { + new ListTaskByActivation(program).execute(activationId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); \ No newline at end of file diff --git a/package.json b/package.json index aacf2f89..693d5cc6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.4", + "version": "0.12.6", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/actions.js b/src/client/actions.js index f87e5b1d..29b71cb8 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -36,7 +36,7 @@ module.exports = class Actions { if (actionType) { endpoint = `${endpoint}?actionType=${actionType}` } - debug('invokeAction(%s) => %s', actionName, endpoint); + debug('invokeAction(%s) => %s', actionName, endpoint); const req = request .post(endpoint) @@ -194,7 +194,10 @@ module.exports = class Actions { .accept('application/json') .then((res) => { if (res.ok) { - return res.body; + const resBody = res.body; + debug('resBody (with provider status as well): %s', resBody); + const respBodyNoProviderField = _.omit(resBody, '_providerStatus'); + return respBodyNoProviderField; } return {success: false, status: res.status, message: res.body}; }) @@ -239,6 +242,23 @@ module.exports = class Actions { }); } + listTasksByActivation(token, activationId) { + const endpoint = `${this.endpointV3}/${activationId}`; + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .accept('application/json') + .then((res) => { + if (res.ok) { + return res.body; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + getConfig(token) { return request .get(_.join([this.endpointV3, '_config'], '/')) diff --git a/src/commands/actions.js b/src/commands/actions.js index 3a585a5f..970998f3 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -15,6 +15,7 @@ */ const fs = require('fs'); +const uuid = require('uuid/v4'); const debug = require('debug')('cortex:cli'); const {loadProfile} = require('../config'); const Actions = require('../client/actions'); @@ -146,13 +147,19 @@ module.exports.InvokeActionCommand = class { params = parseObject(paramsStr, options); } - debug('params: %o', params); const actionType = options.actionType; params.properties = params.properties || {}; if (options.method) params.properties['daemon.method'] = options.method; if (options.path) params.properties['daemon.path'] = options.path; + + // Set the API Endpoint and Token if not specified + if (!params.apiEndpoint) params.apiEndpoint = profile.url; + if (!params.token) params.token = profile.token; + + debug('params: %o', params); + const actions = new Actions(profile.url); actions.invokeAction(profile.token, actionName, params, actionType) .then((response) => { @@ -308,3 +315,27 @@ module.exports.TaskStatsActionCommand = class { }) } }; + + +module.exports.ListTaskByActivation = class { + constructor(program) { + this.program = program; + } + + execute(activationId, options) { + const profile = loadProfile(options.profile); + debug('%s.listTasksByActivation (%s, %s)', profile.name, activationId); + const actions = new Actions(profile.url); + actions.listTasksByActivation(profile.token, activationId) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Agent task list by activation failed: ${response.status} ${response.message}`, options); + } + }) + } +}; + diff --git a/src/compatibility.js b/src/compatibility.js index 5036e187..7198cd1d 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -78,7 +78,7 @@ function notifyUpdate({ required = false, current, latest }) { chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) + ' to update'; - console.log(boxen(message, opts)); + console.warn(boxen(message, opts)); } function upgradeAvailable(args) { diff --git a/src/config.js b/src/config.js index c19bf119..94d79304 100644 --- a/src/config.js +++ b/src/config.js @@ -62,10 +62,10 @@ class Profile { constructor(name, {url, username, tenantId, account, token}) { this.name = name; - this.url = url; + this.url = process.env.CORTEX_URI || url; this.username = username; this.account = tenantId || account; - this.token = token; + this.token = process.env.CORTEX_TOKEN || token; } validate() { From 897ca9f968c965d134c369c636c4ace2423a0f98 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Fri, 1 Feb 2019 15:30:00 -0600 Subject: [PATCH 082/864] Ccf 8388 release 0 12 8 (#153) * CCF-8270: Add v2 job descriptions. * CCF-8234 add --content-type to cortex content upload command (#136) * 0.12.3 * CCF-8404 support environment variables for actions deploy (#142) * CCF-8404 support environment variables for actions * 0.12.4 * Changes for Skill Lab and better SDK integration (#130) * Adds support for env variable overrides for URI and TOKEN * Add token and apiEndpoint to actions requests * strip _providerStatus from resp in cli (#144) * Display npm upgrade message on stderr instead of stdout, to avoid corrupting any command that pipes to stdout (e.g. content download) * 0.12.5 * Ccf 8969 agents list tasks (#146) * initial checkin for listing taskId by activationId * fixed missing activationId * 0.12.6 * Ccf 8737 invoke vcpu (#147) * add vcpus to deploy job * allow invoke overrides of memory and vcpus * 0.12.7 * CCF-8388 update generator-cortex version to 0.3.14 (#151) * CCF-8388 update generator-cortex version to 0.3.14 * CCF-8388 use plugin_jar as managed content key if it exists * CCF-8388 v0.12.8 (#152) --- bin/cortex-actions.js | 3 +++ .../advanced_jdbc/advanced_connection.yaml | 12 ++++++++++++ .../connections/advanced_jdbc/deploy-connection.sh | 6 ++++++ package.json | 4 ++-- src/client/actions.js | 11 ++++++----- src/commands/actions.js | 7 ++++++- src/commands/connections.js | 4 ++-- 7 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 connections/advanced_jdbc/connections/advanced_jdbc/advanced_connection.yaml create mode 100755 connections/advanced_jdbc/connections/advanced_jdbc/deploy-connection.sh diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 00415c1b..488f7258 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -98,6 +98,8 @@ program .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--memory [memory]', 'Action memory limit in megabytes', '256') + .option('--vcpus [vcpus]', 'Action vcpus limit in integer', '1') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') @@ -121,6 +123,7 @@ program .option('--code [code]', 'The code file or code archive to deploy') .option('--docker [image]', 'Docker image to use as the runner') .option('--memory [memory]', 'Action memory limit in megabytes', '256') + .option('--vcpus [vcpus]', 'Action vcpus limit in integer', '1') .option('--timeout [timeout]', 'Execution timeout in milliseconds', '60000') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/connections/advanced_jdbc/connections/advanced_jdbc/advanced_connection.yaml b/connections/advanced_jdbc/connections/advanced_jdbc/advanced_connection.yaml new file mode 100644 index 00000000..a41cfe7e --- /dev/null +++ b/connections/advanced_jdbc/connections/advanced_jdbc/advanced_connection.yaml @@ -0,0 +1,12 @@ +name: advanced-plugin +title: Advanced Plugin +description: Update this description +connectionType: advanced_jdbc +allowWrite: true +params: + - name: "plugin_jar" + value: test_plugin.jar + - name: "jdbc_jar_file" + value: "tests/test_data/test-plugin.jar" + - name: "plugin_properties" + value: '{"myProp":"value"}' diff --git a/connections/advanced_jdbc/connections/advanced_jdbc/deploy-connection.sh b/connections/advanced_jdbc/connections/advanced_jdbc/deploy-connection.sh new file mode 100755 index 00000000..9b6bc072 --- /dev/null +++ b/connections/advanced_jdbc/connections/advanced_jdbc/deploy-connection.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -e +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# Deploy our skill to Cortex +cortex connections save --yaml $SCRIPT_DIR/connection.yaml \ No newline at end of file diff --git a/package.json b/package.json index 693d5cc6..edadd568 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.6", + "version": "0.12.8", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.12", + "@c12e/generator-cortex": "0.3.14", "boxen": "1.3.0", "chalk": "2.3.0", "cli-table": "0.3.1", diff --git a/src/client/actions.js b/src/client/actions.js index 29b71cb8..4bddbf75 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -36,7 +36,7 @@ module.exports = class Actions { if (actionType) { endpoint = `${endpoint}?actionType=${actionType}` } - debug('invokeAction(%s) => %s', actionName, endpoint); + debug('invokeAction(%s) => %s', actionName, endpoint); const req = request .post(endpoint) @@ -54,13 +54,13 @@ module.exports = class Actions { }); } - async deployAction(token, actionName, docker, kind, code, memory, timeout, actionType, command, port, environment, environmentVariables, pushDocker) { + async deployAction(token, actionName, docker, kind, code, memory, vcpus, timeout, actionType, command, port, environment, environmentVariables, pushDocker) { let endpoint = `${this.endpointV3}`; if (actionType) { endpoint = `${endpoint}?actionType=${actionType}`; } - debug('deployAction(%s, docker=%s, kind=%s, code=%s, memory=%s, timeout=%s) => %s', - actionName, docker, kind, code, memory, timeout, endpoint); + debug('deployAction(%s, docker=%s, kind=%s, code=%s, memory=%s, vcpus=%s, timeout=%s) => %s', + actionName, docker, kind, code, memory, vcpus, timeout, endpoint); try { docker = await this._maybePushDockerImage(docker, token, pushDocker); @@ -76,6 +76,7 @@ module.exports = class Actions { if (docker) req.field('docker', docker); if (kind) req.field('kind', kind); if (memory) req.field('memory', memory); + if (vcpus) req.field('vcpus', vcpus); if (timeout) req.field('timeout', timeout); if (code) req.attach('code', code); if (command) req.field('command', command); @@ -288,7 +289,7 @@ module.exports = class Actions { const res = await this.getConfig(token); if (res.success) return res.config.dockerPrivateRegistryUrl - else + else throw res } diff --git a/src/commands/actions.js b/src/commands/actions.js index 970998f3..6bac2d53 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -104,6 +104,7 @@ module.exports.DeployActionCommand = class { const dockerImage = options.docker; const code = options.code; const memory = parseInt(options.memory); + const vcpus = parseInt(options.vcpus); const timeout = parseInt(options.timeout); const actionType = options.actionType; const cmd = options.cmd; @@ -113,7 +114,7 @@ module.exports.DeployActionCommand = class { const pushDocker = options.pushDocker; const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, timeout, actionType, cmd, port, environment, environmentVariables, pushDocker) + actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, timeout, actionType, cmd, port, environment, environmentVariables, pushDocker) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); @@ -153,6 +154,10 @@ module.exports.InvokeActionCommand = class { params.properties['daemon.method'] = options.method; if (options.path) params.properties['daemon.path'] = options.path; + if (options.memory) + params.properties['memory'] =parseInt(options.memory); + if (options.vcpus) + params.properties['vcpus'] =parseInt(options.vcpus); // Set the API Endpoint and Token if not specified if (!params.apiEndpoint) params.apiEndpoint = profile.url; diff --git a/src/commands/connections.js b/src/commands/connections.js index 215262ff..e1658f31 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -95,7 +95,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { debug('%o', connObj); const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); - const contentKey = this.getParamsValue(connObj, 'managed_content_key'); + const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); if (jdbcJarFilePath && !jdbcJarFilePath.includes("--Insert jar file path--")) { const content = new Content(profile.url); @@ -194,7 +194,7 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { debug('%o', connObj); const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); - const contentKey = this.getParamsValue(connObj, 'managed_content_key'); + const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); if (jdbcJarFilePath) { const content = new Content(profile.url); From 65b3919379ab6d16fdfaf0fd187f4c1f8bc48ac7 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 14 Feb 2019 14:17:26 -0600 Subject: [PATCH 083/864] Revved generator version and cli version. (#160) --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index edadd568..da546b2e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.8", + "version": "0.12.9", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.14", + "@c12e/generator-cortex": "0.3.16", "boxen": "1.3.0", "chalk": "2.3.0", "cli-table": "0.3.1", From fe00835e4be566a7fa26dc20a01f7839e9cbfbe3 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Fri, 22 Feb 2019 10:59:16 -0600 Subject: [PATCH 084/864] Release v0.12.10 (#161) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux --- bin/cortex-actions.js | 8 ++++---- package.json | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 488f7258..65727f5e 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -98,8 +98,8 @@ program .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--memory [memory]', 'Action memory limit in megabytes', '256') - .option('--vcpus [vcpus]', 'Action vcpus limit in integer', '1') + .option('--memory [memory]', 'Action memory limit in megabytes') + .option('--vcpus [vcpus]', 'Action vcpus limit in integer') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') @@ -122,8 +122,8 @@ program .option('--kind [kind]', 'Action runtime kind') // python:3, python:2, nodejs:default .option('--code [code]', 'The code file or code archive to deploy') .option('--docker [image]', 'Docker image to use as the runner') - .option('--memory [memory]', 'Action memory limit in megabytes', '256') - .option('--vcpus [vcpus]', 'Action vcpus limit in integer', '1') + .option('--memory [memory]', 'Action memory limit in megabytes') + .option('--vcpus [vcpus]', 'Action vcpus limit in integer') .option('--timeout [timeout]', 'Execution timeout in milliseconds', '60000') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/package.json b/package.json index da546b2e..66394fc5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.9", + "version": "0.12.10", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.16", + "@c12e/generator-cortex": "0.3.17", "boxen": "1.3.0", "chalk": "2.3.0", "cli-table": "0.3.1", @@ -40,7 +40,7 @@ "joi": "13.1.0", "js-yaml": "3.10.0", "jsonwebtoken": "8.3.0", - "lodash": "4.17.10", + "lodash": "4.17.11", "npm-registry-fetch": "3.2.0", "progress": "2.0.0", "request": "2.88.0", From 767e51d44542df48c4133f780bc9fe1d55302d6b Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Mon, 11 Mar 2019 12:36:03 -0500 Subject: [PATCH 085/864] Release v0.12.13 (#172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) --- README.md | 8 - bin/cortex-agents.js | 22 +- bin/cortex-content.js | 3 + bin/cortex-processors.js | 141 --------- bin/cortex.js | 1 - .../advanced_jdbc/advanced_connection.yaml | 12 - .../advanced_jdbc/deploy-connection.sh | 6 - package.json | 5 +- src/client/agents.js | 25 +- src/client/processors.js | 148 ---------- src/commands/agents.js | 41 ++- src/commands/content.js | 106 +++++-- src/commands/environments.js | 2 +- src/commands/processors.js | 276 ------------------ src/commands/utils.js | 52 +++- test/cortex/sample/upload/config | 12 + test/uploadDirectory.js | 101 +++++++ 17 files changed, 334 insertions(+), 627 deletions(-) delete mode 100755 bin/cortex-processors.js delete mode 100644 connections/advanced_jdbc/connections/advanced_jdbc/advanced_connection.yaml delete mode 100755 connections/advanced_jdbc/connections/advanced_jdbc/deploy-connection.sh delete mode 100644 src/client/processors.js delete mode 100644 src/commands/processors.js create mode 100644 test/cortex/sample/upload/config create mode 100644 test/uploadDirectory.js diff --git a/README.md b/README.md index cedeb85e..e15fa464 100644 --- a/README.md +++ b/README.md @@ -140,14 +140,6 @@ cortex agents list --query "[].{name: name, title: title}" - [x] describe [skillName] - [ ] delete [skillName] - [x] generate -- [x] processors - - [ ] save-runtime [runtimeDefinition] - - [x] list-runtime-types - - [x] list-runtimes - - [x] describe [runtimeName] - - [x] delete [runtimeName] - - [x] invoke [runtimeName] [actionId] - - [x] list-actions [runtimeName] - [x] content - [x] upload - [x] download diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 9f7cfad3..8c89edfa 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -29,6 +29,7 @@ const { GetActivationCommand, ListActivationsCommand, ListAgentInstancesCommand, + ListSnapshotInstancesCommand, CreateAgentInstanceCommand, GetAgentInstanceCommand, DeleteAgentInstanceCommand, @@ -208,6 +209,25 @@ program } })); +//List snapshot instances +program + .command('list-snapshot-instances ') + .description('List snapshot instances ') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--environmentName [environmentName]', 'The environment to list or \'all\'') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((snapshotId, options) => { + try { + new ListSnapshotInstancesCommand(program).execute(snapshotId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + program .command('describe-snapshot ') .description('Describe agent snapshot') @@ -361,4 +381,4 @@ program } })); -program.parse(process.argv); \ No newline at end of file +program.parse(process.argv); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 22f71499..f4a39bbd 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -54,11 +54,14 @@ program .command('upload ') .description('Upload content') .option('--progress', 'Show upload progress') + .option('--test', 'Show what would be uploaded along with file size') + .option('--recursive', 'Recursively walk and prefix each path stored with ') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--secure', 'Uploads the content securely to the Cortex Vault. \n\t\t\t\tUse this option for keytab files or content that contains sensitive information that is required during Runtime. \n\t\t\t\tTake note of the contentKey you give to this content for future reference.') .option('--content-type [MIME type]', 'Sets the \`Content-Type\` or MIME type of the content ( default: application/octet-stream )') + .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) .action(withCompatibilityCheck((contentKey, filePath, options) => { try { new UploadContent(program).execute(contentKey, filePath, options); diff --git a/bin/cortex-processors.js b/bin/cortex-processors.js deleted file mode 100755 index 44403dc8..00000000 --- a/bin/cortex-processors.js +++ /dev/null @@ -1,141 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListRuntimesCommand, - ListRuntimeTypesCommand, - ListActionsCommand, - DescribeRuntimeCommand, - DeleteRuntimeCommand, - InvokeActionCommand -} = require('../src/commands/processors'); - -program.description('Work with the Cortex Processor Runtime'); - -// List Processor Runtime Types -program - .command('list-runtime-types') - .description('List available processor runtime types') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((options) => { - try { - new ListRuntimeTypesCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Processor Runtimes -program - .command('list-runtimes') - .description('List configured processor runtimes') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((options) => { - try { - new ListRuntimesCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Processor Runtime -program - .command('describe ') - .description('Describe a processor runtime') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((runtimeName, options) => { - try { - new DescribeRuntimeCommand(program).execute(runtimeName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete Processor Runtime -program - .command('delete ') - .description('Delete a processor runtime') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((runtimeName, options) => { - try { - new DeleteRuntimeCommand(program).execute(runtimeName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Actions -program - .command('list-actions ') - .description('List the available processor runtime actions') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((runtimeName, options) => { - try { - new ListActionsCommand(program).execute(runtimeName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Invoke Action -program - .command('invoke ') - .description('Invoke a processor action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--params [params]', 'JSON params to send to the action') - .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .action(withCompatibilityCheck((runtimeName, actionId, options) => { - try { - new InvokeActionCommand(program).execute(runtimeName, actionId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 9b66f6f0..2c0ee512 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -36,7 +36,6 @@ program .command('datasets [cmd]', 'Work with Cortex Datasets') .command('docker [cmd]', 'Work with Docker') .command('jobs [cmd]', 'Work with Cortex v2 Jobs') - .command('processors [cmd]', 'Work with the Cortex Processor Runtime') .command('project [cmd]', 'Work with a related collection of Cortex contributions') .command('skills [cmd]', 'Work with Cortex Skills') .command('tasks [cmd]', 'Work with Cortex v2 Tasks') diff --git a/connections/advanced_jdbc/connections/advanced_jdbc/advanced_connection.yaml b/connections/advanced_jdbc/connections/advanced_jdbc/advanced_connection.yaml deleted file mode 100644 index a41cfe7e..00000000 --- a/connections/advanced_jdbc/connections/advanced_jdbc/advanced_connection.yaml +++ /dev/null @@ -1,12 +0,0 @@ -name: advanced-plugin -title: Advanced Plugin -description: Update this description -connectionType: advanced_jdbc -allowWrite: true -params: - - name: "plugin_jar" - value: test_plugin.jar - - name: "jdbc_jar_file" - value: "tests/test_data/test-plugin.jar" - - name: "plugin_properties" - value: '{"myProp":"value"}' diff --git a/connections/advanced_jdbc/connections/advanced_jdbc/deploy-connection.sh b/connections/advanced_jdbc/connections/advanced_jdbc/deploy-connection.sh deleted file mode 100755 index 9b6bc072..00000000 --- a/connections/advanced_jdbc/connections/advanced_jdbc/deploy-connection.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -set -e -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -# Deploy our skill to Cortex -cortex connections save --yaml $SCRIPT_DIR/connection.yaml \ No newline at end of file diff --git a/package.json b/package.json index 66394fc5..b81ff258 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.10", + "version": "0.12.13", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.17", + "@c12e/generator-cortex": "0.3.18", "boxen": "1.3.0", "chalk": "2.3.0", "cli-table": "0.3.1", @@ -35,6 +35,7 @@ "debug": "3.1.0", "event-stream": "3.3.4", "find-package-json": "1.1.0", + "glob": "^7.1.3", "is-installed-globally": "0.1.0", "jmespath": "0.15.0", "joi": "13.1.0", diff --git a/src/client/agents.js b/src/client/agents.js index 921534bc..ccd386aa 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -111,6 +111,29 @@ module.exports = class Agents { }); } + + listSnapshotInstances(token, snapshotId, environmentName) { + let endpoint = `${this.endpoint}/instances?snapshotId=${snapshotId}`; + debug('listSnapshotInstances(%s, %s) => (%s)', snapshotId, environmentName, endpoint); + if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; + + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, instances: res.body.instances}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + describeAgentSnapshot(token, snapshotId, environmentName) { let endpoint = `${this.endpoint}/snapshots/${snapshotId}?deps=true`; debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, environmentName, endpoint); @@ -278,4 +301,4 @@ module.exports = class Agents { return constructError(err); }); } -}; \ No newline at end of file +}; diff --git a/src/client/processors.js b/src/client/processors.js deleted file mode 100644 index 040593e2..00000000 --- a/src/client/processors.js +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const request = require('superagent'); -const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); - -module.exports = class Processors { - - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/processors`; - } - - listRuntimeTypes(token) { - const endpoint = `${this.endpoint}/runtime-types`; - debug('listRuntimeTypes() => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, runtimeTypes: res.body.runtimeTypes}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - listRuntimes(token) { - const endpoint = `${this.endpoint}/runtimes`; - debug('listRuntimes() => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, runtimes: res.body.runtimes}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeRuntime(token, runtimeName) { - const endpoint = `${this.endpoint}/runtimes/${runtimeName}`; - debug('describeRuntime(%s) => %s', runtimeName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, runtime: res.body.runtime}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - saveRuntime(token, {name, title, description, runtimeType, params}) { - const endpoint = `${this.endpoint}/runtimes`; - debug('saveRuntime(%s) => %s', name, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .send({name, title, description, runtimeType, params}) - .then((res) => { - if (res.ok) { - return {success: true, version: res.body.version}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - deleteRuntime(token, runtimeName) { - const endpoint = `${this.endpoint}/runtimes/${runtimeName}`; - debug('deleteRuntime(%s) => %s', runtimeName, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - listRuntimeActions(token, runtimeName) { - const endpoint = `${this.endpoint}/runtimes/${runtimeName}/actions`; - debug('listRuntimeActions() => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, actions: res.body.actions}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - invokeRuntimeAction(token, runtimeName, actionId, params) { - const endpoint = `${this.endpoint}/runtimes/${runtimeName}/actions/invoke`; - debug('invokeRuntimeAction(%s, %s) => %s', runtimeName, actionId, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .send({actionId: actionId, params: params}) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } -}; \ No newline at end of file diff --git a/src/commands/agents.js b/src/commands/agents.js index ba40eca9..851f4158 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -364,6 +364,45 @@ module.exports.ListAgentSnapshotsCommand = class { } }; +module.exports.ListSnapshotInstancesCommand = class { + + constructor(program) { + this.program = program; + } + + execute(snapshotId, options) { + const profile = loadProfile(options.profile); + debug('%s.listSnapshotInstances(%s)', profile.name, snapshotId); + + const agents = new Agents(profile.url); + const envName = options.environmentName; + agents.listSnapshotInstances(profile.token, snapshotId, envName).then((response) => { + if (response.success) { + let result = filterObject(response.instances, options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + { column: 'Instance Id', field: 'instanceId', width: 26 }, + { column: 'Status', field: 'status', width: 15 }, + { column: 'Environment Id', field: 'environmentName', width: 26 }, + { column: 'Created At', field: 'createdAt', width: 26 }, + ]; + printTable(tableSpec, result); + } + + } + else { + printError(`Failed to list instances for snapshot ${snapshotId}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list instances for snapshot ${snapshotId}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.DescribeAgentSnapshotCommand = class { constructor(program) { @@ -579,4 +618,4 @@ module.exports.ListTriggersCommand = class { printError(`Failed to list triggers ${instanceId} : ${err.status} ${err.message}`, options); }); } -}; \ No newline at end of file +}; diff --git a/src/commands/content.js b/src/commands/content.js index 82037343..96f45792 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -20,7 +20,7 @@ const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Content = require('../client/content'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { printSuccess, printError, filterObject, parseObject, printTable, getSourceFiles, humanReadableFileSize } = require('./utils'); module.exports.ListContent = class ListContent { @@ -47,6 +47,7 @@ module.exports.ListContent = class ListContent { { column: 'Size (bytes)', field: 'Size', width: 20 } ]; + printTable(tableSpec, response.message); } } @@ -67,44 +68,93 @@ module.exports.UploadContent = class UploadContent { this.program = program; } - execute(contentKey, filePath, options) { + execute(contentKey, filePath, options, cbTest) { const profile = loadProfile(options.profile); debug('%s.uploadContent()', profile.name); - const content = new Content(profile.url); - const showProgress = !!options.progress; + const contentClient = new Content(profile.url); - if (options.secure) { - const fileContent = fs.readFileSync(filePath); - const fileBaseName = path.basename(filePath); + const chunkSize = parseInt(options.chunkSize); + //const chunkSize = parseInt(options.chunkSize); + const uploadSecure = _.partial(UploadContent.uploadSecure, contentClient, profile, options); + const upload = _.partial(UploadContent.upload, contentClient, profile, options); - const secureContent = {}; - secureContent[fileBaseName] = new Buffer(fileContent).toString('base64'); - content.uploadSecureContent(profile.token, contentKey, secureContent).then((response) => { - if (response.success) { - printSuccess(`Secure content successfully uploaded.`, options); - } - else { - printError(`Failed to upload secure content: ${response.status} ${response.message}`, options); + if (options.recursive) { + getSourceFiles(filePath, (filesDict, err) => { + if (err) { + debug(err); + printError(`Failed to upload content: ${err.status} ${err.message}`, options); } - }) - } - else { - const contentType = _.get(options, 'contentType', 'application/octet-stream'); - content.uploadContentStreaming(profile.token, contentKey, filePath, showProgress, contentType).then((response) => { - if (response.success) { - printSuccess(`Content successfully uploaded.`, options); + + const totalBytes = filesDict.reduce((accum, current) => { + console.log(`${humanReadableFileSize(current.size)}\t${current.relative} -> ${contentKey}/${current.relative}`); + return accum + current.size; + }, 0); + console.log(`\nTotal:\n${humanReadableFileSize(totalBytes)}\t${filePath}`); + + debug(`chunksize ${chunkSize}`); + + if (!options.test) { + _.chunk(filesDict, chunkSize) + .reduce((promise, currentChunk) => promise + .then(() => { + debug(`working on chunk of files: ${JSON.stringify(currentChunk)}`); + const promises = currentChunk.map((item) => upload(`${contentKey}/${item.relative}`, item.canonical)); + return Promise.all(promises); + }), Promise.resolve() + ); + } else { + console.log('Test option set. Nothing uploaded.'); } - else { - printError(`Failed to upload content: ${response.status} ${response.message}`, options); + + if (cbTest) { + // for unit tests + cbTest(filesDict); } - }) - .catch((err) => { - debug(err); - printError(`Failed to upload content: ${err.status} ${err.message}`, options); }); + } else { + if (options.secure) { + uploadSecure(contentKey, filePath); + } + else { + upload(contentKey, filePath); + } } } + + + static uploadSecure(contentClient, profile, options, contentKey, filePath) { + const fileContent = fs.readFileSync(filePath); + const fileBaseName = path.basename(filePath); + + const secureContent = {}; + secureContent[fileBaseName] = new Buffer(fileContent).toString('base64'); + contentClient.uploadSecureContent(profile.token, contentKey, secureContent).then((response) => { + if (response.success) { + printSuccess(`Secure content successfully uploaded.`, options); + } + else { + printError(`Failed to upload secure content: ${response.status} ${response.message}`, options); + } + }) + } + + static upload(contentClient, profile, options, contentKey, filePath) { + const showProgress = !!options.progress; + const contentType = _.get(options, 'contentType', 'application/octet-stream'); + return contentClient.uploadContentStreaming(profile.token, contentKey, filePath, showProgress, contentType).then((response) => { + if (response.success) { + printSuccess(`Content successfully uploaded.`, options); + } + else { + printError(`Failed to upload content: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to upload content: ${err.status} ${err.message}`, options); + }); + } }; module.exports.DeleteContent = class DeleteContent { diff --git a/src/commands/environments.js b/src/commands/environments.js index 86fbef7e..d87af2d7 100644 --- a/src/commands/environments.js +++ b/src/commands/environments.js @@ -185,7 +185,7 @@ module.exports.PromoteEnvironmentCommand = class PromoteEnvironmentCommand { environment.promoteEnvironment(profile.token, promObj) .then((response) => { if (response.success) { - printSuccess(`Snapshot: \'${promObj.snapshotId}\' successfully promoted to environment:\'${promObj.environmentName}\'`, options); + printSuccess(`Snapshot \'${promObj.snapshotId}\' successfully promoted to \'${promObj.environmentName}\' environment. Instance \'${response.message.instanceId}\' created.`, options); } else { let errMsg = `Failed to promote to environment: ${response.status} ${response.message}\n`; if (response.details) { diff --git a/src/commands/processors.js b/src/commands/processors.js deleted file mode 100644 index 91798108..00000000 --- a/src/commands/processors.js +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const uuid = require('uuid'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Processors = require('../client/processors'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - -module.exports.ListRuntimesCommand = class ListRuntimesCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.executeListRuntimes()', profile.name); - - const processors = new Processors(profile.url); - processors.listRuntimes(profile.token).then((response) => { - if (response.success) { - let result = response.runtimes; - if (options.query) - result = filterObject(result, options); - - if(options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Type', field: 'runtimeType', width: 25 } - ]; - - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list runtimes: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list runtimes: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListRuntimeTypesCommand = class ListRuntimeTypesCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.executeListRuntimeTypes()', profile.name); - - const processors = new Processors(profile.url); - processors.listRuntimeTypes(profile.token).then((response) => { - if (response.success) { - let result = response.runtimeTypes; - if (options.query) - result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 25 }, - { column: 'Description', field: 'description', width: 75 } - ]; - - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list runtime types: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list runtime types: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListActionsCommand = class ListActionsCommand { - - constructor(program) { - this.program = program; - } - - execute(runtimeName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeListRuntimeActionss()', profile.name); - - const processors = new Processors(profile.url); - processors.listRuntimeActions(profile.token, runtimeName).then((response) => { - if (response.success) { - let result = response.actions; - if (options.query) - result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 25 }, - { column: 'Version', field: 'version', width: 12 }, - { column: 'Kind', field: 'kind', width: 25 }, - { column: 'Memory', field: 'memory', width: 15 }, - { column: 'Timeout', field: 'timeout', width: 15 } - ]; - - const actions = result.map((action) => { - const a = {name: action.name, version: action.version, timeout: action.limits.timeout, memory: action.limits.memory, kind: 'blackbox'}; - - if (action.annotations && action.annotations.length > 0) { - a.kind = action.annotations[0].value; - } - - return a; - }); - - printTable(tableSpec, actions); - } - } - else { - printError(`Failed to list actions for runtime ${runtimeName}: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list actions for runtime ${runtimeName}: ${JSON.stringify(err.response.body)} `, options); - }); - } -}; - -module.exports.DescribeRuntimeCommand = class DescribeRuntimeCommand { - - constructor(program) { - this.program = program; - } - - execute(runtimeName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDescribeRuntime(%s)', profile.name, runtimeName); - - const processors = new Processors(profile.url); - processors.describeRuntime(profile.token, runtimeName).then((response) => { - if (response.success) { - let result = filterObject(response.runtime, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to describe processor runtime ${runtimeName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe processor runtime ${runtimeName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DeleteRuntimeCommand = class DeleteRuntimeCommand { - - constructor(program) { - this.program = program; - } - - execute(runtimeName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDeleteRuntime(%s)', profile.name, runtimeName); - - const processors = new Processors(profile.url); - processors.deleteRuntime(profile.token, runtimeName).then((response) => { - if (response.success) { - printSuccess(`Processor runtime ${runtimeName} deleted`); - } - else { - printError(`Failed to delete processor runtime ${runtimeName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete processor runtime ${runtimeName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.SaveRuntimeCommand = class SaveRuntimeCommand { - - constructor(program) { - this.program = program; - } - - execute(runtimeDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSaveRuntime(%s)', profile.name, runtimeDefinition); - - const runtimeStr = fs.readFileSync(runtimeDefinition); - const runtime = parseObject(runtimeStr, options); - - const processors = new Processors(profile.url); - processors.saveRuntime(profile.token, runtime).then((response) => { - if (response.success) { - printSuccess(`Processor runtime configuration saved at version ${response.version}`, options); - } - else { - printError(`Failed to save processor runtime: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to save processor runtime: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.InvokeActionCommand = class InvokeActionCommand { - - constructor(program) { - this.program = program; - } - - execute(runtimeName, actionId, options) { - const profile = loadProfile(options.profile); - debug('%s.executeInvokeAction(%s, %s)', profile.name, runtimeName, actionId); - - let params = {}; - if (options.params) { - params = parseObject(options.params, options); - } - else if (options.paramsFile) { - const paramsStr = fs.readFileSync(options.paramsFile); - params = parseObject(paramsStr, options); - } - - if (!params.token) params.token = profile.token; - if (!params.apiEndpoint) params.apiEndpoint = profile.url; - if (!params.instanceId) params.instanceId = uuid(); - if (!params.sessionId) params.sessionId = uuid(); - if (!params.channelId) params.channelId = uuid(); - - debug('params: %o', params); - - const processors = new Processors(profile.url); - processors.invokeRuntimeAction(profile.token, runtimeName, actionId, params).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Action invocation failed: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to invoke action: ${err.response.body.message}`, options); - }); - } -}; \ No newline at end of file diff --git a/src/commands/utils.js b/src/commands/utils.js index f5fed1ff..073ef9a5 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -15,7 +15,11 @@ */ const chalk = require('chalk'); +const path = require('path'); +const fs = require('fs'); +const _ = require('lodash'); const jmsepath = require('jmespath'); +const glob = require('glob'); const yaml = require('js-yaml'); const debug = require('debug')('cortex:cli'); const Table = require('cli-table'); @@ -139,4 +143,50 @@ async function callMe(commandStr) { }); } -module.exports.callMe = callMe; \ No newline at end of file +module.exports.callMe = callMe; + +module.exports.getSourceFiles = function(source, cb) { + const options = {silent:true}; + const normalizedSource = (source.endsWith('/')) ? source : `${source}/`; + const normalizedPath = path.join(normalizedSource, '**', '*'); + glob(normalizedPath, options, function (err, files) { + // files is an array of filenames. + if (err) { + cb(err); + } else { + const results = files.filter(path => fs.lstatSync(path).isFile()).map((path) => { + return { + canonical: path, + relative: path.slice(normalizedSource.length), + size: fs.lstatSync(path).size, + }; + }); + cb(results); + } + }); +}; + +function round(value, precision) { + const multiplier = Math.pow(10, precision || 0); + return Math.floor(value * multiplier) / multiplier; +} + +module.exports.humanReadableFileSize = function(sizeInBytes) { + const ranges = { + 'K': Math.pow(10, 3), + 'M': Math.pow(10, 6), + 'G': Math.pow(10, 9), + 'T': Math.pow(10, 12), + }; + if (sizeInBytes < ranges['K']) { + return `${sizeInBytes}B` + } else if (sizeInBytes < ranges['M']) { + return `${round(sizeInBytes/ranges['K'], 1)}K` + } else if (sizeInBytes < ranges['G']) { + return `${round(sizeInBytes/ranges['M'], 1)}M` + } else if (sizeInBytes < ranges['T']) { + return `${round(sizeInBytes/ranges['G'], 1)}G` + } + +}; + diff --git a/test/cortex/sample/upload/config b/test/cortex/sample/upload/config new file mode 100644 index 00000000..0d688a03 --- /dev/null +++ b/test/cortex/sample/upload/config @@ -0,0 +1,12 @@ +{ + "version": "2", + "profiles": { + "test": { + "url": "http://localhost:8000", + "username": "test_user", + "account": "test_account", + "token": "DUMMY_TOKEN" + } + }, + "currentProfile": "test" +} \ No newline at end of file diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js new file mode 100644 index 00000000..fb8a5164 --- /dev/null +++ b/test/uploadDirectory.js @@ -0,0 +1,101 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const commander = require('commander'); +const { UploadContent } = require('../src/commands/content'); +const { humanReadableFileSize } = require('../src/commands/utils'); +const chai = require('chai'); +const expect = chai.expect; + +describe('Upload Directory', function () { + it('test upload', (done) => { + const program = new commander.Command(); + const command = new UploadContent(program); + const contentKey = '.shared'; + + const filePath = `${__dirname}/cortex`; + const options = { + 'recursive': true, + 'test': true + }; + + const expectedFileDicts = [ + { canonical: `${__dirname}/cortex/config`, + relative: 'config', + size: 260 + }, + { canonical: `${__dirname}/cortex/sample/upload/config`, + relative: 'sample/upload/config', + size: 260 + } + ]; + + command.execute(contentKey, filePath, options, (fileDicts) => { + expect(fileDicts).to.deep.equal(expectedFileDicts); + done(); + }); + }); +}); + +describe('Human Readable File Size', function () { + it('bytes', (done) => { + const sizeInBytes = 260; + const formattedFileSize = humanReadableFileSize(sizeInBytes); + expect(formattedFileSize).to.have.string('260B'); + done(); + }); + it('KB', (done) => { + const sizeInBytes = 1200; + const formattedFileSize = humanReadableFileSize(sizeInBytes); + expect(formattedFileSize).to.have.string('1.2K'); + done(); + }); + + it('MB', (done) => { + const sizeInBytes = 1000000; + const formattedFileSize = humanReadableFileSize(sizeInBytes); + expect(formattedFileSize).to.have.string('1M'); + done(); + }); + + it('1MB less some', (done) => { + const sizeInBytes = Math.pow(10, 3) - 1; + const formattedFileSize = humanReadableFileSize(sizeInBytes); + expect(formattedFileSize).to.have.string('999B'); + done(); + }); + + it('1k 200 bytes less', (done) => { + const sizeInBytes = 1000000 - 200; + const formattedFileSize = humanReadableFileSize(sizeInBytes); + expect(formattedFileSize).to.have.string('999.8K'); + done(); + }); + + it('1k less', (done) => { + const sizeInBytes = Math.pow(10, 6) - 1; + const formattedFileSize = humanReadableFileSize(sizeInBytes); + expect(formattedFileSize).to.have.string('999.9K'); + done(); + }); + + it('several GB', (done) => { + const sizeInBytes = 32 * Math.pow(10, 9) + 345 * Math.pow(10, 6); + const formattedFileSize = humanReadableFileSize(sizeInBytes); + expect(formattedFileSize).to.have.string('32.3G'); + done(); + }); +}); From cae8557043981a88d45daec02a4f302c94024141 Mon Sep 17 00:00:00 2001 From: vadan-cs Date: Mon, 22 Apr 2019 10:17:45 -0500 Subject: [PATCH 086/864] Release0.12.14 c (#182) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md --- bin/cortex-actions.js | 1 - package.json | 4 ++-- pull_request_template.md | 9 +++++++++ src/client/actions.js | 7 +++---- src/client/catalog.js | 2 +- src/client/content.js | 14 ++++++++------ src/commands/actions.js | 3 +-- src/commands/agents.js | 2 +- src/commands/configure.js | 4 ++++ 9 files changed, 29 insertions(+), 17 deletions(-) create mode 100644 pull_request_template.md diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 65727f5e..cf63a2a7 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -124,7 +124,6 @@ program .option('--docker [image]', 'Docker image to use as the runner') .option('--memory [memory]', 'Action memory limit in megabytes') .option('--vcpus [vcpus]', 'Action vcpus limit in integer') - .option('--timeout [timeout]', 'Execution timeout in milliseconds', '60000') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--actionType [actionType]', 'Type of action') diff --git a/package.json b/package.json index b81ff258..2b7641b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.13", + "version": "0.12.14", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.18", + "@c12e/generator-cortex": "0.3.19", "boxen": "1.3.0", "chalk": "2.3.0", "cli-table": "0.3.1", diff --git a/pull_request_template.md b/pull_request_template.md new file mode 100644 index 00000000..6854eb4e --- /dev/null +++ b/pull_request_template.md @@ -0,0 +1,9 @@ +# Checklist: +Please check you fulfill ALL of the relevant checkboxes +- [ ] Notified docs of any potential USER-facing changes +- [ ] Added short description of the change - with relevant motivation and context. +- [ ] Branch has the ticket number in its name (along with a ticket summary) +- [ ] Commented the code, particularly in hard-to-understand areas +- [ ] Added tests that prove my fix is effective or that my feature works +- [ ] Ran `npm test` and it passes +- [ ] Changes generate no new warnings diff --git a/src/client/actions.js b/src/client/actions.js index 4bddbf75..09638dd6 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -54,13 +54,13 @@ module.exports = class Actions { }); } - async deployAction(token, actionName, docker, kind, code, memory, vcpus, timeout, actionType, command, port, environment, environmentVariables, pushDocker) { + async deployAction(token, actionName, docker, kind, code, memory, vcpus, actionType, command, port, environment, environmentVariables, pushDocker) { let endpoint = `${this.endpointV3}`; if (actionType) { endpoint = `${endpoint}?actionType=${actionType}`; } - debug('deployAction(%s, docker=%s, kind=%s, code=%s, memory=%s, vcpus=%s, timeout=%s) => %s', - actionName, docker, kind, code, memory, vcpus, timeout, endpoint); + debug('deployAction(%s, docker=%s, kind=%s, code=%s, memory=%s, vcpus=%s) => %s', + actionName, docker, kind, code, memory, vcpus, endpoint); try { docker = await this._maybePushDockerImage(docker, token, pushDocker); @@ -77,7 +77,6 @@ module.exports = class Actions { if (kind) req.field('kind', kind); if (memory) req.field('memory', memory); if (vcpus) req.field('vcpus', vcpus); - if (timeout) req.field('timeout', timeout); if (code) req.attach('code', code); if (command) req.field('command', command); if (port) req.field('port', port); diff --git a/src/client/catalog.js b/src/client/catalog.js index 138edc1d..813c6416 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -125,7 +125,7 @@ module.exports = class Catalog { const urlBase = `${profile.url}/${AGENTS_API_VERSION}/agents/${agentName}/services`; const servicesList = response.agent.inputs .filter(i => i.signalType === 'Service') - .map(i => ({ ...i, url: `${urlBase}/${i.name}` })); + .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) return { success: true, services: servicesList }; } else { return response; diff --git a/src/client/content.js b/src/client/content.js index 4a21bce1..5565419c 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -95,7 +95,9 @@ module.exports = class Content { return new Promise((resolve) => { fs .createReadStream(content) - .on('data', (chunk) => progressBar && progressBar.tick(chunk.length)) + .on('data', (chunk) => { + progressBar && progressBar.tick(chunk.length); + }) .pipe(request .post({ uri: url, @@ -104,14 +106,14 @@ module.exports = class Content { 'Authorization': `Bearer ${token}`, 'Content-Type': contentType, } - }) - .on('response', (res) => { + }, function(err, res, body) { if (res.statusCode === 200) { - resolve({success: true, message: res.body}); + resolve({success: true, message: body}); + return; } - resolve({success: false, message: res.body, status: res.status}); + // NOTE this is using npm request NOT superagent - fields are different + resolve({success: false, message: body, status: res.statusCode}); }) - .on('error', (err) => resolve(constructError(err))) ); }); } diff --git a/src/commands/actions.js b/src/commands/actions.js index 6bac2d53..794390d5 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -105,7 +105,6 @@ module.exports.DeployActionCommand = class { const code = options.code; const memory = parseInt(options.memory); const vcpus = parseInt(options.vcpus); - const timeout = parseInt(options.timeout); const actionType = options.actionType; const cmd = options.cmd; const port = options.port; @@ -114,7 +113,7 @@ module.exports.DeployActionCommand = class { const pushDocker = options.pushDocker; const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, timeout, actionType, cmd, port, environment, environmentVariables, pushDocker) + actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, actionType, cmd, port, environment, environmentVariables, pushDocker) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); diff --git a/src/commands/agents.js b/src/commands/agents.js index 851f4158..27bed687 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -299,7 +299,7 @@ module.exports.ListServicesCommand = class ListServicesCommand{ execute(agentName, options) { const profile = loadProfile(options.profile); - debug('%s.listServices(%s)', profile.name, agentName); + debug('%s.listServices(%s)', profile.name, agentName); const catalog = new Catalog(profile.url); catalog.listServices(profile.token, agentName, profile).then((response) => { diff --git a/src/commands/configure.js b/src/commands/configure.js index 5bb33bd9..dba510a7 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -64,6 +64,10 @@ module.exports.ConfigureCommand = class { debug('account: %s', account); debug('username: %s', username); + if (!cortexUrl.match(/^[a-zA-Z]+:\/\//)) { + cortexUrl = 'http://' + cortexUrl; + } + if (!cortexUrl) { console.error(chalk.red('Cortex URL must be provided')); return; From 23bce6e31c8b519e82d1c34fb1e50fbe66494403 Mon Sep 17 00:00:00 2001 From: vadan-cs Date: Tue, 7 May 2019 15:52:49 -0500 Subject: [PATCH 087/864] Release v0.12.15 (#186) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 --- .gitignore | 2 -- package.json | 5 +-- src/client/accounts.js | 2 +- src/client/actions.js | 2 +- src/client/agents.js | 2 +- src/client/auth.js | 2 +- src/client/catalog.js | 6 ++-- src/client/connections.js | 2 +- src/client/content.js | 6 ++-- src/client/datasets.js | 2 +- src/client/environments.js | 2 +- src/client/jobs.js | 2 +- src/client/tasks.js | 2 +- src/client/variables.js | 2 +- src/commands/agents.js | 3 +- src/commands/apiutils.js | 58 ++++++++++++++++++++++++++++++ src/commands/utils.js | 17 +++++++++ src/compatibility.js | 2 +- test/{ => client}/compatibility.js | 2 +- test/utils/api.js | 47 ++++++++++++++++++++++++ 20 files changed, 146 insertions(+), 22 deletions(-) create mode 100644 src/commands/apiutils.js rename test/{ => client}/compatibility.js (98%) create mode 100644 test/utils/api.js diff --git a/.gitignore b/.gitignore index e48a0286..9ddfe457 100644 --- a/.gitignore +++ b/.gitignore @@ -96,5 +96,3 @@ test/cortex/local.json .local/ dist/ - -package-lock.json \ No newline at end of file diff --git a/package.json b/package.json index 2b7641b3..e284b4c3 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "cortex-cli", - "version": "0.12.14", + "version": "0.12.15", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { - "test": "CORTEX_CONFIG_DIR=./test/cortex mocha" + "test": "CORTEX_CONFIG_DIR=./test/cortex mocha --recursive" }, "repository": { "type": "git", @@ -47,6 +47,7 @@ "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", + "superagent-proxy": "^2.0.0", "url": "0.11.0", "uuid": "3.2.1", "yeoman-environment": "2.0.5" diff --git a/src/client/accounts.js b/src/client/accounts.js index 4b36395b..16a7892d 100644 --- a/src/client/accounts.js +++ b/src/client/accounts.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); diff --git a/src/client/actions.js b/src/client/actions.js index 09638dd6..3fd31aec 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -16,7 +16,7 @@ const url = require('url'); const chalk = require('chalk'); -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const _ = require('lodash'); const jsonwebtoken = require('jsonwebtoken'); diff --git a/src/client/agents.js b/src/client/agents.js index ccd386aa..51869bae 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const _ = require('lodash'); const chalk = require('chalk'); diff --git a/src/client/auth.js b/src/client/auth.js index 068cf493..339d1d23 100644 --- a/src/client/auth.js +++ b/src/client/auth.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const _ = require('lodash'); const chalk = require('chalk'); diff --git a/src/client/catalog.js b/src/client/catalog.js index 813c6416..f6338ed6 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -14,11 +14,11 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const _ = require('lodash'); const chalk = require('chalk'); -const { constructError } = require('../commands/utils'); +const { constructError, formatAllServiceInputParameters } = require('../commands/utils'); const AGENTS_API_VERSION = 'v3'; const createEndpoints = (baseUri) => { @@ -126,6 +126,8 @@ module.exports = class Catalog { const servicesList = response.agent.inputs .filter(i => i.signalType === 'Service') .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) + .map(i => ({ ...i, formatted_types: + formatAllServiceInputParameters(i.parameters)})); return { success: true, services: servicesList }; } else { return response; diff --git a/src/client/connections.js b/src/client/connections.js index 1ead0609..33428af5 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); diff --git a/src/client/content.js b/src/client/content.js index 5565419c..69e89677 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -20,7 +20,7 @@ const path = require('path'); const { URL } = require('url'); const ProgressBar = require('progress'); -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); @@ -79,7 +79,7 @@ module.exports = class Content { // NOTE: superagent only supports uploads via .attach(), which uses multipart forms (@see // https://github.com/visionmedia/superagent/issues/1250). To perform a streaming upload, // we use requestjs instead. - const request = require('request'); + const requestLibRequest = require('request'); const contentKey = this._sanitizeKey(key); const url = new URL(`${this.endpoint}/${contentKey}`); @@ -98,7 +98,7 @@ module.exports = class Content { .on('data', (chunk) => { progressBar && progressBar.tick(chunk.length); }) - .pipe(request + .pipe(requestLibRequest .post({ uri: url, headers: { diff --git a/src/client/datasets.js b/src/client/datasets.js index a28cc27e..3c6e3dbd 100644 --- a/src/client/datasets.js +++ b/src/client/datasets.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); diff --git a/src/client/environments.js b/src/client/environments.js index dc6fce26..158ed6fc 100644 --- a/src/client/environments.js +++ b/src/client/environments.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); diff --git a/src/client/jobs.js b/src/client/jobs.js index fe1bb6ca..2212fe09 100644 --- a/src/client/jobs.js +++ b/src/client/jobs.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); const Actions = require('./actions'); diff --git a/src/client/tasks.js b/src/client/tasks.js index ccf75613..d7a2e7f7 100644 --- a/src/client/tasks.js +++ b/src/client/tasks.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); diff --git a/src/client/variables.js b/src/client/variables.js index 8bd8d241..aa561d4e 100644 --- a/src/client/variables.js +++ b/src/client/variables.js @@ -15,7 +15,7 @@ */ const debug = require('debug')('cortex:cli'); -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const { constructError } = require('../commands/utils'); diff --git a/src/commands/agents.js b/src/commands/agents.js index 27bed687..4c39e9fd 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -311,7 +311,8 @@ module.exports.ListServicesCommand = class ListServicesCommand{ else { const tableSpec = [ {column: 'Service Name', field: 'name', width: 25}, - {column: 'Service Endpoint URL', field: 'url', width: 115} + {column: 'Service Endpoint URL', field: 'url', width: 115}, + {column: 'Parameters', field: 'formatted_types', width: 65} ]; printTable(tableSpec, result); } diff --git a/src/commands/apiutils.js b/src/commands/apiutils.js new file mode 100644 index 00000000..79f7df35 --- /dev/null +++ b/src/commands/apiutils.js @@ -0,0 +1,58 @@ + +const superagentRequest = require('superagent'); +require('superagent-proxy')(superagentRequest); +const debug = require('debug')('cortex:cli'); + +const { printWarning } = require('./utils'); + +/** + * makes a request via superagent. proxy methods will be utilized + * if the user (i.e. person running cli commands) has set environment + * variables for their proxy (this is assuming ofc they have a proxy). if + * no env variables set, the request just keeps piping through. + */ + +function requestWrapper() { + // @tutorial: https://stackoverflow.com/questions/22156326/private-properties-in-javascript-es6-classes + // below are private variables + const proxyEnv = process.env.https_proxy || process.env.http_proxy; + const bothProxiesSet = process.env.https_proxy && process.env.http_proxy; + const bothProxiesWarning = 'Both process.env.https_proxy AND process.env.http_proxy are set as env variables. Will default to process.env.https_proxy'; + + const bypassProxy = process.env.bypass_proxy; + + this.get = function(endpoint) { + if (bypassProxy) return superagentRequest.get(endpoint); + + bothProxiesSet && printWarning(bothProxiesWarning); + return superagentRequest + .get(endpoint) + .proxy(proxyEnv); + }; + this.delete = function(endpoint) { + if (bypassProxy) return superagentRequest.delete(endpoint); + + bothProxiesSet && printWarning(bothProxiesWarning); + return superagentRequest + .delete(endpoint) + .proxy(proxyEnv) + }; + this.post = function(endpoint) { + if (bypassProxy) return superagentRequest.post(endpoint); + + bothProxiesSet && printWarning(bothProxiesWarning); + return superagentRequest + .post(endpoint) + .proxy(proxyEnv) + } + this.put = function(endpoint) { + if (bypassProxy) return superagentRequest.put(endpoint); + + bothProxiesSet && printWarning(bothProxiesWarning); + return superagentRequest + .put(endpoint) + .proxy(proxyEnv) + } +} + +module.exports.request = new requestWrapper(); diff --git a/src/commands/utils.js b/src/commands/utils.js index 073ef9a5..e68a65ea 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -190,3 +190,20 @@ module.exports.humanReadableFileSize = function(sizeInBytes) { }; +module.exports.formatAllServiceInputParameters = function(allParameters){ + if(allParameters.$ref != null){ + return `$ref:${allParameters.$ref}`; + } + else{ + return allParameters.map(inputParameters => formatServiceInputParameter(inputParameters)).join('\n'); + } +} + +function formatServiceInputParameter(inputParameter){ + if(inputParameter.type === 'array'){ + return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}<${inputParameter.format}>`); + } + else{ + return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); + } +} diff --git a/src/compatibility.js b/src/compatibility.js index 7198cd1d..b319b91a 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -25,7 +25,7 @@ const isInstalledGlobally = require('is-installed-globally'); const keys = require('lodash/fp/keys'); const last = require('lodash/fp/last'); const npmFetch = require('npm-registry-fetch'); -const request = require('superagent'); +const { request } = require('./commands/apiutils'); const semver = require('semver'); const uniq = require('lodash/fp/uniq'); diff --git a/test/compatibility.js b/test/client/compatibility.js similarity index 98% rename from test/compatibility.js rename to test/client/compatibility.js index e6d06ba9..158afef6 100644 --- a/test/compatibility.js +++ b/test/client/compatibility.js @@ -22,7 +22,7 @@ const semver = require('semver'); const superagent = require('superagent'); const superagentMock = require('superagent-mocker'); -const compatibilityModule = rewire('../src/compatibility'); +const compatibilityModule = rewire('../../src/compatibility'); chai.use(chaiAsPromised); const expect = chai.expect; diff --git a/test/utils/api.js b/test/utils/api.js new file mode 100644 index 00000000..8cf0b3a7 --- /dev/null +++ b/test/utils/api.js @@ -0,0 +1,47 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const assert = require('assert'); + +const { request } = require('../../src/commands/apiutils'); + +describe('testing api utils request function methods exist', function() { + it('request get method should exist', function() { + assert.ok(request.get); + }); + + it('request delete method should exist', function() { + assert.ok(request.delete); + }); + + it('request post method should exist', function() { + assert.ok(request.post); + }); + + it('request put method should exist', function() { + assert.ok(request.put); + }); + + it('request nonexistentmumbojumbo method should NOT exist', function() { + assert.ok(request.nonexistentmumbojumbo === undefined); + }); + + it('private var proxyEnv for request NOT be accessible', function() { + assert.ok(request.proxyEnv === undefined); + }); +}); + + From c8a994d1a6945f0d980debbdb06a55d209083a4d Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 19 Feb 2019 16:44:27 -0600 Subject: [PATCH 088/864] =?UTF-8?q?CCF-9286:=20return=20instanceId=20in=20?= =?UTF-8?q?the=20message=20when=20promoting=20a=20snapshot=20=E2=80=A6=20(?= =?UTF-8?q?#162)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments --- src/commands/environments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/environments.js b/src/commands/environments.js index d87af2d7..76b2a1d6 100644 --- a/src/commands/environments.js +++ b/src/commands/environments.js @@ -185,7 +185,7 @@ module.exports.PromoteEnvironmentCommand = class PromoteEnvironmentCommand { environment.promoteEnvironment(profile.token, promObj) .then((response) => { if (response.success) { - printSuccess(`Snapshot \'${promObj.snapshotId}\' successfully promoted to \'${promObj.environmentName}\' environment. Instance \'${response.message.instanceId}\' created.`, options); + printSuccess(`Snapshot \'${promObj.snapshotId}\' successfully promoted to \'${promObj.environmentName}\' environment. Instance \'${response.instanceId}\' created.`, options); } else { let errMsg = `Failed to promote to environment: ${response.status} ${response.message}\n`; if (response.details) { From 09b3a595f8618d76dab65aacf6af0055a0a3e194 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Wed, 20 Feb 2019 16:23:02 -0600 Subject: [PATCH 089/864] fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) --- src/commands/environments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/environments.js b/src/commands/environments.js index 76b2a1d6..d87af2d7 100644 --- a/src/commands/environments.js +++ b/src/commands/environments.js @@ -185,7 +185,7 @@ module.exports.PromoteEnvironmentCommand = class PromoteEnvironmentCommand { environment.promoteEnvironment(profile.token, promObj) .then((response) => { if (response.success) { - printSuccess(`Snapshot \'${promObj.snapshotId}\' successfully promoted to \'${promObj.environmentName}\' environment. Instance \'${response.instanceId}\' created.`, options); + printSuccess(`Snapshot \'${promObj.snapshotId}\' successfully promoted to \'${promObj.environmentName}\' environment. Instance \'${response.message.instanceId}\' created.`, options); } else { let errMsg = `Failed to promote to environment: ${response.status} ${response.message}\n`; if (response.details) { From d442a111e05cdb25b863bb8ce0181ba622ee8b2f Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Wed, 27 Feb 2019 09:54:09 -0600 Subject: [PATCH 090/864] Add agents list-snapshot-instances (#168) --- src/client/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/agents.js b/src/client/agents.js index 51869bae..8f5715a9 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -113,7 +113,7 @@ module.exports = class Agents { listSnapshotInstances(token, snapshotId, environmentName) { - let endpoint = `${this.endpoint}/instances?snapshotId=${snapshotId}`; + let endpoint = `${this.endpoint}/instances?snapshot=${snapshotId}`; debug('listSnapshotInstances(%s, %s) => (%s)', snapshotId, environmentName, endpoint); if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; From d2555cdc10bf3070848bdb3a5452a5e27f5f88b6 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Thu, 28 Feb 2019 13:54:25 -0600 Subject: [PATCH 091/864] Fix invalid query param on list snap instances (#170) --- src/client/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/agents.js b/src/client/agents.js index 8f5715a9..51869bae 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -113,7 +113,7 @@ module.exports = class Agents { listSnapshotInstances(token, snapshotId, environmentName) { - let endpoint = `${this.endpoint}/instances?snapshot=${snapshotId}`; + let endpoint = `${this.endpoint}/instances?snapshotId=${snapshotId}`; debug('listSnapshotInstances(%s, %s) => (%s)', snapshotId, environmentName, endpoint); if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; From 5dd56f7e97f331439519592380b35fc699183c1a Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 9 May 2019 15:32:55 -0500 Subject: [PATCH 092/864] Update minor-compatible dependencies --- .npmrc | 2 +- package-lock.json | 4862 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 22 +- 3 files changed, 4874 insertions(+), 12 deletions(-) create mode 100644 package-lock.json diff --git a/.npmrc b/.npmrc index 43c97e71..449691b7 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1 @@ -package-lock=false +save-exact=true \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..b0d3aa02 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4862 @@ +{ + "name": "cortex-cli", + "version": "0.12.15", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@c12e/generator-cortex": { + "version": "0.3.19", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.19.tgz", + "integrity": "sha1-MRkj6gRdKWjqI8vu6dsrbTX0oFE=", + "requires": { + "debug": "^3.1.0", + "joi": "^13.1.2", + "superagent": "^3.8.2", + "yeoman-generator": "^3.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "joi": { + "version": "13.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.7.0.tgz", + "integrity": "sha1-z9hev+Z+ihkAQyQAtNA7vZP7h58=", + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=" + }, + "@types/node": { + "version": "8.10.48", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-8.10.48.tgz", + "integrity": "sha1-44UHNWFkOpumGZoZhf/ANTD5B4E=" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "6.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "requires": { + "color-convert": "^1.9.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types": { + "version": "0.12.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-types/-/ast-types-0.12.4.tgz", + "integrity": "sha1-cc5jg4APJO/JoaMwjzpuQgoJdNE=" + }, + "async": { + "version": "2.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-2.6.2.tgz", + "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=", + "requires": { + "lodash": "^4.17.11" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binaryextensions": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-2.1.2.tgz", + "integrity": "sha1-yDw9dCM7p2dOTzE8sqK3D1TpS3w=" + }, + "bluebird": { + "version": "3.5.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bluebird/-/bluebird-3.5.4.tgz", + "integrity": "sha1-1sxmFZXeMNWzr1/O3TwLPvbsVxQ=" + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha1-VcbDmouljZxhrSLNh3Uy3rZlogs=", + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "dev": true + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" + }, + "cacache": { + "version": "11.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chai": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.2.0.tgz", + "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", + "dev": true, + "requires": { + "check-error": "^1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chownr": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha1-VHJri4//TfBTxCGH6AH7RBLfFJQ=" + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "requires": { + "colors": "1.0.3" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "clone": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "cloneable-readable": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha1-1ZHe5Kj4vBXaQ86X3O66E9Q+KmU=", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "co-prompt": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co-prompt/-/co-prompt-1.0.0.tgz", + "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", + "requires": { + "keypress": "~0.2.1" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.0.tgz", + "integrity": "sha1-1YuytcHuj4ew00ACfp6U4iLFpCI=" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha1-3YojVTB1L5iPmghE8/xYnjERElw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" + }, + "dargs": { + "version": "6.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dargs/-/dargs-6.1.0.tgz", + "integrity": "sha1-HzubVjk+z4yqfL/WwxSW/8+5snI=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-uri-to-buffer": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/data-uri-to-buffer/-/data-uri-to-buffer-2.0.1.tgz", + "integrity": "sha1-yo9W/jix/TKUc+nRtKmvzYzhwEU=", + "requires": { + "@types/node": "^8.0.7" + } + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha1-puN0maTZqc+F71hyBE1ikByYia4=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "detect-conflict": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-conflict/-/detect-conflict-1.0.1.tgz", + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha1-rg8PothQRe8UqBfao86azQSJ5b8=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "editions": { + "version": "2.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/editions/-/editions-2.1.3.tgz", + "integrity": "sha1-cnzPPsLHsS3MZSxxAA8WxIJNb30=", + "requires": { + "errlop": "^1.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" + } + } + }, + "ejs": { + "version": "2.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha1-SY7A1JVlWrxvI81hho2SZGQHGqA=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", + "requires": { + "once": "^1.4.0" + } + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" + }, + "errlop": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/errlop/-/errlop-1.1.1.tgz", + "integrity": "sha1-2a5MdsPmSVbF155uA11jQ7/WIlA=", + "requires": { + "editions": "^2.1.2" + } + }, + "error": { + "version": "7.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "requires": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-promise": { + "version": "4.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha1-toXt2CWIhjZepitX0w3ij63Nl08=" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.11.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-1.11.1.tgz", + "integrity": "sha1-xIX/jWtM24nif0qFbpHxGEAcpRA=", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "optional": true + } + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "dev": true + } + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha1-PzGA+y4pEBdxastMnW1bXDSmqB0=", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-3.5.4.tgz", + "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-glob": { + "version": "2.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-2.2.6.tgz", + "integrity": "sha1-pdW2l+yN7aRo2Fp0A1KQoCWpUpU=", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-package-json": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "requires": { + "locate-path": "^3.0.0" + } + }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha1-cPt8oCkO5v+WEJBBX0s989IIJlk=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "from": { + "version": "0.1.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-uri": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-uri/-/get-uri-2.0.3.tgz", + "integrity": "sha1-+hM1Iml4HXUWLG/IE8npBTI/urU=", + "requires": { + "data-uri-to-buffer": "2", + "debug": "4", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "readable-stream": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.3.0.tgz", + "integrity": "sha1-y4ARqtAC63F78EApH+uoVpyYb7k=", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gh-got": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-6.0.0.tgz", + "integrity": "sha1-10NTAExuxGZkdSChC9RvcpnSaNA=", + "requires": { + "got": "^7.0.0", + "is-plain-obj": "^1.1.0" + } + }, + "github-username": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-username/-/github-username-4.1.0.tgz", + "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "requires": { + "gh-got": "^6.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.4.tgz", + "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true + }, + "globby": { + "version": "8.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-8.0.2.tgz", + "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-7.1.0.tgz", + "integrity": "sha1-BUUP2ECU5rvqVvRRpDqcKJFmOFo=", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=" + }, + "grouped-queue": { + "version": "0.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grouped-queue/-/grouped-queue-0.3.3.tgz", + "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "requires": { + "lodash": "^4.17.2" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha1-FAn5i8ACR9pF2mfO4KNvKC/yZFU=" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha1-oEWrOD17SyASoAFIqwql8pAETU0=", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hoek": { + "version": "5.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha1-D3+icKHK/rNkpLLd+qM/hk5BV9o=" + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=" + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.5.tgz", + "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, + "is-scoped": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-scoped/-/is-scoped-1.0.0.tgz", + "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", + "requires": { + "scoped-regex": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha1-XW3vPt6/boyoyunDAYOoBLX4voA=", + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isemail": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha1-WTEKAhkxqfsGu7UeFVzgs/I2gyw=", + "requires": { + "punycode": "2.x.x" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istextorbinary": { + "version": "2.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-2.5.1.tgz", + "integrity": "sha1-FKM4JM9rnV13Q+rBvivSwxDQzL0=", + "requires": { + "binaryextensions": "^2.1.2", + "editions": "^2.1.3", + "textextensions": "^2.4.0" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha1-sn9PSfPNqj6kSgpbfzRi5u3DnWc=", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "joi": { + "version": "13.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.1.0.tgz", + "integrity": "sha1-Wee4cUuTKh40LDWD1YQdcWn/GCI=", + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha1-AOceC431TCEhofJhN98igGc7zA0=", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "semver": { + "version": "5.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" + } + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha1-dDwymFy56YZVUw1TZBtmyGRbA5o=", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jws/-/jws-3.2.2.tgz", + "integrity": "sha1-ABCZ82OUaMlBQADpmZX6UvtHgwQ=", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "keypress": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keypress/-/keypress-0.2.1.tgz", + "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40=" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "requires": { + "chalk": "^2.0.1" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", + "integrity": "sha1-FBSXy4ePJDupMTbIPYq6EsIWwIM=", + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "mem-fs": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs/-/mem-fs-1.1.3.tgz", + "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", + "requires": { + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "mem-fs-editor": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", + "integrity": "sha1-UZciQWQL6FZ2gKBPetr/5fxgNmc=", + "requires": { + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^2.5.9", + "glob": "^7.0.3", + "globby": "^8.0.1", + "isbinaryfile": "^3.0.2", + "mkdirp": "^0.5.0", + "multimatch": "^2.0.0", + "rimraf": "^2.2.8", + "through2": "^2.0.0", + "vinyl": "^2.0.1" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "merge2": { + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha1-fumdvWm7ZIFoklPwGEiKG5ArDtU=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime/-/mime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=" + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha1-bYrlCPWRZ/lA8rWzxKYSrlDJCuY=", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.15.1.tgz", + "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.2.tgz", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "netmask": { + "version": "1.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha1-Fa4eJ1ilAn77TCUFVLhac323/ME=", + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-registry-fetch": { + "version": "3.9.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz", + "integrity": "sha1-RNhBeA4oM/BqzLNEiPjHRQ0aaFY=", + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "npm-package-arg": "^6.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha1-ueEjgAvOu3rBOkeb4ZW1B7mNMPo=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" + }, + "pac-proxy-agent": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", + "integrity": "sha1-EdV4tyoWStdL+dW6yf9GKjgoJDI=", + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha1-auoweH2wqJFwTet4AKcip2FabyY=", + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "requires": { + "pify": "^3.0.0" + } + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "requires": { + "through": "~2.3" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-bytes": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pretty-bytes/-/pretty-bytes-5.2.0.tgz", + "integrity": "sha1-lsksbpWgs1BZJT+zPAPiYNQPWh8=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "proxy-agent": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-agent/-/proxy-agent-3.1.0.tgz", + "integrity": "sha1-PPhu6RHJSHTeQ1nzfv2d4lFXwRM=", + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "pac-proxy-agent": "^3.0.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.1.31", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/psl/-/psl-1.1.31.tgz", + "integrity": "sha1-6aqG0BAbWxBcvpOsa3hM1UcnYYQ=" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-chunk": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha1-KYSv54ypv7vbdLGTh7+ehiicFso=", + "requires": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + } + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha1-GyIcYIi6d5lgHICPkRYcZuWPiXg=", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "request": { + "version": "2.88.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/request/-/request-2.88.0.tgz", + "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", + "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.0", + "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.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=" + } + } + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve": { + "version": "1.10.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha1-ZkhCrJYHlbvnWCIc3M2mH7ZLXxg=", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" + }, + "retry": { + "version": "0.10.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + }, + "rewire": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-4.0.1.tgz", + "integrity": "sha1-uhEA1ACp2nWf5Zn8bgIz8Iee1to=", + "dev": true, + "requires": { + "eslint": "^4.19.1" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "6.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", + "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + }, + "scoped-regex": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/scoped-regex/-/scoped-regex-1.0.0.tgz", + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" + }, + "semver": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.5.0.tgz", + "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shelljs": { + "version": "0.8.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha1-p/MxlSDr8J7oEnWyNorbKGZZsJc=", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha1-UgeFjDgVzGkRBwPGuU5GwVY0OV0=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socks": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.3.2.tgz", + "integrity": "sha1-reOI6ebYf9sRZJwVdGxXiSKliD4=", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha1-dezRqI3owYTvAV6vtRtbSL/RG7E=" + }, + "split": { + "version": "0.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "requires": { + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "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" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "requires": { + "duplexer": "~0.1.1" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "requires": { + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "superagent": { + "version": "3.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-3.8.2.tgz", + "integrity": "sha1-5KEbnQR/fT7+s7vlNtnsACHRZAM=", + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.1.1", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "superagent-mocker": { + "version": "0.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-mocker/-/superagent-mocker-0.5.2.tgz", + "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", + "dev": true, + "requires": { + "path-to-regexp": "^1.1.0" + } + }, + "superagent-proxy": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-proxy/-/superagent-proxy-2.0.0.tgz", + "integrity": "sha1-n1dRXNZg4unOVcDmvXD5LrB8PuA=", + "requires": { + "debug": "^3.1.0", + "proxy-agent": "3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-4.0.2.tgz", + "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", + "dev": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + } + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "textextensions": { + "version": "2.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-2.4.0.tgz", + "integrity": "sha1-ahQ6mFRkOEzCz/Ea6kSM1bAY5ys=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-3.0.1.tgz", + "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", + "requires": { + "readable-stream": "2 || 3" + } + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" + }, + "topo": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/topo/-/topo-3.0.3.tgz", + "integrity": "sha1-1aZ/suaTB+vusIQC7Coqb1962Vw=", + "requires": { + "hoek": "6.x.x" + }, + "dependencies": { + "hoek": { + "version": "6.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha1-c7fTOVLgH+J6OLBFcpS3ndjaJCw=" + } + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "untildify": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha1-HntCsUC8/ZIrIucMoSZb/jY0x8k=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha1-2FsH2pbkWNJbL/4Z/s6fLKoT7YY=", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-file": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl-file/-/vinyl-file-2.0.0.tgz", + "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w=", + "requires": { + "string-width": "^2.1.1" + } + }, + "with-open-file": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/with-open-file/-/with-open-file-0.1.6.tgz", + "integrity": "sha1-C8F47Kt19rqsiuEcheB0RdaQ6lA=", + "requires": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + } + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yeoman-environment": { + "version": "2.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.3.4.tgz", + "integrity": "sha1-rhVhR6G4Xek5Nm5UOLAMs+tUw+k=", + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.5.0", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^0.3.3", + "inquirer": "^6.0.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.2.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=" + }, + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "external-editor": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha1-WGbbKal4Jtvkvzr9JAcOrZ6kOic=", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "inquirer": { + "version": "6.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-6.3.1.tgz", + "integrity": "sha1-ekE7XnlQgRATo9tJHGHR87d26Oc=", + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "yeoman-generator": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-generator/-/yeoman-generator-3.2.0.tgz", + "integrity": "sha1-Agd9LX/yj+3B7X2tf5ln/Xw2BMw=", + "requires": { + "async": "^2.6.0", + "chalk": "^2.3.0", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^6.0.0", + "dateformat": "^3.0.3", + "debug": "^4.1.0", + "detect-conflict": "^1.0.0", + "error": "^7.0.2", + "find-up": "^3.0.0", + "github-username": "^4.0.0", + "istextorbinary": "^2.2.1", + "lodash": "^4.17.10", + "make-dir": "^1.1.0", + "mem-fs-editor": "^5.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^5.1.0", + "read-chunk": "^3.0.0", + "read-pkg-up": "^4.0.0", + "rimraf": "^2.6.2", + "run-async": "^2.0.0", + "shelljs": "^0.8.0", + "text-table": "^0.2.0", + "through2": "^3.0.0", + "yeoman-environment": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + } + } +} diff --git a/package.json b/package.json index e284b4c3..cc0ff9df 100644 --- a/package.json +++ b/package.json @@ -27,33 +27,33 @@ "dependencies": { "@c12e/generator-cortex": "0.3.19", "boxen": "1.3.0", - "chalk": "2.3.0", + "chalk": "2.4.2", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "2.16.0", - "debug": "3.1.0", + "commander": "2.20.0", + "debug": "4.1.1", "event-stream": "3.3.4", - "find-package-json": "1.1.0", + "find-package-json": "1.2.0", "glob": "^7.1.3", "is-installed-globally": "0.1.0", "jmespath": "0.15.0", "joi": "13.1.0", - "js-yaml": "3.10.0", - "jsonwebtoken": "8.3.0", + "js-yaml": "3.13.1", + "jsonwebtoken": "8.5.1", "lodash": "4.17.11", - "npm-registry-fetch": "3.2.0", - "progress": "2.0.0", + "npm-registry-fetch": "3.9.0", + "progress": "2.0.3", "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", "superagent-proxy": "^2.0.0", "url": "0.11.0", - "uuid": "3.2.1", - "yeoman-environment": "2.0.5" + "uuid": "3.3.2", + "yeoman-environment": "2.3.4" }, "devDependencies": { - "chai": "4.1.2", + "chai": "4.2.0", "chai-as-promised": "7.1.1", "mocha": "5.2.0", "rewire": "4.0.1", From 509cc4e212fd7c08c117a8af287eaf982ba22c0b Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 10 May 2019 13:35:58 -0500 Subject: [PATCH 093/864] Tweaks to error handling (#183) --- src/client/content.js | 4 ++++ src/commands/content.js | 2 +- src/commands/utils.js | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/client/content.js b/src/client/content.js index 69e89677..b96e6908 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -107,6 +107,10 @@ module.exports = class Content { 'Content-Type': contentType, } }, function(err, res, body) { + if (err) { + resolve({success: false, message: err.message}); + return; + } if (res.statusCode === 200) { resolve({success: true, message: body}); return; diff --git a/src/commands/content.js b/src/commands/content.js index 96f45792..edf0c9f9 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -80,7 +80,7 @@ module.exports.UploadContent = class UploadContent { const upload = _.partial(UploadContent.upload, contentClient, profile, options); if (options.recursive) { - getSourceFiles(filePath, (filesDict, err) => { + getSourceFiles(filePath, (err, filesDict) => { if (err) { debug(err); printError(`Failed to upload content: ${err.status} ${err.message}`, options); diff --git a/src/commands/utils.js b/src/commands/utils.js index e68a65ea..21128583 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -152,7 +152,7 @@ module.exports.getSourceFiles = function(source, cb) { glob(normalizedPath, options, function (err, files) { // files is an array of filenames. if (err) { - cb(err); + cb(err, null); } else { const results = files.filter(path => fs.lstatSync(path).isFile()).map((path) => { return { @@ -161,7 +161,7 @@ module.exports.getSourceFiles = function(source, cb) { size: fs.lstatSync(path).size, }; }); - cb(results); + cb(null, results); } }); }; From bc03bc722f9c831fe392bf151d35f4281c529e09 Mon Sep 17 00:00:00 2001 From: cmanzi-cs <49076753+cmanzi-cs@users.noreply.github.com> Date: Mon, 20 May 2019 10:24:06 -0500 Subject: [PATCH 094/864] Added npm publish to build.sh. (#190) --- build.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 3ffc0770..02831fed 100755 --- a/build.sh +++ b/build.sh @@ -26,6 +26,7 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ + npm -v npm config set loglevel warn npm cache clear --force npm install -dd --verbose @@ -35,9 +36,10 @@ function docker_build(){ if [[ ${BRANCH} = "master" ]]; then rm -rf node_modules npm install --silent --only=production -# npm publish -# elif [[ ${BRANCH} = "develop" ]]; then -# npm publish --tag develop + npm publish --registry=https://registry.npmjs.com/ + elif [[ ${BRANCH} = "develop" ]]; then + npm config set always-auth true + npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-local/ fi } From a877775ff6f4e0859efdb530abeade1c7345929b Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 22 May 2019 14:11:15 -0500 Subject: [PATCH 095/864] Ccf 11021 validate configure (#189) * Add validations for url, accounts, user, password * Fix messages * Add support for CORTEX_URI * Fixed per review comments, support - in URL, remove dead redundant code --- src/commands/configure.js | 54 ++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/src/commands/configure.js b/src/commands/configure.js index dba510a7..99329880 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -24,17 +24,32 @@ const { readConfig, defaultConfig } = require('../config'); const { printSuccess, printError } = require('./utils'); const DEFAULT_CORTEX_URL = 'https://api.cortex.insights.ai'; +const URL_REGEX=/^(https?):\/\/(-\.)?([^\s/?\.#]+\.?)+(\/[^\s]*)?$/; +/** + * Validate 's'' is not empty, return 's' or throw error + * @param s + * @param msg + * @param regex + * @returns {*} + * @private + */ +function _validate(s, msg, regex=undefined) { + if (_.isEmpty(s) || (regex && !regex.test(s))) { + console.error(chalk.red(msg)); + process.exit(1); + } + return s; +} module.exports.ConfigureCommand = class { constructor(program) { this.program = program; } - execute(options) { const config = readConfig(); const profileName = options.profile || _.get(config,'currentProfile','default'); - const profileUrl = this.program.url || _.get(config,'url'); + const profileUrl = (this.program.url || process.env.CORTEX_URI) || _.get(config,'url'); const profileAccount = this.program.account || _.get(config ,'account'); const profileUsername = this.program.username || _.get(config,'username'); const profilePassword = this.program.password || undefined; @@ -47,42 +62,23 @@ module.exports.ConfigureCommand = class { co(function*(){ const defaultCortexUrl = profile.url || DEFAULT_CORTEX_URL; const defaultAccount = profile.account || ''; - const defaultUsername = profile.username || ''; - + const defaultUsername = profile.username || '';`` console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); let cortexUrl = (profileUrl) ? profileUrl : yield prompt(`Cortex URL [${defaultCortexUrl}]: `); + const URL_VALIDATION_MSG=`A valid URL (http[s]://) is required. "${cortexUrl}"`; + cortexUrl = _validate(cortexUrl || defaultCortexUrl, URL_VALIDATION_MSG ,URL_REGEX); + cortexUrl =cortexUrl.replace(/\/$/, ''); // strip any trailing / let account = (profileAccount) ? profileAccount : yield prompt(`Account [${defaultAccount}]: `); + account = _validate(account || defaultAccount, 'An account name is required.'); let username = (profileUsername) ? profileUsername : yield prompt(`Username [${defaultUsername}]: `); - const password = (profilePassword) ? profilePassword : yield prompt.password('Password: '); - - cortexUrl = cortexUrl || defaultCortexUrl; - cortexUrl = cortexUrl.replace(/\/$/, ''); // strip any trailing / - account = account || defaultAccount; - username = username || defaultUsername; + username = _validate(username || defaultUsername, 'A user name is required.'); + const password = _validate((profilePassword) ? profilePassword : yield prompt.password('Password: '), + 'A password is required.'); debug('cortexUrl: %s', cortexUrl); debug('account: %s', account); debug('username: %s', username); - if (!cortexUrl.match(/^[a-zA-Z]+:\/\//)) { - cortexUrl = 'http://' + cortexUrl; - } - - if (!cortexUrl) { - console.error(chalk.red('Cortex URL must be provided')); - return; - } - - if (!account) { - console.error(chalk.red('Cortex account name must be provided')); - return; - } - - if (!username) { - console.error(chalk.red('Cortex username must be provided')); - return; - } - const auth = new Auth(cortexUrl); try { const authResp = yield auth.login(account, username, password); From cf349b7cb65b8420fb04f5c99196c0f9407dfe81 Mon Sep 17 00:00:00 2001 From: Matt Sanchez Date: Wed, 22 May 2019 16:38:19 -0500 Subject: [PATCH 096/864] Adds support for Graph, Profiles, and Experiments APIs (#180) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bug fixes when attempting to craft manual test cases for the cli. * Reved package-log * Bumped version of cli and add proxying support --- README.md | 21 +- bin/cortex-experiments.js | 162 +++++++ bin/cortex-graph.js | 101 +++++ bin/cortex-profiles.js | 184 ++++++++ bin/cortex.js | 5 +- package-lock.json | 839 +++++++++++++++++++++++++----------- package.json | 5 +- src/client/catalog.js | 92 +++- src/client/experiments.js | 190 ++++++++ src/client/graph.js | 280 ++++++++++++ src/commands/experiments.js | 256 +++++++++++ src/commands/graph.js | 243 +++++++++++ src/commands/profiles.js | 283 ++++++++++++ 13 files changed, 2401 insertions(+), 260 deletions(-) create mode 100644 bin/cortex-experiments.js create mode 100755 bin/cortex-graph.js create mode 100755 bin/cortex-profiles.js create mode 100644 src/client/experiments.js create mode 100644 src/client/graph.js create mode 100644 src/commands/experiments.js create mode 100644 src/commands/graph.js create mode 100644 src/commands/profiles.js diff --git a/README.md b/README.md index e15fa464..214faf84 100644 --- a/README.md +++ b/README.md @@ -182,4 +182,23 @@ cortex agents list --query "[].{name: name, title: title}" - [ ] list - [ ] save [registryName] - [ ] delete [registryName] - +- [x] profiles + - [x] save-schema + - [x] list-schemas + - [x] describe-schema + - [x] delete-schema + - [x] list + - [x] describe + - [x] delete + - [x] rebuild +- [x] graph + - [x] find-events + - [x] publish +- [x] experiments + - [x] list + - [x] describe + - [x] delete + - [x] list-runs + - [x] describe-runs + - [x] delete-run + - [x] download-artifact diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js new file mode 100644 index 00000000..1c8c9168 --- /dev/null +++ b/bin/cortex-experiments.js @@ -0,0 +1,162 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListExperiments, + DescribeExperimentCommand, + ListRuns, + DescribeRunCommand, + DeleteRunCommand, + DownloadArtifactCommand, +} = require('../src/commands/experiments'); + +program.description('Work with Cortex Experiments'); + +// List Experiments +program + .command('list') + .description('Find experiments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--limit [limit]', 'Limit the number of experiments returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((options) => { + try { + new ListExperiments(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Experiment +program + .command('describe ') + .description('Describe experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((experimentName, options) => { + try { + new DescribeExperimentCommand(program).execute(experimentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Experiment +program + .command('delete ') + .description('Delete an experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DeleteExperimentCommand(program).execute(experimentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Runs +program + .command('list-runs ') + .description('Find runs within an experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--limit [limit]', 'Limit the number of experiments returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((experimentName, options) => { + try { + new ListRuns(program).execute(experimentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Run +program + .command('describe-run ') + .description('Describe run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DescribeRunCommand(program).execute(experimentName, runId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Run +program + .command('delete-run ') + .description('Delete run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DeleteRunCommand(program).execute(experimentName, runId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Download Artifact +program + .command('download-artifact ') + .description('Download artifact from run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { + try { + new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +program.parse(process.argv); diff --git a/bin/cortex-graph.js b/bin/cortex-graph.js new file mode 100755 index 00000000..8d978d21 --- /dev/null +++ b/bin/cortex-graph.js @@ -0,0 +1,101 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + FindEventsCommand, + PublishEventsCommand, + GetEntityCommand, + QueryGraphCommand, +} = require('../src/commands/graph'); + +program.description('Work with the Cortex Graph'); + +// Find Entity Events +program + .command('find-events') + .description('Find entity events in the event store') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use as the event query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') + .option('--limit [limit]', 'Limit the number of events returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((options) => { + try { + new FindEventsCommand(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Publish Events +program + .command('publish [file]') + .description('Publish events to the event store') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--tracking', 'Enable tracking event mode.') + .action(withCompatibilityCheck(async (file, options) => { + await new PublishEventsCommand(program).execute(file, options) + .catch(err => console.error(chalk.red(err.message))); + })); + +// Describe Entity +program + .command('get-entity ') + .description('Get an entity in the graph by ID') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck(async (entityId, options) => { + try { + new GetEntityCommand(program).execute(entityId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Query the graph +program + .command('query ') + .description('Query the graph using the OpenCypher query language') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck(async (query, options) => { + try { + new QueryGraphCommand(program).execute(query, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js new file mode 100755 index 00000000..0f8fb419 --- /dev/null +++ b/bin/cortex-profiles.js @@ -0,0 +1,184 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + SaveProfileSchemaCommand, + ListProfileSchemasCommand, + DescribeProfileSchemaCommand, + DeleteProfileSchemaCommand, + ListProfilesCommand, + DescribeProfileCommand, + DeleteProfileCommand, + RebuildProfilesCommand, +} = require('../src/commands/profiles'); + +program.description('Work with Cortex Profiles'); + +// Save Profile Schema +program + .command('save-schema ') + .description('Save a profile schema') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The configuration profile to use') + .option('-y, --yaml', 'Use YAML for profile schema format') + .action(withCompatibilityCheck((profileSchema, options) => { + try { + new SaveProfileSchemaCommand(program).execute(profileSchema, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Profile Schemas +program + .command('list-schemas') + .description('List profile schemas') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use as the event query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') + .option('--limit [limit]', 'Limit the number of events returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((options) => { + try { + new ListProfileSchemasCommand(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Profile Schema +program + .command('describe-schema ') + .description('Describe Profile Schema') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((schemaName, options) => { + try { + new DescribeProfileSchemaCommand(program).execute(schemaName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Profile Schema +program + .command('delete-schema ') + .description('Delete a Profile Schema') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((schemaName, options) => { + try { + new DeleteProfileSchemaCommand(program).execute(schemaName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Profiles +program + .command('list') + .description('List profiles') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use as the event query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') + .option('--limit [limit]', 'Limit the number of events returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((options) => { + try { + new ListProfilesCommand(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Profile +program + .command('describe [schemaName]') + .description('Describe Profile Schema') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((profileId, schemaName, options) => { + try { + new DescribeProfileCommand(program).execute(profileId, schemaName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Profile +program + .command('delete [schemaName]') + .description('Delete a Profile') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((profileId, schemaName, options) => { + try { + new DeleteProfileCommand(program).execute(profileId, schemaName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Rebuild Profile +program + .command('rebuild [profileId]') + .description('Rebuild a Profile') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--filter [filter]', 'A Mongo style filter to use as the event query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') + .option('--limit [limit]', 'Limit the number of events returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((schemaName, profileId, options) => { + try { + new RebuildProfilesCommand(program).execute(schemaName, profileId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 2c0ee512..f27ca511 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -40,7 +40,10 @@ program .command('skills [cmd]', 'Work with Cortex Skills') .command('tasks [cmd]', 'Work with Cortex v2 Tasks') .command('types [cmd]', 'Work with Cortex Types') - .command('variables [cmd]', 'Work with Cortex Secure Variables'); + .command('variables [cmd]', 'Work with Cortex Secure Variables') + .command('experiments [cmd]', 'Work with Cortex Experiments') + .command('profiles [cmd]', 'Work with Cortex Profiles') + .command('graph [cmd]', 'Work with the Cortex Graph'); program.parse(process.argv, { noActionHandler: function() { diff --git a/package-lock.json b/package-lock.json index b0d3aa02..b2c670aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -126,7 +126,7 @@ }, "ansi-align": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "requires": { "string-width": "^2.0.0" @@ -139,7 +139,7 @@ }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { @@ -165,7 +165,7 @@ }, "arr-diff": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { @@ -175,17 +175,17 @@ }, "arr-union": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-differ": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-differ/-/array-differ-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" }, "array-union": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { "array-uniq": "^1.0.1" @@ -193,17 +193,17 @@ }, "array-uniq": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-uniq/-/array-uniq-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arrify": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asn1": { @@ -216,7 +216,7 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assert-plus/-/assert-plus-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assertion-error": { @@ -227,7 +227,7 @@ }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "ast-types": { @@ -245,7 +245,7 @@ }, "asynckit": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { @@ -255,7 +255,7 @@ }, "aws-sign2": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws-sign2/-/aws-sign2-0.7.0.tgz", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { @@ -318,7 +318,7 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { @@ -337,7 +337,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -373,7 +373,7 @@ }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { "tweetnacl": "^0.14.3" @@ -431,7 +431,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -439,6 +439,14 @@ } } }, + "breakword": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.3.tgz", + "integrity": "sha1-ceCRu7eLtO8APPPtKy4GLGkn990=", + "requires": { + "wcwidth": "^1.0.1" + } + }, "browser-stdout": { "version": "1.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -461,12 +469,12 @@ }, "buffer-equal-constant-time": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, "buffer-fill": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-fill/-/buffer-fill-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "buffer-from": { @@ -476,7 +484,7 @@ }, "builtins": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "bytes": { @@ -538,7 +546,7 @@ }, "call-me-maybe": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, "caller-path": { @@ -558,12 +566,12 @@ }, "camelcase": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "caseless": { "version": "0.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caseless/-/caseless-0.12.0.tgz", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chai": { @@ -601,7 +609,7 @@ }, "chardet": { "version": "0.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.4.2.tgz", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", "dev": true }, @@ -635,7 +643,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -645,12 +653,12 @@ }, "cli-boxes": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" }, "cli-cursor": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { "restore-cursor": "^2.0.0" @@ -658,7 +666,7 @@ }, "cli-table": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table/-/cli-table-0.3.1.tgz", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", "requires": { "colors": "1.0.3" @@ -666,22 +674,32 @@ }, "cli-width": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, + "cliui": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, "clone": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "clone-buffer": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-buffer/-/clone-buffer-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, "clone-stats": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" }, "cloneable-readable": { @@ -696,20 +714,25 @@ }, "co": { "version": "4.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co/-/co-4.6.0.tgz", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "co-prompt": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co-prompt/-/co-prompt-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { "keypress": "~0.2.1" } }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, "collection-visit": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "^1.0.0", @@ -726,12 +749,12 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, "combined-stream": { @@ -749,7 +772,7 @@ }, "commondir": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { @@ -759,7 +782,7 @@ }, "concat-map": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { @@ -793,12 +816,12 @@ }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-util-is": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cross-spawn": { @@ -813,9 +836,38 @@ "which": "^1.2.9" } }, + "csv": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-4.0.0.tgz", + "integrity": "sha1-x95EuaD9R/ehDbJAZFGfZCp86S0=", + "requires": { + "csv-generate": "^2.2.2", + "csv-parse": "^3.1.2", + "csv-stringify": "^4.3.1", + "stream-transform": "^1.0.7" + } + }, + "csv-generate": { + "version": "2.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-generate/-/csv-generate-2.2.2.tgz", + "integrity": "sha1-w3gIxfPq0t7slAeUBz3TLUkq39E=" + }, + "csv-parse": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-parse/-/csv-parse-3.2.0.tgz", + "integrity": "sha1-kEO1kh5+zV4xEJR98e8A0pDb7Kc=" + }, + "csv-stringify": { + "version": "4.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-stringify/-/csv-stringify-4.3.1.tgz", + "integrity": "sha1-e+4290bvVV3Ugac1qeKTiWX4R4s=", + "requires": { + "lodash.get": "~4.4.2" + } + }, "cyclist": { "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cyclist/-/cyclist-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" }, "dargs": { @@ -825,7 +877,7 @@ }, "dashdash": { "version": "1.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dashdash/-/dashdash-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "^1.0.0" @@ -859,14 +911,19 @@ } } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "requires": { "mimic-response": "^1.0.0" @@ -891,6 +948,21 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "defaults": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + } + } + }, "define-property": { "version": "2.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", @@ -947,7 +1019,7 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { @@ -957,7 +1029,7 @@ }, "detect-conflict": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-conflict/-/detect-conflict-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" }, "diff": { @@ -985,12 +1057,12 @@ }, "duplexer": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, "duplexer3": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { @@ -1006,7 +1078,7 @@ }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { "jsbn": "~0.1.0", @@ -1044,7 +1116,7 @@ }, "encoding": { "version": "0.1.12", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.12.tgz", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { "iconv-lite": "~0.4.13" @@ -1060,7 +1132,7 @@ }, "err-code": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" }, "errlop": { @@ -1073,7 +1145,7 @@ }, "error": { "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error/-/error-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", "requires": { "string-template": "~0.2.1", @@ -1095,7 +1167,7 @@ }, "es6-promisify": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promisify/-/es6-promisify-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "^4.0.3" @@ -1103,7 +1175,7 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { @@ -1290,7 +1362,7 @@ }, "event-stream": { "version": "3.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-3.3.4.tgz", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "requires": { "duplexer": "~0.1.1", @@ -1304,7 +1376,7 @@ }, "execa": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-0.7.0.tgz", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "^5.0.1", @@ -1318,7 +1390,7 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-5.1.0.tgz", + "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", @@ -1330,7 +1402,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "^2.3.3", @@ -1352,7 +1424,7 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -1360,7 +1432,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -1375,7 +1447,7 @@ }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "^1.0.0", @@ -1420,7 +1492,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -1428,7 +1500,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -1464,12 +1536,12 @@ }, "extsprintf": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extsprintf/-/extsprintf-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-glob": { @@ -1487,7 +1559,7 @@ }, "fast-json-stable-stringify": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { @@ -1502,7 +1574,7 @@ }, "figures": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { "escape-string-regexp": "^1.0.5" @@ -1525,7 +1597,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "^2.0.1", @@ -1536,7 +1608,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -1559,7 +1631,7 @@ }, "first-chunk-stream": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { "readable-stream": "^2.0.2" @@ -1588,12 +1660,12 @@ }, "for-in": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "forever-agent": { "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/forever-agent/-/forever-agent-0.6.1.tgz", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { @@ -1613,7 +1685,7 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "^0.2.2" @@ -1621,12 +1693,12 @@ }, "from": { "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" }, "from2": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from2/-/from2-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { "inherits": "^2.0.1", @@ -1635,7 +1707,7 @@ }, "fs-write-stream-atomic": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { "graceful-fs": "^4.1.2", @@ -1646,7 +1718,7 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "ftp": { @@ -1687,6 +1759,11 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=" + }, "get-func-name": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", @@ -1695,7 +1772,7 @@ }, "get-stream": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-uri": { @@ -1738,12 +1815,12 @@ }, "get-value": { "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "getpass": { "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/getpass/-/getpass-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "^1.0.0" @@ -1760,7 +1837,7 @@ }, "github-username": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-username/-/github-username-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", "requires": { "gh-got": "^6.0.0" @@ -1781,7 +1858,7 @@ }, "glob-parent": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { "is-glob": "^3.1.0", @@ -1790,7 +1867,7 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { "is-extglob": "^2.1.0" @@ -1800,12 +1877,12 @@ }, "glob-to-regexp": { "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, "global-dirs": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "requires": { "ini": "^1.3.4" @@ -1859,7 +1936,7 @@ }, "grouped-queue": { "version": "0.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grouped-queue/-/grouped-queue-0.3.3.tgz", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", "requires": { "lodash": "^4.17.2" @@ -1873,7 +1950,7 @@ }, "har-schema": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-schema/-/har-schema-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { @@ -1922,7 +1999,7 @@ }, "has-value": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "^2.0.6", @@ -1932,7 +2009,7 @@ }, "has-values": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "^3.0.0", @@ -1941,7 +2018,7 @@ "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "^1.1.5" @@ -2003,7 +2080,7 @@ }, "http-signature": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-signature/-/http-signature-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "^1.0.0", @@ -2037,7 +2114,7 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "^2.0.0" @@ -2053,7 +2130,7 @@ }, "iferr": { "version": "0.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iferr/-/iferr-0.1.5.tgz", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "ignore": { @@ -2063,12 +2140,12 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -2077,7 +2154,7 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { @@ -2112,14 +2189,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.2.0.tgz", "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=" }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=" + }, "ip": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "^3.0.2" @@ -2127,7 +2209,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2137,7 +2219,7 @@ }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { @@ -2147,7 +2229,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "^3.0.2" @@ -2155,7 +2237,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2182,17 +2264,17 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { @@ -2205,7 +2287,7 @@ }, "is-installed-globally": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "requires": { "global-dirs": "^0.1.0", @@ -2214,7 +2296,7 @@ }, "is-number": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" @@ -2222,7 +2304,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2232,12 +2314,12 @@ }, "is-object": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-object/-/is-object-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" }, "is-path-inside": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { "path-is-inside": "^1.0.1" @@ -2245,7 +2327,7 @@ }, "is-plain-obj": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, "is-plain-object": { @@ -2258,7 +2340,7 @@ }, "is-promise": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-promise/-/is-promise-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-resolvable": { @@ -2269,12 +2351,12 @@ }, "is-retry-allowed": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-scoped": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-scoped/-/is-scoped-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "requires": { "scoped-regex": "^1.0.0" @@ -2282,17 +2364,17 @@ }, "is-stream": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-utf8/-/is-utf8-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { @@ -2302,7 +2384,7 @@ }, "isarray": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { @@ -2323,17 +2405,17 @@ }, "isexe": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isstream": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istextorbinary": { @@ -2357,7 +2439,7 @@ }, "jmespath": { "version": "0.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "joi": { @@ -2387,7 +2469,7 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsbn/-/jsbn-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-parse-better-errors": { @@ -2397,7 +2479,7 @@ }, "json-schema": { "version": "0.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema/-/json-schema-0.2.3.tgz", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { @@ -2413,7 +2495,7 @@ }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsonparse": { @@ -2452,7 +2534,7 @@ }, "jsprim": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsprim/-/jsprim-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", @@ -2482,7 +2564,7 @@ }, "keypress": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keypress/-/keypress-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" }, "kind-of": { @@ -2490,6 +2572,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" }, + "lcid": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "requires": { + "invert-kv": "^2.0.0" + } + }, "levn": { "version": "0.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", @@ -2501,7 +2591,7 @@ }, "load-json-file": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/load-json-file/-/load-json-file-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { "graceful-fs": "^4.1.2", @@ -2524,39 +2614,44 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.11.tgz", "integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40=" }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, "lodash.includes": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.includes/-/lodash.includes-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" }, "lodash.isboolean": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" }, "lodash.isinteger": { "version": "4.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" }, "lodash.isnumber": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" }, "lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, "lodash.isstring": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, "lodash.once": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.once/-/lodash.once-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, "log-symbols": { @@ -2607,27 +2702,52 @@ "ssri": "^6.0.0" } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-stream": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" }, "map-visit": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "^1.0.0" } }, + "mem": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem/-/mem-4.3.0.tgz", + "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" + } + } + }, "mem-fs": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs/-/mem-fs-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", "requires": { "through2": "^2.0.0", @@ -2637,17 +2757,17 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-stats": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "replace-ext": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "through2": { @@ -2661,7 +2781,7 @@ }, "vinyl": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { "clone": "^1.0.0", @@ -2707,7 +2827,7 @@ }, "methods": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/methods/-/methods-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { @@ -2768,7 +2888,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mississippi": { @@ -2820,7 +2940,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -2828,7 +2948,7 @@ "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } @@ -2898,9 +3018,14 @@ } } }, + "moment": { + "version": "2.24.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.24.0.tgz", + "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" + }, "move-concurrently": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/move-concurrently/-/move-concurrently-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { "aproba": "^1.1.1", @@ -2913,12 +3038,12 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multimatch": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/multimatch/-/multimatch-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "requires": { "array-differ": "^1.0.0", @@ -2929,7 +3054,7 @@ }, "mute-stream": { "version": "0.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.7.tgz", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nanomatch": { @@ -3013,12 +3138,17 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-run-path/-/npm-run-path-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "^2.0.0" } }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, "oauth-sign": { "version": "0.9.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -3026,13 +3156,13 @@ }, "object-assign": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "^0.1.0", @@ -3042,7 +3172,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -3050,7 +3180,7 @@ }, "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -3060,7 +3190,7 @@ }, "object-visit": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" @@ -3068,7 +3198,7 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" @@ -3076,7 +3206,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -3084,7 +3214,7 @@ }, "onetime": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { "mimic-fn": "^1.0.0" @@ -3105,12 +3235,46 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "requires": { + "pump": "^3.0.0" + } + } + } + }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { @@ -3127,11 +3291,21 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-0.3.0.tgz", "integrity": "sha1-ueEjgAvOu3rBOkeb4ZW1B7mNMPo=" }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, "p-finally": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=" + }, "p-limit": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", @@ -3150,7 +3324,7 @@ }, "p-timeout": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", "requires": { "p-finally": "^1.0.0" @@ -3205,7 +3379,7 @@ }, "parallel-transform": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parallel-transform/-/parallel-transform-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { "cyclist": "~0.2.2", @@ -3215,7 +3389,7 @@ }, "parse-json": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { "error-ex": "^1.3.1", @@ -3224,32 +3398,32 @@ }, "pascalcase": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-dirname": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-dirname/-/path-dirname-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "path-exists": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-inside/-/path-is-inside-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "path-key": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { @@ -3290,7 +3464,7 @@ }, "pause-stream": { "version": "0.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { "through": "~2.3" @@ -3298,22 +3472,22 @@ }, "performance-now": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/performance-now/-/performance-now-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie/-/pinkie-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { "pinkie": "^2.0.0" @@ -3327,7 +3501,7 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { @@ -3337,7 +3511,7 @@ }, "prepend-http": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prepend-http/-/prepend-http-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "pretty-bytes": { @@ -3357,12 +3531,12 @@ }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { "err-code": "^1.0.0", @@ -3406,7 +3580,7 @@ }, "pseudomap": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pseudomap/-/pseudomap-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { @@ -3456,7 +3630,7 @@ }, "querystring": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystring/-/querystring-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "raw-body": { @@ -3488,7 +3662,7 @@ }, "read-pkg": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "requires": { "load-json-file": "^4.0.0", @@ -3521,7 +3695,7 @@ }, "rechoir": { "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { "resolve": "^1.1.6" @@ -3544,7 +3718,7 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { @@ -3554,12 +3728,12 @@ }, "repeat-string": { "version": "1.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "replace-ext": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, "request": { @@ -3601,6 +3775,16 @@ } } }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, "require-uncached": { "version": "1.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-uncached/-/require-uncached-1.0.3.tgz", @@ -3627,12 +3811,12 @@ }, "resolve-url": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "restore-cursor": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { "onetime": "^2.0.0", @@ -3646,7 +3830,7 @@ }, "retry": { "version": "0.10.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.10.1.tgz", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "rewire": { @@ -3668,7 +3852,7 @@ }, "run-async": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { "is-promise": "^2.1.0" @@ -3676,7 +3860,7 @@ }, "run-queue": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-queue/-/run-queue-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { "aproba": "^1.1.1" @@ -3684,13 +3868,13 @@ }, "rx-lite": { "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rx-lite/-/rx-lite-4.0.8.tgz", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", "dev": true }, "rx-lite-aggregates": { "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { @@ -3712,7 +3896,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "~0.1.10" @@ -3725,7 +3909,7 @@ }, "scoped-regex": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/scoped-regex/-/scoped-regex-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" }, "semver": { @@ -3733,6 +3917,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.5.0.tgz", "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=" }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, "set-value": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.0.tgz", @@ -3746,7 +3935,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -3761,7 +3950,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "^1.0.0" @@ -3769,7 +3958,7 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shelljs": { @@ -3784,12 +3973,12 @@ }, "signal-exit": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slash": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "slice-ansi": { @@ -3806,6 +3995,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.0.2.tgz", "integrity": "sha1-UgeFjDgVzGkRBwPGuU5GwVY0OV0=" }, + "smartwrap": { + "version": "1.0.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smartwrap/-/smartwrap-1.0.11.tgz", + "integrity": "sha1-7o+Fh4v6yJwfpNoz4Id/cpqOKnQ=", + "requires": { + "breakword": "^1.0.3", + "wcwidth": "^1.0.1", + "yargs": "^12.0.5" + } + }, "snapdragon": { "version": "0.8.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", @@ -3831,7 +4030,7 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -3839,7 +4038,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -3859,7 +4058,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -3903,7 +4102,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -3931,7 +4130,7 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { @@ -3948,7 +4147,7 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { @@ -3981,7 +4180,7 @@ }, "split": { "version": "0.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-0.3.3.tgz", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "requires": { "through": "2" @@ -3997,7 +4196,7 @@ }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { @@ -4026,7 +4225,7 @@ }, "static-extend": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "^0.2.5", @@ -4035,7 +4234,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -4050,7 +4249,7 @@ }, "stream-combiner": { "version": "0.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.0.4.tgz", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "requires": { "duplexer": "~0.1.1" @@ -4067,12 +4266,17 @@ }, "stream-shift": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-shift/-/stream-shift-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, + "stream-transform": { + "version": "1.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-transform/-/stream-transform-1.0.8.tgz", + "integrity": "sha1-VPchEi0xDsqFWhbJeTmIGrW7t2w=" + }, "string-template": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-template/-/string-template-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" }, "string-width": { @@ -4094,7 +4298,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" @@ -4102,12 +4306,12 @@ }, "strip-bom": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "strip-bom-stream": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { "first-chunk-stream": "^2.0.0", @@ -4116,7 +4320,7 @@ "dependencies": { "strip-bom": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { "is-utf8": "^0.2.0" @@ -4126,7 +4330,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { @@ -4200,6 +4404,11 @@ } } }, + "superagent-throttle": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-throttle/-/superagent-throttle-1.0.1.tgz", + "integrity": "sha1-XrOp0BNwssMgbXqQ6o8ESDaUA9M=" + }, "supports-color": { "version": "5.5.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", @@ -4250,7 +4459,7 @@ }, "term-size": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/term-size/-/term-size-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "requires": { "execa": "^0.7.0" @@ -4258,7 +4467,7 @@ }, "text-table": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "textextensions": { @@ -4268,7 +4477,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { @@ -4286,7 +4495,7 @@ }, "timed-out": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/timed-out/-/timed-out-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "tmp": { @@ -4299,7 +4508,7 @@ }, "to-object-path": { "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "^3.0.2" @@ -4307,7 +4516,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -4328,7 +4537,7 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "^3.0.0", @@ -4376,9 +4585,37 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.9.3.tgz", "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=" }, + "tty-table": { + "version": "2.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tty-table/-/tty-table-2.7.0.tgz", + "integrity": "sha1-DgOzdDWgQKntj3g6m7yalmCSHp8=", + "requires": { + "chalk": "^2.4.2", + "csv": "^4.0.0", + "smartwrap": "^1.0.11", + "strip-ansi": "^5.0.0", + "wcwidth": "^1.0.1", + "yargs": "^12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "^5.0.1" @@ -4386,7 +4623,7 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { @@ -4405,12 +4642,12 @@ }, "typedarray": { "version": "0.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray/-/typedarray-0.0.6.tgz", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "union-value": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "requires": { "arr-union": "^3.1.0", @@ -4421,7 +4658,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -4429,7 +4666,7 @@ }, "set-value": { "version": "0.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-0.4.3.tgz", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { "extend-shallow": "^2.0.1", @@ -4463,7 +4700,7 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "^0.3.1", @@ -4472,7 +4709,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "^2.0.3", @@ -4482,7 +4719,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" @@ -4492,7 +4729,7 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" } } @@ -4512,12 +4749,12 @@ }, "urix": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "url": { "version": "0.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url/-/url-0.11.0.tgz", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "requires": { "punycode": "1.3.2", @@ -4526,14 +4763,14 @@ "dependencies": { "punycode": { "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-1.3.2.tgz", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } }, "url-parse-lax": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { "prepend-http": "^1.0.1" @@ -4541,7 +4778,7 @@ }, "url-to-options": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-to-options/-/url-to-options-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, "use": { @@ -4551,7 +4788,7 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { @@ -4570,7 +4807,7 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "^1.0.3" @@ -4578,7 +4815,7 @@ }, "verror": { "version": "1.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/verror/-/verror-1.10.0.tgz", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", @@ -4601,7 +4838,7 @@ }, "vinyl-file": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl-file/-/vinyl-file-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", "requires": { "graceful-fs": "^4.1.2", @@ -4614,27 +4851,27 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-stats": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "pify": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "replace-ext": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "strip-bom": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { "is-utf8": "^0.2.0" @@ -4642,7 +4879,7 @@ }, "vinyl": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { "clone": "^1.0.0", @@ -4652,6 +4889,14 @@ } } }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, "which": { "version": "1.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", @@ -4660,6 +4905,11 @@ "isexe": "^2.0.0" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, "widest-line": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-2.0.1.tgz", @@ -4690,9 +4940,51 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, "wrappy": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { @@ -4711,7 +5003,7 @@ }, "xtend": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xtend/-/xtend-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { @@ -4721,9 +5013,44 @@ }, "yallist": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, + "yargs": { + "version": "12.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + } + } + }, "yeoman-environment": { "version": "2.3.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.3.4.tgz", diff --git a/package.json b/package.json index cc0ff9df..21d3aea9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.15", + "version": "0.12.16", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -42,11 +42,14 @@ "js-yaml": "3.13.1", "jsonwebtoken": "8.5.1", "lodash": "4.17.11", + "moment": "^2.24.0", "npm-registry-fetch": "3.9.0", "progress": "2.0.3", "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", + "superagent-throttle": "^1.0.1", + "tty-table": "^2.7.0", "superagent-proxy": "^2.0.0", "url": "0.11.0", "uuid": "3.3.2", diff --git a/src/client/catalog.js b/src/client/catalog.js index f6338ed6..476b2618 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -27,7 +27,8 @@ const createEndpoints = (baseUri) => { skills: `${baseUri}/v3/catalog/skills`, agents: `${baseUri}/v3/catalog/agents`, types: `${baseUri}/v3/catalog/types`, - agentVersions: `${baseUri}/v3/agents/versions` + agentVersions: `${baseUri}/v3/agents/versions`, + profileSchemas: `${baseUri}/v3/graph/profiles/schemas`, } }; @@ -261,4 +262,93 @@ module.exports = class Catalog { return constructError(err); }); } + + saveProfileSchema(token, schemaObj) { + debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); + return request + .post(this.endpoints.profileSchemas) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .send(schemaObj) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, message: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + listProfileSchemas(token, filter, sort, limit, skip) { + debug('listProfileSchemas() => %s', this.endpoints.profileSchemas); + const req = request + .get(this.endpoints.profileSchemas) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (filter) req.query({ filter }); + if (sort) req.query({ sort }); + if (limit) req.query({ limit }); + if (skip) req.query({ skip }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, schemas: res.body.schemas}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeProfileSchema(token, schemaName) { + const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; + debug('describeProfileSchema(%s) => %s', schemaName, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, schema: res.body}; + } + else { + return {success: false, message: res.body, status: res.status}; + } + }) + .catch((err) => { + return constructError(err); + }); + } + + deleteProfileSchema(token, schemaName) { + const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; + debug('deleteProfileSchema(%s) => %s', schemaName, endpoint); + return request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true}; + } + else { + return {success: false, message: res.body, status: res.status}; + } + }) + .catch((err) => { + return constructError(err); + }); + } }; diff --git a/src/client/experiments.js b/src/client/experiments.js new file mode 100644 index 00000000..4f814238 --- /dev/null +++ b/src/client/experiments.js @@ -0,0 +1,190 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { request } = require('../commands/apiutils'); +const debug = require('debug')('cortex:cli'); +const ProgressBar = require('progress'); +const { constructError } = require('../commands/utils'); + +module.exports = class Experiments { + + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/v2/experiments`; + } + + listExperiments(token) { + const endpoint = `${this.endpoint}`; + debug('listExperiments() => %s', endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeExperiment(token, name) { + const endpoint = `${this.endpoint}/${name}`; + debug('describeExperiment(%s) => %s', name, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + deleteExperiment(token, name) { + const endpoint = `${this.endpoint}/${name}`; + debug('deleteExperiment(%s) => %s', name, endpoint); + return request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + listRuns(token, experimentName, filter, limit, sort) { + const endpoint = `${this.endpoint}/${experimentName}/runs`; + debug('listRuns(%s) => %s', experimentName, endpoint); + const req = request + .get(endpoint) + .set('Authorization', `Bearer ${token}`); + + if (filter) req.query({filter}); + if (limit) req.query({limit}); + if (sort) req.query({sort}); + + return req.then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeRun(token, experimentName, runId) { + const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}`; + debug('describeRun(%s) => %s', runId, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + deleteRun(token, experimentName, runId) { + const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}`; + debug('deleteRun(%s) => %s', runId, endpoint); + return request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + downloadArtifact(token, experimentName, runId, artifactName, showProgress = false) { + const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}/artifacts/${artifactName}`; + debug('downloadArtifact(%s) => %s', artifactName, endpoint); + + const stream = request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .use((req) => { + if (showProgress) { + req.on('request', (clientReq) => { + clientReq.on('response', function(res) { + const total = +(res.headers['content-length'] || res.headers['Content-Length']); + const progressBar = new ProgressBar( + ' downloading [:bar] :percent :etas', + { + current: 0, + renderThrottle: 500, + total: total, + } + ); + + res.on('data', (chunk) => progressBar.tick(chunk.length)); + }); + }); + } + }); + + return new Promise((resolve, reject) => { + stream.on('response', function(response) { + if (response.status !== 200) { + stream.abort(); + return resolve({ + success: false, + status: stream.response.status, + message: stream.response.error + }); + } + }); + + stream.on('end', () => { + return resolve({ + success: true, + message: `\nDownloaded ${artifactName}`, + status: stream.response.status + }); + }); + + stream.on('error', (err) => { + return resolve(constructError(err)); + }); + + stream.pipe(process.stdout); + }); + } +}; diff --git a/src/client/graph.js b/src/client/graph.js new file mode 100644 index 00000000..3d3a59ac --- /dev/null +++ b/src/client/graph.js @@ -0,0 +1,280 @@ +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { request } = require('../commands/apiutils'); +const Throttle = require('superagent-throttle'); +const debug = require('debug')('cortex:cli'); +const _ = require('lodash'); +const chalk = require('chalk'); +const { constructError } = require('../commands/utils'); + +const createEndpoints = (baseUri) => { + return { + profiles: `${baseUri}/v3/graph/profiles`, + schemas: `${baseUri}/v3/graph/profiles/schemas`, + events: `${baseUri}/v3/graph/events`, + entities: `${baseUri}/v3/graph/entities`, + track: `${baseUri}/v3/graph/events/track`, + query: `${baseUri}/v3/graph/query`, + } +}; + +const throttle = new Throttle({ + active: true, + concurrent: 20, + rate: 500, + ratePer: 1000, +}); + +class Graph { + + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpoints = createEndpoints(cortexUrl); + } + + listProfiles(token, filter, sort, limit, skip) { + debug('listProfiles() => GET %s', this.endpoints.profiles); + const req = request + .get(this.endpoints.profiles) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (filter) req.query({ filter }); + if (sort) req.query({ sort }); + if (limit) req.query({ limit }); + if (skip) req.query({ skip }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, profiles: res.body.profiles}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeProfile(token, profileId, schemaName) { + const endpoint = `${this.endpoints.profiles}/${profileId}`; + debug('describeProfile(%s) => GET %s', profileId, endpoint); + + const req = request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (schemaName) req.query({ schema: schemaName }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, profile: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + deleteProfile(token, profileId, schemaName) { + const endpoint = `${this.endpoints.profiles}/${profileId}`; + debug('deleteProfile(%s) => DELETE %s', profileId, endpoint); + + const req = request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (schemaName) req.query({ schema: schemaName }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true,}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + findEvents(token, filter, sort, limit, skip) { + debug('findEvents() => GET %s', this.endpoints.events); + + const req = request + .get(this.endpoints.events) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (filter) req.query({ filter }); + if (sort) req.query({ sort }); + + if (limit) { + req.query({ limit }); + } + else { + req.query({ limit: 50 }); + } + + if (skip) req.query({ skip }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, events: res.body.events}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + publishEntities(token, entityEvents) { + debug('publishEntities() => POST %s', this.endpoints.events); + + return request + .post(this.endpoints.events) + .use(throttle.plugin()) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .type('json') + .send(entityEvents) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, message: res.body.message || res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + track(token, event) { + debug('track() => POST %s', this.endpoints.track); + + return request + .post(this.endpoints.track) + .use(throttle.plugin()) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .type('json') + .send(event) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + + if (res.ok) { + return {success: true, message: res.body.message || res.body}; + } + + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + const e = constructError(err); + debug(e); + return e; + }); + } + + rebuildProfiles(token, schemaName, profileId, filter, sort, limit, skip) { + const endpoint = `${this.endpoints.schemas}/${schemaName}/rebuild`; + debug('rebuildProfiles() => PUT %s', endpoint); + + const req = request + .put(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + req.query({ filter: filter ? filter : {} }); + + if (profileId) req.query({ profileId }); + if (sort) req.query({ sort }); + if (limit) req.query({ limit }); + if (skip) req.query({ skip }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, message: res.body.message || res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + getEntity(token, entityId) { + const endpoint = `${this.endpoints.entities}/${entityId}`; + debug('getEntity(%s) => GET %s', entityId, endpoint); + + const req = request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, entity: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + query(token, query) { + const endpoint = this.endpoints.query; + debug('queryGraph(%s) => POST %s', query, endpoint); + + const req = request + .post(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .send({ query }) + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } +} + +module.exports = { Graph }; diff --git a/src/commands/experiments.js b/src/commands/experiments.js new file mode 100644 index 00000000..21f04d4f --- /dev/null +++ b/src/commands/experiments.js @@ -0,0 +1,256 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const fs = require('fs'); +const _ = require('lodash'); +const debug = require('debug')('cortex:cli'); +const moment = require('moment'); +const es = require('event-stream'); +const { loadProfile } = require('../config'); +const Experiments = require('../client/experiments'); +const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); + +class ListExperiments { + + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listExperiments()', profile.name); + + const exp = new Experiments(profile.url); + exp.listExperiments(profile.token).then((response) => { + if (response.success) { + let result = response.result; + if (options.query) { + result = filterObject(response.result, options); + } + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + let tableSpec = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Version', field: '_version', width: 25 }, + { column: 'Description', field: 'description', width: 50 }, + ]; + + printTable(tableSpec, result.experiments); + } + } + else { + printError(`Failed to list experiments: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to list experiments: ${err.status} - ${err.message}`, options); + }); + } +} + +class DescribeExperimentCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDescribeExperiment(%s)', profile.name, experimentName); + + const exp = new Experiments(profile.url); + exp.describeExperiment(profile.token, experimentName).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to describe experiment ${experimentName}: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe experiment ${experimentName}: ${err.status} - ${err.message}`, options); + }); + } +} + +class DeleteExperimentCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteExperiment(%s)', profile.name, experimentName); + + const exp = new Experiments(profile.url); + exp.deleteExperiment(profile.token, experimentName).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to delete experiment ${experimentName}: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete experiment ${experimentName}: ${err.status} - ${err.message}`, options); + }); + } +} + +class ListRuns { + + constructor(program) { + this.program = program; + } + + execute(experimentName, options) { + const profile = loadProfile(options.profile); + debug('%s.listRuns()', profile.name); + + const exp = new Experiments(profile.url); + const sort = options.sort || JSON.stringify({ startTime: -1 }); + + exp.listRuns(profile.token, experimentName, options.filter, options.limit, sort).then((response) => { + if (response.success) { + let result = response.result; + if (options.query) { + result = filterObject(response.result, options); + } + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + { alias: 'Run ID', value: 'runId', width: 25 }, + { alias: 'Start', value: 'startTime', width: 25, formatter: (val) => moment.unix(val).format('YYYY-MM-DD HH:mm a')}, + { alias: 'Took', value: 'took', width: 25, formatter: (val) => moment.duration(val, 'seconds').humanize()}, + { alias: 'Params', value: 'params', width: 45, formatter: (val) => _.map(val, (v, k) => `${k}: ${v}`).join('\n') }, + { alias: 'Metrics', value: 'metrics', width: 45, formatter: (val) => _.map(val, (v, k) => `${k}: ${v}`).join('\n') }, + { alias: 'Artifacts', value: 'artifacts', formatter: (val) => Object.keys(val).join(', ') }, + ]; + + const Table = require('tty-table'); + const t = new Table(tableSpec, result.runs); + console.log(t.render()); + } + } + else { + printError(`Failed to list runs: ${response.status} ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to list runs: ${err.status} - ${err.message}`, options); + }); + } +} + +class DescribeRunCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, runId, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDescribeRun(%s)', profile.name, runId); + + const exp = new Experiments(profile.url); + exp.describeRun(profile.token, experimentName, runId).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to describe run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); + }); + } +} + +class DeleteRunCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, runId, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteRun(%s)', profile.name, runId); + + const exp = new Experiments(profile.url); + exp.deleteRun(profile.token, experimentName, runId).then((response) => { + if (response.success) { + printSuccess(`Run ${runId} in experiment ${experimentName} deleted`, options); + } + else { + printError(`Failed to delete run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); + }); + } +} + +class DownloadArtifactCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, runId, artifactName, options) { + const profile = loadProfile(options.profile); + debug('%s.downloadArtifact(%s)', profile.name, artifactName); + + const exp = new Experiments(profile.url); + const showProgress = !!options.progress; + + // To download content from Secrets + exp.downloadArtifact(profile.token, experimentName, runId, artifactName, showProgress).then((response) => { + if (response.success) { + // messages need to be on stderr as content is streamed to stdout + console.error(response.message); + } + else { + printError(`Failed to download artifact: ${response.status} - ${response.message}`, options); + } + }).catch((err) => { + debug(err); + printError(`Failed to download artifact: ${err.status} - ${err.message}`, options); + }); + } +} + +module.exports = { + ListExperiments, + ListRuns, + DescribeExperimentCommand, + DescribeRunCommand, + DeleteRunCommand, + DeleteExperimentCommand, + DownloadArtifactCommand, +}; diff --git a/src/commands/graph.js b/src/commands/graph.js new file mode 100644 index 00000000..d1fb60a2 --- /dev/null +++ b/src/commands/graph.js @@ -0,0 +1,243 @@ +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const _ = require('lodash'); +const debug = require('debug')('cortex:cli'); +const split = require('split'); +const fs = require('fs'); +const Table = require('tty-table'); +const ProgressBar = require('progress'); +const { loadProfile } = require('../config'); +const { Graph } = require('../client/graph'); +const { printSuccess, printError, filterObject, printTable } = require('./utils'); + + +function countLinesInFile(file){ + return new Promise((resolve, reject) => { + let counter = -1; + fs + .createReadStream(file) + .pipe(split()) + .on('data', (doesntMatter) => { + counter = counter + 1; + }) + .on('error', (error) => { + reject(error); + }) + .on('end', () => { + resolve(counter); + }); + }); +} + +class FindEventsCommand { + + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeFindEvents()', profile.name); + + const graph = new Graph(profile.url); + graph.findEvents(profile.token, options.filter, options.sort, options.limit, options.skip) + .then((response) => { + if (response.success) { + let result = response.events; + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + {column: 'Entity ID', field: 'entityId', width: 40}, + {column: 'Entity Type', field: 'entityType', width: 30}, + {column: 'Event', field: 'event', width: 30}, + {column: 'Event Label', field: 'eventLabel', width: 30}, + {column: 'Event Time', field: 'eventTime', width: 20}, + ]; + + printTable(tableSpec, result); + } + } + else { + printError(`Failed to find entities: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to find entities: ${err.status} ${err.message}`, options); + }); + } +} + +class PublishEventsCommand { + constructor(program) { + this.program = program; + } + + execute(file, options) { + const profile = loadProfile(options.profile); + debug('%s.executePublishEvents()', profile.name); + + const graph = new Graph(profile.url); + let eventCount = 0; + const errors = []; + + const publishEvent = async (event, bar) => { + if (!event) return; + + debug('publishing event: ', event); + eventCount++; + + let rs; + if (options.tracking) { + rs = await graph.track(profile.token, event); + } + else { + rs = await graph.publishEntities(profile.token, event); + } + + if (!rs.success) errors.push(rs.message); + + // In the case of a stream ... bar is not used ... + if (!_.isEmpty(bar)){ + bar.tick(); + } + }; + + const processStream = (stream, resolve, reject, bar) => { + const tasks = []; + stream.pipe(split((s) => JSON.parse(JSON.stringify(s)))) + .on('data', (event) => tasks.push(publishEvent(event, bar))) + .on('error', (err) => reject(err)) + .on('end', () => Promise.all(tasks).then(() => { + printSuccess(`Processed ${eventCount} events with ${errors.length} errors`); + if (errors.length > 0) { + printError(`First error: ${errors[0]}`, options, false); + } + resolve({ eventCount, errors }); + }).catch(err => reject(err))); + }; + + if (file) { + return countLinesInFile(file) + .then((numEvents) => { + printSuccess(`Publishing ${numEvents} events from file ${file}`); + const bar = new ProgressBar( + 'publishing [:bar] :current/:total :rate evt/s :elapsed s', + { total: numEvents, width: 65 } + ); + + return new Promise((resolve, reject) => { + const stream = fs.createReadStream(file); + processStream(stream, resolve, reject, bar); + }); + }); + } + else { + return new Promise((resolve, reject) => { + process.stdin.resume(); + process.stdin.setEncoding('utf8'); + processStream(process.stdin, resolve, reject); + }); + } + } +} + +class GetEntityCommand { + + constructor(program) { + this.program = program; + } + + execute(entityId, options) { + const profile = loadProfile(options.profile); + debug('%s.executeGetEntity(%s)', profile.name, entityId); + + const graph = new Graph(profile.url); + graph.getEntity(profile.token, entityId) + .then((response) => { + if (response.success) { + let result = response.entity; + if (options.query) + result = filterObject(result, options); + + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to get entity: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to get entity: ${err.status} ${err.message}`, options); + }); + } +} + +class QueryGraphCommand { + + constructor(program) { + this.program = program; + } + + execute(query, options) { + const profile = loadProfile(options.profile); + debug('%s.executeQueryGraph(%s)', profile.name, query); + + const graph = new Graph(profile.url); + graph.query(profile.token, query) + .then((response) => { + if (response.success) { + const result = response.result; + const rows = result.values || []; + + debug('query result:', result); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const table = new Table( + result.columns.map(c => ({ value: c, headerColor : 'cyan', })), + rows, + { defaultValue: '---'}); + + printSuccess(query); + console.log(table.render()); + console.log(); + printSuccess(`Found ${rows.length} results in ${result.took} milliseconds`, options); + } + } + else { + printError(`Failed to execute query: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to execute query: ${err.status} ${err.message}`, options); + }); + } +} + +module.exports = { + FindEventsCommand, + PublishEventsCommand, + GetEntityCommand, + QueryGraphCommand, +}; diff --git a/src/commands/profiles.js b/src/commands/profiles.js new file mode 100644 index 00000000..5c2621e4 --- /dev/null +++ b/src/commands/profiles.js @@ -0,0 +1,283 @@ +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const _ = require('lodash'); +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Catalog = require('../client/catalog'); +const { Graph } = require('../client/graph'); +const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); + +class SaveProfileSchemaCommand { + + constructor(program) { + this.program = program; + } + + execute(profileSchema, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSaveProfileSchema(%s)', profile.name, profileSchema); + + const schemaStr = fs.readFileSync(profileSchema); + const schema = parseObject(schemaStr, options); + + const catalog = new Catalog(profile.url); + catalog.saveProfileSchema(profile.token, schema) + .then((response) => { + if (response.success) { + printSuccess(`Profile Schema saved`, options); + } else { + const {message, details} = response; + debug(`Failed to save profile schema: ${response.status} - ${message}`); + debug(response); + printError('Failed to save profile schema.', options, false); + if (details) { + printError('The following issues were found:', options, false); + const tableSpec = [ + {column: 'Path', field: 'path', width: 50}, + {column: 'Message', field: 'message', width: 100}, + ]; + printTable(tableSpec, details); + printError(''); // Just exit + } + } + }) + .catch((err) => { + printError(`Failed to save profile schema: ${err.status} ${err.response.body.error}`, options); + }); + } +} + +class ListProfileSchemasCommand { + + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListProfileSchemas()', profile.name); + + const { filter, sort, limit, skip } = options; + const catalog = new Catalog(profile.url); + catalog.listProfileSchemas(profile.token, filter, sort, limit, skip) + .then((response) => { + if (response.success) { + let result = response.schemas; + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const tableSpec = [ + {column: 'Title', field: 'title', width: 50}, + {column: 'Name', field: 'name', width: 50}, + {column: 'Version', field: '_version', width: 12} + ]; + + printTable(tableSpec, result); + } + } else { + printError(`Failed to list profile schemas: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list profile schemas: ${err.status} ${err.message}`, options); + }); + } +} + +class DescribeProfileSchemaCommand { + + constructor(program) { + this.program = program; + } + + execute(schemaName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDescribeProfileSchema(%s)', profile.name, schemaName); + + const catalog = new Catalog(profile.url); + catalog.describeProfileSchema(profile.token, schemaName) + .then((response) => { + if (response.success) { + let result = filterObject(response.schema, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe profile schema ${schemaName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe profile schema ${schemaName}: ${err.status} ${err.message}`, options); + }); + } +} + +class DeleteProfileSchemaCommand { + + constructor(program) { + this.program = program; + } + + execute(schemaName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteProfileSchema(%s)', profile.name, schemaName); + + const catalog = new Catalog(profile.url); + catalog.deleteProfileSchema(profile.token, schemaName) + .then((response) => { + if (response.success) { + debug(response.message); + printSuccess(`Profile Schema deleted.`, options); + } else { + printError(`Failed to delete profile schema ${schemaName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete profile schema ${schemaName}: ${err.status} ${err.message}`, options); + }); + } +} + +class ListProfilesCommand { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListProfiles()', profile.name); + + const { filter, sort, limit, skip } = options; + const graph = new Graph(profile.url); + graph.listProfiles(profile.token, filter, sort, limit, skip) + .then((response) => { + if (response.success) { + let result = response.profiles; + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + {column: 'Profile ID', field: 'profileId', width: 50}, + {column: 'Profile Schema', field: 'profileSchema', width: 50}, + {column: 'Version', field: 'version', width: 12}, + {column: 'Last Updated', field: 'updatedAt', width: 40} + ]; + + printTable(tableSpec, result); + } + } + else { + printError(`Failed to list profiles: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list profiles: ${err.status} ${err.message}`, options); + }); + } +} + +class DescribeProfileCommand { + constructor(program) { + this.program = program; + } + + execute(profileId, schemaName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDescribeProfile(%s)', profile.name, profileId); + + const graph = new Graph(profile.url); + graph.describeProfile(profile.token, profileId, schemaName) + .then((response) => { + if (response.success) { + let result = filterObject(response.profile, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe profile ${schemaName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe profile ${schemaName}: ${err.status} ${err.message}`, options); + }); + } +} + +class DeleteProfileCommand { + + constructor(program) { + this.program = program; + } + + execute(profileId, schemaName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteProfile(%s)', profile.name, profileId); + + const graph = new Graph(profile.url); + graph.deleteProfile(profile.token, profileId, schemaName) + .then((response) => { + if (response.success) { + printSuccess(`Profile deleted.`, options); + } else { + printError(`Failed to delete profile ${schemaName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete profile ${schemaName}: ${err.status} ${err.message}`, options); + }); + } +} + +class RebuildProfilesCommand { + + constructor(program) { + this.program = program; + } + + execute(schemaName, profileId, options) { + const profile = loadProfile(options.profile); + debug('%s.executeRebuildProfiles(%s)', profile.name, schemaName); + + const graph = new Graph(profile.url); + graph.rebuildProfiles(profile.token, schemaName, profileId, options.filter, options.sort, options.limit, options.skip) + .then((response) => { + if (response.success) { + printSuccess(response.message, options); + } else { + printError(`Failed to rebuild profile: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to rebuild profile: ${err.status} ${err.message}`, options); + }); + } +} + +module.exports = { + SaveProfileSchemaCommand, + ListProfileSchemasCommand, + DescribeProfileSchemaCommand, + DeleteProfileSchemaCommand, + ListProfilesCommand, + DescribeProfileCommand, + DeleteProfileCommand, + RebuildProfilesCommand, +}; From eacf9889af614a80af02184244936bf480c83078 Mon Sep 17 00:00:00 2001 From: Victor Adan Date: Thu, 23 May 2019 11:16:44 -0500 Subject: [PATCH 097/864] 0.12.17 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index b2c670aa..dcdff053 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.15", + "version": "0.12.17", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 21d3aea9..bf665b0b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.16", + "version": "0.12.17", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 6acdc2ebab9dcf74d38a6fbb0d28956dfc8f1e2b Mon Sep 17 00:00:00 2001 From: vadan-cs Date: Thu, 6 Jun 2019 08:39:15 -0500 Subject: [PATCH 098/864] Release v0.12.17 (#191) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * Add agents list-snapshot-instances (#168) * Fix invalid query param on list snap instances (#170) * Update minor-compatible dependencies * Tweaks to error handling (#183) * Added npm publish to build.sh. (#190) * Ccf 11021 validate configure (#189) * Add validations for url, accounts, user, password * Fix messages * Add support for CORTEX_URI * Fixed per review comments, support - in URL, remove dead redundant code * Adds support for Graph, Profiles, and Experiments APIs (#180) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bug fixes when attempting to craft manual test cases for the cli. * Reved package-log * Bumped version of cli and add proxying support * 0.12.17 --- .npmrc | 2 +- README.md | 21 +- bin/cortex-experiments.js | 162 ++ bin/cortex-graph.js | 101 + bin/cortex-profiles.js | 184 ++ bin/cortex.js | 5 +- build.sh | 8 +- package-lock.json | 5189 +++++++++++++++++++++++++++++++++++ package.json | 27 +- src/client/catalog.js | 92 +- src/client/content.js | 4 + src/client/experiments.js | 190 ++ src/client/graph.js | 280 ++ src/commands/configure.js | 54 +- src/commands/content.js | 2 +- src/commands/experiments.js | 256 ++ src/commands/graph.js | 243 ++ src/commands/profiles.js | 283 ++ src/commands/utils.js | 4 +- 19 files changed, 7056 insertions(+), 51 deletions(-) create mode 100644 bin/cortex-experiments.js create mode 100755 bin/cortex-graph.js create mode 100755 bin/cortex-profiles.js create mode 100644 package-lock.json create mode 100644 src/client/experiments.js create mode 100644 src/client/graph.js create mode 100644 src/commands/experiments.js create mode 100644 src/commands/graph.js create mode 100644 src/commands/profiles.js diff --git a/.npmrc b/.npmrc index 43c97e71..449691b7 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1 @@ -package-lock=false +save-exact=true \ No newline at end of file diff --git a/README.md b/README.md index e15fa464..214faf84 100644 --- a/README.md +++ b/README.md @@ -182,4 +182,23 @@ cortex agents list --query "[].{name: name, title: title}" - [ ] list - [ ] save [registryName] - [ ] delete [registryName] - +- [x] profiles + - [x] save-schema + - [x] list-schemas + - [x] describe-schema + - [x] delete-schema + - [x] list + - [x] describe + - [x] delete + - [x] rebuild +- [x] graph + - [x] find-events + - [x] publish +- [x] experiments + - [x] list + - [x] describe + - [x] delete + - [x] list-runs + - [x] describe-runs + - [x] delete-run + - [x] download-artifact diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js new file mode 100644 index 00000000..1c8c9168 --- /dev/null +++ b/bin/cortex-experiments.js @@ -0,0 +1,162 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListExperiments, + DescribeExperimentCommand, + ListRuns, + DescribeRunCommand, + DeleteRunCommand, + DownloadArtifactCommand, +} = require('../src/commands/experiments'); + +program.description('Work with Cortex Experiments'); + +// List Experiments +program + .command('list') + .description('Find experiments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--limit [limit]', 'Limit the number of experiments returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((options) => { + try { + new ListExperiments(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Experiment +program + .command('describe ') + .description('Describe experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((experimentName, options) => { + try { + new DescribeExperimentCommand(program).execute(experimentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Experiment +program + .command('delete ') + .description('Delete an experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DeleteExperimentCommand(program).execute(experimentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Runs +program + .command('list-runs ') + .description('Find runs within an experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--limit [limit]', 'Limit the number of experiments returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((experimentName, options) => { + try { + new ListRuns(program).execute(experimentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Run +program + .command('describe-run ') + .description('Describe run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DescribeRunCommand(program).execute(experimentName, runId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Run +program + .command('delete-run ') + .description('Delete run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DeleteRunCommand(program).execute(experimentName, runId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Download Artifact +program + .command('download-artifact ') + .description('Download artifact from run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { + try { + new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +program.parse(process.argv); diff --git a/bin/cortex-graph.js b/bin/cortex-graph.js new file mode 100755 index 00000000..8d978d21 --- /dev/null +++ b/bin/cortex-graph.js @@ -0,0 +1,101 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + FindEventsCommand, + PublishEventsCommand, + GetEntityCommand, + QueryGraphCommand, +} = require('../src/commands/graph'); + +program.description('Work with the Cortex Graph'); + +// Find Entity Events +program + .command('find-events') + .description('Find entity events in the event store') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use as the event query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') + .option('--limit [limit]', 'Limit the number of events returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((options) => { + try { + new FindEventsCommand(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Publish Events +program + .command('publish [file]') + .description('Publish events to the event store') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--tracking', 'Enable tracking event mode.') + .action(withCompatibilityCheck(async (file, options) => { + await new PublishEventsCommand(program).execute(file, options) + .catch(err => console.error(chalk.red(err.message))); + })); + +// Describe Entity +program + .command('get-entity ') + .description('Get an entity in the graph by ID') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck(async (entityId, options) => { + try { + new GetEntityCommand(program).execute(entityId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Query the graph +program + .command('query ') + .description('Query the graph using the OpenCypher query language') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck(async (query, options) => { + try { + new QueryGraphCommand(program).execute(query, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js new file mode 100755 index 00000000..0f8fb419 --- /dev/null +++ b/bin/cortex-profiles.js @@ -0,0 +1,184 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + SaveProfileSchemaCommand, + ListProfileSchemasCommand, + DescribeProfileSchemaCommand, + DeleteProfileSchemaCommand, + ListProfilesCommand, + DescribeProfileCommand, + DeleteProfileCommand, + RebuildProfilesCommand, +} = require('../src/commands/profiles'); + +program.description('Work with Cortex Profiles'); + +// Save Profile Schema +program + .command('save-schema ') + .description('Save a profile schema') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The configuration profile to use') + .option('-y, --yaml', 'Use YAML for profile schema format') + .action(withCompatibilityCheck((profileSchema, options) => { + try { + new SaveProfileSchemaCommand(program).execute(profileSchema, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Profile Schemas +program + .command('list-schemas') + .description('List profile schemas') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use as the event query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') + .option('--limit [limit]', 'Limit the number of events returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((options) => { + try { + new ListProfileSchemasCommand(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Profile Schema +program + .command('describe-schema ') + .description('Describe Profile Schema') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((schemaName, options) => { + try { + new DescribeProfileSchemaCommand(program).execute(schemaName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Profile Schema +program + .command('delete-schema ') + .description('Delete a Profile Schema') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((schemaName, options) => { + try { + new DeleteProfileSchemaCommand(program).execute(schemaName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Profiles +program + .command('list') + .description('List profiles') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use as the event query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') + .option('--limit [limit]', 'Limit the number of events returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((options) => { + try { + new ListProfilesCommand(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Profile +program + .command('describe [schemaName]') + .description('Describe Profile Schema') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((profileId, schemaName, options) => { + try { + new DescribeProfileCommand(program).execute(profileId, schemaName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Profile +program + .command('delete [schemaName]') + .description('Delete a Profile') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((profileId, schemaName, options) => { + try { + new DeleteProfileCommand(program).execute(profileId, schemaName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Rebuild Profile +program + .command('rebuild [profileId]') + .description('Rebuild a Profile') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--filter [filter]', 'A Mongo style filter to use as the event query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') + .option('--limit [limit]', 'Limit the number of events returned.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .action(withCompatibilityCheck((schemaName, profileId, options) => { + try { + new RebuildProfilesCommand(program).execute(schemaName, profileId, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 2c0ee512..f27ca511 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -40,7 +40,10 @@ program .command('skills [cmd]', 'Work with Cortex Skills') .command('tasks [cmd]', 'Work with Cortex v2 Tasks') .command('types [cmd]', 'Work with Cortex Types') - .command('variables [cmd]', 'Work with Cortex Secure Variables'); + .command('variables [cmd]', 'Work with Cortex Secure Variables') + .command('experiments [cmd]', 'Work with Cortex Experiments') + .command('profiles [cmd]', 'Work with Cortex Profiles') + .command('graph [cmd]', 'Work with the Cortex Graph'); program.parse(process.argv, { noActionHandler: function() { diff --git a/build.sh b/build.sh index 3ffc0770..02831fed 100755 --- a/build.sh +++ b/build.sh @@ -26,6 +26,7 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ + npm -v npm config set loglevel warn npm cache clear --force npm install -dd --verbose @@ -35,9 +36,10 @@ function docker_build(){ if [[ ${BRANCH} = "master" ]]; then rm -rf node_modules npm install --silent --only=production -# npm publish -# elif [[ ${BRANCH} = "develop" ]]; then -# npm publish --tag develop + npm publish --registry=https://registry.npmjs.com/ + elif [[ ${BRANCH} = "develop" ]]; then + npm config set always-auth true + npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-local/ fi } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..dcdff053 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5189 @@ +{ + "name": "cortex-cli", + "version": "0.12.17", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@c12e/generator-cortex": { + "version": "0.3.19", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.19.tgz", + "integrity": "sha1-MRkj6gRdKWjqI8vu6dsrbTX0oFE=", + "requires": { + "debug": "^3.1.0", + "joi": "^13.1.2", + "superagent": "^3.8.2", + "yeoman-generator": "^3.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "joi": { + "version": "13.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.7.0.tgz", + "integrity": "sha1-z9hev+Z+ihkAQyQAtNA7vZP7h58=", + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=" + }, + "@types/node": { + "version": "8.10.48", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-8.10.48.tgz", + "integrity": "sha1-44UHNWFkOpumGZoZhf/ANTD5B4E=" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "6.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "requires": { + "color-convert": "^1.9.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "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=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types": { + "version": "0.12.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-types/-/ast-types-0.12.4.tgz", + "integrity": "sha1-cc5jg4APJO/JoaMwjzpuQgoJdNE=" + }, + "async": { + "version": "2.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-2.6.2.tgz", + "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=", + "requires": { + "lodash": "^4.17.11" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" + }, + "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=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binaryextensions": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-2.1.2.tgz", + "integrity": "sha1-yDw9dCM7p2dOTzE8sqK3D1TpS3w=" + }, + "bluebird": { + "version": "3.5.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bluebird/-/bluebird-3.5.4.tgz", + "integrity": "sha1-1sxmFZXeMNWzr1/O3TwLPvbsVxQ=" + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha1-VcbDmouljZxhrSLNh3Uy3rZlogs=", + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "breakword": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.3.tgz", + "integrity": "sha1-ceCRu7eLtO8APPPtKy4GLGkn990=", + "requires": { + "wcwidth": "^1.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "dev": true + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" + }, + "cacache": { + "version": "11.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chai": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.2.0.tgz", + "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", + "dev": true, + "requires": { + "check-error": "^1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chownr": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha1-VHJri4//TfBTxCGH6AH7RBLfFJQ=" + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "requires": { + "colors": "1.0.3" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "cloneable-readable": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha1-1ZHe5Kj4vBXaQ86X3O66E9Q+KmU=", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "co-prompt": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", + "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", + "requires": { + "keypress": "~0.2.1" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.0.tgz", + "integrity": "sha1-1YuytcHuj4ew00ACfp6U4iLFpCI=" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha1-3YojVTB1L5iPmghE8/xYnjERElw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "csv": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-4.0.0.tgz", + "integrity": "sha1-x95EuaD9R/ehDbJAZFGfZCp86S0=", + "requires": { + "csv-generate": "^2.2.2", + "csv-parse": "^3.1.2", + "csv-stringify": "^4.3.1", + "stream-transform": "^1.0.7" + } + }, + "csv-generate": { + "version": "2.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-generate/-/csv-generate-2.2.2.tgz", + "integrity": "sha1-w3gIxfPq0t7slAeUBz3TLUkq39E=" + }, + "csv-parse": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-parse/-/csv-parse-3.2.0.tgz", + "integrity": "sha1-kEO1kh5+zV4xEJR98e8A0pDb7Kc=" + }, + "csv-stringify": { + "version": "4.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-stringify/-/csv-stringify-4.3.1.tgz", + "integrity": "sha1-e+4290bvVV3Ugac1qeKTiWX4R4s=", + "requires": { + "lodash.get": "~4.4.2" + } + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" + }, + "dargs": { + "version": "6.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dargs/-/dargs-6.1.0.tgz", + "integrity": "sha1-HzubVjk+z4yqfL/WwxSW/8+5snI=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-uri-to-buffer": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/data-uri-to-buffer/-/data-uri-to-buffer-2.0.1.tgz", + "integrity": "sha1-yo9W/jix/TKUc+nRtKmvzYzhwEU=", + "requires": { + "@types/node": "^8.0.7" + } + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha1-puN0maTZqc+F71hyBE1ikByYia4=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + } + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "detect-conflict": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha1-rg8PothQRe8UqBfao86azQSJ5b8=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "editions": { + "version": "2.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/editions/-/editions-2.1.3.tgz", + "integrity": "sha1-cnzPPsLHsS3MZSxxAA8WxIJNb30=", + "requires": { + "errlop": "^1.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" + } + } + }, + "ejs": { + "version": "2.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha1-SY7A1JVlWrxvI81hho2SZGQHGqA=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", + "requires": { + "once": "^1.4.0" + } + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" + }, + "errlop": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/errlop/-/errlop-1.1.1.tgz", + "integrity": "sha1-2a5MdsPmSVbF155uA11jQ7/WIlA=", + "requires": { + "editions": "^2.1.2" + } + }, + "error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "requires": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-promise": { + "version": "4.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha1-toXt2CWIhjZepitX0w3ij63Nl08=" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.11.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-1.11.1.tgz", + "integrity": "sha1-xIX/jWtM24nif0qFbpHxGEAcpRA=", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "optional": true + } + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "dev": true + } + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha1-PzGA+y4pEBdxastMnW1bXDSmqB0=", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-3.5.4.tgz", + "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "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" + }, + "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" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-glob": { + "version": "2.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-2.2.6.tgz", + "integrity": "sha1-pdW2l+yN7aRo2Fp0A1KQoCWpUpU=", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-package-json": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "requires": { + "locate-path": "^3.0.0" + } + }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "for-in": { + "version": "1.0.2", + "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=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha1-cPt8oCkO5v+WEJBBX0s989IIJlk=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-uri": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-uri/-/get-uri-2.0.3.tgz", + "integrity": "sha1-+hM1Iml4HXUWLG/IE8npBTI/urU=", + "requires": { + "data-uri-to-buffer": "2", + "debug": "4", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "readable-stream": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.3.0.tgz", + "integrity": "sha1-y4ARqtAC63F78EApH+uoVpyYb7k=", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "get-value": { + "version": "2.0.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=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gh-got": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-6.0.0.tgz", + "integrity": "sha1-10NTAExuxGZkdSChC9RvcpnSaNA=", + "requires": { + "got": "^7.0.0", + "is-plain-obj": "^1.1.0" + } + }, + "github-username": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", + "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "requires": { + "gh-got": "^6.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.4.tgz", + "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true + }, + "globby": { + "version": "8.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-8.0.2.tgz", + "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-7.1.0.tgz", + "integrity": "sha1-BUUP2ECU5rvqVvRRpDqcKJFmOFo=", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=" + }, + "grouped-queue": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", + "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "requires": { + "lodash": "^4.17.2" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha1-FAn5i8ACR9pF2mfO4KNvKC/yZFU=" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha1-oEWrOD17SyASoAFIqwql8pAETU0=", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hoek": { + "version": "5.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha1-D3+icKHK/rNkpLLd+qM/hk5BV9o=" + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=" + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.5.tgz", + "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=" + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, + "is-scoped": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", + "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", + "requires": { + "scoped-regex": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha1-XW3vPt6/boyoyunDAYOoBLX4voA=", + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isemail": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha1-WTEKAhkxqfsGu7UeFVzgs/I2gyw=", + "requires": { + "punycode": "2.x.x" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "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=" + }, + "istextorbinary": { + "version": "2.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-2.5.1.tgz", + "integrity": "sha1-FKM4JM9rnV13Q+rBvivSwxDQzL0=", + "requires": { + "binaryextensions": "^2.1.2", + "editions": "^2.1.3", + "textextensions": "^2.4.0" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha1-sn9PSfPNqj6kSgpbfzRi5u3DnWc=", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "joi": { + "version": "13.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.1.0.tgz", + "integrity": "sha1-Wee4cUuTKh40LDWD1YQdcWn/GCI=", + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha1-AOceC431TCEhofJhN98igGc7zA0=", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "semver": { + "version": "5.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" + } + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha1-dDwymFy56YZVUw1TZBtmyGRbA5o=", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jws/-/jws-3.2.2.tgz", + "integrity": "sha1-ABCZ82OUaMlBQADpmZX6UvtHgwQ=", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "keypress": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", + "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "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=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "requires": { + "chalk": "^2.0.1" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", + "integrity": "sha1-FBSXy4ePJDupMTbIPYq6EsIWwIM=", + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem/-/mem-4.3.0.tgz", + "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" + } + } + }, + "mem-fs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", + "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", + "requires": { + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "mem-fs-editor": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", + "integrity": "sha1-UZciQWQL6FZ2gKBPetr/5fxgNmc=", + "requires": { + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^2.5.9", + "glob": "^7.0.3", + "globby": "^8.0.1", + "isbinaryfile": "^3.0.2", + "mkdirp": "^0.5.0", + "multimatch": "^2.0.0", + "rimraf": "^2.2.8", + "through2": "^2.0.0", + "vinyl": "^2.0.1" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "merge2": { + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha1-fumdvWm7ZIFoklPwGEiKG5ArDtU=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime/-/mime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=" + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha1-bYrlCPWRZ/lA8rWzxKYSrlDJCuY=", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.15.1.tgz", + "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.2.tgz", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.24.0.tgz", + "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "netmask": { + "version": "1.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha1-Fa4eJ1ilAn77TCUFVLhac323/ME=", + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-registry-fetch": { + "version": "3.9.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz", + "integrity": "sha1-RNhBeA4oM/BqzLNEiPjHRQ0aaFY=", + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "npm-package-arg": "^6.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha1-ueEjgAvOu3rBOkeb4ZW1B7mNMPo=" + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=" + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" + }, + "pac-proxy-agent": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", + "integrity": "sha1-EdV4tyoWStdL+dW6yf9GKjgoJDI=", + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha1-auoweH2wqJFwTet4AKcip2FabyY=", + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "requires": { + "pify": "^3.0.0" + } + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "requires": { + "through": "~2.3" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-bytes": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pretty-bytes/-/pretty-bytes-5.2.0.tgz", + "integrity": "sha1-lsksbpWgs1BZJT+zPAPiYNQPWh8=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "proxy-agent": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-agent/-/proxy-agent-3.1.0.tgz", + "integrity": "sha1-PPhu6RHJSHTeQ1nzfv2d4lFXwRM=", + "requires": { + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "pac-proxy-agent": "^3.0.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.1.31", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/psl/-/psl-1.1.31.tgz", + "integrity": "sha1-6aqG0BAbWxBcvpOsa3hM1UcnYYQ=" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-chunk": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha1-KYSv54ypv7vbdLGTh7+ehiicFso=", + "requires": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + } + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha1-GyIcYIi6d5lgHICPkRYcZuWPiXg=", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "request": { + "version": "2.88.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/request/-/request-2.88.0.tgz", + "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", + "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.0", + "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.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve": { + "version": "1.10.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha1-ZkhCrJYHlbvnWCIc3M2mH7ZLXxg=", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + }, + "rewire": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-4.0.1.tgz", + "integrity": "sha1-uhEA1ACp2nWf5Zn8bgIz8Iee1to=", + "dev": true, + "requires": { + "eslint": "^4.19.1" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "6.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", + "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + }, + "scoped-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" + }, + "semver": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.5.0.tgz", + "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shelljs": { + "version": "0.8.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha1-p/MxlSDr8J7oEnWyNorbKGZZsJc=", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha1-UgeFjDgVzGkRBwPGuU5GwVY0OV0=" + }, + "smartwrap": { + "version": "1.0.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smartwrap/-/smartwrap-1.0.11.tgz", + "integrity": "sha1-7o+Fh4v6yJwfpNoz4Id/cpqOKnQ=", + "requires": { + "breakword": "^1.0.3", + "wcwidth": "^1.0.1", + "yargs": "^12.0.5" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socks": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.3.2.tgz", + "integrity": "sha1-reOI6ebYf9sRZJwVdGxXiSKliD4=", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha1-dezRqI3owYTvAV6vtRtbSL/RG7E=" + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "requires": { + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "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" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "requires": { + "duplexer": "~0.1.1" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "stream-transform": { + "version": "1.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-transform/-/stream-transform-1.0.8.tgz", + "integrity": "sha1-VPchEi0xDsqFWhbJeTmIGrW7t2w=" + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^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=" + }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "requires": { + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "superagent": { + "version": "3.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-3.8.2.tgz", + "integrity": "sha1-5KEbnQR/fT7+s7vlNtnsACHRZAM=", + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.1.1", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "superagent-mocker": { + "version": "0.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-mocker/-/superagent-mocker-0.5.2.tgz", + "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", + "dev": true, + "requires": { + "path-to-regexp": "^1.1.0" + } + }, + "superagent-proxy": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-proxy/-/superagent-proxy-2.0.0.tgz", + "integrity": "sha1-n1dRXNZg4unOVcDmvXD5LrB8PuA=", + "requires": { + "debug": "^3.1.0", + "proxy-agent": "3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "superagent-throttle": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-throttle/-/superagent-throttle-1.0.1.tgz", + "integrity": "sha1-XrOp0BNwssMgbXqQ6o8ESDaUA9M=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-4.0.2.tgz", + "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", + "dev": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + } + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "textextensions": { + "version": "2.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-2.4.0.tgz", + "integrity": "sha1-ahQ6mFRkOEzCz/Ea6kSM1bAY5ys=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-3.0.1.tgz", + "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", + "requires": { + "readable-stream": "2 || 3" + } + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" + }, + "topo": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/topo/-/topo-3.0.3.tgz", + "integrity": "sha1-1aZ/suaTB+vusIQC7Coqb1962Vw=", + "requires": { + "hoek": "6.x.x" + }, + "dependencies": { + "hoek": { + "version": "6.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha1-c7fTOVLgH+J6OLBFcpS3ndjaJCw=" + } + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=" + }, + "tty-table": { + "version": "2.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tty-table/-/tty-table-2.7.0.tgz", + "integrity": "sha1-DgOzdDWgQKntj3g6m7yalmCSHp8=", + "requires": { + "chalk": "^2.4.2", + "csv": "^4.0.0", + "smartwrap": "^1.0.11", + "strip-ansi": "^5.0.0", + "wcwidth": "^1.0.1", + "yargs": "^12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "untildify": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha1-HntCsUC8/ZIrIucMoSZb/jY0x8k=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha1-2FsH2pbkWNJbL/4Z/s6fLKoT7YY=", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w=", + "requires": { + "string-width": "^2.1.1" + } + }, + "with-open-file": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/with-open-file/-/with-open-file-0.1.6.tgz", + "integrity": "sha1-C8F47Kt19rqsiuEcheB0RdaQ6lA=", + "requires": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + } + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + } + } + }, + "yeoman-environment": { + "version": "2.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.3.4.tgz", + "integrity": "sha1-rhVhR6G4Xek5Nm5UOLAMs+tUw+k=", + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.5.0", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^0.3.3", + "inquirer": "^6.0.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.2.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=" + }, + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "external-editor": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha1-WGbbKal4Jtvkvzr9JAcOrZ6kOic=", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "inquirer": { + "version": "6.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-6.3.1.tgz", + "integrity": "sha1-ekE7XnlQgRATo9tJHGHR87d26Oc=", + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + }, + "yeoman-generator": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-generator/-/yeoman-generator-3.2.0.tgz", + "integrity": "sha1-Agd9LX/yj+3B7X2tf5ln/Xw2BMw=", + "requires": { + "async": "^2.6.0", + "chalk": "^2.3.0", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^6.0.0", + "dateformat": "^3.0.3", + "debug": "^4.1.0", + "detect-conflict": "^1.0.0", + "error": "^7.0.2", + "find-up": "^3.0.0", + "github-username": "^4.0.0", + "istextorbinary": "^2.2.1", + "lodash": "^4.17.10", + "make-dir": "^1.1.0", + "mem-fs-editor": "^5.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^5.1.0", + "read-chunk": "^3.0.0", + "read-pkg-up": "^4.0.0", + "rimraf": "^2.6.2", + "run-async": "^2.0.0", + "shelljs": "^0.8.0", + "text-table": "^0.2.0", + "through2": "^3.0.0", + "yeoman-environment": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } + } + } + } +} diff --git a/package.json b/package.json index e284b4c3..bf665b0b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.15", + "version": "0.12.17", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -27,33 +27,36 @@ "dependencies": { "@c12e/generator-cortex": "0.3.19", "boxen": "1.3.0", - "chalk": "2.3.0", + "chalk": "2.4.2", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "2.16.0", - "debug": "3.1.0", + "commander": "2.20.0", + "debug": "4.1.1", "event-stream": "3.3.4", - "find-package-json": "1.1.0", + "find-package-json": "1.2.0", "glob": "^7.1.3", "is-installed-globally": "0.1.0", "jmespath": "0.15.0", "joi": "13.1.0", - "js-yaml": "3.10.0", - "jsonwebtoken": "8.3.0", + "js-yaml": "3.13.1", + "jsonwebtoken": "8.5.1", "lodash": "4.17.11", - "npm-registry-fetch": "3.2.0", - "progress": "2.0.0", + "moment": "^2.24.0", + "npm-registry-fetch": "3.9.0", + "progress": "2.0.3", "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", + "superagent-throttle": "^1.0.1", + "tty-table": "^2.7.0", "superagent-proxy": "^2.0.0", "url": "0.11.0", - "uuid": "3.2.1", - "yeoman-environment": "2.0.5" + "uuid": "3.3.2", + "yeoman-environment": "2.3.4" }, "devDependencies": { - "chai": "4.1.2", + "chai": "4.2.0", "chai-as-promised": "7.1.1", "mocha": "5.2.0", "rewire": "4.0.1", diff --git a/src/client/catalog.js b/src/client/catalog.js index f6338ed6..476b2618 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -27,7 +27,8 @@ const createEndpoints = (baseUri) => { skills: `${baseUri}/v3/catalog/skills`, agents: `${baseUri}/v3/catalog/agents`, types: `${baseUri}/v3/catalog/types`, - agentVersions: `${baseUri}/v3/agents/versions` + agentVersions: `${baseUri}/v3/agents/versions`, + profileSchemas: `${baseUri}/v3/graph/profiles/schemas`, } }; @@ -261,4 +262,93 @@ module.exports = class Catalog { return constructError(err); }); } + + saveProfileSchema(token, schemaObj) { + debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); + return request + .post(this.endpoints.profileSchemas) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .send(schemaObj) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, message: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + listProfileSchemas(token, filter, sort, limit, skip) { + debug('listProfileSchemas() => %s', this.endpoints.profileSchemas); + const req = request + .get(this.endpoints.profileSchemas) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (filter) req.query({ filter }); + if (sort) req.query({ sort }); + if (limit) req.query({ limit }); + if (skip) req.query({ skip }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, schemas: res.body.schemas}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeProfileSchema(token, schemaName) { + const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; + debug('describeProfileSchema(%s) => %s', schemaName, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, schema: res.body}; + } + else { + return {success: false, message: res.body, status: res.status}; + } + }) + .catch((err) => { + return constructError(err); + }); + } + + deleteProfileSchema(token, schemaName) { + const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; + debug('deleteProfileSchema(%s) => %s', schemaName, endpoint); + return request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true}; + } + else { + return {success: false, message: res.body, status: res.status}; + } + }) + .catch((err) => { + return constructError(err); + }); + } }; diff --git a/src/client/content.js b/src/client/content.js index 69e89677..b96e6908 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -107,6 +107,10 @@ module.exports = class Content { 'Content-Type': contentType, } }, function(err, res, body) { + if (err) { + resolve({success: false, message: err.message}); + return; + } if (res.statusCode === 200) { resolve({success: true, message: body}); return; diff --git a/src/client/experiments.js b/src/client/experiments.js new file mode 100644 index 00000000..4f814238 --- /dev/null +++ b/src/client/experiments.js @@ -0,0 +1,190 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { request } = require('../commands/apiutils'); +const debug = require('debug')('cortex:cli'); +const ProgressBar = require('progress'); +const { constructError } = require('../commands/utils'); + +module.exports = class Experiments { + + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/v2/experiments`; + } + + listExperiments(token) { + const endpoint = `${this.endpoint}`; + debug('listExperiments() => %s', endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeExperiment(token, name) { + const endpoint = `${this.endpoint}/${name}`; + debug('describeExperiment(%s) => %s', name, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + deleteExperiment(token, name) { + const endpoint = `${this.endpoint}/${name}`; + debug('deleteExperiment(%s) => %s', name, endpoint); + return request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + listRuns(token, experimentName, filter, limit, sort) { + const endpoint = `${this.endpoint}/${experimentName}/runs`; + debug('listRuns(%s) => %s', experimentName, endpoint); + const req = request + .get(endpoint) + .set('Authorization', `Bearer ${token}`); + + if (filter) req.query({filter}); + if (limit) req.query({limit}); + if (sort) req.query({sort}); + + return req.then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeRun(token, experimentName, runId) { + const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}`; + debug('describeRun(%s) => %s', runId, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + deleteRun(token, experimentName, runId) { + const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}`; + debug('deleteRun(%s) => %s', runId, endpoint); + return request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + downloadArtifact(token, experimentName, runId, artifactName, showProgress = false) { + const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}/artifacts/${artifactName}`; + debug('downloadArtifact(%s) => %s', artifactName, endpoint); + + const stream = request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .use((req) => { + if (showProgress) { + req.on('request', (clientReq) => { + clientReq.on('response', function(res) { + const total = +(res.headers['content-length'] || res.headers['Content-Length']); + const progressBar = new ProgressBar( + ' downloading [:bar] :percent :etas', + { + current: 0, + renderThrottle: 500, + total: total, + } + ); + + res.on('data', (chunk) => progressBar.tick(chunk.length)); + }); + }); + } + }); + + return new Promise((resolve, reject) => { + stream.on('response', function(response) { + if (response.status !== 200) { + stream.abort(); + return resolve({ + success: false, + status: stream.response.status, + message: stream.response.error + }); + } + }); + + stream.on('end', () => { + return resolve({ + success: true, + message: `\nDownloaded ${artifactName}`, + status: stream.response.status + }); + }); + + stream.on('error', (err) => { + return resolve(constructError(err)); + }); + + stream.pipe(process.stdout); + }); + } +}; diff --git a/src/client/graph.js b/src/client/graph.js new file mode 100644 index 00000000..3d3a59ac --- /dev/null +++ b/src/client/graph.js @@ -0,0 +1,280 @@ +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { request } = require('../commands/apiutils'); +const Throttle = require('superagent-throttle'); +const debug = require('debug')('cortex:cli'); +const _ = require('lodash'); +const chalk = require('chalk'); +const { constructError } = require('../commands/utils'); + +const createEndpoints = (baseUri) => { + return { + profiles: `${baseUri}/v3/graph/profiles`, + schemas: `${baseUri}/v3/graph/profiles/schemas`, + events: `${baseUri}/v3/graph/events`, + entities: `${baseUri}/v3/graph/entities`, + track: `${baseUri}/v3/graph/events/track`, + query: `${baseUri}/v3/graph/query`, + } +}; + +const throttle = new Throttle({ + active: true, + concurrent: 20, + rate: 500, + ratePer: 1000, +}); + +class Graph { + + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpoints = createEndpoints(cortexUrl); + } + + listProfiles(token, filter, sort, limit, skip) { + debug('listProfiles() => GET %s', this.endpoints.profiles); + const req = request + .get(this.endpoints.profiles) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (filter) req.query({ filter }); + if (sort) req.query({ sort }); + if (limit) req.query({ limit }); + if (skip) req.query({ skip }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, profiles: res.body.profiles}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeProfile(token, profileId, schemaName) { + const endpoint = `${this.endpoints.profiles}/${profileId}`; + debug('describeProfile(%s) => GET %s', profileId, endpoint); + + const req = request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (schemaName) req.query({ schema: schemaName }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, profile: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + deleteProfile(token, profileId, schemaName) { + const endpoint = `${this.endpoints.profiles}/${profileId}`; + debug('deleteProfile(%s) => DELETE %s', profileId, endpoint); + + const req = request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (schemaName) req.query({ schema: schemaName }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true,}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + findEvents(token, filter, sort, limit, skip) { + debug('findEvents() => GET %s', this.endpoints.events); + + const req = request + .get(this.endpoints.events) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (filter) req.query({ filter }); + if (sort) req.query({ sort }); + + if (limit) { + req.query({ limit }); + } + else { + req.query({ limit: 50 }); + } + + if (skip) req.query({ skip }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, events: res.body.events}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + publishEntities(token, entityEvents) { + debug('publishEntities() => POST %s', this.endpoints.events); + + return request + .post(this.endpoints.events) + .use(throttle.plugin()) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .type('json') + .send(entityEvents) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, message: res.body.message || res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + track(token, event) { + debug('track() => POST %s', this.endpoints.track); + + return request + .post(this.endpoints.track) + .use(throttle.plugin()) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .type('json') + .send(event) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + + if (res.ok) { + return {success: true, message: res.body.message || res.body}; + } + + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + const e = constructError(err); + debug(e); + return e; + }); + } + + rebuildProfiles(token, schemaName, profileId, filter, sort, limit, skip) { + const endpoint = `${this.endpoints.schemas}/${schemaName}/rebuild`; + debug('rebuildProfiles() => PUT %s', endpoint); + + const req = request + .put(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + req.query({ filter: filter ? filter : {} }); + + if (profileId) req.query({ profileId }); + if (sort) req.query({ sort }); + if (limit) req.query({ limit }); + if (skip) req.query({ skip }); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, message: res.body.message || res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + getEntity(token, entityId) { + const endpoint = `${this.endpoints.entities}/${entityId}`; + debug('getEntity(%s) => GET %s', entityId, endpoint); + + const req = request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, entity: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + query(token, query) { + const endpoint = this.endpoints.query; + debug('queryGraph(%s) => POST %s', query, endpoint); + + const req = request + .post(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .send({ query }) + + return req.then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } +} + +module.exports = { Graph }; diff --git a/src/commands/configure.js b/src/commands/configure.js index dba510a7..99329880 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -24,17 +24,32 @@ const { readConfig, defaultConfig } = require('../config'); const { printSuccess, printError } = require('./utils'); const DEFAULT_CORTEX_URL = 'https://api.cortex.insights.ai'; +const URL_REGEX=/^(https?):\/\/(-\.)?([^\s/?\.#]+\.?)+(\/[^\s]*)?$/; +/** + * Validate 's'' is not empty, return 's' or throw error + * @param s + * @param msg + * @param regex + * @returns {*} + * @private + */ +function _validate(s, msg, regex=undefined) { + if (_.isEmpty(s) || (regex && !regex.test(s))) { + console.error(chalk.red(msg)); + process.exit(1); + } + return s; +} module.exports.ConfigureCommand = class { constructor(program) { this.program = program; } - execute(options) { const config = readConfig(); const profileName = options.profile || _.get(config,'currentProfile','default'); - const profileUrl = this.program.url || _.get(config,'url'); + const profileUrl = (this.program.url || process.env.CORTEX_URI) || _.get(config,'url'); const profileAccount = this.program.account || _.get(config ,'account'); const profileUsername = this.program.username || _.get(config,'username'); const profilePassword = this.program.password || undefined; @@ -47,42 +62,23 @@ module.exports.ConfigureCommand = class { co(function*(){ const defaultCortexUrl = profile.url || DEFAULT_CORTEX_URL; const defaultAccount = profile.account || ''; - const defaultUsername = profile.username || ''; - + const defaultUsername = profile.username || '';`` console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); let cortexUrl = (profileUrl) ? profileUrl : yield prompt(`Cortex URL [${defaultCortexUrl}]: `); + const URL_VALIDATION_MSG=`A valid URL (http[s]://) is required. "${cortexUrl}"`; + cortexUrl = _validate(cortexUrl || defaultCortexUrl, URL_VALIDATION_MSG ,URL_REGEX); + cortexUrl =cortexUrl.replace(/\/$/, ''); // strip any trailing / let account = (profileAccount) ? profileAccount : yield prompt(`Account [${defaultAccount}]: `); + account = _validate(account || defaultAccount, 'An account name is required.'); let username = (profileUsername) ? profileUsername : yield prompt(`Username [${defaultUsername}]: `); - const password = (profilePassword) ? profilePassword : yield prompt.password('Password: '); - - cortexUrl = cortexUrl || defaultCortexUrl; - cortexUrl = cortexUrl.replace(/\/$/, ''); // strip any trailing / - account = account || defaultAccount; - username = username || defaultUsername; + username = _validate(username || defaultUsername, 'A user name is required.'); + const password = _validate((profilePassword) ? profilePassword : yield prompt.password('Password: '), + 'A password is required.'); debug('cortexUrl: %s', cortexUrl); debug('account: %s', account); debug('username: %s', username); - if (!cortexUrl.match(/^[a-zA-Z]+:\/\//)) { - cortexUrl = 'http://' + cortexUrl; - } - - if (!cortexUrl) { - console.error(chalk.red('Cortex URL must be provided')); - return; - } - - if (!account) { - console.error(chalk.red('Cortex account name must be provided')); - return; - } - - if (!username) { - console.error(chalk.red('Cortex username must be provided')); - return; - } - const auth = new Auth(cortexUrl); try { const authResp = yield auth.login(account, username, password); diff --git a/src/commands/content.js b/src/commands/content.js index 96f45792..edf0c9f9 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -80,7 +80,7 @@ module.exports.UploadContent = class UploadContent { const upload = _.partial(UploadContent.upload, contentClient, profile, options); if (options.recursive) { - getSourceFiles(filePath, (filesDict, err) => { + getSourceFiles(filePath, (err, filesDict) => { if (err) { debug(err); printError(`Failed to upload content: ${err.status} ${err.message}`, options); diff --git a/src/commands/experiments.js b/src/commands/experiments.js new file mode 100644 index 00000000..21f04d4f --- /dev/null +++ b/src/commands/experiments.js @@ -0,0 +1,256 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const fs = require('fs'); +const _ = require('lodash'); +const debug = require('debug')('cortex:cli'); +const moment = require('moment'); +const es = require('event-stream'); +const { loadProfile } = require('../config'); +const Experiments = require('../client/experiments'); +const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); + +class ListExperiments { + + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listExperiments()', profile.name); + + const exp = new Experiments(profile.url); + exp.listExperiments(profile.token).then((response) => { + if (response.success) { + let result = response.result; + if (options.query) { + result = filterObject(response.result, options); + } + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + let tableSpec = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Version', field: '_version', width: 25 }, + { column: 'Description', field: 'description', width: 50 }, + ]; + + printTable(tableSpec, result.experiments); + } + } + else { + printError(`Failed to list experiments: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to list experiments: ${err.status} - ${err.message}`, options); + }); + } +} + +class DescribeExperimentCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDescribeExperiment(%s)', profile.name, experimentName); + + const exp = new Experiments(profile.url); + exp.describeExperiment(profile.token, experimentName).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to describe experiment ${experimentName}: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe experiment ${experimentName}: ${err.status} - ${err.message}`, options); + }); + } +} + +class DeleteExperimentCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteExperiment(%s)', profile.name, experimentName); + + const exp = new Experiments(profile.url); + exp.deleteExperiment(profile.token, experimentName).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to delete experiment ${experimentName}: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete experiment ${experimentName}: ${err.status} - ${err.message}`, options); + }); + } +} + +class ListRuns { + + constructor(program) { + this.program = program; + } + + execute(experimentName, options) { + const profile = loadProfile(options.profile); + debug('%s.listRuns()', profile.name); + + const exp = new Experiments(profile.url); + const sort = options.sort || JSON.stringify({ startTime: -1 }); + + exp.listRuns(profile.token, experimentName, options.filter, options.limit, sort).then((response) => { + if (response.success) { + let result = response.result; + if (options.query) { + result = filterObject(response.result, options); + } + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + { alias: 'Run ID', value: 'runId', width: 25 }, + { alias: 'Start', value: 'startTime', width: 25, formatter: (val) => moment.unix(val).format('YYYY-MM-DD HH:mm a')}, + { alias: 'Took', value: 'took', width: 25, formatter: (val) => moment.duration(val, 'seconds').humanize()}, + { alias: 'Params', value: 'params', width: 45, formatter: (val) => _.map(val, (v, k) => `${k}: ${v}`).join('\n') }, + { alias: 'Metrics', value: 'metrics', width: 45, formatter: (val) => _.map(val, (v, k) => `${k}: ${v}`).join('\n') }, + { alias: 'Artifacts', value: 'artifacts', formatter: (val) => Object.keys(val).join(', ') }, + ]; + + const Table = require('tty-table'); + const t = new Table(tableSpec, result.runs); + console.log(t.render()); + } + } + else { + printError(`Failed to list runs: ${response.status} ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to list runs: ${err.status} - ${err.message}`, options); + }); + } +} + +class DescribeRunCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, runId, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDescribeRun(%s)', profile.name, runId); + + const exp = new Experiments(profile.url); + exp.describeRun(profile.token, experimentName, runId).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to describe run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); + }); + } +} + +class DeleteRunCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, runId, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteRun(%s)', profile.name, runId); + + const exp = new Experiments(profile.url); + exp.deleteRun(profile.token, experimentName, runId).then((response) => { + if (response.success) { + printSuccess(`Run ${runId} in experiment ${experimentName} deleted`, options); + } + else { + printError(`Failed to delete run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); + }); + } +} + +class DownloadArtifactCommand { + + constructor(program) { + this.program = program; + } + + execute(experimentName, runId, artifactName, options) { + const profile = loadProfile(options.profile); + debug('%s.downloadArtifact(%s)', profile.name, artifactName); + + const exp = new Experiments(profile.url); + const showProgress = !!options.progress; + + // To download content from Secrets + exp.downloadArtifact(profile.token, experimentName, runId, artifactName, showProgress).then((response) => { + if (response.success) { + // messages need to be on stderr as content is streamed to stdout + console.error(response.message); + } + else { + printError(`Failed to download artifact: ${response.status} - ${response.message}`, options); + } + }).catch((err) => { + debug(err); + printError(`Failed to download artifact: ${err.status} - ${err.message}`, options); + }); + } +} + +module.exports = { + ListExperiments, + ListRuns, + DescribeExperimentCommand, + DescribeRunCommand, + DeleteRunCommand, + DeleteExperimentCommand, + DownloadArtifactCommand, +}; diff --git a/src/commands/graph.js b/src/commands/graph.js new file mode 100644 index 00000000..d1fb60a2 --- /dev/null +++ b/src/commands/graph.js @@ -0,0 +1,243 @@ +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const _ = require('lodash'); +const debug = require('debug')('cortex:cli'); +const split = require('split'); +const fs = require('fs'); +const Table = require('tty-table'); +const ProgressBar = require('progress'); +const { loadProfile } = require('../config'); +const { Graph } = require('../client/graph'); +const { printSuccess, printError, filterObject, printTable } = require('./utils'); + + +function countLinesInFile(file){ + return new Promise((resolve, reject) => { + let counter = -1; + fs + .createReadStream(file) + .pipe(split()) + .on('data', (doesntMatter) => { + counter = counter + 1; + }) + .on('error', (error) => { + reject(error); + }) + .on('end', () => { + resolve(counter); + }); + }); +} + +class FindEventsCommand { + + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeFindEvents()', profile.name); + + const graph = new Graph(profile.url); + graph.findEvents(profile.token, options.filter, options.sort, options.limit, options.skip) + .then((response) => { + if (response.success) { + let result = response.events; + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + {column: 'Entity ID', field: 'entityId', width: 40}, + {column: 'Entity Type', field: 'entityType', width: 30}, + {column: 'Event', field: 'event', width: 30}, + {column: 'Event Label', field: 'eventLabel', width: 30}, + {column: 'Event Time', field: 'eventTime', width: 20}, + ]; + + printTable(tableSpec, result); + } + } + else { + printError(`Failed to find entities: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to find entities: ${err.status} ${err.message}`, options); + }); + } +} + +class PublishEventsCommand { + constructor(program) { + this.program = program; + } + + execute(file, options) { + const profile = loadProfile(options.profile); + debug('%s.executePublishEvents()', profile.name); + + const graph = new Graph(profile.url); + let eventCount = 0; + const errors = []; + + const publishEvent = async (event, bar) => { + if (!event) return; + + debug('publishing event: ', event); + eventCount++; + + let rs; + if (options.tracking) { + rs = await graph.track(profile.token, event); + } + else { + rs = await graph.publishEntities(profile.token, event); + } + + if (!rs.success) errors.push(rs.message); + + // In the case of a stream ... bar is not used ... + if (!_.isEmpty(bar)){ + bar.tick(); + } + }; + + const processStream = (stream, resolve, reject, bar) => { + const tasks = []; + stream.pipe(split((s) => JSON.parse(JSON.stringify(s)))) + .on('data', (event) => tasks.push(publishEvent(event, bar))) + .on('error', (err) => reject(err)) + .on('end', () => Promise.all(tasks).then(() => { + printSuccess(`Processed ${eventCount} events with ${errors.length} errors`); + if (errors.length > 0) { + printError(`First error: ${errors[0]}`, options, false); + } + resolve({ eventCount, errors }); + }).catch(err => reject(err))); + }; + + if (file) { + return countLinesInFile(file) + .then((numEvents) => { + printSuccess(`Publishing ${numEvents} events from file ${file}`); + const bar = new ProgressBar( + 'publishing [:bar] :current/:total :rate evt/s :elapsed s', + { total: numEvents, width: 65 } + ); + + return new Promise((resolve, reject) => { + const stream = fs.createReadStream(file); + processStream(stream, resolve, reject, bar); + }); + }); + } + else { + return new Promise((resolve, reject) => { + process.stdin.resume(); + process.stdin.setEncoding('utf8'); + processStream(process.stdin, resolve, reject); + }); + } + } +} + +class GetEntityCommand { + + constructor(program) { + this.program = program; + } + + execute(entityId, options) { + const profile = loadProfile(options.profile); + debug('%s.executeGetEntity(%s)', profile.name, entityId); + + const graph = new Graph(profile.url); + graph.getEntity(profile.token, entityId) + .then((response) => { + if (response.success) { + let result = response.entity; + if (options.query) + result = filterObject(result, options); + + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to get entity: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to get entity: ${err.status} ${err.message}`, options); + }); + } +} + +class QueryGraphCommand { + + constructor(program) { + this.program = program; + } + + execute(query, options) { + const profile = loadProfile(options.profile); + debug('%s.executeQueryGraph(%s)', profile.name, query); + + const graph = new Graph(profile.url); + graph.query(profile.token, query) + .then((response) => { + if (response.success) { + const result = response.result; + const rows = result.values || []; + + debug('query result:', result); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const table = new Table( + result.columns.map(c => ({ value: c, headerColor : 'cyan', })), + rows, + { defaultValue: '---'}); + + printSuccess(query); + console.log(table.render()); + console.log(); + printSuccess(`Found ${rows.length} results in ${result.took} milliseconds`, options); + } + } + else { + printError(`Failed to execute query: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to execute query: ${err.status} ${err.message}`, options); + }); + } +} + +module.exports = { + FindEventsCommand, + PublishEventsCommand, + GetEntityCommand, + QueryGraphCommand, +}; diff --git a/src/commands/profiles.js b/src/commands/profiles.js new file mode 100644 index 00000000..5c2621e4 --- /dev/null +++ b/src/commands/profiles.js @@ -0,0 +1,283 @@ +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const _ = require('lodash'); +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Catalog = require('../client/catalog'); +const { Graph } = require('../client/graph'); +const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); + +class SaveProfileSchemaCommand { + + constructor(program) { + this.program = program; + } + + execute(profileSchema, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSaveProfileSchema(%s)', profile.name, profileSchema); + + const schemaStr = fs.readFileSync(profileSchema); + const schema = parseObject(schemaStr, options); + + const catalog = new Catalog(profile.url); + catalog.saveProfileSchema(profile.token, schema) + .then((response) => { + if (response.success) { + printSuccess(`Profile Schema saved`, options); + } else { + const {message, details} = response; + debug(`Failed to save profile schema: ${response.status} - ${message}`); + debug(response); + printError('Failed to save profile schema.', options, false); + if (details) { + printError('The following issues were found:', options, false); + const tableSpec = [ + {column: 'Path', field: 'path', width: 50}, + {column: 'Message', field: 'message', width: 100}, + ]; + printTable(tableSpec, details); + printError(''); // Just exit + } + } + }) + .catch((err) => { + printError(`Failed to save profile schema: ${err.status} ${err.response.body.error}`, options); + }); + } +} + +class ListProfileSchemasCommand { + + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListProfileSchemas()', profile.name); + + const { filter, sort, limit, skip } = options; + const catalog = new Catalog(profile.url); + catalog.listProfileSchemas(profile.token, filter, sort, limit, skip) + .then((response) => { + if (response.success) { + let result = response.schemas; + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const tableSpec = [ + {column: 'Title', field: 'title', width: 50}, + {column: 'Name', field: 'name', width: 50}, + {column: 'Version', field: '_version', width: 12} + ]; + + printTable(tableSpec, result); + } + } else { + printError(`Failed to list profile schemas: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list profile schemas: ${err.status} ${err.message}`, options); + }); + } +} + +class DescribeProfileSchemaCommand { + + constructor(program) { + this.program = program; + } + + execute(schemaName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDescribeProfileSchema(%s)', profile.name, schemaName); + + const catalog = new Catalog(profile.url); + catalog.describeProfileSchema(profile.token, schemaName) + .then((response) => { + if (response.success) { + let result = filterObject(response.schema, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe profile schema ${schemaName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe profile schema ${schemaName}: ${err.status} ${err.message}`, options); + }); + } +} + +class DeleteProfileSchemaCommand { + + constructor(program) { + this.program = program; + } + + execute(schemaName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteProfileSchema(%s)', profile.name, schemaName); + + const catalog = new Catalog(profile.url); + catalog.deleteProfileSchema(profile.token, schemaName) + .then((response) => { + if (response.success) { + debug(response.message); + printSuccess(`Profile Schema deleted.`, options); + } else { + printError(`Failed to delete profile schema ${schemaName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete profile schema ${schemaName}: ${err.status} ${err.message}`, options); + }); + } +} + +class ListProfilesCommand { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListProfiles()', profile.name); + + const { filter, sort, limit, skip } = options; + const graph = new Graph(profile.url); + graph.listProfiles(profile.token, filter, sort, limit, skip) + .then((response) => { + if (response.success) { + let result = response.profiles; + if (options.query) + result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + {column: 'Profile ID', field: 'profileId', width: 50}, + {column: 'Profile Schema', field: 'profileSchema', width: 50}, + {column: 'Version', field: 'version', width: 12}, + {column: 'Last Updated', field: 'updatedAt', width: 40} + ]; + + printTable(tableSpec, result); + } + } + else { + printError(`Failed to list profiles: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list profiles: ${err.status} ${err.message}`, options); + }); + } +} + +class DescribeProfileCommand { + constructor(program) { + this.program = program; + } + + execute(profileId, schemaName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDescribeProfile(%s)', profile.name, profileId); + + const graph = new Graph(profile.url); + graph.describeProfile(profile.token, profileId, schemaName) + .then((response) => { + if (response.success) { + let result = filterObject(response.profile, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe profile ${schemaName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe profile ${schemaName}: ${err.status} ${err.message}`, options); + }); + } +} + +class DeleteProfileCommand { + + constructor(program) { + this.program = program; + } + + execute(profileId, schemaName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteProfile(%s)', profile.name, profileId); + + const graph = new Graph(profile.url); + graph.deleteProfile(profile.token, profileId, schemaName) + .then((response) => { + if (response.success) { + printSuccess(`Profile deleted.`, options); + } else { + printError(`Failed to delete profile ${schemaName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete profile ${schemaName}: ${err.status} ${err.message}`, options); + }); + } +} + +class RebuildProfilesCommand { + + constructor(program) { + this.program = program; + } + + execute(schemaName, profileId, options) { + const profile = loadProfile(options.profile); + debug('%s.executeRebuildProfiles(%s)', profile.name, schemaName); + + const graph = new Graph(profile.url); + graph.rebuildProfiles(profile.token, schemaName, profileId, options.filter, options.sort, options.limit, options.skip) + .then((response) => { + if (response.success) { + printSuccess(response.message, options); + } else { + printError(`Failed to rebuild profile: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to rebuild profile: ${err.status} ${err.message}`, options); + }); + } +} + +module.exports = { + SaveProfileSchemaCommand, + ListProfileSchemasCommand, + DescribeProfileSchemaCommand, + DeleteProfileSchemaCommand, + ListProfilesCommand, + DescribeProfileCommand, + DeleteProfileCommand, + RebuildProfilesCommand, +}; diff --git a/src/commands/utils.js b/src/commands/utils.js index e68a65ea..21128583 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -152,7 +152,7 @@ module.exports.getSourceFiles = function(source, cb) { glob(normalizedPath, options, function (err, files) { // files is an array of filenames. if (err) { - cb(err); + cb(err, null); } else { const results = files.filter(path => fs.lstatSync(path).isFile()).map((path) => { return { @@ -161,7 +161,7 @@ module.exports.getSourceFiles = function(source, cb) { size: fs.lstatSync(path).size, }; }); - cb(results); + cb(null, results); } }); }; From 441bfe2c82107587b24d92501eaea135ff7f8802 Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Mon, 10 Jun 2019 11:17:36 -0500 Subject: [PATCH 099/864] use cortex generator version 0.3.20 --- package-lock.json | 551 ++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 269 insertions(+), 284 deletions(-) diff --git a/package-lock.json b/package-lock.json index dcdff053..93268caa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@c12e/generator-cortex": { - "version": "0.3.19", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.19.tgz", - "integrity": "sha1-MRkj6gRdKWjqI8vu6dsrbTX0oFE=", + "version": "0.3.20", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.20.tgz", + "integrity": "sha1-4WzF9AJda2xjzPnzfdlc78AB9eo=", "requires": { "debug": "^3.1.0", "joi": "^13.1.2", @@ -34,9 +34,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" } } }, @@ -126,7 +126,7 @@ }, "ansi-align": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "requires": { "string-width": "^2.0.0" @@ -139,7 +139,7 @@ }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { @@ -165,7 +165,7 @@ }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { @@ -175,17 +175,17 @@ }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-differ": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-differ/-/array-differ-1.0.0.tgz", "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" }, "array-union": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { "array-uniq": "^1.0.1" @@ -193,17 +193,17 @@ }, "array-uniq": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asn1": { @@ -216,7 +216,7 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assertion-error": { @@ -227,7 +227,7 @@ }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "ast-types": { @@ -245,7 +245,7 @@ }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { @@ -255,7 +255,7 @@ }, "aws-sign2": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { @@ -318,7 +318,7 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { @@ -337,7 +337,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -373,7 +373,7 @@ }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { "tweetnacl": "^0.14.3" @@ -431,7 +431,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -469,12 +469,12 @@ }, "buffer-equal-constant-time": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, "buffer-fill": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-fill/-/buffer-fill-1.0.0.tgz", "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "buffer-from": { @@ -484,7 +484,7 @@ }, "builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "bytes": { @@ -546,7 +546,7 @@ }, "call-me-maybe": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, "caller-path": { @@ -566,12 +566,12 @@ }, "camelcase": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chai": { @@ -609,7 +609,7 @@ }, "chardet": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.4.2.tgz", "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", "dev": true }, @@ -643,7 +643,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -653,12 +653,12 @@ }, "cli-boxes": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-1.0.0.tgz", "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" }, "cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { "restore-cursor": "^2.0.0" @@ -666,7 +666,7 @@ }, "cli-table": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", "requires": { "colors": "1.0.3" @@ -674,7 +674,7 @@ }, "cli-width": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-2.2.0.tgz", "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, "cliui": { @@ -689,23 +689,23 @@ }, "clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "clone-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, "clone-stats": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-1.0.0.tgz", "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" }, "cloneable-readable": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cloneable-readable/-/cloneable-readable-1.1.2.tgz", - "integrity": "sha1-1ZHe5Kj4vBXaQ86X3O66E9Q+KmU=", + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha1-EgoAywU7+2OiIucJ+Wg+ouEdjOw=", "requires": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", @@ -714,12 +714,12 @@ }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "co-prompt": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { "keypress": "~0.2.1" @@ -732,7 +732,7 @@ }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "^1.0.0", @@ -749,12 +749,12 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, "combined-stream": { @@ -772,7 +772,7 @@ }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { @@ -782,7 +782,7 @@ }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { @@ -816,12 +816,12 @@ }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cross-spawn": { @@ -867,7 +867,7 @@ }, "cyclist": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cyclist/-/cyclist-0.2.2.tgz", "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" }, "dargs": { @@ -877,7 +877,7 @@ }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "^1.0.0" @@ -918,12 +918,12 @@ }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "requires": { "mimic-response": "^1.0.0" @@ -1019,7 +1019,7 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { @@ -1029,7 +1029,7 @@ }, "detect-conflict": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-conflict/-/detect-conflict-1.0.1.tgz", "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" }, "diff": { @@ -1057,12 +1057,12 @@ }, "duplexer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, "duplexer3": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { @@ -1078,7 +1078,7 @@ }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { "jsbn": "~0.1.0", @@ -1116,7 +1116,7 @@ }, "encoding": { "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { "iconv-lite": "~0.4.13" @@ -1132,7 +1132,7 @@ }, "err-code": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-1.1.2.tgz", "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" }, "errlop": { @@ -1145,7 +1145,7 @@ }, "error": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error/-/error-7.0.2.tgz", "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", "requires": { "string-template": "~0.2.1", @@ -1167,7 +1167,7 @@ }, "es6-promisify": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "^4.0.3" @@ -1175,7 +1175,7 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { @@ -1362,7 +1362,7 @@ }, "event-stream": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "requires": { "duplexer": "~0.1.1", @@ -1376,7 +1376,7 @@ }, "execa": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { "cross-spawn": "^5.0.1", @@ -1390,7 +1390,7 @@ "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { "lru-cache": "^4.0.1", @@ -1402,7 +1402,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "^2.3.3", @@ -1424,7 +1424,7 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -1432,7 +1432,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -1447,7 +1447,7 @@ }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "^1.0.0", @@ -1492,7 +1492,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -1500,7 +1500,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -1536,12 +1536,12 @@ }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-glob": { @@ -1559,7 +1559,7 @@ }, "fast-json-stable-stringify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { @@ -1574,7 +1574,7 @@ }, "figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { "escape-string-regexp": "^1.0.5" @@ -1597,7 +1597,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "^2.0.1", @@ -1608,7 +1608,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -1631,7 +1631,7 @@ }, "first-chunk-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { "readable-stream": "^2.0.2" @@ -1660,12 +1660,12 @@ }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { @@ -1685,7 +1685,7 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "^0.2.2" @@ -1693,12 +1693,12 @@ }, "from": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" }, "from2": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { "inherits": "^2.0.1", @@ -1707,7 +1707,7 @@ }, "fs-write-stream-atomic": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { "graceful-fs": "^4.1.2", @@ -1718,7 +1718,7 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "ftp": { @@ -1772,7 +1772,7 @@ }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-uri": { @@ -1815,12 +1815,12 @@ }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "^1.0.0" @@ -1837,7 +1837,7 @@ }, "github-username": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-username/-/github-username-4.1.0.tgz", "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", "requires": { "gh-got": "^6.0.0" @@ -1858,7 +1858,7 @@ }, "glob-parent": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { "is-glob": "^3.1.0", @@ -1867,7 +1867,7 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { "is-extglob": "^2.1.0" @@ -1877,12 +1877,12 @@ }, "glob-to-regexp": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, "global-dirs": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "requires": { "ini": "^1.3.4" @@ -1936,7 +1936,7 @@ }, "grouped-queue": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grouped-queue/-/grouped-queue-0.3.3.tgz", "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", "requires": { "lodash": "^4.17.2" @@ -1950,7 +1950,7 @@ }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { @@ -1999,7 +1999,7 @@ }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "^2.0.6", @@ -2009,7 +2009,7 @@ }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "^3.0.0", @@ -2018,7 +2018,7 @@ "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "^1.1.5" @@ -2080,7 +2080,7 @@ }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "^1.0.0", @@ -2114,7 +2114,7 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "^2.0.0" @@ -2130,7 +2130,7 @@ }, "iferr": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iferr/-/iferr-0.1.5.tgz", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "ignore": { @@ -2140,12 +2140,12 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -2154,7 +2154,7 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { @@ -2196,12 +2196,12 @@ }, "ip": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "^3.0.2" @@ -2209,7 +2209,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2219,7 +2219,7 @@ }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { @@ -2229,7 +2229,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "^3.0.2" @@ -2237,7 +2237,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2264,17 +2264,17 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { @@ -2287,7 +2287,7 @@ }, "is-installed-globally": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "requires": { "global-dirs": "^0.1.0", @@ -2296,7 +2296,7 @@ }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" @@ -2304,7 +2304,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2314,12 +2314,12 @@ }, "is-object": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-object/-/is-object-1.0.1.tgz", "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" }, "is-path-inside": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { "path-is-inside": "^1.0.1" @@ -2327,7 +2327,7 @@ }, "is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, "is-plain-object": { @@ -2340,7 +2340,7 @@ }, "is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-resolvable": { @@ -2351,12 +2351,12 @@ }, "is-retry-allowed": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-scoped": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "requires": { "scoped-regex": "^1.0.0" @@ -2364,17 +2364,17 @@ }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { @@ -2384,7 +2384,7 @@ }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { @@ -2405,17 +2405,17 @@ }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istextorbinary": { @@ -2439,7 +2439,7 @@ }, "jmespath": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "joi": { @@ -2469,7 +2469,7 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-parse-better-errors": { @@ -2479,7 +2479,7 @@ }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { @@ -2495,7 +2495,7 @@ }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsonparse": { @@ -2534,7 +2534,7 @@ }, "jsprim": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", @@ -2564,7 +2564,7 @@ }, "keypress": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keypress/-/keypress-0.2.1.tgz", "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" }, "kind-of": { @@ -2591,7 +2591,7 @@ }, "load-json-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { "graceful-fs": "^4.1.2", @@ -2621,37 +2621,37 @@ }, "lodash.includes": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.includes/-/lodash.includes-4.3.0.tgz", "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" }, "lodash.isboolean": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" }, "lodash.isinteger": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" }, "lodash.isnumber": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" }, "lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, "lodash.isstring": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, "lodash.once": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, "log-symbols": { @@ -2712,17 +2712,17 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-stream": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "^1.0.0" @@ -2747,7 +2747,7 @@ }, "mem-fs": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", "requires": { "through2": "^2.0.0", @@ -2757,17 +2757,17 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-stats": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "replace-ext": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "through2": { @@ -2781,7 +2781,7 @@ }, "vinyl": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { "clone": "^1.0.0", @@ -2827,7 +2827,7 @@ }, "methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { @@ -2888,7 +2888,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mississippi": { @@ -2940,7 +2940,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -2948,7 +2948,7 @@ "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } @@ -3025,7 +3025,7 @@ }, "move-concurrently": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { "aproba": "^1.1.1", @@ -3038,12 +3038,12 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multimatch": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/multimatch/-/multimatch-2.1.0.tgz", "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "requires": { "array-differ": "^1.0.0", @@ -3054,7 +3054,7 @@ }, "mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nanomatch": { @@ -3138,7 +3138,7 @@ }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "^2.0.0" @@ -3156,13 +3156,13 @@ }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "^0.1.0", @@ -3172,7 +3172,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -3180,7 +3180,7 @@ }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -3190,7 +3190,7 @@ }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" @@ -3198,7 +3198,7 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" @@ -3206,7 +3206,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -3214,7 +3214,7 @@ }, "onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { "mimic-fn": "^1.0.0" @@ -3235,7 +3235,7 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { @@ -3274,7 +3274,7 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { @@ -3298,7 +3298,7 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-is-promise": { @@ -3324,7 +3324,7 @@ }, "p-timeout": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-1.2.1.tgz", "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", "requires": { "p-finally": "^1.0.0" @@ -3379,7 +3379,7 @@ }, "parallel-transform": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parallel-transform/-/parallel-transform-1.1.0.tgz", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { "cyclist": "~0.2.2", @@ -3389,7 +3389,7 @@ }, "parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { "error-ex": "^1.3.1", @@ -3398,32 +3398,32 @@ }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-dirname": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { @@ -3464,7 +3464,7 @@ }, "pause-stream": { "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { "through": "~2.3" @@ -3472,22 +3472,22 @@ }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { "pinkie": "^2.0.0" @@ -3501,7 +3501,7 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { @@ -3511,7 +3511,7 @@ }, "prepend-http": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "pretty-bytes": { @@ -3531,12 +3531,12 @@ }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { "err-code": "^1.0.0", @@ -3580,7 +3580,7 @@ }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { @@ -3630,7 +3630,7 @@ }, "querystring": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "raw-body": { @@ -3662,7 +3662,7 @@ }, "read-pkg": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "requires": { "load-json-file": "^4.0.0", @@ -3695,7 +3695,7 @@ }, "rechoir": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { "resolve": "^1.1.6" @@ -3718,7 +3718,7 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { @@ -3728,12 +3728,12 @@ }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "replace-ext": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, "request": { @@ -3796,9 +3796,9 @@ } }, "resolve": { - "version": "1.10.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.10.1.tgz", - "integrity": "sha1-ZkhCrJYHlbvnWCIc3M2mH7ZLXxg=", + "version": "1.11.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha1-6hDYEQN2mC/vV434/DC5rDCgej4=", "requires": { "path-parse": "^1.0.6" } @@ -3811,12 +3811,12 @@ }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { "onetime": "^2.0.0", @@ -3830,7 +3830,7 @@ }, "retry": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.10.1.tgz", "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "rewire": { @@ -3852,7 +3852,7 @@ }, "run-async": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { "is-promise": "^2.1.0" @@ -3860,7 +3860,7 @@ }, "run-queue": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { "aproba": "^1.1.1" @@ -3868,13 +3868,13 @@ }, "rx-lite": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rx-lite/-/rx-lite-4.0.8.tgz", "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", "dev": true }, "rx-lite-aggregates": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { @@ -3896,7 +3896,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "~0.1.10" @@ -3909,7 +3909,7 @@ }, "scoped-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/scoped-regex/-/scoped-regex-1.0.0.tgz", "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" }, "semver": { @@ -3935,7 +3935,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -3950,7 +3950,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "^1.0.0" @@ -3958,7 +3958,7 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shelljs": { @@ -3973,12 +3973,12 @@ }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slash": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "slice-ansi": { @@ -4030,7 +4030,7 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -4038,7 +4038,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -4058,7 +4058,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -4102,7 +4102,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -4130,7 +4130,7 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { @@ -4147,7 +4147,7 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { @@ -4180,7 +4180,7 @@ }, "split": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "requires": { "through": "2" @@ -4196,7 +4196,7 @@ }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { @@ -4225,7 +4225,7 @@ }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "^0.2.5", @@ -4234,7 +4234,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -4249,7 +4249,7 @@ }, "stream-combiner": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "requires": { "duplexer": "~0.1.1" @@ -4266,7 +4266,7 @@ }, "stream-shift": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "stream-transform": { @@ -4276,7 +4276,7 @@ }, "string-template": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-template/-/string-template-0.2.1.tgz", "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" }, "string-width": { @@ -4298,7 +4298,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" @@ -4306,12 +4306,12 @@ }, "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "strip-bom-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { "first-chunk-stream": "^2.0.0", @@ -4320,7 +4320,7 @@ "dependencies": { "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { "is-utf8": "^0.2.0" @@ -4330,7 +4330,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { @@ -4459,7 +4459,7 @@ }, "term-size": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/term-size/-/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "requires": { "execa": "^0.7.0" @@ -4467,7 +4467,7 @@ }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "textextensions": { @@ -4477,7 +4477,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { @@ -4495,7 +4495,7 @@ }, "timed-out": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "tmp": { @@ -4508,7 +4508,7 @@ }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "^3.0.2" @@ -4516,7 +4516,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -4537,7 +4537,7 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "^3.0.0", @@ -4615,7 +4615,7 @@ }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "^5.0.1" @@ -4623,7 +4623,7 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { @@ -4642,12 +4642,12 @@ }, "typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "union-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "requires": { "arr-union": "^3.1.0", @@ -4658,7 +4658,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -4666,7 +4666,7 @@ }, "set-value": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { "extend-shallow": "^2.0.1", @@ -4700,7 +4700,7 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "^0.3.1", @@ -4709,7 +4709,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "^2.0.3", @@ -4719,7 +4719,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" @@ -4729,7 +4729,7 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" } } @@ -4749,12 +4749,12 @@ }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "url": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "requires": { "punycode": "1.3.2", @@ -4763,14 +4763,14 @@ "dependencies": { "punycode": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } }, "url-parse-lax": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { "prepend-http": "^1.0.1" @@ -4778,7 +4778,7 @@ }, "url-to-options": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-to-options/-/url-to-options-1.0.1.tgz", "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, "use": { @@ -4788,7 +4788,7 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { @@ -4807,7 +4807,7 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "^1.0.3" @@ -4815,7 +4815,7 @@ }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", @@ -4838,7 +4838,7 @@ }, "vinyl-file": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", "requires": { "graceful-fs": "^4.1.2", @@ -4851,27 +4851,27 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-stats": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "replace-ext": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { "is-utf8": "^0.2.0" @@ -4879,7 +4879,7 @@ }, "vinyl": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { "clone": "^1.0.0", @@ -4984,7 +4984,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { @@ -5003,7 +5003,7 @@ }, "xtend": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { @@ -5013,7 +5013,7 @@ }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { @@ -5168,21 +5168,6 @@ "text-table": "^0.2.0", "through2": "^3.0.0", "yeoman-environment": "^2.0.5" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } } } } diff --git a/package.json b/package.json index bf665b0b..5416fb29 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.19", + "@c12e/generator-cortex": "0.3.20", "boxen": "1.3.0", "chalk": "2.4.2", "cli-table": "0.3.1", From 6f08295c2703ff7146d75315b85117f3fe7da224 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 10 Jun 2019 12:08:21 -0500 Subject: [PATCH 100/864] Initial impl for getting logs from actions if the provider supports it (#194) * Initial impl for getting logs from actions if the provider supports it * use printSucess --- bin/cortex-actions.js | 26 ++++++++++++++++++++++---- src/client/actions.js | 17 +++++++++++++++++ src/commands/actions.js | 25 ++++++++++++++++++++++++- 3 files changed, 63 insertions(+), 5 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index cf63a2a7..b1c26237 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -25,13 +25,14 @@ const { ListActionsCommand, DescribeActionCommand, DeleteActionCommand, - InvokeActionCommand, DeployActionCommand, - TaskLogsActionCommand, - TaskCancelActionCommand, - TaskStatusActionCommand, + GetLogsCommand, + InvokeActionCommand, JobTaskListActionCommand, + TaskCancelActionCommand, + TaskLogsActionCommand, TaskStatsActionCommand, + TaskStatusActionCommand, } = require('../src/commands/actions'); program.description('Work with Cortex Actions'); @@ -90,6 +91,23 @@ program } })); +// Get logs Action +program + .command('logs ') + .description('Get logs for an action') + .option('--no-compat', 'Ignore API compatibility checks') + .option( '--json', 'Return raw JSON response') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((actionName, options) => { + try { + new GetLogsCommand(program).execute(actionName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + // Invoke Action program .command('invoke ') diff --git a/src/client/actions.js b/src/client/actions.js index 3fd31aec..8a32b93c 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -128,6 +128,23 @@ module.exports = class Actions { }); } + getLogsAction(token, actionName) { + const endpoint = `${this.endpointV3}/${actionName}/logs`; + debug('getLogsAction(%s) => %s', actionName, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, logs: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + deleteAction(token, actionName, actionType) { let endpoint = `${this.endpointV3}/${actionName}`; if (actionType) { diff --git a/src/commands/actions.js b/src/commands/actions.js index 794390d5..66ec7187 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +const _ = require('lodash'); const fs = require('fs'); const uuid = require('uuid/v4'); const debug = require('debug')('cortex:cli'); @@ -343,3 +343,26 @@ module.exports.ListTaskByActivation = class { } }; +module.exports.GetLogsCommand = class { + constructor(program) { + this.program = program; + } + + execute(jobId, options) { + const profile = loadProfile(options.profile); + debug('%s.getLogsActions (%s, %s)', profile.name, jobId); + const actions = new Actions(profile.url); + actions.getLogsAction(profile.token, jobId) + .then((response) => { + if (response.success) { + if (options.json) { + return printSuccess(JSON.stringify(response, null, 2), options); + } + const logsStr = _.get(response,'logs',[]).join('/n'); + printSuccess(logsStr, options); + } else { + printError(`Action get logs failed: ${response.status} ${response.message}`, options); + } + }) + } +}; From bb6d4eea982999d668f2def1e1fca69d34859c03 Mon Sep 17 00:00:00 2001 From: Dave Wisecup Date: Tue, 11 Jun 2019 14:48:50 -0500 Subject: [PATCH 101/864] exclude daemon generate --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 93268caa..73c5ffb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@c12e/generator-cortex": { - "version": "0.3.20", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.20.tgz", - "integrity": "sha1-4WzF9AJda2xjzPnzfdlc78AB9eo=", + "version": "0.3.19", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.19.tgz", + "integrity": "sha1-MRkj6gRdKWjqI8vu6dsrbTX0oFE=", "requires": { "debug": "^3.1.0", "joi": "^13.1.2", diff --git a/package.json b/package.json index 5416fb29..bf665b0b 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.20", + "@c12e/generator-cortex": "0.3.19", "boxen": "1.3.0", "chalk": "2.4.2", "cli-table": "0.3.1", From f913354cf26fc130737786b1860e3ed82ef2b468 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Thu, 20 Jun 2019 11:46:08 -0500 Subject: [PATCH 102/864] CCF-11612 add connection query command (#198) * CCF-11612 add connection query command * CCF-11612 add file option to query command * CCF-11612 support mongo and managed content connection queries * CCF-11612 update cli version --- bin/cortex-connections.js | 19 +++++++++++++ package-lock.json | 2 +- package.json | 2 +- src/client/connections.js | 18 +++++++++++++ src/commands/connections.js | 53 +++++++++++++++++++++++++++++++++++++ 5 files changed, 92 insertions(+), 2 deletions(-) diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index dee84418..b88726a2 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -24,6 +24,7 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { ListConnections, SaveConnectionCommand, + QueryConnectionCommand, DescribeConnectionCommand, TestConnectionCommand, ListConnectionsTypes, @@ -68,6 +69,24 @@ program } })); +// Query Connection +program + .command('query ') + .description('Query a connection.') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'The query to use, "select 1" is default') + .option('--file [file]', 'Location of file containing query string') + .action(withCompatibilityCheck((connName, options) => { + try { + new QueryConnectionCommand(program).execute(connName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + // Describe Connection program .command('describe ') diff --git a/package-lock.json b/package-lock.json index 73c5ffb4..1186913b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.17", + "version": "0.12.18", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index bf665b0b..38c88b2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.17", + "version": "0.12.18", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/connections.js b/src/client/connections.js index 33428af5..facae436 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -25,6 +25,24 @@ module.exports = class Connections { this.endpoint = `${cortexUrl}/v2/connections`; } + queryConnection(token, connectionName, queryObject) { + const queryEndpoint = `${this.endpoint}/${connectionName}/query` + // console.log('queryConnection(%s) => %s', connectionName, queryEndpoint); + return request + .post(queryEndpoint) + .set('Authorization', `Bearer ${token}`) + .send(queryObject) + .then((res) => { + if (res.ok) { + return {success: true, message: res.body}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + listConnections(token) { const endpoint = `${this.endpoint}`; return request diff --git a/src/commands/connections.js b/src/commands/connections.js index e1658f31..f4878a22 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -282,6 +282,59 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { } }; +module.exports.QueryConnectionCommand = class QueryConnectionCommand { + + constructor(program) { + this.program = program; + } + + execute(connectionName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeQueryConnection(%s)', profile.name, connectionName); + + debug('params: %o', options); + + let queryObject = {}; + + if(options.file) { + options.query = fs.readFileSync(options.file, 'UTF-8'); + } + + if(!options.query) { + options.query = 'select 1'; + } + + try { + queryObject = JSON.parse(options.query); + + if(queryObject.filter) { + queryObject.filter = JSON.stringify(queryObject.filter); + } + if(queryObject.sort) { + queryObject.sort = JSON.stringify(queryObject.sort); + } + } catch (err) { + queryObject.query = options.query; + } + + debug('queryParams: %o', queryObject); + + const connections = new Connections(profile.url); + connections.queryConnection(profile.token, connectionName, queryObject) + .then((response) => { + if (response.success) { + printSuccess(JSON.stringify(response.message, null, 2), options); + } + else { + printError(`Failed to query connection: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to query connection: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.GenerateConnectionCommand = class GenerateConnectionCommand { constructor(program) { From 76d424a7a72fc5720792194143ac869865d6f4da Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Thu, 20 Jun 2019 16:27:54 -0500 Subject: [PATCH 103/864] CCF-11612 update based on review comments (#199) --- src/client/connections.js | 2 +- src/commands/connections.js | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/client/connections.js b/src/client/connections.js index facae436..007c878d 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -27,7 +27,7 @@ module.exports = class Connections { queryConnection(token, connectionName, queryObject) { const queryEndpoint = `${this.endpoint}/${connectionName}/query` - // console.log('queryConnection(%s) => %s', connectionName, queryEndpoint); + debug('queryConnection(%s) => %s', connectionName, queryEndpoint); return request .post(queryEndpoint) .set('Authorization', `Bearer ${token}`) diff --git a/src/commands/connections.js b/src/commands/connections.js index f4878a22..83ed5ae5 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -295,17 +295,18 @@ module.exports.QueryConnectionCommand = class QueryConnectionCommand { debug('params: %o', options); let queryObject = {}; + let queryInput = options.query; if(options.file) { - options.query = fs.readFileSync(options.file, 'UTF-8'); + queryInput = fs.readFileSync(options.file, 'UTF-8'); } - if(!options.query) { - options.query = 'select 1'; + if(!queryInput) { + queryInput = 'select 1'; } try { - queryObject = JSON.parse(options.query); + queryObject = JSON.parse(queryInput); if(queryObject.filter) { queryObject.filter = JSON.stringify(queryObject.filter); @@ -314,7 +315,7 @@ module.exports.QueryConnectionCommand = class QueryConnectionCommand { queryObject.sort = JSON.stringify(queryObject.sort); } } catch (err) { - queryObject.query = options.query; + queryObject.query = queryInput; } debug('queryParams: %o', queryObject); From 143b932b6d104cdcd016af255e19848fa5b6e9e3 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Tue, 25 Jun 2019 19:27:34 -0500 Subject: [PATCH 104/864] CCF-9044 add TTL option to actions deployment (#197) --- bin/cortex-actions.js | 1 + src/client/actions.js | 7 ++++--- src/commands/actions.js | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index b1c26237..62bbb019 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -142,6 +142,7 @@ program .option('--docker [image]', 'Docker image to use as the runner') .option('--memory [memory]', 'Action memory limit in megabytes') .option('--vcpus [vcpus]', 'Action vcpus limit in integer') + .option('--ttl [ttl]', 'Daemon time to live') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--actionType [actionType]', 'Type of action') diff --git a/src/client/actions.js b/src/client/actions.js index 8a32b93c..28859e87 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -54,13 +54,13 @@ module.exports = class Actions { }); } - async deployAction(token, actionName, docker, kind, code, memory, vcpus, actionType, command, port, environment, environmentVariables, pushDocker) { + async deployAction(token, actionName, docker, kind, code, memory, vcpus, ttl, actionType, command, port, environment, environmentVariables, pushDocker) { let endpoint = `${this.endpointV3}`; if (actionType) { endpoint = `${endpoint}?actionType=${actionType}`; } - debug('deployAction(%s, docker=%s, kind=%s, code=%s, memory=%s, vcpus=%s) => %s', - actionName, docker, kind, code, memory, vcpus, endpoint); + debug('deployAction(%s, docker=%s, kind=%s, code=%s, memory=%s, vcpus=%s, ttl=%s) => %s', + actionName, docker, kind, code, memory, vcpus, ttl, endpoint); try { docker = await this._maybePushDockerImage(docker, token, pushDocker); @@ -77,6 +77,7 @@ module.exports = class Actions { if (kind) req.field('kind', kind); if (memory) req.field('memory', memory); if (vcpus) req.field('vcpus', vcpus); + if (ttl) req.field('ttl', ttl); if (code) req.attach('code', code); if (command) req.field('command', command); if (port) req.field('port', port); diff --git a/src/commands/actions.js b/src/commands/actions.js index 66ec7187..d5f09465 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -105,6 +105,7 @@ module.exports.DeployActionCommand = class { const code = options.code; const memory = parseInt(options.memory); const vcpus = parseInt(options.vcpus); + const ttl = options.ttl; const actionType = options.actionType; const cmd = options.cmd; const port = options.port; @@ -113,7 +114,7 @@ module.exports.DeployActionCommand = class { const pushDocker = options.pushDocker; const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, actionType, cmd, port, environment, environmentVariables, pushDocker) + actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, ttl, actionType, cmd, port, environment, environmentVariables, pushDocker) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); From 8c082bafcde579407ecf8cdfde36d1bb18120bf1 Mon Sep 17 00:00:00 2001 From: Matt Sanchez Date: Wed, 26 Jun 2019 15:33:09 -0500 Subject: [PATCH 105/864] Big fixes and enhancements for graph and profiles (#200) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop --- bin/cortex-graph.js | 3 + package-lock.json | 1915 +++++++++++++++++++------------------ package.json | 11 +- src/client/experiments.js | 2 +- src/client/graph.js | 9 +- src/commands/graph.js | 168 +++- src/commands/profiles.js | 10 +- src/commands/utils.js | 30 + 8 files changed, 1154 insertions(+), 994 deletions(-) diff --git a/bin/cortex-graph.js b/bin/cortex-graph.js index 8d978d21..7b9fe947 100755 --- a/bin/cortex-graph.js +++ b/bin/cortex-graph.js @@ -60,6 +60,9 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--tracking', 'Enable tracking event mode.') + .option('--transform [templates]', 'Apply transform templates to the input JSON records.') + .option('--dry-run', "Simulate the publish (but don't actually send events to the server).") + .option('--auto', "Enable auto attribute creation using each entity property as an attribute value.") .action(withCompatibilityCheck(async (file, options) => { await new PublishEventsCommand(program).execute(file, options) .catch(err => console.error(chalk.red(err.message))); diff --git a/package-lock.json b/package-lock.json index 1186913b..9e6e23a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.19.tgz", "integrity": "sha1-MRkj6gRdKWjqI8vu6dsrbTX0oFE=", "requires": { - "debug": "^3.1.0", - "joi": "^13.1.2", - "superagent": "^3.8.2", - "yeoman-generator": "^3.1.1" + "debug": "3.2.6", + "joi": "13.7.0", + "superagent": "3.8.2", + "yeoman-generator": "3.2.0" }, "dependencies": { "debug": { @@ -20,7 +20,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "joi": { @@ -28,9 +28,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.7.0.tgz", "integrity": "sha1-z9hev+Z+ihkAQyQAtNA7vZP7h58=", "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "hoek": "5.0.4", + "isemail": "3.2.0", + "topo": "3.0.3" } }, "ms": { @@ -45,8 +45,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" } }, "@nodelib/fs.stat": { @@ -59,15 +59,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-8.10.48.tgz", "integrity": "sha1-44UHNWFkOpumGZoZhf/ANTD5B4E=" }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "acorn": { "version": "5.7.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-5.7.3.tgz", @@ -80,7 +71,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -96,7 +87,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", "requires": { - "es6-promisify": "^5.0.0" + "es6-promisify": "5.0.0" } }, "agentkeepalive": { @@ -104,7 +95,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-3.5.2.tgz", "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", "requires": { - "humanize-ms": "^1.2.1" + "humanize-ms": "1.2.1" } }, "ajv": { @@ -112,10 +103,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.10.0.tgz", "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=", "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ajv-keywords": { @@ -129,7 +120,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "requires": { - "string-width": "^2.0.0" + "string-width": "2.1.1" } }, "ansi-escapes": { @@ -147,7 +138,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "aproba": { @@ -160,7 +151,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -188,7 +179,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -211,7 +202,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.4.tgz", "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert-plus": { @@ -240,7 +231,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-2.6.2.tgz", "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=", "requires": { - "lodash": "^4.17.11" + "lodash": "4.17.11" } }, "asynckit": { @@ -269,9 +260,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-regex": { @@ -292,11 +283,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "strip-ansi": { @@ -305,7 +296,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "supports-color": { @@ -326,13 +317,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.3.0", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -340,7 +331,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -348,7 +339,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -356,7 +347,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -364,9 +355,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } } } @@ -376,7 +367,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "binaryextensions": { @@ -394,13 +385,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-1.3.0.tgz", "integrity": "sha1-VcbDmouljZxhrSLNh3Uy3rZlogs=", "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.4.2", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.1" } }, "brace-expansion": { @@ -408,7 +399,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -417,16 +408,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -434,7 +425,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -444,7 +435,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.3.tgz", "integrity": "sha1-ceCRu7eLtO8APPPtKy4GLGkn990=", "requires": { - "wcwidth": "^1.0.1" + "wcwidth": "1.0.1" } }, "browser-stdout": { @@ -458,8 +449,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" + "buffer-alloc-unsafe": "1.1.0", + "buffer-fill": "1.0.0" } }, "buffer-alloc-unsafe": { @@ -497,20 +488,20 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-11.3.2.tgz", "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", "requires": { - "bluebird": "^3.5.3", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "bluebird": "3.5.4", + "chownr": "1.1.1", + "figgy-pudding": "3.5.1", + "glob": "7.1.4", + "graceful-fs": "4.1.15", + "lru-cache": "5.1.1", + "mississippi": "3.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.3", + "ssri": "6.0.1", + "unique-filename": "1.1.1", + "y18n": "4.0.0" }, "dependencies": { "lru-cache": { @@ -518,7 +509,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", "requires": { - "yallist": "^3.0.2" + "yallist": "3.0.3" } }, "yallist": { @@ -533,15 +524,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.3.0", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" } }, "call-me-maybe": { @@ -555,7 +546,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsites": { @@ -580,12 +571,12 @@ "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chai-as-promised": { @@ -594,7 +585,7 @@ "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", "dev": true, "requires": { - "check-error": "^1.0.2" + "check-error": "1.0.2" } }, "chalk": { @@ -602,9 +593,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "chardet": { @@ -635,10 +626,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -646,7 +637,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -661,7 +652,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-table": { @@ -682,9 +673,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-4.1.0.tgz", "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "clone": { @@ -707,9 +698,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha1-EgoAywU7+2OiIucJ+Wg+ouEdjOw=", "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" + "inherits": "2.0.3", + "process-nextick-args": "2.0.0", + "readable-stream": "2.3.6" } }, "co": { @@ -722,7 +713,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { - "keypress": "~0.2.1" + "keypress": "0.2.1" } }, "code-point-at": { @@ -735,8 +726,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -762,7 +753,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -790,10 +781,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "cookiejar": { @@ -806,12 +797,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.3", + "run-queue": "1.0.3" } }, "copy-descriptor": { @@ -829,11 +820,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "csv": { @@ -841,10 +832,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-4.0.0.tgz", "integrity": "sha1-x95EuaD9R/ehDbJAZFGfZCp86S0=", "requires": { - "csv-generate": "^2.2.2", - "csv-parse": "^3.1.2", - "csv-stringify": "^4.3.1", - "stream-transform": "^1.0.7" + "csv-generate": "2.2.2", + "csv-parse": "3.2.0", + "csv-stringify": "4.3.1", + "stream-transform": "1.0.8" } }, "csv-generate": { @@ -862,7 +853,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-stringify/-/csv-stringify-4.3.1.tgz", "integrity": "sha1-e+4290bvVV3Ugac1qeKTiWX4R4s=", "requires": { - "lodash.get": "~4.4.2" + "lodash.get": "4.4.2" } }, "cyclist": { @@ -880,7 +871,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "data-uri-to-buffer": { @@ -888,7 +879,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/data-uri-to-buffer/-/data-uri-to-buffer-2.0.1.tgz", "integrity": "sha1-yo9W/jix/TKUc+nRtKmvzYzhwEU=", "requires": { - "@types/node": "^8.0.7" + "@types/node": "8.10.48" } }, "dateformat": { @@ -901,7 +892,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" }, "dependencies": { "ms": { @@ -926,7 +917,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "1.0.1" } }, "deep-eql": { @@ -935,7 +926,7 @@ "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-extend": { @@ -953,7 +944,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { - "clone": "^1.0.2" + "clone": "1.0.4" }, "dependencies": { "clone": { @@ -968,8 +959,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -977,7 +968,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -985,7 +976,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -993,9 +984,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } } } @@ -1005,9 +996,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" + "ast-types": "0.12.4", + "escodegen": "1.11.1", + "esprima": "3.1.3" }, "dependencies": { "esprima": { @@ -1042,8 +1033,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.0.0.tgz", "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "arrify": "1.0.1", + "path-type": "3.0.0" } }, "doctrine": { @@ -1052,7 +1043,7 @@ "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "duplexer": { @@ -1070,10 +1061,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" } }, "ecc-jsbn": { @@ -1081,8 +1072,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ecdsa-sig-formatter": { @@ -1090,7 +1081,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha1-rg8PothQRe8UqBfao86azQSJ5b8=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "editions": { @@ -1098,8 +1089,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/editions/-/editions-2.1.3.tgz", "integrity": "sha1-cnzPPsLHsS3MZSxxAA8WxIJNb30=", "requires": { - "errlop": "^1.1.1", - "semver": "^5.6.0" + "errlop": "1.1.1", + "semver": "5.7.0" }, "dependencies": { "semver": { @@ -1119,7 +1110,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "0.4.24" } }, "end-of-stream": { @@ -1127,7 +1118,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "err-code": { @@ -1140,7 +1131,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/errlop/-/errlop-1.1.1.tgz", "integrity": "sha1-2a5MdsPmSVbF155uA11jQ7/WIlA=", "requires": { - "editions": "^2.1.2" + "editions": "2.1.3" } }, "error": { @@ -1148,8 +1139,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error/-/error-7.0.2.tgz", "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" + "string-template": "0.2.1", + "xtend": "4.0.1" } }, "error-ex": { @@ -1157,7 +1148,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es6-promise": { @@ -1170,7 +1161,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { - "es6-promise": "^4.0.3" + "es6-promise": "4.2.6" } }, "escape-string-regexp": { @@ -1183,11 +1174,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-1.11.1.tgz", "integrity": "sha1-xIX/jWtM24nif0qFbpHxGEAcpRA=", "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.6.1" }, "dependencies": { "esprima": { @@ -1209,44 +1200,44 @@ "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", "dev": true, "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.2", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.2.6", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.4", + "globals": "11.12.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.10.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "regexpp": "1.1.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" }, "dependencies": { "ajv": { @@ -1255,10 +1246,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "cross-spawn": { @@ -1267,9 +1258,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.5", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "debug": { @@ -1278,7 +1269,7 @@ "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "fast-deep-equal": { @@ -1307,8 +1298,8 @@ "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-visitor-keys": { @@ -1323,8 +1314,8 @@ "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.3", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -1338,7 +1329,7 @@ "integrity": "sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -1347,7 +1338,7 @@ "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -1365,13 +1356,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", + "duplexer": "0.1.1", + "from": "0.1.7", + "map-stream": "0.1.0", "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" + "split": "0.3.3", + "stream-combiner": "0.0.4", + "through": "2.3.8" } }, "execa": { @@ -1379,13 +1370,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" }, "dependencies": { "cross-spawn": { @@ -1393,9 +1384,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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" + "lru-cache": "4.1.5", + "shebang-command": "1.2.0", + "which": "1.3.1" } } } @@ -1405,13 +1396,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "debug": { @@ -1427,7 +1418,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -1435,7 +1426,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1450,8 +1441,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -1459,7 +1450,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -1470,9 +1461,9 @@ "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "extglob": { @@ -1480,14 +1471,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -1495,7 +1486,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -1503,7 +1494,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -1511,7 +1502,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -1519,7 +1510,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -1527,9 +1518,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } } } @@ -1549,12 +1540,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-2.2.6.tgz", "integrity": "sha1-pdW2l+yN7aRo2Fp0A1KQoCWpUpU=", "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "@mrmlnc/readdir-enhanced": "2.2.1", + "@nodelib/fs.stat": "1.1.3", + "glob-parent": "3.1.0", + "is-glob": "4.0.1", + "merge2": "1.2.3", + "micromatch": "3.1.10" } }, "fast-json-stable-stringify": { @@ -1577,7 +1568,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -1586,8 +1577,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.4", + "object-assign": "4.1.1" } }, "file-uri-to-path": { @@ -1600,10 +1591,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -1611,7 +1602,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1626,7 +1617,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-3.0.0.tgz", "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "first-chunk-stream": { @@ -1634,7 +1625,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { - "readable-stream": "^2.0.2" + "readable-stream": "2.3.6" } }, "flat-cache": { @@ -1643,10 +1634,10 @@ "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", "dev": true, "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "graceful-fs": "4.1.15", + "rimraf": "2.6.3", + "write": "0.2.1" } }, "flush-write-stream": { @@ -1654,8 +1645,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "for-in": { @@ -1673,9 +1664,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-2.3.3.tgz", "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "asynckit": "0.4.0", + "combined-stream": "1.0.7", + "mime-types": "2.1.24" } }, "formidable": { @@ -1688,7 +1679,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "from": { @@ -1701,8 +1692,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "fs-write-stream-atomic": { @@ -1710,10 +1701,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "graceful-fs": "4.1.15", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.6" } }, "fs.realpath": { @@ -1726,7 +1717,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { - "readable-stream": "1.1.x", + "readable-stream": "1.1.14", "xregexp": "2.0.0" }, "dependencies": { @@ -1740,10 +1731,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.3", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "string_decoder": { @@ -1780,12 +1771,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-uri/-/get-uri-2.0.3.tgz", "integrity": "sha1-+hM1Iml4HXUWLG/IE8npBTI/urU=", "requires": { - "data-uri-to-buffer": "2", - "debug": "4", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "3" + "data-uri-to-buffer": "2.0.1", + "debug": "4.1.1", + "extend": "3.0.2", + "file-uri-to-path": "1.0.0", + "ftp": "0.3.10", + "readable-stream": "3.3.0" }, "dependencies": { "debug": { @@ -1793,7 +1784,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -1806,9 +1797,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.3.0.tgz", "integrity": "sha1-y4ARqtAC63F78EApH+uoVpyYb7k=", "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "inherits": "2.0.3", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } } } @@ -1823,7 +1814,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "gh-got": { @@ -1831,8 +1822,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-6.0.0.tgz", "integrity": "sha1-10NTAExuxGZkdSChC9RvcpnSaNA=", "requires": { - "got": "^7.0.0", - "is-plain-obj": "^1.1.0" + "got": "7.1.0", + "is-plain-obj": "1.1.0" } }, "github-username": { @@ -1840,7 +1831,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-username/-/github-username-4.1.0.tgz", "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", "requires": { - "gh-got": "^6.0.0" + "gh-got": "6.0.0" } }, "glob": { @@ -1848,12 +1839,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.4.tgz", "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-parent": { @@ -1861,8 +1852,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -1870,7 +1861,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -1885,7 +1876,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "requires": { - "ini": "^1.3.4" + "ini": "1.3.5" } }, "globals": { @@ -1899,13 +1890,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-8.0.2.tgz", "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", "requires": { - "array-union": "^1.0.1", + "array-union": "1.0.2", "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "fast-glob": "2.2.6", + "glob": "7.1.4", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" } }, "got": { @@ -1913,20 +1904,20 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-7.1.0.tgz", "integrity": "sha1-BUUP2ECU5rvqVvRRpDqcKJFmOFo=", "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" } }, "graceful-fs": { @@ -1939,7 +1930,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grouped-queue/-/grouped-queue-0.3.3.tgz", "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", "requires": { - "lodash": "^4.17.2" + "lodash": "4.17.11" } }, "growl": { @@ -1958,8 +1949,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "ajv": "6.10.0", + "har-schema": "2.0.0" } }, "has-ansi": { @@ -1968,7 +1959,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { @@ -1994,7 +1985,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha1-oEWrOD17SyASoAFIqwql8pAETU0=", "requires": { - "has-symbol-support-x": "^1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-value": { @@ -2002,9 +1993,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" } }, "has-values": { @@ -2012,8 +2003,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "kind-of": { @@ -2021,7 +2012,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2052,10 +2043,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", + "statuses": "1.5.0", "toidentifier": "1.0.0" } }, @@ -2064,7 +2055,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", "requires": { - "agent-base": "4", + "agent-base": "4.2.1", "debug": "3.1.0" }, "dependencies": { @@ -2083,9 +2074,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.16.1" } }, "https-proxy-agent": { @@ -2093,8 +2084,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" + "agent-base": "4.2.1", + "debug": "3.2.6" }, "dependencies": { "debug": { @@ -2102,7 +2093,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -2117,7 +2108,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { - "ms": "^2.0.0" + "ms": "2.0.0" } }, "iconv-lite": { @@ -2125,7 +2116,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "iferr": { @@ -2148,8 +2139,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -2168,20 +2159,20 @@ "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.2.0", + "chalk": "2.4.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "interpret": { @@ -2204,7 +2195,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2212,7 +2203,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2232,7 +2223,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2240,7 +2231,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2250,9 +2241,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -2282,7 +2273,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-installed-globally": { @@ -2290,8 +2281,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" } }, "is-number": { @@ -2299,7 +2290,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2307,7 +2298,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2322,7 +2313,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-plain-obj": { @@ -2335,7 +2326,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "is-promise": { @@ -2359,7 +2350,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "requires": { - "scoped-regex": "^1.0.0" + "scoped-regex": "1.0.0" } }, "is-stream": { @@ -2392,7 +2383,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-3.0.3.tgz", "integrity": "sha1-XW3vPt6/boyoyunDAYOoBLX4voA=", "requires": { - "buffer-alloc": "^1.2.0" + "buffer-alloc": "1.2.0" } }, "isemail": { @@ -2400,7 +2391,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isemail/-/isemail-3.2.0.tgz", "integrity": "sha1-WTEKAhkxqfsGu7UeFVzgs/I2gyw=", "requires": { - "punycode": "2.x.x" + "punycode": "2.1.1" } }, "isexe": { @@ -2423,9 +2414,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-2.5.1.tgz", "integrity": "sha1-FKM4JM9rnV13Q+rBvivSwxDQzL0=", "requires": { - "binaryextensions": "^2.1.2", - "editions": "^2.1.3", - "textextensions": "^2.4.0" + "binaryextensions": "2.1.2", + "editions": "2.1.3", + "textextensions": "2.4.0" } }, "isurl": { @@ -2433,8 +2424,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isurl/-/isurl-1.0.0.tgz", "integrity": "sha1-sn9PSfPNqj6kSgpbfzRi5u3DnWc=", "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" } }, "jmespath": { @@ -2447,9 +2438,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.1.0.tgz", "integrity": "sha1-Wee4cUuTKh40LDWD1YQdcWn/GCI=", "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "hoek": "5.0.4", + "isemail": "3.2.0", + "topo": "3.0.3" } }, "js-tokens": { @@ -2459,12 +2450,12 @@ "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "version": "3.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha1-LnhEFka9RoLpY/IrbpKCPDCcYtw=", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -2498,37 +2489,43 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + "jsonpath": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonpath/-/jsonpath-1.0.2.tgz", + "integrity": "sha1-5qrmgdA+mne0ZR1dlurF/GOx/RM=", + "requires": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.7.0" + }, + "dependencies": { + "esprima": { + "version": "1.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" + } + } }, "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha1-AOceC431TCEhofJhN98igGc7zA0=", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" + "version": "8.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz", + "integrity": "sha1-BWyQ7ummXtbmxy3bCh0yUQmq9kM=", + "requires": { + "jws": "3.2.2", + "lodash.includes": "4.3.0", + "lodash.isboolean": "3.0.3", + "lodash.isinteger": "4.0.4", + "lodash.isnumber": "3.0.3", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.once": "4.1.1", + "ms": "2.1.2" }, "dependencies": { "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "semver": { - "version": "5.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", - "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" } } }, @@ -2550,7 +2547,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "jws": { @@ -2558,8 +2555,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jws/-/jws-3.2.2.tgz", "integrity": "sha1-ABCZ82OUaMlBQADpmZX6UvtHgwQ=", "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" + "jwa": "1.4.1", + "safe-buffer": "5.1.2" } }, "keypress": { @@ -2577,7 +2574,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lcid/-/lcid-2.0.0.tgz", "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", "requires": { - "invert-kv": "^2.0.0" + "invert-kv": "2.0.0" } }, "levn": { @@ -2585,8 +2582,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "load-json-file": { @@ -2594,10 +2591,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "graceful-fs": "4.1.15", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" } }, "locate-path": { @@ -2605,8 +2602,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -2659,7 +2656,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", "requires": { - "chalk": "^2.0.1" + "chalk": "2.4.2" } }, "lowercase-keys": { @@ -2672,8 +2669,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "make-dir": { @@ -2681,7 +2678,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "make-fetch-happen": { @@ -2689,17 +2686,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", "integrity": "sha1-FBSXy4ePJDupMTbIPYq6EsIWwIM=", "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.0.1", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" + "agentkeepalive": "3.5.2", + "cacache": "11.3.2", + "http-cache-semantics": "3.8.1", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "2.2.1", + "lru-cache": "4.1.5", + "mississippi": "3.0.0", + "node-fetch-npm": "2.0.2", + "promise-retry": "1.1.1", + "socks-proxy-agent": "4.0.2", + "ssri": "6.0.1" } }, "map-age-cleaner": { @@ -2707,7 +2704,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", "requires": { - "p-defer": "^1.0.0" + "p-defer": "1.0.0" } }, "map-cache": { @@ -2725,7 +2722,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "mem": { @@ -2733,9 +2730,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem/-/mem-4.3.0.tgz", "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" + "map-age-cleaner": "0.1.3", + "mimic-fn": "2.1.0", + "p-is-promise": "2.1.0" }, "dependencies": { "mimic-fn": { @@ -2750,9 +2747,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", "requires": { - "through2": "^2.0.0", - "vinyl": "^1.1.0", - "vinyl-file": "^2.0.0" + "through2": "2.0.5", + "vinyl": "1.2.0", + "vinyl-file": "2.0.0" }, "dependencies": { "clone": { @@ -2775,8 +2772,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } }, "vinyl": { @@ -2784,8 +2781,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", + "clone": "1.0.4", + "clone-stats": "0.0.1", "replace-ext": "0.0.1" } } @@ -2796,17 +2793,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", "integrity": "sha1-UZciQWQL6FZ2gKBPetr/5fxgNmc=", "requires": { - "commondir": "^1.0.1", - "deep-extend": "^0.6.0", - "ejs": "^2.5.9", - "glob": "^7.0.3", - "globby": "^8.0.1", - "isbinaryfile": "^3.0.2", - "mkdirp": "^0.5.0", - "multimatch": "^2.0.0", - "rimraf": "^2.2.8", - "through2": "^2.0.0", - "vinyl": "^2.0.1" + "commondir": "1.0.1", + "deep-extend": "0.6.0", + "ejs": "2.6.1", + "glob": "7.1.4", + "globby": "8.0.2", + "isbinaryfile": "3.0.3", + "mkdirp": "0.5.1", + "multimatch": "2.1.0", + "rimraf": "2.6.3", + "through2": "2.0.5", + "vinyl": "2.2.0" }, "dependencies": { "through2": { @@ -2814,8 +2811,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } } } @@ -2835,19 +2832,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "mime": { @@ -2883,7 +2880,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -2896,16 +2893,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "concat-stream": "1.6.2", + "duplexify": "3.7.1", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.1.1", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "3.0.0", + "pumpify": "1.5.1", + "stream-each": "1.2.3", + "through2": "2.0.5" }, "dependencies": { "through2": { @@ -2913,8 +2910,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.1" } } } @@ -2924,8 +2921,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -2933,7 +2930,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -2993,12 +2990,12 @@ "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "has-flag": { @@ -3013,7 +3010,7 @@ "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -3028,12 +3025,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.3", + "run-queue": "1.0.3" } }, "ms": { @@ -3046,10 +3043,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/multimatch/-/multimatch-2.1.0.tgz", "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" + "array-differ": "1.0.0", + "array-union": "1.0.2", + "arrify": "1.0.1", + "minimatch": "3.0.4" } }, "mute-stream": { @@ -3062,17 +3059,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "natural-compare": { @@ -3096,9 +3093,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" + "encoding": "0.1.12", + "json-parse-better-errors": "1.0.2", + "safe-buffer": "5.1.2" } }, "normalize-package-data": { @@ -3106,10 +3103,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.7.1", + "resolve": "1.11.1", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.4" } }, "npm-package-arg": { @@ -3117,23 +3114,22 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-6.1.0.tgz", "integrity": "sha1-Fa4eJ1ilAn77TCUFVLhac323/ME=", "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "2.7.1", + "osenv": "0.1.5", + "semver": "5.5.0", + "validate-npm-package-name": "3.0.0" } }, "npm-registry-fetch": { - "version": "3.9.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz", - "integrity": "sha1-RNhBeA4oM/BqzLNEiPjHRQ0aaFY=", + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-3.2.0.tgz", + "integrity": "sha1-lOyFnE3Tlfkk5XXO5HHab9OQbVM=", "requires": { - "JSONStream": "^1.3.4", - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "lru-cache": "^4.1.3", - "make-fetch-happen": "^4.0.1", - "npm-package-arg": "^6.1.0" + "bluebird": "3.5.4", + "figgy-pudding": "3.5.1", + "lru-cache": "4.1.5", + "make-fetch-happen": "4.0.1", + "npm-package-arg": "6.1.0" } }, "npm-run-path": { @@ -3141,7 +3137,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -3165,9 +3161,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -3175,7 +3171,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "kind-of": { @@ -3183,7 +3179,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -3193,7 +3189,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" } }, "object.pick": { @@ -3201,7 +3197,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "once": { @@ -3209,7 +3205,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -3217,7 +3213,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "optionator": { @@ -3225,12 +3221,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-homedir": { @@ -3243,9 +3239,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-locale/-/os-locale-3.1.0.tgz", "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "execa": "1.0.0", + "lcid": "2.0.0", + "mem": "4.3.0" }, "dependencies": { "execa": { @@ -3253,13 +3249,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-1.0.0.tgz", "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "6.0.5", + "get-stream": "4.1.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, "get-stream": { @@ -3267,7 +3263,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", "requires": { - "pump": "^3.0.0" + "pump": "3.0.0" } } } @@ -3282,8 +3278,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/osenv/-/osenv-0.1.5.tgz", "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "p-cancelable": { @@ -3311,7 +3307,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", "requires": { - "p-try": "^2.0.0" + "p-try": "2.2.0" } }, "p-locate": { @@ -3319,7 +3315,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.2.0" } }, "p-timeout": { @@ -3327,7 +3323,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-1.2.1.tgz", "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", "requires": { - "p-finally": "^1.0.0" + "p-finally": "1.0.0" } }, "p-try": { @@ -3340,14 +3336,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", "integrity": "sha1-EdV4tyoWStdL+dW6yf9GKjgoJDI=", "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" + "agent-base": "4.2.1", + "debug": "3.2.6", + "get-uri": "2.0.3", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "2.2.1", + "pac-resolver": "3.0.0", + "raw-body": "2.4.0", + "socks-proxy-agent": "4.0.2" }, "dependencies": { "debug": { @@ -3355,7 +3351,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -3370,11 +3366,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-resolver/-/pac-resolver-3.0.0.tgz", "integrity": "sha1-auoweH2wqJFwTet4AKcip2FabyY=", "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" + "co": "4.6.0", + "degenerator": "1.0.4", + "ip": "1.1.5", + "netmask": "1.0.6", + "thunkify": "2.1.2" } }, "parallel-transform": { @@ -3382,9 +3378,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parallel-transform/-/parallel-transform-1.1.0.tgz", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.6" } }, "parse-json": { @@ -3392,8 +3388,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, "pascalcase": { @@ -3453,7 +3449,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" } }, "pathval": { @@ -3467,7 +3463,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { - "through": "~2.3" + "through": "2.3.8" } }, "performance-now": { @@ -3490,7 +3486,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pluralize": { @@ -3525,9 +3521,9 @@ "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" }, "progress": { - "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" }, "promise-inflight": { "version": "1.0.1", @@ -3539,8 +3535,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" + "err-code": "1.1.2", + "retry": "0.10.1" } }, "proxy-agent": { @@ -3548,14 +3544,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-agent/-/proxy-agent-3.1.0.tgz", "integrity": "sha1-PPhu6RHJSHTeQ1nzfv2d4lFXwRM=", "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "pac-proxy-agent": "^3.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" + "agent-base": "4.2.1", + "debug": "3.2.6", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "2.2.1", + "lru-cache": "4.1.5", + "pac-proxy-agent": "3.0.0", + "proxy-from-env": "1.0.0", + "socks-proxy-agent": "4.0.2" }, "dependencies": { "debug": { @@ -3563,7 +3559,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -3593,8 +3589,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } }, "pumpify": { @@ -3602,9 +3598,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "duplexify": "3.7.1", + "inherits": "2.0.3", + "pump": "2.0.1" }, "dependencies": { "pump": { @@ -3612,8 +3608,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-2.0.1.tgz", "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } } } @@ -3649,8 +3645,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-chunk/-/read-chunk-3.2.0.tgz", "integrity": "sha1-KYSv54ypv7vbdLGTh7+ehiicFso=", "requires": { - "pify": "^4.0.1", - "with-open-file": "^0.1.6" + "pify": "4.0.1", + "with-open-file": "0.1.6" }, "dependencies": { "pify": { @@ -3665,9 +3661,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "load-json-file": "4.0.0", + "normalize-package-data": "2.5.0", + "path-type": "3.0.0" } }, "read-pkg-up": { @@ -3675,8 +3671,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-4.0.0.tgz", "integrity": "sha1-GyIcYIi6d5lgHICPkRYcZuWPiXg=", "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" + "find-up": "3.0.0", + "read-pkg": "3.0.0" } }, "readable-stream": { @@ -3684,13 +3680,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "rechoir": { @@ -3698,7 +3694,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "^1.1.6" + "resolve": "1.11.1" } }, "regex-not": { @@ -3706,8 +3702,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpp": { @@ -3741,26 +3737,26 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/request/-/request-2.88.0.tgz", "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", "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.0", - "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.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.3", + "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.24", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" }, "dependencies": { "qs": { @@ -3791,8 +3787,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" } }, "resolve": { @@ -3800,7 +3796,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.11.1.tgz", "integrity": "sha1-6hDYEQN2mC/vV434/DC5rDCgej4=", "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -3819,8 +3815,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "ret": { @@ -3839,7 +3835,7 @@ "integrity": "sha1-uhEA1ACp2nWf5Zn8bgIz8Iee1to=", "dev": true, "requires": { - "eslint": "^4.19.1" + "eslint": "4.19.1" } }, "rimraf": { @@ -3847,7 +3843,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", "requires": { - "glob": "^7.1.3" + "glob": "7.1.4" } }, "run-async": { @@ -3855,7 +3851,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-queue": { @@ -3863,7 +3859,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { - "aproba": "^1.1.1" + "aproba": "1.2.0" } }, "rx-lite": { @@ -3878,7 +3874,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "rxjs": { @@ -3886,7 +3882,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", "requires": { - "tslib": "^1.9.0" + "tslib": "1.9.3" } }, "safe-buffer": { @@ -3899,7 +3895,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -3927,10 +3923,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.0.tgz", "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -3938,7 +3934,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -3953,7 +3949,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -3966,9 +3962,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shelljs/-/shelljs-0.8.3.tgz", "integrity": "sha1-p/MxlSDr8J7oEnWyNorbKGZZsJc=", "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "glob": "7.1.4", + "interpret": "1.2.0", + "rechoir": "0.6.2" } }, "signal-exit": { @@ -3987,7 +3983,7 @@ "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "smart-buffer": { @@ -4000,9 +3996,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smartwrap/-/smartwrap-1.0.11.tgz", "integrity": "sha1-7o+Fh4v6yJwfpNoz4Id/cpqOKnQ=", "requires": { - "breakword": "^1.0.3", - "wcwidth": "^1.0.1", - "yargs": "^12.0.5" + "breakword": "1.0.3", + "wcwidth": "1.0.1", + "yargs": "12.0.5" } }, "snapdragon": { @@ -4010,14 +4006,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.2", + "use": "3.1.1" }, "dependencies": { "debug": { @@ -4033,7 +4029,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -4041,7 +4037,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4051,9 +4047,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -4061,7 +4057,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -4069,7 +4065,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -4077,7 +4073,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -4085,9 +4081,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } } } @@ -4097,7 +4093,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4105,7 +4101,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4115,7 +4111,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.3.2.tgz", "integrity": "sha1-reOI6ebYf9sRZJwVdGxXiSKliD4=", "requires": { - "ip": "^1.1.5", + "ip": "1.1.5", "smart-buffer": "4.0.2" } }, @@ -4124,8 +4120,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" + "agent-base": "4.2.1", + "socks": "2.3.2" } }, "source-map": { @@ -4138,11 +4134,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -4155,8 +4151,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.4" } }, "spdx-exceptions": { @@ -4169,8 +4165,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.2.0", + "spdx-license-ids": "3.0.4" } }, "spdx-license-ids": { @@ -4183,7 +4179,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "requires": { - "through": "2" + "through": "2.3.8" } }, "split-string": { @@ -4191,7 +4187,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -4204,15 +4200,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", "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" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "ssri": { @@ -4220,7 +4216,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-6.0.1.tgz", "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", "requires": { - "figgy-pudding": "^3.5.1" + "figgy-pudding": "3.5.1" + } + }, + "static-eval": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha1-LRdZMGsb76aIk4RUxUa3hx+AakI=", + "requires": { + "escodegen": "1.11.1" } }, "static-extend": { @@ -4228,8 +4232,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -4237,7 +4241,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -4252,7 +4256,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "requires": { - "duplexer": "~0.1.1" + "duplexer": "0.1.1" } }, "stream-each": { @@ -4260,8 +4264,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" } }, "stream-shift": { @@ -4284,8 +4288,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "string_decoder": { @@ -4293,7 +4297,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -4301,7 +4305,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-bom": { @@ -4314,8 +4318,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { - "first-chunk-stream": "^2.0.0", - "strip-bom": "^2.0.0" + "first-chunk-stream": "2.0.0", + "strip-bom": "2.0.0" }, "dependencies": { "strip-bom": { @@ -4323,7 +4327,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } } } @@ -4344,16 +4348,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-3.8.2.tgz", "integrity": "sha1-5KEbnQR/fT7+s7vlNtnsACHRZAM=", "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.1.1", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.0.5" + "component-emitter": "1.3.0", + "cookiejar": "2.1.2", + "debug": "3.2.6", + "extend": "3.0.2", + "form-data": "2.3.3", + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.6.0", + "qs": "6.7.0", + "readable-stream": "2.3.6" }, "dependencies": { "debug": { @@ -4361,7 +4365,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -4377,7 +4381,7 @@ "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", "dev": true, "requires": { - "path-to-regexp": "^1.1.0" + "path-to-regexp": "1.7.0" } }, "superagent-proxy": { @@ -4385,8 +4389,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-proxy/-/superagent-proxy-2.0.0.tgz", "integrity": "sha1-n1dRXNZg4unOVcDmvXD5LrB8PuA=", "requires": { - "debug": "^3.1.0", - "proxy-agent": "3" + "debug": "3.2.6", + "proxy-agent": "3.1.0" }, "dependencies": { "debug": { @@ -4394,7 +4398,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -4414,7 +4418,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "table": { @@ -4423,12 +4427,12 @@ "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", "dev": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.2", + "lodash": "4.17.11", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" }, "dependencies": { "ajv": { @@ -4437,10 +4441,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "fast-deep-equal": { @@ -4462,7 +4466,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/term-size/-/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "requires": { - "execa": "^0.7.0" + "execa": "0.7.0" } }, "text-table": { @@ -4485,7 +4489,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-3.0.1.tgz", "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", "requires": { - "readable-stream": "2 || 3" + "readable-stream": "2.3.6" } }, "thunkify": { @@ -4503,7 +4507,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-object-path": { @@ -4511,7 +4515,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4519,7 +4523,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4529,10 +4533,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -4540,8 +4544,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" } }, "toidentifier": { @@ -4554,7 +4558,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/topo/-/topo-3.0.3.tgz", "integrity": "sha1-1aZ/suaTB+vusIQC7Coqb1962Vw=", "requires": { - "hoek": "6.x.x" + "hoek": "6.1.3" }, "dependencies": { "hoek": { @@ -4569,8 +4573,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.31", + "punycode": "1.4.1" }, "dependencies": { "punycode": { @@ -4590,12 +4594,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tty-table/-/tty-table-2.7.0.tgz", "integrity": "sha1-DgOzdDWgQKntj3g6m7yalmCSHp8=", "requires": { - "chalk": "^2.4.2", - "csv": "^4.0.0", - "smartwrap": "^1.0.11", - "strip-ansi": "^5.0.0", - "wcwidth": "^1.0.1", - "yargs": "^12.0.5" + "chalk": "2.4.2", + "csv": "4.0.0", + "smartwrap": "1.0.11", + "strip-ansi": "5.2.0", + "wcwidth": "1.0.1", + "yargs": "12.0.5" }, "dependencies": { "ansi-regex": { @@ -4608,7 +4612,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } } } @@ -4618,7 +4622,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -4631,7 +4635,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -4645,15 +4649,20 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "underscore": { + "version": "1.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + }, "union-value": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" }, "dependencies": { "extend-shallow": { @@ -4661,7 +4670,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "set-value": { @@ -4669,10 +4678,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" } } } @@ -4682,7 +4691,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "requires": { - "unique-slug": "^2.0.0" + "unique-slug": "2.0.1" } }, "unique-slug": { @@ -4690,7 +4699,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.1.tgz", "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", "requires": { - "imurmurhash": "^0.1.4" + "imurmurhash": "0.1.4" } }, "unpipe": { @@ -4703,8 +4712,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -4712,9 +4721,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -4744,7 +4753,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" } }, "urix": { @@ -4773,7 +4782,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } }, "url-to-options": { @@ -4801,8 +4810,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.1.0", + "spdx-expression-parse": "3.0.0" } }, "validate-npm-package-name": { @@ -4810,7 +4819,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { - "builtins": "^1.0.3" + "builtins": "1.0.3" } }, "verror": { @@ -4818,9 +4827,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "vinyl": { @@ -4828,12 +4837,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha1-2FsH2pbkWNJbL/4Z/s6fLKoT7YY=", "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "clone": "2.1.2", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.1.3", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" } }, "vinyl-file": { @@ -4841,12 +4850,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0", - "strip-bom-stream": "^2.0.0", - "vinyl": "^1.1.0" + "graceful-fs": "4.1.15", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0", + "strip-bom-stream": "2.0.0", + "vinyl": "1.2.0" }, "dependencies": { "clone": { @@ -4874,7 +4883,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "vinyl": { @@ -4882,8 +4891,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", + "clone": "1.0.4", + "clone-stats": "0.0.1", "replace-ext": "0.0.1" } } @@ -4894,7 +4903,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { - "defaults": "^1.0.3" + "defaults": "1.0.3" } }, "which": { @@ -4902,7 +4911,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -4915,7 +4924,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-2.0.1.tgz", "integrity": "sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w=", "requires": { - "string-width": "^2.1.1" + "string-width": "2.1.1" } }, "with-open-file": { @@ -4923,9 +4932,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/with-open-file/-/with-open-file-0.1.6.tgz", "integrity": "sha1-C8F47Kt19rqsiuEcheB0RdaQ6lA=", "requires": { - "p-finally": "^1.0.0", - "p-try": "^2.1.0", - "pify": "^4.0.1" + "p-finally": "1.0.0", + "p-try": "2.2.0", + "pify": "4.0.1" }, "dependencies": { "pify": { @@ -4945,8 +4954,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "ansi-regex": { @@ -4959,7 +4968,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -4967,9 +4976,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -4977,7 +4986,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -4993,7 +5002,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "xregexp": { @@ -5021,18 +5030,18 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-12.0.5.tgz", "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "3.0.0", + "get-caller-file": "1.0.3", + "os-locale": "3.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "11.1.1" } }, "yargs-parser": { @@ -5040,8 +5049,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-11.1.1.tgz", "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.3.1", + "decamelize": "1.2.0" }, "dependencies": { "camelcase": { @@ -5056,21 +5065,21 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.3.4.tgz", "integrity": "sha1-rhVhR6G4Xek5Nm5UOLAMs+tUw+k=", "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "diff": "^3.5.0", - "escape-string-regexp": "^1.0.2", - "globby": "^8.0.1", - "grouped-queue": "^0.3.3", - "inquirer": "^6.0.0", - "is-scoped": "^1.0.0", - "lodash": "^4.17.10", - "log-symbols": "^2.2.0", - "mem-fs": "^1.1.0", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "untildify": "^3.0.3" + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "globby": "8.0.2", + "grouped-queue": "0.3.3", + "inquirer": "6.3.1", + "is-scoped": "1.0.0", + "lodash": "4.17.11", + "log-symbols": "2.2.0", + "mem-fs": "1.1.3", + "strip-ansi": "4.0.0", + "text-table": "0.2.0", + "untildify": "3.0.3" }, "dependencies": { "ansi-regex": { @@ -5088,7 +5097,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "external-editor": { @@ -5096,9 +5105,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.0.3.tgz", "integrity": "sha1-WGbbKal4Jtvkvzr9JAcOrZ6kOic=", "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "inquirer": { @@ -5106,19 +5115,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-6.3.1.tgz", "integrity": "sha1-ekE7XnlQgRATo9tJHGHR87d26Oc=", "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.11", + "ansi-escapes": "3.2.0", + "chalk": "2.4.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.3", + "figures": "2.0.0", + "lodash": "4.17.11", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.5.1", + "string-width": "2.1.1", + "strip-ansi": "5.2.0", + "through": "2.3.8" }, "dependencies": { "strip-ansi": { @@ -5126,7 +5135,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } } } @@ -5143,31 +5152,31 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-generator/-/yeoman-generator-3.2.0.tgz", "integrity": "sha1-Agd9LX/yj+3B7X2tf5ln/Xw2BMw=", "requires": { - "async": "^2.6.0", - "chalk": "^2.3.0", - "cli-table": "^0.3.1", - "cross-spawn": "^6.0.5", - "dargs": "^6.0.0", - "dateformat": "^3.0.3", - "debug": "^4.1.0", - "detect-conflict": "^1.0.0", - "error": "^7.0.2", - "find-up": "^3.0.0", - "github-username": "^4.0.0", - "istextorbinary": "^2.2.1", - "lodash": "^4.17.10", - "make-dir": "^1.1.0", - "mem-fs-editor": "^5.0.0", - "minimist": "^1.2.0", - "pretty-bytes": "^5.1.0", - "read-chunk": "^3.0.0", - "read-pkg-up": "^4.0.0", - "rimraf": "^2.6.2", - "run-async": "^2.0.0", - "shelljs": "^0.8.0", - "text-table": "^0.2.0", - "through2": "^3.0.0", - "yeoman-environment": "^2.0.5" + "async": "2.6.2", + "chalk": "2.4.2", + "cli-table": "0.3.1", + "cross-spawn": "6.0.5", + "dargs": "6.1.0", + "dateformat": "3.0.3", + "debug": "4.1.1", + "detect-conflict": "1.0.1", + "error": "7.0.2", + "find-up": "3.0.0", + "github-username": "4.1.0", + "istextorbinary": "2.5.1", + "lodash": "4.17.11", + "make-dir": "1.3.0", + "mem-fs-editor": "5.1.0", + "minimist": "1.2.0", + "pretty-bytes": "5.2.0", + "read-chunk": "3.2.0", + "read-pkg-up": "4.0.0", + "rimraf": "2.6.3", + "run-async": "2.3.0", + "shelljs": "0.8.3", + "text-table": "0.2.0", + "through2": "3.0.1", + "yeoman-environment": "2.3.4" } } } diff --git a/package.json b/package.json index 38c88b2d..a393a8b8 100644 --- a/package.json +++ b/package.json @@ -39,18 +39,19 @@ "is-installed-globally": "0.1.0", "jmespath": "0.15.0", "joi": "13.1.0", - "js-yaml": "3.13.1", - "jsonwebtoken": "8.5.1", + "js-yaml": "3.10.0", + "jsonpath": "^1.0.2", + "jsonwebtoken": "8.3.0", "lodash": "4.17.11", "moment": "^2.24.0", - "npm-registry-fetch": "3.9.0", - "progress": "2.0.3", + "npm-registry-fetch": "3.2.0", + "progress": "2.0.0", "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", + "superagent-proxy": "^2.0.0", "superagent-throttle": "^1.0.1", "tty-table": "^2.7.0", - "superagent-proxy": "^2.0.0", "url": "0.11.0", "uuid": "3.3.2", "yeoman-environment": "2.3.4" diff --git a/src/client/experiments.js b/src/client/experiments.js index 4f814238..5ce82212 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); +const request = require('superagent'); const debug = require('debug')('cortex:cli'); const ProgressBar = require('progress'); const { constructError } = require('../commands/utils'); diff --git a/src/client/graph.js b/src/client/graph.js index 3d3a59ac..e2344aec 100644 --- a/src/client/graph.js +++ b/src/client/graph.js @@ -14,12 +14,12 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const Throttle = require('superagent-throttle'); const debug = require('debug')('cortex:cli'); const _ = require('lodash'); const chalk = require('chalk'); const { constructError } = require('../commands/utils'); +const { request } = require('../commands/apiutils'); const createEndpoints = (baseUri) => { return { @@ -80,7 +80,7 @@ class Graph { .set('Authorization', `Bearer ${token}`) .set('x-cortex-proxy-notify', true); - if (schemaName) req.query({ schema: schemaName }); + if (schemaName) req.query({ schemaNames: schemaName }); return req.then((res) => { if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) @@ -96,11 +96,10 @@ class Graph { } deleteProfile(token, profileId, schemaName) { - const endpoint = `${this.endpoints.profiles}/${profileId}`; - debug('deleteProfile(%s) => DELETE %s', profileId, endpoint); + debug('deleteProfile(%s) => DELETE %s', profileId, this.endpoints.profiles); const req = request - .delete(endpoint) + .delete(this.endpoints.profiles) .set('Authorization', `Bearer ${token}`) .set('x-cortex-proxy-notify', true); diff --git a/src/commands/graph.js b/src/commands/graph.js index d1fb60a2..a4460b89 100644 --- a/src/commands/graph.js +++ b/src/commands/graph.js @@ -15,33 +15,114 @@ */ const _ = require('lodash'); -const debug = require('debug')('cortex:cli'); +const debug = require('debug')('cortex:cli:graph'); const split = require('split'); const fs = require('fs'); const Table = require('tty-table'); const ProgressBar = require('progress'); +const jp = require('jsonpath'); +const path = require('path'); const { loadProfile } = require('../config'); const { Graph } = require('../client/graph'); -const { printSuccess, printError, filterObject, printTable } = require('./utils'); +const { printSuccess, printError, filterObject, countLinesInFile, printTable } = require('./utils'); -function countLinesInFile(file){ - return new Promise((resolve, reject) => { - let counter = -1; - fs - .createReadStream(file) - .pipe(split()) - .on('data', (doesntMatter) => { - counter = counter + 1; - }) - .on('error', (error) => { - reject(error); - }) - .on('end', () => { - resolve(counter); - }); +const _reserved = ['$match', '$path', '$transform', '$name']; +const _systemEvents = ['$set', '$unset', '$delete']; +const applyTemplate = (t, target) => { + const { $match, $path, $transform, $name } = t; + + debug('applying template to target:', target); + + // Match condition, if specified, this must eval to true, otherwise the template is skipped + if ($match) { + debug(`checking $match for ${$name}: ${$match}`); + let match = true; + const queryTarget = [target]; + for (let m of $match) { + const paths = jp.query(queryTarget, m); + match = paths && paths.length > 0; + } + + if (!match) return null; + if ($name) debug(`Matched template ${$name}: ${$match}`); + } + + // A custom transformation, expecting $path + $transform where $transform is a function taking a single param + if ($path) { + const val = jp.value(target, $path); + if ($transform) return $transform(val); + return val; + } + + const result = {}; + const keys = Object.keys(t); + keys.forEach((k) => { + // Skip over reserved keys + if (_reserved.indexOf(k) !== -1) return; + + const q = t[k]; + debug('q:', q); + + // Hardcoded event using a system event type + if (k == 'event' && _systemEvents.indexOf(q) !== -1) { + result[k] = q; + return; + } + + if (_.isObject(q)) { + result[k] = applyTemplate(q, target); + } + else if (q.startsWith('$')) { + result[k] = jp.value(target, q); + } + else { + result[k] = q; + } }); -} + + return result; +}; + +const fixUnicodeKeys = (obj) => { + const keys = Object.keys(obj); + const result = {}; + keys.forEach((k) => { + const newKey = k.replace(/\\u002e/, '_').replace(/@/, '_'); + result[newKey] = obj[k]; + }); + return result; +}; + +/** + * Automatically generate attribute events for system events (e.g. $set) + * @param {object} evt + */ +const autoAttributes = (evt) => { + let attrs = []; + + // Skip relationship events + if (evt.targetEntityId) return attrs; + + const { event, properties, entityId, entityType, eventTime, source, meta, eventLabel } = evt; + + if (event == '$set') { + attrs = Object.keys(properties).map((k) => ({ + event: k, + entityId, + entityType, + eventTime, + source, + meta, + eventLabel, + properties: { + value: properties[k] + } + })); + } + + return attrs; +}; class FindEventsCommand { @@ -114,17 +195,48 @@ class PublishEventsCommand { } if (!rs.success) errors.push(rs.message); - - // In the case of a stream ... bar is not used ... - if (!_.isEmpty(bar)){ - bar.tick(); - } + if (bar) bar.tick(); + }; + + const printEvent = (event, bar) => { + if (!event) return; + + eventCount++; + + console.log(JSON.stringify(event)); }; const processStream = (stream, resolve, reject, bar) => { const tasks = []; - stream.pipe(split((s) => JSON.parse(JSON.stringify(s)))) - .on('data', (event) => tasks.push(publishEvent(event, bar))) + stream.pipe(split()) + .on('data', (line) => { + if (_.isEmpty(line)) return; + + const obj = JSON.parse(line); + let events = [obj]; + + if (options.transform) { + debug('loading templates from: ', path.resolve(options.transform)); + const templates = require(path.resolve(options.transform)); + debug('loaded templates:', templates); + events = templates.map((t) => applyTemplate(t, obj)).filter(e => e !== null); + } + + if (options.auto) { + const autoAttrs = _.flatten(events.map((evt) => autoAttributes(evt))); + debug(`Generated ${autoAttrs.length} attribute events`); + events = events.concat(autoAttrs); + } + + debug('# events to publish:', events.length); + + let task = publishEvent; + if (options.dryRun) { + task = printEvent; + } + + events.forEach((e) => tasks.push(task(e, bar))); + }) .on('error', (err) => reject(err)) .on('end', () => Promise.all(tasks).then(() => { printSuccess(`Processed ${eventCount} events with ${errors.length} errors`); @@ -137,11 +249,11 @@ class PublishEventsCommand { if (file) { return countLinesInFile(file) - .then((numEvents) => { - printSuccess(`Publishing ${numEvents} events from file ${file}`); + .then((numLines) => { + printSuccess(`Publishing ${numLines} lines from file ${file}`); const bar = new ProgressBar( 'publishing [:bar] :current/:total :rate evt/s :elapsed s', - { total: numEvents, width: 65 } + { total: numLines, width: 65 } ); return new Promise((resolve, reject) => { diff --git a/src/commands/profiles.js b/src/commands/profiles.js index 5c2621e4..8d975f9b 100644 --- a/src/commands/profiles.js +++ b/src/commands/profiles.js @@ -20,7 +20,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { Graph } = require('../client/graph'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath } = require('./utils'); class SaveProfileSchemaCommand { @@ -51,13 +51,19 @@ class SaveProfileSchemaCommand { {column: 'Path', field: 'path', width: 50}, {column: 'Message', field: 'message', width: 100}, ]; + details.map(d => d.path = formatValidationPath(d.path)); printTable(tableSpec, details); printError(''); // Just exit } } }) .catch((err) => { - printError(`Failed to save profile schema: ${err.status} ${err.response.body.error}`, options); + let msg = ''; + if (err.response && err.response.body) { + msg = err.response.body.error || ''; + } + + printError(`Failed to save profile schema: ${err.status || err} ${msg}`, options); }); } } diff --git a/src/commands/utils.js b/src/commands/utils.js index 21128583..d0b9caf7 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -207,3 +207,33 @@ function formatServiceInputParameter(inputParameter){ return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); } } + +module.exports.countLinesInFile = (filePath) => { + return new Promise((resolve, reject) => { + let count = 0; + fs.createReadStream(filePath) + .on('error', e => reject(e)) + .on('data', chunk => { + for (let i=0; i < chunk.length; ++i) if (chunk[i] == 10) count++; + }) + .on('end', () => resolve(count)); + }); +}; + +module.exports.formatValidationPath = (p) => { + let cnt = 0, res = ''; + const len = p.length; + p.forEach(s => { + if (_.isNumber(s)) { + res += `[${s}]` + } else if (cnt < len) + res += s; + else + res += s; + if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) + res += '.'; + cnt += 1; + + }); + return res; +}; From 5f1cd1b254b88e08fb80cb81c544297054f64692 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 28 Jun 2019 09:32:28 -0500 Subject: [PATCH 106/864] Bump js-yaml to 3.13.1 for https://nodesecurity.io/advisories/788 (#201) --- package-lock.json | 2456 ++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 1229 insertions(+), 1229 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9e6e23a5..053597d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.19.tgz", "integrity": "sha1-MRkj6gRdKWjqI8vu6dsrbTX0oFE=", "requires": { - "debug": "3.2.6", - "joi": "13.7.0", - "superagent": "3.8.2", - "yeoman-generator": "3.2.0" + "debug": "^3.1.0", + "joi": "^13.1.2", + "superagent": "^3.8.2", + "yeoman-generator": "^3.1.1" }, "dependencies": { "debug": { @@ -20,7 +20,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "joi": { @@ -28,9 +28,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.7.0.tgz", "integrity": "sha1-z9hev+Z+ihkAQyQAtNA7vZP7h58=", "requires": { - "hoek": "5.0.4", - "isemail": "3.2.0", - "topo": "3.0.3" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, "ms": { @@ -45,8 +45,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -67,16 +67,16 @@ }, "acorn-jsx": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", "dev": true } @@ -87,7 +87,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "agentkeepalive": { @@ -95,7 +95,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-3.5.2.tgz", "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", "requires": { - "humanize-ms": "1.2.1" + "humanize-ms": "^1.2.1" } }, "ajv": { @@ -103,24 +103,24 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.10.0.tgz", "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=", "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-keywords": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", "dev": true }, "ansi-align": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" } }, "ansi-escapes": { @@ -130,7 +130,7 @@ }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { @@ -138,7 +138,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "aproba": { @@ -148,15 +148,15 @@ }, "argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { @@ -166,35 +166,35 @@ }, "arr-union": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-differ": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-differ/-/array-differ-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" }, "array-union": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-uniq/-/array-uniq-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arrify": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asn1": { @@ -202,12 +202,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.4.tgz", "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert-plus": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assert-plus/-/assert-plus-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assertion-error": { @@ -218,7 +218,7 @@ }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "ast-types": { @@ -231,12 +231,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-2.6.2.tgz", "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=", "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.11" } }, "asynckit": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { @@ -246,7 +246,7 @@ }, "aws-sign2": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws-sign2/-/aws-sign2-0.7.0.tgz", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { @@ -256,52 +256,52 @@ }, "babel-code-frame": { "version": "6.26.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "chalk": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } @@ -309,7 +309,7 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { @@ -317,21 +317,21 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.3.0", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -339,7 +339,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -347,7 +347,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -355,19 +355,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "binaryextensions": { @@ -385,13 +385,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-1.3.0.tgz", "integrity": "sha1-VcbDmouljZxhrSLNh3Uy3rZlogs=", "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.2", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.1" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" } }, "brace-expansion": { @@ -399,7 +399,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -408,24 +408,24 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -435,7 +435,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.3.tgz", "integrity": "sha1-ceCRu7eLtO8APPPtKy4GLGkn990=", "requires": { - "wcwidth": "1.0.1" + "wcwidth": "^1.0.1" } }, "browser-stdout": { @@ -449,8 +449,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", "requires": { - "buffer-alloc-unsafe": "1.1.0", - "buffer-fill": "1.0.0" + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" } }, "buffer-alloc-unsafe": { @@ -460,12 +460,12 @@ }, "buffer-equal-constant-time": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, "buffer-fill": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-fill/-/buffer-fill-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "buffer-from": { @@ -475,7 +475,7 @@ }, "builtins": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "bytes": { @@ -488,20 +488,20 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-11.3.2.tgz", "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", "requires": { - "bluebird": "3.5.4", - "chownr": "1.1.1", - "figgy-pudding": "3.5.1", - "glob": "7.1.4", - "graceful-fs": "4.1.15", - "lru-cache": "5.1.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "6.0.1", - "unique-filename": "1.1.1", - "y18n": "4.0.0" + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" }, "dependencies": { "lru-cache": { @@ -509,7 +509,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", "requires": { - "yallist": "3.0.3" + "yallist": "^3.0.2" } }, "yallist": { @@ -524,45 +524,45 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.3.0", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "call-me-maybe": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, "caller-path": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caller-path/-/caller-path-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", "dev": true }, "camelcase": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "caseless": { "version": "0.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caseless/-/caseless-0.12.0.tgz", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chai": { @@ -571,12 +571,12 @@ "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chai-as-promised": { @@ -585,7 +585,7 @@ "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", "dev": true, "requires": { - "check-error": "1.0.2" + "check-error": "^1.0.2" } }, "chalk": { @@ -593,20 +593,20 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { "version": "0.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.4.2.tgz", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", "dev": true }, "check-error": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, @@ -626,38 +626,38 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "cli-boxes": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" }, "cli-cursor": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-table": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table/-/cli-table-0.3.1.tgz", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", "requires": { "colors": "1.0.3" @@ -665,7 +665,7 @@ }, "cli-width": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, "cliui": { @@ -673,24 +673,24 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-4.1.0.tgz", "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "clone": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "clone-buffer": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-buffer/-/clone-buffer-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, "clone-stats": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" }, "cloneable-readable": { @@ -698,22 +698,22 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha1-EgoAywU7+2OiIucJ+Wg+ouEdjOw=", "requires": { - "inherits": "2.0.3", - "process-nextick-args": "2.0.0", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" } }, "co": { "version": "4.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co/-/co-4.6.0.tgz", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "co-prompt": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co-prompt/-/co-prompt-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { - "keypress": "0.2.1" + "keypress": "~0.2.1" } }, "code-point-at": { @@ -723,11 +723,11 @@ }, "collection-visit": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -740,12 +740,12 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, "combined-stream": { @@ -753,7 +753,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -763,7 +763,7 @@ }, "commondir": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { @@ -773,7 +773,7 @@ }, "concat-map": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { @@ -781,10 +781,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "cookiejar": { @@ -797,22 +797,22 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-util-is": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cross-spawn": { @@ -820,11 +820,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "csv": { @@ -832,10 +832,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-4.0.0.tgz", "integrity": "sha1-x95EuaD9R/ehDbJAZFGfZCp86S0=", "requires": { - "csv-generate": "2.2.2", - "csv-parse": "3.2.0", - "csv-stringify": "4.3.1", - "stream-transform": "1.0.8" + "csv-generate": "^2.2.2", + "csv-parse": "^3.1.2", + "csv-stringify": "^4.3.1", + "stream-transform": "^1.0.7" } }, "csv-generate": { @@ -853,12 +853,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-stringify/-/csv-stringify-4.3.1.tgz", "integrity": "sha1-e+4290bvVV3Ugac1qeKTiWX4R4s=", "requires": { - "lodash.get": "4.4.2" + "lodash.get": "~4.4.2" } }, "cyclist": { "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cyclist/-/cyclist-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" }, "dargs": { @@ -868,10 +868,10 @@ }, "dashdash": { "version": "1.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dashdash/-/dashdash-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "data-uri-to-buffer": { @@ -879,7 +879,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/data-uri-to-buffer/-/data-uri-to-buffer-2.0.1.tgz", "integrity": "sha1-yo9W/jix/TKUc+nRtKmvzYzhwEU=", "requires": { - "@types/node": "8.10.48" + "@types/node": "^8.0.7" } }, "dateformat": { @@ -892,7 +892,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" }, "dependencies": { "ms": { @@ -909,15 +909,15 @@ }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -926,7 +926,7 @@ "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-extend": { @@ -936,7 +936,7 @@ }, "deep-is": { "version": "0.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "defaults": { @@ -944,7 +944,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { - "clone": "1.0.4" + "clone": "^1.0.2" }, "dependencies": { "clone": { @@ -959,8 +959,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -968,7 +968,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -976,7 +976,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -984,9 +984,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -996,9 +996,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { - "ast-types": "0.12.4", - "escodegen": "1.11.1", - "esprima": "3.1.3" + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" }, "dependencies": { "esprima": { @@ -1010,7 +1010,7 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { @@ -1020,7 +1020,7 @@ }, "detect-conflict": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-conflict/-/detect-conflict-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" }, "diff": { @@ -1033,8 +1033,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.0.0.tgz", "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" } }, "doctrine": { @@ -1043,17 +1043,17 @@ "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "duplexer": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, "duplexer3": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { @@ -1061,19 +1061,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecdsa-sig-formatter": { @@ -1081,7 +1081,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha1-rg8PothQRe8UqBfao86azQSJ5b8=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "editions": { @@ -1089,8 +1089,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/editions/-/editions-2.1.3.tgz", "integrity": "sha1-cnzPPsLHsS3MZSxxAA8WxIJNb30=", "requires": { - "errlop": "1.1.1", - "semver": "5.7.0" + "errlop": "^1.1.1", + "semver": "^5.6.0" }, "dependencies": { "semver": { @@ -1107,10 +1107,10 @@ }, "encoding": { "version": "0.1.12", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.12.tgz", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { @@ -1118,12 +1118,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "err-code": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" }, "errlop": { @@ -1131,16 +1131,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/errlop/-/errlop-1.1.1.tgz", "integrity": "sha1-2a5MdsPmSVbF155uA11jQ7/WIlA=", "requires": { - "editions": "2.1.3" + "editions": "^2.1.2" } }, "error": { "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error/-/error-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", "requires": { - "string-template": "0.2.1", - "xtend": "4.0.1" + "string-template": "~0.2.1", + "xtend": "~4.0.0" } }, "error-ex": { @@ -1148,7 +1148,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es6-promise": { @@ -1158,15 +1158,15 @@ }, "es6-promisify": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promisify/-/es6-promisify-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { - "es6-promise": "4.2.6" + "es6-promise": "^4.0.3" } }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { @@ -1174,11 +1174,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-1.11.1.tgz", "integrity": "sha1-xIX/jWtM24nif0qFbpHxGEAcpRA=", "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -1200,67 +1200,67 @@ "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.2", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.2.6", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.4", - "globals": "11.12.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.10.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "ajv": { "version": "5.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-5.5.2.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "cross-spawn": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-5.1.0.tgz", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { @@ -1269,18 +1269,18 @@ "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, "json-schema-traverse": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true }, @@ -1298,8 +1298,8 @@ "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -1314,14 +1314,14 @@ "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", "dev": true, "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { "version": "1.0.1", @@ -1329,7 +1329,7 @@ "integrity": "sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -1338,71 +1338,71 @@ "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.2.0.tgz", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" }, "esutils": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "event-stream": { "version": "3.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-3.3.4.tgz", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", - "map-stream": "0.1.0", + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", "pause-stream": "0.0.11", - "split": "0.3.3", - "stream-combiner": "0.0.4", - "through": "2.3.8" + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" } }, "execa": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-0.7.0.tgz", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "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" }, "dependencies": { "cross-spawn": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-5.1.0.tgz", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { @@ -1415,18 +1415,18 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1438,11 +1438,11 @@ }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -1450,7 +1450,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -1461,9 +1461,9 @@ "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -1471,30 +1471,30 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -1502,7 +1502,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1510,7 +1510,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1518,21 +1518,21 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, "extsprintf": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extsprintf/-/extsprintf-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-glob": { @@ -1540,22 +1540,22 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-2.2.6.tgz", "integrity": "sha1-pdW2l+yN7aRo2Fp0A1KQoCWpUpU=", "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.1", - "merge2": "1.2.3", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" } }, "fast-json-stable-stringify": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "figgy-pudding": { @@ -1565,20 +1565,20 @@ }, "figures": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "file-uri-to-path": { @@ -1588,21 +1588,21 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1617,15 +1617,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-3.0.0.tgz", "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "requires": { - "locate-path": "3.0.0" + "locate-path": "^3.0.0" } }, "first-chunk-stream": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.2" } }, "flat-cache": { @@ -1634,10 +1634,10 @@ "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", "dev": true, "requires": { - "circular-json": "0.3.3", - "graceful-fs": "4.1.15", - "rimraf": "2.6.3", - "write": "0.2.1" + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" } }, "flush-write-stream": { @@ -1645,18 +1645,18 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" } }, "for-in": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "forever-agent": { "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/forever-agent/-/forever-agent-0.6.1.tgz", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { @@ -1664,9 +1664,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-2.3.3.tgz", "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.24" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "formidable": { @@ -1676,40 +1676,40 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "from": { "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" }, "from2": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from2/-/from2-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-write-stream-atomic": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { - "graceful-fs": "4.1.15", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "ftp": { @@ -1717,7 +1717,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { - "readable-stream": "1.1.14", + "readable-stream": "1.1.x", "xregexp": "2.0.0" }, "dependencies": { @@ -1731,10 +1731,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -1746,7 +1746,7 @@ }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, @@ -1757,13 +1757,13 @@ }, "get-func-name": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-uri": { @@ -1771,12 +1771,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-uri/-/get-uri-2.0.3.tgz", "integrity": "sha1-+hM1Iml4HXUWLG/IE8npBTI/urU=", "requires": { - "data-uri-to-buffer": "2.0.1", - "debug": "4.1.1", - "extend": "3.0.2", - "file-uri-to-path": "1.0.0", - "ftp": "0.3.10", - "readable-stream": "3.3.0" + "data-uri-to-buffer": "2", + "debug": "4", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "3" }, "dependencies": { "debug": { @@ -1784,7 +1784,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -1797,24 +1797,24 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.3.0.tgz", "integrity": "sha1-y4ARqtAC63F78EApH+uoVpyYb7k=", "requires": { - "inherits": "2.0.3", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, "get-value": { "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "getpass": { "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/getpass/-/getpass-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "gh-got": { @@ -1822,16 +1822,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-6.0.0.tgz", "integrity": "sha1-10NTAExuxGZkdSChC9RvcpnSaNA=", "requires": { - "got": "7.1.0", - "is-plain-obj": "1.1.0" + "got": "^7.0.0", + "is-plain-obj": "^1.1.0" } }, "github-username": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-username/-/github-username-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", "requires": { - "gh-got": "6.0.0" + "gh-got": "^6.0.0" } }, "glob": { @@ -1839,44 +1839,44 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.4.tgz", "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } }, "glob-to-regexp": { "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, "global-dirs": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "globals": { @@ -1890,13 +1890,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-8.0.2.tgz", "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", "requires": { - "array-union": "1.0.2", + "array-union": "^1.0.1", "dir-glob": "2.0.0", - "fast-glob": "2.2.6", - "glob": "7.1.4", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, "got": { @@ -1904,20 +1904,20 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-7.1.0.tgz", "integrity": "sha1-BUUP2ECU5rvqVvRRpDqcKJFmOFo=", "requires": { - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-plain-obj": "1.1.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "p-cancelable": "0.3.0", - "p-timeout": "1.2.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "url-parse-lax": "1.0.0", - "url-to-options": "1.0.1" + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" } }, "graceful-fs": { @@ -1927,10 +1927,10 @@ }, "grouped-queue": { "version": "0.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grouped-queue/-/grouped-queue-0.3.3.tgz", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.2" } }, "growl": { @@ -1941,7 +1941,7 @@ }, "har-schema": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-schema/-/har-schema-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { @@ -1949,22 +1949,22 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", "requires": { - "ajv": "6.10.0", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "has-ansi": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-ansi/-/has-ansi-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" }, "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true } @@ -1985,41 +1985,41 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha1-oEWrOD17SyASoAFIqwql8pAETU0=", "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "has-value": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "he": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", "dev": true }, @@ -2043,10 +2043,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", - "statuses": "1.5.0", + "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" } }, @@ -2055,7 +2055,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", "requires": { - "agent-base": "4.2.1", + "agent-base": "4", "debug": "3.1.0" }, "dependencies": { @@ -2071,12 +2071,12 @@ }, "http-signature": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-signature/-/http-signature-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-proxy-agent": { @@ -2084,8 +2084,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", "requires": { - "agent-base": "4.2.1", - "debug": "3.2.6" + "agent-base": "^4.1.0", + "debug": "^3.1.0" }, "dependencies": { "debug": { @@ -2093,7 +2093,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -2105,10 +2105,10 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { - "ms": "2.0.0" + "ms": "^2.0.0" } }, "iconv-lite": { @@ -2116,12 +2116,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "iferr": { "version": "0.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iferr/-/iferr-0.1.5.tgz", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "ignore": { @@ -2131,21 +2131,21 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { @@ -2159,20 +2159,20 @@ "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", "dev": true, "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, "interpret": { @@ -2187,30 +2187,30 @@ }, "ip": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { @@ -2220,18 +2220,18 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2241,9 +2241,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -2255,17 +2255,17 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { @@ -2273,52 +2273,52 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-installed-globally": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-number": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "is-object": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-object/-/is-object-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" }, "is-path-inside": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, "is-plain-object": { @@ -2326,12 +2326,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-promise": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-promise/-/is-promise-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-resolvable": { @@ -2342,30 +2342,30 @@ }, "is-retry-allowed": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-scoped": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-scoped/-/is-scoped-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "requires": { - "scoped-regex": "1.0.0" + "scoped-regex": "^1.0.0" } }, "is-stream": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-utf8/-/is-utf8-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { @@ -2375,7 +2375,7 @@ }, "isarray": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { @@ -2383,7 +2383,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-3.0.3.tgz", "integrity": "sha1-XW3vPt6/boyoyunDAYOoBLX4voA=", "requires": { - "buffer-alloc": "1.2.0" + "buffer-alloc": "^1.2.0" } }, "isemail": { @@ -2391,22 +2391,22 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isemail/-/isemail-3.2.0.tgz", "integrity": "sha1-WTEKAhkxqfsGu7UeFVzgs/I2gyw=", "requires": { - "punycode": "2.1.1" + "punycode": "2.x.x" } }, "isexe": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isstream": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istextorbinary": { @@ -2414,9 +2414,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-2.5.1.tgz", "integrity": "sha1-FKM4JM9rnV13Q+rBvivSwxDQzL0=", "requires": { - "binaryextensions": "2.1.2", - "editions": "2.1.3", - "textextensions": "2.4.0" + "binaryextensions": "^2.1.2", + "editions": "^2.1.3", + "textextensions": "^2.4.0" } }, "isurl": { @@ -2424,13 +2424,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isurl/-/isurl-1.0.0.tgz", "integrity": "sha1-sn9PSfPNqj6kSgpbfzRi5u3DnWc=", "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "jmespath": { "version": "0.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "joi": { @@ -2438,29 +2438,29 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.1.0.tgz", "integrity": "sha1-Wee4cUuTKh40LDWD1YQdcWn/GCI=", "requires": { - "hoek": "5.0.4", - "isemail": "3.2.0", - "topo": "3.0.3" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, "js-tokens": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "js-yaml": { - "version": "3.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha1-LnhEFka9RoLpY/IrbpKCPDCcYtw=", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsbn/-/jsbn-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "json-parse-better-errors": { @@ -2470,7 +2470,7 @@ }, "json-schema": { "version": "0.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema/-/json-schema-0.2.3.tgz", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { @@ -2480,13 +2480,13 @@ }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsonpath": { @@ -2511,15 +2511,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz", "integrity": "sha1-BWyQ7ummXtbmxy3bCh0yUQmq9kM=", "requires": { - "jws": "3.2.2", - "lodash.includes": "4.3.0", - "lodash.isboolean": "3.0.3", - "lodash.isinteger": "4.0.4", - "lodash.isnumber": "3.0.3", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.once": "4.1.1", - "ms": "2.1.2" + "jws": "^3.1.5", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1" }, "dependencies": { "ms": { @@ -2531,7 +2531,7 @@ }, "jsprim": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsprim/-/jsprim-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", @@ -2547,7 +2547,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "jws": { @@ -2555,13 +2555,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jws/-/jws-3.2.2.tgz", "integrity": "sha1-ABCZ82OUaMlBQADpmZX6UvtHgwQ=", "requires": { - "jwa": "1.4.1", - "safe-buffer": "5.1.2" + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" } }, "keypress": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keypress/-/keypress-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" }, "kind-of": { @@ -2574,27 +2574,27 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lcid/-/lcid-2.0.0.tgz", "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", "requires": { - "invert-kv": "2.0.0" + "invert-kv": "^2.0.0" } }, "levn": { "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/load-json-file/-/load-json-file-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "locate-path": { @@ -2602,8 +2602,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -2618,37 +2618,37 @@ }, "lodash.includes": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.includes/-/lodash.includes-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" }, "lodash.isboolean": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" }, "lodash.isinteger": { "version": "4.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" }, "lodash.isnumber": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" }, "lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, "lodash.isstring": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, "lodash.once": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.once/-/lodash.once-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, "log-symbols": { @@ -2656,7 +2656,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", "requires": { - "chalk": "2.4.2" + "chalk": "^2.0.1" } }, "lowercase-keys": { @@ -2669,8 +2669,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -2678,7 +2678,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "make-fetch-happen": { @@ -2686,17 +2686,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", "integrity": "sha1-FBSXy4ePJDupMTbIPYq6EsIWwIM=", "requires": { - "agentkeepalive": "3.5.2", - "cacache": "11.3.2", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.5", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "4.0.2", - "ssri": "6.0.1" + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" } }, "map-age-cleaner": { @@ -2704,25 +2704,25 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", "requires": { - "p-defer": "1.0.0" + "p-defer": "^1.0.0" } }, "map-cache": { "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-stream": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" }, "map-visit": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "mem": { @@ -2730,9 +2730,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem/-/mem-4.3.0.tgz", "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "2.1.0", - "p-is-promise": "2.1.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" }, "dependencies": { "mimic-fn": { @@ -2744,27 +2744,27 @@ }, "mem-fs": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs/-/mem-fs-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", "requires": { - "through2": "2.0.5", - "vinyl": "1.2.0", - "vinyl-file": "2.0.0" + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" }, "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-stats": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "replace-ext": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "through2": { @@ -2772,17 +2772,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "vinyl": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.4", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } } @@ -2793,17 +2793,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", "integrity": "sha1-UZciQWQL6FZ2gKBPetr/5fxgNmc=", "requires": { - "commondir": "1.0.1", - "deep-extend": "0.6.0", - "ejs": "2.6.1", - "glob": "7.1.4", - "globby": "8.0.2", - "isbinaryfile": "3.0.3", - "mkdirp": "0.5.1", - "multimatch": "2.1.0", - "rimraf": "2.6.3", - "through2": "2.0.5", - "vinyl": "2.2.0" + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^2.5.9", + "glob": "^7.0.3", + "globby": "^8.0.1", + "isbinaryfile": "^3.0.2", + "mkdirp": "^0.5.0", + "multimatch": "^2.0.0", + "rimraf": "^2.2.8", + "through2": "^2.0.0", + "vinyl": "^2.0.1" }, "dependencies": { "through2": { @@ -2811,8 +2811,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } } } @@ -2824,7 +2824,7 @@ }, "methods": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/methods/-/methods-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { @@ -2832,19 +2832,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "mime": { @@ -2880,12 +2880,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mississippi": { @@ -2893,16 +2893,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.1.1", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" }, "dependencies": { "through2": { @@ -2910,8 +2910,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } } } @@ -2921,8 +2921,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2930,14 +2930,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -2945,7 +2945,7 @@ "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } @@ -2990,17 +2990,17 @@ "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, @@ -3010,7 +3010,7 @@ "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -3022,36 +3022,36 @@ }, "move-concurrently": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/move-concurrently/-/move-concurrently-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multimatch": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/multimatch/-/multimatch-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" } }, "mute-stream": { "version": "0.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.7.tgz", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nanomatch": { @@ -3059,22 +3059,22 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "natural-compare": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, @@ -3093,9 +3093,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" } }, "normalize-package-data": { @@ -3103,10 +3103,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", "requires": { - "hosted-git-info": "2.7.1", - "resolve": "1.11.1", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.4" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "npm-package-arg": { @@ -3114,10 +3114,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-6.1.0.tgz", "integrity": "sha1-Fa4eJ1ilAn77TCUFVLhac323/ME=", "requires": { - "hosted-git-info": "2.7.1", - "osenv": "0.1.5", - "semver": "5.5.0", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" } }, "npm-registry-fetch": { @@ -3125,19 +3125,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-3.2.0.tgz", "integrity": "sha1-lOyFnE3Tlfkk5XXO5HHab9OQbVM=", "requires": { - "bluebird": "3.5.4", - "figgy-pudding": "3.5.1", - "lru-cache": "4.1.5", - "make-fetch-happen": "4.0.1", - "npm-package-arg": "6.1.0" + "bluebird": "^3.5.1", + "figgy-pudding": "^3.2.0", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "npm-package-arg": "^6.1.0" } }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-run-path/-/npm-run-path-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -3152,86 +3152,86 @@ }, "object-assign": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "object-visit": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.pick": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optionator": { "version": "0.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.2.tgz", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-homedir/-/os-homedir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { @@ -3239,9 +3239,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-locale/-/os-locale-3.1.0.tgz", "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", "requires": { - "execa": "1.0.0", - "lcid": "2.0.0", - "mem": "4.3.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" }, "dependencies": { "execa": { @@ -3249,13 +3249,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-1.0.0.tgz", "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "get-stream": { @@ -3263,14 +3263,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } } } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { @@ -3278,8 +3278,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/osenv/-/osenv-0.1.5.tgz", "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-cancelable": { @@ -3294,7 +3294,7 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-is-promise": { @@ -3307,7 +3307,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -3315,15 +3315,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "requires": { - "p-limit": "2.2.0" + "p-limit": "^2.0.0" } }, "p-timeout": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -3336,14 +3336,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", "integrity": "sha1-EdV4tyoWStdL+dW6yf9GKjgoJDI=", "requires": { - "agent-base": "4.2.1", - "debug": "3.2.6", - "get-uri": "2.0.3", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "pac-resolver": "3.0.0", - "raw-body": "2.4.0", - "socks-proxy-agent": "4.0.2" + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" }, "dependencies": { "debug": { @@ -3351,7 +3351,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -3366,60 +3366,60 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-resolver/-/pac-resolver-3.0.0.tgz", "integrity": "sha1-auoweH2wqJFwTet4AKcip2FabyY=", "requires": { - "co": "4.6.0", - "degenerator": "1.0.4", - "ip": "1.1.5", - "netmask": "1.0.6", - "thunkify": "2.1.2" + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" } }, "parallel-transform": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parallel-transform/-/parallel-transform-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, "parse-json": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "pascalcase": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-dirname": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-dirname/-/path-dirname-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "path-exists": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-inside/-/path-is-inside-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "path-key": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { @@ -3429,7 +3429,7 @@ }, "path-to-regexp": { "version": "1.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", "dev": true, "requires": { @@ -3438,7 +3438,7 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true } @@ -3449,44 +3449,44 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pathval": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, "pause-stream": { "version": "0.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { - "through": "2.3.8" + "through": "~2.3" } }, "performance-now": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/performance-now/-/performance-now-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie/-/pinkie-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pluralize": { @@ -3497,17 +3497,17 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prepend-http/-/prepend-http-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "pretty-bytes": { @@ -3527,16 +3527,16 @@ }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" + "err-code": "^1.0.0", + "retry": "^0.10.0" } }, "proxy-agent": { @@ -3544,14 +3544,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-agent/-/proxy-agent-3.1.0.tgz", "integrity": "sha1-PPhu6RHJSHTeQ1nzfv2d4lFXwRM=", "requires": { - "agent-base": "4.2.1", - "debug": "3.2.6", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.5", - "pac-proxy-agent": "3.0.0", - "proxy-from-env": "1.0.0", - "socks-proxy-agent": "4.0.2" + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "pac-proxy-agent": "^3.0.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" }, "dependencies": { "debug": { @@ -3559,7 +3559,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -3576,7 +3576,7 @@ }, "pseudomap": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pseudomap/-/pseudomap-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { @@ -3589,8 +3589,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { @@ -3598,9 +3598,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", "requires": { - "duplexify": "3.7.1", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" }, "dependencies": { "pump": { @@ -3608,8 +3608,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-2.0.1.tgz", "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } @@ -3626,7 +3626,7 @@ }, "querystring": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystring/-/querystring-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "raw-body": { @@ -3645,8 +3645,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-chunk/-/read-chunk-3.2.0.tgz", "integrity": "sha1-KYSv54ypv7vbdLGTh7+ehiicFso=", "requires": { - "pify": "4.0.1", - "with-open-file": "0.1.6" + "pify": "^4.0.1", + "with-open-file": "^0.1.6" }, "dependencies": { "pify": { @@ -3658,12 +3658,12 @@ }, "read-pkg": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.5.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -3671,8 +3671,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-4.0.0.tgz", "integrity": "sha1-GyIcYIi6d5lgHICPkRYcZuWPiXg=", "requires": { - "find-up": "3.0.0", - "read-pkg": "3.0.0" + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" } }, "readable-stream": { @@ -3680,21 +3680,21 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rechoir": { "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "1.11.1" + "resolve": "^1.1.6" } }, "regex-not": { @@ -3702,8 +3702,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -3714,7 +3714,7 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { @@ -3724,12 +3724,12 @@ }, "repeat-string": { "version": "1.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "replace-ext": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, "request": { @@ -3737,26 +3737,26 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/request/-/request-2.88.0.tgz", "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "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.24", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "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.0", + "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.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "qs": { @@ -3783,12 +3783,12 @@ }, "require-uncached": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-uncached/-/require-uncached-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "resolve": { @@ -3796,27 +3796,27 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.11.1.tgz", "integrity": "sha1-6hDYEQN2mC/vV434/DC5rDCgej4=", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-from": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "restore-cursor": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -3826,7 +3826,7 @@ }, "retry": { "version": "0.10.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.10.1.tgz", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "rewire": { @@ -3835,7 +3835,7 @@ "integrity": "sha1-uhEA1ACp2nWf5Zn8bgIz8Iee1to=", "dev": true, "requires": { - "eslint": "4.19.1" + "eslint": "^4.19.1" } }, "rimraf": { @@ -3843,38 +3843,38 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", "requires": { - "glob": "7.1.4" + "glob": "^7.1.3" } }, "run-async": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-queue/-/run-queue-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "rx-lite": { "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rx-lite/-/rx-lite-4.0.8.tgz", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", "dev": true }, "rx-lite-aggregates": { "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { @@ -3882,7 +3882,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", "requires": { - "tslib": "1.9.3" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -3892,10 +3892,10 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -3905,7 +3905,7 @@ }, "scoped-regex": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/scoped-regex/-/scoped-regex-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" }, "semver": { @@ -3923,18 +3923,18 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.0.tgz", "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3946,15 +3946,15 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shelljs": { @@ -3962,19 +3962,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shelljs/-/shelljs-0.8.3.tgz", "integrity": "sha1-p/MxlSDr8J7oEnWyNorbKGZZsJc=", "requires": { - "glob": "7.1.4", - "interpret": "1.2.0", - "rechoir": "0.6.2" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, "signal-exit": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slash": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "slice-ansi": { @@ -3983,7 +3983,7 @@ "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, "smart-buffer": { @@ -3996,9 +3996,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smartwrap/-/smartwrap-1.0.11.tgz", "integrity": "sha1-7o+Fh4v6yJwfpNoz4Id/cpqOKnQ=", "requires": { - "breakword": "1.0.3", - "wcwidth": "1.0.1", - "yargs": "12.0.5" + "breakword": "^1.0.3", + "wcwidth": "^1.0.1", + "yargs": "^12.0.5" } }, "snapdragon": { @@ -4006,14 +4006,14 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -4026,18 +4026,18 @@ }, "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4047,17 +4047,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -4065,7 +4065,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4073,7 +4073,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4081,9 +4081,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -4093,15 +4093,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4111,7 +4111,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.3.2.tgz", "integrity": "sha1-reOI6ebYf9sRZJwVdGxXiSKliD4=", "requires": { - "ip": "1.1.5", + "ip": "^1.1.5", "smart-buffer": "4.0.2" } }, @@ -4120,13 +4120,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", "requires": { - "agent-base": "4.2.1", - "socks": "2.3.2" + "agent-base": "~4.2.1", + "socks": "~2.3.2" } }, "source-map": { "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { @@ -4134,16 +4134,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { @@ -4151,8 +4151,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.4" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -4165,8 +4165,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.4" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -4176,10 +4176,10 @@ }, "split": { "version": "0.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-0.3.3.tgz", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -4187,12 +4187,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { @@ -4200,15 +4200,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "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" } }, "ssri": { @@ -4216,7 +4216,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-6.0.1.tgz", "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", "requires": { - "figgy-pudding": "3.5.1" + "figgy-pudding": "^3.5.1" } }, "static-eval": { @@ -4224,24 +4224,24 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-eval/-/static-eval-2.0.2.tgz", "integrity": "sha1-LRdZMGsb76aIk4RUxUa3hx+AakI=", "requires": { - "escodegen": "1.11.1" + "escodegen": "^1.8.1" } }, "static-extend": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -4253,10 +4253,10 @@ }, "stream-combiner": { "version": "0.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.0.4.tgz", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "requires": { - "duplexer": "0.1.1" + "duplexer": "~0.1.1" } }, "stream-each": { @@ -4264,13 +4264,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-shift": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-shift/-/stream-shift-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "stream-transform": { @@ -4280,7 +4280,7 @@ }, "string-template": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-template/-/string-template-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" }, "string-width": { @@ -4288,8 +4288,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string_decoder": { @@ -4297,49 +4297,49 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" }, "strip-bom-stream": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { - "first-chunk-stream": "2.0.0", - "strip-bom": "2.0.0" + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "strip-bom": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, @@ -4348,16 +4348,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-3.8.2.tgz", "integrity": "sha1-5KEbnQR/fT7+s7vlNtnsACHRZAM=", "requires": { - "component-emitter": "1.3.0", - "cookiejar": "2.1.2", - "debug": "3.2.6", - "extend": "3.0.2", - "form-data": "2.3.3", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.6.0", - "qs": "6.7.0", - "readable-stream": "2.3.6" + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.1.1", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.0.5" }, "dependencies": { "debug": { @@ -4365,7 +4365,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -4377,11 +4377,11 @@ }, "superagent-mocker": { "version": "0.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-mocker/-/superagent-mocker-0.5.2.tgz", + "resolved": "https://registry.npmjs.org/superagent-mocker/-/superagent-mocker-0.5.2.tgz", "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", "dev": true, "requires": { - "path-to-regexp": "1.7.0" + "path-to-regexp": "^1.1.0" } }, "superagent-proxy": { @@ -4389,8 +4389,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-proxy/-/superagent-proxy-2.0.0.tgz", "integrity": "sha1-n1dRXNZg4unOVcDmvXD5LrB8PuA=", "requires": { - "debug": "3.2.6", - "proxy-agent": "3.1.0" + "debug": "^3.1.0", + "proxy-agent": "3" }, "dependencies": { "debug": { @@ -4398,7 +4398,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -4418,7 +4418,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "table": { @@ -4427,35 +4427,35 @@ "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.2", - "lodash": "4.17.11", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ajv": { "version": "5.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-5.5.2.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "fast-deep-equal": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, "json-schema-traverse": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true } @@ -4463,15 +4463,15 @@ }, "term-size": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/term-size/-/term-size-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "text-table": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "textextensions": { @@ -4481,7 +4481,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { @@ -4489,7 +4489,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-3.0.1.tgz", "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", "requires": { - "readable-stream": "2.3.6" + "readable-stream": "2 || 3" } }, "thunkify": { @@ -4499,7 +4499,7 @@ }, "timed-out": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/timed-out/-/timed-out-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "tmp": { @@ -4507,23 +4507,23 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-object-path": { "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4533,19 +4533,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "toidentifier": { @@ -4558,7 +4558,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/topo/-/topo-3.0.3.tgz", "integrity": "sha1-1aZ/suaTB+vusIQC7Coqb1962Vw=", "requires": { - "hoek": "6.1.3" + "hoek": "6.x.x" }, "dependencies": { "hoek": { @@ -4573,13 +4573,13 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", "requires": { - "psl": "1.1.31", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" }, "dependencies": { "punycode": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } @@ -4594,12 +4594,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tty-table/-/tty-table-2.7.0.tgz", "integrity": "sha1-DgOzdDWgQKntj3g6m7yalmCSHp8=", "requires": { - "chalk": "2.4.2", - "csv": "4.0.0", - "smartwrap": "1.0.11", - "strip-ansi": "5.2.0", - "wcwidth": "1.0.1", - "yargs": "12.0.5" + "chalk": "^2.4.2", + "csv": "^4.0.0", + "smartwrap": "^1.0.11", + "strip-ansi": "^5.0.0", + "wcwidth": "^1.0.1", + "yargs": "^12.0.5" }, "dependencies": { "ansi-regex": { @@ -4612,30 +4612,30 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -4646,7 +4646,7 @@ }, "typedarray": { "version": "0.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray/-/typedarray-0.0.6.tgz", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "underscore": { @@ -4656,32 +4656,32 @@ }, "union-value": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { "version": "0.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-0.4.3.tgz", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -4691,7 +4691,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "requires": { - "unique-slug": "2.0.1" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -4699,7 +4699,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.1.tgz", "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "unpipe": { @@ -4709,26 +4709,26 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" @@ -4738,7 +4738,7 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" } } @@ -4753,17 +4753,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "url": { "version": "0.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url/-/url-0.11.0.tgz", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "requires": { "punycode": "1.3.2", @@ -4772,22 +4772,22 @@ "dependencies": { "punycode": { "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-1.3.2.tgz", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } }, "url-parse-lax": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "url-to-options": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-to-options/-/url-to-options-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, "use": { @@ -4797,7 +4797,7 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { @@ -4810,26 +4810,26 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", "requires": { - "spdx-correct": "3.1.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "verror": { "version": "1.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/verror/-/verror-1.10.0.tgz", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vinyl": { @@ -4837,62 +4837,62 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha1-2FsH2pbkWNJbL/4Z/s6fLKoT7YY=", "requires": { - "clone": "2.1.2", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.1.3", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } }, "vinyl-file": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl-file/-/vinyl-file-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", "requires": { - "graceful-fs": "4.1.15", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0", - "strip-bom-stream": "2.0.0", - "vinyl": "1.2.0" + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" }, "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-stats": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "pify": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "replace-ext": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "strip-bom": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "vinyl": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.4", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } } @@ -4903,7 +4903,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { - "defaults": "1.0.3" + "defaults": "^1.0.3" } }, "which": { @@ -4911,7 +4911,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -4924,7 +4924,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-2.0.1.tgz", "integrity": "sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w=", "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" } }, "with-open-file": { @@ -4932,9 +4932,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/with-open-file/-/with-open-file-0.1.6.tgz", "integrity": "sha1-C8F47Kt19rqsiuEcheB0RdaQ6lA=", "requires": { - "p-finally": "1.0.0", - "p-try": "2.2.0", - "pify": "4.0.1" + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" }, "dependencies": { "pify": { @@ -4946,7 +4946,7 @@ }, "wordwrap": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "wrap-ansi": { @@ -4954,8 +4954,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { @@ -4968,7 +4968,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -4976,9 +4976,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -4986,23 +4986,23 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write/-/write-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "xregexp": { @@ -5012,7 +5012,7 @@ }, "xtend": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xtend/-/xtend-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { @@ -5022,7 +5022,7 @@ }, "yallist": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { @@ -5030,18 +5030,18 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-12.0.5.tgz", "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "11.1.1" + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "yargs-parser": { @@ -5049,8 +5049,8 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-11.1.1.tgz", "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, "dependencies": { "camelcase": { @@ -5065,21 +5065,21 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.3.4.tgz", "integrity": "sha1-rhVhR6G4Xek5Nm5UOLAMs+tUw+k=", "requires": { - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "globby": "8.0.2", - "grouped-queue": "0.3.3", - "inquirer": "6.3.1", - "is-scoped": "1.0.0", - "lodash": "4.17.11", - "log-symbols": "2.2.0", - "mem-fs": "1.1.3", - "strip-ansi": "4.0.0", - "text-table": "0.2.0", - "untildify": "3.0.3" + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.5.0", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^0.3.3", + "inquirer": "^6.0.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.2.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.3" }, "dependencies": { "ansi-regex": { @@ -5097,7 +5097,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "external-editor": { @@ -5105,9 +5105,9 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.0.3.tgz", "integrity": "sha1-WGbbKal4Jtvkvzr9JAcOrZ6kOic=", "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "inquirer": { @@ -5115,19 +5115,19 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-6.3.1.tgz", "integrity": "sha1-ekE7XnlQgRATo9tJHGHR87d26Oc=", "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.11", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.5.1", - "string-width": "2.1.1", - "strip-ansi": "5.2.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" }, "dependencies": { "strip-ansi": { @@ -5135,7 +5135,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } @@ -5152,31 +5152,31 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-generator/-/yeoman-generator-3.2.0.tgz", "integrity": "sha1-Agd9LX/yj+3B7X2tf5ln/Xw2BMw=", "requires": { - "async": "2.6.2", - "chalk": "2.4.2", - "cli-table": "0.3.1", - "cross-spawn": "6.0.5", - "dargs": "6.1.0", - "dateformat": "3.0.3", - "debug": "4.1.1", - "detect-conflict": "1.0.1", - "error": "7.0.2", - "find-up": "3.0.0", - "github-username": "4.1.0", - "istextorbinary": "2.5.1", - "lodash": "4.17.11", - "make-dir": "1.3.0", - "mem-fs-editor": "5.1.0", - "minimist": "1.2.0", - "pretty-bytes": "5.2.0", - "read-chunk": "3.2.0", - "read-pkg-up": "4.0.0", - "rimraf": "2.6.3", - "run-async": "2.3.0", - "shelljs": "0.8.3", - "text-table": "0.2.0", - "through2": "3.0.1", - "yeoman-environment": "2.3.4" + "async": "^2.6.0", + "chalk": "^2.3.0", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^6.0.0", + "dateformat": "^3.0.3", + "debug": "^4.1.0", + "detect-conflict": "^1.0.0", + "error": "^7.0.2", + "find-up": "^3.0.0", + "github-username": "^4.0.0", + "istextorbinary": "^2.2.1", + "lodash": "^4.17.10", + "make-dir": "^1.1.0", + "mem-fs-editor": "^5.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^5.1.0", + "read-chunk": "^3.0.0", + "read-pkg-up": "^4.0.0", + "rimraf": "^2.6.2", + "run-async": "^2.0.0", + "shelljs": "^0.8.0", + "text-table": "^0.2.0", + "through2": "^3.0.0", + "yeoman-environment": "^2.0.5" } } } diff --git a/package.json b/package.json index a393a8b8..21a8892e 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "is-installed-globally": "0.1.0", "jmespath": "0.15.0", "joi": "13.1.0", - "js-yaml": "3.10.0", + "js-yaml": "3.13.1", "jsonpath": "^1.0.2", "jsonwebtoken": "8.3.0", "lodash": "4.17.11", From 46eaa0e757eef18747b6ed01c516a2c88d204252 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 8 Jul 2019 14:10:36 -0500 Subject: [PATCH 107/864] Fixed pinned dependencies --- package-lock.json | 236 ++++++++++++++++++++++++++-------------------- package.json | 7 +- 2 files changed, 136 insertions(+), 107 deletions(-) diff --git a/package-lock.json b/package-lock.json index 053597d0..74d80c6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,6 +59,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-8.10.48.tgz", "integrity": "sha1-44UHNWFkOpumGZoZhf/ANTD5B4E=" }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "acorn": { "version": "5.7.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-5.7.3.tgz", @@ -92,8 +101,8 @@ }, "agentkeepalive": { "version": "3.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", "requires": { "humanize-ms": "^1.2.1" } @@ -143,8 +152,8 @@ }, "aproba": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "argparse": { "version": "1.0.10", @@ -376,9 +385,9 @@ "integrity": "sha1-yDw9dCM7p2dOTzE8sqK3D1TpS3w=" }, "bluebird": { - "version": "3.5.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bluebird/-/bluebird-3.5.4.tgz", - "integrity": "sha1-1sxmFZXeMNWzr1/O3TwLPvbsVxQ=" + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==" }, "boxen": { "version": "1.3.0", @@ -484,21 +493,21 @@ "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" }, "cacache": { - "version": "11.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", "requires": { - "bluebird": "^3.5.3", + "bluebird": "^3.5.5", "chownr": "^1.1.1", "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", + "glob": "^7.1.4", "graceful-fs": "^4.1.15", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", + "rimraf": "^2.6.3", "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" @@ -506,16 +515,16 @@ "dependencies": { "lru-cache": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { "yallist": "^3.0.2" } }, "yallist": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" } } }, @@ -611,9 +620,9 @@ "dev": true }, "chownr": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha1-VHJri4//TfBTxCGH6AH7RBLfFJQ=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", + "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==" }, "circular-json": { "version": "0.3.3", @@ -794,8 +803,8 @@ }, "copy-concurrently": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -1058,8 +1067,8 @@ }, "duplexify": { "version": "3.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -1078,8 +1087,8 @@ }, "ecdsa-sig-formatter": { "version": "1.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha1-rg8PothQRe8UqBfao86azQSJ5b8=", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "requires": { "safe-buffer": "^5.0.1" } @@ -1560,8 +1569,8 @@ }, "figgy-pudding": { "version": "3.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=" + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" }, "figures": { "version": "2.0.0", @@ -1642,8 +1651,8 @@ }, "flush-write-stream": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "requires": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -1836,8 +1845,8 @@ }, "glob": { "version": "7.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.4.tgz", - "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2035,8 +2044,8 @@ }, "http-cache-semantics": { "version": "3.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=" + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" }, "http-errors": { "version": "1.7.2", @@ -2489,6 +2498,11 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, "jsonpath": { "version": "1.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonpath/-/jsonpath-1.0.2.tgz", @@ -2507,11 +2521,11 @@ } }, "jsonwebtoken": { - "version": "8.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz", - "integrity": "sha1-BWyQ7ummXtbmxy3bCh0yUQmq9kM=", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", "requires": { - "jws": "^3.1.5", + "jws": "^3.2.2", "lodash.includes": "^4.3.0", "lodash.isboolean": "^3.0.3", "lodash.isinteger": "^4.0.4", @@ -2519,13 +2533,19 @@ "lodash.isplainobject": "^4.0.6", "lodash.isstring": "^4.0.1", "lodash.once": "^4.0.0", - "ms": "^2.1.1" + "ms": "^2.1.1", + "semver": "^5.6.0" }, "dependencies": { "ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" } } }, @@ -2542,8 +2562,8 @@ }, "jwa": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha1-dDwymFy56YZVUw1TZBtmyGRbA5o=", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", @@ -2552,8 +2572,8 @@ }, "jws": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jws/-/jws-3.2.2.tgz", - "integrity": "sha1-ABCZ82OUaMlBQADpmZX6UvtHgwQ=", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "requires": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" @@ -2682,21 +2702,36 @@ } }, "make-fetch-happen": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha1-FBSXy4ePJDupMTbIPYq6EsIWwIM=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", + "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", "requires": { "agentkeepalive": "^3.4.1", - "cacache": "^11.0.1", + "cacache": "^11.3.3", "http-cache-semantics": "^3.8.1", "http-proxy-agent": "^2.1.0", "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", + "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "node-fetch-npm": "^2.0.2", "promise-retry": "^1.1.1", "socks-proxy-agent": "^4.0.0", "ssri": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" + } } }, "map-age-cleaner": { @@ -2890,8 +2925,8 @@ }, "mississippi": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -2907,8 +2942,8 @@ "dependencies": { "through2": { "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -3090,8 +3125,8 @@ }, "node-fetch-npm": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", "requires": { "encoding": "^0.1.11", "json-parse-better-errors": "^1.0.0", @@ -3111,8 +3146,8 @@ }, "npm-package-arg": { "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha1-Fa4eJ1ilAn77TCUFVLhac323/ME=", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", "requires": { "hosted-git-info": "^2.6.0", "osenv": "^0.1.5", @@ -3121,15 +3156,31 @@ } }, "npm-registry-fetch": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-3.2.0.tgz", - "integrity": "sha1-lOyFnE3Tlfkk5XXO5HHab9OQbVM=", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", + "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", "requires": { + "JSONStream": "^1.3.4", "bluebird": "^3.5.1", - "figgy-pudding": "^3.2.0", - "lru-cache": "^4.1.3", - "make-fetch-happen": "^4.0.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.2", "npm-package-arg": "^6.1.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" + } } }, "npm-run-path": { @@ -3275,8 +3326,8 @@ }, "osenv": { "version": "0.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -3521,9 +3572,9 @@ "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" }, "progress": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise-inflight": { "version": "1.0.1", @@ -3595,8 +3646,8 @@ }, "pumpify": { "version": "1.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -3605,8 +3656,8 @@ "dependencies": { "pump": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -3624,11 +3675,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.7.0.tgz", "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=" }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, "raw-body": { "version": "2.4.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/raw-body/-/raw-body-2.4.0.tgz", @@ -4213,8 +4259,8 @@ }, "ssri": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "requires": { "figgy-pudding": "^3.5.1" } @@ -4261,8 +4307,8 @@ }, "stream-each": { "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "requires": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -4688,16 +4734,16 @@ }, "unique-filename": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { "imurmurhash": "^0.1.4" } @@ -4761,22 +4807,6 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", diff --git a/package.json b/package.json index 6b94186e..dbc9abdb 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "debug": "4.1.1", "event-stream": "3.3.4", "find-package-json": "1.2.0", - "glob": "7.1.3", + "glob": "7.1.4", "is-installed-globally": "0.1.0", "jmespath": "0.15.0", "joi": "13.1.0", @@ -44,15 +44,14 @@ "jsonwebtoken": "8.5.1", "lodash": "4.17.11", "moment": "2.24.0", - "npm-registry-fetch": "3.2.0", - "progress": "2.0.0", + "npm-registry-fetch": "3.9.1", + "progress": "2.0.3", "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", "superagent-proxy": "2.0.0", "superagent-throttle": "1.0.1", "tty-table": "2.7.0", - "url": "0.11.0", "uuid": "3.3.2", "yeoman-environment": "2.3.4" }, From e318056840fde5c6a8bbde705adb44939adbda11 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 17 Jul 2019 16:23:33 -0500 Subject: [PATCH 108/864] version bump for lodash, set-value, mixin-deep (#203) * version bump for lodash, set-value, mixin-deep * bumping generator-cortex --- package-lock.json | 382 +++++++++++++++++++++++----------------------- package.json | 6 +- 2 files changed, 194 insertions(+), 194 deletions(-) diff --git a/package-lock.json b/package-lock.json index 74d80c6e..45910760 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@c12e/generator-cortex": { - "version": "0.3.19", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.19.tgz", - "integrity": "sha1-MRkj6gRdKWjqI8vu6dsrbTX0oFE=", + "version": "0.3.21", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.21.tgz", + "integrity": "sha1-lOLD1oYloo6AgUOOlh+zdfI3mys=", "requires": { "debug": "^3.1.0", "joi": "^13.1.2", @@ -17,16 +17,16 @@ "dependencies": { "debug": { "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { "ms": "^2.1.1" } }, "joi": { "version": "13.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.7.0.tgz", - "integrity": "sha1-z9hev+Z+ihkAQyQAtNA7vZP7h58=", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", + "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", "requires": { "hoek": "5.x.x", "isemail": "3.x.x", @@ -35,8 +35,8 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -236,11 +236,11 @@ "integrity": "sha1-cc5jg4APJO/JoaMwjzpuQgoJdNE=" }, "async": { - "version": "2.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-2.6.2.tgz", - "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "lodash": "^4.17.11" + "lodash": "^4.17.14" } }, "asynckit": { @@ -381,8 +381,8 @@ }, "binaryextensions": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-2.1.2.tgz", - "integrity": "sha1-yDw9dCM7p2dOTzE8sqK3D1TpS3w=" + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.2.tgz", + "integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==" }, "bluebird": { "version": "3.5.5", @@ -441,7 +441,7 @@ }, "breakword": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.3.tgz", "integrity": "sha1-ceCRu7eLtO8APPPtKy4GLGkn990=", "requires": { "wcwidth": "^1.0.1" @@ -455,8 +455,8 @@ }, "buffer-alloc": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -464,8 +464,8 @@ }, "buffer-alloc-unsafe": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=" + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" }, "buffer-equal-constant-time": { "version": "1.0.1", @@ -704,8 +704,8 @@ }, "cloneable-readable": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha1-EgoAywU7+2OiIucJ+Wg+ouEdjOw=", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "requires": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", @@ -727,7 +727,7 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/code-point-at/-/code-point-at-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collection-visit": { @@ -872,8 +872,8 @@ }, "dargs": { "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dargs/-/dargs-6.1.0.tgz", - "integrity": "sha1-HzubVjk+z4yqfL/WwxSW/8+5snI=" + "resolved": "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz", + "integrity": "sha512-5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==" }, "dashdash": { "version": "1.14.1", @@ -893,8 +893,8 @@ }, "dateformat": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha1-puN0maTZqc+F71hyBE1ikByYia4=" + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" }, "debug": { "version": "4.1.1", @@ -913,7 +913,7 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { @@ -940,8 +940,8 @@ }, "deep-extend": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=" + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "deep-is": { "version": "0.1.3", @@ -950,7 +950,7 @@ }, "defaults": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -958,7 +958,7 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" } } @@ -1002,7 +1002,7 @@ }, "degenerator": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { "ast-types": "0.x.x", @@ -1012,7 +1012,7 @@ "dependencies": { "esprima": { "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" } } @@ -1024,7 +1024,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-conflict": { @@ -1095,8 +1095,8 @@ }, "editions": { "version": "2.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/editions/-/editions-2.1.3.tgz", - "integrity": "sha1-cnzPPsLHsS3MZSxxAA8WxIJNb30=", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.1.3.tgz", + "integrity": "sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==", "requires": { "errlop": "^1.1.1", "semver": "^5.6.0" @@ -1104,15 +1104,15 @@ "dependencies": { "semver": { "version": "5.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", - "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" } } }, "ejs": { - "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ejs/-/ejs-2.6.1.tgz", - "integrity": "sha1-SY7A1JVlWrxvI81hho2SZGQHGqA=" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.2.tgz", + "integrity": "sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q==" }, "encoding": { "version": "0.1.12", @@ -1137,8 +1137,8 @@ }, "errlop": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/errlop/-/errlop-1.1.1.tgz", - "integrity": "sha1-2a5MdsPmSVbF155uA11jQ7/WIlA=", + "resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.1.tgz", + "integrity": "sha512-WX7QjiPHhsny7/PQvrhS5VMizXXKoKCS3udaBp8gjlARdbn+XmK300eKBAAN0hGyRaTCtRpOaxK+xFVPUJ3zkw==", "requires": { "editions": "^2.1.2" } @@ -1154,8 +1154,8 @@ }, "error-ex": { "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { "is-arrayish": "^0.2.1" } @@ -1723,7 +1723,7 @@ }, "ftp": { "version": "0.3.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { "readable-stream": "1.1.x", @@ -1732,12 +1732,12 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "~1.0.0", @@ -1748,7 +1748,7 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } @@ -1828,8 +1828,8 @@ }, "gh-got": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-6.0.0.tgz", - "integrity": "sha1-10NTAExuxGZkdSChC9RvcpnSaNA=", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", + "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", "requires": { "got": "^7.0.0", "is-plain-obj": "^1.1.0" @@ -1910,8 +1910,8 @@ }, "got": { "version": "7.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-7.1.0.tgz", - "integrity": "sha1-BUUP2ECU5rvqVvRRpDqcKJFmOFo=", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", "requires": { "decompress-response": "^3.2.0", "duplexer3": "^0.1.4", @@ -1981,18 +1981,18 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbol-support-x": { "version": "1.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha1-FAn5i8ACR9pF2mfO4KNvKC/yZFU=" + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" }, "has-to-string-tag-x": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha1-oEWrOD17SyASoAFIqwql8pAETU0=", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "requires": { "has-symbol-support-x": "^1.4.1" } @@ -2186,8 +2186,8 @@ }, "interpret": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=" + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" }, "invert-kv": { "version": "2.0.0", @@ -2389,8 +2389,8 @@ }, "isbinaryfile": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha1-XW3vPt6/boyoyunDAYOoBLX4voA=", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", "requires": { "buffer-alloc": "^1.2.0" } @@ -2420,8 +2420,8 @@ }, "istextorbinary": { "version": "2.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-2.5.1.tgz", - "integrity": "sha1-FKM4JM9rnV13Q+rBvivSwxDQzL0=", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.5.1.tgz", + "integrity": "sha512-pv/JNPWnfpwGjPx7JrtWTwsWsxkrK3fNzcEVnt92YKEIErps4Fsk49+qzCe9iQF2hjqK8Naqf8P9kzoeCuQI1g==", "requires": { "binaryextensions": "^2.1.2", "editions": "^2.1.3", @@ -2430,8 +2430,8 @@ }, "isurl": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha1-sn9PSfPNqj6kSgpbfzRi5u3DnWc=", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "requires": { "has-to-string-tag-x": "^1.2.0", "is-object": "^1.0.1" @@ -2627,13 +2627,13 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40=" + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" }, "lodash.get": { "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "lodash.includes": { @@ -2673,16 +2673,16 @@ }, "log-symbols": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { "chalk": "^2.0.1" } }, "lowercase-keys": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "4.1.5", @@ -2695,8 +2695,8 @@ }, "make-dir": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { "pify": "^3.0.0" } @@ -2804,8 +2804,8 @@ }, "through2": { "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -2825,8 +2825,8 @@ }, "mem-fs-editor": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", - "integrity": "sha1-UZciQWQL6FZ2gKBPetr/5fxgNmc=", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", + "integrity": "sha512-2Yt2GCYEbcotYbIJagmow4gEtHDqzpq5XN94+yAx/NT5+bGqIjkXnm3KCUQfE6kRfScGp9IZknScoGRKu8L78w==", "requires": { "commondir": "^1.0.1", "deep-extend": "^0.6.0", @@ -2843,8 +2843,8 @@ "dependencies": { "through2": { "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -2907,8 +2907,8 @@ }, "mimic-response": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.0.4", @@ -2952,9 +2952,9 @@ } }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -2962,8 +2962,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "^2.0.4" } @@ -3115,7 +3115,7 @@ }, "netmask": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" }, "nice-try": { @@ -3135,8 +3135,8 @@ }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -3193,7 +3193,7 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/number-is-nan/-/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { @@ -3335,12 +3335,12 @@ }, "p-cancelable": { "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha1-ueEjgAvOu3rBOkeb4ZW1B7mNMPo=" + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" }, "p-defer": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-defer/-/p-defer-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" }, "p-finally": { @@ -3475,8 +3475,8 @@ }, "path-parse": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-to-regexp": { "version": "1.7.0", @@ -3563,8 +3563,8 @@ }, "pretty-bytes": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pretty-bytes/-/pretty-bytes-5.2.0.tgz", - "integrity": "sha1-lsksbpWgs1BZJT+zPAPiYNQPWh8=" + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.2.0.tgz", + "integrity": "sha512-ujANBhiUsl9AhREUDUEY1GPOharMGm8x8juS7qOHybcLi7XsKfrYQ88hSly1l2i0klXHTDYrlL8ihMCG55Dc3w==" }, "process-nextick-args": { "version": "2.0.0", @@ -3622,7 +3622,7 @@ }, "proxy-from-env": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, "pseudomap": { @@ -3688,8 +3688,8 @@ }, "read-chunk": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-chunk/-/read-chunk-3.2.0.tgz", - "integrity": "sha1-KYSv54ypv7vbdLGTh7+ehiicFso=", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", "requires": { "pify": "^4.0.1", "with-open-file": "^0.1.6" @@ -3697,8 +3697,8 @@ "dependencies": { "pify": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" } } }, @@ -3714,8 +3714,8 @@ }, "read-pkg-up": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha1-GyIcYIi6d5lgHICPkRYcZuWPiXg=", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", "requires": { "find-up": "^3.0.0", "read-pkg": "^3.0.0" @@ -3819,12 +3819,12 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "require-uncached": { @@ -3839,8 +3839,8 @@ }, "resolve": { "version": "1.11.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha1-6hDYEQN2mC/vV434/DC5rDCgej4=", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "requires": { "path-parse": "^1.0.6" } @@ -3924,9 +3924,9 @@ } }, "rxjs": { - "version": "6.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", - "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", + "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", "requires": { "tslib": "^1.9.0" } @@ -3961,13 +3961,13 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -4005,8 +4005,8 @@ }, "shelljs": { "version": "0.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shelljs/-/shelljs-0.8.3.tgz", - "integrity": "sha1-p/MxlSDr8J7oEnWyNorbKGZZsJc=", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", "requires": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -4194,8 +4194,8 @@ }, "spdx-correct": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -4203,22 +4203,22 @@ }, "spdx-exceptions": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=" + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha1-dezRqI3owYTvAV6vtRtbSL/RG7E=" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" }, "split": { "version": "0.3.3", @@ -4294,7 +4294,7 @@ }, "statuses": { "version": "1.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stream-combiner": { @@ -4522,8 +4522,8 @@ }, "textextensions": { "version": "2.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-2.4.0.tgz", - "integrity": "sha1-ahQ6mFRkOEzCz/Ea6kSM1bAY5ys=" + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.4.0.tgz", + "integrity": "sha512-qftQXnX1DzpSV8EddtHIT0eDDEiBF8ywhFYR2lI9xrGtxqKN+CvLXhACeCIGbCpQfxxERbrkZEFb8cZcDKbVZA==" }, "through": { "version": "2.3.8", @@ -4532,15 +4532,15 @@ }, "through2": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-3.0.1.tgz", - "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "requires": { "readable-stream": "2 || 3" } }, "thunkify": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" }, "timed-out": { @@ -4631,9 +4631,9 @@ } }, "tslib": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" }, "tty-table": { "version": "2.7.0", @@ -4697,18 +4697,18 @@ }, "underscore": { "version": "1.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/underscore/-/underscore-1.7.0.tgz", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" + "set-value": "^2.0.1" }, "dependencies": { "extend-shallow": { @@ -4720,14 +4720,14 @@ } }, "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" } } } @@ -4750,7 +4750,7 @@ }, "unpipe": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unset-value": { @@ -4791,8 +4791,8 @@ }, "untildify": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha1-HntCsUC8/ZIrIucMoSZb/jY0x8k=" + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" }, "uri-js": { "version": "4.2.2", @@ -4837,8 +4837,8 @@ }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -4864,8 +4864,8 @@ }, "vinyl": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha1-2FsH2pbkWNJbL/4Z/s6fLKoT7YY=", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "requires": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -4930,7 +4930,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -4946,7 +4946,7 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "widest-line": { @@ -4959,8 +4959,8 @@ }, "with-open-file": { "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/with-open-file/-/with-open-file-0.1.6.tgz", - "integrity": "sha1-C8F47Kt19rqsiuEcheB0RdaQ6lA=", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.6.tgz", + "integrity": "sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==", "requires": { "p-finally": "^1.0.0", "p-try": "^2.1.0", @@ -4969,8 +4969,8 @@ "dependencies": { "pify": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" } } }, @@ -4981,7 +4981,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "^1.0.1", @@ -4990,12 +4990,12 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "^1.0.0" @@ -5003,7 +5003,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -5013,7 +5013,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -5037,7 +5037,7 @@ }, "xregexp": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" }, "xtend": { @@ -5091,9 +5091,9 @@ } }, "yeoman-environment": { - "version": "2.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.3.4.tgz", - "integrity": "sha1-rhVhR6G4Xek5Nm5UOLAMs+tUw+k=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.4.0.tgz", + "integrity": "sha512-SsvoL0RNAFIX69eFxkUhwKUN2hG1UwUjxrcP+T2ytwdhqC/kHdnFOH2SXdtSN1Ju4aO4xuimmzfRoheYY88RuA==", "requires": { "chalk": "^2.4.1", "cross-spawn": "^6.0.5", @@ -5114,26 +5114,26 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "chardet": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=" + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "debug": { "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { "ms": "^2.1.1" } }, "external-editor": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha1-WGbbKal4Jtvkvzr9JAcOrZ6kOic=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -5141,9 +5141,9 @@ } }, "inquirer": { - "version": "6.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-6.3.1.tgz", - "integrity": "sha1-ekE7XnlQgRATo9tJHGHR87d26Oc=", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", "requires": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", @@ -5151,7 +5151,7 @@ "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.4.0", @@ -5162,8 +5162,8 @@ "dependencies": { "strip-ansi": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { "ansi-regex": "^4.1.0" } @@ -5171,16 +5171,16 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, "yeoman-generator": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-generator/-/yeoman-generator-3.2.0.tgz", - "integrity": "sha1-Agd9LX/yj+3B7X2tf5ln/Xw2BMw=", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-3.2.0.tgz", + "integrity": "sha512-iR/qb2je3GdXtSfxgvOXxUW0Cp8+C6LaZaNlK2BAICzFNzwHtM10t/QBwz5Ea9nk6xVDQNj4Q889TjCXGuIv8w==", "requires": { "async": "^2.6.0", "chalk": "^2.3.0", diff --git a/package.json b/package.json index dbc9abdb..a18aad83 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.19", + "@c12e/generator-cortex": "0.3.21", "boxen": "1.3.0", "chalk": "2.4.2", "cli-table": "0.3.1", @@ -42,7 +42,7 @@ "js-yaml": "3.13.1", "jsonpath": "1.0.2", "jsonwebtoken": "8.5.1", - "lodash": "4.17.11", + "lodash": "4.17.14", "moment": "2.24.0", "npm-registry-fetch": "3.9.1", "progress": "2.0.3", @@ -53,7 +53,7 @@ "superagent-throttle": "1.0.1", "tty-table": "2.7.0", "uuid": "3.3.2", - "yeoman-environment": "2.3.4" + "yeoman-environment": "2.4.0" }, "devDependencies": { "chai": "4.2.0", From ac2b028914bbbac8d4478ddb169e6ef4de6ef2f2 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 17 Jul 2019 18:31:37 -0500 Subject: [PATCH 109/864] Make cortex actions deploy --push-docker support/allow local images (#204) --- src/client/actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/actions.js b/src/client/actions.js index 28859e87..4c76ddc6 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -329,7 +329,7 @@ module.exports = class Actions { const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, jsonwebtoken.decode(token).tenant); await callMe(`docker login -u cli --password ${token} ${registryUrl}`); - await callMe(`docker pull ${imageClean}`); + await callMe(`docker pull ${imageClean} || echo "Docker pull failed using local image"`); await callMe(`docker tag ${imageClean} ${cortexImageUrl}`); await callMe(`docker push ${cortexImageUrl}`); return cortexImageUrl; From 6c31fde0f4218e1b83c9de6c46d29cdaae2ed65a Mon Sep 17 00:00:00 2001 From: clee Date: Thu, 18 Jul 2019 14:12:41 -0500 Subject: [PATCH 110/864] bumped generator version to `0.3.22` --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45910760..9753668e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@c12e/generator-cortex": { - "version": "0.3.21", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.21.tgz", - "integrity": "sha1-lOLD1oYloo6AgUOOlh+zdfI3mys=", + "version": "0.3.22", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.22.tgz", + "integrity": "sha1-sFEyxfRWKkO8EfBq4+uy4qbJTIY=", "requires": { "debug": "^3.1.0", "joi": "^13.1.2", diff --git a/package.json b/package.json index a18aad83..bb6c9ac4 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.21", + "@c12e/generator-cortex": "0.3.22", "boxen": "1.3.0", "chalk": "2.4.2", "cli-table": "0.3.1", From 0a067e073362c47eb1782ad78dabe8867b8eefee Mon Sep 17 00:00:00 2001 From: Omar Eid Date: Thu, 3 Oct 2019 11:13:44 -0500 Subject: [PATCH 111/864] Release/v0.12.20 (#215) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports * Ccf 11947 parse float dev (#207) * CCF-11947 parse vcpus as a float * CCF-11947 parse vcpus as a float * CCF-11830 handle zeros in mem and vcpus (#209) * CCF-11830 handle zeros in mem and vcpus * CCF-11830 handle zeros in ttl * bumped generator version to `0.3.24` * Tolerate daemon logs as array or structured response (#208) * Bump version to 0.12.19 (#211) * CCF-12167 Change compatibility errors to warnings (#214) * CCF-12167 Change compatibility errors to warnings * Change console.print -> printWarning * tweaks per pr comments * Fix per review comments, updated test case to match new warning only behavior when unable to contact npm central * Improvements to graph client and command client. (#213) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. * Taking next non released version post this: https://github.com/CognitiveScale/cortex-cli/pull/211 * Fixed issue with some invalid counts being returned in cli when publishing profile events. Also better errors for invalid events. --- README.md | 1 + bin/cortex-marketplace-agents.js | 146 + bin/cortex-marketplace-connections.js | 146 + bin/cortex-marketplace-datasets.js | 146 + bin/cortex-marketplace-skills.js | 147 + bin/cortex-marketplace.js | 37 + bin/cortex-profiles.js | 26 + bin/cortex.js | 1 + package-lock.json | 5213 ------------------------- package.json | 6 +- src/client/actions.js | 12 +- src/client/graph.js | 56 +- src/client/marketplace.js | 190 + src/commands/actions.js | 4 +- src/commands/configure.js | 19 + src/commands/graph.js | 233 +- src/commands/marketplace.js | 249 ++ src/commands/profiles.js | 51 +- src/commands/utils.js | 13 +- src/compatibility.js | 42 +- test/client/compatibility.js | 10 +- 21 files changed, 1436 insertions(+), 5312 deletions(-) create mode 100644 bin/cortex-marketplace-agents.js create mode 100644 bin/cortex-marketplace-connections.js create mode 100644 bin/cortex-marketplace-datasets.js create mode 100644 bin/cortex-marketplace-skills.js create mode 100644 bin/cortex-marketplace.js delete mode 100644 package-lock.json create mode 100644 src/client/marketplace.js create mode 100644 src/commands/marketplace.js diff --git a/README.md b/README.md index 214faf84..bfee41a1 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ cortex agents list --query "[].{name: name, title: title}" - [x] describe-schema - [x] delete-schema - [x] list + - [x] list-versions - [x] describe - [x] delete - [x] rebuild diff --git a/bin/cortex-marketplace-agents.js b/bin/cortex-marketplace-agents.js new file mode 100644 index 00000000..8469b6e0 --- /dev/null +++ b/bin/cortex-marketplace-agents.js @@ -0,0 +1,146 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + SaveResourceCommand, + ListResourceCommand, + DescribeResourceCommand, + DeleteResourceCommand, + SearchResourceCommand, + InstallResourceCommand, +} = require('../src/commands/marketplace'); + +program.description('Work with Cortex Marketplace Agents'); + +// Save agent in marketplace +program + .command('save ') + .description('Save agent in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((agentDefinitionZip, options) => { + try { + new SaveResourceCommand(program, 'agent').execute(agentDefinitionZip, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List agents of marketplace +program + .command('list') + .description('List agents in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--sort [sort]', 'To sort agents by any field') + .option('--offset [offset]', 'Skip the number of agents in the response') + .option('--limit [limit]', 'Limit the number of agents in the response') + .option('--all', 'List all private and public agents', false) + .action(withCompatibilityCheck((options) => { + try { + new ListResourceCommand(program, 'agent').execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe agent of marketplace +program + .command('describe ') + .description('Get details of a agent from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((agentName, options) => { + try { + new DescribeResourceCommand(program, 'agent').execute(agentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete agent from marketplace +program + .command('delete ') + .description('Delete an agent from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((agentName, options) => { + try { + new DeleteResourceCommand(program, 'agent').execute(agentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Search agent in marketplace +program + .command('search [searchString]') + .description('Search agents in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'Filter query(a JSON string) to search') + .option('--sort [sort]', 'To sort agents by any field') + .option('--offset [offset]', 'Skip the number of agents in the response') + .option('--limit [limit]', 'Limit the number of agents in the response') + .option('--all', 'Search on all private and public agents', false) + .action(withCompatibilityCheck((searchString, options) => { + try { + new SearchResourceCommand(program, 'agent').execute(searchString, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Install agent from marketplace +program + .command('install ') + .description('Install a agent from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((agentName, options) => { + try { + new InstallResourceCommand(program, 'agent').execute(agentName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace-connections.js b/bin/cortex-marketplace-connections.js new file mode 100644 index 00000000..6d17c1a2 --- /dev/null +++ b/bin/cortex-marketplace-connections.js @@ -0,0 +1,146 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + SaveResourceCommand, + ListResourceCommand, + DescribeResourceCommand, + DeleteResourceCommand, + SearchResourceCommand, + InstallResourceCommand, +} = require('../src/commands/marketplace'); + +program.description('Work with Cortex Marketplace Connections'); + +// Save connection in marketplace +program + .command('save ') + .description('Save connection in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((connectionDefinitionZip, options) => { + try { + new SaveResourceCommand(program, 'connection').execute(connectionDefinitionZip, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List connections of marketplace +program + .command('list') + .description('List connections in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--sort [sort]', 'To sort connections by any field') + .option('--offset [offset]', 'Skip the number of connections in the response') + .option('--limit [limit]', 'Limit the number of connections in the response') + .option('--all', 'List all private and public connections', false) + .action(withCompatibilityCheck((options) => { + try { + new ListResourceCommand(program, 'connection').execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe connection of marketplace +program + .command('describe ') + .description('Get details of a connection from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DescribeResourceCommand(program, 'connection').execute(connectionName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete connection from marketplace +program + .command('delete ') + .description('Delete a connection from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DeleteResourceCommand(program, 'connection').execute(connectionName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Search connection in marketplace +program + .command('search [searchString]') + .description('Search connections in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'Filter query(a JSON string) to search') + .option('--sort [sort]', 'To sort connections by any field') + .option('--offset [offset]', 'Skip the number of connections in the response') + .option('--limit [limit]', 'Limit the number of connections in the response') + .option('--all', 'Search on all private and public connections', false) + .action(withCompatibilityCheck((searchString, options) => { + try { + new SearchResourceCommand(program, 'connection').execute(searchString, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Install connection from marketplace +program + .command('install ') + .description('Install a connection from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((connectionName, options) => { + try { + new InstallResourceCommand(program, 'connection').execute(connectionName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace-datasets.js b/bin/cortex-marketplace-datasets.js new file mode 100644 index 00000000..8ff33b0c --- /dev/null +++ b/bin/cortex-marketplace-datasets.js @@ -0,0 +1,146 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + SaveResourceCommand, + ListResourceCommand, + DescribeResourceCommand, + DeleteResourceCommand, + SearchResourceCommand, + InstallResourceCommand, +} = require('../src/commands/marketplace'); + +program.description('Work with Cortex Marketplace Datasets'); + +// Save dataset in marketplace +program + .command('save ') + .description('Save dataset in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((datasetDefinitionZip, options) => { + try { + new SaveResourceCommand(program, 'dataset').execute(datasetDefinitionZip, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List datasets of marketplace +program + .command('list') + .description('List datasets in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--sort [sort]', 'To sort datasets by any field') + .option('--offset [offset]', 'Skip the number of datasets in the response') + .option('--limit [limit]', 'Limit the number of datasets in the response') + .option('--all', 'List all private and public datasets', false) + .action(withCompatibilityCheck((options) => { + try { + new ListResourceCommand(program, 'dataset').execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe dataset of marketplace +program + .command('describe ') + .description('Get details of a dataset from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((datasetName, options) => { + try { + new DescribeResourceCommand(program, 'dataset').execute(datasetName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete dataset from marketplace +program + .command('delete ') + .description('Delete a dataset from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((datasetName, options) => { + try { + new DeleteResourceCommand(program, 'dataset').execute(datasetName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Search dataset in marketplace +program + .command('search [searchString]') + .description('Search datasets in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'Filter query(a JSON string) to search') + .option('--sort [sort]', 'To sort datasets by any field') + .option('--offset [offset]', 'Skip the number of datasets in the response') + .option('--limit [limit]', 'Limit the number of datasets in the response') + .option('--all', 'Search on all private and public datasets', false) + .action(withCompatibilityCheck((searchString, options) => { + try { + new SearchResourceCommand(program, 'dataset').execute(searchString, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Install dataset from marketplace +program + .command('install ') + .description('Install a dataset from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((datasetName, options) => { + try { + new InstallResourceCommand(program, 'dataset').execute(datasetName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace-skills.js b/bin/cortex-marketplace-skills.js new file mode 100644 index 00000000..e7a716d7 --- /dev/null +++ b/bin/cortex-marketplace-skills.js @@ -0,0 +1,147 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + SaveResourceCommand, + ListResourceCommand, + DescribeResourceCommand, + DeleteResourceCommand, + SearchResourceCommand, + InstallResourceCommand, +} = require('../src/commands/marketplace'); + +program.description('Work with Cortex Marketplace Skills'); + +// Save Skill in marketplace +program + .command('save ') + .description('Save skill in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((skillDefinitionZip, options) => { + try { + new SaveResourceCommand(program, 'skill').execute(skillDefinitionZip, options); + } + catch (err) { + console.log(err); + console.error(chalk.red(err.message)); + } + })); + +// List Skills of marketplace +program + .command('list') + .description('List skills in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--sort [sort]', 'To sort skills by any field') + .option('--offset [offset]', 'Skip the number of skills in the response') + .option('--limit [limit]', 'Limit the number of skills in the response') + .option('--all', 'List all private and public skills', false) + .action(withCompatibilityCheck((options) => { + try { + new ListResourceCommand(program, 'skill').execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Skill of marketplace +program + .command('describe ') + .description('Get details of a skill from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((skillName, options) => { + try { + new DescribeResourceCommand(program, 'skill').execute(skillName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Skill from marketplace +program + .command('delete ') + .description('Delete a skill from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((skillName, options) => { + try { + new DeleteResourceCommand(program, 'skill').execute(skillName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Search Skill in marketplace +program + .command('search [searchString]') + .description('Search skills in marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'Filter query(a JSON string) to search') + .option('--sort [sort]', 'To sort skills by any field') + .option('--offset [offset]', 'Skip the number of skills in the response') + .option('--limit [limit]', 'Limit the number of skills in the response') + .option('--all', 'Search on all private and public skills', false) + .action(withCompatibilityCheck((searchString, options) => { + try { + new SearchResourceCommand(program, 'skill').execute(searchString, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Install Skill from marketplace +program + .command('install ') + .description('Install a skill from marketplace') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((skillName, options) => { + try { + new InstallResourceCommand(program, 'skill').execute(skillName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace.js b/bin/cortex-marketplace.js new file mode 100644 index 00000000..03c5d411 --- /dev/null +++ b/bin/cortex-marketplace.js @@ -0,0 +1,37 @@ +#!/usr/bin/env node + +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const identity = require('lodash/fp/identity'); + +const program = require('../src/commander'); + +program + .description('Cortex Marketplace CLI') + .command('agents [cmd]', 'Work with Cortex Marketplace Agents') + .command('datasets [cmd]', 'Work with Cortex Marketplace Datasets') + .command('connections [cmd]', 'Work with Cortex Marketplace Connections') + .command('skills [cmd]', 'Work with Cortex Marketplace Skills'); + +program.parse(process.argv, { noActionHandler: function() { + +}}); + +if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { + program.outputHelp(identity); + process.exit(1); +} \ No newline at end of file diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js index 0f8fb419..af79735e 100755 --- a/bin/cortex-profiles.js +++ b/bin/cortex-profiles.js @@ -24,6 +24,7 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { SaveProfileSchemaCommand, ListProfileSchemasCommand, + ListProfileVersionsCommand, DescribeProfileSchemaCommand, DeleteProfileSchemaCommand, ListProfilesCommand, @@ -128,10 +129,35 @@ program } })); +// List Profile Versions +program + .command('list-versions [schemaName]') + .description('List Profile Versoins') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--before [before]', 'Filter versions before a sepcific date.') + .option('--after [after]', 'Filter versions after a sepcific date.') + .option('--limit [limit]', 'Limit the number of events returned.') + .action(withCompatibilityCheck((profileId, schemaName, options) => { + try { + new ListProfileVersionsCommand(program).execute(profileId, schemaName, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + + // Describe Profile program .command('describe [schemaName]') .description('Describe Profile Schema') + .option('--historic', 'Describe the historic version of the profile.') + .option('--versionLimit [versionLimit]', 'Limit the version of the profile being described.') + .option('--attribute [attribute]', 'Describe a specific attribute in the profile.') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex.js b/bin/cortex.js index f27ca511..4cae155b 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -41,6 +41,7 @@ program .command('tasks [cmd]', 'Work with Cortex v2 Tasks') .command('types [cmd]', 'Work with Cortex Types') .command('variables [cmd]', 'Work with Cortex Secure Variables') + .command('marketplace [cmd]', 'Work with Cortex Marketplace') .command('experiments [cmd]', 'Work with Cortex Experiments') .command('profiles [cmd]', 'Work with Cortex Profiles') .command('graph [cmd]', 'Work with the Cortex Graph'); diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 9753668e..00000000 --- a/package-lock.json +++ /dev/null @@ -1,5213 +0,0 @@ -{ - "name": "cortex-cli", - "version": "0.12.18", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@c12e/generator-cortex": { - "version": "0.3.22", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.22.tgz", - "integrity": "sha1-sFEyxfRWKkO8EfBq4+uy4qbJTIY=", - "requires": { - "debug": "^3.1.0", - "joi": "^13.1.2", - "superagent": "^3.8.2", - "yeoman-generator": "^3.1.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "joi": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", - "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", - "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=" - }, - "@types/node": { - "version": "8.10.48", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-8.10.48.tgz", - "integrity": "sha1-44UHNWFkOpumGZoZhf/ANTD5B4E=" - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=", - "dev": true - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } - }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "ajv": { - "version": "6.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=" - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "^1.9.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", - "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=" - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-types": { - "version": "0.12.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-types/-/ast-types-0.12.4.tgz", - "integrity": "sha1-cc5jg4APJO/JoaMwjzpuQgoJdNE=" - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" - }, - "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=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=" - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "binaryextensions": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.2.tgz", - "integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==" - }, - "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==" - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha1-VcbDmouljZxhrSLNh3Uy3rZlogs=", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "breakword": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.3.tgz", - "integrity": "sha1-ceCRu7eLtO8APPPtKy4GLGkn990=", - "requires": { - "wcwidth": "^1.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", - "dev": true - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" - }, - "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chai": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.2.0.tgz", - "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", - "dev": true, - "requires": { - "check-error": "^1.0.2" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chownr": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", - "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==" - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-table": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "requires": { - "colors": "1.0.3" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "co-prompt": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", - "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", - "requires": { - "keypress": "~0.2.1" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.0.tgz", - "integrity": "sha1-1YuytcHuj4ew00ACfp6U4iLFpCI=" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha1-3YojVTB1L5iPmghE8/xYnjERElw=" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "csv": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-4.0.0.tgz", - "integrity": "sha1-x95EuaD9R/ehDbJAZFGfZCp86S0=", - "requires": { - "csv-generate": "^2.2.2", - "csv-parse": "^3.1.2", - "csv-stringify": "^4.3.1", - "stream-transform": "^1.0.7" - } - }, - "csv-generate": { - "version": "2.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-generate/-/csv-generate-2.2.2.tgz", - "integrity": "sha1-w3gIxfPq0t7slAeUBz3TLUkq39E=" - }, - "csv-parse": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-parse/-/csv-parse-3.2.0.tgz", - "integrity": "sha1-kEO1kh5+zV4xEJR98e8A0pDb7Kc=" - }, - "csv-stringify": { - "version": "4.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-stringify/-/csv-stringify-4.3.1.tgz", - "integrity": "sha1-e+4290bvVV3Ugac1qeKTiWX4R4s=", - "requires": { - "lodash.get": "~4.4.2" - } - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" - }, - "dargs": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz", - "integrity": "sha512-5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-uri-to-buffer": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/data-uri-to-buffer/-/data-uri-to-buffer-2.0.1.tgz", - "integrity": "sha1-yo9W/jix/TKUc+nRtKmvzYzhwEU=", - "requires": { - "@types/node": "^8.0.7" - } - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" - }, - "debug": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "requires": { - "ms": "^2.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - } - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "degenerator": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", - "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", - "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "detect-conflict": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", - "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" - }, - "diff": { - "version": "3.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "editions": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/editions/-/editions-2.1.3.tgz", - "integrity": "sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==", - "requires": { - "errlop": "^1.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - } - } - }, - "ejs": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.2.tgz", - "integrity": "sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q==" - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", - "requires": { - "once": "^1.4.0" - } - }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" - }, - "errlop": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.1.tgz", - "integrity": "sha512-WX7QjiPHhsny7/PQvrhS5VMizXXKoKCS3udaBp8gjlARdbn+XmK300eKBAAN0hGyRaTCtRpOaxK+xFVPUJ3zkw==", - "requires": { - "editions": "^2.1.2" - } - }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es6-promise": { - "version": "4.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promise/-/es6-promise-4.2.6.tgz", - "integrity": "sha1-toXt2CWIhjZepitX0w3ij63Nl08=" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.11.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-1.11.1.tgz", - "integrity": "sha1-xIX/jWtM24nif0qFbpHxGEAcpRA=", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "optional": true - } - } - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "4.0.2", - "text-table": "~0.2.0" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "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=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", - "dev": true - } - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha1-PzGA+y4pEBdxastMnW1bXDSmqB0=", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-3.5.4.tgz", - "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", - "dev": true, - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=", - "dev": true, - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "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" - }, - "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" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-glob": { - "version": "2.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha1-pdW2l+yN7aRo2Fp0A1KQoCWpUpU=", - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-package-json": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "requires": { - "locate-path": "^3.0.0" - } - }, - "first-chunk-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", - "requires": { - "readable-stream": "^2.0.2" - } - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "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=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "formidable": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha1-cPt8oCkO5v+WEJBBX0s989IIJlk=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=" - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-uri": { - "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-uri/-/get-uri-2.0.3.tgz", - "integrity": "sha1-+hM1Iml4HXUWLG/IE8npBTI/urU=", - "requires": { - "data-uri-to-buffer": "2", - "debug": "4", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "3" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "readable-stream": { - "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.3.0.tgz", - "integrity": "sha1-y4ARqtAC63F78EApH+uoVpyYb7k=", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "get-value": { - "version": "2.0.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=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "gh-got": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", - "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", - "requires": { - "got": "^7.0.0", - "is-plain-obj": "^1.1.0" - } - }, - "github-username": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", - "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", - "requires": { - "gh-got": "^6.0.0" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "requires": { - "ini": "^1.3.4" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true - }, - "globby": { - "version": "8.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-8.0.2.tgz", - "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=" - }, - "grouped-queue": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", - "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", - "requires": { - "lodash": "^4.17.2" - } - }, - "growl": { - "version": "1.10.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", - "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hoek": { - "version": "5.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hoek/-/hoek-5.0.4.tgz", - "integrity": "sha1-D3+icKHK/rNkpLLd+qM/hk5BV9o=" - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=" - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", - "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" - }, - "is-scoped": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", - "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", - "requires": { - "scoped-regex": "^1.0.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "requires": { - "buffer-alloc": "^1.2.0" - } - }, - "isemail": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha1-WTEKAhkxqfsGu7UeFVzgs/I2gyw=", - "requires": { - "punycode": "2.x.x" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "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=" - }, - "istextorbinary": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.5.1.tgz", - "integrity": "sha512-pv/JNPWnfpwGjPx7JrtWTwsWsxkrK3fNzcEVnt92YKEIErps4Fsk49+qzCe9iQF2hjqK8Naqf8P9kzoeCuQI1g==", - "requires": { - "binaryextensions": "^2.1.2", - "editions": "^2.1.3", - "textextensions": "^2.4.0" - } - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" - }, - "joi": { - "version": "13.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.1.0.tgz", - "integrity": "sha1-Wee4cUuTKh40LDWD1YQdcWn/GCI=", - "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, - "jsonpath": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonpath/-/jsonpath-1.0.2.tgz", - "integrity": "sha1-5qrmgdA+mne0ZR1dlurF/GOx/RM=", - "requires": { - "esprima": "1.2.2", - "static-eval": "2.0.2", - "underscore": "1.7.0" - }, - "dependencies": { - "esprima": { - "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" - } - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - } - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "keypress": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", - "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", - "requires": { - "invert-kv": "^2.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "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=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "^2.0.1" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, - "make-fetch-happen": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", - "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.3.3", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" - } - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem/-/mem-4.3.0.tgz", - "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" - } - } - }, - "mem-fs": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", - "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", - "requires": { - "through2": "^2.0.0", - "vinyl": "^1.1.0", - "vinyl-file": "^2.0.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - } - } - }, - "mem-fs-editor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", - "integrity": "sha512-2Yt2GCYEbcotYbIJagmow4gEtHDqzpq5XN94+yAx/NT5+bGqIjkXnm3KCUQfE6kRfScGp9IZknScoGRKu8L78w==", - "requires": { - "commondir": "^1.0.1", - "deep-extend": "^0.6.0", - "ejs": "^2.5.9", - "glob": "^7.0.3", - "globby": "^8.0.1", - "isbinaryfile": "^3.0.2", - "mkdirp": "^0.5.0", - "multimatch": "^2.0.0", - "rimraf": "^2.2.8", - "through2": "^2.0.0", - "vinyl": "^2.0.1" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "merge2": { - "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha1-fumdvWm7ZIFoklPwGEiKG5ArDtU=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime/-/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=" - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha1-bYrlCPWRZ/lA8rWzxKYSrlDJCuY=", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.15.1.tgz", - "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "moment": { - "version": "2.24.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.24.0.tgz", - "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "netmask": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", - "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" - }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", - "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-package-arg": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", - "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", - "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-registry-fetch": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", - "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", - "requires": { - "JSONStream": "^1.3.4", - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^4.0.2", - "npm-package-arg": "^6.1.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=" - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" - }, - "pac-proxy-agent": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", - "integrity": "sha1-EdV4tyoWStdL+dW6yf9GKjgoJDI=", - "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "pac-resolver": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-resolver/-/pac-resolver-3.0.0.tgz", - "integrity": "sha1-auoweH2wqJFwTet4AKcip2FabyY=", - "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" - } - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "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==" - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", - "requires": { - "pify": "^3.0.0" - } - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "requires": { - "through": "~2.3" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "pretty-bytes": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.2.0.tgz", - "integrity": "sha512-ujANBhiUsl9AhREUDUEY1GPOharMGm8x8juS7qOHybcLi7XsKfrYQ88hSly1l2i0klXHTDYrlL8ihMCG55Dc3w==" - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - } - }, - "proxy-agent": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-agent/-/proxy-agent-3.1.0.tgz", - "integrity": "sha1-PPhu6RHJSHTeQ1nzfv2d4lFXwRM=", - "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "pac-proxy-agent": "^3.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.1.31", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/psl/-/psl-1.1.31.tgz", - "integrity": "sha1-6aqG0BAbWxBcvpOsa3hM1UcnYYQ=" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "read-chunk": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", - "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", - "requires": { - "pify": "^4.0.1", - "with-open-file": "^0.1.6" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "request": { - "version": "2.88.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/request/-/request-2.88.0.tgz", - "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", - "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.0", - "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.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=" - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - }, - "rewire": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-4.0.1.tgz", - "integrity": "sha1-uhEA1ACp2nWf5Zn8bgIz8Iee1to=", - "dev": true, - "requires": { - "eslint": "^4.19.1" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "*" - } - }, - "rxjs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", - "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" - }, - "scoped-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", - "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" - }, - "semver": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.5.0.tgz", - "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shelljs": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", - "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "smart-buffer": { - "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.0.2.tgz", - "integrity": "sha1-UgeFjDgVzGkRBwPGuU5GwVY0OV0=" - }, - "smartwrap": { - "version": "1.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smartwrap/-/smartwrap-1.0.11.tgz", - "integrity": "sha1-7o+Fh4v6yJwfpNoz4Id/cpqOKnQ=", - "requires": { - "breakword": "^1.0.3", - "wcwidth": "^1.0.1", - "yargs": "^12.0.5" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socks": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.3.2.tgz", - "integrity": "sha1-reOI6ebYf9sRZJwVdGxXiSKliD4=", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "4.0.2" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", - "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" - }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "requires": { - "through": "2" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", - "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" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "static-eval": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha1-LRdZMGsb76aIk4RUxUa3hx+AakI=", - "requires": { - "escodegen": "^1.8.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "requires": { - "duplexer": "~0.1.1" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, - "stream-transform": { - "version": "1.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-transform/-/stream-transform-1.0.8.tgz", - "integrity": "sha1-VPchEi0xDsqFWhbJeTmIGrW7t2w=" - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^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=" - }, - "strip-bom-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", - "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", - "requires": { - "first-chunk-stream": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "superagent": { - "version": "3.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-3.8.2.tgz", - "integrity": "sha1-5KEbnQR/fT7+s7vlNtnsACHRZAM=", - "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.1.1", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.0.5" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "superagent-mocker": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/superagent-mocker/-/superagent-mocker-0.5.2.tgz", - "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", - "dev": true, - "requires": { - "path-to-regexp": "^1.1.0" - } - }, - "superagent-proxy": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-proxy/-/superagent-proxy-2.0.0.tgz", - "integrity": "sha1-n1dRXNZg4unOVcDmvXD5LrB8PuA=", - "requires": { - "debug": "^3.1.0", - "proxy-agent": "3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "superagent-throttle": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-throttle/-/superagent-throttle-1.0.1.tgz", - "integrity": "sha1-XrOp0BNwssMgbXqQ6o8ESDaUA9M=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "requires": { - "has-flag": "^3.0.0" - } - }, - "table": { - "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-4.0.2.tgz", - "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", - "dev": true, - "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - } - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "^0.7.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "textextensions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.4.0.tgz", - "integrity": "sha512-qftQXnX1DzpSV8EddtHIT0eDDEiBF8ywhFYR2lI9xrGtxqKN+CvLXhACeCIGbCpQfxxERbrkZEFb8cZcDKbVZA==" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "requires": { - "readable-stream": "2 || 3" - } - }, - "thunkify": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", - "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" - }, - "topo": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/topo/-/topo-3.0.3.tgz", - "integrity": "sha1-1aZ/suaTB+vusIQC7Coqb1962Vw=", - "requires": { - "hoek": "6.x.x" - }, - "dependencies": { - "hoek": { - "version": "6.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hoek/-/hoek-6.1.3.tgz", - "integrity": "sha1-c7fTOVLgH+J6OLBFcpS3ndjaJCw=" - } - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - }, - "tty-table": { - "version": "2.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tty-table/-/tty-table-2.7.0.tgz", - "integrity": "sha1-DgOzdDWgQKntj3g6m7yalmCSHp8=", - "requires": { - "chalk": "^2.4.2", - "csv": "^4.0.0", - "smartwrap": "^1.0.11", - "strip-ansi": "^5.0.0", - "wcwidth": "^1.0.1", - "yargs": "^12.0.5" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } - } - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "untildify": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { - "prepend-http": "^1.0.1" - } - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "requires": { - "builtins": "^1.0.3" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", - "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0", - "strip-bom-stream": "^2.0.0", - "vinyl": "^1.1.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - } - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "widest-line": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w=", - "requires": { - "string-width": "^2.1.1" - } - }, - "with-open-file": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.6.tgz", - "integrity": "sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==", - "requires": { - "p-finally": "^1.0.0", - "p-try": "^2.1.0", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" - } - } - }, - "yeoman-environment": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.4.0.tgz", - "integrity": "sha512-SsvoL0RNAFIX69eFxkUhwKUN2hG1UwUjxrcP+T2ytwdhqC/kHdnFOH2SXdtSN1Ju4aO4xuimmzfRoheYY88RuA==", - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "diff": "^3.5.0", - "escape-string-regexp": "^1.0.2", - "globby": "^8.0.1", - "grouped-queue": "^0.3.3", - "inquirer": "^6.0.0", - "is-scoped": "^1.0.0", - "lodash": "^4.17.10", - "log-symbols": "^2.2.0", - "mem-fs": "^1.1.0", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "untildify": "^3.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "yeoman-generator": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-3.2.0.tgz", - "integrity": "sha512-iR/qb2je3GdXtSfxgvOXxUW0Cp8+C6LaZaNlK2BAICzFNzwHtM10t/QBwz5Ea9nk6xVDQNj4Q889TjCXGuIv8w==", - "requires": { - "async": "^2.6.0", - "chalk": "^2.3.0", - "cli-table": "^0.3.1", - "cross-spawn": "^6.0.5", - "dargs": "^6.0.0", - "dateformat": "^3.0.3", - "debug": "^4.1.0", - "detect-conflict": "^1.0.0", - "error": "^7.0.2", - "find-up": "^3.0.0", - "github-username": "^4.0.0", - "istextorbinary": "^2.2.1", - "lodash": "^4.17.10", - "make-dir": "^1.1.0", - "mem-fs-editor": "^5.0.0", - "minimist": "^1.2.0", - "pretty-bytes": "^5.1.0", - "read-chunk": "^3.0.0", - "read-pkg-up": "^4.0.0", - "rimraf": "^2.6.2", - "run-async": "^2.0.0", - "shelljs": "^0.8.0", - "text-table": "^0.2.0", - "through2": "^3.0.0", - "yeoman-environment": "^2.0.5" - } - } - } -} diff --git a/package.json b/package.json index bb6c9ac4..9dd3475c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.18", + "version": "0.12.20", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -25,7 +25,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.22", + "@c12e/generator-cortex": "0.3.24", "boxen": "1.3.0", "chalk": "2.4.2", "cli-table": "0.3.1", @@ -52,6 +52,8 @@ "superagent-proxy": "2.0.0", "superagent-throttle": "1.0.1", "tty-table": "2.7.0", + "through2": "3.0.1", + "url": "0.11.0", "uuid": "3.3.2", "yeoman-environment": "2.4.0" }, diff --git a/src/client/actions.js b/src/client/actions.js index 4c76ddc6..c39e4741 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -75,9 +75,9 @@ module.exports = class Actions { if (docker) req.field('docker', docker); if (kind) req.field('kind', kind); - if (memory) req.field('memory', memory); - if (vcpus) req.field('vcpus', vcpus); - if (ttl) req.field('ttl', ttl); + if (_.isFinite(memory)) req.field('memory', memory); + if (_.isFinite(vcpus)) req.field('vcpus', vcpus); + if (!_.isNil(ttl)) req.field('ttl', ttl); if (code) req.attach('code', code); if (command) req.field('command', command); if (port) req.field('port', port); @@ -137,7 +137,11 @@ module.exports = class Actions { .set('Authorization', `Bearer ${token}`) .then((res) => { if (res.ok) { - return {success: true, logs: res.body}; + if (_.isArray(res.body)) { + // returns plain array for Rancher daemons + return {success: true, logs: res.body}; + } + return res.body; } return {success: false, status: res.status, message: res.body}; }) diff --git a/src/client/graph.js b/src/client/graph.js index e2344aec..e1fcda0a 100644 --- a/src/client/graph.js +++ b/src/client/graph.js @@ -15,7 +15,7 @@ */ const Throttle = require('superagent-throttle'); -const debug = require('debug')('cortex:cli'); +const debug = require('debug')('cortex:cli:graph'); const _ = require('lodash'); const chalk = require('chalk'); const { constructError } = require('../commands/utils'); @@ -23,6 +23,7 @@ const { request } = require('../commands/apiutils'); const createEndpoints = (baseUri) => { return { + profileVersions: `${baseUri}/v3/graph/profile-versions`, profiles: `${baseUri}/v3/graph/profiles`, schemas: `${baseUri}/v3/graph/profiles/schemas`, events: `${baseUri}/v3/graph/events`, @@ -71,7 +72,31 @@ class Graph { }); } - describeProfile(token, profileId, schemaName) { + listProfileVersions(token, profileId, schemaNames, before, after, limit) { + const endpoint = `${this.endpoints.profileVersions}/${profileId}`; + debug('listProfileVersions(%s) => GET %s', profileId, endpoint); + const req = request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true); + + if (schemaNames) req.query({ schemaNames }); + if (before) req.query({ before }); + if (after) req.query({ after }); + if (limit) req.query({ limit }); + + return req.then((res) => { + if (res.ok) { + return { success: true, versions: res.body.versions }; + } + return { success: false, message: res.body, status: res.status }; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeProfile(token, profileId, schemaName, historic, versionLimit, attribute) { const endpoint = `${this.endpoints.profiles}/${profileId}`; debug('describeProfile(%s) => GET %s', profileId, endpoint); @@ -81,10 +106,11 @@ class Graph { .set('x-cortex-proxy-notify', true); if (schemaName) req.query({ schemaNames: schemaName }); + if (historic) req.query({ historic }); + if (versionLimit) req.query({ versionLimit }); + if (attribute) req.query({ attributes: attribute }); return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); if (res.ok) { return {success: true, profile: res.body}; } @@ -157,6 +183,28 @@ class Graph { return request .post(this.endpoints.events) .use(throttle.plugin()) + .retry(3, (err, res) => { + if (err) { + debug(`retry on error: ${err}`); + return true; + } + + if (res) { + // Retry on 502, 503, 504 - gateway errors + if (res.status >= 502 && res.status <= 504) { + debug(`server/gateway error with status ${res.status}, retrying request`); + return true; + } + + // Retry on 429 - rate limit + if (res.status == 429) { + debug(`retry after rate limit exceeded`); + return true; + } + } + + return false; + }) .set('Authorization', `Bearer ${token}`) .set('x-cortex-proxy-notify', true) .type('json') diff --git a/src/client/marketplace.js b/src/client/marketplace.js new file mode 100644 index 00000000..880236ab --- /dev/null +++ b/src/client/marketplace.js @@ -0,0 +1,190 @@ +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { request } = require('../commands/apiutils'); +const debug = require('debug')('cortex:cli'); +const _ = require('lodash'); +const chalk = require('chalk'); +const { constructError } = require('../commands/utils'); + +module.exports = class Resource { + + constructor(baseUrl) { + this.marketplaceUrl = `${baseUrl}/v3/marketplace`; + this.marketplaceUrlV4 = `${baseUrl}/v4/marketplace`; + this.baseUrl = baseUrl; + } + + saveResource(resourceType, zipFilePath, token) { + const endpoint = `${this.marketplaceUrlV4}/admin/resource/${resourceType}`; + debug('saveResource(%s) => %s', resourceType, endpoint); + return request + .post(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .accept('application/json') + .attach('content', zipFilePath) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, resource: res.body.resource}; + } + return {success: false, message: res.body, status: res.status}; + }) + .catch((err) => { + return constructError(err); + }); + } + + listResourcesByType(resourceType, token, privateOnly, sort, offset, limit) { + const endpoint = `${this.marketplaceUrl}/resource/${resourceType}?offset=${offset}&limit=${limit}&private=${privateOnly}&sort=${sort}`; + debug('listResources() => %s', endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, resources: res.body.resources}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + + describeResource(resourceType, namespace, resourceName, token) { + const endpoint = `${this.marketplaceUrl}/resource/${resourceType}/${namespace}/${resourceName}`; + debug('describeResource(%s) => %s', resourceName, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, resource: res.body.resource}; + } + else { + return {success: false, message: res.body.details, status: res.status}; + } + }) + .catch((err) => { + return constructError(err); + }); + } + + deleteResource(resourceType, namespace, resourceName, token) { + const endpoint = `${this.marketplaceUrl}/resource/${resourceType}/${namespace}/${resourceName}`; + debug('deleteResource(%s) => %s', resourceName, endpoint); + return request + .delete(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, status: res.body.status}; + } + else { + return {success: false, message: res.body.message, status: res.body.status}; + } + }) + .catch((err) => { + return constructError(err); + }); + } + + searchResources(resourceType, searchObject, token, privateOnly, sort, offset, limit) { + const endpoint = `${this.marketplaceUrl}/resource/search?offset=${offset}&limit=${limit}&private=${privateOnly}&sort=${sort}`; + debug('searchResourcesByType(%s) => %s', resourceType, endpoint); + return request + .post(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .send(searchObject) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, resources: res.body.resources }; + } + else { + return {success: false, message: res.body.message, status: res.body.status}; + } + }) + .catch((err) => { + return constructError(err); + }); + } + + + installResource(resourceType, namespace, resourceName, token) { + const endpoint = `${this.marketplaceUrlV4}/resource/${resourceType}/${namespace}/${resourceName}/install`; + debug('installResource(%s) => %s', resourceName, endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return res.body; // Response contains success and response attribute. So no need to explicitly provide it. + } + else { + return {success: false, message: res.body.message, status: res.body.status}; + } + }) + .catch((err) => { + return constructError(err); + }); + } + + executeResource(resourceType, namespace, resourceName, token, inputParams, route) { + const endpoint = `${this.marketplaceUrl}/resource/${resourceType}/${namespace}/${resourceName}/execute`; + const body = { + inputParams: inputParams, + route: route, + } + debug('executeResource(%s) => %s', resourceName, endpoint); + return request + .post(endpoint) + .set('Authorization', `Bearer ${token}`) + .set('x-cortex-proxy-notify', true) + .send(body) + .then((res) => { + if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + console.error(chalk.blue('Request proxied to cloud.')); + if (res.ok) { + return {success: true, response: res.body }; + } + else { + return {success: false, message: res.body.message, status: res.body.status}; + } + }) + .catch((err) => { + return constructError(err); + }); + } + +}; \ No newline at end of file diff --git a/src/commands/actions.js b/src/commands/actions.js index d5f09465..e4a71ba4 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -104,7 +104,7 @@ module.exports.DeployActionCommand = class { const dockerImage = options.docker; const code = options.code; const memory = parseInt(options.memory); - const vcpus = parseInt(options.vcpus); + const vcpus = parseFloat(options.vcpus); const ttl = options.ttl; const actionType = options.actionType; const cmd = options.cmd; @@ -157,7 +157,7 @@ module.exports.InvokeActionCommand = class { if (options.memory) params.properties['memory'] =parseInt(options.memory); if (options.vcpus) - params.properties['vcpus'] =parseInt(options.vcpus); + params.properties['vcpus'] =parseFloat(options.vcpus); // Set the API Endpoint and Token if not specified if (!params.apiEndpoint) params.apiEndpoint = profile.url; diff --git a/src/commands/configure.js b/src/commands/configure.js index 99329880..12d01be1 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -79,6 +79,25 @@ module.exports.ConfigureCommand = class { debug('account: %s', account); debug('username: %s', username); + if (!cortexUrl.match(/^[a-zA-Z]+:\/\//)) { + cortexUrl = 'http://' + cortexUrl; + } + + if (!cortexUrl) { + console.error(chalk.red('Cortex URL must be provided')); + return; + } + + if (!account) { + console.error(chalk.red('Cortex account name must be provided')); + return; + } + + if (!username) { + console.error(chalk.red('Cortex username must be provided')); + return; + } + const auth = new Auth(cortexUrl); try { const authResp = yield auth.login(account, username, password); diff --git a/src/commands/graph.js b/src/commands/graph.js index 1884698c..387a86ab 100644 --- a/src/commands/graph.js +++ b/src/commands/graph.js @@ -22,6 +22,8 @@ const Table = require('tty-table'); const ProgressBar = require('progress'); const jp = require('jsonpath'); const path = require('path'); +const through2 = require('through2'); + const { loadProfile } = require('../config'); const { Graph } = require('../client/graph'); const { printSuccess, printError, filterObject, countLinesInFile, printTable } = require('./utils'); @@ -29,10 +31,12 @@ const { printSuccess, printError, filterObject, countLinesInFile, printTable } = const _reserved = ['$match', '$path', '$transform', '$name']; const _systemEvents = ['$set', '$unset', '$delete']; +const progressBarConfig = 'publishing [:bar] :current/:total :rate evt/s :elapsed s' ; + const applyTemplate = (t, target) => { const { $match, $path, $transform, $name } = t; - debug('applying template to target:', target); + debug(`applying template to target: ${JSON.stringify(target, null, 4)}`); // Match condition, if specified, this must eval to true, otherwise the template is skipped if ($match) { @@ -94,6 +98,33 @@ const fixUnicodeKeys = (obj) => { return result; }; +function castValue(value) { + if (_.isNumber(value) || _.isString(value) || _.isBoolean(value)) { + return { value }; + } + if (_.isArray(value)) { + return { + value: _.map(value, (x) => _.isString(x) ? castValue(x) : x) + }; + + } + // Construct Dimensional from Object + if (_.isObject(value)) { + return { + value: _.map( + _.entries(value), + entry => { + const [k, v] = entry; + return { + dimensionId: k, + dimensionValue: castValue(v), + }; + } + ) + } + } +} + /** * Automatically generate attribute events for system events (e.g. $set) * @param {object} evt @@ -115,9 +146,7 @@ const autoAttributes = (evt) => { source, meta, eventLabel, - properties: { - value: properties[k] - } + properties: castValue(properties[k]), })); } @@ -177,85 +206,169 @@ class PublishEventsCommand { debug('%s.executePublishEvents()', profile.name); const graph = new Graph(profile.url); - let eventCount = 0; - const errors = []; - - const publishEvent = async (event, bar) => { - if (!event) return; + // Multiple Event Transformers can be specified in the same file ... + const lineCountIsDynamic = (options.transform || options.auto || _.isEmpty(file)); - debug('publishing event: ', event); - eventCount++; + const publishEvent = async (events, bar) => { + if (_.isEmpty(events)) return; + debug(`publishing ${_.size(events)} events`); + debug(`publishing events: ${JSON.stringify(events)}`); + let rs; + if (options.tracking) { - rs = await graph.track(profile.token, event); + rs = await graph.track(profile.token, events); } else { - rs = await graph.publishEntities(profile.token, event); + rs = await graph.publishEntities(profile.token, events); } - if (!rs.success) errors.push(rs.message); - if (bar) bar.tick(); + if (bar && events.length > 0) bar.tick(events.length); + + if (!rs.success) { + throw Error(rs.message); + } }; - const printEvent = (event, bar) => { - if (!event) return; + // Git conflict - this was not async before ... + const printEvent = async (events, bar) => { + if (!events) return; + events.forEach((e) => console.log(JSON.stringify(e))); + }; - eventCount++; + function list_can_handle_element_without_going_over_size(batch_size, element_size, max_size) { + const batch_size_delta_if_elem_added = element_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty + return batch_size + batch_size_delta_if_elem_added <= max_size + } + + function batchElementsUntilSize(max_size) { + let batch = []; + let batch_size = JSON.stringify(batch).length; + + function handler(event, encoding, callback) { + const max_event_size = max_size - 2; // Handling [] + const event_size = JSON.stringify(event).length; + + if (event_size > max_event_size) { + debug(`Event too large at ${event_size}B. Max Size: ${max_event_size}B. Event: ${JSON.stringify(event)}`); + } + else if (list_can_handle_element_without_going_over_size(batch_size, event_size, max_size)) { + batch.push(event); + batch_size += event_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty [] + } + else { + debug(`LIMIT REACHED ${batch_size}, PUSHING ${batch.length} elements.`); + this.push(batch); + batch = []; + batch_size = JSON.stringify(batch).length; + } + callback(); + } - console.log(JSON.stringify(event)); - }; + function flusher(callback) { + if (!_.isEmpty(batch)) { + this.push(batch); + batch = []; + batch_size = JSON.stringify(batch).length; + } + callback(); + } + return { + batchHandler: handler, + batchFlusher: flusher, + }; + } const processStream = (stream, resolve, reject, bar) => { - const tasks = []; - stream.pipe(split()) - .on('data', (line) => { - if (_.isEmpty(line)) return; - - const obj = JSON.parse(line); - let events = [obj]; - - if (options.transform) { - debug('loading templates from: ', path.resolve(options.transform)); - const templates = require(path.resolve(options.transform)); - debug('loaded templates:', templates); - events = templates.map((t) => applyTemplate(t, obj)).filter(e => e !== null); + // Moved here ... we dont know how many events are being pushed ... even if a file is specified ... + bar = !_.isEmpty(bar) ? bar : ( + new ProgressBar(progressBarConfig, { total: 0, width: 65 }) + ); + const { batchHandler, batchFlusher, } = batchElementsUntilSize(1024 * 100); + stream + .pipe(split()) + // Cast to JSONs + .pipe(through2.obj( + function (line, encoding, callback){ + if (!_.isEmpty(line)) { + this.push(JSON.parse(line)); + } + callback(); } - - if (options.auto) { - const autoAttrs = _.flatten(events.map((evt) => autoAttributes(evt))); - debug(`Generated ${autoAttrs.length} attribute events`); - events = events.concat(autoAttrs); + )) + // Transform and Expand Auto Attributes ... + .pipe(through2.obj( + function (event, encoding, callback) { + let events = [event]; + + if (options.transform) { + debug('loading templates from: ', path.resolve(options.transform)); + const templates = require(path.resolve(options.transform)); + debug('loaded templates:', templates); + // The event gets completely replaced in this case ... since we are saying it needs to be + // transformed ... thats why concat is not used here ... + events = _.map( + templates, + (t) => applyTemplate(t, event), + ).filter(e => e !== null); + } + + if (options.auto) { + const autoAttrs = _.flatten(events.map((evt) => autoAttributes(evt))); + debug(`Generated ${autoAttrs.length} attribute events`); + events = events.concat(autoAttrs); + } + events.forEach((e) => this.push(e)); + callback(); } - - debug('# events to publish:', events.length); - - let task = publishEvent; - if (options.dryRun) { - task = printEvent; + )) + // Batch Based on Size + .pipe(through2({ objectMode: true }, batchHandler, batchFlusher)) + .pipe(through2( + // Only upload 1 batch at a time! + { objectMode: true, highWaterMark: 5 }, + function (batch_of_events_to_upload, encoding, callback) { + if (lineCountIsDynamic){ + bar.total += _.size(batch_of_events_to_upload); + } + let task = options.dryRun ? printEvent : publishEvent; + task(batch_of_events_to_upload, bar) + .then((response) => { + this.push(response); + callback(); + }) + .catch((error) => { + printError(`Error uploading event batch: ${error.message}`, options, false); + callback(); + }); } - - events.forEach((e) => tasks.push(task(e, bar))); + )) + .on('data', (response_from_batch_publish) => { + debug(`# Response from events published : ${response_from_batch_publish}`); }) .on('error', (err) => reject(err)) - .on('end', () => Promise.all(tasks).then(() => { - printSuccess(`Processed ${eventCount} events with ${errors.length} errors`); - if (errors.length > 0) { - printError(`First error: ${errors[0]}`, options, false); + .on('end', () => { + if(!options.dryRun) { + printError(`Finished processing ${bar.total} events in batches.`, null, false); } - resolve({ eventCount, errors }); - }).catch(err => reject(err))); + bar.terminate(); + resolve({ eventCount: bar.total }); + }); }; if (file) { return countLinesInFile(file) .then((numLines) => { - printSuccess(`Publishing ${numLines} lines from file ${file}`); - const bar = new ProgressBar( - 'publishing [:bar] :current/:total :rate evt/s :elapsed s', - { total: numLines, width: 65 } - ); - + let bar = null; + if (!lineCountIsDynamic) { + bar = new ProgressBar( + progressBarConfig, { total: numLines, width: 65 } + ); + printError(`Publishing ${numLines} records from file ${file}`, null, false); + } else { + printError(`Publishing ??????????? records from file ${file}`, null, false); + } return new Promise((resolve, reject) => { const stream = fs.createReadStream(file); processStream(stream, resolve, reject, bar); @@ -287,9 +400,9 @@ class GetEntityCommand { .then((response) => { if (response.success) { let result = response.entity; - if (options.query) + if (options.query) { result = filterObject(result, options); - + } printSuccess(JSON.stringify(result, null, 2), options); } else { diff --git a/src/commands/marketplace.js b/src/commands/marketplace.js new file mode 100644 index 00000000..1bfc0646 --- /dev/null +++ b/src/commands/marketplace.js @@ -0,0 +1,249 @@ +/* + * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _ = require('lodash'); +const fs = require('fs'); +const yeoman = require('yeoman-environment'); +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Resource = require('../client/marketplace'); +const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); + +const getNamespaceAndResourceName = (resourceName) => { + if (_.isEmpty(resourceName)) { throw new SyntaxError(`Invalid name ${resourceName} must conform to namespace/name:?version`); } + + if (resourceName.startsWith('/')) { throw new SyntaxError("Names cannot start with '/' "); } + + const parts = resourceName.split('/'); + if (!parts[1]) { + throw new SyntaxError('Provide a name with namespace'); + } + + return parts; +}; + +module.exports.SaveResourceCommand = class SaveResourceCommand { + + constructor(program, resourceType) { + this.program = program; + this.resourceType = resourceType; + } + + execute(resourceDefinitionZip, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSave%s(%s)', profile.name, _.upperFirst(this.resourceType), resourceDefinitionZip); + + const resource = new Resource(profile.url); + resource.saveResource(this.resourceType, resourceDefinitionZip, profile.token) + .then((response) => { + if (response.success) { + printSuccess(`${_.upperFirst(this.resourceType)} '${response.resource.name}' saved`, options); + } else { + printError(`Failed to save ${this.resourceType}: ${response.status} ${JSON.stringify(response.details || response.message)}`); + } + }) + .catch((err) => { + printError(`Failed to save ${this.resourceType}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListResourceCommand = class ListResourceCommand { + + constructor(program, resourceType) { + this.program = program; + this.resourceType = resourceType; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeList%s()', profile.name, _.upperFirst(this.resourceType)); + const sortBy = options.sort || ''; + const offset = options.offset || 0; + const limit = options.limit || 10; + const privateOnly = !(options.all || false); + + const resource = new Resource(profile.url); + resource.listResourcesByType(this.resourceType, profile.token, privateOnly, sortBy, offset, limit) + .then((response) => { + if (response.success) { + let result = filterObject(response.resources, options) || []; + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + { column: 'Title', field: 'title', width: 50 }, + { column: 'Name', field: 'name', width: 50 }, + { column: 'Version', field: '_version', width: 12 } + ]; + + printTable(tableSpec, result); + } + } else { + printError(`Failed to list ${this.resourceType}: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list ${this.resourceType}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DescribeResourceCommand = class DescribeResourceCommand { + + constructor(program, resourceType) { + this.program = program; + this.resourceType = resourceType; + } + + execute(resourceNameWithNamespace, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDescribe%(%s)', profile.name, _.upperFirst(this.resourceType), resourceNameWithNamespace); + + const [ namespace, resourceName ] = getNamespaceAndResourceName(resourceNameWithNamespace); + + const resource = new Resource(profile.url); + resource.describeResource(this.resourceType, namespace, resourceName, profile.token).then((response) => { + if (response.success) { + let result = filterObject(response.resource, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to describe ${this.resourceType} ${resourceNameWithNamespace}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe ${this.resourceType} ${resourceNameWithNamespace}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeleteResourceCommand = class DeleteResourceCommand { + + constructor(program, resourceType) { + this.program = program; + this.resourceType = resourceType; + } + + execute(resourceNameWithNamespace, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDelete%s(%s)', profile.name, _.upperFirst(this.resourceType), resourceNameWithNamespace); + + const [ namespace, resourceName ] = getNamespaceAndResourceName(resourceNameWithNamespace); + + const resource = new Resource(profile.url); + resource.deleteResource(this.resourceType, namespace, resourceName, profile.token).then((response) => { + if (response.success) { + let result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to delete ${this.resourceType} ${resourceNameWithNamespace}: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete ${this.resourceType} ${resourceNameWithNamespace}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.SearchResourceCommand = class SearchResourceCommand { + + constructor(program, resourceType) { + this.program = program; + this.resourceType = resourceType; + } + + execute(searchString, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSearch%s(%s)', profile.name, _.upperFirst(this.resourceType), searchString); + const sortBy = options.sort || ''; + const offset = options.offset || 0; + const limit = options.limit || 10; + const privateOnly = !(options.all || false); + + const searchObject = { + _searchString: searchString || '', + _filter: { + resourceType: this.resourceType, + }, + }; + + if (options.filter) { + try { + const filterQuery = parseObject(options.filter, options); + Object.assign(searchObject._filter, filterQuery); + } catch (err) { + debug('Error parsing filterQuery: %e', err.message); + printError('filterQuery should be valid JSON string'); + } + } + + const resource = new Resource(profile.url); + resource.searchResources(this.resourceType, searchObject, profile.token, privateOnly, sortBy, offset, limit).then((response) => { + if (response.success) { + const result = filterObject(response.resources, options) || []; + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const tableSpec = [ + { column: 'Title', field: 'title', width: 50 }, + { column: 'Name', field: 'name', width: 50 }, + { column: 'Version', field: '_version', width: 12 } + ]; + + printTable(tableSpec, result); + } + } else { + printError(`Failed to search ${this.resourceType}: [status:${response.status}] ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to search ${this.resourceType}: [status:${err.status}] ${err.message}`, options); + }); + } +}; + +module.exports.InstallResourceCommand = class InstallResourceCommand { + + constructor(program, resourceType) { + this.program = program; + this.resourceType = resourceType; + } + + execute(resourceNameWithNamespace, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSearch%s(%s)', profile.name, _.upperFirst(this.resourceType), resourceNameWithNamespace); + + const [ namespace, resourceName ] = getNamespaceAndResourceName(resourceNameWithNamespace); + + const resource = new Resource(profile.url); + resource.installResource(this.resourceType, namespace, resourceName, profile.token).then((response) => { + if (response.success) { + let result = filterObject(response, options) || []; + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to install ${this.resourceType} ${resourceNameWithNamespace}: ${response.details || response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to install ${this.resourceType} ${resourceNameWithNamespace}: ${err.status} ${err.message}`, options); + }); + } +}; diff --git a/src/commands/profiles.js b/src/commands/profiles.js index 8d975f9b..fccb2204 100644 --- a/src/commands/profiles.js +++ b/src/commands/profiles.js @@ -202,6 +202,51 @@ class ListProfilesCommand { } } + +class ListProfileVersionsCommand { + constructor(program) { + this.program = program; + } + + execute(profileId, schemaName, options) { + const profile = loadProfile(options.profile); + const { before, after, limit } = options; + debug( + '%s.executeListProfileVersionsCommand(%s) Options:[%s][%s][%s]', + profile.name, profileId, before, after, limit + ); + const graph = new Graph(profile.url); + graph.listProfileVersions(profile.token, profileId, schemaName, before, after, limit) + .then((response) => { + if (response.success) { + let result = response.versions; + if (options.query) { + result = filterObject(result, options); + } + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + const tableSpec = [ + { column: 'Profile ID', field: 'profileId', width: 50 }, + { column: 'Profile Schema', field: 'profileSchema', width: 50 }, + { column: 'Version', field: 'version', width: 12 }, + { column: 'Created At', field: 'createdAt', width: 40 } + ]; + + printTable(tableSpec, result); + } + } + else { + printError(`Failed to list profile versions: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list profile versions: ${err.status} ${err.message}`, options); + }); + } +} + class DescribeProfileCommand { constructor(program) { this.program = program; @@ -209,10 +254,11 @@ class DescribeProfileCommand { execute(profileId, schemaName, options) { const profile = loadProfile(options.profile); - debug('%s.executeDescribeProfile(%s)', profile.name, profileId); + const { historic, versionLimit, attribute } = options; + debug(`${profile.name}.executeDescribeProfile(${profileId}) [${historic}][${versionLimit}][${attribute}]`); const graph = new Graph(profile.url); - graph.describeProfile(profile.token, profileId, schemaName) + graph.describeProfile(profile.token, profileId, schemaName, historic, versionLimit, attribute) .then((response) => { if (response.success) { let result = filterObject(response.profile, options); @@ -279,6 +325,7 @@ class RebuildProfilesCommand { module.exports = { SaveProfileSchemaCommand, + ListProfileVersionsCommand, ListProfileSchemasCommand, DescribeProfileSchemaCommand, DeleteProfileSchemaCommand, diff --git a/src/commands/utils.js b/src/commands/utils.js index d0b9caf7..6da9413d 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -209,14 +209,23 @@ function formatServiceInputParameter(inputParameter){ } module.exports.countLinesInFile = (filePath) => { + // Bug ... this code ignores the final line that does not end with a new line ... thats why leftovers was added return new Promise((resolve, reject) => { let count = 0; + let leftovers = true; fs.createReadStream(filePath) .on('error', e => reject(e)) .on('data', chunk => { - for (let i=0; i < chunk.length; ++i) if (chunk[i] == 10) count++; + for (let i=0; i < chunk.length; ++i) { + if (chunk[i] == 10) { + count++; + leftovers = false; + } else { + leftovers = true; + } + } }) - .on('end', () => resolve(count)); + .on('end', () => leftovers ? resolve(count + 1) : resolve(count) ); }); }; diff --git a/src/compatibility.js b/src/compatibility.js index b319b91a..970eea9d 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -28,9 +28,8 @@ const npmFetch = require('npm-registry-fetch'); const { request } = require('./commands/apiutils'); const semver = require('semver'); const uniq = require('lodash/fp/uniq'); - const { loadProfile } = require('./config'); -const { printError } = require('../src/commands/utils'); +const { printError, printWarning } = require('../src/commands/utils'); const pkg = findPackageJson(__dirname).next().value; @@ -41,7 +40,7 @@ function getAvailableVersions(name) { .then(manifest => keys(getOr({}, 'versions', manifest))) .then(versions => uniq(concat(versions, pkg.version))) .then(versions => versions.sort(semver.compare)) - .catch((error) => { + .catch(_ => { throw new Error('Unable to determine CLI available versions'); }); } @@ -92,29 +91,34 @@ function upgradeRequired(args) { process.exit(-1); } -function getCompatibility(profile) { +async function getCompatibility(profile) { debug('getCompatibility => %s profile', profile.name); - return Promise - .all([ - getAvailableVersions(pkg.name), - getRequiredVersion(profile) - ]) - .then(([versions, requirements]) => { + try{ + // fail if unable to contact cortex service + const requirements = await getRequiredVersion(profile); + const satisfied = semver.satisfies(pkg.version, requirements); + try { + // warn user but don't fail + const versions = await getAvailableVersions(pkg.name); debug('getCompatibility => versions: %s, requirements: %s', versions, requirements); const compatibleVersions = filter(v => semver.satisfies(v, requirements), versions); debug('getCompatibility => compatible versions: %s', compatibleVersions); - const { version: current } = pkg; + const {version: current} = pkg; const latest = last(compatibleVersions); - const satisfied = semver.satisfies(pkg.version, requirements); debug('getCompatibility => satisfied: %s', satisfied); - return ({ current, latest, satisfied }); - }); -}; + return ({current, latest, satisfied}); + }catch (e) { + printWarning(`Warning unable to check for cortex-cli update: ${e.message}`); + return ({current: pkg.version, latest: pkg.version, satisfied}); + } + }catch (e) { + throw new Error(`Unable to contact cortex: ${e.message}`); + } +} function withCompatibilityCheck(fn) { return (...args) => { const options = last(args) || {}; - if (options.compat) { const { profile: profileName } = options; const profile = loadProfile(profileName); @@ -132,13 +136,13 @@ function withCompatibilityCheck(fn) { .catch((error) => { printError(error); }); - } + } return Promise.resolve().then(() => fn(...args)); }; -}; +} module.exports = { getCompatibility, withCompatibilityCheck -} \ No newline at end of file +}; diff --git a/test/client/compatibility.js b/test/client/compatibility.js index 158afef6..395c5033 100644 --- a/test/client/compatibility.js +++ b/test/client/compatibility.js @@ -100,7 +100,7 @@ describe('compatibility checks', function () { }); }); - describe('when the NPM registry cannot be reached', () => { + describe('when the compatibility service cannot be reached', () => { let requestMock; let revertCompatibilityModule; @@ -127,7 +127,7 @@ describe('compatibility checks', function () { }); }); - describe('when the compatibility API cannot be reached', () => { + describe('when the npm cannot be reached', () => { let requestMock; let revertCompatibilityModule; @@ -149,8 +149,10 @@ describe('compatibility checks', function () { requestMock.unmock(superagent); }); - it('should reject', () => { - return expect(compatibilityModule.getCompatibility(profile)).to.be.rejected; + it('should not reject', () => { + // should default to current package version... + const expected = { current: pkg.version, latest: pkg.version, satisfied: true }; + return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); }); }); }); \ No newline at end of file From d207e2e4583ff6207b3742c835bd1e6b5b31f1b3 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Wed, 24 Jul 2019 16:51:23 -0500 Subject: [PATCH 112/864] Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9dd3475c..c40e4590 100644 --- a/package.json +++ b/package.json @@ -64,4 +64,4 @@ "rewire": "4.0.1", "superagent-mocker": "0.5.2" } -} +} \ No newline at end of file From 8a5ac35faa0f050c984400983afed4b3a46ca950 Mon Sep 17 00:00:00 2001 From: clee Date: Thu, 25 Jul 2019 16:01:37 -0500 Subject: [PATCH 113/864] bumped generator version to `0.3.24` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c40e4590..9dd3475c 100644 --- a/package.json +++ b/package.json @@ -64,4 +64,4 @@ "rewire": "4.0.1", "superagent-mocker": "0.5.2" } -} \ No newline at end of file +} From 3936162844f89ca2cf70e64b70be80146d6dfd89 Mon Sep 17 00:00:00 2001 From: Christine Draper Date: Fri, 26 Jul 2019 14:06:24 -0500 Subject: [PATCH 114/864] Bump version to 0.12.19 (#211) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9dd3475c..c40e4590 100644 --- a/package.json +++ b/package.json @@ -64,4 +64,4 @@ "rewire": "4.0.1", "superagent-mocker": "0.5.2" } -} +} \ No newline at end of file From 5ac8e11889e874c7d4ed36534bbcea9759021cb1 Mon Sep 17 00:00:00 2001 From: Matt Sanchez Date: Fri, 20 Sep 2019 13:34:54 -0500 Subject: [PATCH 115/864] Improvements to graph client and command client. (#213) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c40e4590..9dd3475c 100644 --- a/package.json +++ b/package.json @@ -64,4 +64,4 @@ "rewire": "4.0.1", "superagent-mocker": "0.5.2" } -} \ No newline at end of file +} From 4a98a73c5d74ce2a19200af4ae8ebd9489ebd4a7 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Tue, 1 Oct 2019 13:54:06 -0500 Subject: [PATCH 116/864] [CCF-12214] Specify custom HTTP User-Agent header value for all requests --- package.json | 3 +- src/client/content.js | 2 + src/client/experiments.js | 2 +- src/commands/apiutils.js | 7 ++- src/useragent.js | 25 ++++++++++ test/{client => }/compatibility.js | 2 +- test/useragent.js | 73 ++++++++++++++++++++++++++++++ 7 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 src/useragent.js rename test/{client => }/compatibility.js (98%) create mode 100644 test/useragent.js diff --git a/package.json b/package.json index 9dd3475c..b6220a4f 100644 --- a/package.json +++ b/package.json @@ -45,14 +45,15 @@ "lodash": "4.17.14", "moment": "2.24.0", "npm-registry-fetch": "3.9.1", + "os-name": "3.1.0", "progress": "2.0.3", "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", "superagent-proxy": "2.0.0", "superagent-throttle": "1.0.1", - "tty-table": "2.7.0", "through2": "3.0.1", + "tty-table": "2.7.0", "url": "0.11.0", "uuid": "3.3.2", "yeoman-environment": "2.4.0" diff --git a/src/client/content.js b/src/client/content.js index b96e6908..5d52faf4 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -23,6 +23,7 @@ const ProgressBar = require('progress'); const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); +const { getUserAgent } = require('../useragent'); module.exports = class Content { @@ -105,6 +106,7 @@ module.exports = class Content { 'Accept': 'application/json', 'Authorization': `Bearer ${token}`, 'Content-Type': contentType, + 'User-Agent': getUserAgent(), } }, function(err, res, body) { if (err) { diff --git a/src/client/experiments.js b/src/client/experiments.js index 5ce82212..d7e91759 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const ProgressBar = require('progress'); const { constructError } = require('../commands/utils'); diff --git a/src/commands/apiutils.js b/src/commands/apiutils.js index 79f7df35..a25fd06f 100644 --- a/src/commands/apiutils.js +++ b/src/commands/apiutils.js @@ -4,6 +4,7 @@ require('superagent-proxy')(superagentRequest); const debug = require('debug')('cortex:cli'); const { printWarning } = require('./utils'); +const { getUserAgent } = require('../useragent'); /** * makes a request via superagent. proxy methods will be utilized @@ -27,7 +28,8 @@ function requestWrapper() { bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .get(endpoint) - .proxy(proxyEnv); + .proxy(proxyEnv) + .set('User-Agent', getUserAgent()); }; this.delete = function(endpoint) { if (bypassProxy) return superagentRequest.delete(endpoint); @@ -36,6 +38,7 @@ function requestWrapper() { return superagentRequest .delete(endpoint) .proxy(proxyEnv) + .set('User-Agent', getUserAgent()); }; this.post = function(endpoint) { if (bypassProxy) return superagentRequest.post(endpoint); @@ -44,6 +47,7 @@ function requestWrapper() { return superagentRequest .post(endpoint) .proxy(proxyEnv) + .set('User-Agent', getUserAgent()); } this.put = function(endpoint) { if (bypassProxy) return superagentRequest.put(endpoint); @@ -52,6 +56,7 @@ function requestWrapper() { return superagentRequest .put(endpoint) .proxy(proxyEnv) + .set('User-Agent', getUserAgent()); } } diff --git a/src/useragent.js b/src/useragent.js new file mode 100644 index 00000000..f468edd9 --- /dev/null +++ b/src/useragent.js @@ -0,0 +1,25 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const findPackageJson = require('find-package-json'); +const os = require('os'); +const osName = require('os-name'); + +const pkg = findPackageJson(__dirname).next().value; + +module.exports.getUserAgent = function getUserAgent() { + return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; +} diff --git a/test/client/compatibility.js b/test/compatibility.js similarity index 98% rename from test/client/compatibility.js rename to test/compatibility.js index 395c5033..267de192 100644 --- a/test/client/compatibility.js +++ b/test/compatibility.js @@ -22,7 +22,7 @@ const semver = require('semver'); const superagent = require('superagent'); const superagentMock = require('superagent-mocker'); -const compatibilityModule = rewire('../../src/compatibility'); +const compatibilityModule = rewire('../src/compatibility'); chai.use(chaiAsPromised); const expect = chai.expect; diff --git a/test/useragent.js b/test/useragent.js new file mode 100644 index 00000000..de399c61 --- /dev/null +++ b/test/useragent.js @@ -0,0 +1,73 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chai = require("chai"); +const chaiAsPromised = require("chai-as-promised"); +const findPackageJson = require('find-package-json'); +const rewire = require('rewire'); +const superagent = require('superagent'); +const superagentMock = require('superagent-mocker'); + +const compatibilityModule = rewire('../src/compatibility'); + +chai.use(chaiAsPromised); +const expect = chai.expect; + +const pkg = findPackageJson(__dirname).next().value; + +describe('useragent', function () { + const profile = { + url: 'http://example.com', + account: 'testAccount', + tenantId: 'testTenant', + username: 'testUser', + token: 'testToken' + }; + + let requestMock; + let requestMockHeaders; + let revertCompatibilityModule; + + before(function () { + // Compatibility API call is as good as any to verify the request has user-agent, + // so mock it the same way we do for that test, adding capture of headers. + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + (req) => { + requestMockHeaders = req.headers; // Capture headers + return ({ ok: true, body: { semver: pkg.version } }); + } + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + }, + }); + + requestMockHeaders = {}; + }); + + after(function () { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should exist in request headers', function () { + return compatibilityModule.getCompatibility(profile).then(() => + expect(requestMockHeaders['user-agent']).to.include(`${pkg.name}/${pkg.version}`)); + }); +}); From 41093b4228dfb9c418f3c71bb9055282af28a98f Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Tue, 1 Oct 2019 14:50:28 -0500 Subject: [PATCH 117/864] 0.13.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b6220a4f..5c2d9d43 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.20", + "version": "0.13.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From f49a86a30fb19583d5593c1edab84464e1f567fd Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Tue, 22 Oct 2019 12:21:11 -0500 Subject: [PATCH 118/864] [CCF-11868] Add scaleCount option to action deploy --- bin/cortex-actions.js | 3 ++- src/client/actions.js | 3 ++- src/commands/actions.js | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 62bbb019..059aec15 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -150,7 +150,8 @@ program .option('--environment [environment]', 'Environment') .option('--cmd [cmd]', 'Command to be executed') //'["--daemon"]' .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') - .option('--push-docker', 'Push Docker image to the Cortex registry.') + .option('--push-docker', 'Push Docker image to the Cortex registry.') + .option('--scaleCount [count]', 'Scale count', 'Scale count, only used for daemon action types') .action(withCompatibilityCheck((actionName, options) => { try { if (!options.kind && !options.docker) { diff --git a/src/client/actions.js b/src/client/actions.js index c39e4741..321845b2 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -54,7 +54,7 @@ module.exports = class Actions { }); } - async deployAction(token, actionName, docker, kind, code, memory, vcpus, ttl, actionType, command, port, environment, environmentVariables, pushDocker) { + async deployAction(token, actionName, docker, kind, code, memory, vcpus, ttl, actionType, command, port, environment, environmentVariables, pushDocker, scaleCount) { let endpoint = `${this.endpointV3}`; if (actionType) { endpoint = `${endpoint}?actionType=${actionType}`; @@ -83,6 +83,7 @@ module.exports = class Actions { if (port) req.field('port', port); if (environment) req.field('environment', environment); if (environmentVariables) req.field('environmentVariables', environmentVariables); + if (_.isFinite(scaleCount)) req.field('scaleCount', scaleCount); return req.then((res) => { if (res.ok) { diff --git a/src/commands/actions.js b/src/commands/actions.js index e4a71ba4..2f04b316 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -112,9 +112,10 @@ module.exports.DeployActionCommand = class { const environment = options.environment; const environmentVariables = options.environmentVariables; const pushDocker = options.pushDocker; + const scaleCount = parseInt(options.scaleCount); const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, ttl, actionType, cmd, port, environment, environmentVariables, pushDocker) + actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, ttl, actionType, cmd, port, environment, environmentVariables, pushDocker, scaleCount) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); From ead056e0bbc810f33a90282e4fedf81a59e5951e Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Tue, 22 Oct 2019 12:25:03 -0500 Subject: [PATCH 119/864] 0.14.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5c2d9d43..e3eb51f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.13.0", + "version": "0.14.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 90109ca7e4accb9c63bd392a369010ba3b7c8504 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Fri, 25 Oct 2019 10:20:00 -0500 Subject: [PATCH 120/864] Nein, marketplace --- bin/cortex-marketplace-agents.js | 146 --------------- bin/cortex-marketplace-connections.js | 146 --------------- bin/cortex-marketplace-datasets.js | 146 --------------- bin/cortex-marketplace-skills.js | 147 --------------- bin/cortex-marketplace.js | 37 ---- bin/cortex.js | 1 - src/client/marketplace.js | 190 -------------------- src/commands/marketplace.js | 249 -------------------------- 8 files changed, 1062 deletions(-) delete mode 100644 bin/cortex-marketplace-agents.js delete mode 100644 bin/cortex-marketplace-connections.js delete mode 100644 bin/cortex-marketplace-datasets.js delete mode 100644 bin/cortex-marketplace-skills.js delete mode 100644 bin/cortex-marketplace.js delete mode 100644 src/client/marketplace.js delete mode 100644 src/commands/marketplace.js diff --git a/bin/cortex-marketplace-agents.js b/bin/cortex-marketplace-agents.js deleted file mode 100644 index 8469b6e0..00000000 --- a/bin/cortex-marketplace-agents.js +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - SaveResourceCommand, - ListResourceCommand, - DescribeResourceCommand, - DeleteResourceCommand, - SearchResourceCommand, - InstallResourceCommand, -} = require('../src/commands/marketplace'); - -program.description('Work with Cortex Marketplace Agents'); - -// Save agent in marketplace -program - .command('save ') - .description('Save agent in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((agentDefinitionZip, options) => { - try { - new SaveResourceCommand(program, 'agent').execute(agentDefinitionZip, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List agents of marketplace -program - .command('list') - .description('List agents in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--sort [sort]', 'To sort agents by any field') - .option('--offset [offset]', 'Skip the number of agents in the response') - .option('--limit [limit]', 'Limit the number of agents in the response') - .option('--all', 'List all private and public agents', false) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceCommand(program, 'agent').execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe agent of marketplace -program - .command('describe ') - .description('Get details of a agent from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((agentName, options) => { - try { - new DescribeResourceCommand(program, 'agent').execute(agentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete agent from marketplace -program - .command('delete ') - .description('Delete an agent from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((agentName, options) => { - try { - new DeleteResourceCommand(program, 'agent').execute(agentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Search agent in marketplace -program - .command('search [searchString]') - .description('Search agents in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'Filter query(a JSON string) to search') - .option('--sort [sort]', 'To sort agents by any field') - .option('--offset [offset]', 'Skip the number of agents in the response') - .option('--limit [limit]', 'Limit the number of agents in the response') - .option('--all', 'Search on all private and public agents', false) - .action(withCompatibilityCheck((searchString, options) => { - try { - new SearchResourceCommand(program, 'agent').execute(searchString, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Install agent from marketplace -program - .command('install ') - .description('Install a agent from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((agentName, options) => { - try { - new InstallResourceCommand(program, 'agent').execute(agentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace-connections.js b/bin/cortex-marketplace-connections.js deleted file mode 100644 index 6d17c1a2..00000000 --- a/bin/cortex-marketplace-connections.js +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - SaveResourceCommand, - ListResourceCommand, - DescribeResourceCommand, - DeleteResourceCommand, - SearchResourceCommand, - InstallResourceCommand, -} = require('../src/commands/marketplace'); - -program.description('Work with Cortex Marketplace Connections'); - -// Save connection in marketplace -program - .command('save ') - .description('Save connection in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((connectionDefinitionZip, options) => { - try { - new SaveResourceCommand(program, 'connection').execute(connectionDefinitionZip, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List connections of marketplace -program - .command('list') - .description('List connections in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--sort [sort]', 'To sort connections by any field') - .option('--offset [offset]', 'Skip the number of connections in the response') - .option('--limit [limit]', 'Limit the number of connections in the response') - .option('--all', 'List all private and public connections', false) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceCommand(program, 'connection').execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe connection of marketplace -program - .command('describe ') - .description('Get details of a connection from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DescribeResourceCommand(program, 'connection').execute(connectionName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete connection from marketplace -program - .command('delete ') - .description('Delete a connection from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DeleteResourceCommand(program, 'connection').execute(connectionName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Search connection in marketplace -program - .command('search [searchString]') - .description('Search connections in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'Filter query(a JSON string) to search') - .option('--sort [sort]', 'To sort connections by any field') - .option('--offset [offset]', 'Skip the number of connections in the response') - .option('--limit [limit]', 'Limit the number of connections in the response') - .option('--all', 'Search on all private and public connections', false) - .action(withCompatibilityCheck((searchString, options) => { - try { - new SearchResourceCommand(program, 'connection').execute(searchString, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Install connection from marketplace -program - .command('install ') - .description('Install a connection from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new InstallResourceCommand(program, 'connection').execute(connectionName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace-datasets.js b/bin/cortex-marketplace-datasets.js deleted file mode 100644 index 8ff33b0c..00000000 --- a/bin/cortex-marketplace-datasets.js +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - SaveResourceCommand, - ListResourceCommand, - DescribeResourceCommand, - DeleteResourceCommand, - SearchResourceCommand, - InstallResourceCommand, -} = require('../src/commands/marketplace'); - -program.description('Work with Cortex Marketplace Datasets'); - -// Save dataset in marketplace -program - .command('save ') - .description('Save dataset in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((datasetDefinitionZip, options) => { - try { - new SaveResourceCommand(program, 'dataset').execute(datasetDefinitionZip, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List datasets of marketplace -program - .command('list') - .description('List datasets in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--sort [sort]', 'To sort datasets by any field') - .option('--offset [offset]', 'Skip the number of datasets in the response') - .option('--limit [limit]', 'Limit the number of datasets in the response') - .option('--all', 'List all private and public datasets', false) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceCommand(program, 'dataset').execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe dataset of marketplace -program - .command('describe ') - .description('Get details of a dataset from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new DescribeResourceCommand(program, 'dataset').execute(datasetName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete dataset from marketplace -program - .command('delete ') - .description('Delete a dataset from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new DeleteResourceCommand(program, 'dataset').execute(datasetName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Search dataset in marketplace -program - .command('search [searchString]') - .description('Search datasets in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'Filter query(a JSON string) to search') - .option('--sort [sort]', 'To sort datasets by any field') - .option('--offset [offset]', 'Skip the number of datasets in the response') - .option('--limit [limit]', 'Limit the number of datasets in the response') - .option('--all', 'Search on all private and public datasets', false) - .action(withCompatibilityCheck((searchString, options) => { - try { - new SearchResourceCommand(program, 'dataset').execute(searchString, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Install dataset from marketplace -program - .command('install ') - .description('Install a dataset from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new InstallResourceCommand(program, 'dataset').execute(datasetName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace-skills.js b/bin/cortex-marketplace-skills.js deleted file mode 100644 index e7a716d7..00000000 --- a/bin/cortex-marketplace-skills.js +++ /dev/null @@ -1,147 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - SaveResourceCommand, - ListResourceCommand, - DescribeResourceCommand, - DeleteResourceCommand, - SearchResourceCommand, - InstallResourceCommand, -} = require('../src/commands/marketplace'); - -program.description('Work with Cortex Marketplace Skills'); - -// Save Skill in marketplace -program - .command('save ') - .description('Save skill in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((skillDefinitionZip, options) => { - try { - new SaveResourceCommand(program, 'skill').execute(skillDefinitionZip, options); - } - catch (err) { - console.log(err); - console.error(chalk.red(err.message)); - } - })); - -// List Skills of marketplace -program - .command('list') - .description('List skills in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--sort [sort]', 'To sort skills by any field') - .option('--offset [offset]', 'Skip the number of skills in the response') - .option('--limit [limit]', 'Limit the number of skills in the response') - .option('--all', 'List all private and public skills', false) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceCommand(program, 'skill').execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Skill of marketplace -program - .command('describe ') - .description('Get details of a skill from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((skillName, options) => { - try { - new DescribeResourceCommand(program, 'skill').execute(skillName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete Skill from marketplace -program - .command('delete ') - .description('Delete a skill from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((skillName, options) => { - try { - new DeleteResourceCommand(program, 'skill').execute(skillName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Search Skill in marketplace -program - .command('search [searchString]') - .description('Search skills in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'Filter query(a JSON string) to search') - .option('--sort [sort]', 'To sort skills by any field') - .option('--offset [offset]', 'Skip the number of skills in the response') - .option('--limit [limit]', 'Limit the number of skills in the response') - .option('--all', 'Search on all private and public skills', false) - .action(withCompatibilityCheck((searchString, options) => { - try { - new SearchResourceCommand(program, 'skill').execute(searchString, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Install Skill from marketplace -program - .command('install ') - .description('Install a skill from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((skillName, options) => { - try { - new InstallResourceCommand(program, 'skill').execute(skillName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace.js b/bin/cortex-marketplace.js deleted file mode 100644 index 03c5d411..00000000 --- a/bin/cortex-marketplace.js +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const identity = require('lodash/fp/identity'); - -const program = require('../src/commander'); - -program - .description('Cortex Marketplace CLI') - .command('agents [cmd]', 'Work with Cortex Marketplace Agents') - .command('datasets [cmd]', 'Work with Cortex Marketplace Datasets') - .command('connections [cmd]', 'Work with Cortex Marketplace Connections') - .command('skills [cmd]', 'Work with Cortex Marketplace Skills'); - -program.parse(process.argv, { noActionHandler: function() { - -}}); - -if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { - program.outputHelp(identity); - process.exit(1); -} \ No newline at end of file diff --git a/bin/cortex.js b/bin/cortex.js index 4cae155b..f27ca511 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -41,7 +41,6 @@ program .command('tasks [cmd]', 'Work with Cortex v2 Tasks') .command('types [cmd]', 'Work with Cortex Types') .command('variables [cmd]', 'Work with Cortex Secure Variables') - .command('marketplace [cmd]', 'Work with Cortex Marketplace') .command('experiments [cmd]', 'Work with Cortex Experiments') .command('profiles [cmd]', 'Work with Cortex Profiles') .command('graph [cmd]', 'Work with the Cortex Graph'); diff --git a/src/client/marketplace.js b/src/client/marketplace.js deleted file mode 100644 index 880236ab..00000000 --- a/src/client/marketplace.js +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError } = require('../commands/utils'); - -module.exports = class Resource { - - constructor(baseUrl) { - this.marketplaceUrl = `${baseUrl}/v3/marketplace`; - this.marketplaceUrlV4 = `${baseUrl}/v4/marketplace`; - this.baseUrl = baseUrl; - } - - saveResource(resourceType, zipFilePath, token) { - const endpoint = `${this.marketplaceUrlV4}/admin/resource/${resourceType}`; - debug('saveResource(%s) => %s', resourceType, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .accept('application/json') - .attach('content', zipFilePath) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, resource: res.body.resource}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - - listResourcesByType(resourceType, token, privateOnly, sort, offset, limit) { - const endpoint = `${this.marketplaceUrl}/resource/${resourceType}?offset=${offset}&limit=${limit}&private=${privateOnly}&sort=${sort}`; - debug('listResources() => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, resources: res.body.resources}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeResource(resourceType, namespace, resourceName, token) { - const endpoint = `${this.marketplaceUrl}/resource/${resourceType}/${namespace}/${resourceName}`; - debug('describeResource(%s) => %s', resourceName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, resource: res.body.resource}; - } - else { - return {success: false, message: res.body.details, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - deleteResource(resourceType, namespace, resourceName, token) { - const endpoint = `${this.marketplaceUrl}/resource/${resourceType}/${namespace}/${resourceName}`; - debug('deleteResource(%s) => %s', resourceName, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, status: res.body.status}; - } - else { - return {success: false, message: res.body.message, status: res.body.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - searchResources(resourceType, searchObject, token, privateOnly, sort, offset, limit) { - const endpoint = `${this.marketplaceUrl}/resource/search?offset=${offset}&limit=${limit}&private=${privateOnly}&sort=${sort}`; - debug('searchResourcesByType(%s) => %s', resourceType, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(searchObject) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, resources: res.body.resources }; - } - else { - return {success: false, message: res.body.message, status: res.body.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - - installResource(resourceType, namespace, resourceName, token) { - const endpoint = `${this.marketplaceUrlV4}/resource/${resourceType}/${namespace}/${resourceName}/install`; - debug('installResource(%s) => %s', resourceName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return res.body; // Response contains success and response attribute. So no need to explicitly provide it. - } - else { - return {success: false, message: res.body.message, status: res.body.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - executeResource(resourceType, namespace, resourceName, token, inputParams, route) { - const endpoint = `${this.marketplaceUrl}/resource/${resourceType}/${namespace}/${resourceName}/execute`; - const body = { - inputParams: inputParams, - route: route, - } - debug('executeResource(%s) => %s', resourceName, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(body) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, response: res.body }; - } - else { - return {success: false, message: res.body.message, status: res.body.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - -}; \ No newline at end of file diff --git a/src/commands/marketplace.js b/src/commands/marketplace.js deleted file mode 100644 index 1bfc0646..00000000 --- a/src/commands/marketplace.js +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const yeoman = require('yeoman-environment'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Resource = require('../client/marketplace'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - -const getNamespaceAndResourceName = (resourceName) => { - if (_.isEmpty(resourceName)) { throw new SyntaxError(`Invalid name ${resourceName} must conform to namespace/name:?version`); } - - if (resourceName.startsWith('/')) { throw new SyntaxError("Names cannot start with '/' "); } - - const parts = resourceName.split('/'); - if (!parts[1]) { - throw new SyntaxError('Provide a name with namespace'); - } - - return parts; -}; - -module.exports.SaveResourceCommand = class SaveResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(resourceDefinitionZip, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSave%s(%s)', profile.name, _.upperFirst(this.resourceType), resourceDefinitionZip); - - const resource = new Resource(profile.url); - resource.saveResource(this.resourceType, resourceDefinitionZip, profile.token) - .then((response) => { - if (response.success) { - printSuccess(`${_.upperFirst(this.resourceType)} '${response.resource.name}' saved`, options); - } else { - printError(`Failed to save ${this.resourceType}: ${response.status} ${JSON.stringify(response.details || response.message)}`); - } - }) - .catch((err) => { - printError(`Failed to save ${this.resourceType}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListResourceCommand = class ListResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.executeList%s()', profile.name, _.upperFirst(this.resourceType)); - const sortBy = options.sort || ''; - const offset = options.offset || 0; - const limit = options.limit || 10; - const privateOnly = !(options.all || false); - - const resource = new Resource(profile.url); - resource.listResourcesByType(this.resourceType, profile.token, privateOnly, sortBy, offset, limit) - .then((response) => { - if (response.success) { - let result = filterObject(response.resources, options) || []; - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 } - ]; - - printTable(tableSpec, result); - } - } else { - printError(`Failed to list ${this.resourceType}: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list ${this.resourceType}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeResourceCommand = class DescribeResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(resourceNameWithNamespace, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDescribe%(%s)', profile.name, _.upperFirst(this.resourceType), resourceNameWithNamespace); - - const [ namespace, resourceName ] = getNamespaceAndResourceName(resourceNameWithNamespace); - - const resource = new Resource(profile.url); - resource.describeResource(this.resourceType, namespace, resourceName, profile.token).then((response) => { - if (response.success) { - let result = filterObject(response.resource, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to describe ${this.resourceType} ${resourceNameWithNamespace}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe ${this.resourceType} ${resourceNameWithNamespace}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DeleteResourceCommand = class DeleteResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(resourceNameWithNamespace, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDelete%s(%s)', profile.name, _.upperFirst(this.resourceType), resourceNameWithNamespace); - - const [ namespace, resourceName ] = getNamespaceAndResourceName(resourceNameWithNamespace); - - const resource = new Resource(profile.url); - resource.deleteResource(this.resourceType, namespace, resourceName, profile.token).then((response) => { - if (response.success) { - let result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to delete ${this.resourceType} ${resourceNameWithNamespace}: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete ${this.resourceType} ${resourceNameWithNamespace}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.SearchResourceCommand = class SearchResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(searchString, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSearch%s(%s)', profile.name, _.upperFirst(this.resourceType), searchString); - const sortBy = options.sort || ''; - const offset = options.offset || 0; - const limit = options.limit || 10; - const privateOnly = !(options.all || false); - - const searchObject = { - _searchString: searchString || '', - _filter: { - resourceType: this.resourceType, - }, - }; - - if (options.filter) { - try { - const filterQuery = parseObject(options.filter, options); - Object.assign(searchObject._filter, filterQuery); - } catch (err) { - debug('Error parsing filterQuery: %e', err.message); - printError('filterQuery should be valid JSON string'); - } - } - - const resource = new Resource(profile.url); - resource.searchResources(this.resourceType, searchObject, profile.token, privateOnly, sortBy, offset, limit).then((response) => { - if (response.success) { - const result = filterObject(response.resources, options) || []; - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 } - ]; - - printTable(tableSpec, result); - } - } else { - printError(`Failed to search ${this.resourceType}: [status:${response.status}] ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to search ${this.resourceType}: [status:${err.status}] ${err.message}`, options); - }); - } -}; - -module.exports.InstallResourceCommand = class InstallResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(resourceNameWithNamespace, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSearch%s(%s)', profile.name, _.upperFirst(this.resourceType), resourceNameWithNamespace); - - const [ namespace, resourceName ] = getNamespaceAndResourceName(resourceNameWithNamespace); - - const resource = new Resource(profile.url); - resource.installResource(this.resourceType, namespace, resourceName, profile.token).then((response) => { - if (response.success) { - let result = filterObject(response, options) || []; - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to install ${this.resourceType} ${resourceNameWithNamespace}: ${response.details || response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to install ${this.resourceType} ${resourceNameWithNamespace}: ${err.status} ${err.message}`, options); - }); - } -}; From dcf51aa496fc9353c0be45a8c60004a463d6c88a Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Mon, 28 Oct 2019 09:35:49 -0500 Subject: [PATCH 121/864] 1.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e3eb51f1..4128350b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.14.0", + "version": "1.0.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 92c1842e5c271be8ea6305fe44f873ee9fadb3df Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Fri, 1 Nov 2019 14:10:23 -0500 Subject: [PATCH 122/864] [CCF-12231] Fix endpoint specification for deleting a profile --- src/client/graph.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/client/graph.js b/src/client/graph.js index e1fcda0a..a096512c 100644 --- a/src/client/graph.js +++ b/src/client/graph.js @@ -122,10 +122,11 @@ class Graph { } deleteProfile(token, profileId, schemaName) { - debug('deleteProfile(%s) => DELETE %s', profileId, this.endpoints.profiles); + const endpoint = `${this.endpoints.profiles}/${profileId}`; + debug('deleteProfile(%s) => DELETE %s', profileId, endpoint); const req = request - .delete(this.endpoints.profiles) + .delete(endpoint) .set('Authorization', `Bearer ${token}`) .set('x-cortex-proxy-notify', true); From 6a4923c6d090292d133dec3d387022f1ae72d746 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Fri, 1 Nov 2019 15:09:14 -0500 Subject: [PATCH 123/864] 1.0.1 --- package-lock.json | 5413 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 5414 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..745dd971 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5413 @@ +{ + "name": "cortex-cli", + "version": "1.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@c12e/generator-cortex": { + "version": "0.3.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.24.tgz", + "integrity": "sha1-NCkHWMASPxa58cQWTJhj6wvtV64=", + "requires": { + "debug": "^3.1.0", + "joi": "^13.1.2", + "superagent": "^3.8.2", + "yeoman-generator": "^3.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "joi": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", + "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + } + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "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=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", + "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "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=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binaryextensions": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.2.tgz", + "integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==" + }, + "bluebird": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==" + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "breakword": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.3.tgz", + "integrity": "sha1-ceCRu7eLtO8APPPtKy4GLGkn990=", + "requires": { + "wcwidth": "^1.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "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==" + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "requires": { + "check-error": "^1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "requires": { + "colors": "1.0.3" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "co-prompt": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", + "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", + "requires": { + "keypress": "~0.2.1" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "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" + } + }, + "csv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/csv/-/csv-4.0.0.tgz", + "integrity": "sha512-rj3+HMMIKskeiipg0VkFSx7o8FhrNSfIb1nLT6AkJ0gx7mdGU5JsJGv4tmk0vl1jV/h/TfWJOwh1tpbbhVqNKA==", + "requires": { + "csv-generate": "^2.2.2", + "csv-parse": "^3.1.2", + "csv-stringify": "^4.3.1", + "stream-transform": "^1.0.7" + } + }, + "csv-generate": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-2.2.2.tgz", + "integrity": "sha512-ETG8JGG0xOt2f1JzxrAcQONVc4+7srUdXeyLnow60ntBr+qiNCFTqi+ME6g0vZ4hMCbrwNrDPJPOYVznAeDDHQ==" + }, + "csv-parse": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-3.2.0.tgz", + "integrity": "sha512-1IBQ7PYHc5h6AXS4nyGsmicttbpUbNvlsgKxhvouh+kRaVug8xBWSiIeWdbPUQgjKG88hEGYjdU29fX73mo+6Q==" + }, + "csv-stringify": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-4.3.1.tgz", + "integrity": "sha512-VRjPYIUzex5kfbsOY7LaJcNE2qMWGQQAanb3/Vv85WbOgA+dAfDNfwntRvv335icJgGYrnTX403WxJxRVpLDFA==", + "requires": { + "lodash.get": "~4.4.2" + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "dargs": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz", + "integrity": "sha512-5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", + "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + } + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "detect-conflict": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "editions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.2.0.tgz", + "integrity": "sha512-RYg3iEA2BDLCNVe8PUkD+ox5vAKxB9XS/mAhx1bdxGCF0CpX077C0pyTA9t5D6idCYA3avl5/XDHKPsHFrygfw==", + "requires": { + "errlop": "^1.1.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "ejs": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz", + "integrity": "sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" + }, + "errlop": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.2.tgz", + "integrity": "sha512-djkRp+urJ+SmqDBd7F6LUgm4Be1TTYBxia2bhjNdFBuBDQtJDHExD2VbxR6eyst3h1TZy3qPRCdqb6FBoFttTA==", + "requires": { + "editions": "^2.1.3" + } + }, + "error": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.0.tgz", + "integrity": "sha512-M6t3j3Vt3uDicrViMP5fLq2AeADNrCVFD8Oj4Qt2MHsX0mPYG7D5XdnEfSdRpaHQzjAJ19wu+I1mw9rQYMTAPg==", + "requires": { + "string-template": "~0.2.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", + "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + } + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + } + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "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" + }, + "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" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "for-in": { + "version": "1.0.2", + "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=" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-uri": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", + "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", + "requires": { + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "get-value": { + "version": "2.0.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=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gh-got": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", + "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", + "requires": { + "got": "^7.0.0", + "is-plain-obj": "^1.1.0" + } + }, + "github-username": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", + "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "requires": { + "gh-got": "^6.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "grouped-queue": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", + "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "requires": { + "lodash": "^4.17.2" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hoek": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==" + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-scoped": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", + "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", + "requires": { + "scoped-regex": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "requires": { + "punycode": "2.x.x" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "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=" + }, + "istextorbinary": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.5.1.tgz", + "integrity": "sha512-pv/JNPWnfpwGjPx7JrtWTwsWsxkrK3fNzcEVnt92YKEIErps4Fsk49+qzCe9iQF2hjqK8Naqf8P9kzoeCuQI1g==", + "requires": { + "binaryextensions": "^2.1.2", + "editions": "^2.1.3", + "textextensions": "^2.4.0" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "joi": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.1.0.tgz", + "integrity": "sha512-x6pGmDYI6hwNi3skP6irQqRaJntzeaWmZ4rsnjc/NTlf6P5Gp3Aw/O8REe8oLJ6wPhrzd9K3RW1m3Yz/Hx4Weg==", + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "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==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsonpath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", + "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", + "requires": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.7.0" + }, + "dependencies": { + "esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" + } + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "keypress": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", + "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "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=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "macos-release": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", + "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==" + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", + "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.3.3", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + } + } + }, + "mem-fs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", + "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", + "requires": { + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "mem-fs-editor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", + "integrity": "sha512-2Yt2GCYEbcotYbIJagmow4gEtHDqzpq5XN94+yAx/NT5+bGqIjkXnm3KCUQfE6kRfScGp9IZknScoGRKu8L78w==", + "requires": { + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^2.5.9", + "glob": "^7.0.3", + "globby": "^8.0.1", + "isbinaryfile": "^3.0.2", + "mkdirp": "^0.5.0", + "multimatch": "^2.0.0", + "rimraf": "^2.2.8", + "through2": "^2.0.0", + "vinyl": "^2.0.1" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "npm-registry-fetch": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", + "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.2", + "npm-package-arg": "^6.1.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "requires": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, + "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==" + }, + "pac-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", + "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", + "requires": { + "agent-base": "^4.2.0", + "debug": "^4.1.1", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", + "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "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==" + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + } + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "requires": { + "through": "~2.3" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "proxy-agent": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", + "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", + "requires": { + "agent-base": "^4.2.0", + "debug": "4", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^3.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", + "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", + "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.0.tgz", + "integrity": "sha512-27RP4UotQORTpmNQDX8BHPukOnBP3p1uUJY5UnDhaJB+rMt9iMsok724XL+UHU23bEFOHRMQ2ZhI99qOWUMGFA==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-chunk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "requires": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "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.0", + "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.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "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==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + }, + "rewire": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-4.0.1.tgz", + "integrity": "sha512-+7RQ/BYwTieHVXetpKhT11UbfF6v1kGhKFrtZN7UDL2PybMsSt/rpLWeEUGF5Ndsl1D5BxiCB14VDJyoX+noYw==", + "dev": true, + "requires": { + "eslint": "^4.19.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scoped-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shelljs": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==" + }, + "smartwrap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.1.0.tgz", + "integrity": "sha512-DISoGVrbQQVlZNCveG0zpnG2R5jX0kaHKZZwu8eCiJaqHdtVSDOGpX1HNpJpAHKy2yvfrHt/2i1YgtHTI/jIzw==", + "requires": { + "breakword": "^1.0.3", + "wcwidth": "^1.0.1", + "yargs": "^13.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socks": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", + "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "requires": { + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "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" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "requires": { + "escodegen": "^1.8.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "requires": { + "duplexer": "~0.1.1" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "stream-transform": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-1.0.8.tgz", + "integrity": "sha512-1q+dL790Ps0NV33rISMq9OLtfDA9KMJZdo1PHZXE85orrWsM4FAh8CVyAOTHO0rhyeM138KNPngBPrx33bFsxw==" + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^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=" + }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "requires": { + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "superagent": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", + "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.1.1", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "superagent-mocker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/superagent-mocker/-/superagent-mocker-0.5.2.tgz", + "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", + "dev": true, + "requires": { + "path-to-regexp": "^1.1.0" + } + }, + "superagent-proxy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.0.0.tgz", + "integrity": "sha512-TktJma5jPdiH1BNN+reF/RMW3b8aBTCV7KlLFV0uYcREgNf3pvo7Rdt564OcFHwkGb3mYEhHuWPBhSbOwiNaYw==", + "requires": { + "debug": "^3.1.0", + "proxy-agent": "3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "superagent-throttle": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/superagent-throttle/-/superagent-throttle-1.0.1.tgz", + "integrity": "sha512-m5Ngf0S5QoA84zgwVqVnVA34u9uvo8uM+QEF9B7eNI5FDaSoSoUwQsx7V1GmLXgYLkolhIiucFDVJXF9z49hgQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + } + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "textextensions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.5.0.tgz", + "integrity": "sha512-1IkVr355eHcomgK7fgj1Xsokturx6L5S2JRT5WcRdA6v5shk9sxWuO/w/VbpQexwkXJMQIa/j1dBi3oo7+HhcA==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "requires": { + "readable-stream": "2 || 3" + } + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "topo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", + "requires": { + "hoek": "6.x.x" + }, + "dependencies": { + "hoek": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" + } + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + }, + "tty-table": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.7.0.tgz", + "integrity": "sha512-IQzLfPbNRe7ELd3leSE5mtgjaPHrvOmeAmh+bbUyoZq5sWU8o8wpmaqCyAMAoIJSNXREX2EuWvOqM5jYTUnkTA==", + "requires": { + "chalk": "^2.4.2", + "csv": "^4.0.0", + "smartwrap": "^1.0.11", + "strip-ansi": "^5.0.0", + "wcwidth": "^1.0.1", + "yargs": "^12.0.5" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "untildify": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + } + }, + "windows-release": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", + "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", + "requires": { + "execa": "^1.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "with-open-file": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.6.tgz", + "integrity": "sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==", + "requires": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } + } + }, + "yeoman-environment": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.4.0.tgz", + "integrity": "sha512-SsvoL0RNAFIX69eFxkUhwKUN2hG1UwUjxrcP+T2ytwdhqC/kHdnFOH2SXdtSN1Ju4aO4xuimmzfRoheYY88RuA==", + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.5.0", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^0.3.3", + "inquirer": "^6.0.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.2.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "yeoman-generator": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-3.2.0.tgz", + "integrity": "sha512-iR/qb2je3GdXtSfxgvOXxUW0Cp8+C6LaZaNlK2BAICzFNzwHtM10t/QBwz5Ea9nk6xVDQNj4Q889TjCXGuIv8w==", + "requires": { + "async": "^2.6.0", + "chalk": "^2.3.0", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^6.0.0", + "dateformat": "^3.0.3", + "debug": "^4.1.0", + "detect-conflict": "^1.0.0", + "error": "^7.0.2", + "find-up": "^3.0.0", + "github-username": "^4.0.0", + "istextorbinary": "^2.2.1", + "lodash": "^4.17.10", + "make-dir": "^1.1.0", + "mem-fs-editor": "^5.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^5.1.0", + "read-chunk": "^3.0.0", + "read-pkg-up": "^4.0.0", + "rimraf": "^2.6.2", + "run-async": "^2.0.0", + "shelljs": "^0.8.0", + "text-table": "^0.2.0", + "through2": "^3.0.0", + "yeoman-environment": "^2.0.5" + } + } + } +} diff --git a/package.json b/package.json index 4128350b..e80af648 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.0.0", + "version": "1.0.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 9368d0a30b195cc47903643fc70cf392a422c1ee Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Tue, 19 Nov 2019 13:13:55 -0600 Subject: [PATCH 124/864] [CCF-12390] Update deps to pass audit --- package-lock.json | 286 +++++++++++++--------------------------------- package.json | 2 +- 2 files changed, 78 insertions(+), 210 deletions(-) diff --git a/package-lock.json b/package-lock.json index 745dd971..c7f0145d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -430,9 +430,9 @@ } }, "breakword": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.3.tgz", - "integrity": "sha1-ceCRu7eLtO8APPPtKy4GLGkn990=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", + "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", "requires": { "wcwidth": "^1.0.1" } @@ -739,11 +739,6 @@ "keypress": "~0.2.1" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -851,33 +846,30 @@ } }, "csv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-4.0.0.tgz", - "integrity": "sha512-rj3+HMMIKskeiipg0VkFSx7o8FhrNSfIb1nLT6AkJ0gx7mdGU5JsJGv4tmk0vl1jV/h/TfWJOwh1tpbbhVqNKA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.0.tgz", + "integrity": "sha512-Q4Kid1hhScm0ciMVhMMl3gMZaIk0YNJnnpfp7LNXGnvnntjf4BMhB9h15v6A4ftNh7QRc/wPBot9pQgManKAuQ==", "requires": { - "csv-generate": "^2.2.2", - "csv-parse": "^3.1.2", - "csv-stringify": "^4.3.1", - "stream-transform": "^1.0.7" + "csv-generate": "^3.2.3", + "csv-parse": "^4.8.0", + "csv-stringify": "^5.3.3", + "stream-transform": "^2.0.1" } }, "csv-generate": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-2.2.2.tgz", - "integrity": "sha512-ETG8JGG0xOt2f1JzxrAcQONVc4+7srUdXeyLnow60ntBr+qiNCFTqi+ME6g0vZ4hMCbrwNrDPJPOYVznAeDDHQ==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.3.tgz", + "integrity": "sha512-IcR3K0Nx+nJAkcU2eAglVR7DuHnxcuhUM2w2cR+aHOW7bZp2S5LyN2HF3zTkp6BV/DjR6ykoKznUm+AjnWcOKg==" }, "csv-parse": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-3.2.0.tgz", - "integrity": "sha512-1IBQ7PYHc5h6AXS4nyGsmicttbpUbNvlsgKxhvouh+kRaVug8xBWSiIeWdbPUQgjKG88hEGYjdU29fX73mo+6Q==" + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.2.tgz", + "integrity": "sha512-WfYwyJepTbjS5jWAWpVskOJ8Z10231HaFw6qJhSjGrpfMPf3yuoRohlasYsP/6/3YgTQcvZpTvoUo37eaei9Fw==" }, "csv-stringify": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-4.3.1.tgz", - "integrity": "sha512-VRjPYIUzex5kfbsOY7LaJcNE2qMWGQQAanb3/Vv85WbOgA+dAfDNfwntRvv335icJgGYrnTX403WxJxRVpLDFA==", - "requires": { - "lodash.get": "~4.4.2" - } + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.3.tgz", + "integrity": "sha512-q8Qj+/lN74LRmG7Mg0LauE5WcnJOD5MEGe1gI57IYJCB61KWuEbAFHm1uIPDkI26aqElyBB57SlE2GGwq2EY5A==" }, "cyclist": { "version": "1.0.1", @@ -2248,11 +2240,6 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" - }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -2643,14 +2630,6 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "requires": { - "invert-kv": "^2.0.0" - } - }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -2685,11 +2664,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -2793,14 +2767,6 @@ } } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "requires": { - "p-defer": "^1.0.0" - } - }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -2819,23 +2785,6 @@ "object-visit": "^1.0.0" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - } - } - }, "mem-fs": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", @@ -3029,6 +2978,11 @@ } } }, + "mixme": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.3.2.tgz", + "integrity": "sha512-tilCZOvIhRETXJuTmxxpz8mgplF7gmFhcH05JuR/YL+JLO98gLRQ1Mk4XpYQxxbPMKupSOv+Bidw7EKv8wds1w==" + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -3257,11 +3211,6 @@ "path-key": "^2.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -3351,40 +3300,6 @@ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, "os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", @@ -3413,21 +3328,11 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" - }, "p-limit": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", @@ -4148,13 +4053,13 @@ "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==" }, "smartwrap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.1.0.tgz", - "integrity": "sha512-DISoGVrbQQVlZNCveG0zpnG2R5jX0kaHKZZwu8eCiJaqHdtVSDOGpX1HNpJpAHKy2yvfrHt/2i1YgtHTI/jIzw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.0.tgz", + "integrity": "sha512-gRP/ZRugI16fx79zCwVj0yQcMDOjh5iN7WGoDLrMu7hz2ZYsplv/k7r6honHnRD/X7TaySU48HAFLtXGZ/j2kw==", "requires": { - "breakword": "^1.0.3", + "breakword": "^1.0.5", "wcwidth": "^1.0.1", - "yargs": "^13.3.0" + "yargs": "^14.2.0" }, "dependencies": { "ansi-regex": { @@ -4181,11 +4086,12 @@ } }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz", + "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==", "requires": { "cliui": "^5.0.0", + "decamelize": "^1.2.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", @@ -4194,7 +4100,7 @@ "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "yargs-parser": "^15.0.0" } } } @@ -4487,9 +4393,12 @@ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "stream-transform": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-1.0.8.tgz", - "integrity": "sha512-1q+dL790Ps0NV33rISMq9OLtfDA9KMJZdo1PHZXE85orrWsM4FAh8CVyAOTHO0rhyeM138KNPngBPrx33bFsxw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.1.tgz", + "integrity": "sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw==", + "requires": { + "mixme": "^0.3.1" + } }, "string-template": { "version": "0.2.1", @@ -4793,16 +4702,16 @@ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" }, "tty-table": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.7.0.tgz", - "integrity": "sha512-IQzLfPbNRe7ELd3leSE5mtgjaPHrvOmeAmh+bbUyoZq5sWU8o8wpmaqCyAMAoIJSNXREX2EuWvOqM5jYTUnkTA==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.2.tgz", + "integrity": "sha512-AJYPsIPUimYiPxJHWA6+79pN8skfUCmIeMlsySQZjCdvRaT/kahOFxT+MMNX8HVs2S6pnPKdpQs1/iIiHO2UnA==", "requires": { "chalk": "^2.4.2", - "csv": "^4.0.0", - "smartwrap": "^1.0.11", - "strip-ansi": "^5.0.0", + "csv": "^5.1.3", + "smartwrap": "^1.2.0", + "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1", - "yargs": "^12.0.5" + "yargs": "^13.2.4" }, "dependencies": { "ansi-regex": { @@ -5233,95 +5142,54 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" }, "dependencies": { "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "number-is-nan": "^1.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } + "ansi-regex": "^4.1.0" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -5330,9 +5198,9 @@ } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" diff --git a/package.json b/package.json index e80af648..1699d036 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "superagent-proxy": "2.0.0", "superagent-throttle": "1.0.1", "through2": "3.0.1", - "tty-table": "2.7.0", + "tty-table": "2.8.2", "url": "0.11.0", "uuid": "3.3.2", "yeoman-environment": "2.4.0" From e55a8a365e62936f0a503a3593825b0f67ae423f Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Tue, 19 Nov 2019 13:54:39 -0600 Subject: [PATCH 125/864] 1.0.2 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index c7f0145d..69e39dfd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 1699d036..859cc00e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.0.1", + "version": "1.0.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 7bb3ed4a3f512066b8b3d1b41f82f9688c561669 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 5 Dec 2019 11:00:39 -0600 Subject: [PATCH 126/864] rebase master, fixup package-lock.json --- package-lock.json | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 69e39dfd..f5ff7ef9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -909,7 +909,7 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { @@ -946,7 +946,7 @@ }, "defaults": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -954,7 +954,7 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" } } @@ -998,7 +998,7 @@ }, "degenerator": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { "ast-types": "0.x.x", @@ -1008,7 +1008,7 @@ "dependencies": { "esprima": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" } } @@ -1020,7 +1020,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-conflict": { @@ -1192,7 +1192,7 @@ "dependencies": { "esprima": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" }, "source-map": { @@ -1771,7 +1771,7 @@ }, "ftp": { "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { "readable-stream": "1.1.x", @@ -1780,12 +1780,12 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "~1.0.0", @@ -1796,7 +1796,7 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } @@ -2019,7 +2019,7 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbol-support-x": { @@ -2561,7 +2561,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } @@ -3128,7 +3128,7 @@ }, "netmask": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" }, "nice-try": { @@ -3627,7 +3627,7 @@ }, "proxy-from-env": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, "pseudomap": { @@ -3834,7 +3834,7 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { @@ -3976,7 +3976,7 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { @@ -4367,7 +4367,7 @@ }, "statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stream-combiner": { @@ -4606,7 +4606,7 @@ }, "thunkify": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" }, "timed-out": { @@ -4795,7 +4795,7 @@ }, "unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unset-value": { @@ -4991,7 +4991,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -5007,7 +5007,7 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "widest-line": { @@ -5123,7 +5123,7 @@ }, "xregexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" }, "xtend": { From 73d29e9574d87234e3a795995cfcc12447473270 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 5 Dec 2019 11:13:48 -0600 Subject: [PATCH 127/864] CM-413 (#221) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports * bumped generator version to `0.3.24` * Bump version to 0.12.19 (#211) * Improvements to graph client and command client. (#213) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. * [CCF-12214] Specify custom HTTP User-Agent header value for all requests * 0.13.0 * [CCF-11868] Add scaleCount option to action deploy * 0.14.0 * Nein, marketplace * 1.0.0 * [CCF-12231] Fix endpoint specification for deleting a profile * 1.0.1 * [CCF-12390] Update deps to pass audit * 1.0.2 * rebase master, fixup package-lock.json --- bin/cortex-actions.js | 3 +- bin/cortex-marketplace-agents.js | 146 - bin/cortex-marketplace-connections.js | 146 - bin/cortex-marketplace-datasets.js | 146 - bin/cortex-marketplace-skills.js | 147 - bin/cortex-marketplace.js | 37 - bin/cortex.js | 1 - package-lock.json | 5281 +++++++++++++++++++++++++ package.json | 5 +- src/client/actions.js | 3 +- src/client/content.js | 2 + src/client/experiments.js | 2 +- src/client/graph.js | 5 +- src/client/marketplace.js | 190 - src/commands/actions.js | 3 +- src/commands/apiutils.js | 7 +- src/commands/marketplace.js | 249 -- src/useragent.js | 25 + test/{client => }/compatibility.js | 2 +- test/useragent.js | 73 + 20 files changed, 5401 insertions(+), 1072 deletions(-) delete mode 100644 bin/cortex-marketplace-agents.js delete mode 100644 bin/cortex-marketplace-connections.js delete mode 100644 bin/cortex-marketplace-datasets.js delete mode 100644 bin/cortex-marketplace-skills.js delete mode 100644 bin/cortex-marketplace.js create mode 100644 package-lock.json delete mode 100644 src/client/marketplace.js delete mode 100644 src/commands/marketplace.js create mode 100644 src/useragent.js rename test/{client => }/compatibility.js (98%) create mode 100644 test/useragent.js diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 62bbb019..059aec15 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -150,7 +150,8 @@ program .option('--environment [environment]', 'Environment') .option('--cmd [cmd]', 'Command to be executed') //'["--daemon"]' .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') - .option('--push-docker', 'Push Docker image to the Cortex registry.') + .option('--push-docker', 'Push Docker image to the Cortex registry.') + .option('--scaleCount [count]', 'Scale count', 'Scale count, only used for daemon action types') .action(withCompatibilityCheck((actionName, options) => { try { if (!options.kind && !options.docker) { diff --git a/bin/cortex-marketplace-agents.js b/bin/cortex-marketplace-agents.js deleted file mode 100644 index 8469b6e0..00000000 --- a/bin/cortex-marketplace-agents.js +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - SaveResourceCommand, - ListResourceCommand, - DescribeResourceCommand, - DeleteResourceCommand, - SearchResourceCommand, - InstallResourceCommand, -} = require('../src/commands/marketplace'); - -program.description('Work with Cortex Marketplace Agents'); - -// Save agent in marketplace -program - .command('save ') - .description('Save agent in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((agentDefinitionZip, options) => { - try { - new SaveResourceCommand(program, 'agent').execute(agentDefinitionZip, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List agents of marketplace -program - .command('list') - .description('List agents in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--sort [sort]', 'To sort agents by any field') - .option('--offset [offset]', 'Skip the number of agents in the response') - .option('--limit [limit]', 'Limit the number of agents in the response') - .option('--all', 'List all private and public agents', false) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceCommand(program, 'agent').execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe agent of marketplace -program - .command('describe ') - .description('Get details of a agent from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((agentName, options) => { - try { - new DescribeResourceCommand(program, 'agent').execute(agentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete agent from marketplace -program - .command('delete ') - .description('Delete an agent from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((agentName, options) => { - try { - new DeleteResourceCommand(program, 'agent').execute(agentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Search agent in marketplace -program - .command('search [searchString]') - .description('Search agents in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'Filter query(a JSON string) to search') - .option('--sort [sort]', 'To sort agents by any field') - .option('--offset [offset]', 'Skip the number of agents in the response') - .option('--limit [limit]', 'Limit the number of agents in the response') - .option('--all', 'Search on all private and public agents', false) - .action(withCompatibilityCheck((searchString, options) => { - try { - new SearchResourceCommand(program, 'agent').execute(searchString, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Install agent from marketplace -program - .command('install ') - .description('Install a agent from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((agentName, options) => { - try { - new InstallResourceCommand(program, 'agent').execute(agentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace-connections.js b/bin/cortex-marketplace-connections.js deleted file mode 100644 index 6d17c1a2..00000000 --- a/bin/cortex-marketplace-connections.js +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - SaveResourceCommand, - ListResourceCommand, - DescribeResourceCommand, - DeleteResourceCommand, - SearchResourceCommand, - InstallResourceCommand, -} = require('../src/commands/marketplace'); - -program.description('Work with Cortex Marketplace Connections'); - -// Save connection in marketplace -program - .command('save ') - .description('Save connection in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((connectionDefinitionZip, options) => { - try { - new SaveResourceCommand(program, 'connection').execute(connectionDefinitionZip, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List connections of marketplace -program - .command('list') - .description('List connections in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--sort [sort]', 'To sort connections by any field') - .option('--offset [offset]', 'Skip the number of connections in the response') - .option('--limit [limit]', 'Limit the number of connections in the response') - .option('--all', 'List all private and public connections', false) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceCommand(program, 'connection').execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe connection of marketplace -program - .command('describe ') - .description('Get details of a connection from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DescribeResourceCommand(program, 'connection').execute(connectionName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete connection from marketplace -program - .command('delete ') - .description('Delete a connection from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DeleteResourceCommand(program, 'connection').execute(connectionName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Search connection in marketplace -program - .command('search [searchString]') - .description('Search connections in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'Filter query(a JSON string) to search') - .option('--sort [sort]', 'To sort connections by any field') - .option('--offset [offset]', 'Skip the number of connections in the response') - .option('--limit [limit]', 'Limit the number of connections in the response') - .option('--all', 'Search on all private and public connections', false) - .action(withCompatibilityCheck((searchString, options) => { - try { - new SearchResourceCommand(program, 'connection').execute(searchString, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Install connection from marketplace -program - .command('install ') - .description('Install a connection from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new InstallResourceCommand(program, 'connection').execute(connectionName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace-datasets.js b/bin/cortex-marketplace-datasets.js deleted file mode 100644 index 8ff33b0c..00000000 --- a/bin/cortex-marketplace-datasets.js +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - SaveResourceCommand, - ListResourceCommand, - DescribeResourceCommand, - DeleteResourceCommand, - SearchResourceCommand, - InstallResourceCommand, -} = require('../src/commands/marketplace'); - -program.description('Work with Cortex Marketplace Datasets'); - -// Save dataset in marketplace -program - .command('save ') - .description('Save dataset in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((datasetDefinitionZip, options) => { - try { - new SaveResourceCommand(program, 'dataset').execute(datasetDefinitionZip, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List datasets of marketplace -program - .command('list') - .description('List datasets in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--sort [sort]', 'To sort datasets by any field') - .option('--offset [offset]', 'Skip the number of datasets in the response') - .option('--limit [limit]', 'Limit the number of datasets in the response') - .option('--all', 'List all private and public datasets', false) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceCommand(program, 'dataset').execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe dataset of marketplace -program - .command('describe ') - .description('Get details of a dataset from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new DescribeResourceCommand(program, 'dataset').execute(datasetName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete dataset from marketplace -program - .command('delete ') - .description('Delete a dataset from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new DeleteResourceCommand(program, 'dataset').execute(datasetName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Search dataset in marketplace -program - .command('search [searchString]') - .description('Search datasets in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'Filter query(a JSON string) to search') - .option('--sort [sort]', 'To sort datasets by any field') - .option('--offset [offset]', 'Skip the number of datasets in the response') - .option('--limit [limit]', 'Limit the number of datasets in the response') - .option('--all', 'Search on all private and public datasets', false) - .action(withCompatibilityCheck((searchString, options) => { - try { - new SearchResourceCommand(program, 'dataset').execute(searchString, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Install dataset from marketplace -program - .command('install ') - .description('Install a dataset from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new InstallResourceCommand(program, 'dataset').execute(datasetName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace-skills.js b/bin/cortex-marketplace-skills.js deleted file mode 100644 index e7a716d7..00000000 --- a/bin/cortex-marketplace-skills.js +++ /dev/null @@ -1,147 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - SaveResourceCommand, - ListResourceCommand, - DescribeResourceCommand, - DeleteResourceCommand, - SearchResourceCommand, - InstallResourceCommand, -} = require('../src/commands/marketplace'); - -program.description('Work with Cortex Marketplace Skills'); - -// Save Skill in marketplace -program - .command('save ') - .description('Save skill in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((skillDefinitionZip, options) => { - try { - new SaveResourceCommand(program, 'skill').execute(skillDefinitionZip, options); - } - catch (err) { - console.log(err); - console.error(chalk.red(err.message)); - } - })); - -// List Skills of marketplace -program - .command('list') - .description('List skills in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--sort [sort]', 'To sort skills by any field') - .option('--offset [offset]', 'Skip the number of skills in the response') - .option('--limit [limit]', 'Limit the number of skills in the response') - .option('--all', 'List all private and public skills', false) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceCommand(program, 'skill').execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Skill of marketplace -program - .command('describe ') - .description('Get details of a skill from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((skillName, options) => { - try { - new DescribeResourceCommand(program, 'skill').execute(skillName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete Skill from marketplace -program - .command('delete ') - .description('Delete a skill from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((skillName, options) => { - try { - new DeleteResourceCommand(program, 'skill').execute(skillName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Search Skill in marketplace -program - .command('search [searchString]') - .description('Search skills in marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'Filter query(a JSON string) to search') - .option('--sort [sort]', 'To sort skills by any field') - .option('--offset [offset]', 'Skip the number of skills in the response') - .option('--limit [limit]', 'Limit the number of skills in the response') - .option('--all', 'Search on all private and public skills', false) - .action(withCompatibilityCheck((searchString, options) => { - try { - new SearchResourceCommand(program, 'skill').execute(searchString, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Install Skill from marketplace -program - .command('install ') - .description('Install a skill from marketplace') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((skillName, options) => { - try { - new InstallResourceCommand(program, 'skill').execute(skillName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-marketplace.js b/bin/cortex-marketplace.js deleted file mode 100644 index 03c5d411..00000000 --- a/bin/cortex-marketplace.js +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const identity = require('lodash/fp/identity'); - -const program = require('../src/commander'); - -program - .description('Cortex Marketplace CLI') - .command('agents [cmd]', 'Work with Cortex Marketplace Agents') - .command('datasets [cmd]', 'Work with Cortex Marketplace Datasets') - .command('connections [cmd]', 'Work with Cortex Marketplace Connections') - .command('skills [cmd]', 'Work with Cortex Marketplace Skills'); - -program.parse(process.argv, { noActionHandler: function() { - -}}); - -if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { - program.outputHelp(identity); - process.exit(1); -} \ No newline at end of file diff --git a/bin/cortex.js b/bin/cortex.js index 4cae155b..f27ca511 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -41,7 +41,6 @@ program .command('tasks [cmd]', 'Work with Cortex v2 Tasks') .command('types [cmd]', 'Work with Cortex Types') .command('variables [cmd]', 'Work with Cortex Secure Variables') - .command('marketplace [cmd]', 'Work with Cortex Marketplace') .command('experiments [cmd]', 'Work with Cortex Experiments') .command('profiles [cmd]', 'Work with Cortex Profiles') .command('graph [cmd]', 'Work with the Cortex Graph'); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..f5ff7ef9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5281 @@ +{ + "name": "cortex-cli", + "version": "1.0.2", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@c12e/generator-cortex": { + "version": "0.3.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.24.tgz", + "integrity": "sha1-NCkHWMASPxa58cQWTJhj6wvtV64=", + "requires": { + "debug": "^3.1.0", + "joi": "^13.1.2", + "superagent": "^3.8.2", + "yeoman-generator": "^3.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "joi": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", + "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + } + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "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=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", + "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "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=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "binaryextensions": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.2.tgz", + "integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==" + }, + "bluebird": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==" + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "breakword": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", + "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", + "requires": { + "wcwidth": "^1.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "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==" + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "requires": { + "check-error": "^1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "requires": { + "colors": "1.0.3" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "co-prompt": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", + "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", + "requires": { + "keypress": "~0.2.1" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "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" + } + }, + "csv": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.0.tgz", + "integrity": "sha512-Q4Kid1hhScm0ciMVhMMl3gMZaIk0YNJnnpfp7LNXGnvnntjf4BMhB9h15v6A4ftNh7QRc/wPBot9pQgManKAuQ==", + "requires": { + "csv-generate": "^3.2.3", + "csv-parse": "^4.8.0", + "csv-stringify": "^5.3.3", + "stream-transform": "^2.0.1" + } + }, + "csv-generate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.3.tgz", + "integrity": "sha512-IcR3K0Nx+nJAkcU2eAglVR7DuHnxcuhUM2w2cR+aHOW7bZp2S5LyN2HF3zTkp6BV/DjR6ykoKznUm+AjnWcOKg==" + }, + "csv-parse": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.2.tgz", + "integrity": "sha512-WfYwyJepTbjS5jWAWpVskOJ8Z10231HaFw6qJhSjGrpfMPf3yuoRohlasYsP/6/3YgTQcvZpTvoUo37eaei9Fw==" + }, + "csv-stringify": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.3.tgz", + "integrity": "sha512-q8Qj+/lN74LRmG7Mg0LauE5WcnJOD5MEGe1gI57IYJCB61KWuEbAFHm1uIPDkI26aqElyBB57SlE2GGwq2EY5A==" + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "dargs": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz", + "integrity": "sha512-5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", + "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + } + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "detect-conflict": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "editions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.2.0.tgz", + "integrity": "sha512-RYg3iEA2BDLCNVe8PUkD+ox5vAKxB9XS/mAhx1bdxGCF0CpX077C0pyTA9t5D6idCYA3avl5/XDHKPsHFrygfw==", + "requires": { + "errlop": "^1.1.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "ejs": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz", + "integrity": "sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" + }, + "errlop": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.2.tgz", + "integrity": "sha512-djkRp+urJ+SmqDBd7F6LUgm4Be1TTYBxia2bhjNdFBuBDQtJDHExD2VbxR6eyst3h1TZy3qPRCdqb6FBoFttTA==", + "requires": { + "editions": "^2.1.3" + } + }, + "error": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.0.tgz", + "integrity": "sha512-M6t3j3Vt3uDicrViMP5fLq2AeADNrCVFD8Oj4Qt2MHsX0mPYG7D5XdnEfSdRpaHQzjAJ19wu+I1mw9rQYMTAPg==", + "requires": { + "string-template": "~0.2.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", + "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + } + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "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=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + } + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "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" + }, + "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" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "for-in": { + "version": "1.0.2", + "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=" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-uri": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", + "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", + "requires": { + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "get-value": { + "version": "2.0.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=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gh-got": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", + "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", + "requires": { + "got": "^7.0.0", + "is-plain-obj": "^1.1.0" + } + }, + "github-username": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", + "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "requires": { + "gh-got": "^6.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "grouped-queue": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", + "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "requires": { + "lodash": "^4.17.2" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hoek": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", + "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==" + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-scoped": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", + "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", + "requires": { + "scoped-regex": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "requires": { + "punycode": "2.x.x" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "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=" + }, + "istextorbinary": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.5.1.tgz", + "integrity": "sha512-pv/JNPWnfpwGjPx7JrtWTwsWsxkrK3fNzcEVnt92YKEIErps4Fsk49+qzCe9iQF2hjqK8Naqf8P9kzoeCuQI1g==", + "requires": { + "binaryextensions": "^2.1.2", + "editions": "^2.1.3", + "textextensions": "^2.4.0" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "joi": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.1.0.tgz", + "integrity": "sha512-x6pGmDYI6hwNi3skP6irQqRaJntzeaWmZ4rsnjc/NTlf6P5Gp3Aw/O8REe8oLJ6wPhrzd9K3RW1m3Yz/Hx4Weg==", + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "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==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsonpath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", + "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", + "requires": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.7.0" + }, + "dependencies": { + "esprima": { + "version": "1.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" + } + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "keypress": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", + "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "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=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "macos-release": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", + "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==" + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", + "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.3.3", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "mem-fs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", + "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", + "requires": { + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "mem-fs-editor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", + "integrity": "sha512-2Yt2GCYEbcotYbIJagmow4gEtHDqzpq5XN94+yAx/NT5+bGqIjkXnm3KCUQfE6kRfScGp9IZknScoGRKu8L78w==", + "requires": { + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^2.5.9", + "glob": "^7.0.3", + "globby": "^8.0.1", + "isbinaryfile": "^3.0.2", + "mkdirp": "^0.5.0", + "multimatch": "^2.0.0", + "rimraf": "^2.2.8", + "through2": "^2.0.0", + "vinyl": "^2.0.1" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixme": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.3.2.tgz", + "integrity": "sha512-tilCZOvIhRETXJuTmxxpz8mgplF7gmFhcH05JuR/YL+JLO98gLRQ1Mk4XpYQxxbPMKupSOv+Bidw7EKv8wds1w==" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "netmask": { + "version": "1.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "npm-registry-fetch": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", + "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.2", + "npm-package-arg": "^6.1.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "requires": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, + "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==" + }, + "pac-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", + "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", + "requires": { + "agent-base": "^4.2.0", + "debug": "^4.1.1", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", + "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "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==" + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + } + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "requires": { + "through": "~2.3" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "proxy-agent": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", + "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", + "requires": { + "agent-base": "^4.2.0", + "debug": "4", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^3.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", + "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", + "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.0.tgz", + "integrity": "sha512-27RP4UotQORTpmNQDX8BHPukOnBP3p1uUJY5UnDhaJB+rMt9iMsok724XL+UHU23bEFOHRMQ2ZhI99qOWUMGFA==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-chunk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "requires": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "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.0", + "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.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "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==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + }, + "rewire": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-4.0.1.tgz", + "integrity": "sha512-+7RQ/BYwTieHVXetpKhT11UbfF6v1kGhKFrtZN7UDL2PybMsSt/rpLWeEUGF5Ndsl1D5BxiCB14VDJyoX+noYw==", + "dev": true, + "requires": { + "eslint": "^4.19.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", + "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scoped-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shelljs": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==" + }, + "smartwrap": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.0.tgz", + "integrity": "sha512-gRP/ZRugI16fx79zCwVj0yQcMDOjh5iN7WGoDLrMu7hz2ZYsplv/k7r6honHnRD/X7TaySU48HAFLtXGZ/j2kw==", + "requires": { + "breakword": "^1.0.5", + "wcwidth": "^1.0.1", + "yargs": "^14.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "yargs": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz", + "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==", + "requires": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.0" + } + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socks": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", + "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "requires": { + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "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" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "requires": { + "escodegen": "^1.8.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "requires": { + "duplexer": "~0.1.1" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "stream-transform": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.1.tgz", + "integrity": "sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw==", + "requires": { + "mixme": "^0.3.1" + } + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^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=" + }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "requires": { + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "superagent": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", + "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.1.1", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "superagent-mocker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/superagent-mocker/-/superagent-mocker-0.5.2.tgz", + "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", + "dev": true, + "requires": { + "path-to-regexp": "^1.1.0" + } + }, + "superagent-proxy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.0.0.tgz", + "integrity": "sha512-TktJma5jPdiH1BNN+reF/RMW3b8aBTCV7KlLFV0uYcREgNf3pvo7Rdt564OcFHwkGb3mYEhHuWPBhSbOwiNaYw==", + "requires": { + "debug": "^3.1.0", + "proxy-agent": "3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "superagent-throttle": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/superagent-throttle/-/superagent-throttle-1.0.1.tgz", + "integrity": "sha512-m5Ngf0S5QoA84zgwVqVnVA34u9uvo8uM+QEF9B7eNI5FDaSoSoUwQsx7V1GmLXgYLkolhIiucFDVJXF9z49hgQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + } + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "textextensions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.5.0.tgz", + "integrity": "sha512-1IkVr355eHcomgK7fgj1Xsokturx6L5S2JRT5WcRdA6v5shk9sxWuO/w/VbpQexwkXJMQIa/j1dBi3oo7+HhcA==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "requires": { + "readable-stream": "2 || 3" + } + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "topo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", + "requires": { + "hoek": "6.x.x" + }, + "dependencies": { + "hoek": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", + "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" + } + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + }, + "tty-table": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.2.tgz", + "integrity": "sha512-AJYPsIPUimYiPxJHWA6+79pN8skfUCmIeMlsySQZjCdvRaT/kahOFxT+MMNX8HVs2S6pnPKdpQs1/iIiHO2UnA==", + "requires": { + "chalk": "^2.4.2", + "csv": "^5.1.3", + "smartwrap": "^1.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1", + "yargs": "^13.2.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "untildify": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + } + }, + "windows-release": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", + "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", + "requires": { + "execa": "^1.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "with-open-file": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.6.tgz", + "integrity": "sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==", + "requires": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + } + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } + } + }, + "yeoman-environment": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.4.0.tgz", + "integrity": "sha512-SsvoL0RNAFIX69eFxkUhwKUN2hG1UwUjxrcP+T2ytwdhqC/kHdnFOH2SXdtSN1Ju4aO4xuimmzfRoheYY88RuA==", + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.5.0", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^0.3.3", + "inquirer": "^6.0.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.2.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "yeoman-generator": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-3.2.0.tgz", + "integrity": "sha512-iR/qb2je3GdXtSfxgvOXxUW0Cp8+C6LaZaNlK2BAICzFNzwHtM10t/QBwz5Ea9nk6xVDQNj4Q889TjCXGuIv8w==", + "requires": { + "async": "^2.6.0", + "chalk": "^2.3.0", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^6.0.0", + "dateformat": "^3.0.3", + "debug": "^4.1.0", + "detect-conflict": "^1.0.0", + "error": "^7.0.2", + "find-up": "^3.0.0", + "github-username": "^4.0.0", + "istextorbinary": "^2.2.1", + "lodash": "^4.17.10", + "make-dir": "^1.1.0", + "mem-fs-editor": "^5.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^5.1.0", + "read-chunk": "^3.0.0", + "read-pkg-up": "^4.0.0", + "rimraf": "^2.6.2", + "run-async": "^2.0.0", + "shelljs": "^0.8.0", + "text-table": "^0.2.0", + "through2": "^3.0.0", + "yeoman-environment": "^2.0.5" + } + } + } +} diff --git a/package.json b/package.json index 9dd3475c..859cc00e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "0.12.20", + "version": "1.0.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -45,14 +45,15 @@ "lodash": "4.17.14", "moment": "2.24.0", "npm-registry-fetch": "3.9.1", + "os-name": "3.1.0", "progress": "2.0.3", "request": "2.88.0", "semver": "5.5.0", "superagent": "3.8.2", "superagent-proxy": "2.0.0", "superagent-throttle": "1.0.1", - "tty-table": "2.7.0", "through2": "3.0.1", + "tty-table": "2.8.2", "url": "0.11.0", "uuid": "3.3.2", "yeoman-environment": "2.4.0" diff --git a/src/client/actions.js b/src/client/actions.js index c39e4741..321845b2 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -54,7 +54,7 @@ module.exports = class Actions { }); } - async deployAction(token, actionName, docker, kind, code, memory, vcpus, ttl, actionType, command, port, environment, environmentVariables, pushDocker) { + async deployAction(token, actionName, docker, kind, code, memory, vcpus, ttl, actionType, command, port, environment, environmentVariables, pushDocker, scaleCount) { let endpoint = `${this.endpointV3}`; if (actionType) { endpoint = `${endpoint}?actionType=${actionType}`; @@ -83,6 +83,7 @@ module.exports = class Actions { if (port) req.field('port', port); if (environment) req.field('environment', environment); if (environmentVariables) req.field('environmentVariables', environmentVariables); + if (_.isFinite(scaleCount)) req.field('scaleCount', scaleCount); return req.then((res) => { if (res.ok) { diff --git a/src/client/content.js b/src/client/content.js index b96e6908..5d52faf4 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -23,6 +23,7 @@ const ProgressBar = require('progress'); const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const { constructError } = require('../commands/utils'); +const { getUserAgent } = require('../useragent'); module.exports = class Content { @@ -105,6 +106,7 @@ module.exports = class Content { 'Accept': 'application/json', 'Authorization': `Bearer ${token}`, 'Content-Type': contentType, + 'User-Agent': getUserAgent(), } }, function(err, res, body) { if (err) { diff --git a/src/client/experiments.js b/src/client/experiments.js index 5ce82212..d7e91759 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const request = require('superagent'); +const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); const ProgressBar = require('progress'); const { constructError } = require('../commands/utils'); diff --git a/src/client/graph.js b/src/client/graph.js index e1fcda0a..a096512c 100644 --- a/src/client/graph.js +++ b/src/client/graph.js @@ -122,10 +122,11 @@ class Graph { } deleteProfile(token, profileId, schemaName) { - debug('deleteProfile(%s) => DELETE %s', profileId, this.endpoints.profiles); + const endpoint = `${this.endpoints.profiles}/${profileId}`; + debug('deleteProfile(%s) => DELETE %s', profileId, endpoint); const req = request - .delete(this.endpoints.profiles) + .delete(endpoint) .set('Authorization', `Bearer ${token}`) .set('x-cortex-proxy-notify', true); diff --git a/src/client/marketplace.js b/src/client/marketplace.js deleted file mode 100644 index 880236ab..00000000 --- a/src/client/marketplace.js +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError } = require('../commands/utils'); - -module.exports = class Resource { - - constructor(baseUrl) { - this.marketplaceUrl = `${baseUrl}/v3/marketplace`; - this.marketplaceUrlV4 = `${baseUrl}/v4/marketplace`; - this.baseUrl = baseUrl; - } - - saveResource(resourceType, zipFilePath, token) { - const endpoint = `${this.marketplaceUrlV4}/admin/resource/${resourceType}`; - debug('saveResource(%s) => %s', resourceType, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .accept('application/json') - .attach('content', zipFilePath) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, resource: res.body.resource}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - - listResourcesByType(resourceType, token, privateOnly, sort, offset, limit) { - const endpoint = `${this.marketplaceUrl}/resource/${resourceType}?offset=${offset}&limit=${limit}&private=${privateOnly}&sort=${sort}`; - debug('listResources() => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, resources: res.body.resources}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeResource(resourceType, namespace, resourceName, token) { - const endpoint = `${this.marketplaceUrl}/resource/${resourceType}/${namespace}/${resourceName}`; - debug('describeResource(%s) => %s', resourceName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, resource: res.body.resource}; - } - else { - return {success: false, message: res.body.details, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - deleteResource(resourceType, namespace, resourceName, token) { - const endpoint = `${this.marketplaceUrl}/resource/${resourceType}/${namespace}/${resourceName}`; - debug('deleteResource(%s) => %s', resourceName, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, status: res.body.status}; - } - else { - return {success: false, message: res.body.message, status: res.body.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - searchResources(resourceType, searchObject, token, privateOnly, sort, offset, limit) { - const endpoint = `${this.marketplaceUrl}/resource/search?offset=${offset}&limit=${limit}&private=${privateOnly}&sort=${sort}`; - debug('searchResourcesByType(%s) => %s', resourceType, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(searchObject) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, resources: res.body.resources }; - } - else { - return {success: false, message: res.body.message, status: res.body.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - - installResource(resourceType, namespace, resourceName, token) { - const endpoint = `${this.marketplaceUrlV4}/resource/${resourceType}/${namespace}/${resourceName}/install`; - debug('installResource(%s) => %s', resourceName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return res.body; // Response contains success and response attribute. So no need to explicitly provide it. - } - else { - return {success: false, message: res.body.message, status: res.body.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - executeResource(resourceType, namespace, resourceName, token, inputParams, route) { - const endpoint = `${this.marketplaceUrl}/resource/${resourceType}/${namespace}/${resourceName}/execute`; - const body = { - inputParams: inputParams, - route: route, - } - debug('executeResource(%s) => %s', resourceName, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(body) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, response: res.body }; - } - else { - return {success: false, message: res.body.message, status: res.body.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - -}; \ No newline at end of file diff --git a/src/commands/actions.js b/src/commands/actions.js index e4a71ba4..2f04b316 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -112,9 +112,10 @@ module.exports.DeployActionCommand = class { const environment = options.environment; const environmentVariables = options.environmentVariables; const pushDocker = options.pushDocker; + const scaleCount = parseInt(options.scaleCount); const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, ttl, actionType, cmd, port, environment, environmentVariables, pushDocker) + actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, ttl, actionType, cmd, port, environment, environmentVariables, pushDocker, scaleCount) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); diff --git a/src/commands/apiutils.js b/src/commands/apiutils.js index 79f7df35..a25fd06f 100644 --- a/src/commands/apiutils.js +++ b/src/commands/apiutils.js @@ -4,6 +4,7 @@ require('superagent-proxy')(superagentRequest); const debug = require('debug')('cortex:cli'); const { printWarning } = require('./utils'); +const { getUserAgent } = require('../useragent'); /** * makes a request via superagent. proxy methods will be utilized @@ -27,7 +28,8 @@ function requestWrapper() { bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .get(endpoint) - .proxy(proxyEnv); + .proxy(proxyEnv) + .set('User-Agent', getUserAgent()); }; this.delete = function(endpoint) { if (bypassProxy) return superagentRequest.delete(endpoint); @@ -36,6 +38,7 @@ function requestWrapper() { return superagentRequest .delete(endpoint) .proxy(proxyEnv) + .set('User-Agent', getUserAgent()); }; this.post = function(endpoint) { if (bypassProxy) return superagentRequest.post(endpoint); @@ -44,6 +47,7 @@ function requestWrapper() { return superagentRequest .post(endpoint) .proxy(proxyEnv) + .set('User-Agent', getUserAgent()); } this.put = function(endpoint) { if (bypassProxy) return superagentRequest.put(endpoint); @@ -52,6 +56,7 @@ function requestWrapper() { return superagentRequest .put(endpoint) .proxy(proxyEnv) + .set('User-Agent', getUserAgent()); } } diff --git a/src/commands/marketplace.js b/src/commands/marketplace.js deleted file mode 100644 index 1bfc0646..00000000 --- a/src/commands/marketplace.js +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const yeoman = require('yeoman-environment'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Resource = require('../client/marketplace'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - -const getNamespaceAndResourceName = (resourceName) => { - if (_.isEmpty(resourceName)) { throw new SyntaxError(`Invalid name ${resourceName} must conform to namespace/name:?version`); } - - if (resourceName.startsWith('/')) { throw new SyntaxError("Names cannot start with '/' "); } - - const parts = resourceName.split('/'); - if (!parts[1]) { - throw new SyntaxError('Provide a name with namespace'); - } - - return parts; -}; - -module.exports.SaveResourceCommand = class SaveResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(resourceDefinitionZip, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSave%s(%s)', profile.name, _.upperFirst(this.resourceType), resourceDefinitionZip); - - const resource = new Resource(profile.url); - resource.saveResource(this.resourceType, resourceDefinitionZip, profile.token) - .then((response) => { - if (response.success) { - printSuccess(`${_.upperFirst(this.resourceType)} '${response.resource.name}' saved`, options); - } else { - printError(`Failed to save ${this.resourceType}: ${response.status} ${JSON.stringify(response.details || response.message)}`); - } - }) - .catch((err) => { - printError(`Failed to save ${this.resourceType}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListResourceCommand = class ListResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.executeList%s()', profile.name, _.upperFirst(this.resourceType)); - const sortBy = options.sort || ''; - const offset = options.offset || 0; - const limit = options.limit || 10; - const privateOnly = !(options.all || false); - - const resource = new Resource(profile.url); - resource.listResourcesByType(this.resourceType, profile.token, privateOnly, sortBy, offset, limit) - .then((response) => { - if (response.success) { - let result = filterObject(response.resources, options) || []; - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 } - ]; - - printTable(tableSpec, result); - } - } else { - printError(`Failed to list ${this.resourceType}: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list ${this.resourceType}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeResourceCommand = class DescribeResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(resourceNameWithNamespace, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDescribe%(%s)', profile.name, _.upperFirst(this.resourceType), resourceNameWithNamespace); - - const [ namespace, resourceName ] = getNamespaceAndResourceName(resourceNameWithNamespace); - - const resource = new Resource(profile.url); - resource.describeResource(this.resourceType, namespace, resourceName, profile.token).then((response) => { - if (response.success) { - let result = filterObject(response.resource, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to describe ${this.resourceType} ${resourceNameWithNamespace}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe ${this.resourceType} ${resourceNameWithNamespace}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DeleteResourceCommand = class DeleteResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(resourceNameWithNamespace, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDelete%s(%s)', profile.name, _.upperFirst(this.resourceType), resourceNameWithNamespace); - - const [ namespace, resourceName ] = getNamespaceAndResourceName(resourceNameWithNamespace); - - const resource = new Resource(profile.url); - resource.deleteResource(this.resourceType, namespace, resourceName, profile.token).then((response) => { - if (response.success) { - let result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to delete ${this.resourceType} ${resourceNameWithNamespace}: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete ${this.resourceType} ${resourceNameWithNamespace}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.SearchResourceCommand = class SearchResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(searchString, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSearch%s(%s)', profile.name, _.upperFirst(this.resourceType), searchString); - const sortBy = options.sort || ''; - const offset = options.offset || 0; - const limit = options.limit || 10; - const privateOnly = !(options.all || false); - - const searchObject = { - _searchString: searchString || '', - _filter: { - resourceType: this.resourceType, - }, - }; - - if (options.filter) { - try { - const filterQuery = parseObject(options.filter, options); - Object.assign(searchObject._filter, filterQuery); - } catch (err) { - debug('Error parsing filterQuery: %e', err.message); - printError('filterQuery should be valid JSON string'); - } - } - - const resource = new Resource(profile.url); - resource.searchResources(this.resourceType, searchObject, profile.token, privateOnly, sortBy, offset, limit).then((response) => { - if (response.success) { - const result = filterObject(response.resources, options) || []; - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 } - ]; - - printTable(tableSpec, result); - } - } else { - printError(`Failed to search ${this.resourceType}: [status:${response.status}] ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to search ${this.resourceType}: [status:${err.status}] ${err.message}`, options); - }); - } -}; - -module.exports.InstallResourceCommand = class InstallResourceCommand { - - constructor(program, resourceType) { - this.program = program; - this.resourceType = resourceType; - } - - execute(resourceNameWithNamespace, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSearch%s(%s)', profile.name, _.upperFirst(this.resourceType), resourceNameWithNamespace); - - const [ namespace, resourceName ] = getNamespaceAndResourceName(resourceNameWithNamespace); - - const resource = new Resource(profile.url); - resource.installResource(this.resourceType, namespace, resourceName, profile.token).then((response) => { - if (response.success) { - let result = filterObject(response, options) || []; - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to install ${this.resourceType} ${resourceNameWithNamespace}: ${response.details || response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to install ${this.resourceType} ${resourceNameWithNamespace}: ${err.status} ${err.message}`, options); - }); - } -}; diff --git a/src/useragent.js b/src/useragent.js new file mode 100644 index 00000000..f468edd9 --- /dev/null +++ b/src/useragent.js @@ -0,0 +1,25 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const findPackageJson = require('find-package-json'); +const os = require('os'); +const osName = require('os-name'); + +const pkg = findPackageJson(__dirname).next().value; + +module.exports.getUserAgent = function getUserAgent() { + return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; +} diff --git a/test/client/compatibility.js b/test/compatibility.js similarity index 98% rename from test/client/compatibility.js rename to test/compatibility.js index 395c5033..267de192 100644 --- a/test/client/compatibility.js +++ b/test/compatibility.js @@ -22,7 +22,7 @@ const semver = require('semver'); const superagent = require('superagent'); const superagentMock = require('superagent-mocker'); -const compatibilityModule = rewire('../../src/compatibility'); +const compatibilityModule = rewire('../src/compatibility'); chai.use(chaiAsPromised); const expect = chai.expect; diff --git a/test/useragent.js b/test/useragent.js new file mode 100644 index 00000000..de399c61 --- /dev/null +++ b/test/useragent.js @@ -0,0 +1,73 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chai = require("chai"); +const chaiAsPromised = require("chai-as-promised"); +const findPackageJson = require('find-package-json'); +const rewire = require('rewire'); +const superagent = require('superagent'); +const superagentMock = require('superagent-mocker'); + +const compatibilityModule = rewire('../src/compatibility'); + +chai.use(chaiAsPromised); +const expect = chai.expect; + +const pkg = findPackageJson(__dirname).next().value; + +describe('useragent', function () { + const profile = { + url: 'http://example.com', + account: 'testAccount', + tenantId: 'testTenant', + username: 'testUser', + token: 'testToken' + }; + + let requestMock; + let requestMockHeaders; + let revertCompatibilityModule; + + before(function () { + // Compatibility API call is as good as any to verify the request has user-agent, + // so mock it the same way we do for that test, adding capture of headers. + requestMock = superagentMock(superagent); + requestMock.get( + `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, + (req) => { + requestMockHeaders = req.headers; // Capture headers + return ({ ok: true, body: { semver: pkg.version } }); + } + ); + revertCompatibilityModule = compatibilityModule.__set__({ + npmFetch: { + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + }, + }); + + requestMockHeaders = {}; + }); + + after(function () { + revertCompatibilityModule(); + requestMock.unmock(superagent); + }); + + it('should exist in request headers', function () { + return compatibilityModule.getCompatibility(profile).then(() => + expect(requestMockHeaders['user-agent']).to.include(`${pkg.name}/${pkg.version}`)); + }); +}); From e400d5f7943f4883a6a720ac9d5b84bc8fb7df03 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 2 Mar 2020 10:52:55 -0600 Subject: [PATCH 128/864] Fix api end (#224) * Remove api endpoint * clean up --- src/commands/actions.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index 2f04b316..01ea41b3 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -160,8 +160,7 @@ module.exports.InvokeActionCommand = class { if (options.vcpus) params.properties['vcpus'] =parseFloat(options.vcpus); - // Set the API Endpoint and Token if not specified - if (!params.apiEndpoint) params.apiEndpoint = profile.url; + // Set Token if not specified if (!params.token) params.token = profile.token; debug('params: %o', params); From 4e25f42e7083f40c23b58c9b2fd07ed344df3596 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Mon, 2 Mar 2020 12:12:21 -0600 Subject: [PATCH 129/864] Ccf 12660 develop rebase (#226) * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 clean up verbage * CCF-12660 cmd to command * CCF-12660 update to 1.0.3 * CCF-12660 remove vcpu and memory option parsing --- bin/cortex-actions.js | 10 +++++--- package-lock.json | 2 +- package.json | 2 +- src/client/actions.js | 28 +++++++-------------- src/commands/actions.js | 56 ++++++++++++++++++++++++++--------------- 5 files changed, 53 insertions(+), 45 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 059aec15..3a0332dd 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -116,8 +116,8 @@ program .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--memory [memory]', 'Action memory limit in megabytes') - .option('--vcpus [vcpus]', 'Action vcpus limit in integer') + .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') + .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') @@ -140,8 +140,8 @@ program .option('--kind [kind]', 'Action runtime kind') // python:3, python:2, nodejs:default .option('--code [code]', 'The code file or code archive to deploy') .option('--docker [image]', 'Docker image to use as the runner') - .option('--memory [memory]', 'Action memory limit in megabytes') - .option('--vcpus [vcpus]', 'Action vcpus limit in integer') + .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') + .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') .option('--ttl [ttl]', 'Daemon time to live') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -152,6 +152,8 @@ program .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('--scaleCount [count]', 'Scale count', 'Scale count, only used for daemon action types') + .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, ' + + 'used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .action(withCompatibilityCheck((actionName, options) => { try { if (!options.kind && !options.docker) { diff --git a/package-lock.json b/package-lock.json index f5ff7ef9..7b1785b1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.0.2", + "version": "1.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 859cc00e..d7151056 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.0.2", + "version": "1.0.3", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/actions.js b/src/client/actions.js index 321845b2..f04601d4 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -54,36 +54,26 @@ module.exports = class Actions { }); } - async deployAction(token, actionName, docker, kind, code, memory, vcpus, ttl, actionType, command, port, environment, environmentVariables, pushDocker, scaleCount) { + async deployAction(token, actionName, params) { let endpoint = `${this.endpointV3}`; - if (actionType) { - endpoint = `${endpoint}?actionType=${actionType}`; + if (params.actionType) { + endpoint = `${endpoint}?actionType=${params.actionType}`; } - debug('deployAction(%s, docker=%s, kind=%s, code=%s, memory=%s, vcpus=%s, ttl=%s) => %s', - actionName, docker, kind, code, memory, vcpus, ttl, endpoint); + debug('deployAction(%s, docker=%s, kind=%s, code=%s, ttl=%s) => %s', + actionName, params.dockerImage, params.kind, params.code, params.ttl, endpoint); try { - docker = await this._maybePushDockerImage(docker, token, pushDocker); + params.docker = await this._maybePushDockerImage(params.dockerImage, token, params.pushDocker); } catch (error) { return {success: false, status: 400, message: error.message || error}; } + params.name = actionName; + const req = request .post(endpoint) .set('Authorization', `Bearer ${token}`) - .field('name', actionName); - - if (docker) req.field('docker', docker); - if (kind) req.field('kind', kind); - if (_.isFinite(memory)) req.field('memory', memory); - if (_.isFinite(vcpus)) req.field('vcpus', vcpus); - if (!_.isNil(ttl)) req.field('ttl', ttl); - if (code) req.attach('code', code); - if (command) req.field('command', command); - if (port) req.field('port', port); - if (environment) req.field('environment', environment); - if (environmentVariables) req.field('environmentVariables', environmentVariables); - if (_.isFinite(scaleCount)) req.field('scaleCount', scaleCount); + .send(params); return req.then((res) => { if (res.ok) { diff --git a/src/commands/actions.js b/src/commands/actions.js index 01ea41b3..71c3810e 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -19,7 +19,7 @@ const uuid = require('uuid/v4'); const debug = require('debug')('cortex:cli'); const {loadProfile} = require('../config'); const Actions = require('../client/actions'); -const {printSuccess, printError, filterObject, parseObject, printTable} = require('./utils'); +const {printSuccess, printWarning, printError, filterObject, parseObject, printTable} = require('./utils'); module.exports.ListActionsCommand = class { @@ -100,22 +100,35 @@ module.exports.DeployActionCommand = class { const profile = loadProfile(options.profile); debug('%s.deployAction(%s)', profile.name, actionName); - const kind = options.kind; - const dockerImage = options.docker; - const code = options.code; - const memory = parseInt(options.memory); - const vcpus = parseFloat(options.vcpus); - const ttl = options.ttl; - const actionType = options.actionType; - const cmd = options.cmd; - const port = options.port; - const environment = options.environment; - const environmentVariables = options.environmentVariables; - const pushDocker = options.pushDocker; - const scaleCount = parseInt(options.scaleCount); + let params = {}; + + if (options.podspec) { + const paramsStr = fs.readFileSync(options.podspec); + params.podSpec = parseObject(paramsStr, options); + } + + params.kind = options.kind; + params.dockerImage = options.docker; + params.code = options.code; + if(options.memory){ + printWarning("The memory option has been deprecated and will be ignored." + + " Use the podspec option for setting this value.", options); + } + if(options.vcpus){ + printWarning("The vcpus option has been deprecated and will be ignored." + + " Use the podspec option for setting this value.", options); + } + params.ttl = options.ttl; + params.actionType = options.actionType; + params.command = options.cmd; + params.port = options.port; + params.environment = options.environment; + params.environmentVariables = options.environmentVariables; + params.pushDocker = options.pushDocker; + params.scaleCount = parseInt(options.scaleCount); const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, ttl, actionType, cmd, port, environment, environmentVariables, pushDocker, scaleCount) + actions.deployAction(profile.token, actionName, params) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); @@ -155,11 +168,14 @@ module.exports.InvokeActionCommand = class { params.properties['daemon.method'] = options.method; if (options.path) params.properties['daemon.path'] = options.path; - if (options.memory) - params.properties['memory'] =parseInt(options.memory); - if (options.vcpus) - params.properties['vcpus'] =parseFloat(options.vcpus); - + if(options.memory){ + printWarning("The memory option has been deprecated and will be ignored." + + " Use the deploy command with podspec option for setting this value.", options); + } + if(options.vcpus){ + printWarning("The vcpus option has been deprecated and will be ignored." + + " Use the deploy command with podspec option for setting this value.", options); + } // Set Token if not specified if (!params.token) params.token = profile.token; From a40419ee008029ce04f087413e74458bf56c8437 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 2 Mar 2020 14:41:32 -0600 Subject: [PATCH 130/864] Update dependencies and remove deprecation warnings (#223) * Update dependencies and remove deprecation warnings Joi method change remove dead code remove dead test * Version bump mocha, uuid * Added missing split dep, remove unused url dep --- package-lock.json | 2781 +++++++++++++++++++++++++-------------- package.json | 38 +- src/client/actions.js | 10 +- src/config.js | 10 +- test/docker-registry.js | 17 +- 5 files changed, 1853 insertions(+), 1003 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7b1785b1..12b73759 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,40 +1,98 @@ { "name": "cortex-cli", - "version": "1.0.3", + "version": "1.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { - "@c12e/generator-cortex": { - "version": "0.3.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.24.tgz", - "integrity": "sha1-NCkHWMASPxa58cQWTJhj6wvtV64=", + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "requires": { - "debug": "^3.1.0", - "joi": "^13.1.2", - "superagent": "^3.8.2", - "yeoman-generator": "^3.1.1" + "@babel/highlight": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ms": "^2.1.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "joi": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", - "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", - "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" - } + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" } } }, + "@c12e/generator-cortex": { + "version": "0.3.30", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.30.tgz", + "integrity": "sha1-nb8HCulOvuOW62Z8+Lm6U8QoK2U=", + "requires": { + "@hapi/joi": "^17.1.0", + "debug": "^4.1.1", + "superagent": "^5.2.2", + "yeoman-generator": "^4.5.0" + } + }, + "@hapi/address": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.0.tgz", + "integrity": "sha512-GDDpkCdSUfkQCznmWUHh9dDN85BWf/V8TFKQ2JLuHdGB4Yy3YTEGBzZxoBNxfNBEvreSR/o+ZxBBSNNEVzY+lQ==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@hapi/formula": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" + }, + "@hapi/hoek": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.3.tgz", + "integrity": "sha512-jKtjLLDiH95b002sJVc5c74PE6KKYftuyVdVmsuYId5stTaWcRFqE+5ukZI4gDUKjGn8wv2C3zPn3/nyjEI7gg==" + }, + "@hapi/joi": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.0.tgz", + "integrity": "sha512-ob67RcPlwRWxBzLCnWvcwx5qbwf88I3ykD7gcJLWOTRfLLgosK7r6aeChz4thA3XRvuBfI0KB1tPVl2EQFlPXw==", + "requires": { + "@hapi/address": "^4.0.0", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" + } + }, + "@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -49,15 +107,51 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "@npmcli/ci-detect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.2.0.tgz", + "integrity": "sha512-JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA==" + }, + "@tootallnate/once": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.0.0.tgz", + "integrity": "sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA==" + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "@types/node": { + "version": "13.7.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.6.tgz", + "integrity": "sha512-eyK7MWD0R1HqVTp+PtwRgFeIsemzuj4gBFSQxfPHY5iMjS7474e5wq+VFgTcdpyHeNxyKSaetYAjdMLJlKoWqA==" + }, + "@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==" + }, "acorn": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", @@ -90,19 +184,30 @@ } }, "agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", + "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", "humanize-ms": "^1.2.1" } }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -115,13 +220,44 @@ "dev": true }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "^2.0.0" + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", @@ -140,6 +276,16 @@ "color-convert": "^1.9.0" } }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -169,9 +315,9 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==" }, "array-union": { "version": "1.0.2", @@ -192,9 +338,9 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "asn1": { "version": "0.2.4", @@ -249,9 +395,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, "babel-code-frame": { "version": "6.26.0", @@ -369,28 +515,70 @@ "tweetnacl": "^0.14.3" } }, - "binaryextensions": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.2.tgz", - "integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==" + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true }, - "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==" + "binaryextensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.2.0.tgz", + "integrity": "sha512-bHhs98rj/7i/RZpCSJ3uk55pLXOItjIrh2sRQZSM6OoktScX+LxJzvlU+FELp9j3TdcddTmmYArLSGptCTwjuw==" }, "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } } }, "brace-expansion": { @@ -443,34 +631,16 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "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==" + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true }, "builtins": { "version": "1.0.3", @@ -483,24 +653,27 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.0.tgz", + "integrity": "sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g==", "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", + "chownr": "^1.1.2", + "fs-minipass": "^2.0.0", "glob": "^7.1.4", - "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.4", "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "rimraf": "^2.7.1", + "ssri": "^8.0.0", + "tar": "^6.0.1", + "unique-filename": "^1.1.1" }, "dependencies": { "lru-cache": { @@ -511,6 +684,11 @@ "yallist": "^3.0.2" } }, + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -555,9 +733,14 @@ "dev": true }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "capture-stack-trace": { + "version": "1.0.1", + "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", @@ -588,13 +771,49 @@ } }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "chardet": { @@ -608,10 +827,70 @@ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "circular-json": { "version": "0.3.3", @@ -640,10 +919,15 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" }, "cli-cursor": { "version": "2.1.0", @@ -667,36 +951,46 @@ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" } } } @@ -775,9 +1069,9 @@ } }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" }, "commondir": { "version": "1.0.1", @@ -798,6 +1092,7 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -833,6 +1128,14 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -843,38 +1146,40 @@ "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, "csv": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.0.tgz", - "integrity": "sha512-Q4Kid1hhScm0ciMVhMMl3gMZaIk0YNJnnpfp7LNXGnvnntjf4BMhB9h15v6A4ftNh7QRc/wPBot9pQgManKAuQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.1.tgz", + "integrity": "sha512-UBO4x5EYpihikfjHUQ7dCTIgC+e9TrWWZbCcoMr935tcAZfXT1MZKHLD+aYSHs1jwW2G1uljpFfJ4XxYwQ6t5w==", "requires": { - "csv-generate": "^3.2.3", - "csv-parse": "^4.8.0", - "csv-stringify": "^5.3.3", + "csv-generate": "^3.2.4", + "csv-parse": "^4.8.2", + "csv-stringify": "^5.3.4", "stream-transform": "^2.0.1" } }, "csv-generate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.3.tgz", - "integrity": "sha512-IcR3K0Nx+nJAkcU2eAglVR7DuHnxcuhUM2w2cR+aHOW7bZp2S5LyN2HF3zTkp6BV/DjR6ykoKznUm+AjnWcOKg==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.4.tgz", + "integrity": "sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA==" }, "csv-parse": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.2.tgz", - "integrity": "sha512-WfYwyJepTbjS5jWAWpVskOJ8Z10231HaFw6qJhSjGrpfMPf3yuoRohlasYsP/6/3YgTQcvZpTvoUo37eaei9Fw==" + "version": "4.8.7", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.7.tgz", + "integrity": "sha512-Kgip6VA+sUvd1lYqZ1n8PpJdv2BKnoYV/YP0by7LTMgNSs2FD3Y16fKyMdQcLfcBgSLnjkix/3BNnVxkw5NmpQ==" }, "csv-stringify": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.3.tgz", - "integrity": "sha512-q8Qj+/lN74LRmG7Mg0LauE5WcnJOD5MEGe1gI57IYJCB61KWuEbAFHm1uIPDkI26aqElyBB57SlE2GGwq2EY5A==" - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.6.tgz", + "integrity": "sha512-kPcRbMvo5NLLD71TAqW5K+g9kbM2HpIZJLAzm73Du8U+5TXmDp9YtXKCBLyxEh0q3Jbg8QhNFBz3b5VJzjZ/jw==" }, "dargs": { "version": "6.1.0", @@ -909,7 +1214,7 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { @@ -917,14 +1222,6 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", @@ -946,7 +1243,7 @@ }, "defaults": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -954,11 +1251,20 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" } } }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -1023,22 +1329,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, - "detect-conflict": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", - "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" - }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" }, "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "requires": { - "arrify": "^1.0.1", "path-type": "^3.0.0" } }, @@ -1061,17 +1361,6 @@ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -1090,11 +1379,11 @@ } }, "editions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/editions/-/editions-2.2.0.tgz", - "integrity": "sha512-RYg3iEA2BDLCNVe8PUkD+ox5vAKxB9XS/mAhx1bdxGCF0CpX077C0pyTA9t5D6idCYA3avl5/XDHKPsHFrygfw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.0.tgz", + "integrity": "sha512-jeXYwHPKbitU1l14dWlsl5Nm+b1Hsm7VX73BsrQ4RVwEcAQQIPFHTZAbVtuIGxZBrpdT2FXd8lbtrNBrzZxIsA==", "requires": { - "errlop": "^1.1.2", + "errlop": "^2.0.0", "semver": "^6.3.0" }, "dependencies": { @@ -1106,9 +1395,9 @@ } }, "ejs": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz", - "integrity": "sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==" + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" }, "emoji-regex": { "version": "7.0.3", @@ -1119,6 +1408,7 @@ "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "optional": true, "requires": { "iconv-lite": "~0.4.13" } @@ -1137,17 +1427,14 @@ "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" }, "errlop": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.2.tgz", - "integrity": "sha512-djkRp+urJ+SmqDBd7F6LUgm4Be1TTYBxia2bhjNdFBuBDQtJDHExD2VbxR6eyst3h1TZy3qPRCdqb6FBoFttTA==", - "requires": { - "editions": "^2.1.3" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.0.0.tgz", + "integrity": "sha512-z00WIrQhtOMUnjdTG0O4f6hMG64EVccVDBy2WwgjcF8S4UB1exGYuc2OFwmdQmsJwLQVEIHWHPCz/omXXgAZHw==" }, "error": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/error/-/error-7.2.0.tgz", - "integrity": "sha512-M6t3j3Vt3uDicrViMP5fLq2AeADNrCVFD8Oj4Qt2MHsX0mPYG7D5XdnEfSdRpaHQzjAJ19wu+I1mw9rQYMTAPg==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", + "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", "requires": { "string-template": "~0.2.1" } @@ -1160,6 +1447,36 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", @@ -1261,8 +1578,19 @@ "json-schema-traverse": "^0.3.0" } }, - "chardet": { - "version": "0.4.2", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.4.2", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", "dev": true @@ -1331,6 +1659,12 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -1394,43 +1728,17 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "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" - }, - "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" - } - } + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" } }, "expand-brackets": { @@ -1577,9 +1885,9 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" }, "fast-glob": { "version": "2.2.7", @@ -1604,10 +1912,10 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" }, "figures": { "version": "2.0.0", @@ -1674,6 +1982,23 @@ "readable-stream": "^2.0.2" } }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + } + } + }, "flat-cache": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", @@ -1697,15 +2022,6 @@ } } }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -1717,19 +2033,19 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, "formidable": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", + "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" }, "fragment-cache": { "version": "0.2.1", @@ -1744,13 +2060,12 @@ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "minipass": "^3.0.0" } }, "fs-write-stream-atomic": { @@ -1769,6 +2084,13 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "dev": true, + "optional": true + }, "ftp": { "version": "0.3.10", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", @@ -1801,6 +2123,12 @@ } } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", @@ -1865,26 +2193,26 @@ } }, "gh-got": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", - "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz", + "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=", "requires": { - "got": "^7.0.0", + "got": "^6.2.0", "is-plain-obj": "^1.1.0" } }, "github-username": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", - "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz", + "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=", "requires": { - "gh-got": "^6.0.0" + "gh-got": "^5.0.0" } }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1919,11 +2247,11 @@ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "requires": { - "ini": "^1.3.4" + "ini": "^1.3.5" } }, "globals": { @@ -1933,38 +2261,43 @@ "dev": true }, "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + } } }, "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { - "decompress-response": "^3.2.0", + "create-error-class": "^3.0.0", "duplexer3": "^0.1.4", "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", + "is-redirect": "^1.0.0", "is-retry-allowed": "^1.0.0", "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", "safe-buffer": "^5.0.1", "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, "graceful-fs": { @@ -1972,12 +2305,17 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, "grouped-queue": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", - "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-1.0.0.tgz", + "integrity": "sha512-XslfWrAGCYovQjveHODR0hllUrsn3UtvPFTkamHbgVHmkUA6eCIDmw3JDWVLJvuntTvYjwaPGamlyzK4/HAEOA==", "requires": { - "lodash": "^4.17.2" + "lodash": "^4.17.15" } }, "growl": { @@ -2000,6 +2338,15 @@ "har-schema": "^2.0.0" } }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -2019,21 +2366,14 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true }, "has-value": { "version": "1.0.0", @@ -2065,25 +2405,20 @@ } }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "hoek": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", - "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==" - }, "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.7.tgz", + "integrity": "sha512-ChkjQtKJ3GI6SsI4O5jwr8q8EPrWCnxuc4Tbx+vRI5x6mDOpjKKltNo1lRlszw3xwgTOSns1ZRBiMmmwpcvLxg==" }, "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-errors": { "version": "1.7.3", @@ -2132,20 +2467,20 @@ } }, "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "6", + "debug": "4" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "agent-base": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", + "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", "requires": { - "ms": "^2.1.1" + "debug": "4" } } } @@ -2181,6 +2516,16 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2225,6 +2570,16 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -2268,11 +2623,26 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -2291,6 +2661,12 @@ } } }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -2332,14 +2708,19 @@ } }, "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", + "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -2358,18 +2739,10 @@ } } }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" - }, "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "^1.0.1" - } + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, "is-plain-obj": { "version": "1.1.0", @@ -2389,6 +2762,20 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -2413,6 +2800,15 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -2434,20 +2830,9 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "requires": { - "buffer-alloc": "^1.2.0" - } - }, - "isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", - "requires": { - "punycode": "2.x.x" - } + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.4.tgz", + "integrity": "sha512-pEutbN134CzcjlLS1myKX/uxNjwU5eBVSprvkpv3+3dqhBHUZLIWJQowC40w5c0Zf19vBY8mrZl88y5J4RAPbQ==" }, "isexe": { "version": "2.0.0", @@ -2465,22 +2850,13 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istextorbinary": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.5.1.tgz", - "integrity": "sha512-pv/JNPWnfpwGjPx7JrtWTwsWsxkrK3fNzcEVnt92YKEIErps4Fsk49+qzCe9iQF2hjqK8Naqf8P9kzoeCuQI1g==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", + "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", "requires": { "binaryextensions": "^2.1.2", - "editions": "^2.1.3", - "textextensions": "^2.4.0" - } - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "editions": "^2.2.0", + "textextensions": "^2.5.0" } }, "jmespath": { @@ -2488,16 +2864,6 @@ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, - "joi": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.1.0.tgz", - "integrity": "sha512-x6pGmDYI6hwNi3skP6irQqRaJntzeaWmZ4rsnjc/NTlf6P5Gp3Aw/O8REe8oLJ6wPhrzd9K3RW1m3Yz/Hx4Weg==", - "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" - } - }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -2626,9 +2992,14 @@ "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" }, "levn": { "version": "0.3.0", @@ -2639,16 +3010,10 @@ "type-check": "~0.3.2" } }, - "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=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "locate-path": { "version": "3.0.0", @@ -2660,9 +3025,9 @@ } }, "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash.includes": { "version": "4.3.0", @@ -2705,6 +3070,18 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { "chalk": "^2.0.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "lowercase-keys": { @@ -2716,6 +3093,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -2727,31 +3105,60 @@ "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==" }, "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "requires": { - "pify": "^3.0.0" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "make-fetch-happen": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", - "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.3.3", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.2.tgz", + "integrity": "sha512-jRqI9zjLyz8ufXfLSbEObJ6a8sv8geeKYEPFpI+b39JjYU14MZtCiJGazSWPZMjCm7161b4r57N/na5fBXpooQ==", + "requires": { + "agentkeepalive": "^4.1.0", + "cacache": "^15.0.0", + "http-cache-semantics": "^4.0.4", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.1.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" }, "dependencies": { + "agent-base": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", + "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", + "requires": { + "debug": "4" + } + }, + "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==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -2760,6 +3167,30 @@ "yallist": "^3.0.2" } }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + } + }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -2773,9 +3204,9 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" }, "map-visit": { "version": "1.0.0", @@ -2832,32 +3263,21 @@ } }, "mem-fs-editor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", - "integrity": "sha512-2Yt2GCYEbcotYbIJagmow4gEtHDqzpq5XN94+yAx/NT5+bGqIjkXnm3KCUQfE6kRfScGp9IZknScoGRKu8L78w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz", + "integrity": "sha512-e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==", "requires": { "commondir": "^1.0.1", "deep-extend": "^0.6.0", - "ejs": "^2.5.9", - "glob": "^7.0.3", - "globby": "^8.0.1", - "isbinaryfile": "^3.0.2", + "ejs": "^2.6.1", + "glob": "^7.1.4", + "globby": "^9.2.0", + "isbinaryfile": "^4.0.0", "mkdirp": "^0.5.0", - "multimatch": "^2.0.0", - "rimraf": "^2.2.8", - "through2": "^2.0.0", - "vinyl": "^2.0.1" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "multimatch": "^4.0.0", + "rimraf": "^2.6.3", + "through2": "^3.0.1", + "vinyl": "^2.2.0" } }, "merge2": { @@ -2891,21 +3311,21 @@ } }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "requires": { - "mime-db": "1.40.0" + "mime-db": "1.43.0" } }, "mimic-fn": { @@ -2913,11 +3333,6 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -2931,57 +3346,113 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "yallist": "^4.0.0" }, "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } + "minipass": "^3.0.0" } }, - "mixme": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.3.2.tgz", - "integrity": "sha512-tilCZOvIhRETXJuTmxxpz8mgplF7gmFhcH05JuR/YL+JLO98gLRQ1Mk4XpYQxxbPMKupSOv+Bidw7EKv8wds1w==" + "minipass-fetch": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", + "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-pipeline": "^1.2.2", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", + "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixme": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.3.5.tgz", + "integrity": "sha512-SyV9uPETRig5ZmYev0ANfiGeB+g6N2EnqqEfBbCGmmJ6MgZ3E4qv5aPbnHVdZ60KAHHXV+T3sXopdrnIXQdmjQ==" }, "mkdirp": { "version": "0.5.1", @@ -2999,43 +3470,95 @@ } }, "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.0.tgz", + "integrity": "sha512-MymHK8UkU0K15Q/zX7uflZgVoRWiTjy0fXE/QjKts6mowUvGxOdPhZ2qj3b0iZdUrNZlW9LAIMFHB4IW+2b3EQ==", "dev": true, "requires": { + "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", + "chokidar": "3.3.0", + "debug": "3.2.6", "diff": "3.5.0", "escape-string-regexp": "1.0.5", - "glob": "7.1.2", + "find-up": "3.0.0", + "glob": "7.1.3", "growl": "1.10.5", - "he": "1.1.1", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "5.4.0" + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.0" }, "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3046,20 +3569,88 @@ "path-is-absolute": "^1.0.0" } }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + } + }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { "has-flag": "^3.0.0" } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, @@ -3087,14 +3678,22 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "requires": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + } } }, "mute-stream": { @@ -3136,14 +3735,22 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "normalize-package-data": { @@ -3155,37 +3762,68 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", + "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", "requires": { - "hosted-git-info": "^2.7.1", + "hosted-git-info": "^3.0.2", "osenv": "^0.1.5", - "semver": "^5.6.0", + "semver": "^7.0.0", "validate-npm-package-name": "^3.0.0" }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "hosted-git-info": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", + "requires": { + "lru-cache": "^5.1.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" } } }, "npm-registry-fetch": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", - "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz", + "integrity": "sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ==", "requires": { - "JSONStream": "^1.3.4", - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", + "@npmcli/ci-detect": "^1.0.0", "lru-cache": "^5.1.1", - "make-fetch-happen": "^4.0.2", - "npm-package-arg": "^6.1.0" + "make-fetch-happen": "^8.0.2", + "minipass": "^3.0.0", + "minipass-fetch": "^1.1.2", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" }, "dependencies": { "lru-cache": { @@ -3250,6 +3888,18 @@ } } }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -3258,6 +3908,28 @@ "isobject": "^3.0.0" } }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -3323,20 +3995,15 @@ "os-tmpdir": "^1.0.0" } }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "requires": { "p-try": "^2.0.0" } @@ -3349,12 +4016,12 @@ "p-limit": "^2.0.0" } }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { - "p-finally": "^1.0.0" + "aggregate-error": "^3.0.0" } }, "p-try": { @@ -3410,23 +4077,15 @@ "thunkify": "^2.1.2" } }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "requires": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, "pascalcase": { @@ -3452,7 +4111,8 @@ "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true }, "path-key": { "version": "2.0.1", @@ -3487,6 +4147,13 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "requires": { "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } } }, "pathval": { @@ -3508,10 +4175,16 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "dev": true + }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pinkie": { "version": "2.0.4", @@ -3633,12 +4306,13 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true }, "psl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", - "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" }, "pump": { "version": "3.0.0", @@ -3649,41 +4323,15 @@ "once": "^1.3.1" } }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.0.tgz", - "integrity": "sha512-27RP4UotQORTpmNQDX8BHPukOnBP3p1uUJY5UnDhaJB+rMt9iMsok724XL+UHU23bEFOHRMQ2ZhI99qOWUMGFA==" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", + "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==" }, "raw-body": { "version": "2.4.1", @@ -3703,32 +4351,26 @@ "requires": { "pify": "^4.0.1", "with-open-file": "^0.1.6" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } } }, "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.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" } }, "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", + "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", "requires": { "find-up": "^3.0.0", - "read-pkg": "^3.0.0" + "read-pkg": "^5.0.0" } }, "readable-stream": { @@ -3745,6 +4387,15 @@ "util-deprecate": "~1.0.1" } }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -3789,9 +4440,9 @@ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -3800,7 +4451,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -3810,7 +4461,7 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" }, @@ -3829,12 +4480,17 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, "require-directory": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { @@ -3853,9 +4509,9 @@ } }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "requires": { "path-parse": "^1.0.6" } @@ -3939,9 +4595,9 @@ } }, "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "requires": { "tslib": "^1.9.0" } @@ -3970,13 +4626,13 @@ "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" }, "set-blocking": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { @@ -4034,9 +4690,9 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" }, "slice-ansi": { "version": "1.0.0", @@ -4053,54 +4709,28 @@ "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==" }, "smartwrap": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.0.tgz", - "integrity": "sha512-gRP/ZRugI16fx79zCwVj0yQcMDOjh5iN7WGoDLrMu7hz2ZYsplv/k7r6honHnRD/X7TaySU48HAFLtXGZ/j2kw==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", + "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", "requires": { "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1", - "yargs": "^14.2.0" + "yargs": "^15.1.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" - } - }, - "yargs": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz", - "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==", - "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.0" + "ansi-regex": "^5.0.0" } } } @@ -4249,11 +4879,11 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -4294,9 +4924,9 @@ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" }, "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "requires": { "through": "2" } @@ -4331,11 +4961,11 @@ } }, "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "requires": { - "figgy-pudding": "^3.5.1" + "minipass": "^3.1.1" } }, "static-eval": { @@ -4371,27 +5001,14 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "requires": { - "duplexer": "~0.1.1" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "duplexer": "~0.1.1", + "through": "~2.3.4" } }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, "stream-transform": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.1.tgz", @@ -4414,6 +5031,26 @@ "strip-ansi": "^4.0.0" } }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -4431,9 +5068,12 @@ } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } }, "strip-bom-stream": { "version": "2.0.0", @@ -4442,16 +5082,6 @@ "requires": { "first-chunk-stream": "^2.0.0", "strip-bom": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } } }, "strip-eof": { @@ -4466,29 +5096,37 @@ "dev": true }, "superagent": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", - "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", + "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.1.1", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.0.5" + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.2", + "debug": "^4.1.1", + "fast-safe-stringify": "^2.0.7", + "form-data": "^3.0.0", + "formidable": "^1.2.1", + "methods": "^1.1.2", + "mime": "^2.4.4", + "qs": "^6.9.1", + "readable-stream": "^3.4.0", + "semver": "^6.3.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "ms": "^2.1.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -4559,6 +5197,17 @@ "json-schema-traverse": "^0.3.0" } }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", @@ -4573,23 +5222,45 @@ } } }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "^0.7.0" + "tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "textextensions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.5.0.tgz", - "integrity": "sha512-1IkVr355eHcomgK7fgj1Xsokturx6L5S2JRT5WcRdA6v5shk9sxWuO/w/VbpQexwkXJMQIa/j1dBi3oo7+HhcA==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", + "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==" }, "through": { "version": "2.3.8", @@ -4665,66 +5336,44 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "topo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", - "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", - "requires": { - "hoek": "6.x.x" - }, - "dependencies": { - "hoek": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", - "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" - } - } - }, "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", + "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==" }, "tty-table": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.2.tgz", - "integrity": "sha512-AJYPsIPUimYiPxJHWA6+79pN8skfUCmIeMlsySQZjCdvRaT/kahOFxT+MMNX8HVs2S6pnPKdpQs1/iIiHO2UnA==", - "requires": { - "chalk": "^2.4.2", - "csv": "^5.1.3", - "smartwrap": "^1.2.0", - "strip-ansi": "^5.2.0", + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.12.tgz", + "integrity": "sha512-QSOxdMM0VnDmDDr1Itw/JkrwjPp3WbuzCRbgydns5mFo6UOuiZOqpGZVp9MP+S8v57awzzRSHSkI8t2bpiM+Og==", + "requires": { + "csv": "^5.3.1", + "kleur": "^3.0.3", + "smartwrap": "^1.2.3", + "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1", - "yargs": "^13.2.4" + "yargs": "^15.1.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" } } } @@ -4756,10 +5405,16 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "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==" + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "underscore": { "version": "1.7.0", @@ -4839,6 +5494,11 @@ "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -4852,22 +5512,6 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -4876,11 +5520,6 @@ "prepend-http": "^1.0.1" } }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -4892,9 +5531,9 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.1.tgz", + "integrity": "sha512-yqjRXZzSJm9Dbl84H2VDHpM3zMjzSJQ+hn6C4zqd5ilW+7P4ZmLEEqwho9LjP+tGuZlF4xrHQXT0h9QZUS/pWA==" }, "validate-npm-package-license": { "version": "3.0.4", @@ -4969,14 +5608,6 @@ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, "vinyl": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", @@ -4991,7 +5622,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -5007,15 +5638,59 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { - "string-width": "^2.1.1" + "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "windows-release": { @@ -5051,20 +5726,13 @@ } }, "with-open-file": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.6.tgz", - "integrity": "sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", + "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", "requires": { "p-finally": "^1.0.0", "p-try": "^2.1.0", "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } } }, "wordwrap": { @@ -5073,36 +5741,68 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" } } } @@ -5139,39 +5839,134 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz", + "integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==", "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^3.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "yargs-parser": "^16.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "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==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs-parser": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", + "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -5182,14 +5977,45 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { "ansi-regex": "^4.1.0" } }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + }, "yargs-parser": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -5197,26 +6023,10 @@ } } }, - "yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, "yeoman-environment": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.4.0.tgz", - "integrity": "sha512-SsvoL0RNAFIX69eFxkUhwKUN2hG1UwUjxrcP+T2ytwdhqC/kHdnFOH2SXdtSN1Ju4aO4xuimmzfRoheYY88RuA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.0.tgz", + "integrity": "sha512-BbJeEna23Qx90fBiJt1awcZ9okfPY/rP3xZYsk1rD3x8LuQgpo4BfegPvQT1sqqh2+gYVZmYZMv5pS8+Muyr9Q==", "requires": { "chalk": "^2.4.1", "cross-spawn": "^6.0.5", @@ -5224,7 +6034,7 @@ "diff": "^3.5.0", "escape-string-regexp": "^1.0.2", "globby": "^8.0.1", - "grouped-queue": "^0.3.3", + "grouped-queue": "^1.0.0", "inquirer": "^6.0.0", "is-scoped": "^1.0.0", "lodash": "^4.17.10", @@ -5235,6 +6045,21 @@ "untildify": "^3.0.3" }, "dependencies": { + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -5242,39 +6067,89 @@ "requires": { "ms": "^2.1.1" } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" } } }, "yeoman-generator": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-3.2.0.tgz", - "integrity": "sha512-iR/qb2je3GdXtSfxgvOXxUW0Cp8+C6LaZaNlK2BAICzFNzwHtM10t/QBwz5Ea9nk6xVDQNj4Q889TjCXGuIv8w==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.6.0.tgz", + "integrity": "sha512-Hq65rLqMNCS0h0n1yakSZjHsEZHm0ZpOM02Nja6O03s2k5WHvAhGOx7uxs93vrJv62zFrJtD9e9mVhgoVbi7CQ==", "requires": { - "async": "^2.6.0", - "chalk": "^2.3.0", + "async": "^2.6.2", + "chalk": "^2.4.2", "cli-table": "^0.3.1", "cross-spawn": "^6.0.5", - "dargs": "^6.0.0", + "dargs": "^6.1.0", "dateformat": "^3.0.3", - "debug": "^4.1.0", - "detect-conflict": "^1.0.0", + "debug": "^4.1.1", + "diff": "^4.0.1", "error": "^7.0.2", "find-up": "^3.0.0", - "github-username": "^4.0.0", - "istextorbinary": "^2.2.1", - "lodash": "^4.17.10", - "make-dir": "^1.1.0", - "mem-fs-editor": "^5.0.0", + "github-username": "^3.0.0", + "istextorbinary": "^2.5.1", + "lodash": "^4.17.11", + "make-dir": "^3.0.0", + "mem-fs-editor": "^6.0.0", "minimist": "^1.2.0", - "pretty-bytes": "^5.1.0", - "read-chunk": "^3.0.0", - "read-pkg-up": "^4.0.0", - "rimraf": "^2.6.2", + "pretty-bytes": "^5.2.0", + "read-chunk": "^3.2.0", + "read-pkg-up": "^5.0.0", + "rimraf": "^2.6.3", "run-async": "^2.0.0", - "shelljs": "^0.8.0", + "shelljs": "^0.8.3", "text-table": "^0.2.0", - "through2": "^3.0.0", - "yeoman-environment": "^2.0.5" + "through2": "^3.0.1", + "yeoman-environment": "^2.3.4" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } } } diff --git a/package.json b/package.json index d7151056..e1de4a7d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.0.3", + "version": "1.1.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -25,43 +25,43 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.24", - "boxen": "1.3.0", - "chalk": "2.4.2", + "@c12e/generator-cortex": "0.3.30", + "@hapi/joi": "17.1.0", + "boxen": "4.2.0", + "chalk": "3.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "2.20.0", + "commander": "4.1.1", "debug": "4.1.1", - "event-stream": "3.3.4", + "event-stream": "4.0.1", "find-package-json": "1.2.0", - "glob": "7.1.4", - "is-installed-globally": "0.1.0", + "glob": "7.1.6", + "is-installed-globally": "0.3.1", "jmespath": "0.15.0", - "joi": "13.1.0", "js-yaml": "3.13.1", "jsonpath": "1.0.2", "jsonwebtoken": "8.5.1", - "lodash": "4.17.14", + "lodash": "4.17.15", "moment": "2.24.0", - "npm-registry-fetch": "3.9.1", + "npm-registry-fetch": "8.0.0", "os-name": "3.1.0", "progress": "2.0.3", - "request": "2.88.0", - "semver": "5.5.0", - "superagent": "3.8.2", + "request": "2.88.2", + "semver": "7.1.3", + "split": "1.0.1", + "superagent": "5.2.2", "superagent-proxy": "2.0.0", "superagent-throttle": "1.0.1", "through2": "3.0.1", - "tty-table": "2.8.2", - "url": "0.11.0", - "uuid": "3.3.2", - "yeoman-environment": "2.4.0" + "tty-table": "2.8.12", + "uuid": "7.0.1", + "yeoman-environment": "2.8.0" }, "devDependencies": { "chai": "4.2.0", "chai-as-promised": "7.1.1", - "mocha": "5.2.0", + "mocha": "7.1.0", "rewire": "4.0.1", "superagent-mocker": "0.5.2" } diff --git a/src/client/actions.js b/src/client/actions.js index f04601d4..21368e34 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -310,22 +310,16 @@ module.exports = class Actions { return _.join([registryUrl, tenant, imageName], '/'); } - _stripCortexPullthroughRegistry(image) { - return image.replace(/^registry\.cortex.*\.insights\.ai:5000\//, '') - } - async _maybePushDockerImage(image, token, pushDocker) { if (!image || !pushDocker) { return image } - const imageClean = this._stripCortexPullthroughRegistry(image); const registryUrl = await this._cortexRegistryUrl(token); const imageName = image.replace(/.+\..+\//, ''); const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, jsonwebtoken.decode(token).tenant); - await callMe(`docker login -u cli --password ${token} ${registryUrl}`); - await callMe(`docker pull ${imageClean} || echo "Docker pull failed using local image"`); - await callMe(`docker tag ${imageClean} ${cortexImageUrl}`); + await callMe(`docker pull ${image} || echo "Docker pull failed using local image"`); + await callMe(`docker tag ${image} ${cortexImageUrl}`); await callMe(`docker push ${cortexImageUrl}`); return cortexImageUrl; } diff --git a/src/config.js b/src/config.js index 94d79304..2d1e09a8 100644 --- a/src/config.js +++ b/src/config.js @@ -17,7 +17,7 @@ const os = require('os'); const fs = require('fs'); const path = require('path'); -const Joi = require('joi'); +const Joi = require('@hapi/joi'); const debug = require('debug')('cortex:config'); module.exports.defaultConfig = defaultConfig = function(){ @@ -69,7 +69,7 @@ class Profile { } validate() { - const {error, value} = Joi.validate(this, ProfileSchema,{abortEarly: false}); + const {error, value} = ProfileSchema.validate(this,{abortEarly: false}); if (error) { throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. Please run "cortex configure".`); } @@ -80,12 +80,6 @@ class Profile { } } -const ConfigSchema = Joi.object().keys({ - version: Joi.string().optional().default('1'), - profiles: Joi.object().optional(), - currentProfile: Joi.string().optional().default('default') -}); - class Config { constructor({version, profiles, currentProfile}) { diff --git a/test/docker-registry.js b/test/docker-registry.js index ad7038da..361f74bd 100644 --- a/test/docker-registry.js +++ b/test/docker-registry.js @@ -4,19 +4,6 @@ const Actions = require('../src/client/actions'); const action = new Actions('https://api.cortex-dev.insights.ai'); -describe('_stripCortexPullthroughRegistry()', () => { - it('strips pullthrough registry', () => { - assert.equal(action._stripCortexPullthroughRegistry('registry.cortex.insights.ai:5000/foo/bar'), 'foo/bar') - assert.equal(action._stripCortexPullthroughRegistry('registry.cortex-dev.insights.ai:5000/foo/bar'), 'foo/bar') - }) - it('leaves image url alone when not pullthrough registry', () => { - assert.equal(action._stripCortexPullthroughRegistry('bar'), 'bar') - assert.equal(action._stripCortexPullthroughRegistry('foo/bar'), 'foo/bar') - assert.equal(action._stripCortexPullthroughRegistry('docker.io/foo/bar'), 'docker.io/foo/bar') - assert.equal(action._stripCortexPullthroughRegistry('private-registry.cortex.insights.ai/foo/bar'), 'private-registry.cortex.insights.ai/foo/bar') - }) -}) - describe('_cortexRegistryImagePath()', () => { it('returns the full URL of the image in the private registry', () => { const registryUrl = 'private-registry.cortex.insights.ai'; @@ -25,7 +12,7 @@ describe('_cortexRegistryImagePath()', () => { const i1 = 'image' const i2 = 'c12e/image' const i3 = 'docker.io/library/image' - + const t1 = 'image:1234' const t2 = 'c12e/image:1234' const t3 = 'docker.io/library/image:1234' @@ -39,4 +26,4 @@ describe('_cortexRegistryImagePath()', () => { } }) -}) \ No newline at end of file +}) From 10cea1e253ba86f597001e7694addcac89d77f36 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 24 Mar 2020 15:48:19 -0500 Subject: [PATCH 131/864] deprecated the `--kind` and `--code` options on the actions subcommand, no longer pass the option from the client to the command and also displays a warning when the options are still passed in (#228) --- bin/cortex-actions.js | 8 +- package-lock.json | 2178 +++++++++++++++++++-------------------- src/client/actions.js | 4 +- src/commands/actions.js | 12 +- 4 files changed, 1103 insertions(+), 1099 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 3a0332dd..9685fb86 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -137,8 +137,8 @@ program .command('deploy ') .description('Deploy an action') .option('--no-compat', 'Ignore API compatibility checks') - .option('--kind [kind]', 'Action runtime kind') // python:3, python:2, nodejs:default - .option('--code [code]', 'The code file or code archive to deploy') + .option('--kind [kind]', '[Deprecated] Action runtime kind') // python:3, python:2, nodejs:default + .option('--code [code]', '[Deprecated] The code file or code archive to deploy') .option('--docker [image]', 'Docker image to use as the runner') .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') @@ -156,8 +156,8 @@ program + 'used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .action(withCompatibilityCheck((actionName, options) => { try { - if (!options.kind && !options.docker) { - throw new Error('--kind [kind] or --docker [image] required'); + if (!options.docker) { + throw new Error('--docker [image] required'); } // allow kind with docker for blackbox images.. // if (options.docker && options.kind) { diff --git a/package-lock.json b/package-lock.json index 12b73759..da281708 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "7.8.3" } }, "@babel/highlight": { @@ -17,9 +17,9 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "chalk": "2.4.2", + "esutils": "2.0.3", + "js-tokens": "4.0.0" }, "dependencies": { "chalk": { @@ -27,9 +27,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "js-tokens": { @@ -44,10 +44,10 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.30.tgz", "integrity": "sha1-nb8HCulOvuOW62Z8+Lm6U8QoK2U=", "requires": { - "@hapi/joi": "^17.1.0", - "debug": "^4.1.1", - "superagent": "^5.2.2", - "yeoman-generator": "^4.5.0" + "@hapi/joi": "17.1.0", + "debug": "4.1.1", + "superagent": "5.2.2", + "yeoman-generator": "4.6.0" } }, "@hapi/address": { @@ -55,7 +55,7 @@ "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.0.tgz", "integrity": "sha512-GDDpkCdSUfkQCznmWUHh9dDN85BWf/V8TFKQ2JLuHdGB4Yy3YTEGBzZxoBNxfNBEvreSR/o+ZxBBSNNEVzY+lQ==", "requires": { - "@hapi/hoek": "^9.0.0" + "@hapi/hoek": "9.0.3" } }, "@hapi/formula": { @@ -73,11 +73,11 @@ "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.0.tgz", "integrity": "sha512-ob67RcPlwRWxBzLCnWvcwx5qbwf88I3ykD7gcJLWOTRfLLgosK7r6aeChz4thA3XRvuBfI0KB1tPVl2EQFlPXw==", "requires": { - "@hapi/address": "^4.0.0", - "@hapi/formula": "^2.0.0", - "@hapi/hoek": "^9.0.0", - "@hapi/pinpoint": "^2.0.0", - "@hapi/topo": "^5.0.0" + "@hapi/address": "4.0.0", + "@hapi/formula": "2.0.0", + "@hapi/hoek": "9.0.3", + "@hapi/pinpoint": "2.0.0", + "@hapi/topo": "5.0.0" } }, "@hapi/pinpoint": { @@ -90,7 +90,7 @@ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "requires": { - "@hapi/hoek": "^9.0.0" + "@hapi/hoek": "9.0.3" } }, "@mrmlnc/readdir-enhanced": { @@ -98,8 +98,8 @@ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" } }, "@nodelib/fs.stat": { @@ -132,9 +132,9 @@ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "@types/events": "3.0.0", + "@types/minimatch": "3.0.3", + "@types/node": "13.7.6" } }, "@types/minimatch": { @@ -164,7 +164,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -180,7 +180,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "requires": { - "es6-promisify": "^5.0.0" + "es6-promisify": "5.0.0" } }, "agentkeepalive": { @@ -188,9 +188,9 @@ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" + "debug": "4.1.1", + "depd": "1.1.2", + "humanize-ms": "1.2.1" } }, "aggregate-error": { @@ -198,8 +198,8 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "clean-stack": "2.2.0", + "indent-string": "4.0.0" } }, "ajv": { @@ -207,10 +207,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "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" + "fast-deep-equal": "3.1.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ajv-keywords": { @@ -224,7 +224,7 @@ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "^3.0.0" + "string-width": "3.1.0" }, "dependencies": { "ansi-regex": { @@ -237,9 +237,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" } }, "strip-ansi": { @@ -247,7 +247,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } } } @@ -273,7 +273,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "anymatch": { @@ -282,8 +282,8 @@ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "normalize-path": "3.0.0", + "picomatch": "2.2.1" } }, "aproba": { @@ -296,7 +296,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -324,7 +324,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -347,7 +347,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert-plus": { @@ -376,7 +376,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "lodash": "^4.17.14" + "lodash": "4.17.15" } }, "asynckit": { @@ -405,9 +405,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.3", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-regex": { @@ -428,11 +428,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "strip-ansi": { @@ -441,7 +441,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "supports-color": { @@ -462,13 +462,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.3.0", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.2", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -476,7 +476,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -484,7 +484,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-data-descriptor": { @@ -492,7 +492,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-descriptor": { @@ -500,9 +500,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.3" } } } @@ -512,7 +512,7 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "binary-extensions": { @@ -531,14 +531,14 @@ "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "ansi-align": "3.0.0", + "camelcase": "5.3.1", + "chalk": "3.0.0", + "cli-boxes": "2.2.0", + "string-width": "4.2.0", + "term-size": "2.2.0", + "type-fest": "0.8.1", + "widest-line": "3.1.0" }, "dependencies": { "ansi-regex": { @@ -561,9 +561,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" } }, "strip-ansi": { @@ -571,7 +571,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "5.0.0" } }, "type-fest": { @@ -586,7 +586,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -595,16 +595,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -612,7 +612,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -622,7 +622,7 @@ "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", "requires": { - "wcwidth": "^1.0.1" + "wcwidth": "1.0.1" } }, "browser-stdout": { @@ -657,23 +657,23 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.0.tgz", "integrity": "sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g==", "requires": { - "chownr": "^1.1.2", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^8.0.0", - "tar": "^6.0.1", - "unique-filename": "^1.1.1" + "chownr": "1.1.4", + "fs-minipass": "2.1.0", + "glob": "7.1.6", + "infer-owner": "1.0.4", + "lru-cache": "5.1.1", + "minipass": "3.1.1", + "minipass-collect": "1.0.2", + "minipass-flush": "1.0.5", + "minipass-pipeline": "1.2.2", + "mkdirp": "1.0.3", + "move-concurrently": "1.0.1", + "p-map": "3.0.0", + "promise-inflight": "1.0.1", + "rimraf": "2.7.1", + "ssri": "8.0.0", + "tar": "6.0.1", + "unique-filename": "1.1.1" }, "dependencies": { "lru-cache": { @@ -681,7 +681,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^3.0.2" + "yallist": "3.1.1" } }, "mkdirp": { @@ -701,15 +701,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.3.0", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.1", + "to-object-path": "0.3.0", + "union-value": "1.0.1", + "unset-value": "1.0.0" } }, "call-me-maybe": { @@ -723,7 +723,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsites": { @@ -753,12 +753,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chai-as-promised": { @@ -767,7 +767,7 @@ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { - "check-error": "^1.0.2" + "check-error": "1.0.2" } }, "chalk": { @@ -775,8 +775,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "4.2.1", + "supports-color": "7.1.0" }, "dependencies": { "ansi-styles": { @@ -784,8 +784,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/color-name": "1.1.1", + "color-convert": "2.0.1" } }, "color-convert": { @@ -793,7 +793,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.4" } }, "color-name": { @@ -811,7 +811,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "has-flag": "^4.0.0" + "has-flag": "4.0.0" } } } @@ -833,14 +833,14 @@ "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", "dev": true, "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "anymatch": "3.1.1", + "braces": "3.0.2", + "fsevents": "2.1.2", + "glob-parent": "5.1.0", + "is-binary-path": "2.1.0", + "is-glob": "4.0.1", + "normalize-path": "3.0.0", + "readdirp": "3.2.0" }, "dependencies": { "braces": { @@ -849,7 +849,7 @@ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "7.0.1" } }, "fill-range": { @@ -858,7 +858,7 @@ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "to-regex-range": "5.0.1" } }, "glob-parent": { @@ -867,7 +867,7 @@ "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "4.0.1" } }, "is-number": { @@ -882,7 +882,7 @@ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "^7.0.0" + "is-number": "7.0.0" } } } @@ -903,10 +903,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -914,7 +914,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } @@ -934,7 +934,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-table": { @@ -955,9 +955,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "string-width": "4.2.0", + "strip-ansi": "6.0.0", + "wrap-ansi": "6.2.0" }, "dependencies": { "ansi-regex": { @@ -980,9 +980,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" } }, "strip-ansi": { @@ -990,7 +990,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "5.0.0" } } } @@ -1015,9 +1015,9 @@ "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" + "inherits": "2.0.4", + "process-nextick-args": "2.0.1", + "readable-stream": "2.3.6" } }, "co": { @@ -1030,7 +1030,7 @@ "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { - "keypress": "~0.2.1" + "keypress": "0.2.1" } }, "collection-visit": { @@ -1038,8 +1038,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -1065,7 +1065,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -1094,10 +1094,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.1", + "inherits": "2.0.4", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "cookiejar": { @@ -1110,12 +1110,12 @@ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.7.1", + "run-queue": "1.0.3" } }, "copy-descriptor": { @@ -1133,7 +1133,7 @@ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { - "capture-stack-trace": "^1.0.0" + "capture-stack-trace": "1.0.1" } }, "cross-spawn": { @@ -1141,11 +1141,11 @@ "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" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.7.1", + "shebang-command": "1.2.0", + "which": "1.3.1" }, "dependencies": { "semver": { @@ -1160,10 +1160,10 @@ "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.1.tgz", "integrity": "sha512-UBO4x5EYpihikfjHUQ7dCTIgC+e9TrWWZbCcoMr935tcAZfXT1MZKHLD+aYSHs1jwW2G1uljpFfJ4XxYwQ6t5w==", "requires": { - "csv-generate": "^3.2.4", - "csv-parse": "^4.8.2", - "csv-stringify": "^5.3.4", - "stream-transform": "^2.0.1" + "csv-generate": "3.2.4", + "csv-parse": "4.8.7", + "csv-stringify": "5.3.6", + "stream-transform": "2.0.1" } }, "csv-generate": { @@ -1191,7 +1191,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "data-uri-to-buffer": { @@ -1209,7 +1209,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "decamelize": { @@ -1228,7 +1228,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-extend": { @@ -1246,7 +1246,7 @@ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { - "clone": "^1.0.2" + "clone": "1.0.4" }, "dependencies": { "clone": { @@ -1262,7 +1262,7 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "object-keys": "1.1.1" } }, "define-property": { @@ -1270,8 +1270,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -1279,7 +1279,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-data-descriptor": { @@ -1287,7 +1287,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-descriptor": { @@ -1295,26 +1295,26 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.3" } } } }, "degenerator": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" + "ast-types": "0.13.2", + "escodegen": "1.12.0", + "esprima": "3.1.3" }, "dependencies": { "esprima": { "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" } } @@ -1326,7 +1326,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "diff": { @@ -1339,7 +1339,7 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "requires": { - "path-type": "^3.0.0" + "path-type": "3.0.0" } }, "doctrine": { @@ -1348,7 +1348,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.3" } }, "duplexer": { @@ -1366,8 +1366,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ecdsa-sig-formatter": { @@ -1375,7 +1375,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "editions": { @@ -1383,8 +1383,8 @@ "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.0.tgz", "integrity": "sha512-jeXYwHPKbitU1l14dWlsl5Nm+b1Hsm7VX73BsrQ4RVwEcAQQIPFHTZAbVtuIGxZBrpdT2FXd8lbtrNBrzZxIsA==", "requires": { - "errlop": "^2.0.0", - "semver": "^6.3.0" + "errlop": "2.0.0", + "semver": "6.3.0" }, "dependencies": { "semver": { @@ -1410,7 +1410,7 @@ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "optional": true, "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "0.4.24" } }, "end-of-stream": { @@ -1418,7 +1418,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "err-code": { @@ -1436,7 +1436,7 @@ "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", "requires": { - "string-template": "~0.2.1" + "string-template": "0.2.1" } }, "error-ex": { @@ -1444,7 +1444,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -1453,17 +1453,17 @@ "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", "dev": true, "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "es-to-primitive": "1.2.1", + "function-bind": "1.1.1", + "has": "1.0.3", + "has-symbols": "1.0.1", + "is-callable": "1.1.5", + "is-regex": "1.0.5", + "object-inspect": "1.7.0", + "object-keys": "1.1.1", + "object.assign": "4.1.0", + "string.prototype.trimleft": "2.1.1", + "string.prototype.trimright": "2.1.1" } }, "es-to-primitive": { @@ -1472,9 +1472,9 @@ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "1.1.5", + "is-date-object": "1.0.2", + "is-symbol": "1.0.3" } }, "es6-promise": { @@ -1487,7 +1487,7 @@ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { - "es6-promise": "^4.0.3" + "es6-promise": "4.2.8" } }, "escape-string-regexp": { @@ -1500,11 +1500,11 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "esprima": "3.1.3", + "estraverse": "4.3.0", + "esutils": "2.0.3", + "optionator": "0.8.2", + "source-map": "0.6.1" }, "dependencies": { "esprima": { @@ -1526,44 +1526,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.2", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.2.6", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.1.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.3", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.6", + "globals": "11.12.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.13.1", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.15", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.3", + "regexpp": "1.1.0", + "require-uncached": "1.0.3", + "semver": "5.7.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" }, "dependencies": { "ajv": { @@ -1572,10 +1572,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "chalk": { @@ -1584,9 +1584,9 @@ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "chardet": { @@ -1601,9 +1601,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.5", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "debug": { @@ -1612,7 +1612,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "external-editor": { @@ -1621,9 +1621,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "fast-deep-equal": { @@ -1638,20 +1638,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.2.0", + "chalk": "2.4.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.15", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "json-schema-traverse": { @@ -1674,8 +1674,8 @@ "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.3.0" } }, "eslint-visitor-keys": { @@ -1690,8 +1690,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.3", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -1705,7 +1705,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.3.0" } }, "esrecurse": { @@ -1714,7 +1714,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.3.0" } }, "estraverse": { @@ -1732,13 +1732,13 @@ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "requires": { - "duplexer": "^0.1.1", - "from": "^0.1.7", + "duplexer": "0.1.1", + "from": "0.1.7", "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" + "pause-stream": "0.0.11", + "split": "1.0.1", + "stream-combiner": "0.2.2", + "through": "2.3.8" } }, "expand-brackets": { @@ -1746,13 +1746,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "debug": { @@ -1768,7 +1768,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -1776,7 +1776,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "ms": { @@ -1796,8 +1796,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -1805,7 +1805,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -1815,9 +1815,9 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "extglob": { @@ -1825,14 +1825,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -1840,7 +1840,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -1848,7 +1848,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -1856,7 +1856,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-data-descriptor": { @@ -1864,7 +1864,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-descriptor": { @@ -1872,9 +1872,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.3" } } } @@ -1894,12 +1894,12 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "@mrmlnc/readdir-enhanced": "2.2.1", + "@nodelib/fs.stat": "1.1.3", + "glob-parent": "3.1.0", + "is-glob": "4.0.1", + "merge2": "1.3.0", + "micromatch": "3.1.10" } }, "fast-json-stable-stringify": { @@ -1922,7 +1922,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -1931,8 +1931,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.4", + "object-assign": "4.1.1" } }, "file-uri-to-path": { @@ -1945,10 +1945,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -1956,7 +1956,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1971,7 +1971,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "first-chunk-stream": { @@ -1979,7 +1979,7 @@ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { - "readable-stream": "^2.0.2" + "readable-stream": "2.3.6" } }, "flat": { @@ -1988,7 +1988,7 @@ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "requires": { - "is-buffer": "~2.0.3" + "is-buffer": "2.0.4" }, "dependencies": { "is-buffer": { @@ -2005,10 +2005,10 @@ "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "dev": true, "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "graceful-fs": "4.2.3", + "rimraf": "2.6.3", + "write": "0.2.1" }, "dependencies": { "rimraf": { @@ -2017,7 +2017,7 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.1.3" + "glob": "7.1.6" } } } @@ -2037,9 +2037,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "asynckit": "0.4.0", + "combined-stream": "1.0.8", + "mime-types": "2.1.26" } }, "formidable": { @@ -2052,7 +2052,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "from": { @@ -2065,7 +2065,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { - "minipass": "^3.0.0" + "minipass": "3.1.1" } }, "fs-write-stream-atomic": { @@ -2073,10 +2073,10 @@ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "graceful-fs": "4.2.3", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.6" } }, "fs.realpath": { @@ -2093,32 +2093,32 @@ }, "ftp": { "version": "0.3.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { - "readable-stream": "1.1.x", + "readable-stream": "1.1.14", "xregexp": "2.0.0" }, "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.4", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "string_decoder": { "version": "0.10.31", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } @@ -2156,12 +2156,12 @@ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", "requires": { - "data-uri-to-buffer": "1", - "debug": "2", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "2" + "data-uri-to-buffer": "1.2.0", + "debug": "2.6.9", + "extend": "3.0.2", + "file-uri-to-path": "1.0.0", + "ftp": "0.3.10", + "readable-stream": "2.3.6" }, "dependencies": { "debug": { @@ -2189,7 +2189,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "gh-got": { @@ -2197,8 +2197,8 @@ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz", "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=", "requires": { - "got": "^6.2.0", - "is-plain-obj": "^1.1.0" + "got": "6.7.1", + "is-plain-obj": "1.1.0" } }, "github-username": { @@ -2206,7 +2206,7 @@ "resolved": "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz", "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=", "requires": { - "gh-got": "^5.0.0" + "gh-got": "5.0.0" } }, "glob": { @@ -2214,12 +2214,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.4", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-parent": { @@ -2227,8 +2227,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -2236,7 +2236,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -2251,7 +2251,7 @@ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "requires": { - "ini": "^1.3.5" + "ini": "1.3.5" } }, "globals": { @@ -2265,14 +2265,14 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" + "@types/glob": "7.1.1", + "array-union": "1.0.2", + "dir-glob": "2.2.2", + "fast-glob": "2.2.7", + "glob": "7.1.6", + "ignore": "4.0.6", + "pify": "4.0.1", + "slash": "2.0.0" }, "dependencies": { "ignore": { @@ -2287,17 +2287,17 @@ "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.2.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } }, "graceful-fs": { @@ -2315,7 +2315,7 @@ "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-1.0.0.tgz", "integrity": "sha512-XslfWrAGCYovQjveHODR0hllUrsn3UtvPFTkamHbgVHmkUA6eCIDmw3JDWVLJvuntTvYjwaPGamlyzK4/HAEOA==", "requires": { - "lodash": "^4.17.15" + "lodash": "4.17.15" } }, "growl": { @@ -2334,8 +2334,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "ajv": "6.12.0", + "har-schema": "2.0.0" } }, "has": { @@ -2344,7 +2344,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -2353,7 +2353,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { @@ -2380,9 +2380,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" } }, "has-values": { @@ -2390,8 +2390,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "kind-of": { @@ -2399,7 +2399,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2425,10 +2425,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.4", "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", + "statuses": "1.5.0", "toidentifier": "1.0.0" } }, @@ -2437,7 +2437,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "requires": { - "agent-base": "4", + "agent-base": "4.3.0", "debug": "3.1.0" }, "dependencies": { @@ -2461,9 +2461,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.16.1" } }, "https-proxy-agent": { @@ -2471,8 +2471,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { - "agent-base": "6", - "debug": "4" + "agent-base": "6.0.0", + "debug": "4.1.1" }, "dependencies": { "agent-base": { @@ -2480,7 +2480,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", "requires": { - "debug": "4" + "debug": "4.1.1" } } } @@ -2490,7 +2490,7 @@ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { - "ms": "^2.0.0" + "ms": "2.1.2" } }, "iconv-lite": { @@ -2498,7 +2498,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "iferr": { @@ -2531,8 +2531,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -2550,19 +2550,19 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", + "ansi-escapes": "3.2.0", + "chalk": "2.4.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.1.0", + "figures": "2.0.0", + "lodash": "4.17.15", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.5.4", + "string-width": "2.1.1", + "strip-ansi": "5.2.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -2575,9 +2575,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "strip-ansi": { @@ -2585,7 +2585,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } } } @@ -2605,7 +2605,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2613,7 +2613,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2629,7 +2629,7 @@ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "binary-extensions": "^2.0.0" + "binary-extensions": "2.0.0" } }, "is-buffer": { @@ -2648,7 +2648,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2656,7 +2656,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2672,9 +2672,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -2704,7 +2704,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-installed-globally": { @@ -2712,8 +2712,8 @@ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "2.0.1", + "is-path-inside": "3.0.2" } }, "is-lambda": { @@ -2726,7 +2726,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2734,7 +2734,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2754,7 +2754,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "is-promise": { @@ -2773,7 +2773,7 @@ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "has": "^1.0.3" + "has": "1.0.3" } }, "is-resolvable": { @@ -2792,7 +2792,7 @@ "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "requires": { - "scoped-regex": "^1.0.0" + "scoped-regex": "1.0.0" } }, "is-stream": { @@ -2806,7 +2806,7 @@ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "has-symbols": "1.0.1" } }, "is-typedarray": { @@ -2854,9 +2854,9 @@ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", "requires": { - "binaryextensions": "^2.1.2", - "editions": "^2.2.0", - "textextensions": "^2.5.0" + "binaryextensions": "2.2.0", + "editions": "2.3.0", + "textextensions": "2.6.0" } }, "jmespath": { @@ -2875,8 +2875,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -2927,7 +2927,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } @@ -2937,16 +2937,16 @@ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" + "jws": "3.2.2", + "lodash.includes": "4.3.0", + "lodash.isboolean": "3.0.3", + "lodash.isinteger": "4.0.4", + "lodash.isnumber": "3.0.3", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.once": "4.1.1", + "ms": "2.1.2", + "semver": "5.7.1" }, "dependencies": { "semver": { @@ -2974,7 +2974,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "jws": { @@ -2982,8 +2982,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" + "jwa": "1.4.1", + "safe-buffer": "5.1.2" } }, "keypress": { @@ -3006,8 +3006,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "lines-and-columns": { @@ -3020,8 +3020,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -3069,7 +3069,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { - "chalk": "^2.0.1" + "chalk": "2.4.2" }, "dependencies": { "chalk": { @@ -3077,9 +3077,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } } } @@ -3095,8 +3095,8 @@ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "macos-release": { @@ -3109,7 +3109,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "requires": { - "semver": "^6.0.0" + "semver": "6.3.0" }, "dependencies": { "semver": { @@ -3124,21 +3124,21 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.2.tgz", "integrity": "sha512-jRqI9zjLyz8ufXfLSbEObJ6a8sv8geeKYEPFpI+b39JjYU14MZtCiJGazSWPZMjCm7161b4r57N/na5fBXpooQ==", "requires": { - "agentkeepalive": "^4.1.0", - "cacache": "^15.0.0", - "http-cache-semantics": "^4.0.4", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.1.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" + "agentkeepalive": "4.1.0", + "cacache": "15.0.0", + "http-cache-semantics": "4.1.0", + "http-proxy-agent": "4.0.1", + "https-proxy-agent": "5.0.0", + "is-lambda": "1.0.1", + "lru-cache": "5.1.1", + "minipass": "3.1.1", + "minipass-collect": "1.0.2", + "minipass-fetch": "1.2.1", + "minipass-flush": "1.0.5", + "minipass-pipeline": "1.2.2", + "promise-retry": "1.1.1", + "socks-proxy-agent": "5.0.0", + "ssri": "8.0.0" }, "dependencies": { "agent-base": { @@ -3146,7 +3146,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", "requires": { - "debug": "4" + "debug": "4.1.1" } }, "http-proxy-agent": { @@ -3154,9 +3154,9 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "@tootallnate/once": "1.0.0", + "agent-base": "6.0.0", + "debug": "4.1.1" } }, "lru-cache": { @@ -3164,7 +3164,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^3.0.2" + "yallist": "3.1.1" } }, "smart-buffer": { @@ -3178,7 +3178,7 @@ "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", "requires": { "ip": "1.1.5", - "smart-buffer": "^4.1.0" + "smart-buffer": "4.1.0" } }, "socks-proxy-agent": { @@ -3186,9 +3186,9 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "agent-base": "6.0.0", + "debug": "4.1.1", + "socks": "2.3.3" } }, "yallist": { @@ -3213,7 +3213,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "mem-fs": { @@ -3221,9 +3221,9 @@ "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", "requires": { - "through2": "^2.0.0", - "vinyl": "^1.1.0", - "vinyl-file": "^2.0.0" + "through2": "2.0.5", + "vinyl": "1.2.0", + "vinyl-file": "2.0.0" }, "dependencies": { "clone": { @@ -3246,8 +3246,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.2" } }, "vinyl": { @@ -3255,8 +3255,8 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", + "clone": "1.0.4", + "clone-stats": "0.0.1", "replace-ext": "0.0.1" } } @@ -3267,17 +3267,17 @@ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz", "integrity": "sha512-e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==", "requires": { - "commondir": "^1.0.1", - "deep-extend": "^0.6.0", - "ejs": "^2.6.1", - "glob": "^7.1.4", - "globby": "^9.2.0", - "isbinaryfile": "^4.0.0", - "mkdirp": "^0.5.0", - "multimatch": "^4.0.0", - "rimraf": "^2.6.3", - "through2": "^3.0.1", - "vinyl": "^2.2.0" + "commondir": "1.0.1", + "deep-extend": "0.6.0", + "ejs": "2.7.4", + "glob": "7.1.6", + "globby": "9.2.0", + "isbinaryfile": "4.0.4", + "mkdirp": "0.5.1", + "multimatch": "4.0.0", + "rimraf": "2.7.1", + "through2": "3.0.1", + "vinyl": "2.2.0" } }, "merge2": { @@ -3295,19 +3295,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.3", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "mime": { @@ -3338,7 +3338,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -3351,7 +3351,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", "requires": { - "yallist": "^4.0.0" + "yallist": "4.0.0" }, "dependencies": { "yallist": { @@ -3366,7 +3366,7 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { - "minipass": "^3.0.0" + "minipass": "3.1.1" } }, "minipass-fetch": { @@ -3374,11 +3374,11 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-pipeline": "^1.2.2", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "encoding": "0.1.12", + "minipass": "3.1.1", + "minipass-pipeline": "1.2.2", + "minipass-sized": "1.0.3", + "minizlib": "2.1.0" } }, "minipass-flush": { @@ -3386,7 +3386,7 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { - "minipass": "^3.0.0" + "minipass": "3.1.1" } }, "minipass-json-stream": { @@ -3394,8 +3394,8 @@ "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" + "jsonparse": "1.3.1", + "minipass": "3.1.1" } }, "minipass-pipeline": { @@ -3403,7 +3403,7 @@ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", "requires": { - "minipass": "^3.0.0" + "minipass": "3.1.1" } }, "minipass-sized": { @@ -3411,7 +3411,7 @@ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "requires": { - "minipass": "^3.0.0" + "minipass": "3.1.1" } }, "minizlib": { @@ -3419,8 +3419,8 @@ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "minipass": "3.1.1", + "yallist": "4.0.0" }, "dependencies": { "yallist": { @@ -3435,8 +3435,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -3444,7 +3444,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -3513,9 +3513,9 @@ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" }, "dependencies": { "supports-color": { @@ -3524,7 +3524,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -3535,9 +3535,9 @@ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "3.1.0", + "strip-ansi": "5.2.0", + "wrap-ansi": "5.1.0" } }, "debug": { @@ -3546,7 +3546,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "diff": { @@ -3561,12 +3561,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.4", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "log-symbols": { @@ -3575,7 +3575,7 @@ "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { - "chalk": "^2.4.2" + "chalk": "2.4.2" } }, "ms": { @@ -3590,9 +3590,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" } }, "strip-ansi": { @@ -3601,7 +3601,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } }, "supports-color": { @@ -3610,7 +3610,7 @@ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "wrap-ansi": { @@ -3619,9 +3619,9 @@ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "3.2.1", + "string-width": "3.1.0", + "strip-ansi": "5.2.0" } }, "yargs": { @@ -3630,16 +3630,16 @@ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "cliui": "5.0.0", + "find-up": "3.0.0", + "get-caller-file": "2.0.5", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "3.1.0", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "13.1.1" } }, "yargs-parser": { @@ -3648,8 +3648,8 @@ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.3.1", + "decamelize": "1.2.0" } } } @@ -3664,12 +3664,12 @@ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.7.1", + "run-queue": "1.0.3" } }, "ms": { @@ -3682,11 +3682,11 @@ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" + "@types/minimatch": "3.0.3", + "array-differ": "3.0.0", + "array-union": "2.1.0", + "arrify": "2.0.1", + "minimatch": "3.0.4" }, "dependencies": { "array-union": { @@ -3706,17 +3706,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.3", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "natural-compare": { @@ -3727,7 +3727,7 @@ }, "netmask": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" }, "nice-try": { @@ -3741,8 +3741,8 @@ "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", "dev": true, "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" + "object.getownpropertydescriptors": "2.1.0", + "semver": "5.7.1" }, "dependencies": { "semver": { @@ -3758,10 +3758,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.8.7", + "resolve": "1.15.1", + "semver": "5.7.1", + "validate-npm-package-license": "3.0.4" }, "dependencies": { "semver": { @@ -3782,10 +3782,10 @@ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", "requires": { - "hosted-git-info": "^3.0.2", - "osenv": "^0.1.5", - "semver": "^7.0.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "3.0.4", + "osenv": "0.1.5", + "semver": "7.1.3", + "validate-npm-package-name": "3.0.0" }, "dependencies": { "hosted-git-info": { @@ -3793,7 +3793,7 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", "requires": { - "lru-cache": "^5.1.1" + "lru-cache": "5.1.1" } }, "lru-cache": { @@ -3801,7 +3801,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^3.0.2" + "yallist": "3.1.1" } }, "yallist": { @@ -3816,14 +3816,14 @@ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz", "integrity": "sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ==", "requires": { - "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^8.0.2", - "minipass": "^3.0.0", - "minipass-fetch": "^1.1.2", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" + "@npmcli/ci-detect": "1.2.0", + "lru-cache": "5.1.1", + "make-fetch-happen": "8.0.2", + "minipass": "3.1.1", + "minipass-fetch": "1.2.1", + "minipass-json-stream": "1.0.1", + "minizlib": "2.1.0", + "npm-package-arg": "8.0.0" }, "dependencies": { "lru-cache": { @@ -3831,7 +3831,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^3.0.2" + "yallist": "3.1.1" } }, "yallist": { @@ -3846,7 +3846,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "oauth-sign": { @@ -3865,9 +3865,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -3875,7 +3875,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "kind-of": { @@ -3883,7 +3883,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -3905,7 +3905,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" } }, "object.assign": { @@ -3914,10 +3914,10 @@ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "define-properties": "1.1.3", + "function-bind": "1.1.1", + "has-symbols": "1.0.1", + "object-keys": "1.1.1" } }, "object.getownpropertydescriptors": { @@ -3926,8 +3926,8 @@ "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "define-properties": "1.1.3", + "es-abstract": "1.17.4" } }, "object.pick": { @@ -3935,7 +3935,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "once": { @@ -3943,7 +3943,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -3951,7 +3951,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "optionator": { @@ -3959,12 +3959,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-homedir": { @@ -3977,8 +3977,8 @@ "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", "requires": { - "macos-release": "^2.2.0", - "windows-release": "^3.1.0" + "macos-release": "2.3.0", + "windows-release": "3.2.0" } }, "os-tmpdir": { @@ -3991,8 +3991,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "p-finally": { @@ -4005,7 +4005,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "requires": { - "p-try": "^2.0.0" + "p-try": "2.2.0" } }, "p-locate": { @@ -4013,7 +4013,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.2.2" } }, "p-map": { @@ -4021,7 +4021,7 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { - "aggregate-error": "^3.0.0" + "aggregate-error": "3.0.1" } }, "p-try": { @@ -4034,14 +4034,14 @@ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", "requires": { - "agent-base": "^4.2.0", - "debug": "^4.1.1", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" + "agent-base": "4.3.0", + "debug": "4.1.1", + "get-uri": "2.0.4", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "3.0.1", + "pac-resolver": "3.0.0", + "raw-body": "2.4.1", + "socks-proxy-agent": "4.0.2" }, "dependencies": { "https-proxy-agent": { @@ -4049,8 +4049,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "4.3.0", + "debug": "3.2.6" }, "dependencies": { "debug": { @@ -4058,7 +4058,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } @@ -4070,11 +4070,11 @@ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" + "co": "4.6.0", + "degenerator": "1.0.4", + "ip": "1.1.5", + "netmask": "1.0.6", + "thunkify": "2.1.2" } }, "parse-json": { @@ -4082,10 +4082,10 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" + "@babel/code-frame": "7.8.3", + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2", + "lines-and-columns": "1.1.6" } }, "pascalcase": { @@ -4146,7 +4146,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" }, "dependencies": { "pify": { @@ -4167,7 +4167,7 @@ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { - "through": "~2.3" + "through": "2.3.8" } }, "performance-now": { @@ -4196,7 +4196,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pluralize": { @@ -4245,8 +4245,8 @@ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" + "err-code": "1.1.2", + "retry": "0.10.1" } }, "proxy-agent": { @@ -4254,14 +4254,14 @@ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", "requires": { - "agent-base": "^4.2.0", - "debug": "4", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^3.0.1", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" + "agent-base": "4.3.0", + "debug": "4.1.1", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "3.0.1", + "lru-cache": "5.1.1", + "pac-proxy-agent": "3.0.1", + "proxy-from-env": "1.0.0", + "socks-proxy-agent": "4.0.2" }, "dependencies": { "https-proxy-agent": { @@ -4269,8 +4269,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "4.3.0", + "debug": "3.2.6" }, "dependencies": { "debug": { @@ -4278,7 +4278,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } @@ -4288,7 +4288,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^3.0.2" + "yallist": "3.1.1" } }, "yallist": { @@ -4300,7 +4300,7 @@ }, "proxy-from-env": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, "pseudomap": { @@ -4319,8 +4319,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.4", + "once": "1.4.0" } }, "punycode": { @@ -4349,8 +4349,8 @@ "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", "requires": { - "pify": "^4.0.1", - "with-open-file": "^0.1.6" + "pify": "4.0.1", + "with-open-file": "0.1.7" } }, "read-pkg": { @@ -4358,10 +4358,10 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "@types/normalize-package-data": "2.4.0", + "normalize-package-data": "2.5.0", + "parse-json": "5.0.0", + "type-fest": "0.6.0" } }, "read-pkg-up": { @@ -4369,8 +4369,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", "requires": { - "find-up": "^3.0.0", - "read-pkg": "^5.0.0" + "find-up": "3.0.0", + "read-pkg": "5.2.0" } }, "readable-stream": { @@ -4378,13 +4378,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.4", + "isarray": "1.0.0", + "process-nextick-args": "2.0.1", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdirp": { @@ -4393,7 +4393,7 @@ "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", "dev": true, "requires": { - "picomatch": "^2.0.4" + "picomatch": "2.2.1" } }, "rechoir": { @@ -4401,7 +4401,7 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "^1.1.6" + "resolve": "1.15.1" } }, "regex-not": { @@ -4409,8 +4409,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpp": { @@ -4444,26 +4444,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "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" + "aws-sign2": "0.7.0", + "aws4": "1.9.1", + "caseless": "0.12.0", + "combined-stream": "1.0.8", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.3", + "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.26", + "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.4.0" }, "dependencies": { "form-data": { @@ -4471,9 +4471,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "asynckit": "0.4.0", + "combined-stream": "1.0.8", + "mime-types": "2.1.26" } }, "qs": { @@ -4504,8 +4504,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" } }, "resolve": { @@ -4513,7 +4513,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -4532,8 +4532,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "ret": { @@ -4552,7 +4552,7 @@ "integrity": "sha512-+7RQ/BYwTieHVXetpKhT11UbfF6v1kGhKFrtZN7UDL2PybMsSt/rpLWeEUGF5Ndsl1D5BxiCB14VDJyoX+noYw==", "dev": true, "requires": { - "eslint": "^4.19.1" + "eslint": "4.19.1" } }, "rimraf": { @@ -4560,7 +4560,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "glob": "^7.1.3" + "glob": "7.1.6" } }, "run-async": { @@ -4568,7 +4568,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-queue": { @@ -4576,7 +4576,7 @@ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { - "aproba": "^1.1.1" + "aproba": "1.2.0" } }, "rx-lite": { @@ -4591,7 +4591,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "rxjs": { @@ -4599,7 +4599,7 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.11.0" } }, "safe-buffer": { @@ -4612,7 +4612,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -4640,10 +4640,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -4651,7 +4651,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4666,7 +4666,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -4679,9 +4679,9 @@ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "glob": "7.1.6", + "interpret": "1.2.0", + "rechoir": "0.6.2" } }, "signal-exit": { @@ -4700,7 +4700,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "smart-buffer": { @@ -4713,11 +4713,11 @@ "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", "requires": { - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" + "breakword": "1.0.5", + "grapheme-splitter": "1.0.4", + "strip-ansi": "6.0.0", + "wcwidth": "1.0.1", + "yargs": "15.1.0" }, "dependencies": { "ansi-regex": { @@ -4730,7 +4730,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "5.0.0" } } } @@ -4740,14 +4740,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.3", + "use": "3.1.1" }, "dependencies": { "debug": { @@ -4763,7 +4763,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -4771,7 +4771,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "ms": { @@ -4786,9 +4786,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -4796,7 +4796,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -4804,7 +4804,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-data-descriptor": { @@ -4812,7 +4812,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-descriptor": { @@ -4820,9 +4820,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.3" } } } @@ -4832,7 +4832,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4840,7 +4840,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4850,7 +4850,7 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", "requires": { - "ip": "^1.1.5", + "ip": "1.1.5", "smart-buffer": "4.0.2" } }, @@ -4859,8 +4859,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" + "agent-base": "4.2.1", + "socks": "2.3.2" }, "dependencies": { "agent-base": { @@ -4868,7 +4868,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "requires": { - "es6-promisify": "^5.0.0" + "es6-promisify": "5.0.0" } } } @@ -4883,11 +4883,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -4900,8 +4900,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.5" } }, "spdx-exceptions": { @@ -4914,8 +4914,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.2.0", + "spdx-license-ids": "3.0.5" } }, "spdx-license-ids": { @@ -4928,7 +4928,7 @@ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "requires": { - "through": "2" + "through": "2.3.8" } }, "split-string": { @@ -4936,7 +4936,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -4949,15 +4949,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "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" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "ssri": { @@ -4965,7 +4965,7 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "requires": { - "minipass": "^3.1.1" + "minipass": "3.1.1" } }, "static-eval": { @@ -4973,7 +4973,7 @@ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", "requires": { - "escodegen": "^1.8.1" + "escodegen": "1.12.0" } }, "static-extend": { @@ -4981,8 +4981,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -4990,14 +4990,14 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } }, "statuses": { "version": "1.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stream-combiner": { @@ -5005,8 +5005,8 @@ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" + "duplexer": "0.1.1", + "through": "2.3.8" } }, "stream-transform": { @@ -5014,7 +5014,7 @@ "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.1.tgz", "integrity": "sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw==", "requires": { - "mixme": "^0.3.1" + "mixme": "0.3.5" } }, "string-template": { @@ -5027,8 +5027,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "string.prototype.trimleft": { @@ -5037,8 +5037,8 @@ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "define-properties": "1.1.3", + "function-bind": "1.1.1" } }, "string.prototype.trimright": { @@ -5047,8 +5047,8 @@ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "define-properties": "1.1.3", + "function-bind": "1.1.1" } }, "string_decoder": { @@ -5056,7 +5056,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -5064,7 +5064,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-bom": { @@ -5072,7 +5072,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-bom-stream": { @@ -5080,8 +5080,8 @@ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { - "first-chunk-stream": "^2.0.0", - "strip-bom": "^2.0.0" + "first-chunk-stream": "2.0.0", + "strip-bom": "2.0.0" } }, "strip-eof": { @@ -5100,17 +5100,17 @@ "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", "requires": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.1", - "methods": "^1.1.2", - "mime": "^2.4.4", - "qs": "^6.9.1", - "readable-stream": "^3.4.0", - "semver": "^6.3.0" + "component-emitter": "1.3.0", + "cookiejar": "2.1.2", + "debug": "4.1.1", + "fast-safe-stringify": "2.0.7", + "form-data": "3.0.0", + "formidable": "1.2.2", + "methods": "1.1.2", + "mime": "2.4.4", + "qs": "6.9.1", + "readable-stream": "3.6.0", + "semver": "6.3.0" }, "dependencies": { "readable-stream": { @@ -5118,9 +5118,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "inherits": "2.0.4", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "semver": { @@ -5136,7 +5136,7 @@ "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", "dev": true, "requires": { - "path-to-regexp": "^1.1.0" + "path-to-regexp": "1.7.0" } }, "superagent-proxy": { @@ -5144,8 +5144,8 @@ "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.0.0.tgz", "integrity": "sha512-TktJma5jPdiH1BNN+reF/RMW3b8aBTCV7KlLFV0uYcREgNf3pvo7Rdt564OcFHwkGb3mYEhHuWPBhSbOwiNaYw==", "requires": { - "debug": "^3.1.0", - "proxy-agent": "3" + "debug": "3.2.6", + "proxy-agent": "3.1.1" }, "dependencies": { "debug": { @@ -5153,7 +5153,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } @@ -5168,7 +5168,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "table": { @@ -5177,12 +5177,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.2", + "lodash": "4.17.15", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" }, "dependencies": { "ajv": { @@ -5191,10 +5191,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "chalk": { @@ -5203,9 +5203,9 @@ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "fast-deep-equal": { @@ -5227,12 +5227,12 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", "requires": { - "chownr": "^1.1.3", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.0", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "chownr": "1.1.4", + "fs-minipass": "2.1.0", + "minipass": "3.1.1", + "minizlib": "2.1.0", + "mkdirp": "1.0.3", + "yallist": "4.0.0" }, "dependencies": { "mkdirp": { @@ -5272,12 +5272,12 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "requires": { - "readable-stream": "2 || 3" + "readable-stream": "2.3.6" } }, "thunkify": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" }, "timed-out": { @@ -5290,7 +5290,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-object-path": { @@ -5298,7 +5298,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -5306,7 +5306,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -5316,10 +5316,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -5327,8 +5327,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" } }, "toidentifier": { @@ -5341,8 +5341,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "psl": "1.7.0", + "punycode": "2.1.1" } }, "tslib": { @@ -5355,12 +5355,12 @@ "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.12.tgz", "integrity": "sha512-QSOxdMM0VnDmDDr1Itw/JkrwjPp3WbuzCRbgydns5mFo6UOuiZOqpGZVp9MP+S8v57awzzRSHSkI8t2bpiM+Og==", "requires": { - "csv": "^5.3.1", - "kleur": "^3.0.3", - "smartwrap": "^1.2.3", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" + "csv": "5.3.1", + "kleur": "3.0.3", + "smartwrap": "1.2.5", + "strip-ansi": "6.0.0", + "wcwidth": "1.0.1", + "yargs": "15.1.0" }, "dependencies": { "ansi-regex": { @@ -5373,7 +5373,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "5.0.0" } } } @@ -5383,7 +5383,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -5396,7 +5396,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -5426,10 +5426,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "2.0.1" } }, "unique-filename": { @@ -5437,7 +5437,7 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { - "unique-slug": "^2.0.0" + "unique-slug": "2.0.2" } }, "unique-slug": { @@ -5445,12 +5445,12 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { - "imurmurhash": "^0.1.4" + "imurmurhash": "0.1.4" } }, "unpipe": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unset-value": { @@ -5458,8 +5458,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -5467,9 +5467,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -5504,7 +5504,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" } }, "urix": { @@ -5517,7 +5517,7 @@ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } }, "use": { @@ -5540,8 +5540,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.1.0", + "spdx-expression-parse": "3.0.0" } }, "validate-npm-package-name": { @@ -5549,7 +5549,7 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { - "builtins": "^1.0.3" + "builtins": "1.0.3" } }, "verror": { @@ -5557,9 +5557,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "vinyl": { @@ -5567,12 +5567,12 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "clone": "2.1.2", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.1.3", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" } }, "vinyl-file": { @@ -5580,12 +5580,12 @@ "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0", - "strip-bom-stream": "^2.0.0", - "vinyl": "^1.1.0" + "graceful-fs": "4.2.3", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0", + "strip-bom-stream": "2.0.0", + "vinyl": "1.2.0" }, "dependencies": { "clone": { @@ -5613,8 +5613,8 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", + "clone": "1.0.4", + "clone-stats": "0.0.1", "replace-ext": "0.0.1" } } @@ -5625,7 +5625,7 @@ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { - "defaults": "^1.0.3" + "defaults": "1.0.3" } }, "which": { @@ -5633,7 +5633,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -5647,7 +5647,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "2.1.1" } }, "widest-line": { @@ -5655,7 +5655,7 @@ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { - "string-width": "^4.0.0" + "string-width": "4.2.0" }, "dependencies": { "ansi-regex": { @@ -5678,9 +5678,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" } }, "strip-ansi": { @@ -5688,7 +5688,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "5.0.0" } } } @@ -5698,7 +5698,7 @@ "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", "requires": { - "execa": "^1.0.0" + "execa": "1.0.0" }, "dependencies": { "execa": { @@ -5706,13 +5706,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "6.0.5", + "get-stream": "4.1.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, "get-stream": { @@ -5720,7 +5720,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "pump": "^3.0.0" + "pump": "3.0.0" } } } @@ -5730,9 +5730,9 @@ "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", "requires": { - "p-finally": "^1.0.0", - "p-try": "^2.1.0", - "pify": "^4.0.1" + "p-finally": "1.0.0", + "p-try": "2.2.0", + "pify": "4.0.1" } }, "wordwrap": { @@ -5745,9 +5745,9 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "4.2.1", + "string-width": "4.2.0", + "strip-ansi": "6.0.0" }, "dependencies": { "ansi-regex": { @@ -5760,8 +5760,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" + "@types/color-name": "1.1.1", + "color-convert": "2.0.1" } }, "color-convert": { @@ -5769,7 +5769,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.4" } }, "color-name": { @@ -5792,9 +5792,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" } }, "strip-ansi": { @@ -5802,7 +5802,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "5.0.0" } } } @@ -5818,12 +5818,12 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "xregexp": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" }, "xtend": { @@ -5847,17 +5847,17 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz", "integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==", "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^16.1.0" + "cliui": "6.0.0", + "decamelize": "1.2.0", + "find-up": "4.1.0", + "get-caller-file": "2.0.5", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "4.2.0", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "16.1.0" }, "dependencies": { "ansi-regex": { @@ -5875,8 +5875,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "5.0.0", + "path-exists": "4.0.0" } }, "is-fullwidth-code-point": { @@ -5889,7 +5889,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "^4.1.0" + "p-locate": "4.1.0" } }, "p-locate": { @@ -5897,7 +5897,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "^2.2.0" + "p-limit": "2.2.2" } }, "path-exists": { @@ -5910,9 +5910,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" } }, "strip-ansi": { @@ -5920,7 +5920,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "5.0.0" } } } @@ -5930,8 +5930,8 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.3.1", + "decamelize": "1.2.0" } }, "yargs-unparser": { @@ -5940,9 +5940,9 @@ "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" + "flat": "4.1.0", + "lodash": "4.17.15", + "yargs": "13.3.0" }, "dependencies": { "ansi-regex": { @@ -5957,9 +5957,9 @@ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "3.1.0", + "strip-ansi": "5.2.0", + "wrap-ansi": "5.1.0" } }, "string-width": { @@ -5968,9 +5968,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" } }, "strip-ansi": { @@ -5979,7 +5979,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } }, "wrap-ansi": { @@ -5988,9 +5988,9 @@ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "3.2.1", + "string-width": "3.1.0", + "strip-ansi": "5.2.0" } }, "yargs": { @@ -5999,16 +5999,16 @@ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "cliui": "5.0.0", + "find-up": "3.0.0", + "get-caller-file": "2.0.5", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "3.1.0", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "13.1.1" } }, "yargs-parser": { @@ -6017,8 +6017,8 @@ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.3.1", + "decamelize": "1.2.0" } } } @@ -6028,21 +6028,21 @@ "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.0.tgz", "integrity": "sha512-BbJeEna23Qx90fBiJt1awcZ9okfPY/rP3xZYsk1rD3x8LuQgpo4BfegPvQT1sqqh2+gYVZmYZMv5pS8+Muyr9Q==", "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "diff": "^3.5.0", - "escape-string-regexp": "^1.0.2", - "globby": "^8.0.1", - "grouped-queue": "^1.0.0", - "inquirer": "^6.0.0", - "is-scoped": "^1.0.0", - "lodash": "^4.17.10", - "log-symbols": "^2.2.0", - "mem-fs": "^1.1.0", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "untildify": "^3.0.3" + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "globby": "8.0.2", + "grouped-queue": "1.0.0", + "inquirer": "6.5.2", + "is-scoped": "1.0.0", + "lodash": "4.17.15", + "log-symbols": "2.2.0", + "mem-fs": "1.1.3", + "strip-ansi": "4.0.0", + "text-table": "0.2.0", + "untildify": "3.0.3" }, "dependencies": { "arrify": { @@ -6055,9 +6055,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "debug": { @@ -6065,7 +6065,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "diff": { @@ -6078,8 +6078,8 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "arrify": "1.0.1", + "path-type": "3.0.0" } }, "globby": { @@ -6087,13 +6087,13 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", "requires": { - "array-union": "^1.0.1", + "array-union": "1.0.2", "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "fast-glob": "2.2.7", + "glob": "7.1.6", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" } }, "pify": { @@ -6113,31 +6113,31 @@ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.6.0.tgz", "integrity": "sha512-Hq65rLqMNCS0h0n1yakSZjHsEZHm0ZpOM02Nja6O03s2k5WHvAhGOx7uxs93vrJv62zFrJtD9e9mVhgoVbi7CQ==", "requires": { - "async": "^2.6.2", - "chalk": "^2.4.2", - "cli-table": "^0.3.1", - "cross-spawn": "^6.0.5", - "dargs": "^6.1.0", - "dateformat": "^3.0.3", - "debug": "^4.1.1", - "diff": "^4.0.1", - "error": "^7.0.2", - "find-up": "^3.0.0", - "github-username": "^3.0.0", - "istextorbinary": "^2.5.1", - "lodash": "^4.17.11", - "make-dir": "^3.0.0", - "mem-fs-editor": "^6.0.0", - "minimist": "^1.2.0", - "pretty-bytes": "^5.2.0", - "read-chunk": "^3.2.0", - "read-pkg-up": "^5.0.0", - "rimraf": "^2.6.3", - "run-async": "^2.0.0", - "shelljs": "^0.8.3", - "text-table": "^0.2.0", - "through2": "^3.0.1", - "yeoman-environment": "^2.3.4" + "async": "2.6.3", + "chalk": "2.4.2", + "cli-table": "0.3.1", + "cross-spawn": "6.0.5", + "dargs": "6.1.0", + "dateformat": "3.0.3", + "debug": "4.1.1", + "diff": "4.0.2", + "error": "7.2.1", + "find-up": "3.0.0", + "github-username": "3.0.0", + "istextorbinary": "2.6.0", + "lodash": "4.17.15", + "make-dir": "3.0.2", + "mem-fs-editor": "6.0.0", + "minimist": "1.2.0", + "pretty-bytes": "5.3.0", + "read-chunk": "3.2.0", + "read-pkg-up": "5.0.0", + "rimraf": "2.7.1", + "run-async": "2.3.0", + "shelljs": "0.8.3", + "text-table": "0.2.0", + "through2": "3.0.1", + "yeoman-environment": "2.8.0" }, "dependencies": { "chalk": { @@ -6145,9 +6145,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } } } diff --git a/src/client/actions.js b/src/client/actions.js index 21368e34..6b8675df 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -59,8 +59,8 @@ module.exports = class Actions { if (params.actionType) { endpoint = `${endpoint}?actionType=${params.actionType}`; } - debug('deployAction(%s, docker=%s, kind=%s, code=%s, ttl=%s) => %s', - actionName, params.dockerImage, params.kind, params.code, params.ttl, endpoint); + debug('deployAction(%s, docker=%s, ttl=%s) => %s', + actionName, params.dockerImage, params.ttl, endpoint); try { params.docker = await this._maybePushDockerImage(params.dockerImage, token, params.pushDocker); diff --git a/src/commands/actions.js b/src/commands/actions.js index 71c3810e..02bdc4a1 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -46,7 +46,6 @@ module.exports.ListActionsCommand = class { const tableSpec = [ {column: 'Name', field: 'name', width: 50}, {column: 'Image', field: 'image', width: 50}, - {column: 'Kind', field: 'kind', width: 25}, {column: 'Created On', field: 'createdAt', width: 26} ]; @@ -107,9 +106,13 @@ module.exports.DeployActionCommand = class { params.podSpec = parseObject(paramsStr, options); } - params.kind = options.kind; - params.dockerImage = options.docker; - params.code = options.code; + if(options.kind){ + printWarning("The kind option has been deprecated and will be ignored.", options); + } + if(options.code){ + printWarning("The code option has been deprecated and will be ignored." + + " Use the docker option for setting an existing image to use.", options); + } if(options.memory){ printWarning("The memory option has been deprecated and will be ignored." + " Use the podspec option for setting this value.", options); @@ -118,6 +121,7 @@ module.exports.DeployActionCommand = class { printWarning("The vcpus option has been deprecated and will be ignored." + " Use the podspec option for setting this value.", options); } + params.dockerImage = options.docker; params.ttl = options.ttl; params.actionType = options.actionType; params.command = options.cmd; From 264a3da0b6f7a3486eb572fcc41238d4a6a01a33 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Mon, 30 Mar 2020 11:37:55 -0500 Subject: [PATCH 132/864] Cm 445 (#229) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports * bumped generator version to `0.3.24` * Bump version to 0.12.19 (#211) * Improvements to graph client and command client. (#213) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. * [CCF-12214] Specify custom HTTP User-Agent header value for all requests * 0.13.0 * [CCF-11868] Add scaleCount option to action deploy * 0.14.0 * Nein, marketplace * 1.0.0 * [CCF-12231] Fix endpoint specification for deleting a profile * 1.0.1 * [CCF-12390] Update deps to pass audit * 1.0.2 * rebase master, fixup package-lock.json * Fix api end (#224) * Remove api endpoint * clean up * Ccf 12660 develop rebase (#226) * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 clean up verbage * CCF-12660 cmd to command * CCF-12660 update to 1.0.3 * CCF-12660 remove vcpu and memory option parsing * Update dependencies and remove deprecation warnings (#223) * Update dependencies and remove deprecation warnings Joi method change remove dead code remove dead test * Version bump mocha, uuid * Added missing split dep, remove unused url dep * deprecated the `--kind` and `--code` options on the actions subcommand, no longer pass the option from the client to the command and also displays a warning when the options are still passed in (#228) Co-authored-by: Christine Draper Co-authored-by: Matt Sanchez Co-authored-by: David Aldridge Co-authored-by: Johan Gielstra Co-authored-by: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> --- bin/cortex-actions.js | 18 +- package-lock.json | 4185 +++++++++++++++++++++++---------------- package.json | 38 +- src/client/actions.js | 38 +- src/commands/actions.js | 65 +- src/config.js | 10 +- test/docker-registry.js | 17 +- 7 files changed, 2616 insertions(+), 1755 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 059aec15..9685fb86 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -116,8 +116,8 @@ program .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--memory [memory]', 'Action memory limit in megabytes') - .option('--vcpus [vcpus]', 'Action vcpus limit in integer') + .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') + .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') .option('--profile [profile]', 'The profile to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') @@ -137,11 +137,11 @@ program .command('deploy ') .description('Deploy an action') .option('--no-compat', 'Ignore API compatibility checks') - .option('--kind [kind]', 'Action runtime kind') // python:3, python:2, nodejs:default - .option('--code [code]', 'The code file or code archive to deploy') + .option('--kind [kind]', '[Deprecated] Action runtime kind') // python:3, python:2, nodejs:default + .option('--code [code]', '[Deprecated] The code file or code archive to deploy') .option('--docker [image]', 'Docker image to use as the runner') - .option('--memory [memory]', 'Action memory limit in megabytes') - .option('--vcpus [vcpus]', 'Action vcpus limit in integer') + .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') + .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') .option('--ttl [ttl]', 'Daemon time to live') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -152,10 +152,12 @@ program .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('--scaleCount [count]', 'Scale count', 'Scale count, only used for daemon action types') + .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, ' + + 'used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .action(withCompatibilityCheck((actionName, options) => { try { - if (!options.kind && !options.docker) { - throw new Error('--kind [kind] or --docker [image] required'); + if (!options.docker) { + throw new Error('--docker [image] required'); } // allow kind with docker for blackbox images.. // if (options.docker && options.kind) { diff --git a/package-lock.json b/package-lock.json index f5ff7ef9..da281708 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,47 +1,105 @@ { "name": "cortex-cli", - "version": "1.0.2", + "version": "1.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { - "@c12e/generator-cortex": { - "version": "0.3.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.24.tgz", - "integrity": "sha1-NCkHWMASPxa58cQWTJhj6wvtV64=", - "requires": { - "debug": "^3.1.0", - "joi": "^13.1.2", - "superagent": "^3.8.2", - "yeoman-generator": "^3.1.1" + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "2.4.2", + "esutils": "2.0.3", + "js-tokens": "4.0.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ms": "^2.1.1" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, - "joi": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", - "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", - "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" - } + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" } } }, + "@c12e/generator-cortex": { + "version": "0.3.30", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.30.tgz", + "integrity": "sha1-nb8HCulOvuOW62Z8+Lm6U8QoK2U=", + "requires": { + "@hapi/joi": "17.1.0", + "debug": "4.1.1", + "superagent": "5.2.2", + "yeoman-generator": "4.6.0" + } + }, + "@hapi/address": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.0.tgz", + "integrity": "sha512-GDDpkCdSUfkQCznmWUHh9dDN85BWf/V8TFKQ2JLuHdGB4Yy3YTEGBzZxoBNxfNBEvreSR/o+ZxBBSNNEVzY+lQ==", + "requires": { + "@hapi/hoek": "9.0.3" + } + }, + "@hapi/formula": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" + }, + "@hapi/hoek": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.3.tgz", + "integrity": "sha512-jKtjLLDiH95b002sJVc5c74PE6KKYftuyVdVmsuYId5stTaWcRFqE+5ukZI4gDUKjGn8wv2C3zPn3/nyjEI7gg==" + }, + "@hapi/joi": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.0.tgz", + "integrity": "sha512-ob67RcPlwRWxBzLCnWvcwx5qbwf88I3ykD7gcJLWOTRfLLgosK7r6aeChz4thA3XRvuBfI0KB1tPVl2EQFlPXw==", + "requires": { + "@hapi/address": "4.0.0", + "@hapi/formula": "2.0.0", + "@hapi/hoek": "9.0.3", + "@hapi/pinpoint": "2.0.0", + "@hapi/topo": "5.0.0" + } + }, + "@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "requires": { + "@hapi/hoek": "9.0.3" + } + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" } }, "@nodelib/fs.stat": { @@ -49,15 +107,51 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "@npmcli/ci-detect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.2.0.tgz", + "integrity": "sha512-JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA==" + }, + "@tootallnate/once": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.0.0.tgz", + "integrity": "sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA==" + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "@types/events": "3.0.0", + "@types/minimatch": "3.0.3", + "@types/node": "13.7.6" } }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "@types/node": { + "version": "13.7.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.6.tgz", + "integrity": "sha512-eyK7MWD0R1HqVTp+PtwRgFeIsemzuj4gBFSQxfPHY5iMjS7474e5wq+VFgTcdpyHeNxyKSaetYAjdMLJlKoWqA==" + }, + "@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==" + }, "acorn": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", @@ -70,7 +164,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -86,26 +180,37 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "requires": { - "es6-promisify": "^5.0.0" + "es6-promisify": "5.0.0" } }, "agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", + "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", + "requires": { + "debug": "4.1.1", + "depd": "1.1.2", + "humanize-ms": "1.2.1" + } + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "requires": { - "humanize-ms": "^1.2.1" + "clean-stack": "2.2.0", + "indent-string": "4.0.0" } }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "3.1.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ajv-keywords": { @@ -115,13 +220,44 @@ "dev": true }, "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "^2.0.0" + "string-width": "3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "4.1.0" + } + } } }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", @@ -137,7 +273,17 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "3.0.0", + "picomatch": "2.2.1" } }, "aproba": { @@ -150,7 +296,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -169,16 +315,16 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==" }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -192,16 +338,16 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert-plus": { @@ -230,7 +376,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "lodash": "^4.17.14" + "lodash": "4.17.15" } }, "asynckit": { @@ -249,9 +395,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, "babel-code-frame": { "version": "6.26.0", @@ -259,9 +405,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.3", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-regex": { @@ -282,11 +428,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "strip-ansi": { @@ -295,7 +441,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "supports-color": { @@ -316,13 +462,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.3.0", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.2", + "pascalcase": "0.1.1" }, "dependencies": { "define-property": { @@ -330,7 +476,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -338,7 +484,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-data-descriptor": { @@ -346,7 +492,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-descriptor": { @@ -354,9 +500,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.3" } } } @@ -366,31 +512,73 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, - "binaryextensions": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.2.tgz", - "integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==" + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true }, - "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==" + "binaryextensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.2.0.tgz", + "integrity": "sha512-bHhs98rj/7i/RZpCSJ3uk55pLXOItjIrh2sRQZSM6OoktScX+LxJzvlU+FELp9j3TdcddTmmYArLSGptCTwjuw==" }, "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "requires": { + "ansi-align": "3.0.0", + "camelcase": "5.3.1", + "chalk": "3.0.0", + "cli-boxes": "2.2.0", + "string-width": "4.2.0", + "term-size": "2.2.0", + "type-fest": "0.8.1", + "widest-line": "3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "5.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + } } }, "brace-expansion": { @@ -398,7 +586,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -407,16 +595,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.3", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" }, "dependencies": { "extend-shallow": { @@ -424,7 +612,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -434,7 +622,7 @@ "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", "requires": { - "wcwidth": "^1.0.1" + "wcwidth": "1.0.1" } }, "browser-stdout": { @@ -443,34 +631,16 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "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==" + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true }, "builtins": { "version": "1.0.3", @@ -483,24 +653,27 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.0.tgz", + "integrity": "sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g==", + "requires": { + "chownr": "1.1.4", + "fs-minipass": "2.1.0", + "glob": "7.1.6", + "infer-owner": "1.0.4", + "lru-cache": "5.1.1", + "minipass": "3.1.1", + "minipass-collect": "1.0.2", + "minipass-flush": "1.0.5", + "minipass-pipeline": "1.2.2", + "mkdirp": "1.0.3", + "move-concurrently": "1.0.1", + "p-map": "3.0.0", + "promise-inflight": "1.0.1", + "rimraf": "2.7.1", + "ssri": "8.0.0", + "tar": "6.0.1", + "unique-filename": "1.1.1" }, "dependencies": { "lru-cache": { @@ -508,9 +681,14 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^3.0.2" + "yallist": "3.1.1" } }, + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -523,15 +701,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "collection-visit": "1.0.0", + "component-emitter": "1.3.0", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.1", + "to-object-path": "0.3.0", + "union-value": "1.0.1", + "unset-value": "1.0.0" } }, "call-me-maybe": { @@ -545,7 +723,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsites": { @@ -555,9 +733,14 @@ "dev": true }, "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "capture-stack-trace": { + "version": "1.0.1", + "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", @@ -570,12 +753,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chai-as-promised": { @@ -584,17 +767,53 @@ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { - "check-error": "^1.0.2" + "check-error": "1.0.2" } }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "4.2.1", + "supports-color": "7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "1.1.1", + "color-convert": "2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "4.0.0" + } + } } }, "chardet": { @@ -608,10 +827,70 @@ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "requires": { + "anymatch": "3.1.1", + "braces": "3.0.2", + "fsevents": "2.1.2", + "glob-parent": "5.1.0", + "is-binary-path": "2.1.0", + "is-glob": "4.0.1", + "normalize-path": "3.0.0", + "readdirp": "3.2.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "5.0.1" + } + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "4.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "7.0.0" + } + } + } + }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "circular-json": { "version": "0.3.3", @@ -624,10 +903,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" }, "dependencies": { "define-property": { @@ -635,22 +914,27 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-table": { @@ -667,36 +951,46 @@ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "4.2.0", + "strip-ansi": "6.0.0", + "wrap-ansi": "6.2.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "5.0.0" } } } @@ -721,9 +1015,9 @@ "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" + "inherits": "2.0.4", + "process-nextick-args": "2.0.1", + "readable-stream": "2.3.6" } }, "co": { @@ -736,7 +1030,7 @@ "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { - "keypress": "~0.2.1" + "keypress": "0.2.1" } }, "collection-visit": { @@ -744,8 +1038,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "map-visit": "1.0.0", + "object-visit": "1.0.1" } }, "color-convert": { @@ -771,13 +1065,13 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" }, "commondir": { "version": "1.0.1", @@ -798,11 +1092,12 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.1", + "inherits": "2.0.4", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "cookiejar": { @@ -815,12 +1110,12 @@ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.7.1", + "run-queue": "1.0.3" } }, "copy-descriptor": { @@ -833,48 +1128,58 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "1.0.1" + } + }, "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" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.7.1", + "shebang-command": "1.2.0", + "which": "1.3.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, "csv": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.0.tgz", - "integrity": "sha512-Q4Kid1hhScm0ciMVhMMl3gMZaIk0YNJnnpfp7LNXGnvnntjf4BMhB9h15v6A4ftNh7QRc/wPBot9pQgManKAuQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.1.tgz", + "integrity": "sha512-UBO4x5EYpihikfjHUQ7dCTIgC+e9TrWWZbCcoMr935tcAZfXT1MZKHLD+aYSHs1jwW2G1uljpFfJ4XxYwQ6t5w==", "requires": { - "csv-generate": "^3.2.3", - "csv-parse": "^4.8.0", - "csv-stringify": "^5.3.3", - "stream-transform": "^2.0.1" + "csv-generate": "3.2.4", + "csv-parse": "4.8.7", + "csv-stringify": "5.3.6", + "stream-transform": "2.0.1" } }, "csv-generate": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.3.tgz", - "integrity": "sha512-IcR3K0Nx+nJAkcU2eAglVR7DuHnxcuhUM2w2cR+aHOW7bZp2S5LyN2HF3zTkp6BV/DjR6ykoKznUm+AjnWcOKg==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.4.tgz", + "integrity": "sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA==" }, "csv-parse": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.2.tgz", - "integrity": "sha512-WfYwyJepTbjS5jWAWpVskOJ8Z10231HaFw6qJhSjGrpfMPf3yuoRohlasYsP/6/3YgTQcvZpTvoUo37eaei9Fw==" + "version": "4.8.7", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.7.tgz", + "integrity": "sha512-Kgip6VA+sUvd1lYqZ1n8PpJdv2BKnoYV/YP0by7LTMgNSs2FD3Y16fKyMdQcLfcBgSLnjkix/3BNnVxkw5NmpQ==" }, "csv-stringify": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.3.tgz", - "integrity": "sha512-q8Qj+/lN74LRmG7Mg0LauE5WcnJOD5MEGe1gI57IYJCB61KWuEbAFHm1uIPDkI26aqElyBB57SlE2GGwq2EY5A==" - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.6.tgz", + "integrity": "sha512-kPcRbMvo5NLLD71TAqW5K+g9kbM2HpIZJLAzm73Du8U+5TXmDp9YtXKCBLyxEh0q3Jbg8QhNFBz3b5VJzjZ/jw==" }, "dargs": { "version": "6.1.0", @@ -886,7 +1191,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "data-uri-to-buffer": { @@ -904,12 +1209,12 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "decamelize": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { @@ -917,21 +1222,13 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-extend": { @@ -946,26 +1243,35 @@ }, "defaults": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { - "clone": "^1.0.2" + "clone": "1.0.4" }, "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" } } }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "1.1.1" + } + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "is-descriptor": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -973,7 +1279,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-data-descriptor": { @@ -981,7 +1287,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-descriptor": { @@ -989,26 +1295,26 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.3" } } } }, "degenerator": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" + "ast-types": "0.13.2", + "escodegen": "1.12.0", + "esprima": "3.1.3" }, "dependencies": { "esprima": { "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" } } @@ -1020,26 +1326,20 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, - "detect-conflict": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", - "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" - }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" }, "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "path-type": "3.0.0" } }, "doctrine": { @@ -1048,7 +1348,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.3" } }, "duplexer": { @@ -1061,24 +1361,13 @@ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ecdsa-sig-formatter": { @@ -1086,16 +1375,16 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "editions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/editions/-/editions-2.2.0.tgz", - "integrity": "sha512-RYg3iEA2BDLCNVe8PUkD+ox5vAKxB9XS/mAhx1bdxGCF0CpX077C0pyTA9t5D6idCYA3avl5/XDHKPsHFrygfw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.0.tgz", + "integrity": "sha512-jeXYwHPKbitU1l14dWlsl5Nm+b1Hsm7VX73BsrQ4RVwEcAQQIPFHTZAbVtuIGxZBrpdT2FXd8lbtrNBrzZxIsA==", "requires": { - "errlop": "^1.1.2", - "semver": "^6.3.0" + "errlop": "2.0.0", + "semver": "6.3.0" }, "dependencies": { "semver": { @@ -1106,9 +1395,9 @@ } }, "ejs": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz", - "integrity": "sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==" + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" }, "emoji-regex": { "version": "7.0.3", @@ -1119,8 +1408,9 @@ "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "optional": true, "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "0.4.24" } }, "end-of-stream": { @@ -1128,7 +1418,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "err-code": { @@ -1137,19 +1427,16 @@ "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" }, "errlop": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.2.tgz", - "integrity": "sha512-djkRp+urJ+SmqDBd7F6LUgm4Be1TTYBxia2bhjNdFBuBDQtJDHExD2VbxR6eyst3h1TZy3qPRCdqb6FBoFttTA==", - "requires": { - "editions": "^2.1.3" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.0.0.tgz", + "integrity": "sha512-z00WIrQhtOMUnjdTG0O4f6hMG64EVccVDBy2WwgjcF8S4UB1exGYuc2OFwmdQmsJwLQVEIHWHPCz/omXXgAZHw==" }, "error": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/error/-/error-7.2.0.tgz", - "integrity": "sha512-M6t3j3Vt3uDicrViMP5fLq2AeADNrCVFD8Oj4Qt2MHsX0mPYG7D5XdnEfSdRpaHQzjAJ19wu+I1mw9rQYMTAPg==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", + "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", "requires": { - "string-template": "~0.2.1" + "string-template": "0.2.1" } }, "error-ex": { @@ -1157,7 +1444,37 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "1.2.1", + "function-bind": "1.1.1", + "has": "1.0.3", + "has-symbols": "1.0.1", + "is-callable": "1.1.5", + "is-regex": "1.0.5", + "object-inspect": "1.7.0", + "object-keys": "1.1.1", + "object.assign": "4.1.0", + "string.prototype.trimleft": "2.1.1", + "string.prototype.trimright": "2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "1.1.5", + "is-date-object": "1.0.2", + "is-symbol": "1.0.3" } }, "es6-promise": { @@ -1170,7 +1487,7 @@ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { - "es6-promise": "^4.0.3" + "es6-promise": "4.2.8" } }, "escape-string-regexp": { @@ -1183,11 +1500,11 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "esprima": "3.1.3", + "estraverse": "4.3.0", + "esutils": "2.0.3", + "optionator": "0.8.2", + "source-map": "0.6.1" }, "dependencies": { "esprima": { @@ -1209,44 +1526,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.2", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.2.6", + "doctrine": "2.1.0", + "eslint-scope": "3.7.3", + "eslint-visitor-keys": "1.1.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.3", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.6", + "globals": "11.12.0", + "ignore": "3.3.10", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.13.1", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.15", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.3", + "regexpp": "1.1.0", + "require-uncached": "1.0.3", + "semver": "5.7.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" }, "dependencies": { "ajv": { @@ -1255,10 +1572,21 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "chardet": { @@ -1273,9 +1601,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.5", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "debug": { @@ -1284,7 +1612,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "external-editor": { @@ -1293,9 +1621,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "fast-deep-equal": { @@ -1310,20 +1638,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.2.0", + "chalk": "2.4.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.15", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" } }, "json-schema-traverse": { @@ -1331,6 +1659,12 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -1340,8 +1674,8 @@ "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.3.0" } }, "eslint-visitor-keys": { @@ -1356,8 +1690,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.3", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -1371,7 +1705,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.3.0" } }, "esrecurse": { @@ -1380,7 +1714,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.3.0" } }, "estraverse": { @@ -1394,43 +1728,17 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "requires": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", + "duplexer": "0.1.1", + "from": "0.1.7", + "map-stream": "0.0.7", "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, - "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" - }, - "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" - } - } + "split": "1.0.1", + "stream-combiner": "0.2.2", + "through": "2.3.8" } }, "expand-brackets": { @@ -1438,13 +1746,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "debug": { @@ -1460,7 +1768,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -1468,7 +1776,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "ms": { @@ -1488,8 +1796,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -1497,7 +1805,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } @@ -1507,9 +1815,9 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "chardet": "0.7.0", + "iconv-lite": "0.4.24", + "tmp": "0.0.33" } }, "extglob": { @@ -1517,14 +1825,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { "define-property": { @@ -1532,7 +1840,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "extend-shallow": { @@ -1540,7 +1848,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "is-accessor-descriptor": { @@ -1548,7 +1856,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-data-descriptor": { @@ -1556,7 +1864,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-descriptor": { @@ -1564,9 +1872,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.3" } } } @@ -1577,21 +1885,21 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "@mrmlnc/readdir-enhanced": "2.2.1", + "@nodelib/fs.stat": "1.1.3", + "glob-parent": "3.1.0", + "is-glob": "4.0.1", + "merge2": "1.3.0", + "micromatch": "3.1.10" } }, "fast-json-stable-stringify": { @@ -1604,17 +1912,17 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==" + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -1623,8 +1931,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.4", + "object-assign": "4.1.1" } }, "file-uri-to-path": { @@ -1637,10 +1945,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" }, "dependencies": { "extend-shallow": { @@ -1648,7 +1956,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -1663,7 +1971,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "first-chunk-stream": { @@ -1671,7 +1979,24 @@ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { - "readable-stream": "^2.0.2" + "readable-stream": "2.3.6" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "2.0.4" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + } } }, "flat-cache": { @@ -1680,10 +2005,10 @@ "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", "dev": true, "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "graceful-fs": "4.2.3", + "rimraf": "2.6.3", + "write": "0.2.1" }, "dependencies": { "rimraf": { @@ -1692,20 +2017,11 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.1.3" + "glob": "7.1.6" } } } }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -1717,26 +2033,26 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "asynckit": "0.4.0", + "combined-stream": "1.0.8", + "mime-types": "2.1.26" } }, "formidable": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", + "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "^0.2.2" + "map-cache": "0.2.2" } }, "from": { @@ -1744,13 +2060,12 @@ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "minipass": "3.1.1" } }, "fs-write-stream-atomic": { @@ -1758,10 +2073,10 @@ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "graceful-fs": "4.2.3", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.6" } }, "fs.realpath": { @@ -1769,38 +2084,51 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "dev": true, + "optional": true + }, "ftp": { "version": "0.3.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { - "readable-stream": "1.1.x", + "readable-stream": "1.1.14", "xregexp": "2.0.0" }, "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "core-util-is": "1.0.2", + "inherits": "2.0.4", "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "string_decoder": "0.10.31" } }, "string_decoder": { "version": "0.10.31", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", @@ -1828,12 +2156,12 @@ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", "requires": { - "data-uri-to-buffer": "1", - "debug": "2", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "2" + "data-uri-to-buffer": "1.2.0", + "debug": "2.6.9", + "extend": "3.0.2", + "file-uri-to-path": "1.0.0", + "ftp": "0.3.10", + "readable-stream": "2.3.6" }, "dependencies": { "debug": { @@ -1861,37 +2189,37 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "gh-got": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", - "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz", + "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=", "requires": { - "got": "^7.0.0", - "is-plain-obj": "^1.1.0" + "got": "6.7.1", + "is-plain-obj": "1.1.0" } }, "github-username": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", - "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz", + "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=", "requires": { - "gh-got": "^6.0.0" + "gh-got": "5.0.0" } }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.4", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-parent": { @@ -1899,8 +2227,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { "is-glob": { @@ -1908,7 +2236,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -1919,11 +2247,11 @@ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "requires": { - "ini": "^1.3.4" + "ini": "1.3.5" } }, "globals": { @@ -1933,38 +2261,43 @@ "dev": true }, "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "requires": { + "@types/glob": "7.1.1", + "array-union": "1.0.2", + "dir-glob": "2.2.2", + "fast-glob": "2.2.7", + "glob": "7.1.6", + "ignore": "4.0.6", + "pify": "4.0.1", + "slash": "2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + } } }, "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.2.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" } }, "graceful-fs": { @@ -1972,12 +2305,17 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, "grouped-queue": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", - "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-1.0.0.tgz", + "integrity": "sha512-XslfWrAGCYovQjveHODR0hllUrsn3UtvPFTkamHbgVHmkUA6eCIDmw3JDWVLJvuntTvYjwaPGamlyzK4/HAEOA==", "requires": { - "lodash": "^4.17.2" + "lodash": "4.17.15" } }, "growl": { @@ -1996,8 +2334,17 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "ajv": "6.12.0", + "har-schema": "2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "1.1.1" } }, "has-ansi": { @@ -2006,7 +2353,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { @@ -2019,30 +2366,23 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" } }, "has-values": { @@ -2050,8 +2390,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "is-number": "3.0.0", + "kind-of": "4.0.0" }, "dependencies": { "kind-of": { @@ -2059,41 +2399,36 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "hoek": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz", - "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==" - }, "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==" + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.7.tgz", + "integrity": "sha512-ChkjQtKJ3GI6SsI4O5jwr8q8EPrWCnxuc4Tbx+vRI5x6mDOpjKKltNo1lRlszw3xwgTOSns1ZRBiMmmwpcvLxg==" }, "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-errors": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.4", "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", + "statuses": "1.5.0", "toidentifier": "1.0.0" } }, @@ -2102,7 +2437,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "requires": { - "agent-base": "4", + "agent-base": "4.3.0", "debug": "3.1.0" }, "dependencies": { @@ -2126,26 +2461,26 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.16.1" } }, "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "6.0.0", + "debug": "4.1.1" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "agent-base": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", + "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", "requires": { - "ms": "^2.1.1" + "debug": "4.1.1" } } } @@ -2155,7 +2490,7 @@ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { - "ms": "^2.0.0" + "ms": "2.1.2" } }, "iconv-lite": { @@ -2163,7 +2498,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "iferr": { @@ -2181,13 +2516,23 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -2205,19 +2550,19 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", + "ansi-escapes": "3.2.0", + "chalk": "2.4.2", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.1.0", + "figures": "2.0.0", + "lodash": "4.17.15", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rxjs": "6.5.4", + "string-width": "2.1.1", + "strip-ansi": "5.2.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -2225,12 +2570,22 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + } + }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } } } @@ -2250,7 +2605,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2258,7 +2613,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -2268,17 +2623,32 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "2.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2286,19 +2656,25 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { @@ -2328,24 +2704,29 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "2.1.1" } }, "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", + "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "2.0.1", + "is-path-inside": "3.0.2" } }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -2353,23 +2734,15 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" - }, "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "^1.0.1" - } + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, "is-plain-obj": { "version": "1.1.0", @@ -2381,7 +2754,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "is-promise": { @@ -2389,6 +2762,20 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "1.0.3" + } + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -2405,7 +2792,7 @@ "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "requires": { - "scoped-regex": "^1.0.0" + "scoped-regex": "1.0.0" } }, "is-stream": { @@ -2413,6 +2800,15 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "1.0.1" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -2434,20 +2830,9 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "requires": { - "buffer-alloc": "^1.2.0" - } - }, - "isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", - "requires": { - "punycode": "2.x.x" - } + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.4.tgz", + "integrity": "sha512-pEutbN134CzcjlLS1myKX/uxNjwU5eBVSprvkpv3+3dqhBHUZLIWJQowC40w5c0Zf19vBY8mrZl88y5J4RAPbQ==" }, "isexe": { "version": "2.0.0", @@ -2465,22 +2850,13 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istextorbinary": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.5.1.tgz", - "integrity": "sha512-pv/JNPWnfpwGjPx7JrtWTwsWsxkrK3fNzcEVnt92YKEIErps4Fsk49+qzCe9iQF2hjqK8Naqf8P9kzoeCuQI1g==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", + "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", "requires": { - "binaryextensions": "^2.1.2", - "editions": "^2.1.3", - "textextensions": "^2.4.0" - } - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "binaryextensions": "2.2.0", + "editions": "2.3.0", + "textextensions": "2.6.0" } }, "jmespath": { @@ -2488,16 +2864,6 @@ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, - "joi": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.1.0.tgz", - "integrity": "sha512-x6pGmDYI6hwNi3skP6irQqRaJntzeaWmZ4rsnjc/NTlf6P5Gp3Aw/O8REe8oLJ6wPhrzd9K3RW1m3Yz/Hx4Weg==", - "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" - } - }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -2509,8 +2875,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -2561,7 +2927,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } @@ -2571,16 +2937,16 @@ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" + "jws": "3.2.2", + "lodash.includes": "4.3.0", + "lodash.isboolean": "3.0.3", + "lodash.isinteger": "4.0.4", + "lodash.isnumber": "3.0.3", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.once": "4.1.1", + "ms": "2.1.2", + "semver": "5.7.1" }, "dependencies": { "semver": { @@ -2608,7 +2974,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "jws": { @@ -2616,8 +2982,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" + "jwa": "1.4.1", + "safe-buffer": "5.1.2" } }, "keypress": { @@ -2626,43 +2992,42 @@ "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, - "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=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash.includes": { "version": "4.3.0", @@ -2704,7 +3069,19 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { - "chalk": "^2.0.1" + "chalk": "2.4.2" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + } + } } }, "lowercase-keys": { @@ -2716,9 +3093,10 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "macos-release": { @@ -2727,37 +3105,90 @@ "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==" }, "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "requires": { - "pify": "^3.0.0" + "semver": "6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "make-fetch-happen": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", - "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.3.3", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.2.tgz", + "integrity": "sha512-jRqI9zjLyz8ufXfLSbEObJ6a8sv8geeKYEPFpI+b39JjYU14MZtCiJGazSWPZMjCm7161b4r57N/na5fBXpooQ==", + "requires": { + "agentkeepalive": "4.1.0", + "cacache": "15.0.0", + "http-cache-semantics": "4.1.0", + "http-proxy-agent": "4.0.1", + "https-proxy-agent": "5.0.0", + "is-lambda": "1.0.1", + "lru-cache": "5.1.1", + "minipass": "3.1.1", + "minipass-collect": "1.0.2", + "minipass-fetch": "1.2.1", + "minipass-flush": "1.0.5", + "minipass-pipeline": "1.2.2", + "promise-retry": "1.1.1", + "socks-proxy-agent": "5.0.0", + "ssri": "8.0.0" }, "dependencies": { + "agent-base": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", + "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", + "requires": { + "debug": "4.1.1" + } + }, + "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==", + "requires": { + "@tootallnate/once": "1.0.0", + "agent-base": "6.0.0", + "debug": "4.1.1" + } + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^3.0.2" + "yallist": "3.1.1" + } + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "requires": { + "ip": "1.1.5", + "smart-buffer": "4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "requires": { + "agent-base": "6.0.0", + "debug": "4.1.1", + "socks": "2.3.3" } }, "yallist": { @@ -2773,16 +3204,16 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "^1.0.0" + "object-visit": "1.0.1" } }, "mem-fs": { @@ -2790,9 +3221,9 @@ "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", "requires": { - "through2": "^2.0.0", - "vinyl": "^1.1.0", - "vinyl-file": "^2.0.0" + "through2": "2.0.5", + "vinyl": "1.2.0", + "vinyl-file": "2.0.0" }, "dependencies": { "clone": { @@ -2815,8 +3246,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "2.3.6", + "xtend": "4.0.2" } }, "vinyl": { @@ -2824,40 +3255,29 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", + "clone": "1.0.4", + "clone-stats": "0.0.1", "replace-ext": "0.0.1" } } } }, "mem-fs-editor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-5.1.0.tgz", - "integrity": "sha512-2Yt2GCYEbcotYbIJagmow4gEtHDqzpq5XN94+yAx/NT5+bGqIjkXnm3KCUQfE6kRfScGp9IZknScoGRKu8L78w==", - "requires": { - "commondir": "^1.0.1", - "deep-extend": "^0.6.0", - "ejs": "^2.5.9", - "glob": "^7.0.3", - "globby": "^8.0.1", - "isbinaryfile": "^3.0.2", - "mkdirp": "^0.5.0", - "multimatch": "^2.0.0", - "rimraf": "^2.2.8", - "through2": "^2.0.0", - "vinyl": "^2.0.1" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz", + "integrity": "sha512-e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==", + "requires": { + "commondir": "1.0.1", + "deep-extend": "0.6.0", + "ejs": "2.7.4", + "glob": "7.1.6", + "globby": "9.2.0", + "isbinaryfile": "4.0.4", + "mkdirp": "0.5.1", + "multimatch": "4.0.0", + "rimraf": "2.7.1", + "through2": "3.0.1", + "vinyl": "2.2.0" } }, "merge2": { @@ -2875,37 +3295,37 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.3", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "requires": { - "mime-db": "1.40.0" + "mime-db": "1.43.0" } }, "mimic-fn": { @@ -2913,17 +3333,12 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -2931,31 +3346,87 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "requires": { + "yallist": "4.0.0" }, "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "requires": { + "minipass": "3.1.1" + } + }, + "minipass-fetch": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", + "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", + "requires": { + "encoding": "0.1.12", + "minipass": "3.1.1", + "minipass-pipeline": "1.2.2", + "minipass-sized": "1.0.3", + "minizlib": "2.1.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "3.1.1" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "requires": { + "jsonparse": "1.3.1", + "minipass": "3.1.1" + } + }, + "minipass-pipeline": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", + "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "requires": { + "minipass": "3.1.1" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "requires": { + "minipass": "3.1.1" + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "requires": { + "minipass": "3.1.1", + "yallist": "4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -2964,8 +3435,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "for-in": "1.0.2", + "is-extendable": "1.0.1" }, "dependencies": { "is-extendable": { @@ -2973,15 +3444,15 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "^2.0.4" + "is-plain-object": "2.0.4" } } } }, "mixme": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.3.2.tgz", - "integrity": "sha512-tilCZOvIhRETXJuTmxxpz8mgplF7gmFhcH05JuR/YL+JLO98gLRQ1Mk4XpYQxxbPMKupSOv+Bidw7EKv8wds1w==" + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.3.5.tgz", + "integrity": "sha512-SyV9uPETRig5ZmYev0ANfiGeB+g6N2EnqqEfBbCGmmJ6MgZ3E4qv5aPbnHVdZ60KAHHXV+T3sXopdrnIXQdmjQ==" }, "mkdirp": { "version": "0.5.1", @@ -2999,66 +3470,186 @@ } }, "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.0.tgz", + "integrity": "sha512-MymHK8UkU0K15Q/zX7uflZgVoRWiTjy0fXE/QjKts6mowUvGxOdPhZ2qj3b0iZdUrNZlW9LAIMFHB4IW+2b3EQ==", "dev": true, "requires": { + "ansi-colors": "3.2.3", "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", + "chokidar": "3.3.0", + "debug": "3.2.6", "diff": "3.5.0", "escape-string-regexp": "1.0.5", - "glob": "7.1.2", + "find-up": "3.0.0", + "glob": "7.1.3", "growl": "1.10.5", - "he": "1.1.1", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "5.4.0" + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.0", + "yargs-parser": "13.1.1", + "yargs-unparser": "1.6.0" }, "dependencies": { - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } } }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "string-width": "3.1.0", + "strip-ansi": "5.2.0", + "wrap-ansi": "5.1.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "2.1.1" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.4", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "2.4.2" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "4.1.0" + } + }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "string-width": "3.1.0", + "strip-ansi": "5.2.0" + } + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "requires": { + "cliui": "5.0.0", + "find-up": "3.0.0", + "get-caller-file": "2.0.5", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "3.1.0", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "13.1.1" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "5.3.1", + "decamelize": "1.2.0" } } } @@ -3073,12 +3664,12 @@ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.7.1", + "run-queue": "1.0.3" } }, "ms": { @@ -3087,14 +3678,22 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "requires": { + "@types/minimatch": "3.0.3", + "array-differ": "3.0.0", + "array-union": "2.1.0", + "arrify": "2.0.1", + "minimatch": "3.0.4" + }, + "dependencies": { + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + } } }, "mute-stream": { @@ -3107,17 +3706,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.3", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "natural-compare": { @@ -3128,7 +3727,7 @@ }, "netmask": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" }, "nice-try": { @@ -3136,14 +3735,22 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, - "node-fetch-npm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" + "object.getownpropertydescriptors": "2.1.0", + "semver": "5.7.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "normalize-package-data": { @@ -3151,21 +3758,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", - "requires": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "2.8.7", + "resolve": "1.15.1", + "semver": "5.7.1", + "validate-npm-package-license": "3.0.4" }, "dependencies": { "semver": { @@ -3175,17 +3771,59 @@ } } }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", + "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", + "requires": { + "hosted-git-info": "3.0.4", + "osenv": "0.1.5", + "semver": "7.1.3", + "validate-npm-package-name": "3.0.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", + "requires": { + "lru-cache": "5.1.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "3.1.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, "npm-registry-fetch": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", - "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", - "requires": { - "JSONStream": "^1.3.4", - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^4.0.2", - "npm-package-arg": "^6.1.0" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz", + "integrity": "sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ==", + "requires": { + "@npmcli/ci-detect": "1.2.0", + "lru-cache": "5.1.1", + "make-fetch-happen": "8.0.2", + "minipass": "3.1.1", + "minipass-fetch": "1.2.1", + "minipass-json-stream": "1.0.1", + "minizlib": "2.1.0", + "npm-package-arg": "8.0.0" }, "dependencies": { "lru-cache": { @@ -3193,7 +3831,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^3.0.2" + "yallist": "3.1.1" } }, "yallist": { @@ -3208,7 +3846,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "oauth-sign": { @@ -3227,9 +3865,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" }, "dependencies": { "define-property": { @@ -3237,7 +3875,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "kind-of": { @@ -3245,17 +3883,51 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "^3.0.0" + "isobject": "3.0.1" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "1.1.3", + "function-bind": "1.1.1", + "has-symbols": "1.0.1", + "object-keys": "1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "1.1.3", + "es-abstract": "1.17.4" } }, "object.pick": { @@ -3263,7 +3935,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "^3.0.1" + "isobject": "3.0.1" } }, "once": { @@ -3271,7 +3943,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -3279,7 +3951,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "optionator": { @@ -3287,12 +3959,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "os-homedir": { @@ -3305,8 +3977,8 @@ "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", "requires": { - "macos-release": "^2.2.0", - "windows-release": "^3.1.0" + "macos-release": "2.3.0", + "windows-release": "3.2.0" } }, "os-tmpdir": { @@ -3319,26 +3991,21 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "requires": { - "p-try": "^2.0.0" + "p-try": "2.2.0" } }, "p-locate": { @@ -3346,15 +4013,15 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.2.2" } }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { - "p-finally": "^1.0.0" + "aggregate-error": "3.0.1" } }, "p-try": { @@ -3367,14 +4034,14 @@ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", "requires": { - "agent-base": "^4.2.0", - "debug": "^4.1.1", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" + "agent-base": "4.3.0", + "debug": "4.1.1", + "get-uri": "2.0.4", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "3.0.1", + "pac-resolver": "3.0.0", + "raw-body": "2.4.1", + "socks-proxy-agent": "4.0.2" }, "dependencies": { "https-proxy-agent": { @@ -3382,8 +4049,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "4.3.0", + "debug": "3.2.6" }, "dependencies": { "debug": { @@ -3391,7 +4058,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } @@ -3403,30 +4070,22 @@ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" - } - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "co": "4.6.0", + "degenerator": "1.0.4", + "ip": "1.1.5", + "netmask": "1.0.6", + "thunkify": "2.1.2" } }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "@babel/code-frame": "7.8.3", + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2", + "lines-and-columns": "1.1.6" } }, "pascalcase": { @@ -3452,7 +4111,8 @@ "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true }, "path-key": { "version": "2.0.1", @@ -3486,7 +4146,14 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "requires": { - "pify": "^3.0.0" + "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } } }, "pathval": { @@ -3500,7 +4167,7 @@ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { - "through": "~2.3" + "through": "2.3.8" } }, "performance-now": { @@ -3508,10 +4175,16 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "dev": true + }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pinkie": { "version": "2.0.4", @@ -3523,7 +4196,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "pluralize": { @@ -3572,8 +4245,8 @@ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" + "err-code": "1.1.2", + "retry": "0.10.1" } }, "proxy-agent": { @@ -3581,14 +4254,14 @@ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", "requires": { - "agent-base": "^4.2.0", - "debug": "4", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^3.0.1", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" + "agent-base": "4.3.0", + "debug": "4.1.1", + "http-proxy-agent": "2.1.0", + "https-proxy-agent": "3.0.1", + "lru-cache": "5.1.1", + "pac-proxy-agent": "3.0.1", + "proxy-from-env": "1.0.0", + "socks-proxy-agent": "4.0.2" }, "dependencies": { "https-proxy-agent": { @@ -3596,8 +4269,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "agent-base": "4.3.0", + "debug": "3.2.6" }, "dependencies": { "debug": { @@ -3605,7 +4278,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } @@ -3615,7 +4288,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^3.0.2" + "yallist": "3.1.1" } }, "yallist": { @@ -3627,47 +4300,27 @@ }, "proxy-from-env": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true }, "psl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", - "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } + "end-of-stream": "1.4.4", + "once": "1.4.0" } }, "punycode": { @@ -3676,14 +4329,9 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.0.tgz", - "integrity": "sha512-27RP4UotQORTpmNQDX8BHPukOnBP3p1uUJY5UnDhaJB+rMt9iMsok724XL+UHU23bEFOHRMQ2ZhI99qOWUMGFA==" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", + "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==" }, "raw-body": { "version": "2.4.1", @@ -3701,34 +4349,28 @@ "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", "requires": { - "pify": "^4.0.1", - "with-open-file": "^0.1.6" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } + "pify": "4.0.1", + "with-open-file": "0.1.7" } }, "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.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" } }, "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", + "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" + "find-up": "3.0.0", + "read-pkg": "5.2.0" } }, "readable-stream": { @@ -3736,13 +4378,22 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.4", + "isarray": "1.0.0", + "process-nextick-args": "2.0.1", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "requires": { + "picomatch": "2.2.1" } }, "rechoir": { @@ -3750,7 +4401,7 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "^1.1.6" + "resolve": "1.15.1" } }, "regex-not": { @@ -3758,8 +4409,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpp": { @@ -3789,30 +4440,30 @@ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "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.0", - "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.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.9.1", + "caseless": "0.12.0", + "combined-stream": "1.0.8", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.3", + "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.26", + "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.4.0" }, "dependencies": { "form-data": { @@ -3820,21 +4471,26 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "asynckit": "0.4.0", + "combined-stream": "1.0.8", + "mime-types": "2.1.26" } }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, "require-directory": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { @@ -3848,16 +4504,16 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" } }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } }, "resolve-from": { @@ -3876,8 +4532,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "ret": { @@ -3896,7 +4552,7 @@ "integrity": "sha512-+7RQ/BYwTieHVXetpKhT11UbfF6v1kGhKFrtZN7UDL2PybMsSt/rpLWeEUGF5Ndsl1D5BxiCB14VDJyoX+noYw==", "dev": true, "requires": { - "eslint": "^4.19.1" + "eslint": "4.19.1" } }, "rimraf": { @@ -3904,7 +4560,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "glob": "^7.1.3" + "glob": "7.1.6" } }, "run-async": { @@ -3912,7 +4568,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "run-queue": { @@ -3920,7 +4576,7 @@ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { - "aproba": "^1.1.1" + "aproba": "1.2.0" } }, "rx-lite": { @@ -3935,15 +4591,15 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "requires": { - "tslib": "^1.9.0" + "tslib": "1.11.0" } }, "safe-buffer": { @@ -3956,7 +4612,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "~0.1.10" + "ret": "0.1.15" } }, "safer-buffer": { @@ -3970,13 +4626,13 @@ "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" }, "set-blocking": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { @@ -3984,10 +4640,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" }, "dependencies": { "extend-shallow": { @@ -3995,7 +4651,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } } } @@ -4010,7 +4666,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -4023,9 +4679,9 @@ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "glob": "7.1.6", + "interpret": "1.2.0", + "rechoir": "0.6.2" } }, "signal-exit": { @@ -4034,9 +4690,9 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" }, "slice-ansi": { "version": "1.0.0", @@ -4044,7 +4700,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" } }, "smart-buffer": { @@ -4053,54 +4709,28 @@ "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==" }, "smartwrap": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.0.tgz", - "integrity": "sha512-gRP/ZRugI16fx79zCwVj0yQcMDOjh5iN7WGoDLrMu7hz2ZYsplv/k7r6honHnRD/X7TaySU48HAFLtXGZ/j2kw==", - "requires": { - "breakword": "^1.0.5", - "wcwidth": "^1.0.1", - "yargs": "^14.2.0" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", + "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", + "requires": { + "breakword": "1.0.5", + "grapheme-splitter": "1.0.4", + "strip-ansi": "6.0.0", + "wcwidth": "1.0.1", + "yargs": "15.1.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" - } - }, - "yargs": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz", - "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==", - "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.0" + "ansi-regex": "5.0.0" } } } @@ -4110,14 +4740,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.3", + "use": "3.1.1" }, "dependencies": { "debug": { @@ -4133,7 +4763,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } }, "extend-shallow": { @@ -4141,7 +4771,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "0.1.1" } }, "ms": { @@ -4156,9 +4786,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" }, "dependencies": { "define-property": { @@ -4166,7 +4796,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "^1.0.0" + "is-descriptor": "1.0.2" } }, "is-accessor-descriptor": { @@ -4174,7 +4804,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-data-descriptor": { @@ -4182,7 +4812,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^6.0.0" + "kind-of": "6.0.3" } }, "is-descriptor": { @@ -4190,9 +4820,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.3" } } } @@ -4202,7 +4832,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "^3.2.0" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4210,7 +4840,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4220,7 +4850,7 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", "requires": { - "ip": "^1.1.5", + "ip": "1.1.5", "smart-buffer": "4.0.2" } }, @@ -4229,8 +4859,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" + "agent-base": "4.2.1", + "socks": "2.3.2" }, "dependencies": { "agent-base": { @@ -4238,7 +4868,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "requires": { - "es6-promisify": "^5.0.0" + "es6-promisify": "5.0.0" } } } @@ -4249,15 +4879,15 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "atob": "2.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" } }, "source-map-url": { @@ -4270,8 +4900,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.5" } }, "spdx-exceptions": { @@ -4284,8 +4914,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.2.0", + "spdx-license-ids": "3.0.5" } }, "spdx-license-ids": { @@ -4294,11 +4924,11 @@ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" }, "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "requires": { - "through": "2" + "through": "2.3.8" } }, "split-string": { @@ -4306,7 +4936,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "^3.0.0" + "extend-shallow": "3.0.2" } }, "sprintf-js": { @@ -4319,23 +4949,23 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "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" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "requires": { - "figgy-pudding": "^3.5.1" + "minipass": "3.1.1" } }, "static-eval": { @@ -4343,7 +4973,7 @@ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", "requires": { - "escodegen": "^1.8.1" + "escodegen": "1.12.0" } }, "static-extend": { @@ -4351,8 +4981,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "define-property": "0.2.5", + "object-copy": "0.1.0" }, "dependencies": { "define-property": { @@ -4360,44 +4990,31 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "^0.1.0" + "is-descriptor": "0.1.6" } } } }, "statuses": { "version": "1.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "requires": { - "duplexer": "~0.1.1" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "duplexer": "0.1.1", + "through": "2.3.8" } }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" - }, "stream-transform": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.1.tgz", "integrity": "sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw==", "requires": { - "mixme": "^0.3.1" + "mixme": "0.3.5" } }, "string-template": { @@ -4410,8 +5027,28 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "dev": true, + "requires": { + "define-properties": "1.1.3", + "function-bind": "1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "dev": true, + "requires": { + "define-properties": "1.1.3", + "function-bind": "1.1.1" } }, "string_decoder": { @@ -4419,7 +5056,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -4427,31 +5064,24 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "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=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "0.2.1" + } }, "strip-bom-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { - "first-chunk-stream": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } + "first-chunk-stream": "2.0.0", + "strip-bom": "2.0.0" } }, "strip-eof": { @@ -4466,29 +5096,37 @@ "dev": true }, "superagent": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", - "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", - "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.1.1", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.0.5" + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", + "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", + "requires": { + "component-emitter": "1.3.0", + "cookiejar": "2.1.2", + "debug": "4.1.1", + "fast-safe-stringify": "2.0.7", + "form-data": "3.0.0", + "formidable": "1.2.2", + "methods": "1.1.2", + "mime": "2.4.4", + "qs": "6.9.1", + "readable-stream": "3.6.0", + "semver": "6.3.0" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "ms": "^2.1.1" + "inherits": "2.0.4", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -4498,7 +5136,7 @@ "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", "dev": true, "requires": { - "path-to-regexp": "^1.1.0" + "path-to-regexp": "1.7.0" } }, "superagent-proxy": { @@ -4506,8 +5144,8 @@ "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.0.0.tgz", "integrity": "sha512-TktJma5jPdiH1BNN+reF/RMW3b8aBTCV7KlLFV0uYcREgNf3pvo7Rdt564OcFHwkGb3mYEhHuWPBhSbOwiNaYw==", "requires": { - "debug": "^3.1.0", - "proxy-agent": "3" + "debug": "3.2.6", + "proxy-agent": "3.1.1" }, "dependencies": { "debug": { @@ -4515,7 +5153,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } @@ -4530,7 +5168,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "table": { @@ -4539,12 +5177,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.2", + "lodash": "4.17.15", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" }, "dependencies": { "ajv": { @@ -4553,10 +5191,21 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" } }, "fast-deep-equal": { @@ -4573,23 +5222,45 @@ } } }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "^0.7.0" + "tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "requires": { + "chownr": "1.1.4", + "fs-minipass": "2.1.0", + "minipass": "3.1.1", + "minizlib": "2.1.0", + "mkdirp": "1.0.3", + "yallist": "4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "textextensions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.5.0.tgz", - "integrity": "sha512-1IkVr355eHcomgK7fgj1Xsokturx6L5S2JRT5WcRdA6v5shk9sxWuO/w/VbpQexwkXJMQIa/j1dBi3oo7+HhcA==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", + "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==" }, "through": { "version": "2.3.8", @@ -4601,12 +5272,12 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "requires": { - "readable-stream": "2 || 3" + "readable-stream": "2.3.6" } }, "thunkify": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" }, "timed-out": { @@ -4619,7 +5290,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-object-path": { @@ -4627,7 +5298,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" }, "dependencies": { "kind-of": { @@ -4635,7 +5306,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } } } @@ -4645,10 +5316,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" } }, "to-regex-range": { @@ -4656,8 +5327,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "3.0.0", + "repeat-string": "1.6.1" } }, "toidentifier": { @@ -4665,66 +5336,44 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "topo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", - "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", - "requires": { - "hoek": "6.x.x" - }, - "dependencies": { - "hoek": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", - "integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==" - } - } - }, "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } + "psl": "1.7.0", + "punycode": "2.1.1" } }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", + "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==" }, "tty-table": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.2.tgz", - "integrity": "sha512-AJYPsIPUimYiPxJHWA6+79pN8skfUCmIeMlsySQZjCdvRaT/kahOFxT+MMNX8HVs2S6pnPKdpQs1/iIiHO2UnA==", - "requires": { - "chalk": "^2.4.2", - "csv": "^5.1.3", - "smartwrap": "^1.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1", - "yargs": "^13.2.4" + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.12.tgz", + "integrity": "sha512-QSOxdMM0VnDmDDr1Itw/JkrwjPp3WbuzCRbgydns5mFo6UOuiZOqpGZVp9MP+S8v57awzzRSHSkI8t2bpiM+Og==", + "requires": { + "csv": "5.3.1", + "kleur": "3.0.3", + "smartwrap": "1.2.5", + "strip-ansi": "6.0.0", + "wcwidth": "1.0.1", + "yargs": "15.1.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "5.0.0" } } } @@ -4734,7 +5383,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -4747,7 +5396,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-detect": { @@ -4756,10 +5405,16 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "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==" + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "underscore": { "version": "1.7.0", @@ -4771,10 +5426,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "2.0.1" } }, "unique-filename": { @@ -4782,7 +5437,7 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { - "unique-slug": "^2.0.0" + "unique-slug": "2.0.2" } }, "unique-slug": { @@ -4790,12 +5445,12 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { - "imurmurhash": "^0.1.4" + "imurmurhash": "0.1.4" } }, "unpipe": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unset-value": { @@ -4803,8 +5458,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "has-value": "0.3.1", + "isobject": "3.0.1" }, "dependencies": { "has-value": { @@ -4812,9 +5467,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" }, "dependencies": { "isobject": { @@ -4839,12 +5494,17 @@ "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" } }, "urix": { @@ -4852,35 +5512,14 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { - "prepend-http": "^1.0.1" + "prepend-http": "1.0.4" } }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -4892,17 +5531,17 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.1.tgz", + "integrity": "sha512-yqjRXZzSJm9Dbl84H2VDHpM3zMjzSJQ+hn6C4zqd5ilW+7P4ZmLEEqwho9LjP+tGuZlF4xrHQXT0h9QZUS/pWA==" }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.1.0", + "spdx-expression-parse": "3.0.0" } }, "validate-npm-package-name": { @@ -4910,7 +5549,7 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { - "builtins": "^1.0.3" + "builtins": "1.0.3" } }, "verror": { @@ -4918,9 +5557,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "vinyl": { @@ -4928,12 +5567,12 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "clone": "2.1.2", + "clone-buffer": "1.0.0", + "clone-stats": "1.0.0", + "cloneable-readable": "1.1.3", + "remove-trailing-separator": "1.1.0", + "replace-ext": "1.0.0" } }, "vinyl-file": { @@ -4941,12 +5580,12 @@ "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0", - "strip-bom-stream": "^2.0.0", - "vinyl": "^1.1.0" + "graceful-fs": "4.2.3", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0", + "strip-bom-stream": "2.0.0", + "vinyl": "1.2.0" }, "dependencies": { "clone": { @@ -4969,21 +5608,13 @@ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, "vinyl": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", + "clone": "1.0.4", + "clone-stats": "0.0.1", "replace-ext": "0.0.1" } } @@ -4991,10 +5622,10 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { - "defaults": "^1.0.3" + "defaults": "1.0.3" } }, "which": { @@ -5002,20 +5633,64 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "2.1.1" + } + }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { - "string-width": "^2.1.1" + "string-width": "4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "5.0.0" + } + } } }, "windows-release": { @@ -5023,7 +5698,7 @@ "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", "requires": { - "execa": "^1.0.0" + "execa": "1.0.0" }, "dependencies": { "execa": { @@ -5031,13 +5706,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "6.0.5", + "get-stream": "4.1.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, "get-stream": { @@ -5045,26 +5720,19 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "pump": "^3.0.0" + "pump": "3.0.0" } } } }, "with-open-file": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.6.tgz", - "integrity": "sha512-SQS05JekbtwQSgCYlBsZn/+m2gpn4zWsqpCYIrCHva0+ojXcnmUEPsBN6Ipoz3vmY/81k5PvYEWSxER2g4BTqA==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", + "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", "requires": { - "p-finally": "^1.0.0", - "p-try": "^2.1.0", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } + "p-finally": "1.0.0", + "p-try": "2.2.0", + "pify": "4.0.1" } }, "wordwrap": { @@ -5073,36 +5741,68 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "4.2.1", + "string-width": "4.2.0", + "strip-ansi": "6.0.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "1.1.1", + "color-convert": "2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "5.0.0" } } } @@ -5118,12 +5818,12 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "xregexp": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" }, "xtend": { @@ -5139,142 +5839,317 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz", + "integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==", + "requires": { + "cliui": "6.0.0", + "decamelize": "1.2.0", + "find-up": "4.1.0", + "get-caller-file": "2.0.5", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "4.2.0", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "16.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "5.0.0", + "path-exists": "4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "4.1.0" + } + }, + "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==", + "requires": { + "p-limit": "2.2.2" + } + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "8.0.0", + "is-fullwidth-code-point": "3.0.0", + "strip-ansi": "6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "5.0.0" + } + } + } + }, + "yargs-parser": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", + "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "requires": { + "camelcase": "5.3.1", + "decamelize": "1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "requires": { + "flat": "4.1.0", + "lodash": "4.17.15", + "yargs": "13.3.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "3.1.0", + "strip-ansi": "5.2.0", + "wrap-ansi": "5.1.0" + } }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "string-width": "3.1.0", + "strip-ansi": "5.2.0" + } + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "cliui": "5.0.0", + "find-up": "3.0.0", + "get-caller-file": "2.0.5", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "3.1.0", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "13.1.1" } }, "yargs-parser": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.3.1", + "decamelize": "1.2.0" } } } }, - "yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, "yeoman-environment": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.4.0.tgz", - "integrity": "sha512-SsvoL0RNAFIX69eFxkUhwKUN2hG1UwUjxrcP+T2ytwdhqC/kHdnFOH2SXdtSN1Ju4aO4xuimmzfRoheYY88RuA==", - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "diff": "^3.5.0", - "escape-string-regexp": "^1.0.2", - "globby": "^8.0.1", - "grouped-queue": "^0.3.3", - "inquirer": "^6.0.0", - "is-scoped": "^1.0.0", - "lodash": "^4.17.10", - "log-symbols": "^2.2.0", - "mem-fs": "^1.1.0", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "untildify": "^3.0.3" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.0.tgz", + "integrity": "sha512-BbJeEna23Qx90fBiJt1awcZ9okfPY/rP3xZYsk1rD3x8LuQgpo4BfegPvQT1sqqh2+gYVZmYZMv5pS8+Muyr9Q==", + "requires": { + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "globby": "8.0.2", + "grouped-queue": "1.0.0", + "inquirer": "6.5.2", + "is-scoped": "1.0.0", + "lodash": "4.17.15", + "log-symbols": "2.2.0", + "mem-fs": "1.1.3", + "strip-ansi": "4.0.0", + "text-table": "0.2.0", + "untildify": "3.0.3" }, "dependencies": { + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + } + }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "requires": { + "arrify": "1.0.1", + "path-type": "3.0.0" + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "requires": { + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "fast-glob": "2.2.7", + "glob": "7.1.6", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" } } }, "yeoman-generator": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-3.2.0.tgz", - "integrity": "sha512-iR/qb2je3GdXtSfxgvOXxUW0Cp8+C6LaZaNlK2BAICzFNzwHtM10t/QBwz5Ea9nk6xVDQNj4Q889TjCXGuIv8w==", - "requires": { - "async": "^2.6.0", - "chalk": "^2.3.0", - "cli-table": "^0.3.1", - "cross-spawn": "^6.0.5", - "dargs": "^6.0.0", - "dateformat": "^3.0.3", - "debug": "^4.1.0", - "detect-conflict": "^1.0.0", - "error": "^7.0.2", - "find-up": "^3.0.0", - "github-username": "^4.0.0", - "istextorbinary": "^2.2.1", - "lodash": "^4.17.10", - "make-dir": "^1.1.0", - "mem-fs-editor": "^5.0.0", - "minimist": "^1.2.0", - "pretty-bytes": "^5.1.0", - "read-chunk": "^3.0.0", - "read-pkg-up": "^4.0.0", - "rimraf": "^2.6.2", - "run-async": "^2.0.0", - "shelljs": "^0.8.0", - "text-table": "^0.2.0", - "through2": "^3.0.0", - "yeoman-environment": "^2.0.5" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.6.0.tgz", + "integrity": "sha512-Hq65rLqMNCS0h0n1yakSZjHsEZHm0ZpOM02Nja6O03s2k5WHvAhGOx7uxs93vrJv62zFrJtD9e9mVhgoVbi7CQ==", + "requires": { + "async": "2.6.3", + "chalk": "2.4.2", + "cli-table": "0.3.1", + "cross-spawn": "6.0.5", + "dargs": "6.1.0", + "dateformat": "3.0.3", + "debug": "4.1.1", + "diff": "4.0.2", + "error": "7.2.1", + "find-up": "3.0.0", + "github-username": "3.0.0", + "istextorbinary": "2.6.0", + "lodash": "4.17.15", + "make-dir": "3.0.2", + "mem-fs-editor": "6.0.0", + "minimist": "1.2.0", + "pretty-bytes": "5.3.0", + "read-chunk": "3.2.0", + "read-pkg-up": "5.0.0", + "rimraf": "2.7.1", + "run-async": "2.3.0", + "shelljs": "0.8.3", + "text-table": "0.2.0", + "through2": "3.0.1", + "yeoman-environment": "2.8.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + } + } } } } diff --git a/package.json b/package.json index 859cc00e..e1de4a7d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.0.2", + "version": "1.1.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -25,43 +25,43 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.24", - "boxen": "1.3.0", - "chalk": "2.4.2", + "@c12e/generator-cortex": "0.3.30", + "@hapi/joi": "17.1.0", + "boxen": "4.2.0", + "chalk": "3.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "2.20.0", + "commander": "4.1.1", "debug": "4.1.1", - "event-stream": "3.3.4", + "event-stream": "4.0.1", "find-package-json": "1.2.0", - "glob": "7.1.4", - "is-installed-globally": "0.1.0", + "glob": "7.1.6", + "is-installed-globally": "0.3.1", "jmespath": "0.15.0", - "joi": "13.1.0", "js-yaml": "3.13.1", "jsonpath": "1.0.2", "jsonwebtoken": "8.5.1", - "lodash": "4.17.14", + "lodash": "4.17.15", "moment": "2.24.0", - "npm-registry-fetch": "3.9.1", + "npm-registry-fetch": "8.0.0", "os-name": "3.1.0", "progress": "2.0.3", - "request": "2.88.0", - "semver": "5.5.0", - "superagent": "3.8.2", + "request": "2.88.2", + "semver": "7.1.3", + "split": "1.0.1", + "superagent": "5.2.2", "superagent-proxy": "2.0.0", "superagent-throttle": "1.0.1", "through2": "3.0.1", - "tty-table": "2.8.2", - "url": "0.11.0", - "uuid": "3.3.2", - "yeoman-environment": "2.4.0" + "tty-table": "2.8.12", + "uuid": "7.0.1", + "yeoman-environment": "2.8.0" }, "devDependencies": { "chai": "4.2.0", "chai-as-promised": "7.1.1", - "mocha": "5.2.0", + "mocha": "7.1.0", "rewire": "4.0.1", "superagent-mocker": "0.5.2" } diff --git a/src/client/actions.js b/src/client/actions.js index 321845b2..6b8675df 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -54,36 +54,26 @@ module.exports = class Actions { }); } - async deployAction(token, actionName, docker, kind, code, memory, vcpus, ttl, actionType, command, port, environment, environmentVariables, pushDocker, scaleCount) { + async deployAction(token, actionName, params) { let endpoint = `${this.endpointV3}`; - if (actionType) { - endpoint = `${endpoint}?actionType=${actionType}`; + if (params.actionType) { + endpoint = `${endpoint}?actionType=${params.actionType}`; } - debug('deployAction(%s, docker=%s, kind=%s, code=%s, memory=%s, vcpus=%s, ttl=%s) => %s', - actionName, docker, kind, code, memory, vcpus, ttl, endpoint); + debug('deployAction(%s, docker=%s, ttl=%s) => %s', + actionName, params.dockerImage, params.ttl, endpoint); try { - docker = await this._maybePushDockerImage(docker, token, pushDocker); + params.docker = await this._maybePushDockerImage(params.dockerImage, token, params.pushDocker); } catch (error) { return {success: false, status: 400, message: error.message || error}; } + params.name = actionName; + const req = request .post(endpoint) .set('Authorization', `Bearer ${token}`) - .field('name', actionName); - - if (docker) req.field('docker', docker); - if (kind) req.field('kind', kind); - if (_.isFinite(memory)) req.field('memory', memory); - if (_.isFinite(vcpus)) req.field('vcpus', vcpus); - if (!_.isNil(ttl)) req.field('ttl', ttl); - if (code) req.attach('code', code); - if (command) req.field('command', command); - if (port) req.field('port', port); - if (environment) req.field('environment', environment); - if (environmentVariables) req.field('environmentVariables', environmentVariables); - if (_.isFinite(scaleCount)) req.field('scaleCount', scaleCount); + .send(params); return req.then((res) => { if (res.ok) { @@ -320,22 +310,16 @@ module.exports = class Actions { return _.join([registryUrl, tenant, imageName], '/'); } - _stripCortexPullthroughRegistry(image) { - return image.replace(/^registry\.cortex.*\.insights\.ai:5000\//, '') - } - async _maybePushDockerImage(image, token, pushDocker) { if (!image || !pushDocker) { return image } - const imageClean = this._stripCortexPullthroughRegistry(image); const registryUrl = await this._cortexRegistryUrl(token); const imageName = image.replace(/.+\..+\//, ''); const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, jsonwebtoken.decode(token).tenant); - await callMe(`docker login -u cli --password ${token} ${registryUrl}`); - await callMe(`docker pull ${imageClean} || echo "Docker pull failed using local image"`); - await callMe(`docker tag ${imageClean} ${cortexImageUrl}`); + await callMe(`docker pull ${image} || echo "Docker pull failed using local image"`); + await callMe(`docker tag ${image} ${cortexImageUrl}`); await callMe(`docker push ${cortexImageUrl}`); return cortexImageUrl; } diff --git a/src/commands/actions.js b/src/commands/actions.js index 2f04b316..02bdc4a1 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -19,7 +19,7 @@ const uuid = require('uuid/v4'); const debug = require('debug')('cortex:cli'); const {loadProfile} = require('../config'); const Actions = require('../client/actions'); -const {printSuccess, printError, filterObject, parseObject, printTable} = require('./utils'); +const {printSuccess, printWarning, printError, filterObject, parseObject, printTable} = require('./utils'); module.exports.ListActionsCommand = class { @@ -46,7 +46,6 @@ module.exports.ListActionsCommand = class { const tableSpec = [ {column: 'Name', field: 'name', width: 50}, {column: 'Image', field: 'image', width: 50}, - {column: 'Kind', field: 'kind', width: 25}, {column: 'Created On', field: 'createdAt', width: 26} ]; @@ -100,22 +99,40 @@ module.exports.DeployActionCommand = class { const profile = loadProfile(options.profile); debug('%s.deployAction(%s)', profile.name, actionName); - const kind = options.kind; - const dockerImage = options.docker; - const code = options.code; - const memory = parseInt(options.memory); - const vcpus = parseFloat(options.vcpus); - const ttl = options.ttl; - const actionType = options.actionType; - const cmd = options.cmd; - const port = options.port; - const environment = options.environment; - const environmentVariables = options.environmentVariables; - const pushDocker = options.pushDocker; - const scaleCount = parseInt(options.scaleCount); + let params = {}; + + if (options.podspec) { + const paramsStr = fs.readFileSync(options.podspec); + params.podSpec = parseObject(paramsStr, options); + } + + if(options.kind){ + printWarning("The kind option has been deprecated and will be ignored.", options); + } + if(options.code){ + printWarning("The code option has been deprecated and will be ignored." + + " Use the docker option for setting an existing image to use.", options); + } + if(options.memory){ + printWarning("The memory option has been deprecated and will be ignored." + + " Use the podspec option for setting this value.", options); + } + if(options.vcpus){ + printWarning("The vcpus option has been deprecated and will be ignored." + + " Use the podspec option for setting this value.", options); + } + params.dockerImage = options.docker; + params.ttl = options.ttl; + params.actionType = options.actionType; + params.command = options.cmd; + params.port = options.port; + params.environment = options.environment; + params.environmentVariables = options.environmentVariables; + params.pushDocker = options.pushDocker; + params.scaleCount = parseInt(options.scaleCount); const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, dockerImage, kind, code, memory, vcpus, ttl, actionType, cmd, port, environment, environmentVariables, pushDocker, scaleCount) + actions.deployAction(profile.token, actionName, params) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); @@ -155,13 +172,15 @@ module.exports.InvokeActionCommand = class { params.properties['daemon.method'] = options.method; if (options.path) params.properties['daemon.path'] = options.path; - if (options.memory) - params.properties['memory'] =parseInt(options.memory); - if (options.vcpus) - params.properties['vcpus'] =parseFloat(options.vcpus); - - // Set the API Endpoint and Token if not specified - if (!params.apiEndpoint) params.apiEndpoint = profile.url; + if(options.memory){ + printWarning("The memory option has been deprecated and will be ignored." + + " Use the deploy command with podspec option for setting this value.", options); + } + if(options.vcpus){ + printWarning("The vcpus option has been deprecated and will be ignored." + + " Use the deploy command with podspec option for setting this value.", options); + } + // Set Token if not specified if (!params.token) params.token = profile.token; debug('params: %o', params); diff --git a/src/config.js b/src/config.js index 94d79304..2d1e09a8 100644 --- a/src/config.js +++ b/src/config.js @@ -17,7 +17,7 @@ const os = require('os'); const fs = require('fs'); const path = require('path'); -const Joi = require('joi'); +const Joi = require('@hapi/joi'); const debug = require('debug')('cortex:config'); module.exports.defaultConfig = defaultConfig = function(){ @@ -69,7 +69,7 @@ class Profile { } validate() { - const {error, value} = Joi.validate(this, ProfileSchema,{abortEarly: false}); + const {error, value} = ProfileSchema.validate(this,{abortEarly: false}); if (error) { throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. Please run "cortex configure".`); } @@ -80,12 +80,6 @@ class Profile { } } -const ConfigSchema = Joi.object().keys({ - version: Joi.string().optional().default('1'), - profiles: Joi.object().optional(), - currentProfile: Joi.string().optional().default('default') -}); - class Config { constructor({version, profiles, currentProfile}) { diff --git a/test/docker-registry.js b/test/docker-registry.js index ad7038da..361f74bd 100644 --- a/test/docker-registry.js +++ b/test/docker-registry.js @@ -4,19 +4,6 @@ const Actions = require('../src/client/actions'); const action = new Actions('https://api.cortex-dev.insights.ai'); -describe('_stripCortexPullthroughRegistry()', () => { - it('strips pullthrough registry', () => { - assert.equal(action._stripCortexPullthroughRegistry('registry.cortex.insights.ai:5000/foo/bar'), 'foo/bar') - assert.equal(action._stripCortexPullthroughRegistry('registry.cortex-dev.insights.ai:5000/foo/bar'), 'foo/bar') - }) - it('leaves image url alone when not pullthrough registry', () => { - assert.equal(action._stripCortexPullthroughRegistry('bar'), 'bar') - assert.equal(action._stripCortexPullthroughRegistry('foo/bar'), 'foo/bar') - assert.equal(action._stripCortexPullthroughRegistry('docker.io/foo/bar'), 'docker.io/foo/bar') - assert.equal(action._stripCortexPullthroughRegistry('private-registry.cortex.insights.ai/foo/bar'), 'private-registry.cortex.insights.ai/foo/bar') - }) -}) - describe('_cortexRegistryImagePath()', () => { it('returns the full URL of the image in the private registry', () => { const registryUrl = 'private-registry.cortex.insights.ai'; @@ -25,7 +12,7 @@ describe('_cortexRegistryImagePath()', () => { const i1 = 'image' const i2 = 'c12e/image' const i3 = 'docker.io/library/image' - + const t1 = 'image:1234' const t2 = 'c12e/image:1234' const t3 = 'docker.io/library/image:1234' @@ -39,4 +26,4 @@ describe('_cortexRegistryImagePath()', () => { } }) -}) \ No newline at end of file +}) From 7faf72a997193b36779c6500aa2f16de74d803a5 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 31 Mar 2020 16:52:37 -0500 Subject: [PATCH 133/864] Ccf 12859 cortextoken warning (#230) * Add node version to package json to ensure we have a new enough node version, warn if use is using CORTEX_TOKEN * CCF-12859 Add message to warn users that CORTEX_TOKEN is set Require NODE 10.x or higher!! Bump package.json for vulns * Fix default behavior for cortex configure with new isDefault: true from commander * Fix missing options on cortex configure --- bin/cortex-configure.js | 27 +- package-lock.json | 2974 ++++++++++++++++++++------------------- package.json | 17 +- src/commander.js | 3 + 4 files changed, 1531 insertions(+), 1490 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 1788baab..22ffecaa 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -25,17 +25,28 @@ const { SetProfileCommand } = require('../src/commands/configure'); -program.description('Configure the Cortex CLI'); - -let cmd = undefined; - program - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--url [url]', 'Cortex URL') + .option('--account [account]', 'Account') + .option('--username [username]', 'Username') + .option('--password [password]', 'Password') .option('--profile [profile]', 'The profile to configure') + .description('Configure the Cortex CLI'); + +let cmd = undefined; +program.command('auth', { isDefault: true}) + .description('Authenticate to cortex (default command)') .option('--url [url]', 'Cortex URL') .option('--account [account]', 'Account') .option('--username [username]', 'Username') - .option('--password [password]', 'Password'); + .option('--password [password]', 'Password') + .option('--profile [profile]', 'The profile to configure') + .action( (options) => { + new ConfigureCommand(program).execute({profile: program.profile, color: program.color}); + }); + +program + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') program .command('list') @@ -58,6 +69,4 @@ program new SetProfileCommand(program).execute(profileName, {color: program.color}); }); -program.parse(process.argv, { noActionHandler: function() { - new ConfigureCommand(program).execute({profile: program.profile, color: program.color}); -}}); +program.parse(process.argv); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index da281708..c70b9822 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "requires": { - "@babel/highlight": "7.8.3" + "@babel/highlight": "^7.8.3" } }, "@babel/highlight": { @@ -17,9 +17,9 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", "requires": { - "chalk": "2.4.2", - "esutils": "2.0.3", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" }, "dependencies": { "chalk": { @@ -27,9 +27,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "js-tokens": { @@ -44,18 +44,18 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.30.tgz", "integrity": "sha1-nb8HCulOvuOW62Z8+Lm6U8QoK2U=", "requires": { - "@hapi/joi": "17.1.0", - "debug": "4.1.1", - "superagent": "5.2.2", - "yeoman-generator": "4.6.0" + "@hapi/joi": "^17.1.0", + "debug": "^4.1.1", + "superagent": "^5.2.2", + "yeoman-generator": "^4.5.0" } }, "@hapi/address": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.0.tgz", - "integrity": "sha512-GDDpkCdSUfkQCznmWUHh9dDN85BWf/V8TFKQ2JLuHdGB4Yy3YTEGBzZxoBNxfNBEvreSR/o+ZxBBSNNEVzY+lQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.1.tgz", + "integrity": "sha512-0oEP5UiyV4f3d6cBL8F3Z5S7iWSX39Knnl0lY8i+6gfmmIBj44JCBNtcMgwyS+5v7j3VYavNay0NFHDS+UGQcw==", "requires": { - "@hapi/hoek": "9.0.3" + "@hapi/hoek": "^9.0.0" } }, "@hapi/formula": { @@ -64,20 +64,20 @@ "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" }, "@hapi/hoek": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.3.tgz", - "integrity": "sha512-jKtjLLDiH95b002sJVc5c74PE6KKYftuyVdVmsuYId5stTaWcRFqE+5ukZI4gDUKjGn8wv2C3zPn3/nyjEI7gg==" + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", + "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" }, "@hapi/joi": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.0.tgz", - "integrity": "sha512-ob67RcPlwRWxBzLCnWvcwx5qbwf88I3ykD7gcJLWOTRfLLgosK7r6aeChz4thA3XRvuBfI0KB1tPVl2EQFlPXw==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", "requires": { - "@hapi/address": "4.0.0", - "@hapi/formula": "2.0.0", - "@hapi/hoek": "9.0.3", - "@hapi/pinpoint": "2.0.0", - "@hapi/topo": "5.0.0" + "@hapi/address": "^4.0.1", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" } }, "@hapi/pinpoint": { @@ -90,7 +90,7 @@ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "requires": { - "@hapi/hoek": "9.0.3" + "@hapi/hoek": "^9.0.0" } }, "@mrmlnc/readdir-enhanced": { @@ -98,8 +98,8 @@ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -132,9 +132,9 @@ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "requires": { - "@types/events": "3.0.0", - "@types/minimatch": "3.0.3", - "@types/node": "13.7.6" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, "@types/minimatch": { @@ -153,34 +153,23 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" }, "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", "dev": true }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "3.3.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true }, "agent-base": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "agentkeepalive": { @@ -188,9 +177,9 @@ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", "requires": { - "debug": "4.1.1", - "depd": "1.1.2", - "humanize-ms": "1.2.1" + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" } }, "aggregate-error": { @@ -198,8 +187,8 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "requires": { - "clean-stack": "2.2.0", - "indent-string": "4.0.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, "ajv": { @@ -207,24 +196,18 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "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" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, "ansi-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "3.1.0" + "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -237,9 +220,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -247,7 +230,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } @@ -273,7 +256,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -282,8 +265,8 @@ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { - "normalize-path": "3.0.0", - "picomatch": "2.2.1" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "aproba": { @@ -296,7 +279,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -324,7 +307,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -337,6 +320,15 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, "arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", @@ -347,7 +339,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert-plus": { @@ -371,12 +363,18 @@ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "lodash": "4.17.15" + "lodash": "^4.17.14" } }, "asynckit": { @@ -399,59 +397,6 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.3", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -462,13 +407,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.3.0", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.2", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -476,7 +421,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -484,7 +429,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -492,7 +437,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -500,9 +445,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -512,7 +457,7 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "binary-extensions": { @@ -531,14 +476,14 @@ "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "requires": { - "ansi-align": "3.0.0", - "camelcase": "5.3.1", - "chalk": "3.0.0", - "cli-boxes": "2.2.0", - "string-width": "4.2.0", - "term-size": "2.2.0", - "type-fest": "0.8.1", - "widest-line": "3.1.0" + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "dependencies": { "ansi-regex": { @@ -561,9 +506,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -571,7 +516,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } }, "type-fest": { @@ -586,7 +531,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -595,16 +540,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -612,7 +557,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -622,7 +567,7 @@ "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", "requires": { - "wcwidth": "1.0.1" + "wcwidth": "^1.0.1" } }, "browser-stdout": { @@ -636,12 +581,6 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, - "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==", - "dev": true - }, "builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", @@ -657,23 +596,23 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.0.tgz", "integrity": "sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g==", "requires": { - "chownr": "1.1.4", - "fs-minipass": "2.1.0", - "glob": "7.1.6", - "infer-owner": "1.0.4", - "lru-cache": "5.1.1", - "minipass": "3.1.1", - "minipass-collect": "1.0.2", - "minipass-flush": "1.0.5", - "minipass-pipeline": "1.2.2", - "mkdirp": "1.0.3", - "move-concurrently": "1.0.1", - "p-map": "3.0.0", - "promise-inflight": "1.0.1", - "rimraf": "2.7.1", - "ssri": "8.0.0", - "tar": "6.0.1", - "unique-filename": "1.1.1" + "chownr": "^1.1.2", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^8.0.0", + "tar": "^6.0.1", + "unique-filename": "^1.1.1" }, "dependencies": { "lru-cache": { @@ -681,7 +620,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.1.1" + "yallist": "^3.0.2" } }, "mkdirp": { @@ -701,15 +640,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.3.0", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.1", - "to-object-path": "0.3.0", - "union-value": "1.0.1", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "call-me-maybe": { @@ -717,19 +656,10 @@ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "0.2.0" - } - }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { @@ -753,12 +683,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chai-as-promised": { @@ -767,7 +697,7 @@ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { - "check-error": "1.0.2" + "check-error": "^1.0.2" } }, "chalk": { @@ -775,8 +705,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "ansi-styles": "4.2.1", - "supports-color": "7.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "dependencies": { "ansi-styles": { @@ -784,8 +714,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "@types/color-name": "1.1.1", - "color-convert": "2.0.1" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, "color-convert": { @@ -793,7 +723,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.4" + "color-name": "~1.1.4" } }, "color-name": { @@ -811,7 +741,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "has-flag": "4.0.0" + "has-flag": "^4.0.0" } } } @@ -833,14 +763,14 @@ "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", "dev": true, "requires": { - "anymatch": "3.1.1", - "braces": "3.0.2", - "fsevents": "2.1.2", - "glob-parent": "5.1.0", - "is-binary-path": "2.1.0", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "readdirp": "3.2.0" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" }, "dependencies": { "braces": { @@ -849,7 +779,7 @@ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "fill-range": "7.0.1" + "fill-range": "^7.0.1" } }, "fill-range": { @@ -858,16 +788,16 @@ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "to-regex-range": "5.0.1" + "to-regex-range": "^5.0.1" } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { - "is-glob": "4.0.1" + "is-glob": "^4.0.1" } }, "is-number": { @@ -882,7 +812,7 @@ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "7.0.0" + "is-number": "^7.0.0" } } } @@ -892,21 +822,15 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -914,7 +838,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -934,7 +858,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-table": { @@ -955,9 +879,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "requires": { - "string-width": "4.2.0", - "strip-ansi": "6.0.0", - "wrap-ansi": "6.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { "ansi-regex": { @@ -980,9 +904,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -990,7 +914,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -1015,9 +939,9 @@ "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "requires": { - "inherits": "2.0.4", - "process-nextick-args": "2.0.1", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" } }, "co": { @@ -1030,7 +954,7 @@ "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { - "keypress": "0.2.1" + "keypress": "~0.2.1" } }, "collection-visit": { @@ -1038,8 +962,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -1065,13 +989,13 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.0.0.tgz", + "integrity": "sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ==" }, "commondir": { "version": "1.0.1", @@ -1088,18 +1012,6 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.4", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - } - }, "cookiejar": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", @@ -1110,12 +1022,12 @@ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.7.1", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, "copy-descriptor": { @@ -1133,7 +1045,7 @@ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { - "capture-stack-trace": "1.0.1" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { @@ -1141,11 +1053,11 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.7.1", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { "semver": { @@ -1156,14 +1068,14 @@ } }, "csv": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.1.tgz", - "integrity": "sha512-UBO4x5EYpihikfjHUQ7dCTIgC+e9TrWWZbCcoMr935tcAZfXT1MZKHLD+aYSHs1jwW2G1uljpFfJ4XxYwQ6t5w==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz", + "integrity": "sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==", "requires": { - "csv-generate": "3.2.4", - "csv-parse": "4.8.7", - "csv-stringify": "5.3.6", - "stream-transform": "2.0.1" + "csv-generate": "^3.2.4", + "csv-parse": "^4.8.8", + "csv-stringify": "^5.3.6", + "stream-transform": "^2.0.1" } }, "csv-generate": { @@ -1172,9 +1084,9 @@ "integrity": "sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA==" }, "csv-parse": { - "version": "4.8.7", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.7.tgz", - "integrity": "sha512-Kgip6VA+sUvd1lYqZ1n8PpJdv2BKnoYV/YP0by7LTMgNSs2FD3Y16fKyMdQcLfcBgSLnjkix/3BNnVxkw5NmpQ==" + "version": "4.8.8", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.8.tgz", + "integrity": "sha512-Kv3Ilz2GV58dOoHBXRCTF8ijxlLjl80bG3d67XPI6DNqffb3AnbPbKr/WvCUMJq5V0AZYi6sukOaOQAVpfuVbg==" }, "csv-stringify": { "version": "5.3.6", @@ -1191,7 +1103,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "data-uri-to-buffer": { @@ -1209,7 +1121,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "decamelize": { @@ -1228,7 +1140,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-extend": { @@ -1246,7 +1158,7 @@ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { - "clone": "1.0.4" + "clone": "^1.0.2" }, "dependencies": { "clone": { @@ -1260,9 +1172,8 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { - "object-keys": "1.1.1" + "object-keys": "^1.0.12" } }, "define-property": { @@ -1270,8 +1181,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -1279,7 +1190,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1287,7 +1198,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1295,26 +1206,26 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, "degenerator": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { - "ast-types": "0.13.2", - "escodegen": "1.12.0", - "esprima": "3.1.3" + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" }, "dependencies": { "esprima": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" } } @@ -1326,7 +1237,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "diff": { @@ -1339,16 +1250,16 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "requires": { - "path-type": "3.0.0" + "path-type": "^3.0.0" } }, "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "esutils": "2.0.3" + "esutils": "^2.0.2" } }, "duplexer": { @@ -1366,8 +1277,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecdsa-sig-formatter": { @@ -1375,7 +1286,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "editions": { @@ -1383,8 +1294,8 @@ "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.0.tgz", "integrity": "sha512-jeXYwHPKbitU1l14dWlsl5Nm+b1Hsm7VX73BsrQ4RVwEcAQQIPFHTZAbVtuIGxZBrpdT2FXd8lbtrNBrzZxIsA==", "requires": { - "errlop": "2.0.0", - "semver": "6.3.0" + "errlop": "^2.0.0", + "semver": "^6.3.0" }, "dependencies": { "semver": { @@ -1410,7 +1321,7 @@ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "optional": true, "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { @@ -1418,7 +1329,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "err-code": { @@ -1436,7 +1347,7 @@ "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", "requires": { - "string-template": "0.2.1" + "string-template": "~0.2.1" } }, "error-ex": { @@ -1444,37 +1355,35 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { "version": "1.17.4", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", - "dev": true, "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.1.5", - "is-regex": "1.0.5", - "object-inspect": "1.7.0", - "object-keys": "1.1.1", - "object.assign": "4.1.0", - "string.prototype.trimleft": "2.1.1", - "string.prototype.trimright": "2.1.1" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" } }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, "requires": { - "is-callable": "1.1.5", - "is-date-object": "1.0.2", - "is-symbol": "1.0.3" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es6-promise": { @@ -1487,7 +1396,7 @@ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { - "es6-promise": "4.2.8" + "es6-promise": "^4.0.3" } }, "escape-string-regexp": { @@ -1500,11 +1409,11 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", "requires": { - "esprima": "3.1.3", - "estraverse": "4.3.0", - "esutils": "2.0.3", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -1521,161 +1430,333 @@ } }, "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.2", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.2.6", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.1.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.3", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.6", - "globals": "11.12.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.13.1", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.15", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.3", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.7.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "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==", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "type-fest": "^0.11.0" } }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } }, - "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=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "color-name": "~1.1.4" } }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { - "ms": "2.1.2" + "escape-string-regexp": "^1.0.5" } }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "is-glob": "^4.0.1" } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "dev": true, "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.15", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - } - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "run-async": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true } } }, "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.3.0" + "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { @@ -1685,13 +1766,14 @@ "dev": true }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" } }, "esprima": { @@ -1700,12 +1782,20 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", + "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", "dev": true, "requires": { - "estraverse": "4.3.0" + "estraverse": "^5.0.0" + }, + "dependencies": { + "estraverse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", + "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "dev": true + } } }, "esrecurse": { @@ -1714,7 +1804,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.3.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -1732,13 +1822,13 @@ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", + "duplexer": "^0.1.1", + "from": "^0.1.7", "map-stream": "0.0.7", - "pause-stream": "0.0.11", - "split": "1.0.1", - "stream-combiner": "0.2.2", - "through": "2.3.8" + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" } }, "expand-brackets": { @@ -1746,13 +1836,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { @@ -1768,7 +1858,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -1776,7 +1866,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "ms": { @@ -1796,8 +1886,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -1805,7 +1895,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -1815,9 +1905,9 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "extglob": { @@ -1825,14 +1915,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1840,7 +1930,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -1848,7 +1938,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -1856,7 +1946,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1864,7 +1954,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1872,9 +1962,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -1894,12 +1984,12 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.1", - "merge2": "1.3.0", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" } }, "fast-json-stable-stringify": { @@ -1922,17 +2012,16 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" + "flat-cache": "^2.0.1" } }, "file-uri-to-path": { @@ -1945,10 +2034,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -1956,7 +2045,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1971,7 +2060,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "3.0.0" + "locate-path": "^3.0.0" } }, "first-chunk-stream": { @@ -1979,7 +2068,7 @@ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.2" } }, "flat": { @@ -1988,7 +2077,7 @@ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "requires": { - "is-buffer": "2.0.4" + "is-buffer": "~2.0.3" }, "dependencies": { "is-buffer": { @@ -2000,15 +2089,14 @@ } }, "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "circular-json": "0.3.3", - "graceful-fs": "4.2.3", + "flatted": "^2.0.0", "rimraf": "2.6.3", - "write": "0.2.1" + "write": "1.0.3" }, "dependencies": { "rimraf": { @@ -2017,11 +2105,17 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "7.1.6" + "glob": "^7.1.3" } } } }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -2037,9 +2131,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.8", - "mime-types": "2.1.26" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } }, "formidable": { @@ -2052,7 +2146,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "from": { @@ -2065,7 +2159,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "fs-write-stream-atomic": { @@ -2073,10 +2167,10 @@ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { - "graceful-fs": "4.2.3", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, "fs.realpath": { @@ -2093,32 +2187,32 @@ }, "ftp": { "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { - "readable-stream": "1.1.14", + "readable-stream": "1.1.x", "xregexp": "2.0.0" }, "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } @@ -2126,8 +2220,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -2156,12 +2249,12 @@ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", "requires": { - "data-uri-to-buffer": "1.2.0", - "debug": "2.6.9", - "extend": "3.0.2", - "file-uri-to-path": "1.0.0", - "ftp": "0.3.10", - "readable-stream": "2.3.6" + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" }, "dependencies": { "debug": { @@ -2189,7 +2282,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "gh-got": { @@ -2197,8 +2290,8 @@ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz", "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=", "requires": { - "got": "6.7.1", - "is-plain-obj": "1.1.0" + "got": "^6.2.0", + "is-plain-obj": "^1.1.0" } }, "github-username": { @@ -2206,7 +2299,7 @@ "resolved": "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz", "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=", "requires": { - "gh-got": "5.0.0" + "gh-got": "^5.0.0" } }, "glob": { @@ -2214,12 +2307,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { @@ -2227,8 +2320,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -2236,7 +2329,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -2251,28 +2344,39 @@ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "requires": { - "ini": "1.3.5" + "ini": "^1.3.5" } }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "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 + } + } }, "globby": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "requires": { - "@types/glob": "7.1.1", - "array-union": "1.0.2", - "dir-glob": "2.2.2", - "fast-glob": "2.2.7", - "glob": "7.1.6", - "ignore": "4.0.6", - "pify": "4.0.1", - "slash": "2.0.0" + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" }, "dependencies": { "ignore": { @@ -2287,17 +2391,17 @@ "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.2.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, "graceful-fs": { @@ -2315,7 +2419,7 @@ "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-1.0.0.tgz", "integrity": "sha512-XslfWrAGCYovQjveHODR0hllUrsn3UtvPFTkamHbgVHmkUA6eCIDmw3JDWVLJvuntTvYjwaPGamlyzK4/HAEOA==", "requires": { - "lodash": "4.17.15" + "lodash": "^4.17.15" } }, "growl": { @@ -2334,34 +2438,16 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "6.12.0", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } + "function-bind": "^1.1.1" } }, "has-flag": { @@ -2372,17 +2458,16 @@ "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -2390,8 +2475,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -2399,7 +2484,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2425,10 +2510,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.4", "setprototypeof": "1.1.1", - "statuses": "1.5.0", + "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" } }, @@ -2437,7 +2522,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "requires": { - "agent-base": "4.3.0", + "agent-base": "4", "debug": "3.1.0" }, "dependencies": { @@ -2461,9 +2546,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-proxy-agent": { @@ -2471,8 +2556,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { - "agent-base": "6.0.0", - "debug": "4.1.1" + "agent-base": "6", + "debug": "4" }, "dependencies": { "agent-base": { @@ -2480,7 +2565,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", "requires": { - "debug": "4.1.1" + "debug": "4" } } } @@ -2490,7 +2575,7 @@ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { - "ms": "2.1.2" + "ms": "^2.0.0" } }, "iconv-lite": { @@ -2498,7 +2583,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "iferr": { @@ -2511,6 +2596,16 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -2531,8 +2626,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2550,19 +2645,19 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.1.0", - "figures": "2.0.0", - "lodash": "4.17.15", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.5.4", - "string-width": "2.1.1", - "strip-ansi": "5.2.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -2575,9 +2670,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "strip-ansi": { @@ -2585,7 +2680,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } @@ -2605,7 +2700,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2613,7 +2708,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2629,7 +2724,7 @@ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "binary-extensions": "2.0.0" + "binary-extensions": "^2.0.0" } }, "is-buffer": { @@ -2640,15 +2735,14 @@ "is-callable": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2656,7 +2750,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2664,17 +2758,16 @@ "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -2704,7 +2797,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-installed-globally": { @@ -2712,8 +2805,8 @@ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", "requires": { - "global-dirs": "2.0.1", - "is-path-inside": "3.0.2" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, "is-lambda": { @@ -2726,7 +2819,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2734,7 +2827,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2754,7 +2847,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-promise": { @@ -2771,17 +2864,10 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, "requires": { - "has": "1.0.3" + "has": "^1.0.3" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", @@ -2792,7 +2878,7 @@ "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "requires": { - "scoped-regex": "1.0.0" + "scoped-regex": "^1.0.0" } }, "is-stream": { @@ -2804,9 +2890,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, "requires": { - "has-symbols": "1.0.1" + "has-symbols": "^1.0.1" } }, "is-typedarray": { @@ -2854,9 +2939,9 @@ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", "requires": { - "binaryextensions": "2.2.0", - "editions": "2.3.0", - "textextensions": "2.6.0" + "binaryextensions": "^2.1.2", + "editions": "^2.2.0", + "textextensions": "^2.5.0" } }, "jmespath": { @@ -2864,19 +2949,13 @@ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, "js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -2927,7 +3006,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } @@ -2937,16 +3016,16 @@ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", "requires": { - "jws": "3.2.2", - "lodash.includes": "4.3.0", - "lodash.isboolean": "3.0.3", - "lodash.isinteger": "4.0.4", - "lodash.isnumber": "3.0.3", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.once": "4.1.1", - "ms": "2.1.2", - "semver": "5.7.1" + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" }, "dependencies": { "semver": { @@ -2974,7 +3053,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "jws": { @@ -2982,8 +3061,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "requires": { - "jwa": "1.4.1", - "safe-buffer": "5.1.2" + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" } }, "keypress": { @@ -3006,8 +3085,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lines-and-columns": { @@ -3020,8 +3099,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -3069,7 +3148,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { - "chalk": "2.4.2" + "chalk": "^2.0.1" }, "dependencies": { "chalk": { @@ -3077,9 +3156,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } } } @@ -3089,16 +3168,6 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, "macos-release": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", @@ -3109,7 +3178,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "requires": { - "semver": "6.3.0" + "semver": "^6.0.0" }, "dependencies": { "semver": { @@ -3124,21 +3193,21 @@ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.2.tgz", "integrity": "sha512-jRqI9zjLyz8ufXfLSbEObJ6a8sv8geeKYEPFpI+b39JjYU14MZtCiJGazSWPZMjCm7161b4r57N/na5fBXpooQ==", "requires": { - "agentkeepalive": "4.1.0", - "cacache": "15.0.0", - "http-cache-semantics": "4.1.0", - "http-proxy-agent": "4.0.1", - "https-proxy-agent": "5.0.0", - "is-lambda": "1.0.1", - "lru-cache": "5.1.1", - "minipass": "3.1.1", - "minipass-collect": "1.0.2", - "minipass-fetch": "1.2.1", - "minipass-flush": "1.0.5", - "minipass-pipeline": "1.2.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "5.0.0", - "ssri": "8.0.0" + "agentkeepalive": "^4.1.0", + "cacache": "^15.0.0", + "http-cache-semantics": "^4.0.4", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.1.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" }, "dependencies": { "agent-base": { @@ -3146,7 +3215,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", "requires": { - "debug": "4.1.1" + "debug": "4" } }, "http-proxy-agent": { @@ -3154,9 +3223,9 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "requires": { - "@tootallnate/once": "1.0.0", - "agent-base": "6.0.0", - "debug": "4.1.1" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" } }, "lru-cache": { @@ -3164,7 +3233,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.1.1" + "yallist": "^3.0.2" } }, "smart-buffer": { @@ -3178,7 +3247,7 @@ "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", "requires": { "ip": "1.1.5", - "smart-buffer": "4.1.0" + "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { @@ -3186,9 +3255,9 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", "requires": { - "agent-base": "6.0.0", - "debug": "4.1.1", - "socks": "2.3.3" + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" } }, "yallist": { @@ -3213,7 +3282,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "mem-fs": { @@ -3221,9 +3290,9 @@ "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", "requires": { - "through2": "2.0.5", - "vinyl": "1.2.0", - "vinyl-file": "2.0.0" + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" }, "dependencies": { "clone": { @@ -3246,8 +3315,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.2" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "vinyl": { @@ -3255,8 +3324,8 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.4", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } } @@ -3267,17 +3336,17 @@ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz", "integrity": "sha512-e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==", "requires": { - "commondir": "1.0.1", - "deep-extend": "0.6.0", - "ejs": "2.7.4", - "glob": "7.1.6", - "globby": "9.2.0", - "isbinaryfile": "4.0.4", - "mkdirp": "0.5.1", - "multimatch": "4.0.0", - "rimraf": "2.7.1", - "through2": "3.0.1", - "vinyl": "2.2.0" + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^2.6.1", + "glob": "^7.1.4", + "globby": "^9.2.0", + "isbinaryfile": "^4.0.0", + "mkdirp": "^0.5.0", + "multimatch": "^4.0.0", + "rimraf": "^2.6.3", + "through2": "^3.0.1", + "vinyl": "^2.2.0" } }, "merge2": { @@ -3295,19 +3364,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "mime": { @@ -3338,20 +3407,20 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", "requires": { - "yallist": "4.0.0" + "yallist": "^4.0.0" }, "dependencies": { "yallist": { @@ -3366,7 +3435,7 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minipass-fetch": { @@ -3374,11 +3443,11 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", "requires": { - "encoding": "0.1.12", - "minipass": "3.1.1", - "minipass-pipeline": "1.2.2", - "minipass-sized": "1.0.3", - "minizlib": "2.1.0" + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-pipeline": "^1.2.2", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" } }, "minipass-flush": { @@ -3386,7 +3455,7 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minipass-json-stream": { @@ -3394,8 +3463,8 @@ "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "requires": { - "jsonparse": "1.3.1", - "minipass": "3.1.1" + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" } }, "minipass-pipeline": { @@ -3403,7 +3472,7 @@ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minipass-sized": { @@ -3411,7 +3480,7 @@ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minizlib": { @@ -3419,8 +3488,8 @@ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", "requires": { - "minipass": "3.1.1", - "yallist": "4.0.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "dependencies": { "yallist": { @@ -3435,8 +3504,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -3444,7 +3513,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -3470,9 +3539,9 @@ } }, "mocha": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.0.tgz", - "integrity": "sha512-MymHK8UkU0K15Q/zX7uflZgVoRWiTjy0fXE/QjKts6mowUvGxOdPhZ2qj3b0iZdUrNZlW9LAIMFHB4IW+2b3EQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz", + "integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -3488,7 +3557,7 @@ "js-yaml": "3.13.1", "log-symbols": "3.0.0", "minimatch": "3.0.4", - "mkdirp": "0.5.1", + "mkdirp": "0.5.3", "ms": "2.1.1", "node-environment-flags": "1.0.6", "object.assign": "4.1.0", @@ -3496,8 +3565,8 @@ "supports-color": "6.0.0", "which": "1.3.1", "wide-align": "1.1.3", - "yargs": "13.3.0", - "yargs-parser": "13.1.1", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", "yargs-unparser": "1.6.0" }, "dependencies": { @@ -3513,9 +3582,9 @@ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -3524,7 +3593,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -3535,9 +3604,9 @@ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "3.1.0", - "strip-ansi": "5.2.0", - "wrap-ansi": "5.1.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "debug": { @@ -3546,7 +3615,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "diff": { @@ -3561,12 +3630,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "log-symbols": { @@ -3575,7 +3644,16 @@ "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { - "chalk": "2.4.2" + "chalk": "^2.4.2" + } + }, + "mkdirp": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", + "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "dev": true, + "requires": { + "minimist": "^1.2.5" } }, "ms": { @@ -3590,9 +3668,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -3601,7 +3679,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } }, "supports-color": { @@ -3610,7 +3688,7 @@ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "wrap-ansi": { @@ -3619,37 +3697,37 @@ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "string-width": "3.1.0", - "strip-ansi": "5.2.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "5.0.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.1.1" + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -3664,12 +3742,12 @@ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.7.1", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { @@ -3682,11 +3760,11 @@ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", "requires": { - "@types/minimatch": "3.0.3", - "array-differ": "3.0.0", - "array-union": "2.1.0", - "arrify": "2.0.1", - "minimatch": "3.0.4" + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" }, "dependencies": { "array-union": { @@ -3706,17 +3784,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.3", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "natural-compare": { @@ -3727,7 +3805,7 @@ }, "netmask": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" }, "nice-try": { @@ -3741,8 +3819,8 @@ "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", "dev": true, "requires": { - "object.getownpropertydescriptors": "2.1.0", - "semver": "5.7.1" + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" }, "dependencies": { "semver": { @@ -3758,10 +3836,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { - "hosted-git-info": "2.8.7", - "resolve": "1.15.1", - "semver": "5.7.1", - "validate-npm-package-license": "3.0.4" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" }, "dependencies": { "semver": { @@ -3782,10 +3860,10 @@ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", "requires": { - "hosted-git-info": "3.0.4", - "osenv": "0.1.5", - "semver": "7.1.3", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" }, "dependencies": { "hosted-git-info": { @@ -3793,7 +3871,7 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", "requires": { - "lru-cache": "5.1.1" + "lru-cache": "^5.1.1" } }, "lru-cache": { @@ -3801,7 +3879,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.1.1" + "yallist": "^3.0.2" } }, "yallist": { @@ -3816,14 +3894,14 @@ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz", "integrity": "sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ==", "requires": { - "@npmcli/ci-detect": "1.2.0", - "lru-cache": "5.1.1", - "make-fetch-happen": "8.0.2", - "minipass": "3.1.1", - "minipass-fetch": "1.2.1", - "minipass-json-stream": "1.0.1", - "minizlib": "2.1.0", - "npm-package-arg": "8.0.0" + "@npmcli/ci-detect": "^1.0.0", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^8.0.2", + "minipass": "^3.0.0", + "minipass-fetch": "^1.1.2", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" }, "dependencies": { "lru-cache": { @@ -3831,7 +3909,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.1.1" + "yallist": "^3.0.2" } }, "yallist": { @@ -3846,7 +3924,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "oauth-sign": { @@ -3854,20 +3932,14 @@ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -3875,7 +3947,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "kind-of": { @@ -3883,7 +3955,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3891,33 +3963,30 @@ "object-inspect": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.assign": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1", - "has-symbols": "1.0.1", - "object-keys": "1.1.1" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, "object.getownpropertydescriptors": { @@ -3926,8 +3995,8 @@ "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "object.pick": { @@ -3935,7 +4004,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { @@ -3943,7 +4012,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -3951,7 +4020,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optionator": { @@ -3959,12 +4028,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { @@ -3977,8 +4046,8 @@ "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", "requires": { - "macos-release": "2.3.0", - "windows-release": "3.2.0" + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" } }, "os-tmpdir": { @@ -3991,8 +4060,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-finally": { @@ -4005,7 +4074,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -4013,7 +4082,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "2.2.2" + "p-limit": "^2.0.0" } }, "p-map": { @@ -4021,7 +4090,7 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { - "aggregate-error": "3.0.1" + "aggregate-error": "^3.0.0" } }, "p-try": { @@ -4034,14 +4103,14 @@ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", "requires": { - "agent-base": "4.3.0", - "debug": "4.1.1", - "get-uri": "2.0.4", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "3.0.1", - "pac-resolver": "3.0.0", - "raw-body": "2.4.1", - "socks-proxy-agent": "4.0.2" + "agent-base": "^4.2.0", + "debug": "^4.1.1", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" }, "dependencies": { "https-proxy-agent": { @@ -4049,8 +4118,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", "requires": { - "agent-base": "4.3.0", - "debug": "3.2.6" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "dependencies": { "debug": { @@ -4058,7 +4127,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } } } @@ -4070,11 +4139,20 @@ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", "requires": { - "co": "4.6.0", - "degenerator": "1.0.4", - "ip": "1.1.5", - "netmask": "1.0.6", - "thunkify": "2.1.2" + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" } }, "parse-json": { @@ -4082,10 +4160,10 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "requires": { - "@babel/code-frame": "7.8.3", - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2", - "lines-and-columns": "1.1.6" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, "pascalcase": { @@ -4108,12 +4186,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -4146,7 +4218,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -4167,7 +4239,7 @@ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { - "through": "2.3.8" + "through": "~2.3" } }, "performance-now": { @@ -4176,9 +4248,9 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", - "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { @@ -4196,15 +4268,9 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -4245,8 +4311,8 @@ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" + "err-code": "^1.0.0", + "retry": "^0.10.0" } }, "proxy-agent": { @@ -4254,14 +4320,14 @@ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", "requires": { - "agent-base": "4.3.0", - "debug": "4.1.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "3.0.1", - "lru-cache": "5.1.1", - "pac-proxy-agent": "3.0.1", - "proxy-from-env": "1.0.0", - "socks-proxy-agent": "4.0.2" + "agent-base": "^4.2.0", + "debug": "4", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^3.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" }, "dependencies": { "https-proxy-agent": { @@ -4269,8 +4335,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", "requires": { - "agent-base": "4.3.0", - "debug": "3.2.6" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "dependencies": { "debug": { @@ -4278,7 +4344,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } } } @@ -4288,7 +4354,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.1.1" + "yallist": "^3.0.2" } }, "yallist": { @@ -4300,15 +4366,9 @@ }, "proxy-from-env": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "psl": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", @@ -4319,8 +4379,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "end-of-stream": "1.4.4", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "punycode": { @@ -4349,8 +4409,8 @@ "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", "requires": { - "pify": "4.0.1", - "with-open-file": "0.1.7" + "pify": "^4.0.1", + "with-open-file": "^0.1.6" } }, "read-pkg": { @@ -4358,10 +4418,10 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "requires": { - "@types/normalize-package-data": "2.4.0", - "normalize-package-data": "2.5.0", - "parse-json": "5.0.0", - "type-fest": "0.6.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" } }, "read-pkg-up": { @@ -4369,8 +4429,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", "requires": { - "find-up": "3.0.0", - "read-pkg": "5.2.0" + "find-up": "^3.0.0", + "read-pkg": "^5.0.0" } }, "readable-stream": { @@ -4378,13 +4438,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -4393,7 +4453,7 @@ "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", "dev": true, "requires": { - "picomatch": "2.2.1" + "picomatch": "^2.0.4" } }, "rechoir": { @@ -4401,7 +4461,7 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "1.15.1" + "resolve": "^1.1.6" } }, "regex-not": { @@ -4409,14 +4469,14 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, "remove-trailing-separator": { @@ -4444,26 +4504,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.9.1", - "caseless": "0.12.0", - "combined-stream": "1.0.8", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "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.26", - "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.4.0" + "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": { "form-data": { @@ -4471,9 +4531,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.8", - "mime-types": "2.1.26" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "qs": { @@ -4498,28 +4558,18 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - } - }, "resolve": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "resolve-url": { @@ -4532,8 +4582,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -4547,12 +4597,12 @@ "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "rewire": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-4.0.1.tgz", - "integrity": "sha512-+7RQ/BYwTieHVXetpKhT11UbfF6v1kGhKFrtZN7UDL2PybMsSt/rpLWeEUGF5Ndsl1D5BxiCB14VDJyoX+noYw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", "dev": true, "requires": { - "eslint": "4.19.1" + "eslint": "^6.8.0" } }, "rimraf": { @@ -4560,7 +4610,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "glob": "7.1.6" + "glob": "^7.1.3" } }, "run-async": { @@ -4568,7 +4618,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { @@ -4576,22 +4626,7 @@ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { - "aproba": "1.2.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "4.0.8" + "aproba": "^1.1.1" } }, "rxjs": { @@ -4599,7 +4634,7 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "requires": { - "tslib": "1.11.0" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -4612,7 +4647,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -4640,10 +4675,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -4651,7 +4686,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4666,7 +4701,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -4679,9 +4714,9 @@ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", "requires": { - "glob": "7.1.6", - "interpret": "1.2.0", - "rechoir": "0.6.2" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, "signal-exit": { @@ -4695,12 +4730,14 @@ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" } }, "smart-buffer": { @@ -4709,15 +4746,16 @@ "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==" }, "smartwrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", - "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", - "requires": { - "breakword": "1.0.5", - "grapheme-splitter": "1.0.4", - "strip-ansi": "6.0.0", - "wcwidth": "1.0.1", - "yargs": "15.1.0" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.1.tgz", + "integrity": "sha512-BoOIGADm5Q9OXGVmT899L1fx6dvOYciVUPB9yFlE1XkxRs3/6sqT/HYZoXOxNb4jj2zshtH+jhmGa6wGkNDPgA==", + "requires": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" }, "dependencies": { "ansi-regex": { @@ -4730,7 +4768,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -4740,14 +4778,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.3", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -4763,7 +4801,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -4771,7 +4809,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "ms": { @@ -4786,9 +4824,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -4796,7 +4834,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -4804,7 +4842,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4812,7 +4850,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4820,9 +4858,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -4832,7 +4870,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { @@ -4840,7 +4878,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4850,7 +4888,7 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", "requires": { - "ip": "1.1.5", + "ip": "^1.1.5", "smart-buffer": "4.0.2" } }, @@ -4859,8 +4897,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", "requires": { - "agent-base": "4.2.1", - "socks": "2.3.2" + "agent-base": "~4.2.1", + "socks": "~2.3.2" }, "dependencies": { "agent-base": { @@ -4868,7 +4906,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } } } @@ -4883,11 +4921,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { @@ -4900,8 +4938,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.5" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -4914,8 +4952,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.5" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -4928,7 +4966,7 @@ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -4936,7 +4974,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -4949,15 +4987,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "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" } }, "ssri": { @@ -4965,7 +5003,7 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.1.1" } }, "static-eval": { @@ -4973,7 +5011,7 @@ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", "requires": { - "escodegen": "1.12.0" + "escodegen": "^1.8.1" } }, "static-extend": { @@ -4981,8 +5019,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -4990,14 +5028,14 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stream-combiner": { @@ -5005,8 +5043,8 @@ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "requires": { - "duplexer": "0.1.1", - "through": "2.3.8" + "duplexer": "~0.1.1", + "through": "~2.3.4" } }, "stream-transform": { @@ -5014,7 +5052,7 @@ "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.1.tgz", "integrity": "sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw==", "requires": { - "mixme": "0.3.5" + "mixme": "^0.3.1" } }, "string-template": { @@ -5027,28 +5065,26 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string.prototype.trimleft": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "dev": true, "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1" + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" } }, "string.prototype.trimright": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "dev": true, "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1" + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" } }, "string_decoder": { @@ -5056,7 +5092,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -5064,7 +5100,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { @@ -5072,7 +5108,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-bom-stream": { @@ -5080,8 +5116,8 @@ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { - "first-chunk-stream": "2.0.0", - "strip-bom": "2.0.0" + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" } }, "strip-eof": { @@ -5100,17 +5136,17 @@ "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", "requires": { - "component-emitter": "1.3.0", - "cookiejar": "2.1.2", - "debug": "4.1.1", - "fast-safe-stringify": "2.0.7", - "form-data": "3.0.0", - "formidable": "1.2.2", - "methods": "1.1.2", - "mime": "2.4.4", - "qs": "6.9.1", - "readable-stream": "3.6.0", - "semver": "6.3.0" + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.2", + "debug": "^4.1.1", + "fast-safe-stringify": "^2.0.7", + "form-data": "^3.0.0", + "formidable": "^1.2.1", + "methods": "^1.1.2", + "mime": "^2.4.4", + "qs": "^6.9.1", + "readable-stream": "^3.4.0", + "semver": "^6.3.0" }, "dependencies": { "readable-stream": { @@ -5118,9 +5154,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "inherits": "2.0.4", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "semver": { @@ -5136,7 +5172,7 @@ "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", "dev": true, "requires": { - "path-to-regexp": "1.7.0" + "path-to-regexp": "^1.1.0" } }, "superagent-proxy": { @@ -5144,8 +5180,8 @@ "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.0.0.tgz", "integrity": "sha512-TktJma5jPdiH1BNN+reF/RMW3b8aBTCV7KlLFV0uYcREgNf3pvo7Rdt564OcFHwkGb3mYEhHuWPBhSbOwiNaYw==", "requires": { - "debug": "3.2.6", - "proxy-agent": "3.1.1" + "debug": "^3.1.0", + "proxy-agent": "3" }, "dependencies": { "debug": { @@ -5153,7 +5189,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } } } @@ -5168,57 +5204,46 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.2", - "lodash": "4.17.15", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-regex": "^4.1.0" } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true } } }, @@ -5227,12 +5252,12 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", "requires": { - "chownr": "1.1.4", - "fs-minipass": "2.1.0", - "minipass": "3.1.1", - "minizlib": "2.1.0", - "mkdirp": "1.0.3", - "yallist": "4.0.0" + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "dependencies": { "mkdirp": { @@ -5272,12 +5297,12 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "requires": { - "readable-stream": "2.3.6" + "readable-stream": "2 || 3" } }, "thunkify": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" }, "timed-out": { @@ -5290,7 +5315,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-object-path": { @@ -5298,7 +5323,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5306,7 +5331,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5316,10 +5341,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -5327,8 +5352,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "toidentifier": { @@ -5341,26 +5366,27 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "1.7.0", - "punycode": "2.1.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tslib": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", - "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" }, "tty-table": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.12.tgz", - "integrity": "sha512-QSOxdMM0VnDmDDr1Itw/JkrwjPp3WbuzCRbgydns5mFo6UOuiZOqpGZVp9MP+S8v57awzzRSHSkI8t2bpiM+Og==", - "requires": { - "csv": "5.3.1", - "kleur": "3.0.3", - "smartwrap": "1.2.5", - "strip-ansi": "6.0.0", - "wcwidth": "1.0.1", - "yargs": "15.1.0" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.1.tgz", + "integrity": "sha512-iCxPm5DCPgqs3ELrUDEe+JsOcQOSPZSe+dwM5oIQZk5OfyzQWPVQwkHjyFp4aoDHC0HTM47jd0TkQZUBpxnN0Q==", + "requires": { + "chalk": "^3.0.0", + "csv": "^5.3.1", + "kleur": "^3.0.3", + "smartwrap": "^2.0.1", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" }, "dependencies": { "ansi-regex": { @@ -5373,7 +5399,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -5383,7 +5409,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -5396,7 +5422,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -5410,12 +5436,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, "underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", @@ -5426,10 +5446,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "2.0.1" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, "unique-filename": { @@ -5437,7 +5457,7 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { - "unique-slug": "2.0.2" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -5445,12 +5465,12 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unset-value": { @@ -5458,8 +5478,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -5467,9 +5487,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -5504,7 +5524,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -5517,7 +5537,7 @@ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "use": { @@ -5531,17 +5551,23 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.1.tgz", - "integrity": "sha512-yqjRXZzSJm9Dbl84H2VDHpM3zMjzSJQ+hn6C4zqd5ilW+7P4ZmLEEqwho9LjP+tGuZlF4xrHQXT0h9QZUS/pWA==" + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz", + "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==" + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.1.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { @@ -5549,7 +5575,7 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "verror": { @@ -5557,9 +5583,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vinyl": { @@ -5567,12 +5593,12 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "requires": { - "clone": "2.1.2", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.1.3", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } }, "vinyl-file": { @@ -5580,12 +5606,12 @@ "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", "requires": { - "graceful-fs": "4.2.3", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0", - "strip-bom-stream": "2.0.0", - "vinyl": "1.2.0" + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" }, "dependencies": { "clone": { @@ -5613,8 +5639,8 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.4", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } } @@ -5625,7 +5651,7 @@ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { - "defaults": "1.0.3" + "defaults": "^1.0.3" } }, "which": { @@ -5633,7 +5659,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -5647,7 +5673,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^1.0.2 || 2" } }, "widest-line": { @@ -5655,7 +5681,7 @@ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { - "string-width": "4.2.0" + "string-width": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -5678,9 +5704,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -5688,7 +5714,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -5698,7 +5724,7 @@ "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", "requires": { - "execa": "1.0.0" + "execa": "^1.0.0" }, "dependencies": { "execa": { @@ -5706,13 +5732,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "get-stream": { @@ -5720,7 +5746,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } } } @@ -5730,11 +5756,17 @@ "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", "requires": { - "p-finally": "1.0.0", - "p-try": "2.2.0", - "pify": "4.0.1" + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -5745,9 +5777,9 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { - "ansi-styles": "4.2.1", - "string-width": "4.2.0", - "strip-ansi": "6.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-regex": { @@ -5760,8 +5792,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "@types/color-name": "1.1.1", - "color-convert": "2.0.1" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, "color-convert": { @@ -5769,7 +5801,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.4" + "color-name": "~1.1.4" } }, "color-name": { @@ -5792,9 +5824,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -5802,7 +5834,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -5813,17 +5845,17 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "xregexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" }, "xtend": { @@ -5836,28 +5868,22 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, "yargs": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz", - "integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==", - "requires": { - "cliui": "6.0.0", - "decamelize": "1.2.0", - "find-up": "4.1.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "4.2.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "16.1.0" + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" }, "dependencies": { "ansi-regex": { @@ -5875,8 +5901,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "is-fullwidth-code-point": { @@ -5889,7 +5915,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "4.1.0" + "p-locate": "^4.1.0" } }, "p-locate": { @@ -5897,7 +5923,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "2.2.2" + "p-limit": "^2.2.0" } }, "path-exists": { @@ -5910,9 +5936,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -5920,18 +5946,18 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } }, "yargs-parser": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", - "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", + "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yargs-unparser": { @@ -5940,9 +5966,9 @@ "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, "requires": { - "flat": "4.1.0", - "lodash": "4.17.15", - "yargs": "13.3.0" + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" }, "dependencies": { "ansi-regex": { @@ -5957,9 +5983,9 @@ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "3.1.0", - "strip-ansi": "5.2.0", - "wrap-ansi": "5.1.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "string-width": { @@ -5968,9 +5994,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -5979,7 +6005,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } }, "wrap-ansi": { @@ -5988,61 +6014,61 @@ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "string-width": "3.1.0", - "strip-ansi": "5.2.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "5.0.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.1.1" + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, "yeoman-environment": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.0.tgz", - "integrity": "sha512-BbJeEna23Qx90fBiJt1awcZ9okfPY/rP3xZYsk1rD3x8LuQgpo4BfegPvQT1sqqh2+gYVZmYZMv5pS8+Muyr9Q==", - "requires": { - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "globby": "8.0.2", - "grouped-queue": "1.0.0", - "inquirer": "6.5.2", - "is-scoped": "1.0.0", - "lodash": "4.17.15", - "log-symbols": "2.2.0", - "mem-fs": "1.1.3", - "strip-ansi": "4.0.0", - "text-table": "0.2.0", - "untildify": "3.0.3" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.1.tgz", + "integrity": "sha512-MV6yeJfnSsZBv/VuWvw82bN6hF6KIXRUwhEPaO+RHJAWeNCQAF+iYfBNsJOo4tx5Puch300h+DF9QZceKkbzQg==", + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.5.0", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^1.0.0", + "inquirer": "^6.0.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.2.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.3" }, "dependencies": { "arrify": { @@ -6055,9 +6081,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "debug": { @@ -6065,7 +6091,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "diff": { @@ -6078,8 +6104,8 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" } }, "globby": { @@ -6087,13 +6113,13 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", "requires": { - "array-union": "1.0.2", + "array-union": "^1.0.1", "dir-glob": "2.0.0", - "fast-glob": "2.2.7", - "glob": "7.1.6", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, "pify": { @@ -6113,31 +6139,31 @@ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.6.0.tgz", "integrity": "sha512-Hq65rLqMNCS0h0n1yakSZjHsEZHm0ZpOM02Nja6O03s2k5WHvAhGOx7uxs93vrJv62zFrJtD9e9mVhgoVbi7CQ==", "requires": { - "async": "2.6.3", - "chalk": "2.4.2", - "cli-table": "0.3.1", - "cross-spawn": "6.0.5", - "dargs": "6.1.0", - "dateformat": "3.0.3", - "debug": "4.1.1", - "diff": "4.0.2", - "error": "7.2.1", - "find-up": "3.0.0", - "github-username": "3.0.0", - "istextorbinary": "2.6.0", - "lodash": "4.17.15", - "make-dir": "3.0.2", - "mem-fs-editor": "6.0.0", - "minimist": "1.2.0", - "pretty-bytes": "5.3.0", - "read-chunk": "3.2.0", - "read-pkg-up": "5.0.0", - "rimraf": "2.7.1", - "run-async": "2.3.0", - "shelljs": "0.8.3", - "text-table": "0.2.0", - "through2": "3.0.1", - "yeoman-environment": "2.8.0" + "async": "^2.6.2", + "chalk": "^2.4.2", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^6.1.0", + "dateformat": "^3.0.3", + "debug": "^4.1.1", + "diff": "^4.0.1", + "error": "^7.0.2", + "find-up": "^3.0.0", + "github-username": "^3.0.0", + "istextorbinary": "^2.5.1", + "lodash": "^4.17.11", + "make-dir": "^3.0.0", + "mem-fs-editor": "^6.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^5.2.0", + "read-chunk": "^3.2.0", + "read-pkg-up": "^5.0.0", + "rimraf": "^2.6.3", + "run-async": "^2.0.0", + "shelljs": "^0.8.3", + "text-table": "^0.2.0", + "through2": "^3.0.1", + "yeoman-environment": "^2.3.4" }, "dependencies": { "chalk": { @@ -6145,9 +6171,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } } } diff --git a/package.json b/package.json index e1de4a7d..e1e35edf 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,9 @@ "scripts": { "test": "CORTEX_CONFIG_DIR=./test/cortex mocha --recursive" }, + "engines": { + "node": ">=10.0.0" + }, "repository": { "type": "git", "url": "https://github.com/CognitiveScale/cortex-cli.git" @@ -26,13 +29,13 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "@c12e/generator-cortex": "0.3.30", - "@hapi/joi": "17.1.0", + "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "3.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "4.1.1", + "commander": "5.0.0", "debug": "4.1.1", "event-stream": "4.0.1", "find-package-json": "1.2.0", @@ -54,15 +57,15 @@ "superagent-proxy": "2.0.0", "superagent-throttle": "1.0.1", "through2": "3.0.1", - "tty-table": "2.8.12", - "uuid": "7.0.1", - "yeoman-environment": "2.8.0" + "tty-table": "4.1.1", + "uuid": "7.0.2", + "yeoman-environment": "2.8.1" }, "devDependencies": { "chai": "4.2.0", "chai-as-promised": "7.1.1", - "mocha": "7.1.0", - "rewire": "4.0.1", + "mocha": "7.1.1", + "rewire": "5.0.0", "superagent-mocker": "0.5.2" } } diff --git a/src/commander.js b/src/commander.js index 364e5e68..46b7931a 100644 --- a/src/commander.js +++ b/src/commander.js @@ -46,6 +46,9 @@ commander.Command.prototype.parse = function(argv, options) { this._parse(argv); if (!this.wasActionTaken()) { + if (process.env.CORTEX_TOKEN) { + console.error("Using token from environment variable $CORTEX_TOKEN") + } opts.noActionHandler(); } }; From d147bff1bed66027bb5c597e220b06bc91fc0b09 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 11 Jun 2020 14:21:38 -0500 Subject: [PATCH 134/864] CCF-12822 npm doesnot enforce anything, add preinstall check (#231) * CCF-12822 npm doesnot enforce anything, add preinstall check * pack-lock --- .npmrc | 3 +- package-lock.json | 195 +++++++++++++++++++--------------------------- package.json | 1 + 3 files changed, 81 insertions(+), 118 deletions(-) diff --git a/.npmrc b/.npmrc index 449691b7..9702fa6f 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,2 @@ -save-exact=true \ No newline at end of file +save-exact=true +engine-strict=true \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c70b9822..0cc92843 100644 --- a/package-lock.json +++ b/package-lock.json @@ -113,9 +113,9 @@ "integrity": "sha512-JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA==" }, "@tootallnate/once": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.0.0.tgz", - "integrity": "sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/color-name": { "version": "1.1.1", @@ -173,9 +173,9 @@ } }, "agentkeepalive": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", - "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.2.tgz", + "integrity": "sha512-waNHE7tQBBn+2qXucI8HY0o2Y0OBPWldWOWsZwY71JcCm4SvrPnWdceFfB5NIXSqE8Ewq6VR/Qt5b1i69P6KCQ==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -269,11 +269,6 @@ "picomatch": "^2.0.4" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -592,11 +587,11 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "cacache": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.0.tgz", - "integrity": "sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz", + "integrity": "sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==", "requires": { - "chownr": "^1.1.2", + "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "glob": "^7.1.4", "infer-owner": "^1.0.4", @@ -606,32 +601,27 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", "mkdirp": "^1.0.3", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", + "move-file": "^2.0.0", + "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", + "rimraf": "^3.0.2", "ssri": "^8.0.0", - "tar": "^6.0.1", + "tar": "^6.0.2", "unique-filename": "^1.1.1" }, "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, "mkdirp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", - "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } } } }, @@ -818,9 +808,9 @@ } }, "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "class-utils": { "version": "0.3.6", @@ -1017,19 +1007,6 @@ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2162,17 +2139,6 @@ "minipass": "^3.0.0" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2586,11 +2552,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, "ignore": { "version": "3.3.10", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", @@ -3168,6 +3129,14 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, "macos-release": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", @@ -3189,9 +3158,9 @@ } }, "make-fetch-happen": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.2.tgz", - "integrity": "sha512-jRqI9zjLyz8ufXfLSbEObJ6a8sv8geeKYEPFpI+b39JjYU14MZtCiJGazSWPZMjCm7161b4r57N/na5fBXpooQ==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.7.tgz", + "integrity": "sha512-rkDA4c1nMXVqLkfOaM5RK2dxkUndjLOCrPycTDZgbkFDzhmaCO3P1dmCW//yt1I/G1EcedJqMsSjWkV79Hh4hQ==", "requires": { "agentkeepalive": "^4.1.0", "cacache": "^15.0.0", @@ -3200,7 +3169,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^5.1.1", - "minipass": "^3.0.0", + "minipass": "^3.1.3", "minipass-collect": "^1.0.2", "minipass-fetch": "^1.1.2", "minipass-flush": "^1.0.5", @@ -3228,12 +3197,12 @@ "debug": "4" } }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "smart-buffer": { @@ -3261,9 +3230,9 @@ } }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -3524,18 +3493,11 @@ "integrity": "sha512-SyV9uPETRig5ZmYev0ANfiGeB+g6N2EnqqEfBbCGmmJ6MgZ3E4qv5aPbnHVdZ60KAHHXV+T3sXopdrnIXQdmjQ==" }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "minimist": "^1.2.5" } }, "mocha": { @@ -3737,17 +3699,19 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==", "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "path-exists": "^4.0.0" + }, + "dependencies": { + "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==" + } } }, "ms": { @@ -4086,9 +4050,9 @@ } }, "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { "aggregate-error": "^3.0.0" } @@ -4621,14 +4585,6 @@ "is-promise": "^2.1.0" } }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, "rxjs": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", @@ -5248,11 +5204,11 @@ } }, "tar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", - "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", "requires": { - "chownr": "^1.1.3", + "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^3.0.0", "minizlib": "^2.1.0", @@ -5261,9 +5217,9 @@ }, "dependencies": { "mkdirp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", - "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "yallist": { "version": "4.0.0", @@ -5868,6 +5824,11 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, "yargs": { "version": "15.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", diff --git a/package.json b/package.json index e1e35edf..75a94cfe 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { + "preinstall": "npx check-node-version -p --package", "test": "CORTEX_CONFIG_DIR=./test/cortex mocha --recursive" }, "engines": { From 1f1e7f0af75e5f65052c43c9f9c256275463f31a Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 16 Jul 2020 15:54:47 -0500 Subject: [PATCH 135/864] Bump builder image from c12e/nodejs:dev-8.11.0 to 10.21.0 --- c12e-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/c12e-ci.yml b/c12e-ci.yml index 2d5cdc73..bb6b2c40 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: c12e/nodejs:dev-8.11.0 + image: c12e/nodejs:dev-10.21.0 command: "./build.sh CI" From 6bac6bfe14bb3d6afc8fc93f8f2606a2e40d2a2e Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Wed, 22 Jul 2020 11:39:01 -0500 Subject: [PATCH 136/864] CCF-12767: adding deprecated warnings to project and skills generate commands (#235) --- bin/cortex-project.js | 2 +- bin/cortex-skills.js | 2 +- src/commands/project.js | 7 ++----- src/commands/skills.js | 8 ++------ 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/bin/cortex-project.js b/bin/cortex-project.js index 54d548ab..46091f97 100644 --- a/bin/cortex-project.js +++ b/bin/cortex-project.js @@ -26,7 +26,7 @@ program.description('Work with a related collection of Cortex contributions'); // Generate Project program .command('generate') - .description('Generates the structure and top level build script for a project') + .description('(Deprecated) Generates the structure and top level build script for a project') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .action((options) => { try { diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index e956078b..efbcd898 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -84,7 +84,7 @@ program program .command('generate') - .description('Generates the structure and top level build script for a skill') + .description('(Deprecated) Generates the structure and top level build script for a skill') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .action((options) => { // deliberately not using withCompatibilityCheck() try { diff --git a/src/commands/project.js b/src/commands/project.js index f893d7b3..9e5e24fe 100644 --- a/src/commands/project.js +++ b/src/commands/project.js @@ -26,10 +26,7 @@ module.exports.GenerateProjectCommand = class GenerateProjectCommand { execute(options) { debug('generateProject()'); - const yenv = yeoman.createEnv(); - yenv.register(require.resolve('@c12e/generator-cortex'), 'cortex:app'); - // TODO: figure out which parameters to bubble up to the CLI, - // and plumb the values through to the yeoman generator. - yenv.run('cortex:app', { }); + const repoUrl = 'https://github.com/CognitiveScale/cortex-fabric-examples'; + printSuccess(`This command is deprecated. See the ${repoUrl} repo for guidance.`, options); } }; diff --git a/src/commands/skills.js b/src/commands/skills.js index cd94fd21..64450197 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -152,11 +152,7 @@ module.exports.GenerateSkillCommand = class GenerateSkillCommand { execute(options) { debug('%s.generateSkill()'); - const yenv = yeoman.createEnv(); - yenv.lookup(()=>{ - yenv.run('@c12e/cortex:skill', - { }, - (err) => { err ? printError(err) : printSuccess('Done.') }); - }); + const repoUrl = 'https://github.com/CognitiveScale/cortex-fabric-examples'; + printSuccess(`This command is deprecated. See the ${repoUrl} repo for guidance.`, options); } }; From 6c91a3e94442f690c0de054545b9b214a17b6929 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Thu, 30 Jul 2020 14:31:20 -0500 Subject: [PATCH 137/864] bump version to 1.1.1 (#237) --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0cc92843..e006ba36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.1.0", + "version": "1.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 75a94cfe..ce99101a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.1.0", + "version": "1.1.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From e7c4cc223098d89299e391d028fcfb85911a85ae Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Fri, 31 Jul 2020 13:19:41 -0500 Subject: [PATCH 138/864] CM-463 (#238) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports * bumped generator version to `0.3.24` * Bump version to 0.12.19 (#211) * Improvements to graph client and command client. (#213) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. * [CCF-12214] Specify custom HTTP User-Agent header value for all requests * 0.13.0 * [CCF-11868] Add scaleCount option to action deploy * 0.14.0 * Nein, marketplace * 1.0.0 * [CCF-12231] Fix endpoint specification for deleting a profile * 1.0.1 * [CCF-12390] Update deps to pass audit * 1.0.2 * rebase master, fixup package-lock.json * Fix api end (#224) * Remove api endpoint * clean up * Ccf 12660 develop rebase (#226) * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 clean up verbage * CCF-12660 cmd to command * CCF-12660 update to 1.0.3 * CCF-12660 remove vcpu and memory option parsing * Update dependencies and remove deprecation warnings (#223) * Update dependencies and remove deprecation warnings Joi method change remove dead code remove dead test * Version bump mocha, uuid * Added missing split dep, remove unused url dep * deprecated the `--kind` and `--code` options on the actions subcommand, no longer pass the option from the client to the command and also displays a warning when the options are still passed in (#228) * Ccf 12859 cortextoken warning (#230) * Add node version to package json to ensure we have a new enough node version, warn if use is using CORTEX_TOKEN * CCF-12859 Add message to warn users that CORTEX_TOKEN is set Require NODE 10.x or higher!! Bump package.json for vulns * Fix default behavior for cortex configure with new isDefault: true from commander * Fix missing options on cortex configure * CCF-12822 npm doesnot enforce anything, add preinstall check (#231) * CCF-12822 npm doesnot enforce anything, add preinstall check * pack-lock * Bump builder image from c12e/nodejs:dev-8.11.0 to 10.21.0 * CCF-12767: adding deprecated warnings to project and skills generate commands (#235) * bump version to 1.1.1 (#237) Co-authored-by: Christine Draper Co-authored-by: Matt Sanchez Co-authored-by: David Aldridge Co-authored-by: Johan Gielstra Co-authored-by: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> --- .npmrc | 3 +- bin/cortex-configure.js | 27 +- bin/cortex-project.js | 2 +- bin/cortex-skills.js | 2 +- c12e-ci.yml | 2 +- package-lock.json | 3113 +++++++++++++++++++-------------------- package.json | 20 +- src/commander.js | 3 + src/commands/project.js | 7 +- src/commands/skills.js | 8 +- 10 files changed, 1592 insertions(+), 1595 deletions(-) diff --git a/.npmrc b/.npmrc index 449691b7..9702fa6f 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,2 @@ -save-exact=true \ No newline at end of file +save-exact=true +engine-strict=true \ No newline at end of file diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 1788baab..22ffecaa 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -25,17 +25,28 @@ const { SetProfileCommand } = require('../src/commands/configure'); -program.description('Configure the Cortex CLI'); - -let cmd = undefined; - program - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--url [url]', 'Cortex URL') + .option('--account [account]', 'Account') + .option('--username [username]', 'Username') + .option('--password [password]', 'Password') .option('--profile [profile]', 'The profile to configure') + .description('Configure the Cortex CLI'); + +let cmd = undefined; +program.command('auth', { isDefault: true}) + .description('Authenticate to cortex (default command)') .option('--url [url]', 'Cortex URL') .option('--account [account]', 'Account') .option('--username [username]', 'Username') - .option('--password [password]', 'Password'); + .option('--password [password]', 'Password') + .option('--profile [profile]', 'The profile to configure') + .action( (options) => { + new ConfigureCommand(program).execute({profile: program.profile, color: program.color}); + }); + +program + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') program .command('list') @@ -58,6 +69,4 @@ program new SetProfileCommand(program).execute(profileName, {color: program.color}); }); -program.parse(process.argv, { noActionHandler: function() { - new ConfigureCommand(program).execute({profile: program.profile, color: program.color}); -}}); +program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-project.js b/bin/cortex-project.js index 54d548ab..46091f97 100644 --- a/bin/cortex-project.js +++ b/bin/cortex-project.js @@ -26,7 +26,7 @@ program.description('Work with a related collection of Cortex contributions'); // Generate Project program .command('generate') - .description('Generates the structure and top level build script for a project') + .description('(Deprecated) Generates the structure and top level build script for a project') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .action((options) => { try { diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index e956078b..efbcd898 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -84,7 +84,7 @@ program program .command('generate') - .description('Generates the structure and top level build script for a skill') + .description('(Deprecated) Generates the structure and top level build script for a skill') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .action((options) => { // deliberately not using withCompatibilityCheck() try { diff --git a/c12e-ci.yml b/c12e-ci.yml index 2d5cdc73..bb6b2c40 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: c12e/nodejs:dev-8.11.0 + image: c12e/nodejs:dev-10.21.0 command: "./build.sh CI" diff --git a/package-lock.json b/package-lock.json index da281708..e006ba36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.1.0", + "version": "1.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "requires": { - "@babel/highlight": "7.8.3" + "@babel/highlight": "^7.8.3" } }, "@babel/highlight": { @@ -17,9 +17,9 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", "requires": { - "chalk": "2.4.2", - "esutils": "2.0.3", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" }, "dependencies": { "chalk": { @@ -27,9 +27,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "js-tokens": { @@ -44,18 +44,18 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.30.tgz", "integrity": "sha1-nb8HCulOvuOW62Z8+Lm6U8QoK2U=", "requires": { - "@hapi/joi": "17.1.0", - "debug": "4.1.1", - "superagent": "5.2.2", - "yeoman-generator": "4.6.0" + "@hapi/joi": "^17.1.0", + "debug": "^4.1.1", + "superagent": "^5.2.2", + "yeoman-generator": "^4.5.0" } }, "@hapi/address": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.0.tgz", - "integrity": "sha512-GDDpkCdSUfkQCznmWUHh9dDN85BWf/V8TFKQ2JLuHdGB4Yy3YTEGBzZxoBNxfNBEvreSR/o+ZxBBSNNEVzY+lQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.1.tgz", + "integrity": "sha512-0oEP5UiyV4f3d6cBL8F3Z5S7iWSX39Knnl0lY8i+6gfmmIBj44JCBNtcMgwyS+5v7j3VYavNay0NFHDS+UGQcw==", "requires": { - "@hapi/hoek": "9.0.3" + "@hapi/hoek": "^9.0.0" } }, "@hapi/formula": { @@ -64,20 +64,20 @@ "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" }, "@hapi/hoek": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.3.tgz", - "integrity": "sha512-jKtjLLDiH95b002sJVc5c74PE6KKYftuyVdVmsuYId5stTaWcRFqE+5ukZI4gDUKjGn8wv2C3zPn3/nyjEI7gg==" + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", + "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" }, "@hapi/joi": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.0.tgz", - "integrity": "sha512-ob67RcPlwRWxBzLCnWvcwx5qbwf88I3ykD7gcJLWOTRfLLgosK7r6aeChz4thA3XRvuBfI0KB1tPVl2EQFlPXw==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", "requires": { - "@hapi/address": "4.0.0", - "@hapi/formula": "2.0.0", - "@hapi/hoek": "9.0.3", - "@hapi/pinpoint": "2.0.0", - "@hapi/topo": "5.0.0" + "@hapi/address": "^4.0.1", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" } }, "@hapi/pinpoint": { @@ -90,7 +90,7 @@ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "requires": { - "@hapi/hoek": "9.0.3" + "@hapi/hoek": "^9.0.0" } }, "@mrmlnc/readdir-enhanced": { @@ -98,8 +98,8 @@ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -113,9 +113,9 @@ "integrity": "sha512-JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA==" }, "@tootallnate/once": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.0.0.tgz", - "integrity": "sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/color-name": { "version": "1.1.1", @@ -132,9 +132,9 @@ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "requires": { - "@types/events": "3.0.0", - "@types/minimatch": "3.0.3", - "@types/node": "13.7.6" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, "@types/minimatch": { @@ -153,44 +153,33 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" }, "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", "dev": true }, "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "3.3.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "dev": true }, "agent-base": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "agentkeepalive": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.0.tgz", - "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.2.tgz", + "integrity": "sha512-waNHE7tQBBn+2qXucI8HY0o2Y0OBPWldWOWsZwY71JcCm4SvrPnWdceFfB5NIXSqE8Ewq6VR/Qt5b1i69P6KCQ==", "requires": { - "debug": "4.1.1", - "depd": "1.1.2", - "humanize-ms": "1.2.1" + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" } }, "aggregate-error": { @@ -198,8 +187,8 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "requires": { - "clean-stack": "2.2.0", - "indent-string": "4.0.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, "ajv": { @@ -207,24 +196,18 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "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" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, "ansi-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "string-width": "3.1.0" + "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -237,9 +220,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -247,7 +230,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } @@ -273,7 +256,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -282,21 +265,16 @@ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { - "normalize-path": "3.0.0", - "picomatch": "2.2.1" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -324,7 +302,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -337,6 +315,15 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, "arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", @@ -347,7 +334,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert-plus": { @@ -371,12 +358,18 @@ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "lodash": "4.17.15" + "lodash": "^4.17.14" } }, "asynckit": { @@ -399,59 +392,6 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.3", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -462,13 +402,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.3.0", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.2", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -476,7 +416,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -484,7 +424,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -492,7 +432,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -500,9 +440,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -512,7 +452,7 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "binary-extensions": { @@ -531,14 +471,14 @@ "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "requires": { - "ansi-align": "3.0.0", - "camelcase": "5.3.1", - "chalk": "3.0.0", - "cli-boxes": "2.2.0", - "string-width": "4.2.0", - "term-size": "2.2.0", - "type-fest": "0.8.1", - "widest-line": "3.1.0" + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "dependencies": { "ansi-regex": { @@ -561,9 +501,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -571,7 +511,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } }, "type-fest": { @@ -586,7 +526,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -595,16 +535,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -612,7 +552,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -622,7 +562,7 @@ "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", "requires": { - "wcwidth": "1.0.1" + "wcwidth": "^1.0.1" } }, "browser-stdout": { @@ -636,12 +576,6 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, - "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==", - "dev": true - }, "builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", @@ -653,46 +587,41 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "cacache": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.0.tgz", - "integrity": "sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g==", - "requires": { - "chownr": "1.1.4", - "fs-minipass": "2.1.0", - "glob": "7.1.6", - "infer-owner": "1.0.4", - "lru-cache": "5.1.1", - "minipass": "3.1.1", - "minipass-collect": "1.0.2", - "minipass-flush": "1.0.5", - "minipass-pipeline": "1.2.2", - "mkdirp": "1.0.3", - "move-concurrently": "1.0.1", - "p-map": "3.0.0", - "promise-inflight": "1.0.1", - "rimraf": "2.7.1", - "ssri": "8.0.0", - "tar": "6.0.1", - "unique-filename": "1.1.1" + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz", + "integrity": "sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "move-file": "^2.0.0", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" }, "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "3.1.1" - } - }, "mkdirp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", - "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } } } }, @@ -701,15 +630,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.3.0", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.1", - "to-object-path": "0.3.0", - "union-value": "1.0.1", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "call-me-maybe": { @@ -717,19 +646,10 @@ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "0.2.0" - } - }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { @@ -753,12 +673,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chai-as-promised": { @@ -767,7 +687,7 @@ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { - "check-error": "1.0.2" + "check-error": "^1.0.2" } }, "chalk": { @@ -775,8 +695,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "ansi-styles": "4.2.1", - "supports-color": "7.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "dependencies": { "ansi-styles": { @@ -784,8 +704,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "@types/color-name": "1.1.1", - "color-convert": "2.0.1" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, "color-convert": { @@ -793,7 +713,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.4" + "color-name": "~1.1.4" } }, "color-name": { @@ -811,7 +731,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "has-flag": "4.0.0" + "has-flag": "^4.0.0" } } } @@ -833,14 +753,14 @@ "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", "dev": true, "requires": { - "anymatch": "3.1.1", - "braces": "3.0.2", - "fsevents": "2.1.2", - "glob-parent": "5.1.0", - "is-binary-path": "2.1.0", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "readdirp": "3.2.0" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" }, "dependencies": { "braces": { @@ -849,7 +769,7 @@ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "fill-range": "7.0.1" + "fill-range": "^7.0.1" } }, "fill-range": { @@ -858,16 +778,16 @@ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "to-regex-range": "5.0.1" + "to-regex-range": "^5.0.1" } }, "glob-parent": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", - "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { - "is-glob": "4.0.1" + "is-glob": "^4.0.1" } }, "is-number": { @@ -882,31 +802,25 @@ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { - "is-number": "7.0.0" + "is-number": "^7.0.0" } } } }, "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -914,7 +828,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -934,7 +848,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-table": { @@ -955,9 +869,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "requires": { - "string-width": "4.2.0", - "strip-ansi": "6.0.0", - "wrap-ansi": "6.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" }, "dependencies": { "ansi-regex": { @@ -980,9 +894,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -990,7 +904,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -1015,9 +929,9 @@ "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "requires": { - "inherits": "2.0.4", - "process-nextick-args": "2.0.1", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" } }, "co": { @@ -1030,7 +944,7 @@ "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { - "keypress": "0.2.1" + "keypress": "~0.2.1" } }, "collection-visit": { @@ -1038,8 +952,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -1065,13 +979,13 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.0.0.tgz", + "integrity": "sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ==" }, "commondir": { "version": "1.0.1", @@ -1088,36 +1002,11 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.4", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - } - }, "cookiejar": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.7.1", - "run-queue": "1.0.3" - } - }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -1133,7 +1022,7 @@ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { - "capture-stack-trace": "1.0.1" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { @@ -1141,11 +1030,11 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.7.1", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { "semver": { @@ -1156,14 +1045,14 @@ } }, "csv": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.1.tgz", - "integrity": "sha512-UBO4x5EYpihikfjHUQ7dCTIgC+e9TrWWZbCcoMr935tcAZfXT1MZKHLD+aYSHs1jwW2G1uljpFfJ4XxYwQ6t5w==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz", + "integrity": "sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==", "requires": { - "csv-generate": "3.2.4", - "csv-parse": "4.8.7", - "csv-stringify": "5.3.6", - "stream-transform": "2.0.1" + "csv-generate": "^3.2.4", + "csv-parse": "^4.8.8", + "csv-stringify": "^5.3.6", + "stream-transform": "^2.0.1" } }, "csv-generate": { @@ -1172,9 +1061,9 @@ "integrity": "sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA==" }, "csv-parse": { - "version": "4.8.7", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.7.tgz", - "integrity": "sha512-Kgip6VA+sUvd1lYqZ1n8PpJdv2BKnoYV/YP0by7LTMgNSs2FD3Y16fKyMdQcLfcBgSLnjkix/3BNnVxkw5NmpQ==" + "version": "4.8.8", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.8.tgz", + "integrity": "sha512-Kv3Ilz2GV58dOoHBXRCTF8ijxlLjl80bG3d67XPI6DNqffb3AnbPbKr/WvCUMJq5V0AZYi6sukOaOQAVpfuVbg==" }, "csv-stringify": { "version": "5.3.6", @@ -1191,7 +1080,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "data-uri-to-buffer": { @@ -1209,7 +1098,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "decamelize": { @@ -1228,7 +1117,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-extend": { @@ -1246,7 +1135,7 @@ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { - "clone": "1.0.4" + "clone": "^1.0.2" }, "dependencies": { "clone": { @@ -1260,9 +1149,8 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { - "object-keys": "1.1.1" + "object-keys": "^1.0.12" } }, "define-property": { @@ -1270,8 +1158,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -1279,7 +1167,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1287,7 +1175,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1295,26 +1183,26 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, "degenerator": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "requires": { - "ast-types": "0.13.2", - "escodegen": "1.12.0", - "esprima": "3.1.3" + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" }, "dependencies": { "esprima": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" } } @@ -1326,7 +1214,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "diff": { @@ -1339,16 +1227,16 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "requires": { - "path-type": "3.0.0" + "path-type": "^3.0.0" } }, "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "esutils": "2.0.3" + "esutils": "^2.0.2" } }, "duplexer": { @@ -1366,8 +1254,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ecdsa-sig-formatter": { @@ -1375,7 +1263,7 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "editions": { @@ -1383,8 +1271,8 @@ "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.0.tgz", "integrity": "sha512-jeXYwHPKbitU1l14dWlsl5Nm+b1Hsm7VX73BsrQ4RVwEcAQQIPFHTZAbVtuIGxZBrpdT2FXd8lbtrNBrzZxIsA==", "requires": { - "errlop": "2.0.0", - "semver": "6.3.0" + "errlop": "^2.0.0", + "semver": "^6.3.0" }, "dependencies": { "semver": { @@ -1410,7 +1298,7 @@ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "optional": true, "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { @@ -1418,7 +1306,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "err-code": { @@ -1436,7 +1324,7 @@ "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", "requires": { - "string-template": "0.2.1" + "string-template": "~0.2.1" } }, "error-ex": { @@ -1444,37 +1332,35 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { "version": "1.17.4", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", - "dev": true, "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.1.5", - "is-regex": "1.0.5", - "object-inspect": "1.7.0", - "object-keys": "1.1.1", - "object.assign": "4.1.0", - "string.prototype.trimleft": "2.1.1", - "string.prototype.trimright": "2.1.1" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" } }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, "requires": { - "is-callable": "1.1.5", - "is-date-object": "1.0.2", - "is-symbol": "1.0.3" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es6-promise": { @@ -1487,7 +1373,7 @@ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { - "es6-promise": "4.2.8" + "es6-promise": "^4.0.3" } }, "escape-string-regexp": { @@ -1500,11 +1386,11 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", "requires": { - "esprima": "3.1.3", - "estraverse": "4.3.0", - "esutils": "2.0.3", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -1521,161 +1407,333 @@ } }, "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.2", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.2.6", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.1.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.3", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.6", - "globals": "11.12.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.13.1", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.15", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.3", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.7.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "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==", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "type-fest": "^0.11.0" } }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } }, - "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=", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "color-name": "~1.1.4" } }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { - "ms": "2.1.2" + "escape-string-regexp": "^1.0.5" } }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "is-glob": "^4.0.1" } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "dev": true, "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.15", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - } - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "run-async": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true } } }, "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.3.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { @@ -1685,13 +1743,14 @@ "dev": true }, "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" } }, "esprima": { @@ -1700,12 +1759,20 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", + "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", "dev": true, "requires": { - "estraverse": "4.3.0" + "estraverse": "^5.0.0" + }, + "dependencies": { + "estraverse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", + "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "dev": true + } } }, "esrecurse": { @@ -1714,7 +1781,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.3.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -1732,13 +1799,13 @@ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", + "duplexer": "^0.1.1", + "from": "^0.1.7", "map-stream": "0.0.7", - "pause-stream": "0.0.11", - "split": "1.0.1", - "stream-combiner": "0.2.2", - "through": "2.3.8" + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" } }, "expand-brackets": { @@ -1746,13 +1813,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { @@ -1768,7 +1835,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -1776,7 +1843,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "ms": { @@ -1796,8 +1863,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -1805,7 +1872,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -1815,9 +1882,9 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "extglob": { @@ -1825,14 +1892,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1840,7 +1907,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -1848,7 +1915,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -1856,7 +1923,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1864,7 +1931,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1872,9 +1939,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -1894,12 +1961,12 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.1", - "merge2": "1.3.0", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" } }, "fast-json-stable-stringify": { @@ -1922,17 +1989,16 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" + "flat-cache": "^2.0.1" } }, "file-uri-to-path": { @@ -1945,10 +2011,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -1956,7 +2022,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1971,7 +2037,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "3.0.0" + "locate-path": "^3.0.0" } }, "first-chunk-stream": { @@ -1979,7 +2045,7 @@ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.2" } }, "flat": { @@ -1988,7 +2054,7 @@ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "requires": { - "is-buffer": "2.0.4" + "is-buffer": "~2.0.3" }, "dependencies": { "is-buffer": { @@ -2000,15 +2066,14 @@ } }, "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "circular-json": "0.3.3", - "graceful-fs": "4.2.3", + "flatted": "^2.0.0", "rimraf": "2.6.3", - "write": "0.2.1" + "write": "1.0.3" }, "dependencies": { "rimraf": { @@ -2017,11 +2082,17 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "7.1.6" + "glob": "^7.1.3" } } } }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -2037,9 +2108,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.8", - "mime-types": "2.1.26" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } }, "formidable": { @@ -2052,7 +2123,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "from": { @@ -2065,18 +2136,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { - "minipass": "3.1.1" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "4.2.3", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "minipass": "^3.0.0" } }, "fs.realpath": { @@ -2093,32 +2153,32 @@ }, "ftp": { "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "requires": { - "readable-stream": "1.1.14", + "readable-stream": "1.1.x", "xregexp": "2.0.0" }, "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } @@ -2126,8 +2186,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -2156,12 +2215,12 @@ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", "requires": { - "data-uri-to-buffer": "1.2.0", - "debug": "2.6.9", - "extend": "3.0.2", - "file-uri-to-path": "1.0.0", - "ftp": "0.3.10", - "readable-stream": "2.3.6" + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" }, "dependencies": { "debug": { @@ -2189,7 +2248,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "gh-got": { @@ -2197,8 +2256,8 @@ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz", "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=", "requires": { - "got": "6.7.1", - "is-plain-obj": "1.1.0" + "got": "^6.2.0", + "is-plain-obj": "^1.1.0" } }, "github-username": { @@ -2206,7 +2265,7 @@ "resolved": "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz", "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=", "requires": { - "gh-got": "5.0.0" + "gh-got": "^5.0.0" } }, "glob": { @@ -2214,12 +2273,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { @@ -2227,8 +2286,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -2236,7 +2295,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -2251,28 +2310,39 @@ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "requires": { - "ini": "1.3.5" + "ini": "^1.3.5" } }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "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 + } + } }, "globby": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "requires": { - "@types/glob": "7.1.1", - "array-union": "1.0.2", - "dir-glob": "2.2.2", - "fast-glob": "2.2.7", - "glob": "7.1.6", - "ignore": "4.0.6", - "pify": "4.0.1", - "slash": "2.0.0" + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" }, "dependencies": { "ignore": { @@ -2287,17 +2357,17 @@ "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.2.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, "graceful-fs": { @@ -2315,7 +2385,7 @@ "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-1.0.0.tgz", "integrity": "sha512-XslfWrAGCYovQjveHODR0hllUrsn3UtvPFTkamHbgVHmkUA6eCIDmw3JDWVLJvuntTvYjwaPGamlyzK4/HAEOA==", "requires": { - "lodash": "4.17.15" + "lodash": "^4.17.15" } }, "growl": { @@ -2334,34 +2404,16 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "6.12.0", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } + "function-bind": "^1.1.1" } }, "has-flag": { @@ -2372,17 +2424,16 @@ "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -2390,8 +2441,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -2399,7 +2450,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2425,10 +2476,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.4", "setprototypeof": "1.1.1", - "statuses": "1.5.0", + "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" } }, @@ -2437,7 +2488,7 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "requires": { - "agent-base": "4.3.0", + "agent-base": "4", "debug": "3.1.0" }, "dependencies": { @@ -2461,9 +2512,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-proxy-agent": { @@ -2471,8 +2522,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { - "agent-base": "6.0.0", - "debug": "4.1.1" + "agent-base": "6", + "debug": "4" }, "dependencies": { "agent-base": { @@ -2480,7 +2531,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", "requires": { - "debug": "4.1.1" + "debug": "4" } } } @@ -2490,7 +2541,7 @@ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { - "ms": "2.1.2" + "ms": "^2.0.0" } }, "iconv-lite": { @@ -2498,19 +2549,24 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, "ignore": { "version": "3.3.10", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -2531,8 +2587,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2550,19 +2606,19 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.1.0", - "figures": "2.0.0", - "lodash": "4.17.15", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.5.4", - "string-width": "2.1.1", - "strip-ansi": "5.2.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -2575,9 +2631,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "strip-ansi": { @@ -2585,7 +2641,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } @@ -2605,7 +2661,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2613,7 +2669,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2629,7 +2685,7 @@ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "binary-extensions": "2.0.0" + "binary-extensions": "^2.0.0" } }, "is-buffer": { @@ -2640,15 +2696,14 @@ "is-callable": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", - "dev": true + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2656,7 +2711,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2664,17 +2719,16 @@ "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -2704,7 +2758,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-installed-globally": { @@ -2712,8 +2766,8 @@ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", "requires": { - "global-dirs": "2.0.1", - "is-path-inside": "3.0.2" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, "is-lambda": { @@ -2726,7 +2780,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2734,7 +2788,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2754,7 +2808,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-promise": { @@ -2771,17 +2825,10 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "dev": true, "requires": { - "has": "1.0.3" + "has": "^1.0.3" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", @@ -2792,7 +2839,7 @@ "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "requires": { - "scoped-regex": "1.0.0" + "scoped-regex": "^1.0.0" } }, "is-stream": { @@ -2804,9 +2851,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, "requires": { - "has-symbols": "1.0.1" + "has-symbols": "^1.0.1" } }, "is-typedarray": { @@ -2854,9 +2900,9 @@ "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", "requires": { - "binaryextensions": "2.2.0", - "editions": "2.3.0", - "textextensions": "2.6.0" + "binaryextensions": "^2.1.2", + "editions": "^2.2.0", + "textextensions": "^2.5.0" } }, "jmespath": { @@ -2864,19 +2910,13 @@ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, "js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -2927,7 +2967,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } @@ -2937,16 +2977,16 @@ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", "requires": { - "jws": "3.2.2", - "lodash.includes": "4.3.0", - "lodash.isboolean": "3.0.3", - "lodash.isinteger": "4.0.4", - "lodash.isnumber": "3.0.3", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.once": "4.1.1", - "ms": "2.1.2", - "semver": "5.7.1" + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" }, "dependencies": { "semver": { @@ -2974,7 +3014,7 @@ "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "jws": { @@ -2982,8 +3022,8 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "requires": { - "jwa": "1.4.1", - "safe-buffer": "5.1.2" + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" } }, "keypress": { @@ -3006,8 +3046,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lines-and-columns": { @@ -3020,8 +3060,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -3069,7 +3109,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { - "chalk": "2.4.2" + "chalk": "^2.0.1" }, "dependencies": { "chalk": { @@ -3077,9 +3117,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } } } @@ -3090,13 +3130,11 @@ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "yallist": "^3.0.2" } }, "macos-release": { @@ -3109,7 +3147,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "requires": { - "semver": "6.3.0" + "semver": "^6.0.0" }, "dependencies": { "semver": { @@ -3120,25 +3158,25 @@ } }, "make-fetch-happen": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.2.tgz", - "integrity": "sha512-jRqI9zjLyz8ufXfLSbEObJ6a8sv8geeKYEPFpI+b39JjYU14MZtCiJGazSWPZMjCm7161b4r57N/na5fBXpooQ==", - "requires": { - "agentkeepalive": "4.1.0", - "cacache": "15.0.0", - "http-cache-semantics": "4.1.0", - "http-proxy-agent": "4.0.1", - "https-proxy-agent": "5.0.0", - "is-lambda": "1.0.1", - "lru-cache": "5.1.1", - "minipass": "3.1.1", - "minipass-collect": "1.0.2", - "minipass-fetch": "1.2.1", - "minipass-flush": "1.0.5", - "minipass-pipeline": "1.2.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "5.0.0", - "ssri": "8.0.0" + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.7.tgz", + "integrity": "sha512-rkDA4c1nMXVqLkfOaM5RK2dxkUndjLOCrPycTDZgbkFDzhmaCO3P1dmCW//yt1I/G1EcedJqMsSjWkV79Hh4hQ==", + "requires": { + "agentkeepalive": "^4.1.0", + "cacache": "^15.0.0", + "http-cache-semantics": "^4.0.4", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^5.1.1", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.1.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" }, "dependencies": { "agent-base": { @@ -3146,7 +3184,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", "requires": { - "debug": "4.1.1" + "debug": "4" } }, "http-proxy-agent": { @@ -3154,17 +3192,17 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "requires": { - "@tootallnate/once": "1.0.0", - "agent-base": "6.0.0", - "debug": "4.1.1" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" } }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "requires": { - "yallist": "3.1.1" + "yallist": "^4.0.0" } }, "smart-buffer": { @@ -3178,7 +3216,7 @@ "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", "requires": { "ip": "1.1.5", - "smart-buffer": "4.1.0" + "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { @@ -3186,15 +3224,15 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", "requires": { - "agent-base": "6.0.0", - "debug": "4.1.1", - "socks": "2.3.3" + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" } }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -3213,7 +3251,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "mem-fs": { @@ -3221,9 +3259,9 @@ "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", "requires": { - "through2": "2.0.5", - "vinyl": "1.2.0", - "vinyl-file": "2.0.0" + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" }, "dependencies": { "clone": { @@ -3246,8 +3284,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.2" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "vinyl": { @@ -3255,8 +3293,8 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.4", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } } @@ -3267,17 +3305,17 @@ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz", "integrity": "sha512-e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==", "requires": { - "commondir": "1.0.1", - "deep-extend": "0.6.0", - "ejs": "2.7.4", - "glob": "7.1.6", - "globby": "9.2.0", - "isbinaryfile": "4.0.4", - "mkdirp": "0.5.1", - "multimatch": "4.0.0", - "rimraf": "2.7.1", - "through2": "3.0.1", - "vinyl": "2.2.0" + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^2.6.1", + "glob": "^7.1.4", + "globby": "^9.2.0", + "isbinaryfile": "^4.0.0", + "mkdirp": "^0.5.0", + "multimatch": "^4.0.0", + "rimraf": "^2.6.3", + "through2": "^3.0.1", + "vinyl": "^2.2.0" } }, "merge2": { @@ -3295,19 +3333,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "mime": { @@ -3338,20 +3376,20 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", "requires": { - "yallist": "4.0.0" + "yallist": "^4.0.0" }, "dependencies": { "yallist": { @@ -3366,7 +3404,7 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minipass-fetch": { @@ -3374,11 +3412,11 @@ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", "requires": { - "encoding": "0.1.12", - "minipass": "3.1.1", - "minipass-pipeline": "1.2.2", - "minipass-sized": "1.0.3", - "minizlib": "2.1.0" + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-pipeline": "^1.2.2", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" } }, "minipass-flush": { @@ -3386,7 +3424,7 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minipass-json-stream": { @@ -3394,8 +3432,8 @@ "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "requires": { - "jsonparse": "1.3.1", - "minipass": "3.1.1" + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" } }, "minipass-pipeline": { @@ -3403,7 +3441,7 @@ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minipass-sized": { @@ -3411,7 +3449,7 @@ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minizlib": { @@ -3419,8 +3457,8 @@ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", "requires": { - "minipass": "3.1.1", - "yallist": "4.0.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "dependencies": { "yallist": { @@ -3435,8 +3473,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -3444,7 +3482,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -3455,24 +3493,17 @@ "integrity": "sha512-SyV9uPETRig5ZmYev0ANfiGeB+g6N2EnqqEfBbCGmmJ6MgZ3E4qv5aPbnHVdZ60KAHHXV+T3sXopdrnIXQdmjQ==" }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "minimist": "^1.2.5" } }, "mocha": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.0.tgz", - "integrity": "sha512-MymHK8UkU0K15Q/zX7uflZgVoRWiTjy0fXE/QjKts6mowUvGxOdPhZ2qj3b0iZdUrNZlW9LAIMFHB4IW+2b3EQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz", + "integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -3488,7 +3519,7 @@ "js-yaml": "3.13.1", "log-symbols": "3.0.0", "minimatch": "3.0.4", - "mkdirp": "0.5.1", + "mkdirp": "0.5.3", "ms": "2.1.1", "node-environment-flags": "1.0.6", "object.assign": "4.1.0", @@ -3496,8 +3527,8 @@ "supports-color": "6.0.0", "which": "1.3.1", "wide-align": "1.1.3", - "yargs": "13.3.0", - "yargs-parser": "13.1.1", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", "yargs-unparser": "1.6.0" }, "dependencies": { @@ -3513,9 +3544,9 @@ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -3524,7 +3555,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -3535,9 +3566,9 @@ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "3.1.0", - "strip-ansi": "5.2.0", - "wrap-ansi": "5.1.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "debug": { @@ -3546,7 +3577,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "diff": { @@ -3561,12 +3592,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "log-symbols": { @@ -3575,7 +3606,16 @@ "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { - "chalk": "2.4.2" + "chalk": "^2.4.2" + } + }, + "mkdirp": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", + "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "dev": true, + "requires": { + "minimist": "^1.2.5" } }, "ms": { @@ -3590,9 +3630,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -3601,7 +3641,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } }, "supports-color": { @@ -3610,7 +3650,7 @@ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "wrap-ansi": { @@ -3619,37 +3659,37 @@ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "string-width": "3.1.0", - "strip-ansi": "5.2.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "5.0.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.1.1" + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -3659,17 +3699,19 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==", "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.7.1", - "run-queue": "1.0.3" + "path-exists": "^4.0.0" + }, + "dependencies": { + "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==" + } } }, "ms": { @@ -3682,11 +3724,11 @@ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", "requires": { - "@types/minimatch": "3.0.3", - "array-differ": "3.0.0", - "array-union": "2.1.0", - "arrify": "2.0.1", - "minimatch": "3.0.4" + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" }, "dependencies": { "array-union": { @@ -3706,17 +3748,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.3", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "natural-compare": { @@ -3727,7 +3769,7 @@ }, "netmask": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" }, "nice-try": { @@ -3741,8 +3783,8 @@ "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", "dev": true, "requires": { - "object.getownpropertydescriptors": "2.1.0", - "semver": "5.7.1" + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" }, "dependencies": { "semver": { @@ -3758,10 +3800,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { - "hosted-git-info": "2.8.7", - "resolve": "1.15.1", - "semver": "5.7.1", - "validate-npm-package-license": "3.0.4" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" }, "dependencies": { "semver": { @@ -3782,10 +3824,10 @@ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", "requires": { - "hosted-git-info": "3.0.4", - "osenv": "0.1.5", - "semver": "7.1.3", - "validate-npm-package-name": "3.0.0" + "hosted-git-info": "^3.0.2", + "osenv": "^0.1.5", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" }, "dependencies": { "hosted-git-info": { @@ -3793,7 +3835,7 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", "requires": { - "lru-cache": "5.1.1" + "lru-cache": "^5.1.1" } }, "lru-cache": { @@ -3801,7 +3843,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.1.1" + "yallist": "^3.0.2" } }, "yallist": { @@ -3816,14 +3858,14 @@ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz", "integrity": "sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ==", "requires": { - "@npmcli/ci-detect": "1.2.0", - "lru-cache": "5.1.1", - "make-fetch-happen": "8.0.2", - "minipass": "3.1.1", - "minipass-fetch": "1.2.1", - "minipass-json-stream": "1.0.1", - "minizlib": "2.1.0", - "npm-package-arg": "8.0.0" + "@npmcli/ci-detect": "^1.0.0", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^8.0.2", + "minipass": "^3.0.0", + "minipass-fetch": "^1.1.2", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" }, "dependencies": { "lru-cache": { @@ -3831,7 +3873,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.1.1" + "yallist": "^3.0.2" } }, "yallist": { @@ -3846,7 +3888,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "oauth-sign": { @@ -3854,20 +3896,14 @@ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -3875,7 +3911,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "kind-of": { @@ -3883,7 +3919,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3891,33 +3927,30 @@ "object-inspect": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", - "dev": true + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.assign": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1", - "has-symbols": "1.0.1", - "object-keys": "1.1.1" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, "object.getownpropertydescriptors": { @@ -3926,8 +3959,8 @@ "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "object.pick": { @@ -3935,7 +3968,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { @@ -3943,7 +3976,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -3951,7 +3984,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "optionator": { @@ -3959,12 +3992,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-homedir": { @@ -3977,8 +4010,8 @@ "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", "requires": { - "macos-release": "2.3.0", - "windows-release": "3.2.0" + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" } }, "os-tmpdir": { @@ -3991,8 +4024,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-finally": { @@ -4005,7 +4038,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -4013,15 +4046,15 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "2.2.2" + "p-limit": "^2.0.0" } }, "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { - "aggregate-error": "3.0.1" + "aggregate-error": "^3.0.0" } }, "p-try": { @@ -4034,14 +4067,14 @@ "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", "requires": { - "agent-base": "4.3.0", - "debug": "4.1.1", - "get-uri": "2.0.4", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "3.0.1", - "pac-resolver": "3.0.0", - "raw-body": "2.4.1", - "socks-proxy-agent": "4.0.2" + "agent-base": "^4.2.0", + "debug": "^4.1.1", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" }, "dependencies": { "https-proxy-agent": { @@ -4049,8 +4082,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", "requires": { - "agent-base": "4.3.0", - "debug": "3.2.6" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "dependencies": { "debug": { @@ -4058,7 +4091,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } } } @@ -4070,11 +4103,20 @@ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", "requires": { - "co": "4.6.0", - "degenerator": "1.0.4", - "ip": "1.1.5", - "netmask": "1.0.6", - "thunkify": "2.1.2" + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" } }, "parse-json": { @@ -4082,10 +4124,10 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "requires": { - "@babel/code-frame": "7.8.3", - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2", - "lines-and-columns": "1.1.6" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, "pascalcase": { @@ -4108,12 +4150,6 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -4146,7 +4182,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -4167,7 +4203,7 @@ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { - "through": "2.3.8" + "through": "~2.3" } }, "performance-now": { @@ -4176,9 +4212,9 @@ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", - "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { @@ -4196,15 +4232,9 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -4245,8 +4275,8 @@ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" + "err-code": "^1.0.0", + "retry": "^0.10.0" } }, "proxy-agent": { @@ -4254,14 +4284,14 @@ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", "requires": { - "agent-base": "4.3.0", - "debug": "4.1.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "3.0.1", - "lru-cache": "5.1.1", - "pac-proxy-agent": "3.0.1", - "proxy-from-env": "1.0.0", - "socks-proxy-agent": "4.0.2" + "agent-base": "^4.2.0", + "debug": "4", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^3.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" }, "dependencies": { "https-proxy-agent": { @@ -4269,8 +4299,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", "requires": { - "agent-base": "4.3.0", - "debug": "3.2.6" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "dependencies": { "debug": { @@ -4278,7 +4308,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } } } @@ -4288,7 +4318,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.1.1" + "yallist": "^3.0.2" } }, "yallist": { @@ -4300,15 +4330,9 @@ }, "proxy-from-env": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "psl": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", @@ -4319,8 +4343,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "end-of-stream": "1.4.4", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "punycode": { @@ -4349,8 +4373,8 @@ "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", "requires": { - "pify": "4.0.1", - "with-open-file": "0.1.7" + "pify": "^4.0.1", + "with-open-file": "^0.1.6" } }, "read-pkg": { @@ -4358,10 +4382,10 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "requires": { - "@types/normalize-package-data": "2.4.0", - "normalize-package-data": "2.5.0", - "parse-json": "5.0.0", - "type-fest": "0.6.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" } }, "read-pkg-up": { @@ -4369,8 +4393,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", "requires": { - "find-up": "3.0.0", - "read-pkg": "5.2.0" + "find-up": "^3.0.0", + "read-pkg": "^5.0.0" } }, "readable-stream": { @@ -4378,13 +4402,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -4393,7 +4417,7 @@ "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", "dev": true, "requires": { - "picomatch": "2.2.1" + "picomatch": "^2.0.4" } }, "rechoir": { @@ -4401,7 +4425,7 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "1.15.1" + "resolve": "^1.1.6" } }, "regex-not": { @@ -4409,14 +4433,14 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, "remove-trailing-separator": { @@ -4444,26 +4468,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.9.1", - "caseless": "0.12.0", - "combined-stream": "1.0.8", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "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.26", - "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.4.0" + "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": { "form-data": { @@ -4471,9 +4495,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.8", - "mime-types": "2.1.26" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "qs": { @@ -4498,28 +4522,18 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - } - }, "resolve": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "resolve-url": { @@ -4532,8 +4546,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -4547,12 +4561,12 @@ "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "rewire": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-4.0.1.tgz", - "integrity": "sha512-+7RQ/BYwTieHVXetpKhT11UbfF6v1kGhKFrtZN7UDL2PybMsSt/rpLWeEUGF5Ndsl1D5BxiCB14VDJyoX+noYw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", "dev": true, "requires": { - "eslint": "4.19.1" + "eslint": "^6.8.0" } }, "rimraf": { @@ -4560,7 +4574,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "glob": "7.1.6" + "glob": "^7.1.3" } }, "run-async": { @@ -4568,30 +4582,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "1.2.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "4.0.8" + "is-promise": "^2.1.0" } }, "rxjs": { @@ -4599,7 +4590,7 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "requires": { - "tslib": "1.11.0" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -4612,7 +4603,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -4640,10 +4631,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -4651,7 +4642,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -4666,7 +4657,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -4679,9 +4670,9 @@ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", "requires": { - "glob": "7.1.6", - "interpret": "1.2.0", - "rechoir": "0.6.2" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, "signal-exit": { @@ -4695,12 +4686,14 @@ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" }, "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" } }, "smart-buffer": { @@ -4709,15 +4702,16 @@ "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==" }, "smartwrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-1.2.5.tgz", - "integrity": "sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==", - "requires": { - "breakword": "1.0.5", - "grapheme-splitter": "1.0.4", - "strip-ansi": "6.0.0", - "wcwidth": "1.0.1", - "yargs": "15.1.0" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.1.tgz", + "integrity": "sha512-BoOIGADm5Q9OXGVmT899L1fx6dvOYciVUPB9yFlE1XkxRs3/6sqT/HYZoXOxNb4jj2zshtH+jhmGa6wGkNDPgA==", + "requires": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" }, "dependencies": { "ansi-regex": { @@ -4730,7 +4724,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -4740,14 +4734,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.3", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -4763,7 +4757,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -4771,7 +4765,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "ms": { @@ -4786,9 +4780,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -4796,7 +4790,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -4804,7 +4798,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4812,7 +4806,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4820,9 +4814,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -4832,7 +4826,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { @@ -4840,7 +4834,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4850,7 +4844,7 @@ "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", "requires": { - "ip": "1.1.5", + "ip": "^1.1.5", "smart-buffer": "4.0.2" } }, @@ -4859,8 +4853,8 @@ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", "requires": { - "agent-base": "4.2.1", - "socks": "2.3.2" + "agent-base": "~4.2.1", + "socks": "~2.3.2" }, "dependencies": { "agent-base": { @@ -4868,7 +4862,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } } } @@ -4883,11 +4877,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { @@ -4900,8 +4894,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.5" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -4914,8 +4908,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.5" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -4928,7 +4922,7 @@ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -4936,7 +4930,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -4949,15 +4943,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "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" } }, "ssri": { @@ -4965,7 +4959,7 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.1.1" } }, "static-eval": { @@ -4973,7 +4967,7 @@ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", "requires": { - "escodegen": "1.12.0" + "escodegen": "^1.8.1" } }, "static-extend": { @@ -4981,8 +4975,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -4990,14 +4984,14 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } }, "statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stream-combiner": { @@ -5005,8 +4999,8 @@ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "requires": { - "duplexer": "0.1.1", - "through": "2.3.8" + "duplexer": "~0.1.1", + "through": "~2.3.4" } }, "stream-transform": { @@ -5014,7 +5008,7 @@ "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.1.tgz", "integrity": "sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw==", "requires": { - "mixme": "0.3.5" + "mixme": "^0.3.1" } }, "string-template": { @@ -5027,28 +5021,26 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string.prototype.trimleft": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "dev": true, "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1" + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" } }, "string.prototype.trimright": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "dev": true, "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1" + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" } }, "string_decoder": { @@ -5056,7 +5048,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -5064,7 +5056,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { @@ -5072,7 +5064,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-bom-stream": { @@ -5080,8 +5072,8 @@ "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { - "first-chunk-stream": "2.0.0", - "strip-bom": "2.0.0" + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" } }, "strip-eof": { @@ -5100,17 +5092,17 @@ "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", "requires": { - "component-emitter": "1.3.0", - "cookiejar": "2.1.2", - "debug": "4.1.1", - "fast-safe-stringify": "2.0.7", - "form-data": "3.0.0", - "formidable": "1.2.2", - "methods": "1.1.2", - "mime": "2.4.4", - "qs": "6.9.1", - "readable-stream": "3.6.0", - "semver": "6.3.0" + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.2", + "debug": "^4.1.1", + "fast-safe-stringify": "^2.0.7", + "form-data": "^3.0.0", + "formidable": "^1.2.1", + "methods": "^1.1.2", + "mime": "^2.4.4", + "qs": "^6.9.1", + "readable-stream": "^3.4.0", + "semver": "^6.3.0" }, "dependencies": { "readable-stream": { @@ -5118,9 +5110,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "inherits": "2.0.4", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "semver": { @@ -5136,7 +5128,7 @@ "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", "dev": true, "requires": { - "path-to-regexp": "1.7.0" + "path-to-regexp": "^1.1.0" } }, "superagent-proxy": { @@ -5144,8 +5136,8 @@ "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.0.0.tgz", "integrity": "sha512-TktJma5jPdiH1BNN+reF/RMW3b8aBTCV7KlLFV0uYcREgNf3pvo7Rdt564OcFHwkGb3mYEhHuWPBhSbOwiNaYw==", "requires": { - "debug": "3.2.6", - "proxy-agent": "3.1.1" + "debug": "^3.1.0", + "proxy-agent": "3" }, "dependencies": { "debug": { @@ -5153,7 +5145,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } } } @@ -5168,77 +5160,66 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.2", - "lodash": "4.17.15", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-regex": "^4.1.0" } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true } } }, "tar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", - "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", - "requires": { - "chownr": "1.1.4", - "fs-minipass": "2.1.0", - "minipass": "3.1.1", - "minizlib": "2.1.0", - "mkdirp": "1.0.3", - "yallist": "4.0.0" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "dependencies": { "mkdirp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", - "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "yallist": { "version": "4.0.0", @@ -5272,12 +5253,12 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "requires": { - "readable-stream": "2.3.6" + "readable-stream": "2 || 3" } }, "thunkify": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" }, "timed-out": { @@ -5290,7 +5271,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-object-path": { @@ -5298,7 +5279,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5306,7 +5287,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5316,10 +5297,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -5327,8 +5308,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "toidentifier": { @@ -5341,26 +5322,27 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "1.7.0", - "punycode": "2.1.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tslib": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", - "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" }, "tty-table": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-2.8.12.tgz", - "integrity": "sha512-QSOxdMM0VnDmDDr1Itw/JkrwjPp3WbuzCRbgydns5mFo6UOuiZOqpGZVp9MP+S8v57awzzRSHSkI8t2bpiM+Og==", - "requires": { - "csv": "5.3.1", - "kleur": "3.0.3", - "smartwrap": "1.2.5", - "strip-ansi": "6.0.0", - "wcwidth": "1.0.1", - "yargs": "15.1.0" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.1.tgz", + "integrity": "sha512-iCxPm5DCPgqs3ELrUDEe+JsOcQOSPZSe+dwM5oIQZk5OfyzQWPVQwkHjyFp4aoDHC0HTM47jd0TkQZUBpxnN0Q==", + "requires": { + "chalk": "^3.0.0", + "csv": "^5.3.1", + "kleur": "^3.0.3", + "smartwrap": "^2.0.1", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" }, "dependencies": { "ansi-regex": { @@ -5373,7 +5355,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -5383,7 +5365,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -5396,7 +5378,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -5410,12 +5392,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, "underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", @@ -5426,10 +5402,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "2.0.1" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, "unique-filename": { @@ -5437,7 +5413,7 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { - "unique-slug": "2.0.2" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -5445,12 +5421,12 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unset-value": { @@ -5458,8 +5434,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -5467,9 +5443,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -5504,7 +5480,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -5517,7 +5493,7 @@ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "use": { @@ -5531,17 +5507,23 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.1.tgz", - "integrity": "sha512-yqjRXZzSJm9Dbl84H2VDHpM3zMjzSJQ+hn6C4zqd5ilW+7P4ZmLEEqwho9LjP+tGuZlF4xrHQXT0h9QZUS/pWA==" + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz", + "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==" + }, + "v8-compile-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", + "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.1.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { @@ -5549,7 +5531,7 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { - "builtins": "1.0.3" + "builtins": "^1.0.3" } }, "verror": { @@ -5557,9 +5539,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vinyl": { @@ -5567,12 +5549,12 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "requires": { - "clone": "2.1.2", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.1.3", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" } }, "vinyl-file": { @@ -5580,12 +5562,12 @@ "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", "requires": { - "graceful-fs": "4.2.3", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0", - "strip-bom-stream": "2.0.0", - "vinyl": "1.2.0" + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" }, "dependencies": { "clone": { @@ -5613,8 +5595,8 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.4", - "clone-stats": "0.0.1", + "clone": "^1.0.0", + "clone-stats": "^0.0.1", "replace-ext": "0.0.1" } } @@ -5625,7 +5607,7 @@ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { - "defaults": "1.0.3" + "defaults": "^1.0.3" } }, "which": { @@ -5633,7 +5615,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -5647,7 +5629,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^1.0.2 || 2" } }, "widest-line": { @@ -5655,7 +5637,7 @@ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { - "string-width": "4.2.0" + "string-width": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -5678,9 +5660,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -5688,7 +5670,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -5698,7 +5680,7 @@ "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", "requires": { - "execa": "1.0.0" + "execa": "^1.0.0" }, "dependencies": { "execa": { @@ -5706,13 +5688,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "get-stream": { @@ -5720,7 +5702,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } } } @@ -5730,11 +5712,17 @@ "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", "requires": { - "p-finally": "1.0.0", - "p-try": "2.2.0", - "pify": "4.0.1" + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -5745,9 +5733,9 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { - "ansi-styles": "4.2.1", - "string-width": "4.2.0", - "strip-ansi": "6.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-regex": { @@ -5760,8 +5748,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "@types/color-name": "1.1.1", - "color-convert": "2.0.1" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, "color-convert": { @@ -5769,7 +5757,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.4" + "color-name": "~1.1.4" } }, "color-name": { @@ -5792,9 +5780,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -5802,7 +5790,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -5813,17 +5801,17 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "xregexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" }, "xtend": { @@ -5837,27 +5825,26 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "yargs": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz", - "integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==", - "requires": { - "cliui": "6.0.0", - "decamelize": "1.2.0", - "find-up": "4.1.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "4.2.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "16.1.0" + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" }, "dependencies": { "ansi-regex": { @@ -5875,8 +5862,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "is-fullwidth-code-point": { @@ -5889,7 +5876,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "4.1.0" + "p-locate": "^4.1.0" } }, "p-locate": { @@ -5897,7 +5884,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "2.2.2" + "p-limit": "^2.2.0" } }, "path-exists": { @@ -5910,9 +5897,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -5920,18 +5907,18 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } }, "yargs-parser": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", - "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", + "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yargs-unparser": { @@ -5940,9 +5927,9 @@ "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, "requires": { - "flat": "4.1.0", - "lodash": "4.17.15", - "yargs": "13.3.0" + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" }, "dependencies": { "ansi-regex": { @@ -5957,9 +5944,9 @@ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "3.1.0", - "strip-ansi": "5.2.0", - "wrap-ansi": "5.1.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "string-width": { @@ -5968,9 +5955,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -5979,7 +5966,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } }, "wrap-ansi": { @@ -5988,61 +5975,61 @@ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "string-width": "3.1.0", - "strip-ansi": "5.2.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "5.0.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.1.1" + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, "yeoman-environment": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.0.tgz", - "integrity": "sha512-BbJeEna23Qx90fBiJt1awcZ9okfPY/rP3xZYsk1rD3x8LuQgpo4BfegPvQT1sqqh2+gYVZmYZMv5pS8+Muyr9Q==", - "requires": { - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "globby": "8.0.2", - "grouped-queue": "1.0.0", - "inquirer": "6.5.2", - "is-scoped": "1.0.0", - "lodash": "4.17.15", - "log-symbols": "2.2.0", - "mem-fs": "1.1.3", - "strip-ansi": "4.0.0", - "text-table": "0.2.0", - "untildify": "3.0.3" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.1.tgz", + "integrity": "sha512-MV6yeJfnSsZBv/VuWvw82bN6hF6KIXRUwhEPaO+RHJAWeNCQAF+iYfBNsJOo4tx5Puch300h+DF9QZceKkbzQg==", + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.5.0", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^1.0.0", + "inquirer": "^6.0.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.2.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.3" }, "dependencies": { "arrify": { @@ -6055,9 +6042,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "debug": { @@ -6065,7 +6052,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "diff": { @@ -6078,8 +6065,8 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" } }, "globby": { @@ -6087,13 +6074,13 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", "requires": { - "array-union": "1.0.2", + "array-union": "^1.0.1", "dir-glob": "2.0.0", - "fast-glob": "2.2.7", - "glob": "7.1.6", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, "pify": { @@ -6113,31 +6100,31 @@ "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.6.0.tgz", "integrity": "sha512-Hq65rLqMNCS0h0n1yakSZjHsEZHm0ZpOM02Nja6O03s2k5WHvAhGOx7uxs93vrJv62zFrJtD9e9mVhgoVbi7CQ==", "requires": { - "async": "2.6.3", - "chalk": "2.4.2", - "cli-table": "0.3.1", - "cross-spawn": "6.0.5", - "dargs": "6.1.0", - "dateformat": "3.0.3", - "debug": "4.1.1", - "diff": "4.0.2", - "error": "7.2.1", - "find-up": "3.0.0", - "github-username": "3.0.0", - "istextorbinary": "2.6.0", - "lodash": "4.17.15", - "make-dir": "3.0.2", - "mem-fs-editor": "6.0.0", - "minimist": "1.2.0", - "pretty-bytes": "5.3.0", - "read-chunk": "3.2.0", - "read-pkg-up": "5.0.0", - "rimraf": "2.7.1", - "run-async": "2.3.0", - "shelljs": "0.8.3", - "text-table": "0.2.0", - "through2": "3.0.1", - "yeoman-environment": "2.8.0" + "async": "^2.6.2", + "chalk": "^2.4.2", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^6.1.0", + "dateformat": "^3.0.3", + "debug": "^4.1.1", + "diff": "^4.0.1", + "error": "^7.0.2", + "find-up": "^3.0.0", + "github-username": "^3.0.0", + "istextorbinary": "^2.5.1", + "lodash": "^4.17.11", + "make-dir": "^3.0.0", + "mem-fs-editor": "^6.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^5.2.0", + "read-chunk": "^3.2.0", + "read-pkg-up": "^5.0.0", + "rimraf": "^2.6.3", + "run-async": "^2.0.0", + "shelljs": "^0.8.3", + "text-table": "^0.2.0", + "through2": "^3.0.1", + "yeoman-environment": "^2.3.4" }, "dependencies": { "chalk": { @@ -6145,9 +6132,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } } } diff --git a/package.json b/package.json index e1de4a7d..ce99101a 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,15 @@ { "name": "cortex-cli", - "version": "1.1.0", + "version": "1.1.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { + "preinstall": "npx check-node-version -p --package", "test": "CORTEX_CONFIG_DIR=./test/cortex mocha --recursive" }, + "engines": { + "node": ">=10.0.0" + }, "repository": { "type": "git", "url": "https://github.com/CognitiveScale/cortex-cli.git" @@ -26,13 +30,13 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "@c12e/generator-cortex": "0.3.30", - "@hapi/joi": "17.1.0", + "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "3.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "4.1.1", + "commander": "5.0.0", "debug": "4.1.1", "event-stream": "4.0.1", "find-package-json": "1.2.0", @@ -54,15 +58,15 @@ "superagent-proxy": "2.0.0", "superagent-throttle": "1.0.1", "through2": "3.0.1", - "tty-table": "2.8.12", - "uuid": "7.0.1", - "yeoman-environment": "2.8.0" + "tty-table": "4.1.1", + "uuid": "7.0.2", + "yeoman-environment": "2.8.1" }, "devDependencies": { "chai": "4.2.0", "chai-as-promised": "7.1.1", - "mocha": "7.1.0", - "rewire": "4.0.1", + "mocha": "7.1.1", + "rewire": "5.0.0", "superagent-mocker": "0.5.2" } } diff --git a/src/commander.js b/src/commander.js index 364e5e68..46b7931a 100644 --- a/src/commander.js +++ b/src/commander.js @@ -46,6 +46,9 @@ commander.Command.prototype.parse = function(argv, options) { this._parse(argv); if (!this.wasActionTaken()) { + if (process.env.CORTEX_TOKEN) { + console.error("Using token from environment variable $CORTEX_TOKEN") + } opts.noActionHandler(); } }; diff --git a/src/commands/project.js b/src/commands/project.js index f893d7b3..9e5e24fe 100644 --- a/src/commands/project.js +++ b/src/commands/project.js @@ -26,10 +26,7 @@ module.exports.GenerateProjectCommand = class GenerateProjectCommand { execute(options) { debug('generateProject()'); - const yenv = yeoman.createEnv(); - yenv.register(require.resolve('@c12e/generator-cortex'), 'cortex:app'); - // TODO: figure out which parameters to bubble up to the CLI, - // and plumb the values through to the yeoman generator. - yenv.run('cortex:app', { }); + const repoUrl = 'https://github.com/CognitiveScale/cortex-fabric-examples'; + printSuccess(`This command is deprecated. See the ${repoUrl} repo for guidance.`, options); } }; diff --git a/src/commands/skills.js b/src/commands/skills.js index cd94fd21..64450197 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -152,11 +152,7 @@ module.exports.GenerateSkillCommand = class GenerateSkillCommand { execute(options) { debug('%s.generateSkill()'); - const yenv = yeoman.createEnv(); - yenv.lookup(()=>{ - yenv.run('@c12e/cortex:skill', - { }, - (err) => { err ? printError(err) : printSuccess('Done.') }); - }); + const repoUrl = 'https://github.com/CognitiveScale/cortex-fabric-examples'; + printSuccess(`This command is deprecated. See the ${repoUrl} repo for guidance.`, options); } }; From a59382406896c26760d09ff24f901d1b40ac0ad7 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 6 Oct 2020 21:50:00 +0530 Subject: [PATCH 139/864] FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment --- bin/cortex-deploy.js | 47 ++++++++++++++++++++++ bin/cortex.js | 1 + src/commands/deploy.js | 91 ++++++++++++++++++++++++++++++++++++++++++ src/commands/utils.js | 29 +++++++++++++- 4 files changed, 166 insertions(+), 2 deletions(-) create mode 100755 bin/cortex-deploy.js create mode 100644 src/commands/deploy.js diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js new file mode 100755 index 00000000..095d12e5 --- /dev/null +++ b/bin/cortex-deploy.js @@ -0,0 +1,47 @@ +#!/usr/bin/env node + +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + DeploySnapshotCommand +} = require('../src/commands/deploy'); + +program.description('Export Cortex artifacts for deployment'); + +// Export Agent Snapshot. Provide snapshotIds in quotes separated by space like "snapshotId1 snapshotId2". This is to support multiple agents in one deployment manifest file. +program + .command('snapshots ') + .description('Export Agent(s) snapshots(s) for deployment. Provide snapshotIds separated by space, as <"snapshotId1 snapshotId2 ...">') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('-y, --yaml', 'Use YAML for snapshot export format') + .action(withCompatibilityCheck((skillDefinition, options) => { + try { + new DeploySnapshotCommand(program).execute(skillDefinition, options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index f27ca511..9bd707bb 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -33,6 +33,7 @@ program .command('connections [cmd]', 'Work with Cortex Connections') .command('content [cmd]', 'Work with Cortex Managed Content') .command('environments [cmd]', 'Work with Cortex Environments') + .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('datasets [cmd]', 'Work with Cortex Datasets') .command('docker [cmd]', 'Work with Docker') .command('jobs [cmd]', 'Work with Cortex v2 Jobs') diff --git a/src/commands/deploy.js b/src/commands/deploy.js new file mode 100644 index 00000000..17dc84b3 --- /dev/null +++ b/src/commands/deploy.js @@ -0,0 +1,91 @@ +/* + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Agents = require('../client/agents'); +const { printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile } = require('./utils'); + + +/** + * Cortex deploy command is to export Cortex artifacts (agent, snapshot, skill, action etc) for CI/CD deployment. This command: + * 1. Exports cortex artifacts + * 2. generates manifest files to drive artifacts deployment + * Files are exported/generated in pre-determined layout to support CI/CD deployment + * .fabric + * snapshots + * snapshot1.yaml + * snapshot2.yaml + * agents + * ... + * skills + * ... + * actions + * ... + * fabric.yaml (manifest file) + * + * Currently only exporting agent snapshots. This need to be updated for v6. + * + * @type {DeploySnapshotCommand} + */ +module.exports.DeploySnapshotCommand = class { + constructor(program) { + this.program = program; + } + + execute(snapshotIds, options) { + const exportPath = '.fabric/snapshots/'; + const manifestFile = 'fabric.yaml'; + + const profile = loadProfile(options.profile); + const envName = options.environmentName; + debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); + + const agents = new Agents(profile.url); + const promises = []; + snapshotIds.split(' ').forEach(function (snapshotId) { + promises.push(agents.describeAgentSnapshot(profile.token, snapshotId, envName).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + result = cleanInternalFields(result); + let filename = snapshotId+".json"; + if (options.yaml) { + result = jsonToYaml(result); + filename = snapshotId+".yaml"; + } + const filepath = exportPath + filename; + writeToFile(result, filepath); + printSuccess(`Successfully exported agent snapshot ${filepath}`); + return filepath; + } else { + printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); + } + }).catch((err) => { + printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); + })); + }); + + Promise.all(promises).then(result => { + const manifest = { + "version": 1, + "cortex": { + "snapshots": result + } + }; + writeToFile(jsonToYaml(manifest), manifestFile); + printSuccess(`Successfully generated manifest file ${manifestFile}`); + }); + } +}; diff --git a/src/commands/utils.js b/src/commands/utils.js index 6da9413d..15bb8fbb 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -84,7 +84,7 @@ module.exports.parseObject = function(str, options) { if (options.yaml) { return yaml.safeLoad(str); } - + return JSON.parse(str); }; @@ -195,7 +195,7 @@ module.exports.formatAllServiceInputParameters = function(allParameters){ return `$ref:${allParameters.$ref}`; } else{ - return allParameters.map(inputParameters => formatServiceInputParameter(inputParameters)).join('\n'); + return allParameters.map(inputParameters => formatServiceInputParameter(inputParameters)).join('\n'); } } @@ -246,3 +246,28 @@ module.exports.formatValidationPath = (p) => { }); return res; }; + +module.exports.cleanInternalFields = function(jsobj) { + return JSON.stringify(jsobj, function re(a, obj) { + if (a.startsWith("_")) { + return undefined; + } + return obj; + }, 2); +}; + +module.exports.jsonToYaml = function (json) { + if (typeof json == 'string') { + json = JSON.parse(json); + } + return yaml.dump(json); +}; + +module.exports.writeToFile = function (content, filepath) { + const dir = path.dirname(filepath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, {recursive: true}); + } + + fs.writeFileSync(filepath, content); +}; From 7e68c86311e2d9e19f0ca1ad0061e5f401d8a55f Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 7 Oct 2020 19:08:16 +0530 Subject: [PATCH 140/864] FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment --- src/commands/deploy.js | 7 ++++++- src/commands/utils.js | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 17dc84b3..5217843b 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -16,7 +16,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Agents = require('../client/agents'); -const { printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile } = require('./utils'); +const { printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists } = require('./utils'); /** @@ -49,6 +49,10 @@ module.exports.DeploySnapshotCommand = class { const exportPath = '.fabric/snapshots/'; const manifestFile = 'fabric.yaml'; + if (fileExists(exportPath) || fileExists(manifestFile)) { + printError(`Export path ${exportPath} or manifest file ${manifestFile} already exists`) + } + const profile = loadProfile(options.profile); const envName = options.environmentName; debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); @@ -60,6 +64,7 @@ module.exports.DeploySnapshotCommand = class { if (response.success) { let result = filterObject(response.result, options); result = cleanInternalFields(result); + //TODO add validation for not exporting tip snapshots, as they don't have all dependencies let filename = snapshotId+".json"; if (options.yaml) { result = jsonToYaml(result); diff --git a/src/commands/utils.js b/src/commands/utils.js index 15bb8fbb..3b706b51 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -271,3 +271,7 @@ module.exports.writeToFile = function (content, filepath) { fs.writeFileSync(filepath, content); }; + +module.exports.fileExists = function (filepath) { + return fs.existsSync(filepath) +}; From f115804130fa3a12df9270e620a8eeb849e844ac Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 9 Oct 2020 12:24:09 +0530 Subject: [PATCH 141/864] added --- bin/cortex-deploy.js | 1 + src/commands/deploy.js | 45 ++++++++++++++++++++++++------------------ src/commands/utils.js | 25 +++++++++++++++++++++++ 3 files changed, 52 insertions(+), 19 deletions(-) diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index 095d12e5..d9bc8505 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -35,6 +35,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML for snapshot export format') + .option('-f, --force', 'Force delete existing exported files') .action(withCompatibilityCheck((skillDefinition, options) => { try { new DeploySnapshotCommand(program).execute(skillDefinition, options); diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 5217843b..a4cfbc1c 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -14,9 +14,10 @@ * limitations under the License. */ const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); +const {loadProfile} = require('../config'); +const path = require('path'); const Agents = require('../client/agents'); -const { printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists } = require('./utils'); +const {printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile} = require('./utils'); /** @@ -36,7 +37,7 @@ const { printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, * ... * fabric.yaml (manifest file) * - * Currently only exporting agent snapshots. This need to be updated for v6. + * Currently only exporting agent snapshots. * * @type {DeploySnapshotCommand} */ @@ -46,13 +47,18 @@ module.exports.DeploySnapshotCommand = class { } execute(snapshotIds, options) { - const exportPath = '.fabric/snapshots/'; + const exportPath = '.fabric'; const manifestFile = 'fabric.yaml'; if (fileExists(exportPath) || fileExists(manifestFile)) { - printError(`Export path ${exportPath} or manifest file ${manifestFile} already exists`) + if (options.force) { + deleteFile(exportPath); + deleteFile(manifestFile); + printSuccess(`Deleted ${exportPath} and ${manifestFile}`); + } else { + printError(`Aborting, because export path ${exportPath} or manifest file ${manifestFile} exists. Use -f option to force delete.`); + } } - const profile = loadProfile(options.profile); const envName = options.environmentName; debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); @@ -62,29 +68,30 @@ module.exports.DeploySnapshotCommand = class { snapshotIds.split(' ').forEach(function (snapshotId) { promises.push(agents.describeAgentSnapshot(profile.token, snapshotId, envName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); - result = cleanInternalFields(result); - //TODO add validation for not exporting tip snapshots, as they don't have all dependencies - let filename = snapshotId+".json"; - if (options.yaml) { - result = jsonToYaml(result); - filename = snapshotId+".yaml"; - } - const filepath = exportPath + filename; - writeToFile(result, filepath); - printSuccess(`Successfully exported agent snapshot ${filepath}`); - return filepath; + let result = filterObject(response.result, options); + result = cleanInternalFields(result); + //TODO add validation for not exporting tip snapshots, as they don't have all dependencies. Should we enforce? + let filename = snapshotId + ".json"; + if (options.yaml) { + result = jsonToYaml(result); + filename = snapshotId + ".yaml"; + } + const filepath = path.join(exportPath, 'snapshots', filename); + writeToFile(result, filepath); + printSuccess(`Successfully exported agent snapshot ${filepath}`); + return filepath; } else { printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); } }).catch((err) => { - printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); + printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); })); }); Promise.all(promises).then(result => { const manifest = { "version": 1, + "kind": "deployment-manifest", "cortex": { "snapshots": result } diff --git a/src/commands/utils.js b/src/commands/utils.js index 3b706b51..7d7d8385 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -275,3 +275,28 @@ module.exports.writeToFile = function (content, filepath) { module.exports.fileExists = function (filepath) { return fs.existsSync(filepath) }; + +// Alternatively, we can use fs.rmdirSync(, {recursive: true}), but that requires node v12+ +const deleteFolderRecursive = function(filepath) { + try { + if (fs.existsSync(filepath)) { + if (fs.lstatSync(filepath).isDirectory()) { + fs.readdirSync(filepath).forEach((file, index) => { + const curPath = path.join(filepath, file); + if (fs.lstatSync(curPath).isDirectory()) { // recurse + deleteFolderRecursive(curPath); + } else { // delete file + fs.unlinkSync(curPath); + } + }); + fs.rmdirSync(filepath); + } else { + fs.unlinkSync(filepath); + } + } + } catch (e) { + console.error(chalk.red(e.message)); + } +}; + +module.exports.deleteFile = deleteFolderRecursive; From b4849b047ca2bf39c477bfe10b169ff2856a6a26 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Tue, 20 Oct 2020 15:54:56 -0500 Subject: [PATCH 142/864] FAB-285 SSO auth, temp whoAmI, project option support (#240) * FAB-285 SSO auth, temp whoAmI, project option support * FAB-285 SSO fix unit tests * FAB-285 SSO add project option to every command --- README.md | 11 +- bin/cortex-accounts.js | 10 +- bin/cortex-actions.js | 11 + bin/cortex-agents.js | 21 +- bin/cortex-configure.js | 14 +- bin/cortex-connections.js | 6 + bin/cortex-content.js | 4 + bin/cortex-datasets.js | 6 + bin/cortex-deploy.js | 1 + bin/cortex-docker.js | 3 +- bin/cortex-environments.js | 5 + bin/cortex-experiments.js | 7 + bin/cortex-graph.js | 4 + bin/cortex-jobs.js | 4 + bin/cortex-profiles.js | 9 + bin/cortex-skills.js | 3 + bin/cortex-tasks.js | 4 + bin/cortex-types.js | 5 +- bin/cortex-variables.js | 5 +- package-lock.json | 5445 ++++++++++++++++++------------ package.json | 7 +- src/client/accounts.js | 19 + src/client/auth.js | 57 - src/commands/configure.js | 107 +- src/config.js | 70 +- test/cortex/config | 29 +- test/cortex/sample/upload/config | 29 +- test/uploadDirectory.js | 4 +- 28 files changed, 3493 insertions(+), 2407 deletions(-) delete mode 100644 src/client/auth.js diff --git a/README.md b/README.md index bfee41a1..62e39066 100644 --- a/README.md +++ b/README.md @@ -38,11 +38,12 @@ cortex [sub-command] [options] ### Getting Started ```bash -cortex configure -Cortex URL [https://api.cortex.insights.ai]: -Account []: -Username []: -Password: ********** +cortex configure --file /personal/access/token.json --project defaultProject + +or + +cortex configure --project defaultProject +Cortex Personal Access Token: ``` Upon successful login, a config file will be saved in your home directory with your authentication token for future use. (**NOTE:** currently, you will have to re-run the configure command when your token expires). diff --git a/bin/cortex-accounts.js b/bin/cortex-accounts.js index f64c743f..1dd8d64e 100755 --- a/bin/cortex-accounts.js +++ b/bin/cortex-accounts.js @@ -41,6 +41,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--description [description]', 'Group description') .action(withCompatibilityCheck((groupName, options) => { try { @@ -58,6 +59,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((groupName, members, options) => { try { new AddMembersToGroupCommand(program).execute(groupName, members, options); @@ -74,6 +76,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((options) => { try { new ListGroupsCommand(program).execute(options); @@ -90,6 +93,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((groupName, options) => { try { new DescribeGroupCommand(program).execute(groupName, options); @@ -106,6 +110,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((groupName, options) => { try { new DeleteGroupCommand(program).execute(groupName, options); @@ -122,6 +127,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((groupName, members, options) => { try { new RemoveMembersFromGroupCommand(program).execute(groupName, members, options); @@ -138,6 +144,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--description [description]', 'Resource description') .option('--access [access]', 'Access level of resource [read/write/admin/execute]') .action(withCompatibilityCheck((resourceName, options) => { @@ -156,6 +163,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((resourceId, groupName, options) => { try { new GrantGroupAccessToResourceCommand(program).execute(resourceId, groupName, options); @@ -165,4 +173,4 @@ program } })); -program.parse(process.argv); \ No newline at end of file +program.parse(process.argv); diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 9685fb86..9e8d6311 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -44,6 +44,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { @@ -62,6 +63,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('-d, --download', 'Download code binary in response') .action(withCompatibilityCheck((actionName, options) => { @@ -80,6 +82,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') .action(withCompatibilityCheck((actionName, options) => { @@ -99,6 +102,7 @@ program .option( '--json', 'Return raw JSON response') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((actionName, options) => { try { new GetLogsCommand(program).execute(actionName, options); @@ -119,6 +123,7 @@ program .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') .option('--path [path]', 'Path to the daemon service url being invoked', '') @@ -145,6 +150,7 @@ program .option('--ttl [ttl]', 'Daemon time to live') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--actionType [actionType]', 'Type of action') .option('--port [port]', 'Docker port') //'9091' .option('--environment [environment]', 'Environment') @@ -178,6 +184,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, taskId, options) => { try { @@ -195,6 +202,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, taskId, options) => { try { @@ -212,6 +220,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, taskId, options) => { try { @@ -229,6 +238,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') .action(withCompatibilityCheck((jobId, options) => { @@ -247,6 +257,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, options) => { try { diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 8c89edfa..f95c9541 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -56,6 +56,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') .action(withCompatibilityCheck((agentDefinition, options) => { try { @@ -73,6 +74,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { @@ -91,6 +93,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--versions', 'To get list of versions of an agent') .action(withCompatibilityCheck((agentName, options) => { @@ -109,6 +112,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((agentName, serviceName, options) => { @@ -127,6 +131,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { @@ -144,6 +149,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { @@ -160,6 +166,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') @@ -179,6 +186,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((agentName, options) => { @@ -187,7 +195,7 @@ program } catch (err) { console.error(chalk.red(err.message)); - + } })); @@ -197,6 +205,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') @@ -216,6 +225,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') @@ -234,6 +244,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .action(withCompatibilityCheck((snapshotId, options) => { try { @@ -251,6 +262,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--agentName [name[:version]]', 'The name of the agent to snapshot') .option('--title [title]', 'A descriptive title for the snapshot') .action(withCompatibilityCheck((snapshotDefinition, options) => { @@ -270,6 +282,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') @@ -290,6 +303,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--environmentName [environmentName]', 'The environment to use') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--snapshotId [snapshotId]', 'The name of the agent to snapshot') .action(withCompatibilityCheck((instanceDefinition, options) => { try { @@ -307,6 +321,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .action(withCompatibilityCheck((instanceId, options) => { try { @@ -324,6 +339,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((instanceId, options) => { try { new DeleteAgentInstanceCommand(program).execute(instanceId, options); @@ -340,6 +356,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((instanceId, options) => { try { new StopAgentInstanceCommand(program).execute(instanceId, options); @@ -356,6 +373,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((options) => { try { new ListTriggersCommand(program).execute(options); @@ -372,6 +390,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((activationId, options) => { try { new ListTaskByActivation(program).execute(activationId, options); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 22ffecaa..db5a92af 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -26,21 +26,17 @@ const { } = require('../src/commands/configure'); program - .option('--url [url]', 'Cortex URL') - .option('--account [account]', 'Account') - .option('--username [username]', 'Username') - .option('--password [password]', 'Password') + .option('--file [file]', 'Personal Access Token file location') .option('--profile [profile]', 'The profile to configure') + .option('--project [project]', 'The default project to use') .description('Configure the Cortex CLI'); let cmd = undefined; program.command('auth', { isDefault: true}) .description('Authenticate to cortex (default command)') - .option('--url [url]', 'Cortex URL') - .option('--account [account]', 'Account') - .option('--username [username]', 'Username') - .option('--password [password]', 'Password') + .option('--file [file]', 'Personal Access Token file location') .option('--profile [profile]', 'The profile to configure') + .option('--project [project]', 'The default project') .action( (options) => { new ConfigureCommand(program).execute({profile: program.profile, color: program.color}); }); @@ -69,4 +65,4 @@ program new SetProfileCommand(program).execute(profileName, {color: program.color}); }); -program.parse(process.argv); \ No newline at end of file +program.parse(process.argv); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index b88726a2..996c2900 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -41,6 +41,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { @@ -59,6 +60,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') .action(withCompatibilityCheck((connDefinition, options) => { try { @@ -76,6 +78,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'The query to use, "select 1" is default') .option('--file [file]', 'Location of file containing query string') .action(withCompatibilityCheck((connName, options) => { @@ -94,6 +97,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((connectionName, options) => { try { @@ -111,6 +115,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') .action(withCompatibilityCheck((connDefinition, options) => { try { @@ -128,6 +133,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { diff --git a/bin/cortex-content.js b/bin/cortex-content.js index f4a39bbd..48ba8d64 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -38,6 +38,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { @@ -59,6 +60,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--secure', 'Uploads the content securely to the Cortex Vault. \n\t\t\t\tUse this option for keytab files or content that contains sensitive information that is required during Runtime. \n\t\t\t\tTake note of the contentKey you give to this content for future reference.') .option('--content-type [MIME type]', 'Sets the \`Content-Type\` or MIME type of the content ( default: application/octet-stream )') .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) @@ -78,6 +80,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((contentKey, options) => { try { new DeleteContent(program).execute(contentKey, options); @@ -95,6 +98,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--secure', 'Downloads the content securely from the Cortex Vault.') .action(withCompatibilityCheck((contentKey, options) => { try { diff --git a/bin/cortex-datasets.js b/bin/cortex-datasets.js index ec45bf15..7e55e0f6 100644 --- a/bin/cortex-datasets.js +++ b/bin/cortex-datasets.js @@ -40,6 +40,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using detailed JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { @@ -58,6 +59,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for dataset file definition format') .action(withCompatibilityCheck((datasetDef, options) => { try { @@ -75,6 +77,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((datasetName, options) => { try { @@ -92,6 +95,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((datasetName, options) => { try { new GetDataframeCommand(program).execute(datasetName, options); @@ -108,6 +112,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((datasetName, options) => { try { new StreamDatasetCommand(program).execute(datasetName, options); @@ -122,6 +127,7 @@ program .description('Generates the structure and top level build script for a dataset') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use', 'default') + .option('--project [project]', 'The project to use') .action((options) => { // deliberately not using withCompatibilityCheck() try { new GenerateDatasetCommand(program).execute(options); diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index d9bc8505..710747ce 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -34,6 +34,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for snapshot export format') .option('-f, --force', 'Force delete existing exported files') .action(withCompatibilityCheck((skillDefinition, options) => { diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 9fc67de4..93a08e34 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -34,6 +34,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((options) => { try { new DockerLoginCommand(program).execute(options); @@ -43,4 +44,4 @@ program } })); -program.parse(process.argv); \ No newline at end of file +program.parse(process.argv); diff --git a/bin/cortex-environments.js b/bin/cortex-environments.js index ae9f69ec..824c6412 100755 --- a/bin/cortex-environments.js +++ b/bin/cortex-environments.js @@ -39,6 +39,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { @@ -57,6 +58,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for environment definition format') .action(withCompatibilityCheck((envDefinition, options) => { try { @@ -74,6 +76,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for environment definition format') .option('--snapshotId [snapshotId]', 'SnapshotID to promote') .option('--environmentName [environmentName]', 'Environment to promote snapshotId to') @@ -93,6 +96,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((environmentName, options) => { try { @@ -112,6 +116,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((environmentName, options) => { diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 1c8c9168..e70dca78 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -39,6 +39,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') @@ -61,6 +62,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((experimentName, options) => { try { @@ -78,6 +80,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DeleteExperimentCommand(program).execute(experimentName, options); @@ -94,6 +97,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') @@ -116,6 +120,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((experimentName, runId, options) => { try { @@ -133,6 +138,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DeleteRunCommand(program).execute(experimentName, runId, options); @@ -149,6 +155,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { try { new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); diff --git a/bin/cortex-graph.js b/bin/cortex-graph.js index 7b9fe947..055cda3e 100755 --- a/bin/cortex-graph.js +++ b/bin/cortex-graph.js @@ -37,6 +37,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use as the event query.') @@ -59,6 +60,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--tracking', 'Enable tracking event mode.') .option('--transform [templates]', 'Apply transform templates to the input JSON records.') .option('--dry-run', "Simulate the publish (but don't actually send events to the server).") @@ -75,6 +77,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck(async (entityId, options) => { try { new GetEntityCommand(program).execute(entityId, options); @@ -91,6 +94,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .action(withCompatibilityCheck(async (query, options) => { try { diff --git a/bin/cortex-jobs.js b/bin/cortex-jobs.js index 5a9d59f9..55b045c2 100755 --- a/bin/cortex-jobs.js +++ b/bin/cortex-jobs.js @@ -38,6 +38,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { @@ -56,6 +57,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .action(withCompatibilityCheck((jobDefinition, options) => { try { @@ -73,6 +75,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .action(withCompatibilityCheck((jobDefinition, options) => { try { @@ -91,6 +94,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for job definition format') .option('--push-docker', 'Push Docker image to the Cortex registry.') .action(withCompatibilityCheck((jobDefinition, options) => { diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js index af79735e..0efc42ba 100755 --- a/bin/cortex-profiles.js +++ b/bin/cortex-profiles.js @@ -42,6 +42,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The configuration profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for profile schema format') .action(withCompatibilityCheck((profileSchema, options) => { try { @@ -59,6 +60,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use as the event query.') @@ -81,6 +83,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((schemaName, options) => { try { @@ -98,6 +101,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((schemaName, options) => { try { new DeleteProfileSchemaCommand(program).execute(schemaName, options); @@ -114,6 +118,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use as the event query.') @@ -136,6 +141,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--before [before]', 'Filter versions before a sepcific date.') @@ -161,6 +167,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((profileId, schemaName, options) => { try { @@ -178,6 +185,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((profileId, schemaName, options) => { try { new DeleteProfileCommand(program).execute(profileId, schemaName, options); @@ -194,6 +202,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--filter [filter]', 'A Mongo style filter to use as the event query.') .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') .option('--limit [limit]', 'Limit the number of events returned.') diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index efbcd898..00869cac 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -37,6 +37,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for skill definition format') .action(withCompatibilityCheck((skillDefinition, options) => { try { @@ -54,6 +55,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((options) => { @@ -72,6 +74,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((skillName, options) => { try { diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 979b24e5..64b71aa2 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -38,6 +38,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, options) => { @@ -56,6 +57,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, taskId, options) => { @@ -74,6 +76,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('-m, --message ', 'Cancellation message') .action(withCompatibilityCheck((jobId, taskId, options) => { @@ -92,6 +95,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, taskId, options) => { diff --git a/bin/cortex-types.js b/bin/cortex-types.js index a4026824..6496d1d1 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -28,7 +28,7 @@ const { } = require('../src/commands/types'); program.description('Work with Cortex Types'); - + // Save Type program .command('save ') @@ -36,6 +36,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for type definition format') .action(withCompatibilityCheck((typeDefinition, options) => { try { @@ -53,6 +54,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((options) => { @@ -71,6 +73,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((typeName, options) => { try { diff --git a/bin/cortex-variables.js b/bin/cortex-variables.js index edb0e44d..2a997a00 100755 --- a/bin/cortex-variables.js +++ b/bin/cortex-variables.js @@ -37,6 +37,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((options) => { try { new ListVariablesCommand(program).execute(options); @@ -54,6 +55,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((keyName, options) => { try { new ReadVariableCommand(program).execute(keyName, options); @@ -72,6 +74,7 @@ program .option('--data [data]', 'JSON value to save') .option('--data-file [dataFile]', 'A file containing either JSON or YAML formatted value to save') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((keyName, value, options) => { try { new WriteVariableCommand(program).execute(keyName, value, options); @@ -81,4 +84,4 @@ program } })); -program.parse(process.argv); \ No newline at end of file +program.parse(process.argv); diff --git a/package-lock.json b/package-lock.json index e006ba36..394b95eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,31 +1,36 @@ { "name": "cortex-cli", - "version": "1.1.1", + "version": "2.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.10.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.4" } }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=" + }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.10.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", "requires": { + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" }, "dependencies": { "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -34,8 +39,8 @@ }, "js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=" } } }, @@ -48,30 +53,793 @@ "debug": "^4.1.1", "superagent": "^5.2.2", "yeoman-generator": "^4.5.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", + "optional": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", + "optional": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "optional": true + }, + "array-differ": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha1-PLs9DzFoEOr8xHYkc0I31q7krms=" + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha1-yWVekzHgq81YjSp8rX6ZVvZnAfo=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "optional": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "optional": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", + "optional": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "optional": true + }, + "debug": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.2.0.tgz", + "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", + "requires": { + "ms": "2.1.2" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-4.0.2.tgz", + "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=" + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", + "requires": { + "path-type": "^3.0.0" + } + }, + "ejs": { + "version": "3.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha1-rtcjhE3CCstLFwzZqxAX5Hag2Ts=", + "requires": { + "jake": "^10.6.1" + } + }, + "execa": { + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-4.0.3.tgz", + "integrity": "sha1-CjTau61tZhAL1vLFdshmlAPzF/I=", + "optional": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "optional": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "optional": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "optional": true + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", + "optional": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "optional": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "gh-got": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-5.0.0.tgz", + "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=", + "requires": { + "got": "^6.2.0", + "is-plain-obj": "^1.1.0" + } + }, + "github-username": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-username/-/github-username-3.0.0.tgz", + "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=", + "requires": { + "gh-got": "^5.0.0" + } + }, + "globby": { + "version": "9.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-9.2.0.tgz", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "grouped-queue": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grouped-queue/-/grouped-queue-1.1.0.tgz", + "integrity": "sha1-Y+P5ypCvlSJp0dQIeeQSIerMdMs=", + "optional": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "optional": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=" + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "optional": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=", + "optional": true + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", + "optional": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "optional": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "optional": true + }, + "isbinaryfile": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha1-7ctisiTitHEIMLZ0mMjk5aTSYQs=" + }, + "joi": { + "version": "13.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.7.0.tgz", + "integrity": "sha1-z9hev+Z+ihkAQyQAtNA7vZP7h58=" + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" + } + } + }, + "mem-fs-editor": { + "version": "7.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs-editor/-/mem-fs-editor-7.0.1.tgz", + "integrity": "sha1-4Hl4Ard5es9D7zxRHz061ep2V4M=", + "requires": { + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^3.0.1", + "glob": "^7.1.4", + "globby": "^9.2.0", + "isbinaryfile": "^4.0.0", + "mkdirp": "^1.0.0", + "multimatch": "^4.0.0", + "rimraf": "^3.0.0", + "through2": "^3.0.1", + "vinyl": "^2.2.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "optional": true + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + }, + "multimatch": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha1-jDwPbj6ESa2grz3SnvtJGjdRkbM=", + "requires": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "array-union": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=" + } + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", + "optional": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "optional": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "optional": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha1-+WCIzfJKj6qa6poAny2dlCyZlkY=", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + } + }, + "read-pkg-up": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-5.0.0.tgz", + "integrity": "sha1-tqZ0HLFE7TYQVU9AFiqgem22Ibg=", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^5.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "optional": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha1-jKhGNcTaqQDA05Z6buesYCce5VI=", + "optional": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.2.tgz", + "integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg=" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "optional": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "optional": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-2.0.0.tgz", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "optional": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "optional": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yeoman-environment": { + "version": "2.10.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.10.3.tgz", + "integrity": "sha1-nY9Ct3MXQUQ0zA5R+wBqS91UaI4=", + "optional": true, + "requires": { + "chalk": "^2.4.1", + "debug": "^3.1.0", + "diff": "^3.5.0", + "escape-string-regexp": "^1.0.2", + "execa": "^4.0.0", + "globby": "^8.0.1", + "grouped-queue": "^1.1.0", + "inquirer": "^7.1.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.2.0", + "mem-fs": "^1.1.0", + "mem-fs-editor": "^6.0.0", + "npm-api": "^1.0.0", + "semver": "^7.1.3", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.3", + "yeoman-generator": "^4.8.2" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "optional": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", + "optional": true + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", + "optional": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", + "optional": true + }, + "globby": { + "version": "8.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-8.0.2.tgz", + "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", + "optional": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "optional": true + }, + "mem-fs-editor": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz", + "integrity": "sha1-1jYHzwpS/mlj/DdsanqlLbPtq6s=", + "optional": true, + "requires": { + "commondir": "^1.0.1", + "deep-extend": "^0.6.0", + "ejs": "^2.6.1", + "glob": "^7.1.4", + "globby": "^9.2.0", + "isbinaryfile": "^4.0.0", + "mkdirp": "^0.5.0", + "multimatch": "^4.0.0", + "rimraf": "^2.6.3", + "through2": "^3.0.1", + "vinyl": "^2.2.0" + }, + "dependencies": { + "dir-glob": { + "version": "2.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", + "optional": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "globby": { + "version": "9.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-9.2.0.tgz", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", + "optional": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "optional": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-2.0.0.tgz", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", + "optional": true + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "optional": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "optional": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "optional": true + } + } + }, + "yeoman-generator": { + "version": "4.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-generator/-/yeoman-generator-4.12.0.tgz", + "integrity": "sha1-US54OjiwBMSSZecYJqCf9/GTn0s=", + "requires": { + "async": "^2.6.2", + "chalk": "^2.4.2", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^6.1.0", + "dateformat": "^3.0.3", + "debug": "^4.1.1", + "diff": "^4.0.1", + "error": "^7.0.2", + "find-up": "^3.0.0", + "github-username": "^3.0.0", + "grouped-queue": "^1.1.0", + "istextorbinary": "^2.5.1", + "lodash": "^4.17.11", + "make-dir": "^3.0.0", + "mem-fs-editor": "^7.0.1", + "minimist": "^1.2.5", + "pretty-bytes": "^5.2.0", + "read-chunk": "^3.2.0", + "read-pkg-up": "^5.0.0", + "rimraf": "^2.6.3", + "run-async": "^2.0.0", + "semver": "^7.2.1", + "shelljs": "^0.8.3", + "text-table": "^0.2.0", + "through2": "^3.0.1", + "yeoman-environment": "^2.9.5" + } + } } }, "@hapi/address": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.1.tgz", - "integrity": "sha512-0oEP5UiyV4f3d6cBL8F3Z5S7iWSX39Knnl0lY8i+6gfmmIBj44JCBNtcMgwyS+5v7j3VYavNay0NFHDS+UGQcw==", + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha1-1gxcDZMOd0Vv3N4lmOdzAuKVXh0=", "requires": { "@hapi/hoek": "^9.0.0" } }, "@hapi/formula": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha1-7a3gYZ7VjI5PFk8jPNpwIR54cSg=" }, "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" + "version": "9.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha1-bJ6vx4wVKSSPj02SsHmacStgUsY=" }, "@hapi/joi": { "version": "17.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha1-nMjX4sIhPR5GcIxiYBhLRHxmE1A=", "requires": { "@hapi/address": "^4.0.1", "@hapi/formula": "^2.0.0", @@ -82,21 +850,21 @@ }, "@hapi/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha1-gFtA1NvsBPwRanMIlJTgDwc96N8=" }, "@hapi/topo": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha1-wZr4V3+jk6BunHe2CZWvlZvnIec=", "requires": { "@hapi/hoek": "^9.0.0" } }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", "requires": { "call-me-maybe": "^1.0.1", "glob-to-regexp": "^0.3.0" @@ -104,78 +872,97 @@ }, "@nodelib/fs.stat": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=" }, "@npmcli/ci-detect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.2.0.tgz", - "integrity": "sha512-JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA==" + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", + "integrity": "sha1-bB0sYl+27xud6oWtClr8vvhe8io=" }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha1-3hAwcNrA9IzknPZpPCOvWcD3BGQ=", + "requires": { + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" + } + } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + "@panva/asn1.js": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha1-3VWue4Ep4CBJ8AlAi5fGHM+QMvY=" }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=" }, "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "version": "7.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", "requires": { - "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } }, "@types/minimatch": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=" }, "@types/node": { - "version": "13.7.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.6.tgz", - "integrity": "sha512-eyK7MWD0R1HqVTp+PtwRgFeIsemzuj4gBFSQxfPHY5iMjS7474e5wq+VFgTcdpyHeNxyKSaetYAjdMLJlKoWqA==" + "version": "8.10.48", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-8.10.48.tgz", + "integrity": "sha1-44UHNWFkOpumGZoZhf/ANTD5B4E=" }, "@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==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", + "optional": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } }, "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "version": "7.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "dev": true }, "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=", "dev": true }, "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", "requires": { "es6-promisify": "^5.0.0" } }, "agentkeepalive": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.2.tgz", - "integrity": "sha512-waNHE7tQBBn+2qXucI8HY0o2Y0OBPWldWOWsZwY71JcCm4SvrPnWdceFfB5NIXSqE8Ewq6VR/Qt5b1i69P6KCQ==", + "version": "4.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.1.3.tgz", + "integrity": "sha1-NgoJ10Oh9P3nSfm6B8qmV10IJZo=", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -183,86 +970,53 @@ } }, "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "version": "6.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=", "requires": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "ansi-colors": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=", "dev": true }, "ansi-escapes": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=" }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "requires": { "color-convert": "^1.9.0" } }, "anymatch": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -271,35 +1025,30 @@ }, "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "requires": { "sprintf-js": "~1.0.2" } }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==" - }, "array-union": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { "array-uniq": "^1.0.1" @@ -307,100 +1056,118 @@ }, "array-uniq": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha1-DegrQmsDGNv9uUAInjiwQ9N/bHs=", "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" } }, "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asn1": { "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", "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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "ast-types": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", - "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" + "version": "0.12.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-types/-/ast-types-0.12.4.tgz", + "integrity": "sha1-cc5jg4APJO/JoaMwjzpuQgoJdNE=" }, "astral-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=", "dev": true }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-2.6.2.tgz", + "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=", "requires": { - "lodash": "^4.17.14" + "lodash": "^4.17.11" } }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" }, "aws-sign2": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" + "version": "1.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=" + }, + "axios": { + "version": "0.18.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/axios/-/axios-0.18.1.tgz", + "integrity": "sha1-/z8N4ue10YDnV62YAA8Qgbh7zqM=", + "optional": true, + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=", + "optional": true + } + } }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -413,7 +1180,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -421,24 +1188,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -449,27 +1216,27 @@ }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { "tweetnacl": "^0.14.3" } }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", "dev": true }, "binaryextensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.2.0.tgz", - "integrity": "sha512-bHhs98rj/7i/RZpCSJ3uk55pLXOItjIrh2sRQZSM6OoktScX+LxJzvlU+FELp9j3TdcddTmmYArLSGptCTwjuw==" + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-2.1.2.tgz", + "integrity": "sha1-yDw9dCM7p2dOTzE8sqK3D1TpS3w=" }, "boxen": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha1-5BG2I1fW1tNlh8isPV2XTaoHDmQ=", "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", @@ -481,50 +1248,113 @@ "widest-line": "^3.1.0" }, "dependencies": { + "ansi-align": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^4.1.0" } }, + "term-size": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha1-Hxat7f6b3BiADhd2ghc0CG/MZ1M=" + }, "type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=" + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", + "requires": { + "string-width": "^4.0.0" + } } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -532,8 +1362,8 @@ }, "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -549,7 +1379,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -557,51 +1387,43 @@ } } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", "dev": true }, "buffer-equal-constant-time": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, "builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "bytes": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" }, "cacache": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz", - "integrity": "sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==", + "version": "15.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha1-aRYoM9opFw1nMjNGQ8YOAF9fF9A=", "requires": { + "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "glob": "^7.1.4", "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", + "lru-cache": "^6.0.0", "minipass": "^3.1.1", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", "mkdirp": "^1.0.3", - "move-file": "^2.0.0", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", @@ -610,25 +1432,38 @@ "unique-filename": "^1.1.1" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "requires": { + "yallist": "^4.0.0" + } + }, "mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" }, "rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", "requires": { "glob": "^7.1.3" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" } } }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -643,34 +1478,29 @@ }, "call-me-maybe": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, "callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", "dev": true }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, "capture-stack-trace": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha1-psC74fOPOqC5Ijjstv9Cw0TUE10=" }, "caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chai": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.2.0.tgz", + "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -683,8 +1513,8 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", "dev": true, "requires": { "check-error": "^1.0.2" @@ -692,44 +1522,43 @@ }, "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "dependencies": { "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "requires": { "has-flag": "^4.0.0" } @@ -738,19 +1567,20 @@ }, "chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "dev": true }, "check-error": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "chokidar": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha1-EsBxRmjFWAD2WeJi1JYql/r1VKY=", "dev": true, "requires": { "anymatch": "~3.1.1", @@ -765,8 +1595,8 @@ "dependencies": { "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", "dev": true, "requires": { "fill-range": "^7.0.1" @@ -774,8 +1604,8 @@ }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -783,8 +1613,8 @@ }, "glob-parent": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -792,14 +1622,14 @@ }, "is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", "dev": true }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", "dev": true, "requires": { "is-number": "^7.0.0" @@ -809,13 +1639,13 @@ }, "chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -825,7 +1655,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -835,17 +1665,12 @@ }, "clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" }, "cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { "restore-cursor": "^2.0.0" @@ -853,7 +1678,7 @@ }, "cli-table": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", "requires": { "colors": "1.0.3" @@ -861,73 +1686,39 @@ }, "cli-width": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-2.2.0.tgz", "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "clone-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", + "optional": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, "clone-stats": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-1.0.0.tgz", "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" }, "cloneable-readable": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha1-EgoAywU7+2OiIucJ+Wg+ouEdjOw=", "requires": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", @@ -936,12 +1727,12 @@ }, "co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "co-prompt": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { "keypress": "~0.2.1" @@ -949,7 +1740,7 @@ }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "^1.0.0", @@ -958,68 +1749,68 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=", "requires": { "delayed-stream": "~1.0.0" } }, "commander": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.0.0.tgz", - "integrity": "sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-5.0.0.tgz", + "integrity": "sha1-2/GQm0nlBE+P2vCtyAnwwHIr39A=" }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "cookiejar": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha1-3YojVTB1L5iPmghE8/xYnjERElw=" }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "create-error-class": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "requires": { "capture-stack-trace": "^1.0.0" @@ -1027,8 +1818,8 @@ }, "cross-spawn": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -1039,82 +1830,66 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" } } }, - "csv": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz", - "integrity": "sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==", - "requires": { - "csv-generate": "^3.2.4", - "csv-parse": "^4.8.8", - "csv-stringify": "^5.3.6", - "stream-transform": "^2.0.1" - } - }, - "csv-generate": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.4.tgz", - "integrity": "sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA==" - }, - "csv-parse": { - "version": "4.8.8", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.8.tgz", - "integrity": "sha512-Kv3Ilz2GV58dOoHBXRCTF8ijxlLjl80bG3d67XPI6DNqffb3AnbPbKr/WvCUMJq5V0AZYi6sukOaOQAVpfuVbg==" - }, - "csv-stringify": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.6.tgz", - "integrity": "sha512-kPcRbMvo5NLLD71TAqW5K+g9kbM2HpIZJLAzm73Du8U+5TXmDp9YtXKCBLyxEh0q3Jbg8QhNFBz3b5VJzjZ/jw==" - }, "dargs": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz", - "integrity": "sha512-5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dargs/-/dargs-6.1.0.tgz", + "integrity": "sha1-HzubVjk+z4yqfL/WwxSW/8+5snI=" }, "dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "^1.0.0" } }, "data-uri-to-buffer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", - "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/data-uri-to-buffer/-/data-uri-to-buffer-2.0.1.tgz", + "integrity": "sha1-yo9W/jix/TKUc+nRtKmvzYzhwEU=", + "requires": { + "@types/node": "^8.0.7" + } }, "dateformat": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha1-puN0maTZqc+F71hyBE1ikByYia4=" }, "debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } } }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "deep-eql": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -1122,17 +1897,17 @@ }, "deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=" }, "deep-is": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "defaults": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -1140,23 +1915,23 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" } } }, "define-properties": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", "requires": { "object-keys": "^1.0.12" } }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -1164,24 +1939,24 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1209,7 +1984,7 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { @@ -1218,40 +1993,52 @@ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "version": "3.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" }, "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", "requires": { + "arrify": "^1.0.1", "path-type": "^3.0.0" } }, "doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", "dev": true, "requires": { "esutils": "^2.0.2" } }, + "download-stats": { + "version": "0.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/download-stats/-/download-stats-0.3.4.tgz", + "integrity": "sha1-Z+oMMvFKzZ9jnacE7vUJaEui2uc=", + "optional": true, + "requires": { + "JSONStream": "^1.2.1", + "lazy-cache": "^2.0.1", + "moment": "^2.15.1" + } + }, "duplexer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, "duplexer3": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { "jsbn": "~0.1.0", @@ -1260,103 +2047,113 @@ }, "ecdsa-sig-formatter": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha1-rg8PothQRe8UqBfao86azQSJ5b8=", "requires": { "safe-buffer": "^5.0.1" } }, "editions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.0.tgz", - "integrity": "sha512-jeXYwHPKbitU1l14dWlsl5Nm+b1Hsm7VX73BsrQ4RVwEcAQQIPFHTZAbVtuIGxZBrpdT2FXd8lbtrNBrzZxIsA==", + "version": "2.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/editions/-/editions-2.1.3.tgz", + "integrity": "sha1-cnzPPsLHsS3MZSxxAA8WxIJNb30=", "requires": { - "errlop": "^2.0.0", - "semver": "^6.3.0" + "errlop": "^1.1.1", + "semver": "^5.6.0" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "5.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" } } }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" - }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" }, "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "version": "0.1.13", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", "optional": true, "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha1-zhPRh1sMOmdL1qBLf3awGxtt7QE=", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", "requires": { "once": "^1.4.0" } }, "err-code": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-1.1.2.tgz", "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" }, "errlop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.0.0.tgz", - "integrity": "sha512-z00WIrQhtOMUnjdTG0O4f6hMG64EVccVDBy2WwgjcF8S4UB1exGYuc2OFwmdQmsJwLQVEIHWHPCz/omXXgAZHw==" + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/errlop/-/errlop-1.1.1.tgz", + "integrity": "sha1-2a5MdsPmSVbF155uA11jQ7/WIlA=", + "requires": { + "editions": "^2.1.2" + } }, "error": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", - "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", + "version": "7.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", "requires": { - "string-template": "~0.2.1" + "string-template": "~0.2.1", + "xtend": "~4.0.0" } }, "error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", "requires": { "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "version": "1.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -1364,13 +2161,13 @@ } }, "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "version": "4.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha1-toXt2CWIhjZepitX0w3ij63Nl08=" }, "es6-promisify": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { "es6-promise": "^4.0.3" @@ -1378,13 +2175,13 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "version": "1.11.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-1.11.1.tgz", + "integrity": "sha1-xIX/jWtM24nif0qFbpHxGEAcpRA=", "requires": { "esprima": "^3.1.3", "estraverse": "^4.2.0", @@ -1400,16 +2197,16 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "optional": true } } }, "eslint": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -1451,25 +2248,16 @@ "v8-compile-cache": "^2.0.3" }, "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==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -1477,158 +2265,25 @@ "supports-color": "^5.3.0" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "glob-parent": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", "dev": true, "requires": { "is-glob": "^4.0.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "ignore": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", "dev": true }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, "optionator": { "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", "dev": true, "requires": { "deep-is": "~0.1.3", @@ -1639,113 +2294,58 @@ "word-wrap": "~1.2.3" } }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } } }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true - }, - "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": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", "dev": true } } }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "eslint-utils": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", "dev": true }, "espree": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-6.2.1.tgz", + "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", "dev": true, "requires": { "acorn": "^7.1.1", @@ -1755,49 +2355,57 @@ }, "esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" }, "esquery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", - "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc=", "dev": true, "requires": { - "estraverse": "^5.0.0" + "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", - "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", "dev": true } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true + } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" }, "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "event-stream": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", "requires": { "duplexer": "^0.1.1", "from": "^0.1.7", @@ -1806,11 +2414,27 @@ "split": "^1.0.1", "stream-combiner": "^0.2.2", "through": "^2.3.8" + }, + "dependencies": { + "map-stream": { + "version": "0.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "requires": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + } } }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "^2.3.3", @@ -1824,15 +2448,15 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -1840,27 +2464,22 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "^1.0.0", @@ -1869,8 +2488,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "requires": { "is-plain-object": "^2.0.4" } @@ -1879,8 +2498,9 @@ }, "external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", + "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -1889,8 +2509,8 @@ }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -1904,7 +2524,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -1912,7 +2532,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -1920,24 +2540,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1948,18 +2568,18 @@ }, "extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "version": "2.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-2.2.6.tgz", + "integrity": "sha1-pdW2l+yN7aRo2Fp0A1KQoCWpUpU=", "requires": { "@mrmlnc/readdir-enhanced": "^2.2.1", "@nodelib/fs.stat": "^1.1.2", @@ -1971,22 +2591,22 @@ }, "fast-json-stable-stringify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fast-safe-stringify": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha1-EkqohYmSYfaK7bQqfAgN6dpgh0M=" }, "figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { "escape-string-regexp": "^1.0.5" @@ -1994,8 +2614,8 @@ }, "file-entry-cache": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", "dev": true, "requires": { "flat-cache": "^2.0.1" @@ -2003,12 +2623,20 @@ }, "file-uri-to-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=" + }, + "filelist": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/filelist/-/filelist-1.0.1.tgz", + "integrity": "sha1-8Q0aOuhsFpSAjo8gkG9D1MkTLbs=", + "requires": { + "minimatch": "^3.0.4" + } }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "^2.0.1", @@ -2019,7 +2647,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -2029,29 +2657,29 @@ }, "find-package-json": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", "requires": { "locate-path": "^3.0.0" } }, "first-chunk-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", "requires": { "readable-stream": "^2.0.2" } }, "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-4.1.1.tgz", + "integrity": "sha1-o5IFnMOCiB/5hkL12k3eCpWfMJs=", "dev": true, "requires": { "is-buffer": "~2.0.3" @@ -2059,68 +2687,77 @@ "dependencies": { "is-buffer": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=", "dev": true } } }, "flat-cache": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", "dev": true, "requires": { "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", + "dev": true + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=", + "optional": true, + "requires": { + "debug": "=3.1.0" }, "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, + "debug": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "optional": true, "requires": { - "glob": "^7.1.3" + "ms": "2.0.0" } } } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "version": "2.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, "formidable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", - "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha1-cPt8oCkO5v+WEJBBX0s989IIJlk=" }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "^0.2.2" @@ -2128,26 +2765,26 @@ }, "from": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", "requires": { "minipass": "^3.0.0" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "version": "2.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", "dev": true, "optional": true }, @@ -2185,93 +2822,81 @@ }, "function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, "get-func-name": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-uri": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", - "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-uri/-/get-uri-2.0.3.tgz", + "integrity": "sha1-+hM1Iml4HXUWLG/IE8npBTI/urU=", "requires": { - "data-uri-to-buffer": "1", - "debug": "2", + "data-uri-to-buffer": "2", + "debug": "4", "extend": "~3.0.2", "file-uri-to-path": "1", "ftp": "~0.3.10", - "readable-stream": "2" + "readable-stream": "3" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "readable-stream": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.3.0.tgz", + "integrity": "sha1-y4ARqtAC63F78EApH+uoVpyYb7k=", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } } } }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "^1.0.0" } }, - "gh-got": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz", - "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=", - "requires": { - "got": "^6.2.0", - "is-plain-obj": "^1.1.0" - } - }, - "github-username": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz", - "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=", - "requires": { - "gh-got": "^5.0.0" - } - }, "glob": { "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2283,7 +2908,7 @@ }, "glob-parent": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { "is-glob": "^3.1.0", @@ -2292,7 +2917,7 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { "is-extglob": "^2.1.0" @@ -2302,21 +2927,13 @@ }, "glob-to-regexp": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, - "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "requires": { - "ini": "^1.3.5" - } - }, "globals": { "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-12.4.0.tgz", + "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", "dev": true, "requires": { "type-fest": "^0.8.1" @@ -2324,85 +2941,51 @@ "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", "dev": true } } }, "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - } - } - }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "version": "8.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-8.0.2.tgz", + "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + "version": "4.1.15", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=" }, "grapheme-splitter": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, - "grouped-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-1.0.0.tgz", - "integrity": "sha512-XslfWrAGCYovQjveHODR0hllUrsn3UtvPFTkamHbgVHmkUA6eCIDmw3JDWVLJvuntTvYjwaPGamlyzK4/HAEOA==", - "requires": { - "lodash": "^4.17.15" - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha1-nPOmZcYkdHmJaDSvNc8du0QAdn4=" }, "growl": { "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", "dev": true }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -2410,25 +2993,25 @@ }, "has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", "requires": { "function-bind": "^1.1.1" } }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=" }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "^2.0.6", @@ -2438,7 +3021,7 @@ }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "^3.0.0", @@ -2447,7 +3030,7 @@ "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "^1.1.5" @@ -2457,27 +3040,27 @@ }, "he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", "dev": true }, "hosted-git-info": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.7.tgz", - "integrity": "sha512-ChkjQtKJ3GI6SsI4O5jwr8q8EPrWCnxuc4Tbx+vRI5x6mDOpjKKltNo1lRlszw3xwgTOSns1ZRBiMmmwpcvLxg==" + "version": "2.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=" }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" }, "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "version": "1.7.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", "requires": { "depd": "~1.1.2", - "inherits": "2.0.4", + "inherits": "2.0.3", "setprototypeof": "1.1.1", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" @@ -2485,8 +3068,8 @@ }, "http-proxy-agent": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", "requires": { "agent-base": "4", "debug": "3.1.0" @@ -2494,22 +3077,17 @@ "dependencies": { "debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "^1.0.0", @@ -2518,27 +3096,46 @@ } }, "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==", + "version": "2.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha1-TuenN6vZJniik9mzShr00NCMeHs=", "requires": { - "agent-base": "6", - "debug": "4" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "dependencies": { "agent-base": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", - "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", "requires": { - "debug": "4" + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" } } }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "optional": true + }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "^2.0.0" @@ -2546,21 +3143,21 @@ }, "iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=" }, "import-fresh": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY=", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2569,22 +3166,22 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" }, "infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -2592,73 +3189,223 @@ } }, "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.5.tgz", + "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" }, "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "version": "7.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", + "dev": true + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha1-jKhGNcTaqQDA05Z6buesYCce5VI=", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", + "dev": true } } }, "interpret": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=" }, "ip": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "^3.0.2" @@ -2666,7 +3413,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2676,13 +3423,13 @@ }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "dev": true, "requires": { "binary-extensions": "^2.0.0" @@ -2690,17 +3437,17 @@ }, "is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + "version": "1.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=" }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "^3.0.2" @@ -2708,7 +3455,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2718,13 +3465,13 @@ }, "is-date-object": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=" }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -2733,51 +3480,71 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" } } }, "is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", - "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.3.1.tgz", + "integrity": "sha1-Z5r++Bk0enJYRhf9GUl/AQuO018=", "requires": { "global-dirs": "^2.0.1", "is-path-inside": "^3.0.1" + }, + "dependencies": { + "global-dirs": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha1-rN87tmhbzVXLNeigUiZlaelGkgE=", + "requires": { + "ini": "^1.3.5" + } + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha1-9SIPyCo+IzdXKR3dycWHfyofMBc=" + } } }, "is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" + }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" @@ -2785,7 +3552,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -2793,50 +3560,45 @@ } } }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" - }, "is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "requires": { "isobject": "^3.0.1" } }, "is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-redirect": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-redirect/-/is-redirect-1.0.0.tgz", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=", "requires": { - "has": "^1.0.3" + "has-symbols": "^1.0.1" } }, "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-scoped": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-scoped/-/is-scoped-1.0.0.tgz", "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", "requires": { "scoped-regex": "^1.0.0" @@ -2844,76 +3606,107 @@ }, "is-stream": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-symbol": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", "requires": { "has-symbols": "^1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isbinaryfile": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.4.tgz", - "integrity": "sha512-pEutbN134CzcjlLS1myKX/uxNjwU5eBVSprvkpv3+3dqhBHUZLIWJQowC40w5c0Zf19vBY8mrZl88y5J4RAPbQ==" - }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istextorbinary": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", - "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", + "version": "2.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-2.5.1.tgz", + "integrity": "sha1-FKM4JM9rnV13Q+rBvivSwxDQzL0=", "requires": { "binaryextensions": "^2.1.2", - "editions": "^2.2.0", - "textextensions": "^2.5.0" + "editions": "^2.1.3", + "textextensions": "^2.4.0" + } + }, + "jake": { + "version": "10.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jake/-/jake-10.8.2.tgz", + "integrity": "sha1-68nehVgWCmbYLQ6txqLlj7xQCns=", + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "jmespath": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, + "jose": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose/-/jose-2.0.2.tgz", + "integrity": "sha1-+yI4W4DGWMx6DK4FtwhsBMa+SfQ=", + "requires": { + "@panva/asn1.js": "^1.0.0" + } + }, "js-yaml": { "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2921,44 +3714,44 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=" }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "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==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, "jsonpath": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", - "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonpath/-/jsonpath-1.0.2.tgz", + "integrity": "sha1-5qrmgdA+mne0ZR1dlurF/GOx/RM=", "requires": { "esprima": "1.2.2", "static-eval": "2.0.2", @@ -2974,8 +3767,8 @@ }, "jsonwebtoken": { "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha1-AOceC431TCEhofJhN98igGc7zA0=", "requires": { "jws": "^3.2.2", "lodash.includes": "^4.3.0", @@ -2989,16 +3782,21 @@ "semver": "^5.6.0" }, "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" } } }, "jsprim": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", @@ -3009,8 +3807,8 @@ }, "jwa": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha1-dDwymFy56YZVUw1TZBtmyGRbA5o=", "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", @@ -3019,8 +3817,8 @@ }, "jws": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jws/-/jws-3.2.2.tgz", + "integrity": "sha1-ABCZ82OUaMlBQADpmZX6UvtHgwQ=", "requires": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" @@ -3028,22 +3826,31 @@ }, "keypress": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keypress/-/keypress-0.2.1.tgz", "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" }, "kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" }, "kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=" + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "optional": true, + "requires": { + "set-getter": "^0.1.0" + } }, "levn": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { "prelude-ls": "~1.1.2", @@ -3052,70 +3859,70 @@ }, "lines-and-columns": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.20", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=" }, "lodash.includes": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.includes/-/lodash.includes-4.3.0.tgz", "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" }, "lodash.isboolean": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" }, "lodash.isinteger": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" }, "lodash.isnumber": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" }, "lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, "lodash.isstring": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, "lodash.once": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, "log-symbols": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", "requires": { "chalk": "^2.0.1" }, "dependencies": { "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3126,41 +3933,27 @@ }, "lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "4.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", "requires": { - "yallist": "^3.0.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "macos-release": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", - "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==" - }, - "make-dir": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", - "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/macos-release/-/macos-release-2.3.0.tgz", + "integrity": "sha1-6xkwsDbAgArevM1fF7xMEt6Ltx8=" }, "make-fetch-happen": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.7.tgz", - "integrity": "sha512-rkDA4c1nMXVqLkfOaM5RK2dxkUndjLOCrPycTDZgbkFDzhmaCO3P1dmCW//yt1I/G1EcedJqMsSjWkV79Hh4hQ==", + "version": "8.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", + "integrity": "sha1-83xdk9FCkEiMpqKukXo4C9fSTxY=", "requires": { "agentkeepalive": "^4.1.0", "cacache": "^15.0.0", @@ -3168,10 +3961,10 @@ "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^5.1.1", + "lru-cache": "^6.0.0", "minipass": "^3.1.3", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.1.2", + "minipass-fetch": "^1.3.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", "promise-retry": "^1.1.1", @@ -3180,49 +3973,58 @@ }, "dependencies": { "agent-base": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", - "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.1.tgz", + "integrity": "sha1-gIAH5OWGfeywq2qy+Sj721pZbbQ=", "requires": { "debug": "4" } }, "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", "requires": { "@tootallnate/once": "1", "agent-base": "6", "debug": "4" } }, - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", "requires": { "yallist": "^4.0.0" } }, "smart-buffer": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha1-kWBcJdkWUvRmHqacz0XxszHKIbo=" }, "socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "version": "2.4.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.4.4.tgz", + "integrity": "sha1-8aM4LngUrijJe7gqOLwawkshzKI=", "requires": { - "ip": "1.1.5", + "ip": "^1.1.5", "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha1-fA82Tnsc9KekN+cSU77XLpAEvmA=", "requires": { "agent-base": "6", "debug": "4", @@ -3231,24 +4033,19 @@ }, "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" } } }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" - }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "^1.0.0" @@ -3256,7 +4053,7 @@ }, "mem-fs": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs/-/mem-fs-1.1.3.tgz", "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", "requires": { "through2": "^2.0.0", @@ -3266,23 +4063,23 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-stats": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "replace-ext": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, "through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -3290,7 +4087,7 @@ }, "vinyl": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { "clone": "^1.0.0", @@ -3300,38 +4097,26 @@ } } }, - "mem-fs-editor": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz", - "integrity": "sha512-e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==", - "requires": { - "commondir": "^1.0.1", - "deep-extend": "^0.6.0", - "ejs": "^2.6.1", - "glob": "^7.1.4", - "globby": "^9.2.0", - "isbinaryfile": "^4.0.0", - "mkdirp": "^0.5.0", - "multimatch": "^4.0.0", - "rimraf": "^2.6.3", - "through2": "^3.0.1", - "vinyl": "^2.2.0" - } + "merge-stream": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "optional": true }, "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha1-fumdvWm7ZIFoklPwGEiKG5ArDtU=" }, "methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -3348,114 +4133,103 @@ "to-regex": "^3.0.2" } }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" - }, "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + "version": "1.40.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" }, "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "version": "2.1.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", "requires": { - "mime-db": "1.43.0" + "mime-db": "1.40.0" } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, "minipass": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", - "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", "requires": { "yallist": "^4.0.0" }, "dependencies": { "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" } } }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", "requires": { "minipass": "^3.0.0" } }, "minipass-fetch": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", - "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", + "version": "1.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.3.2.tgz", + "integrity": "sha1-Vzdm+xrobjDfkWprBgvC6AG/jzc=", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", - "minipass-pipeline": "^1.2.2", "minipass-sized": "^1.0.3", "minizlib": "^2.0.0" } }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", "requires": { "minipass": "^3.0.0" } }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" } }, "minipass-pipeline": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", - "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "version": "1.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", "requires": { "minipass": "^3.0.0" } }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", "requires": { "minipass": "^3.0.0" } }, "minizlib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", - "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -3463,15 +4237,15 @@ "dependencies": { "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" } } }, "mixin-deep": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -3479,8 +4253,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "requires": { "is-plain-object": "^2.0.4" } @@ -3489,21 +4263,30 @@ }, "mixme": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.3.5.tgz", - "integrity": "sha512-SyV9uPETRig5ZmYev0ANfiGeB+g6N2EnqqEfBbCGmmJ6MgZ3E4qv5aPbnHVdZ60KAHHXV+T3sXopdrnIXQdmjQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixme/-/mixme-0.3.5.tgz", + "integrity": "sha1-MEZSza8ko98EhyBeYaxhYsaQbd0=" }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.3.tgz", + "integrity": "sha1-WlFLcXklkoeVKIHpRBDsVGVln4w=", + "dev": true, "requires": { "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", + "dev": true + } } }, "mocha": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz", - "integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-7.1.1.tgz", + "integrity": "sha1-ifuzDQlCmEWxu4k6gwv1dxBJpEE=", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -3534,14 +4317,20 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", "dev": true }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -3551,8 +4340,8 @@ "dependencies": { "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -3562,8 +4351,8 @@ }, "cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", "dev": true, "requires": { "string-width": "^3.1.0", @@ -3573,23 +4362,29 @@ }, "debug": { "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "dev": true, "requires": { "ms": "^2.1.1" } }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", "dev": true }, "glob": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.3.tgz", + "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3602,32 +4397,41 @@ }, "log-symbols": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q=", "dev": true, "requires": { "chalk": "^2.4.2" } }, - "mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", "dev": true, "requires": { - "minimist": "^1.2.5" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -3637,8 +4441,8 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -3646,8 +4450,8 @@ }, "supports-color": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha1-ds/nQs8fQbubHCmtAwaMBbTA5Ao=", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -3655,8 +4459,8 @@ }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -3666,8 +4470,8 @@ }, "yargs": { "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", "dev": true, "requires": { "cliui": "^5.0.0", @@ -3684,69 +4488,35 @@ }, "yargs-parser": { "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", "dev": true, "requires": { "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" - }, - "move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==", - "requires": { - "path-exists": "^4.0.0" - }, - "dependencies": { - "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==" - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "decamelize": "^1.2.0" + } } } }, + "moment": { + "version": "2.24.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.24.0.tgz", + "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "nanomatch": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -3763,7 +4533,7 @@ }, "natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, @@ -3774,13 +4544,13 @@ }, "nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" }, "node-environment-flags": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha1-owrBNiH299Z0JgpU3t4EjDmCwIg=", "dev": true, "requires": { "object.getownpropertydescriptors": "^2.0.3", @@ -3789,16 +4559,16 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -3808,84 +4578,97 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" } } }, "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", "dev": true }, + "npm-api": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-api/-/npm-api-1.0.0.tgz", + "integrity": "sha1-YDPCg7sE3bAYU0TBrQftT2fHeYk=", + "optional": true, + "requires": { + "JSONStream": "^1.3.5", + "clone-deep": "^4.0.1", + "download-stats": "^0.3.4", + "moment": "^2.24.0", + "paged-request": "^2.0.1", + "request": "^2.88.0" + } + }, "npm-package-arg": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", - "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", + "version": "8.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.0.tgz", + "integrity": "sha1-tfYxlBjDJGocOOGo+6oGIxvFMI8=", "requires": { - "hosted-git-info": "^3.0.2", - "osenv": "^0.1.5", + "hosted-git-info": "^3.0.6", "semver": "^7.0.0", "validate-npm-package-name": "^3.0.0" }, "dependencies": { "hosted-git-info": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", - "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", + "version": "3.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha1-owcnOF6oWs/O6U4KrZ42jHkuA2w=", "requires": { - "lru-cache": "^5.1.1" + "lru-cache": "^6.0.0" } }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" } } }, "npm-registry-fetch": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz", - "integrity": "sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ==", + "version": "8.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-8.1.5.tgz", + "integrity": "sha1-MycMZyIDDC0VipcNEyfc2aFJtcU=", "requires": { "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^8.0.2", - "minipass": "^3.0.0", - "minipass-fetch": "^1.1.2", + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.0.0", "npm-package-arg": "^8.0.0" }, "dependencies": { "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" } } }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { "path-key": "^2.0.0" @@ -3893,12 +4676,12 @@ }, "oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "^0.1.0", @@ -3908,7 +4691,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -3916,7 +4699,7 @@ }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -3925,38 +4708,59 @@ } }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + "version": "1.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA=" }, "object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" } }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.1.tgz", + "integrity": "sha1-MDhnpmbN1Bk27N7fsfjz4ypHjN0=", "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg=", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "object.getownpropertydescriptors": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -3965,7 +4769,7 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" @@ -3973,7 +4777,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -3981,7 +4785,7 @@ }, "onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { "mimic-fn": "^1.0.0" @@ -3989,7 +4793,7 @@ }, "optionator": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { "deep-is": "~0.1.3", @@ -4000,15 +4804,10 @@ "wordwrap": "~1.0.0" } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, "os-name": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha1-3sGdlmKW4c1i1wGlpm7h3ernCAE=", "requires": { "macos-release": "^2.2.0", "windows-release": "^3.1.0" @@ -4016,92 +4815,77 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", "requires": { "p-limit": "^2.0.0" } }, "p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", "requires": { "aggregate-error": "^3.0.0" } }, "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==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" }, "pac-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", - "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", + "integrity": "sha1-EdV4tyoWStdL+dW6yf9GKjgoJDI=", "requires": { "agent-base": "^4.2.0", - "debug": "^4.1.1", + "debug": "^3.1.0", "get-uri": "^2.0.0", "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", + "https-proxy-agent": "^2.2.1", "pac-resolver": "^3.0.0", "raw-body": "^2.2.0", "socks-proxy-agent": "^4.0.1" }, "dependencies": { - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" } } }, "pac-resolver": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", - "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha1-auoweH2wqJFwTet4AKcip2FabyY=", "requires": { "co": "^4.6.0", "degenerator": "^1.0.4", @@ -4110,59 +4894,57 @@ "thunkify": "^2.1.2" } }, + "paged-request": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/paged-request/-/paged-request-2.0.1.tgz", + "integrity": "sha1-kRZPBCIx/raGQ1QtJTBHalGP9N4=", + "optional": true, + "requires": { + "axios": "^0.18.0" + } + }, "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", "dev": true, "requires": { "callsites": "^3.0.0" } }, - "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" - } - }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-dirname": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", "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==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" }, "path-to-regexp": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.7.0.tgz", "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", "dev": true, "requires": { @@ -4171,7 +4953,7 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true } @@ -4179,28 +4961,21 @@ }, "path-type": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", "requires": { "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } } }, "pathval": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.0.tgz", "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, "pause-stream": { "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { "through": "~2.3" @@ -4208,28 +4983,28 @@ }, "performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", "dev": true }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { "pinkie": "^2.0.0" @@ -4237,42 +5012,42 @@ }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "pretty-bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", - "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pretty-bytes/-/pretty-bytes-5.2.0.tgz", + "integrity": "sha1-lsksbpWgs1BZJT+zPAPiYNQPWh8=" }, "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" }, "progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { "err-code": "^1.0.0", @@ -4280,51 +5055,32 @@ } }, "proxy-agent": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", - "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-agent/-/proxy-agent-3.1.0.tgz", + "integrity": "sha1-PPhu6RHJSHTeQ1nzfv2d4lFXwRM=", "requires": { "agent-base": "^4.2.0", - "debug": "4", + "debug": "^3.1.0", "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^3.0.1", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "pac-proxy-agent": "^3.0.0", "proxy-from-env": "^1.0.0", "socks-proxy-agent": "^4.0.1" }, "dependencies": { - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "debug": { + "version": "3.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { - "yallist": "^3.0.2" + "ms": "^2.1.1" } }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" } } }, @@ -4333,15 +5089,20 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, "psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" + "version": "1.1.31", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/psl/-/psl-1.1.31.tgz", + "integrity": "sha1-6aqG0BAbWxBcvpOsa3hM1UcnYYQ=" }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -4349,58 +5110,40 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", - "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" }, "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "version": "2.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", "requires": { "bytes": "3.1.0", - "http-errors": "1.7.3", + "http-errors": "1.7.2", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, "read-chunk": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", - "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha1-KYSv54ypv7vbdLGTh7+ehiicFso=", "requires": { "pify": "^4.0.1", "with-open-file": "^0.1.6" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - } - }, - "read-pkg-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", - "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^5.0.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + } } }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -4413,8 +5156,8 @@ }, "readdirp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha1-wwwzNSsSyW37S4lUIaSf1alZODk=", "dev": true, "requires": { "picomatch": "^2.0.4" @@ -4422,7 +5165,7 @@ }, "rechoir": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { "resolve": "^1.1.6" @@ -4430,8 +5173,8 @@ }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -4439,34 +5182,34 @@ }, "regexpp": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", "dev": true }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=" }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "replace-ext": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, "request": { "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/request/-/request-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -4490,60 +5233,54 @@ "uuid": "^3.3.2" }, "dependencies": { - "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==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "qs": { "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } }, "uuid": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=" } } }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "version": "1.11.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha1-6hDYEQN2mC/vV434/DC5rDCgej4=", "requires": { "path-parse": "^1.0.6" } }, "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { "onetime": "^2.0.0", @@ -4552,55 +5289,55 @@ }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" }, "retry": { "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.10.1.tgz", "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, "rewire": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", "dev": true, "requires": { "eslint": "^6.8.0" } }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "2.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", "requires": { "glob": "^7.1.3" } }, "run-async": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { "is-promise": "^2.1.0" } }, "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "version": "6.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", + "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", "requires": { "tslib": "^1.9.0" } }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "~0.1.10" @@ -4608,28 +5345,37 @@ }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" }, "scoped-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/scoped-regex/-/scoped-regex-1.0.0.tgz", "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" }, "semver": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", - "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.1.3.tgz", + "integrity": "sha1-5DRc5zBxxT8zZEXPwZ77HDEd8qY=" }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "optional": true, + "requires": { + "to-object-path": "^0.3.0" + } + }, "set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -4639,7 +5385,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -4649,12 +5395,21 @@ }, "setprototypeof": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", + "optional": true, + "requires": { + "kind-of": "^6.0.2" + } }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { "shebang-regex": "^1.0.0" @@ -4662,13 +5417,13 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shelljs": { "version": "0.8.3", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", - "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha1-p/MxlSDr8J7oEnWyNorbKGZZsJc=", "requires": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -4677,18 +5432,18 @@ }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "slice-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -4698,41 +5453,13 @@ }, "smart-buffer": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", - "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==" - }, - "smartwrap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.1.tgz", - "integrity": "sha512-BoOIGADm5Q9OXGVmT899L1fx6dvOYciVUPB9yFlE1XkxRs3/6sqT/HYZoXOxNb4jj2zshtH+jhmGa6wGkNDPgA==", - "requires": { - "array.prototype.flat": "^1.2.3", - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha1-UgeFjDgVzGkRBwPGuU5GwVY0OV0=" }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -4746,15 +5473,15 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -4762,23 +5489,18 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -4787,7 +5509,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -4795,24 +5517,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -4823,15 +5545,15 @@ }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "requires": { "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -4841,8 +5563,8 @@ }, "socks": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", - "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.3.2.tgz", + "integrity": "sha1-reOI6ebYf9sRZJwVdGxXiSKliD4=", "requires": { "ip": "^1.1.5", "smart-buffer": "4.0.2" @@ -4850,34 +5572,24 @@ }, "socks-proxy-agent": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", "requires": { "agent-base": "~4.2.1", "socks": "~2.3.2" - }, - "dependencies": { - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "requires": { - "es6-promisify": "^5.0.0" - } - } } }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "version": "0.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", "requires": { - "atob": "^2.1.2", + "atob": "^2.1.1", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -4886,13 +5598,13 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -4900,48 +5612,48 @@ }, "spdx-exceptions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=" }, "spdx-expression-parse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha1-dezRqI3owYTvAV6vtRtbSL/RG7E=" }, "split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", + "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", "requires": { "through": "2" } }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -4956,23 +5668,23 @@ }, "ssri": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha1-ecp04h+M6u3fy0uQFDxFi42YiAg=", "requires": { "minipass": "^3.1.1" } }, "static-eval": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha1-LRdZMGsb76aIk4RUxUa3hx+AakI=", "requires": { "escodegen": "^1.8.1" } }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "^0.2.5", @@ -4981,7 +5693,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -4994,103 +5706,94 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "stream-transform": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.1.tgz", - "integrity": "sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw==", - "requires": { - "mixme": "^0.3.1" - } - }, "string-template": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-template/-/string-template-0.2.1.tgz", "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" } }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=", "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5" } }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=", "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5" } }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "requires": { "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { "ansi-regex": "^3.0.0" } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, "strip-bom-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", "requires": { "first-chunk-stream": "^2.0.0", "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } } }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "optional": true + }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "superagent": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", - "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-5.2.2.tgz", + "integrity": "sha1-b/cmxWQnlbLCcAnpJofI5pprsH0=", "requires": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.2", @@ -5105,10 +5808,58 @@ "semver": "^6.3.0" }, "dependencies": { + "combined-stream": { + "version": "1.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "debug": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.2.0.tgz", + "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + } + } + }, + "form-data": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha1-MbfjnIXxNVtxOe4MZHzw3n+DxoI=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime/-/mime-2.4.6.tgz", + "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "qs": { + "version": "6.9.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.9.4.tgz", + "integrity": "sha1-kJCykNH5FyjTwi5UhDykSupatoc=" + }, "readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5117,14 +5868,14 @@ }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" } } }, "superagent-mocker": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/superagent-mocker/-/superagent-mocker-0.5.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-mocker/-/superagent-mocker-0.5.2.tgz", "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", "dev": true, "requires": { @@ -5133,8 +5884,8 @@ }, "superagent-proxy": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.0.0.tgz", - "integrity": "sha512-TktJma5jPdiH1BNN+reF/RMW3b8aBTCV7KlLFV0uYcREgNf3pvo7Rdt564OcFHwkGb3mYEhHuWPBhSbOwiNaYw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-proxy/-/superagent-proxy-2.0.0.tgz", + "integrity": "sha1-n1dRXNZg4unOVcDmvXD5LrB8PuA=", "requires": { "debug": "^3.1.0", "proxy-agent": "3" @@ -5142,31 +5893,36 @@ "dependencies": { "debug": { "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" } } }, "superagent-throttle": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/superagent-throttle/-/superagent-throttle-1.0.1.tgz", - "integrity": "sha512-m5Ngf0S5QoA84zgwVqVnVA34u9uvo8uM+QEF9B7eNI5FDaSoSoUwQsx7V1GmLXgYLkolhIiucFDVJXF9z49hgQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-throttle/-/superagent-throttle-1.0.1.tgz", + "integrity": "sha1-XrOp0BNwssMgbXqQ6o8ESDaUA9M=" }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "requires": { "has-flag": "^3.0.0" } }, "table": { "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-5.4.6.tgz", + "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", "dev": true, "requires": { "ajv": "^6.10.2", @@ -5175,16 +5931,40 @@ "string-width": "^3.0.0" }, "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "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" + } + }, "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -5194,8 +5974,8 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -5204,54 +5984,49 @@ } }, "tar": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", - "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", + "version": "6.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.0.5.tgz", + "integrity": "sha1-vegVCG4Qs58dzSmOidWW4VNeIA8=", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^3.0.0", - "minizlib": "^2.1.0", + "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "dependencies": { "mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" }, "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" } } }, - "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" - }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "textextensions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", - "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==" + "version": "2.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-2.4.0.tgz", + "integrity": "sha1-ahQ6mFRkOEzCz/Ea6kSM1bAY5ys=" }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-3.0.1.tgz", + "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", "requires": { "readable-stream": "2 || 3" } @@ -5263,20 +6038,20 @@ }, "timed-out": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", "requires": { "os-tmpdir": "~1.0.2" } }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "^3.0.2" @@ -5284,7 +6059,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -5294,8 +6069,8 @@ }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -5305,7 +6080,7 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "^3.0.0", @@ -5314,27 +6089,18 @@ }, "toidentifier": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "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==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" }, "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=" }, "tty-table": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.1.tgz", - "integrity": "sha512-iCxPm5DCPgqs3ELrUDEe+JsOcQOSPZSe+dwM5oIQZk5OfyzQWPVQwkHjyFp4aoDHC0HTM47jd0TkQZUBpxnN0Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tty-table/-/tty-table-4.1.1.tgz", + "integrity": "sha1-Sr3/iZt7f0Ia91b9o1LGt4EgUk8=", "requires": { "chalk": "^3.0.0", "csv": "^5.3.1", @@ -5345,24 +6111,369 @@ "yargs": "^15.1.0" }, "dependencies": { - "ansi-regex": { + "breakword": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.5.tgz", + "integrity": "sha1-/UIKQX9VAWc2tbYVFhyuHI+BmBA=", + "requires": { + "wcwidth": "^1.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + }, + "csv": { + "version": "5.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-5.3.2.tgz", + "integrity": "sha1-ULNE4l37uMYmhKG87BjCJGiyFh4=", + "requires": { + "csv-generate": "^3.2.4", + "csv-parse": "^4.8.8", + "csv-stringify": "^5.3.6", + "stream-transform": "^2.0.1" + } + }, + "csv-generate": { + "version": "3.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-generate/-/csv-generate-3.2.4.tgz", + "integrity": "sha1-RA2rkXcznuBnbJ5cFvUOKzRjwBk=" + }, + "csv-parse": { + "version": "4.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-parse/-/csv-parse-4.12.0.tgz", + "integrity": "sha1-/ULWKRu6rdUdMAn2ytuz5TtM4CY=" + }, + "csv-stringify": { + "version": "5.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-stringify/-/csv-stringify-5.5.1.tgz", + "integrity": "sha1-9CzdN5sPfxQpM6EfZ0sakevQ/NA=" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + }, + "locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" + }, + "smartwrap": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smartwrap/-/smartwrap-2.0.1.tgz", + "integrity": "sha1-9OL7NkQCIH5OrF7OwNo4ZNYhtCM=", + "requires": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" + }, + "dependencies": { + "yargs": { + "version": "15.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "cliui": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + } + } + }, + "stream-transform": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-transform/-/stream-transform-2.0.2.tgz", + "integrity": "sha1-PLehTIAus5vEDKqrBTXlhPOmXK8=", + "requires": { + "mixme": "^0.3.1" + } }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" + } + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "requires": { + "color-convert": "^1.9.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" + } + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + } + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "requires": { + "ansi-styles": "^3.2.0" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "^5.0.1" @@ -5370,12 +6481,12 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { "prelude-ls": "~1.1.2" @@ -5383,24 +6494,24 @@ }, "type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", "dev": true }, "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==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=" }, "underscore": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, "union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -5410,16 +6521,16 @@ }, "unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", "requires": { "imurmurhash": "^0.1.4" } @@ -5431,7 +6542,7 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "^0.3.1", @@ -5440,7 +6551,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "^2.0.3", @@ -5450,7 +6561,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" @@ -5460,37 +6571,37 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" } } }, "untildify": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/untildify/-/untildify-3.0.3.tgz", + "integrity": "sha1-HntCsUC8/ZIrIucMoSZb/jY0x8k=" }, "unzip-response": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unzip-response/-/unzip-response-2.0.1.tgz", "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" }, "uri-js": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", "requires": { "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "url-parse-lax": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { "prepend-http": "^1.0.1" @@ -5498,29 +6609,29 @@ }, "use": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz", - "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-7.0.2.tgz", + "integrity": "sha1-f/XCA0Z+kfXg2Fz8uq99LrvKm+Y=" }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha1-VLw83UMxe8qR413K8wWxpyN950U=", "dev": true }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -5528,7 +6639,7 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "^1.0.3" @@ -5536,7 +6647,7 @@ }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", @@ -5546,8 +6657,8 @@ }, "vinyl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha1-2FsH2pbkWNJbL/4Z/s6fLKoT7YY=", "requires": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -5559,7 +6670,7 @@ }, "vinyl-file": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl-file/-/vinyl-file-2.0.0.tgz", "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", "requires": { "graceful-fs": "^4.1.2", @@ -5572,27 +6683,35 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-stats": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "replace-ext": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, "vinyl": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { "clone": "^1.0.0", @@ -5604,7 +6723,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -5612,81 +6731,38 @@ }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wide-align": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", "dev": true, "requires": { "string-width": "^1.0.2 || 2" } }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "windows-release": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", - "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/windows-release/-/windows-release-3.2.0.tgz", + "integrity": "sha1-gSLa1a/DA9gzQiOAaAp5zfqReF8=", "requires": { "execa": "^1.0.0" }, "dependencies": { "execa": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -5699,8 +6775,8 @@ }, "get-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", "requires": { "pump": "^3.0.0" } @@ -5708,30 +6784,37 @@ } }, "with-open-file": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", - "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/with-open-file/-/with-open-file-0.1.6.tgz", + "integrity": "sha1-C8F47Kt19rqsiuEcheB0RdaQ6lA=", "requires": { "p-finally": "^1.0.0", "p-try": "^2.1.0", "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + } } }, "word-wrap": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", "dev": true }, "wordwrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5740,45 +6823,39 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5787,8 +6864,8 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" } @@ -5797,13 +6874,13 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write/-/write-1.0.3.tgz", + "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", "dev": true, "requires": { "mkdirp": "^0.5.1" @@ -5815,116 +6892,24 @@ "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" }, "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "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==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "yargs-parser": { - "version": "18.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", - "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs-unparser": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha1-7yXCx2n/a9CeSw+dfGBfsnhG6p8=", "dev": true, "requires": { "flat": "^4.1.0", @@ -5934,14 +6919,20 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", "dev": true }, "cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", "dev": true, "requires": { "string-width": "^3.1.0", @@ -5949,10 +6940,28 @@ "wrap-ansi": "^5.1.0" } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -5962,8 +6971,8 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -5971,8 +6980,8 @@ }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -5982,8 +6991,8 @@ }, "yargs": { "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", "dev": true, "requires": { "cliui": "^5.0.0", @@ -6000,8 +7009,8 @@ }, "yargs-parser": { "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -6012,8 +7021,8 @@ }, "yeoman-environment": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.1.tgz", - "integrity": "sha512-MV6yeJfnSsZBv/VuWvw82bN6hF6KIXRUwhEPaO+RHJAWeNCQAF+iYfBNsJOo4tx5Puch300h+DF9QZceKkbzQg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.8.1.tgz", + "integrity": "sha1-dsUvzM8mvL197TXZ4iqfPxOU0kE=", "requires": { "chalk": "^2.4.1", "cross-spawn": "^6.0.5", @@ -6032,110 +7041,86 @@ "untildify": "^3.0.3" }, "dependencies": { - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, + "chardet": { + "version": "0.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=" + }, "debug": { "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { "ms": "^2.1.1" } }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "external-editor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "grouped-queue": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grouped-queue/-/grouped-queue-1.1.0.tgz", + "integrity": "sha1-Y+P5ypCvlSJp0dQIeeQSIerMdMs=", "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "lodash": "^4.17.15" } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - } - } - }, - "yeoman-generator": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.6.0.tgz", - "integrity": "sha512-Hq65rLqMNCS0h0n1yakSZjHsEZHm0ZpOM02Nja6O03s2k5WHvAhGOx7uxs93vrJv62zFrJtD9e9mVhgoVbi7CQ==", - "requires": { - "async": "^2.6.2", - "chalk": "^2.4.2", - "cli-table": "^0.3.1", - "cross-spawn": "^6.0.5", - "dargs": "^6.1.0", - "dateformat": "^3.0.3", - "debug": "^4.1.1", - "diff": "^4.0.1", - "error": "^7.0.2", - "find-up": "^3.0.0", - "github-username": "^3.0.0", - "istextorbinary": "^2.5.1", - "lodash": "^4.17.11", - "make-dir": "^3.0.0", - "mem-fs-editor": "^6.0.0", - "minimist": "^1.2.0", - "pretty-bytes": "^5.2.0", - "read-chunk": "^3.2.0", - "read-pkg-up": "^5.0.0", - "rimraf": "^2.6.3", - "run-async": "^2.0.0", - "shelljs": "^0.8.3", - "text-table": "^0.2.0", - "through2": "^3.0.1", - "yeoman-environment": "^2.3.4" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "inquirer": { + "version": "6.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" } } } diff --git a/package.json b/package.json index ce99101a..498d8b45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "1.1.1", + "version": "2.0.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -43,12 +43,13 @@ "glob": "7.1.6", "is-installed-globally": "0.3.1", "jmespath": "0.15.0", + "jose": "2.0.2", "js-yaml": "3.13.1", "jsonpath": "1.0.2", "jsonwebtoken": "8.5.1", - "lodash": "4.17.15", + "lodash": "4.17.20", "moment": "2.24.0", - "npm-registry-fetch": "8.0.0", + "npm-registry-fetch": "8.1.5", "os-name": "3.1.0", "progress": "2.0.3", "request": "2.88.2", diff --git a/src/client/accounts.js b/src/client/accounts.js index 16a7892d..d5dd8940 100644 --- a/src/client/accounts.js +++ b/src/client/accounts.js @@ -25,6 +25,7 @@ module.exports = class Accounts { this.endpoint = `${cortexUrl}/v2/accounts`; this.groupsEndpoint = `${this.endpoint}/groups`; this.resourcesEndpoint = `${this.endpoint}/resources`; + this.whoAmIEndpoint = `${this.endpoint}/user/whoami`; } listGroups(token) { @@ -87,6 +88,24 @@ module.exports = class Accounts { }); } + + whoAmI(token) { + const endpoint = this.whoAmIEndpoint; + debug('whoAmI => %s', endpoint); + return request + .get(endpoint) + .set('Authorization', `Bearer ${token}`) + .then((res) => { + if (res.ok) { + return {success: true, result: res.body}; + } + return {success: false, status: res.status, message: res.body}; + }) + .catch((err) => { + return constructError(err); + }); + } + addMembersToGroup(token, groupName, members) { const endpoint = `${this.groupsEndpoint}/${groupName}/members`; debug('addMembersToGroup => %s', endpoint); diff --git a/src/client/auth.js b/src/client/auth.js deleted file mode 100644 index 339d1d23..00000000 --- a/src/client/auth.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError } = require('../commands/utils'); - -module.exports = class Auth { - - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - } - - login(tenantId, username, password) { - const endpoint = `${this.cortexUrl}/v2/admin/${tenantId}/users/authenticate`; - - debug('login(%s) => %s', username, endpoint); - - return request - .post(endpoint) - .set('x-cortex-proxy-notify', true) - .send({ - username: username, - password: password - }) - .then((response) => { - if (Boolean(_.get(response, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - - if (response.ok) { - debug('login response: %o', response.body); - return response.body; - } - else { - throw new Error('Authentication failed'); - } - }) - .catch((err) => { - return constructError(err); - }); - } -}; \ No newline at end of file diff --git a/src/commands/configure.js b/src/commands/configure.js index 12d01be1..b865775e 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -19,12 +19,11 @@ const co = require('co'); const _ = require('lodash'); const prompt = require('co-prompt'); const chalk = require('chalk'); -const Auth = require('../client/auth'); -const { readConfig, defaultConfig } = require('../config'); -const { printSuccess, printError } = require('./utils'); +const fs = require('fs'); +const { readConfig, defaultConfig, Profile } = require('../config'); +const { printSuccess, printError, filterObject } = require('./utils'); +const Accounts = require('../client/accounts'); -const DEFAULT_CORTEX_URL = 'https://api.cortex.insights.ai'; -const URL_REGEX=/^(https?):\/\/(-\.)?([^\s/?\.#]+\.?)+(\/[^\s]*)?$/; /** * Validate 's'' is not empty, return 's' or throw error * @param s @@ -41,6 +40,17 @@ function _validate(s, msg, regex=undefined) { return s; } +function _validatePatFile(patFile) { + if(!fs.existsSync(patFile)) { + printError(`Personal Access Token file does not exist at: ${patFile}`); + } + + const patData = JSON.parse(fs.readFileSync(patFile)); + + return patData; +} + + module.exports.ConfigureCommand = class { constructor(program) { @@ -49,76 +59,32 @@ module.exports.ConfigureCommand = class { execute(options) { const config = readConfig(); const profileName = options.profile || _.get(config,'currentProfile','default'); - const profileUrl = (this.program.url || process.env.CORTEX_URI) || _.get(config,'url'); - const profileAccount = this.program.account || _.get(config ,'account'); - const profileUsername = this.program.username || _.get(config,'username'); - const profilePassword = this.program.password || undefined; + const patFile = this.program.file; debug('configuring profile: %s', profileName); + console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); - const profile = (config && config.getProfile(profileName)) || {}; const cmd = this; - co(function*(){ - const defaultCortexUrl = profile.url || DEFAULT_CORTEX_URL; - const defaultAccount = profile.account || ''; - const defaultUsername = profile.username || '';`` - console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); - let cortexUrl = (profileUrl) ? profileUrl : yield prompt(`Cortex URL [${defaultCortexUrl}]: `); - const URL_VALIDATION_MSG=`A valid URL (http[s]://) is required. "${cortexUrl}"`; - cortexUrl = _validate(cortexUrl || defaultCortexUrl, URL_VALIDATION_MSG ,URL_REGEX); - cortexUrl =cortexUrl.replace(/\/$/, ''); // strip any trailing / - let account = (profileAccount) ? profileAccount : yield prompt(`Account [${defaultAccount}]: `); - account = _validate(account || defaultAccount, 'An account name is required.'); - let username = (profileUsername) ? profileUsername : yield prompt(`Username [${defaultUsername}]: `); - username = _validate(username || defaultUsername, 'A user name is required.'); - const password = _validate((profilePassword) ? profilePassword : yield prompt.password('Password: '), - 'A password is required.'); - - debug('cortexUrl: %s', cortexUrl); - debug('account: %s', account); - debug('username: %s', username); - - if (!cortexUrl.match(/^[a-zA-Z]+:\/\//)) { - cortexUrl = 'http://' + cortexUrl; - } - - if (!cortexUrl) { - console.error(chalk.red('Cortex URL must be provided')); - return; - } - - if (!account) { - console.error(chalk.red('Cortex account name must be provided')); - return; - } - - if (!username) { - console.error(chalk.red('Cortex username must be provided')); - return; - } - - const auth = new Auth(cortexUrl); try { - const authResp = yield auth.login(account, username, password); - if (! _.has(authResp,'jwt') ) { - console.error(chalk.red(`LOGIN FAILED: ${authResp.message || 'No token returned'}`)); + let patData = null; + if (patFile) { + patData = _validatePatFile(patFile); } else { - const token = authResp.jwt; - debug('token: %s', authResp); - cmd.saveConfig(config, profileName, cortexUrl, account, username, token); - console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); + patData = JSON.parse(yield prompt(`Cortex Personal Access Token: `)); } - } - catch (e) { - console.error(chalk.red(`LOGIN FAILED: ${e.message}`)); + cmd.saveConfig(config, profileName, patData, cmd.program.project); + console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); + process.exit(1) + }catch (err) { + printError(err); } }); } - saveConfig(config, profileName, url, account, username, token) { + saveConfig(config, profileName, {url, username, issuer, audience, jwk}, project) { if(!config) config = defaultConfig(); - config.setProfile(profileName, {url, account, username, token}); + config.setProfile(profileName, {url, username, issuer, audience, jwk, project}); config.currentProfile = profileName; config.save(); } @@ -167,8 +133,23 @@ module.exports.DescribeProfileCommand = class { printSuccess(`Profile: ${profile.name}`, options); printSuccess(`Cortex URL: ${profile.url}`, options); - printSuccess(`Account: ${profile.account}`, options); printSuccess(`Username: ${profile.username}`, options); + printSuccess(`JWK: ${JSON.stringify(profile.jwk)}`, options); + printSuccess(`Project: ${profile.project || 'undefined'}`, options); + + const accounts = new Accounts(profile.url); + accounts.whoAmI(profile.token).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } + else { + printError(`Failed to describe profile : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe profile : ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/config.js b/src/config.js index 2d1e09a8..86a5c414 100644 --- a/src/config.js +++ b/src/config.js @@ -14,11 +14,34 @@ * limitations under the License. */ +const _ = require('lodash'); const os = require('os'); const fs = require('fs'); const path = require('path'); const Joi = require('@hapi/joi'); const debug = require('debug')('cortex:config'); +const { JWT, JWK } = require('jose'); +const { printError } = require('./commands/utils'); +process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0; + +const leeway = 120; //2 minute leeway for JWT issuance + +function generateJwt(profile) { + const { username, issuer, audience,jwk } = profile; + const jwtSigner = JWK.asKey(jwk); + const issuedAt = Math.floor(Date.now() / 1000) - leeway; + const payload = { + tenant: 'cortex', + iat: issuedAt, + exp: issuedAt + (leeway * 2), //2 minute exp time for req, is replaced at gateway with internal token + }; + return JWT.sign(payload, jwtSigner, { + issuer: issuer, + audience: audience, + subject: username, + }); +} + module.exports.defaultConfig = defaultConfig = function(){ return new Config({}); @@ -36,6 +59,17 @@ module.exports.readConfig = readConfig = function() { if (fs.existsSync(configFile)) { // deal with config versions const configObj = JSON.parse(fs.readFileSync(configFile)); + + if (configObj.version && configObj.version === '3') { + // version 3 + // debug('loaded v3 config: %o', configObj); + return new Config(configObj); + } else { + fs.copyFileSync(configFile, path.join(configDir, 'config_v2')) + defaultConfig().save(); + printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); + } + if (configObj.version && configObj.version === '2') { // version 2 // debug('loaded v2 config: %o', configObj); @@ -55,35 +89,44 @@ const ProfileSchema = Joi.object().keys({ url: Joi.string().uri().required(), username: Joi.string().required(), account: Joi.string().required(), - token: Joi.string().required() + jwk: Joi.any().required(), + issuer: Joi.string().required(), + audience: Joi.string().required(), + token: Joi.string().optional(), + project: Joi.string().optional() }); class Profile { - constructor(name, {url, username, tenantId, account, token}) { + constructor(name, {url, username, issuer, audience, jwk, project}) { this.name = name; this.url = process.env.CORTEX_URI || url; this.username = username; - this.account = tenantId || account; - this.token = process.env.CORTEX_TOKEN || token; + this.jwk = jwk; + this.account = 'cortex'; + this.issuer = issuer; + this.audience = audience; + this.project = project; } validate() { const {error, value} = ProfileSchema.validate(this,{abortEarly: false}); if (error) { - throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. Please run "cortex configure".`); + throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. ` + + `Please get your Personal Access Token from the Cortex Console and run "cortex configure".`); } return this; } toJSON() { - return {url: this.url, username: this.username, account: this.account, token: this.token}; + return {url: this.url, username: this.username, issuer: this.issuer, audience: this.audience, + jwk: this.jwk, project: this.project}; } } class Config { constructor({version, profiles, currentProfile}) { - this.version = version || '2'; + this.version = version || '3'; this.profiles = profiles || {}; this.currentProfile = currentProfile; @@ -97,12 +140,13 @@ class Config { if (!profile) { return undefined; } - - return new Profile(name, profile).validate(); + const profileType = new Profile(name, profile).validate(); + profileType.token = generateJwt(profile); + return profileType; } - setProfile(name, {url, account, tenantId, username, token}) { - const profile = new Profile(name, {url, username, account, tenantId, token}); + setProfile(name, {url, username, issuer, audience, jwk, project}) { + const profile = new Profile(name, {url, username, issuer, audience, jwk, project}); profile.validate(); // do not set/save invalid profiles .. this.profiles[name] = profile } @@ -122,6 +166,10 @@ class Config { fs.mkdirSync(configDir); } + _.forEach(this.profiles, function(profile) { + delete profile.token; + }); + const configFile = path.join(configDir, 'config'); fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); } diff --git a/test/cortex/config b/test/cortex/config index 0d688a03..5f629a3b 100644 --- a/test/cortex/config +++ b/test/cortex/config @@ -1,12 +1,19 @@ { - "version": "2", - "profiles": { - "test": { - "url": "http://localhost:8000", - "username": "test_user", - "account": "test_account", - "token": "DUMMY_TOKEN" - } - }, - "currentProfile": "test" -} \ No newline at end of file + "version": "3", + "profiles": { + "default": { + "url": "http://localhost:8000", + "username": "test_user", + "issuer": "cognitivescale.com", + "audience": "cortex", + "jwk": { + "crv": "Ed25519", + "x": "yA1XUDSEoKWa28bCMFljlXwlEFbSVmQQ7ftIMNtB69U", + "d": "bRujm6B2EFaPTp56cU3z3K1w_5oFleLeL3hsLgqCVLc", + "kty": "OKP", + "kid": "X4u2Hv4VxL77bE8N9dT4ltVBoJsSLTH4bY1a5WL6wNY" + } + } + }, + "currentProfile": "default" +} diff --git a/test/cortex/sample/upload/config b/test/cortex/sample/upload/config index 0d688a03..5f629a3b 100644 --- a/test/cortex/sample/upload/config +++ b/test/cortex/sample/upload/config @@ -1,12 +1,19 @@ { - "version": "2", - "profiles": { - "test": { - "url": "http://localhost:8000", - "username": "test_user", - "account": "test_account", - "token": "DUMMY_TOKEN" - } - }, - "currentProfile": "test" -} \ No newline at end of file + "version": "3", + "profiles": { + "default": { + "url": "http://localhost:8000", + "username": "test_user", + "issuer": "cognitivescale.com", + "audience": "cortex", + "jwk": { + "crv": "Ed25519", + "x": "yA1XUDSEoKWa28bCMFljlXwlEFbSVmQQ7ftIMNtB69U", + "d": "bRujm6B2EFaPTp56cU3z3K1w_5oFleLeL3hsLgqCVLc", + "kty": "OKP", + "kid": "X4u2Hv4VxL77bE8N9dT4ltVBoJsSLTH4bY1a5WL6wNY" + } + } + }, + "currentProfile": "default" +} diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index fb8a5164..6003ec0a 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -35,11 +35,11 @@ describe('Upload Directory', function () { const expectedFileDicts = [ { canonical: `${__dirname}/cortex/config`, relative: 'config', - size: 260 + size: 483 }, { canonical: `${__dirname}/cortex/sample/upload/config`, relative: 'sample/upload/config', - size: 260 + size: 483 } ]; From 7f51d7f90a03b025964211bc854662ffa519c1da Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Sun, 25 Oct 2020 17:56:16 -0500 Subject: [PATCH 143/864] FAB-285 cleanup issuance, process env and token exp (#242) * FAB-285 cleanup issuance, process env and token exp * FAB-285 handle auth error (#243) * FAB-285 handle auth error * FAB-285 better status code --- src/commands/apiutils.js | 32 +++++++++++++++++++++++++++----- src/config.js | 9 +-------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/commands/apiutils.js b/src/commands/apiutils.js index a25fd06f..92fa221b 100644 --- a/src/commands/apiutils.js +++ b/src/commands/apiutils.js @@ -6,9 +6,15 @@ const debug = require('debug')('cortex:cli'); const { printWarning } = require('./utils'); const { getUserAgent } = require('../useragent'); +function handleAuthError(res, req) { + if (res.headers['x-auth-error']) { + res.statusCode = 401; + this.callback(new Error(`Auth Error: ${res.headers['x-auth-error']}`)); + } +} /** * makes a request via superagent. proxy methods will be utilized - * if the user (i.e. person running cli commands) has set environment + * if the user (i.e. person running cli commands) has set environment * variables for their proxy (this is assuming ofc they have a proxy). if * no env variables set, the request just keeps piping through. */ @@ -23,38 +29,54 @@ function requestWrapper() { const bypassProxy = process.env.bypass_proxy; this.get = function(endpoint) { - if (bypassProxy) return superagentRequest.get(endpoint); + if (bypassProxy) + return superagentRequest + .get(endpoint) + .on('redirect', handleAuthError); bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .get(endpoint) .proxy(proxyEnv) + .on('redirect', handleAuthError) .set('User-Agent', getUserAgent()); }; this.delete = function(endpoint) { - if (bypassProxy) return superagentRequest.delete(endpoint); + if (bypassProxy) + return superagentRequest + .delete(endpoint) + .on('redirect', handleAuthError); bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .delete(endpoint) + .on('redirect', handleAuthError) .proxy(proxyEnv) .set('User-Agent', getUserAgent()); }; this.post = function(endpoint) { - if (bypassProxy) return superagentRequest.post(endpoint); + if (bypassProxy) + return superagentRequest + .post(endpoint) + .on('redirect', handleAuthError); bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .post(endpoint) + .on('redirect', handleAuthError) .proxy(proxyEnv) .set('User-Agent', getUserAgent()); } this.put = function(endpoint) { - if (bypassProxy) return superagentRequest.put(endpoint); + if (bypassProxy) + return superagentRequest + .put(endpoint) + .on('redirect', handleAuthError); bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .put(endpoint) + .on('redirect', handleAuthError) .proxy(proxyEnv) .set('User-Agent', getUserAgent()); } diff --git a/src/config.js b/src/config.js index 86a5c414..66f740fd 100644 --- a/src/config.js +++ b/src/config.js @@ -22,27 +22,20 @@ const Joi = require('@hapi/joi'); const debug = require('debug')('cortex:config'); const { JWT, JWK } = require('jose'); const { printError } = require('./commands/utils'); -process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0; - -const leeway = 120; //2 minute leeway for JWT issuance function generateJwt(profile) { const { username, issuer, audience,jwk } = profile; const jwtSigner = JWK.asKey(jwk); - const issuedAt = Math.floor(Date.now() / 1000) - leeway; const payload = { - tenant: 'cortex', - iat: issuedAt, - exp: issuedAt + (leeway * 2), //2 minute exp time for req, is replaced at gateway with internal token }; return JWT.sign(payload, jwtSigner, { issuer: issuer, audience: audience, subject: username, + expiresIn: '2m', }); } - module.exports.defaultConfig = defaultConfig = function(){ return new Config({}); }; From 88e66dc027616ced28748ea43b58ebcd039dbd4f Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 28 Oct 2020 13:43:18 -0500 Subject: [PATCH 144/864] Feature/fab183 projects (#241) * WIP to fix non JSON query responses on CLI * First pass at emitting markdown for cortex cli docs * Quote <> in text, replace
with
* added header * remove newline line 1 * Last tweaks generate_docs.js * WIP * WIP skills, actions, agents, snapshots working using projects. Remove request and using got Removed v2 jobs, tasks, envirnonments, instances First pass on connections, content, datasets * Added linting, fixes linting errors * Fixed unit tests, re-added user agent * update for url changes * Fixed bad url content upload * Missed adding projectId in secrets requests, renamed variables -> secrets, fixed error messages I hope * Fix cortex types list * Removed cortex datasets generate * URI typo * rebase/linting * Rebase on dev, added redirect hook to properly handle server-server auth resp --- .eslintrc.json | 26 + .gitignore | 1 + bin/cortex-accounts.js | 176 - bin/cortex-actions.js | 53 +- bin/cortex-agents.js | 172 +- bin/cortex-configure.js | 25 +- bin/cortex-connections.js | 37 +- bin/cortex-content.js | 18 +- bin/cortex-datasets.js | 33 +- bin/cortex-deploy.js | 7 +- bin/cortex-docker.js | 5 +- bin/cortex-environments.js | 131 - bin/cortex-experiments.js | 22 +- bin/cortex-graph.js | 11 +- bin/cortex-jobs.js | 109 - bin/cortex-profiles.js | 27 +- bin/cortex-project.js | 40 - ...{cortex-variables.js => cortex-secrets.js} | 13 +- bin/cortex-skills.js | 25 +- bin/cortex-tasks.js | 110 - bin/cortex-types.js | 13 +- bin/cortex.js | 13 +- generate_docs.js | 89 + generate_docs.sh | 12 +- package-lock.json | 5648 +++++------------ package.json | 27 +- scripts/cortex | 2 +- src/client/accounts.js | 240 +- src/client/actions.js | 371 +- src/client/agents.js | 328 +- src/{commands => client}/apiutils.js | 32 +- src/client/catalog.js | 495 +- src/client/connections.js | 171 +- src/client/content.js | 265 +- src/client/datasets.js | 134 +- src/client/environments.js | 113 - src/client/experiments.js | 226 +- src/client/graph.js | 413 +- src/client/jobs.js | 99 - src/client/tasks.js | 92 - src/client/variables.js | 85 +- src/commander.js | 12 +- src/commands/accounts.js | 339 - src/commands/actions.js | 188 +- src/commands/agents.js | 402 +- src/commands/configure.js | 73 +- src/commands/connections.js | 146 +- src/commands/content.js | 80 +- src/commands/datasets.js | 70 +- src/commands/deploy.js | 35 +- src/commands/docker.js | 11 +- src/commands/environments.js | 203 - src/commands/experiments.js | 86 +- src/commands/graph.js | 150 +- src/commands/jobs.js | 168 - src/commands/profiles.js | 89 +- src/commands/project.js | 32 - src/commands/skills.js | 81 +- src/commands/tasks.js | 173 - src/commands/types.js | 43 +- src/commands/utils.js | 229 +- src/commands/variables.js | 47 +- src/compatibility.js | 64 +- src/config.js | 70 +- src/useragent.js | 25 - test/compatibility.js | 91 +- test/docker-registry.js | 33 +- test/sanity.js | 10 +- test/uploadDirectory.js | 43 +- test/useragent.js | 49 +- test/utils/api.js | 47 - 71 files changed, 3575 insertions(+), 9423 deletions(-) create mode 100644 .eslintrc.json delete mode 100755 bin/cortex-accounts.js delete mode 100755 bin/cortex-environments.js delete mode 100755 bin/cortex-jobs.js delete mode 100644 bin/cortex-project.js rename bin/{cortex-variables.js => cortex-secrets.js} (93%) delete mode 100755 bin/cortex-tasks.js create mode 100644 generate_docs.js rename src/{commands => client}/apiutils.js (84%) delete mode 100644 src/client/environments.js delete mode 100644 src/client/jobs.js delete mode 100644 src/client/tasks.js delete mode 100644 src/commands/accounts.js delete mode 100644 src/commands/environments.js delete mode 100644 src/commands/jobs.js delete mode 100644 src/commands/project.js delete mode 100644 src/commands/tasks.js delete mode 100644 src/useragent.js delete mode 100644 test/utils/api.js diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..218b9a0d --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,26 @@ +{ + "extends": "airbnb-base", + "rules": { + "no-underscore-dangle": [ + 0 + ], + "no-console": "off", // This is a cli app.. + "indent": 0, + "global-require":"off", + "no-return-assign": "off", + "no-param-reassign": "warn", + "no-undef": "error", + "no-trailing-spaces": "off", + "prefer-promise-reject-errors": "warn", + "max-len": [ + "warn", {"code":180} // High res display .. + ], + "no-restricted-properties": "warn", + "camelcase": "warn", + "class-methods-use-this": "off" + }, + "env": { + "node": true, + "mocha": true + } +} diff --git a/.gitignore b/.gitignore index 9ddfe457..244dc2b9 100644 --- a/.gitignore +++ b/.gitignore @@ -96,3 +96,4 @@ test/cortex/local.json .local/ dist/ +cortex-cli-docs.md \ No newline at end of file diff --git a/bin/cortex-accounts.js b/bin/cortex-accounts.js deleted file mode 100755 index 1dd8d64e..00000000 --- a/bin/cortex-accounts.js +++ /dev/null @@ -1,176 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - CreateGroupCommand, - AddMembersToGroupCommand, - ListGroupsCommand, - DescribeGroupCommand, - DeleteGroupCommand, - RemoveMembersFromGroupCommand, - RegisterResourceCommand, - GrantGroupAccessToResourceCommand, -} = require('../src/commands/accounts'); - -program.description('Work with Cortex Accounts'); - -// Create Group -program - .command('create-groups ') - .description('Create a group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--description [description]', 'Group description') - .action(withCompatibilityCheck((groupName, options) => { - try { - new CreateGroupCommand(program).execute(groupName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Add Members to Group -program - .command('add-members-groups [members...]') - .description('Add members to group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((groupName, members, options) => { - try { - new AddMembersToGroupCommand(program).execute(groupName, members, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Groups -program - .command('list-groups') - .description('List groups') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((options) => { - try { - new ListGroupsCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Group -program - .command('describe-groups ') - .description('Describe a group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((groupName, options) => { - try { - new DescribeGroupCommand(program).execute(groupName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete Group -program - .command('delete-groups ') - .description('Delete a group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((groupName, options) => { - try { - new DeleteGroupCommand(program).execute(groupName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Remove Members From Group -program - .command('remove-members-groups [members...]') - .description('Remove members from a group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((groupName, members, options) => { - try { - new RemoveMembersFromGroupCommand(program).execute(groupName, members, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Register Resource -program - .command('register-resources ') - .description('Register a resource') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--description [description]', 'Resource description') - .option('--access [access]', 'Access level of resource [read/write/admin/execute]') - .action(withCompatibilityCheck((resourceName, options) => { - try { - new RegisterResourceCommand(program).execute(resourceName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Grant Group Access To Resource -program - .command('grant-group-access-resources ') - .description('Grant group access to a resource') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((resourceId, groupName, options) => { - try { - new GrantGroupAccessToResourceCommand(program).execute(resourceId, groupName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 9e8d6311..c1f7d937 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -50,8 +50,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -59,6 +58,7 @@ program // Describe Action program .command('describe ') + .alias('get') .description('Describe an action') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') @@ -69,8 +69,7 @@ program .action(withCompatibilityCheck((actionName, options) => { try { new DescribeActionCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -88,8 +87,7 @@ program .action(withCompatibilityCheck((actionName, options) => { try { new DeleteActionCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -99,15 +97,14 @@ program .command('logs ') .description('Get logs for an action') .option('--no-compat', 'Ignore API compatibility checks') - .option( '--json', 'Return raw JSON response') + .option('--json', 'Return raw JSON response') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((actionName, options) => { try { new GetLogsCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -127,12 +124,11 @@ program .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') .option('--path [path]', 'Path to the daemon service url being invoked', '') - .option('--method [method]', 'HTTP method') // GET, POST ... + .option('--method [method]', 'HTTP method') // GET, POST ... .action(withCompatibilityCheck((actionName, options) => { try { new InvokeActionCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -140,21 +136,18 @@ program // Deploy Action program .command('deploy ') + .alias('save') .description('Deploy an action') .option('--no-compat', 'Ignore API compatibility checks') - .option('--kind [kind]', '[Deprecated] Action runtime kind') // python:3, python:2, nodejs:default - .option('--code [code]', '[Deprecated] The code file or code archive to deploy') .option('--docker [image]', 'Docker image to use as the runner') - .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') - .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') .option('--ttl [ttl]', 'Daemon time to live') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--actionType [actionType]', 'Type of action') - .option('--port [port]', 'Docker port') //'9091' + .option('--port [port]', 'Docker port') // '9091' .option('--environment [environment]', 'Environment') - .option('--cmd [cmd]', 'Command to be executed') //'["--daemon"]' + .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('--scaleCount [count]', 'Scale count', 'Scale count, only used for daemon action types') @@ -171,8 +164,7 @@ program // } new DeployActionCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -189,8 +181,7 @@ program .action(withCompatibilityCheck((jobId, taskId, options) => { try { new TaskLogsActionCommand(program).execute(jobId, taskId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -207,8 +198,7 @@ program .action(withCompatibilityCheck((jobId, taskId, options) => { try { new TaskCancelActionCommand(program).execute(jobId, taskId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -225,8 +215,7 @@ program .action(withCompatibilityCheck((jobId, taskId, options) => { try { new TaskStatusActionCommand(program).execute(jobId, taskId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -239,13 +228,12 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' + - ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' + + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') .action(withCompatibilityCheck((jobId, options) => { try { new JobTaskListActionCommand(program).execute(jobId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -262,8 +250,7 @@ program .action(withCompatibilityCheck((jobId, options) => { try { new TaskStatsActionCommand(program).execute(jobId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index f95c9541..75edb93e 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -28,25 +28,18 @@ const { InvokeAgentServiceCommand, GetActivationCommand, ListActivationsCommand, - ListAgentInstancesCommand, ListSnapshotInstancesCommand, - CreateAgentInstanceCommand, - GetAgentInstanceCommand, - DeleteAgentInstanceCommand, - StopAgentInstanceCommand, ListTriggersCommand, ListServicesCommand, ListAgentSnapshotsCommand, DescribeAgentSnapshotCommand, - CreateAgentSnapshotCommand + CreateAgentSnapshotCommand, } = require('../src/commands/agents'); const { ListTaskByActivation, } = require('../src/commands/actions'); -const { printError } = require('../src/commands/utils'); - program.description('Work with Cortex Agents'); // Save Agent @@ -61,8 +54,7 @@ program .action(withCompatibilityCheck((agentDefinition, options) => { try { new SaveAgentCommand(program).execute(agentDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -71,6 +63,7 @@ program program .command('list') .description('List agent definitions') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -80,8 +73,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -90,6 +82,7 @@ program program .command('describe ') .description('Describe agent') + .alias('get') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -99,8 +92,7 @@ program .action(withCompatibilityCheck((agentName, options) => { try { new DescribeAgentCommand(program).execute(agentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -118,30 +110,11 @@ program .action(withCompatibilityCheck((agentName, serviceName, options) => { try { new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -//Get Agent Service Activation -program - .command('get-service-activation ') - .description('Get service activation') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((activationId, options) => { - try { - printError('DEPRECATED. This command will be removed in a future version. Use get-activation instead.', options, false); - new GetActivationCommand(program).execute(activationId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); program .command('get-activation ') @@ -154,8 +127,7 @@ program .action(withCompatibilityCheck((activationId, options) => { try { new GetActivationCommand(program).execute(activationId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -173,8 +145,7 @@ program .action(withCompatibilityCheck((instanceId, options) => { try { new ListActivationsCommand(program).execute(instanceId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -192,10 +163,8 @@ program .action(withCompatibilityCheck((agentName, options) => { try { new ListServicesCommand(program).execute(agentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); - } })); @@ -212,13 +181,12 @@ program .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -//List snapshot instances +// List snapshot instances program .command('list-snapshot-instances ') .description('List snapshot instances ') @@ -232,14 +200,14 @@ program .action(withCompatibilityCheck((snapshotId, options) => { try { new ListSnapshotInstancesCommand(program).execute(snapshotId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); program .command('describe-snapshot ') + .alias('get-snapshot') .description('Describe agent snapshot') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') @@ -249,13 +217,12 @@ program .action(withCompatibilityCheck((snapshotId, options) => { try { new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -//Create Agent Snapshot +// Create Agent Snapshot program .command('create-snapshot [snapshotDefinition]') .description('Create an agent snapshot') @@ -268,105 +235,12 @@ program .action(withCompatibilityCheck((snapshotDefinition, options) => { try { new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - - -//List agent instances -program - .command('list-instances ') - .description('List agent instances ') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((agentName, options) => { - try { - new ListAgentInstancesCommand(program).execute(agentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -//Create agent instances -program - .command('create-instance [instanceDefinition]') - .description('Create agent instance') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--environmentName [environmentName]', 'The environment to use') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--snapshotId [snapshotId]', 'The name of the agent to snapshot') - .action(withCompatibilityCheck((instanceDefinition, options) => { - try { - new CreateAgentInstanceCommand(program).execute(instanceDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -//Get agent instance -program - .command('get-instance ') - .description('Get agent instance') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .action(withCompatibilityCheck((instanceId, options) => { - try { - new GetAgentInstanceCommand(program).execute(instanceId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -//Delete agent instance -program - .command('delete-instance ') - .description('Delete agent instance') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((instanceId, options) => { - try { - new DeleteAgentInstanceCommand(program).execute(instanceId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -//Stop agent instance -program - .command('stop-instance ') - .description('Stop agent instance') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((instanceId, options) => { - try { - new StopAgentInstanceCommand(program).execute(instanceId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -//List triggers +// List triggers program .command('list-triggers') .description('List of triggers for the current tenant') @@ -377,13 +251,12 @@ program .action(withCompatibilityCheck((options) => { try { new ListTriggersCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -//List Tasks +// List Tasks program .command('list-tasks ') .description('List tasks associated with a given activationId') @@ -394,8 +267,7 @@ program .action(withCompatibilityCheck((activationId, options) => { try { new ListTaskByActivation(program).execute(activationId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index db5a92af..24543ab3 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ const { ConfigureCommand, DescribeProfileCommand, ListProfilesCommand, - SetProfileCommand + SetProfileCommand, } = require('../src/commands/configure'); program @@ -31,38 +31,37 @@ program .option('--project [project]', 'The default project to use') .description('Configure the Cortex CLI'); -let cmd = undefined; -program.command('auth', { isDefault: true}) +program.command('auth', { isDefault: true }) .description('Authenticate to cortex (default command)') .option('--file [file]', 'Personal Access Token file location') .option('--profile [profile]', 'The profile to configure') .option('--project [project]', 'The default project') - .action( (options) => { - new ConfigureCommand(program).execute({profile: program.profile, color: program.color}); + .action(() => { + new ConfigureCommand(program).execute({ profile: program.profile, color: program.color }); }); program - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on'); program .command('list') .description('List configured profiles') - .action((options) => { - new ListProfilesCommand(program).execute({color: program.color}); + .action(() => { + new ListProfilesCommand(program).execute({ color: program.color }); }); program .command('describe ') .description('Describe a configured profile') - .action((profileName, options) => { - new DescribeProfileCommand(program).execute({profile: profileName, color: program.color}); + .action((profileName) => { + new DescribeProfileCommand(program).execute({ profile: profileName, color: program.color }); }); program .command('set-profile ') .description('Sets the current profile.') - .action((profileName, options) => { - new SetProfileCommand(program).execute(profileName, {color: program.color}); + .action((profileName) => { + new SetProfileCommand(program).execute(profileName, { color: program.color }); }); program.parse(process.argv); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 996c2900..437cb8dc 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -28,7 +28,6 @@ const { DescribeConnectionCommand, TestConnectionCommand, ListConnectionsTypes, - GenerateConnectionCommand } = require('../src/commands/connections'); program.description('Work with Cortex Connections'); @@ -47,8 +46,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -65,8 +63,7 @@ program .action(withCompatibilityCheck((connDefinition, options) => { try { new SaveConnectionCommand(program).execute(connDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -78,14 +75,14 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--json', 'Pretty print JSON results') .option('--project [project]', 'The project to use') .option('--query [query]', 'The query to use, "select 1" is default') .option('--file [file]', 'Location of file containing query string') .action(withCompatibilityCheck((connName, options) => { try { new QueryConnectionCommand(program).execute(connName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -102,8 +99,7 @@ program .action(withCompatibilityCheck((connectionName, options) => { try { new DescribeConnectionCommand(program).execute(connectionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -120,8 +116,7 @@ program .action(withCompatibilityCheck((connDefinition, options) => { try { new TestConnectionCommand(program).execute(connDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -139,25 +134,9 @@ program .action(withCompatibilityCheck((options) => { try { new ListConnectionsTypes(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); - -// Generate Connections -program - .command('generate') - .description('Generates the structure of the connection payload') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new GenerateConnectionCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - }); - program.parse(process.argv); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 48ba8d64..a3f5d7ef 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ const { ListContent, UploadContent, DeleteContent, - DownloadContent + DownloadContent, } = require('../src/commands/content'); program.description('Work with Cortex Contents'); @@ -44,8 +44,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListContent(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -62,13 +61,12 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--secure', 'Uploads the content securely to the Cortex Vault. \n\t\t\t\tUse this option for keytab files or content that contains sensitive information that is required during Runtime. \n\t\t\t\tTake note of the contentKey you give to this content for future reference.') - .option('--content-type [MIME type]', 'Sets the \`Content-Type\` or MIME type of the content ( default: application/octet-stream )') + .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) .action(withCompatibilityCheck((contentKey, filePath, options) => { try { new UploadContent(program).execute(contentKey, filePath, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -84,8 +82,7 @@ program .action(withCompatibilityCheck((contentKey, options) => { try { new DeleteContent(program).execute(contentKey, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -103,8 +100,7 @@ program .action(withCompatibilityCheck((contentKey, options) => { try { new DownloadContent(program).execute(contentKey, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-datasets.js b/bin/cortex-datasets.js index 7e55e0f6..b5e6caf8 100644 --- a/bin/cortex-datasets.js +++ b/bin/cortex-datasets.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -27,7 +27,6 @@ const { DescribeDatasetCommand, GetDataframeCommand, StreamDatasetCommand, - GenerateDatasetCommand } = require('../src/commands/datasets'); program.description('Work with Cortex Connections'); @@ -46,8 +45,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListDatasets(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -64,8 +62,7 @@ program .action(withCompatibilityCheck((datasetDef, options) => { try { new SaveDatasetsCommand(program).execute(datasetDef, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -82,8 +79,7 @@ program .action(withCompatibilityCheck((datasetName, options) => { try { new DescribeDatasetCommand(program).execute(datasetName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -99,8 +95,7 @@ program .action(withCompatibilityCheck((datasetName, options) => { try { new GetDataframeCommand(program).execute(datasetName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -116,25 +111,9 @@ program .action(withCompatibilityCheck((datasetName, options) => { try { new StreamDatasetCommand(program).execute(datasetName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -program - .command('generate') - .description('Generates the structure and top level build script for a dataset') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use', 'default') - .option('--project [project]', 'The project to use') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new GenerateDatasetCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - }); - program.parse(process.argv); diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index 710747ce..95f9e9b7 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -22,7 +22,7 @@ const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DeploySnapshotCommand + DeploySnapshotCommand, } = require('../src/commands/deploy'); program.description('Export Cortex artifacts for deployment'); @@ -40,8 +40,7 @@ program .action(withCompatibilityCheck((skillDefinition, options) => { try { new DeploySnapshotCommand(program).execute(skillDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 93a08e34..bff484c5 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -38,8 +38,7 @@ program .action(withCompatibilityCheck((options) => { try { new DockerLoginCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-environments.js b/bin/cortex-environments.js deleted file mode 100755 index 824c6412..00000000 --- a/bin/cortex-environments.js +++ /dev/null @@ -1,131 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListEnvironments, - SaveEnvironmentCommand, - PromoteEnvironmentCommand, - DescribeEnvironmentCommand, - ListInstancesCommand -} = require('../src/commands/environments'); - -program.description('Work with Cortex Environments'); - - -// List Environments -program - .command('list') - .description('List environments') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((options) => { - try { - new ListEnvironments(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Save Environement -program - .command('save ') - .description('Create an environment. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for environment definition format') - .action(withCompatibilityCheck((envDefinition, options) => { - try { - new SaveEnvironmentCommand(program).execute(envDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Promote Environment -program - .command('promote [promotionDefinition]') - .description('Promote a snapshot to an environment. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for environment definition format') - .option('--snapshotId [snapshotId]', 'SnapshotID to promote') - .option('--environmentName [environmentName]', 'Environment to promote snapshotId to') - .action(withCompatibilityCheck((promotionDefinition, options) => { - try { - new PromoteEnvironmentCommand(program).execute(promotionDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Environment -program - .command('describe ') - .description('Describe environment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((environmentName, options) => { - try { - new DescribeEnvironmentCommand(program).execute(environmentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - - - -// List Instances in Environment -program - .command('list-instances [environmentName]') - .description('List instances in environment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((environmentName, options) => { - try { - new ListInstancesCommand(program).execute(environmentName || 'cortex/default', options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index e70dca78..d5c1cd91 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -27,6 +27,7 @@ const { ListRuns, DescribeRunCommand, DeleteRunCommand, + DeleteExperimentCommand, DownloadArtifactCommand, } = require('../src/commands/experiments'); @@ -49,8 +50,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListExperiments(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -67,8 +67,7 @@ program .action(withCompatibilityCheck((experimentName, options) => { try { new DescribeExperimentCommand(program).execute(experimentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -84,8 +83,7 @@ program .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DeleteExperimentCommand(program).execute(experimentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -107,8 +105,7 @@ program .action(withCompatibilityCheck((experimentName, options) => { try { new ListRuns(program).execute(experimentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -125,8 +122,7 @@ program .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DescribeRunCommand(program).execute(experimentName, runId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -142,8 +138,7 @@ program .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DeleteRunCommand(program).execute(experimentName, runId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -159,8 +154,7 @@ program .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { try { new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-graph.js b/bin/cortex-graph.js index 055cda3e..6d76c7cb 100755 --- a/bin/cortex-graph.js +++ b/bin/cortex-graph.js @@ -47,8 +47,7 @@ program .action(withCompatibilityCheck((options) => { try { new FindEventsCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -64,7 +63,7 @@ program .option('--tracking', 'Enable tracking event mode.') .option('--transform [templates]', 'Apply transform templates to the input JSON records.') .option('--dry-run', "Simulate the publish (but don't actually send events to the server).") - .option('--auto', "Enable auto attribute creation using each entity property as an attribute value.") + .option('--auto', 'Enable auto attribute creation using each entity property as an attribute value.') .action(withCompatibilityCheck(async (file, options) => { await new PublishEventsCommand(program).execute(file, options) .catch(err => console.error(chalk.red(err.message))); @@ -81,8 +80,7 @@ program .action(withCompatibilityCheck(async (entityId, options) => { try { new GetEntityCommand(program).execute(entityId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -99,8 +97,7 @@ program .action(withCompatibilityCheck(async (query, options) => { try { new QueryGraphCommand(program).execute(query, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-jobs.js b/bin/cortex-jobs.js deleted file mode 100755 index 55b045c2..00000000 --- a/bin/cortex-jobs.js +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env node - -/* -* Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. -* -* Licensed under the Apache License, Version 2.0 (the “License”); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an “AS IS” BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListJobs, - JobStatus, - DescribeJob, - SaveJob -} = require('../src/commands/jobs'); - -program.description('Work with Cortex v2 Jobs. Use Cortex Actions for v3 jobs.'); - - -// List Jobs -program - .command('list') - .description('List v2 job definitions') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((options) => { - try { - new ListJobs(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Job -program - .command('describe ') - .description('Describe v2 job definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .action(withCompatibilityCheck((jobDefinition, options) => { - try { - new DescribeJob(program).execute(jobDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Job Status -program - .command('status ') - .description('Get v2 job status') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .action(withCompatibilityCheck((jobDefinition, options) => { - try { - new JobStatus(program).execute(jobDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - - -// Save Job -program - .command('save ') - .description('Save a v2 job definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for job definition format') - .option('--push-docker', 'Push Docker image to the Cortex registry.') - .action(withCompatibilityCheck((jobDefinition, options) => { - try { - new SaveJob(program).execute(jobDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js index 0efc42ba..16204e29 100755 --- a/bin/cortex-profiles.js +++ b/bin/cortex-profiles.js @@ -47,8 +47,7 @@ program .action(withCompatibilityCheck((profileSchema, options) => { try { new SaveProfileSchemaCommand(program).execute(profileSchema, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -70,8 +69,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListProfileSchemasCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -88,8 +86,7 @@ program .action(withCompatibilityCheck((schemaName, options) => { try { new DescribeProfileSchemaCommand(program).execute(schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -105,8 +102,7 @@ program .action(withCompatibilityCheck((schemaName, options) => { try { new DeleteProfileSchemaCommand(program).execute(schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -128,8 +124,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListProfilesCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -150,8 +145,7 @@ program .action(withCompatibilityCheck((profileId, schemaName, options) => { try { new ListProfileVersionsCommand(program).execute(profileId, schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -172,8 +166,7 @@ program .action(withCompatibilityCheck((profileId, schemaName, options) => { try { new DescribeProfileCommand(program).execute(profileId, schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -189,8 +182,7 @@ program .action(withCompatibilityCheck((profileId, schemaName, options) => { try { new DeleteProfileCommand(program).execute(profileId, schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -210,8 +202,7 @@ program .action(withCompatibilityCheck((schemaName, profileId, options) => { try { new RebuildProfilesCommand(program).execute(schemaName, profileId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-project.js b/bin/cortex-project.js deleted file mode 100644 index 46091f97..00000000 --- a/bin/cortex-project.js +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { GenerateProjectCommand } = require('../src/commands/project'); - -program.description('Work with a related collection of Cortex contributions'); - -// Generate Project -program - .command('generate') - .description('(Deprecated) Generates the structure and top level build script for a project') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { - try { - new GenerateProjectCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - }); - -program.parse(process.argv); diff --git a/bin/cortex-variables.js b/bin/cortex-secrets.js similarity index 93% rename from bin/cortex-variables.js rename to bin/cortex-secrets.js index 2a997a00..8f2443ad 100755 --- a/bin/cortex-variables.js +++ b/bin/cortex-secrets.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -27,7 +27,7 @@ const { WriteVariableCommand, } = require('../src/commands/variables'); -program.description('Work with Cortex Secure Variables'); +program.description('Work with Cortex Secrets'); // List Secure Variable Keys program @@ -41,8 +41,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListVariablesCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -59,8 +58,7 @@ program .action(withCompatibilityCheck((keyName, options) => { try { new ReadVariableCommand(program).execute(keyName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -78,8 +76,7 @@ program .action(withCompatibilityCheck((keyName, value, options) => { try { new WriteVariableCommand(program).execute(keyName, value, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 00869cac..7536d76d 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ const { SaveSkillCommand, ListSkillsCommand, DescribeSkillCommand, - GenerateSkillCommand } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); @@ -42,8 +41,7 @@ program .action(withCompatibilityCheck((skillDefinition, options) => { try { new SaveSkillCommand(program).execute(skillDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -61,8 +59,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListSkillsCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -79,23 +76,9 @@ program .action(withCompatibilityCheck((skillName, options) => { try { new DescribeSkillCommand(program).execute(skillName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -program - .command('generate') - .description('(Deprecated) Generates the structure and top level build script for a skill') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new GenerateSkillCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - }); - program.parse(process.argv); diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js deleted file mode 100755 index 64b71aa2..00000000 --- a/bin/cortex-tasks.js +++ /dev/null @@ -1,110 +0,0 @@ -#!/usr/bin/env node - -/* -* Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. -* -* Licensed under the Apache License, Version 2.0 (the “License”); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an “AS IS” BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListTasks, - TaskLogs, - CancelTask, - DescribeTask -} = require('../src/commands/tasks'); - -program.description('Work with Cortex v2 tasks. Use Cortex Actions for v3 tasks.'); - - -// List Tasks -program - .command('list ') - .description('List task definitions within a v2 job definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, options) => { - try { - new ListTasks(program).execute(jobId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Tasks logs -program - .command('logs ') - .description('Get v2 task logs') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new TaskLogs(program).execute(jobId, taskId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Cancel task -program - .command('cancel ') - .description('Cancel a v2 task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('-m, --message ', 'Cancellation message') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new CancelTask(program).execute(jobId, taskId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe task -program - .command('describe ') - .description('Describe a v2 task definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new DescribeTask(program).execute(jobId, taskId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 6496d1d1..838b74fc 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -24,7 +24,7 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { SaveTypeCommand, ListTypesCommand, - DescribeTypeCommand + DescribeTypeCommand, } = require('../src/commands/types'); program.description('Work with Cortex Types'); @@ -41,8 +41,7 @@ program .action(withCompatibilityCheck((typeDefinition, options) => { try { new SaveTypeCommand(program).execute(typeDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -60,8 +59,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -78,8 +76,7 @@ program .action(withCompatibilityCheck((typeName, options) => { try { new DescribeTypeCommand(program).execute(typeName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex.js b/bin/cortex.js index 9bd707bb..41a5f3e7 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ const pkg = findPackageJson(__dirname).next().value; program .version(pkg.version, '-v, --version') .description('Cortex CLI') - .command('accounts [cmd]', 'Work with Cortex Accounts') +// .command('accounts [cmd]', 'Work with Cortex Accounts') .command('actions [cmd]', 'Work with Cortex Actions') .command('agents [cmd]', 'Work with Cortex Agents') .command('configure', 'Configure the Cortex CLI') @@ -37,20 +37,17 @@ program .command('datasets [cmd]', 'Work with Cortex Datasets') .command('docker [cmd]', 'Work with Docker') .command('jobs [cmd]', 'Work with Cortex v2 Jobs') - .command('project [cmd]', 'Work with a related collection of Cortex contributions') + .command('projects [cmd]', 'Work with a related collection of Cortex contributions') .command('skills [cmd]', 'Work with Cortex Skills') .command('tasks [cmd]', 'Work with Cortex v2 Tasks') .command('types [cmd]', 'Work with Cortex Types') - .command('variables [cmd]', 'Work with Cortex Secure Variables') + .command('secrets [cmd]', 'Work with Cortex Secrets') .command('experiments [cmd]', 'Work with Cortex Experiments') .command('profiles [cmd]', 'Work with Cortex Profiles') .command('graph [cmd]', 'Work with the Cortex Graph'); -program.parse(process.argv, { noActionHandler: function() { - -}}); +program.parse(process.argv, { noActionHandler: () => {} }); if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { program.outputHelp(identity); process.exit(1); } - diff --git a/generate_docs.js b/generate_docs.js new file mode 100644 index 00000000..74c35474 --- /dev/null +++ b/generate_docs.js @@ -0,0 +1,89 @@ +/** + * Opted to use pure JS versus adding handlebars as a dep, as handlebars always has vulns.. + */ +const _ = require('lodash'); +const fs = require('fs'); + +// read command args if passed +const sourcedir = _.get(process.argv,'[2]','.') +const outfile = _.get(process.argv,'[3]'); + +// use top level commands as driver +const rootJson = require(`${sourcedir}/cortex.json`) + +// replace /n/t with HTML equivs +const cleanString = (s) => s + .replace(/\n/g, '
') + .replace(/\t/g, 'nbsp;nbsp;') + .replace(//g,'>`') + +// print sub-command flags as string +const optionRow = (opts) => _.join( + _.sortBy(opts,['flags']).map( + (opt) => `\`${opt.flags}\`${ _.isEmpty(opt.defaultValue) ? '' : ` (*default:* \`${opt.defaultValue }\`)`} - ${cleanString(opt.description)}` + ), + '
' +) + +const subcmdTable = (subcmd) => `| Command | Description | Options | +| ------- | ----------- | ------- |\n` + +_.join( + _.sortBy(subcmd, ['name']).map((cmd) => `| \`${cmd.name} ${cmd.usage }\` | ${cmd.description } | ${optionRow(cmd.options)} |`), + '\n' +) + +const cmdHeading = (cmd) => ` +## ${_.capitalize(cmd.name)} +\`\`\` +cortex ${cmd.name} ${cmd.usage} +\`\`\` +${cmd.description} +`; + +const header = `--- +title: "Cortex CLI" +linkTitle: "Cortex CLI" +description: > + Provides a list of all commands available in the Cortex Command Line Interface. +--- +This reference guide provides a list of all commands available in the Cortex Command Line +Interface (Cortex CLI). See [CLI](getting-started/use-cli.md) for +help getting started using the CLI. +## Notation +The following table describes the common notation used in this reference guide. +| Notation | Description | Example | +| -------- | ----------- | ------- | +| \`< >\` | Required | \`\` denotes a required value. | +| \`[ ]\` | Optional | \`[options]\` denotes an optional value. | +## Syntax +\`\`\`cli +cortex [command] [options] +\`\`\` +## Global options +| Option | Description | +| --------- | --------- | +| \`-v\`, \`--version\` | Outputs the version number. | +| \`-h\`, \`--help\` | Outputs usage information. | +| \`--profile [profile]\` | Run the CLI using the specified profile instead of the default config. | +## General notes +* The output results for most \`list\` commands display as a table. Add the +\`--json\` option to output results as JSON. When \`--json\` is used, you can use the +\`--query\` option to [filter the results](/getting-started/use-cli.md). +* The output results for \`describe\` commands display in the format of the document +it is describing. This can include YAML, JSON, or other formats. +` + +const body = _.join( + _.sortBy(rootJson, ["name"]).map( + (cmd) =>`${cmdHeading(cmd)}\n`+ + `${subcmdTable(require(`${sourcedir}/cortex-${cmd.name}.json`))}` + ), +''); +const output = header + body +// if outfile write to file ... +if (_.isEmpty(outfile)) { + console.log(output) +} else { + fs.writeFileSync(outfile, output) +} \ No newline at end of file diff --git a/generate_docs.sh b/generate_docs.sh index 42ac3629..99b44565 100755 --- a/generate_docs.sh +++ b/generate_docs.sh @@ -1,6 +1,16 @@ #!/bin/bash export DOC=true +OUTFILE=cortex-cli-docs.md +OUTDIR=$(mktemp -d) +# generating meta from commands. +echo "Generating metadata from commands" for F in bin/*.js; do + echo -n '.' NAME=$(basename $F .js) - node $F > ${NAME}.json + node $F > "${OUTDIR}/${NAME}.json" done +# generating markdown +node generate_docs.js "${OUTDIR}" ${OUTFILE} +echo +echo "Done -> ${OUTFILE}" +rm -r ${OUTDIR} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 394b95eb..87d1349f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,21 +6,24 @@ "dependencies": { "@babel/code-frame": { "version": "7.10.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { "version": "7.10.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=" + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true }, "@babel/highlight": { "version": "7.10.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", @@ -29,792 +32,14 @@ "dependencies": { "chalk": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=" - } - } - }, - "@c12e/generator-cortex": { - "version": "0.3.30", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.30.tgz", - "integrity": "sha1-nb8HCulOvuOW62Z8+Lm6U8QoK2U=", - "requires": { - "@hapi/joi": "^17.1.0", - "debug": "^4.1.1", - "superagent": "^5.2.2", - "yeoman-generator": "^4.5.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", - "optional": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", - "optional": true - } - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "optional": true - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha1-PLs9DzFoEOr8xHYkc0I31q7krms=" - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha1-yWVekzHgq81YjSp8rX6ZVvZnAfo=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", - "optional": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", - "optional": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", - "optional": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "optional": true - }, - "debug": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.2.0.tgz", - "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", - "requires": { - "ms": "2.1.2" - } - }, - "diff": { - "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-4.0.2.tgz", - "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=" - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", - "requires": { - "path-type": "^3.0.0" - } - }, - "ejs": { - "version": "3.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ejs/-/ejs-3.1.5.tgz", - "integrity": "sha1-rtcjhE3CCstLFwzZqxAX5Hag2Ts=", - "requires": { - "jake": "^10.6.1" - } - }, - "execa": { - "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-4.0.3.tgz", - "integrity": "sha1-CjTau61tZhAL1vLFdshmlAPzF/I=", - "optional": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "optional": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "optional": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", - "optional": true - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", - "optional": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", - "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", - "optional": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "gh-got": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-5.0.0.tgz", - "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=", - "requires": { - "got": "^6.2.0", - "is-plain-obj": "^1.1.0" - } - }, - "github-username": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-username/-/github-username-3.0.0.tgz", - "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=", - "requires": { - "gh-got": "^5.0.0" - } - }, - "globby": { - "version": "9.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-9.2.0.tgz", - "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - } - }, - "got": { - "version": "6.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, - "grouped-queue": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grouped-queue/-/grouped-queue-1.1.0.tgz", - "integrity": "sha1-Y+P5ypCvlSJp0dQIeeQSIerMdMs=", - "optional": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "optional": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=" - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", - "optional": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=", - "optional": true - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", - "optional": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "optional": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "optional": true - }, - "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha1-7ctisiTitHEIMLZ0mMjk5aTSYQs=" - }, - "joi": { - "version": "13.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-13.7.0.tgz", - "integrity": "sha1-z9hev+Z+ihkAQyQAtNA7vZP7h58=" - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "mem-fs-editor": { - "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs-editor/-/mem-fs-editor-7.0.1.tgz", - "integrity": "sha1-4Hl4Ard5es9D7zxRHz061ep2V4M=", - "requires": { - "commondir": "^1.0.1", - "deep-extend": "^0.6.0", - "ejs": "^3.0.1", - "glob": "^7.1.4", - "globby": "^9.2.0", - "isbinaryfile": "^4.0.0", - "mkdirp": "^1.0.0", - "multimatch": "^4.0.0", - "rimraf": "^3.0.0", - "through2": "^3.0.1", - "vinyl": "^2.2.0" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "optional": true - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" - }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha1-jDwPbj6ESa2grz3SnvtJGjdRkbM=", - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=" - } - } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", - "optional": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", - "optional": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", - "optional": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "parse-json": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha1-+WCIzfJKj6qa6poAny2dlCyZlkY=", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "optional": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - } - }, - "read-pkg-up": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-5.0.0.tgz", - "integrity": "sha1-tqZ0HLFE7TYQVU9AFiqgem22Ibg=", - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^5.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", - "optional": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha1-jKhGNcTaqQDA05Z6buesYCce5VI=", - "optional": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.2.tgz", - "integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg=" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "optional": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "optional": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-2.0.0.tgz", - "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "optional": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "optional": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "optional": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yeoman-environment": { - "version": "2.10.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.10.3.tgz", - "integrity": "sha1-nY9Ct3MXQUQ0zA5R+wBqS91UaI4=", - "optional": true, - "requires": { - "chalk": "^2.4.1", - "debug": "^3.1.0", - "diff": "^3.5.0", - "escape-string-regexp": "^1.0.2", - "execa": "^4.0.0", - "globby": "^8.0.1", - "grouped-queue": "^1.1.0", - "inquirer": "^7.1.0", - "is-scoped": "^1.0.0", - "lodash": "^4.17.10", - "log-symbols": "^2.2.0", - "mem-fs": "^1.1.0", - "mem-fs-editor": "^6.0.0", - "npm-api": "^1.0.0", - "semver": "^7.1.3", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "untildify": "^3.0.3", - "yeoman-generator": "^4.8.2" - }, - "dependencies": { - "arrify": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "optional": true - }, - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", - "optional": true - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", - "optional": true, - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - } - }, - "ejs": { - "version": "2.7.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", - "optional": true - }, - "globby": { - "version": "8.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-8.0.2.tgz", - "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", - "optional": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", - "optional": true - }, - "mem-fs-editor": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz", - "integrity": "sha1-1jYHzwpS/mlj/DdsanqlLbPtq6s=", - "optional": true, - "requires": { - "commondir": "^1.0.1", - "deep-extend": "^0.6.0", - "ejs": "^2.6.1", - "glob": "^7.1.4", - "globby": "^9.2.0", - "isbinaryfile": "^4.0.0", - "mkdirp": "^0.5.0", - "multimatch": "^4.0.0", - "rimraf": "^2.6.3", - "through2": "^3.0.1", - "vinyl": "^2.2.0" - }, - "dependencies": { - "dir-glob": { - "version": "2.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", - "optional": true, - "requires": { - "path-type": "^3.0.0" - } - }, - "globby": { - "version": "9.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-9.2.0.tgz", - "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", - "optional": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", - "optional": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "optional": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-2.0.0.tgz", - "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", - "optional": true - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "optional": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "optional": true - } - } - }, - "yeoman-generator": { - "version": "4.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-generator/-/yeoman-generator-4.12.0.tgz", - "integrity": "sha1-US54OjiwBMSSZecYJqCf9/GTn0s=", - "requires": { - "async": "^2.6.2", - "chalk": "^2.4.2", - "cli-table": "^0.3.1", - "cross-spawn": "^6.0.5", - "dargs": "^6.1.0", - "dateformat": "^3.0.3", - "debug": "^4.1.1", - "diff": "^4.0.1", - "error": "^7.0.2", - "find-up": "^3.0.0", - "github-username": "^3.0.0", - "grouped-queue": "^1.1.0", - "istextorbinary": "^2.5.1", - "lodash": "^4.17.11", - "make-dir": "^3.0.0", - "mem-fs-editor": "^7.0.1", - "minimist": "^1.2.5", - "pretty-bytes": "^5.2.0", - "read-chunk": "^3.2.0", - "read-pkg-up": "^5.0.0", - "rimraf": "^2.6.3", - "run-async": "^2.0.0", - "semver": "^7.2.1", - "shelljs": "^0.8.3", - "text-table": "^0.2.0", - "through2": "^3.0.1", - "yeoman-environment": "^2.9.5" - } } } }, @@ -856,29 +81,15 @@ "@hapi/topo": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha1-wZr4V3+jk6BunHe2CZWvlZvnIec=", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "integrity": "sha1-wZr4V3+jk6BunHe2CZWvlZvnIec=", "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "@hapi/hoek": "^9.0.0" } }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=" - }, "@npmcli/ci-detect": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", - "integrity": "sha1-bB0sYl+27xud6oWtClr8vvhe8io=" + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", + "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==" }, "@npmcli/move-file": { "version": "1.0.1", @@ -897,72 +108,80 @@ }, "@panva/asn1.js": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@panva/asn1.js/-/asn1.js-1.0.0.tgz", - "integrity": "sha1-3VWue4Ep4CBJ8AlAi5fGHM+QMvY=" + "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" + }, + "@sindresorhus/is": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz", + "integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==" + }, + "@szmarczak/http-timer": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", + "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", + "requires": { + "defer-to-connect": "^2.0.0" + } }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=" + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", + "@types/cacheable-request": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", + "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", "requires": { - "@types/minimatch": "*", - "@types/node": "*" + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" } }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=" + "@types/http-cache-semantics": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", + "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" }, - "@types/node": { - "version": "8.10.48", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-8.10.48.tgz", - "integrity": "sha1-44UHNWFkOpumGZoZhf/ANTD5B4E=" + "@types/keyv": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", + "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", + "requires": { + "@types/node": "*" + } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=" + "@types/node": { + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.0.tgz", + "integrity": "sha512-BfbIHP9IapdupGhq/hc+jT5dyiBVZ2DdeC5WwJWQWDb0GijQlzUFAeIQn/2GtvZcd2HVUU7An8felIICFTC2qg==" }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", - "optional": true, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "@types/node": "*" } }, "acorn": { - "version": "7.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, "acorn-jsx": { "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", - "requires": { - "es6-promisify": "^5.0.0" - } - }, "agentkeepalive": { "version": "4.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.1.3.tgz", - "integrity": "sha1-NgoJ10Oh9P3nSfm6B8qmV10IJZo=", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", + "integrity": "sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -971,19 +190,20 @@ }, "aggregate-error": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "ajv": { - "version": "6.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=", + "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": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -998,17 +218,20 @@ "ansi-escapes": { "version": "3.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=" + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "dev": true }, "ansi-regex": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -1031,39 +254,17 @@ "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, "requires": { - "array-uniq": "^1.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, "array.prototype.flat": { "version": "1.2.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", @@ -1073,166 +274,35 @@ "es-abstract": "^1.17.0-next.1" } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, "assertion-error": { "version": "1.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-types": { - "version": "0.12.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-types/-/ast-types-0.12.4.tgz", - "integrity": "sha1-cc5jg4APJO/JoaMwjzpuQgoJdNE=" - }, "astral-regex": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, - "async": { - "version": "2.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-2.6.2.tgz", - "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=", - "requires": { - "lodash": "^4.17.11" - } - }, "asynckit": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=" - }, - "axios": { - "version": "0.18.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/axios/-/axios-0.18.1.tgz", - "integrity": "sha1-/z8N4ue10YDnV62YAA8Qgbh7zqM=", - "optional": true, - "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=", - "optional": true - } - } + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base": { - "version": "0.11.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, "binary-extensions": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", "dev": true }, - "binaryextensions": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-2.1.2.tgz", - "integrity": "sha1-yDw9dCM7p2dOTzE8sqK3D1TpS3w=" - }, "boxen": { "version": "4.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-4.2.0.tgz", @@ -1256,6 +326,16 @@ "string-width": "^3.0.0" }, "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, "string-width": { "version": "3.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", @@ -1273,20 +353,50 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=" + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { "version": "4.2.0", @@ -1331,10 +441,13 @@ "ansi-regex": "^4.1.0" } }, - "term-size": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha1-Hxat7f6b3BiADhd2ghc0CG/MZ1M=" + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } }, "type-fest": { "version": "0.8.1", @@ -1360,58 +473,21 @@ "concat-map": "0.0.1" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "browser-stdout": { "version": "1.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", "dev": true }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, "builtins": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, - "bytes": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=" - }, "cacache": { "version": "15.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha1-aRYoM9opFw1nMjNGQ8YOAF9fF9A=", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", "requires": { "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", @@ -1442,60 +518,50 @@ }, "mkdirp": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "requires": { - "glob": "^7.1.3" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" } } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "cacheable-lookup": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz", + "integrity": "sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==" + }, + "cacheable-request": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", + "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, "callsites": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha1-psC74fOPOqC5Ijjstv9Cw0TUE10=" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "chai": { "version": "4.2.0", @@ -1521,9 +587,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1531,8 +597,8 @@ "dependencies": { "ansi-styles": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { "color-convert": "^2.0.1" } @@ -1557,8 +623,8 @@ }, "supports-color": { "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { "has-flag": "^4.0.0" } @@ -1567,13 +633,13 @@ }, "chardet": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "check-error": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, @@ -1642,43 +708,28 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "clean-stack": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + }, "cli-cursor": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, "requires": { "restore-cursor": "^2.0.0" } }, "cli-table": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table/-/cli-table-0.3.1.tgz", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", "requires": { "colors": "1.0.3" @@ -1686,140 +737,89 @@ }, "cli-width": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "clone": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", - "optional": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha1-EgoAywU7+2OiIucJ+Wg+ouEdjOw=", + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" + "mimic-response": "^1.0.0" } }, "co": { "version": "4.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co/-/co-4.6.0.tgz", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "co-prompt": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/co-prompt/-/co-prompt-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", "requires": { "keypress": "~0.2.1" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "colors": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=", - "requires": { - "delayed-stream": "~1.0.0" - } - }, "commander": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-5.0.0.tgz", - "integrity": "sha1-2/GQm0nlBE+P2vCtyAnwwHIr39A=" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz", + "integrity": "sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==" }, "component-emitter": { "version": "1.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, "cookiejar": { "version": "2.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha1-3YojVTB1L5iPmghE8/xYnjERElw=" - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "integrity": "sha1-3YojVTB1L5iPmghE8/xYnjERElw=", + "dev": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, "cross-spawn": { "version": "6.0.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -1831,36 +831,11 @@ "semver": { "version": "5.7.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true } } }, - "dargs": { - "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dargs/-/dargs-6.1.0.tgz", - "integrity": "sha1-HzubVjk+z4yqfL/WwxSW/8+5snI=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-uri-to-buffer": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/data-uri-to-buffer/-/data-uri-to-buffer-2.0.1.tgz", - "integrity": "sha1-yo9W/jix/TKUc+nRtKmvzYzhwEU=", - "requires": { - "@types/node": "^8.0.7" - } - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha1-puN0maTZqc+F71hyBE1ikByYia4=" - }, "debug": { "version": "4.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", @@ -1878,13 +853,23 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } }, "deep-eql": { "version": "3.0.1", @@ -1895,19 +880,14 @@ "type-detect": "^4.0.0" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=" - }, "deep-is": { "version": "0.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "defaults": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -1915,11 +895,16 @@ "dependencies": { "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" } } }, + "defer-to-connect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", + "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==" + }, "define-properties": { "version": "1.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", @@ -1928,64 +913,11 @@ "object-keys": "^1.0.12" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "degenerator": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", - "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", - "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } - } - }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "depd": { "version": "1.1.2", @@ -1994,80 +926,28 @@ }, "diff": { "version": "3.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true }, "doctrine": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" } }, - "download-stats": { - "version": "0.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/download-stats/-/download-stats-0.3.4.tgz", - "integrity": "sha1-Z+oMMvFKzZ9jnacE7vUJaEui2uc=", - "optional": true, - "requires": { - "JSONStream": "^1.2.1", - "lazy-cache": "^2.0.1", - "moment": "^2.15.1" - } - }, "duplexer": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha1-rg8PothQRe8UqBfao86azQSJ5b8=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "editions": { - "version": "2.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/editions/-/editions-2.1.3.tgz", - "integrity": "sha1-cnzPPsLHsS3MZSxxAA8WxIJNb30=", - "requires": { - "errlop": "^1.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", - "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" - } - } + "emitter-component": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz", + "integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=" }, "emoji-regex": { "version": "8.0.0", @@ -2076,8 +956,8 @@ }, "encoding": { "version": "0.1.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "optional": true, "requires": { "iconv-lite": "^0.6.2" @@ -2085,8 +965,8 @@ "dependencies": { "iconv-lite": { "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha1-zhPRh1sMOmdL1qBLf3awGxtt7QE=", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -2104,30 +984,14 @@ }, "err-code": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" }, - "errlop": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/errlop/-/errlop-1.1.1.tgz", - "integrity": "sha1-2a5MdsPmSVbF155uA11jQ7/WIlA=", - "requires": { - "editions": "^2.1.2" - } - }, - "error": { - "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error/-/error-7.0.2.tgz", - "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, "error-ex": { "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -2160,23 +1024,11 @@ "is-symbol": "^1.0.2" } }, - "es6-promise": { - "version": "4.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promise/-/es6-promise-4.2.6.tgz", - "integrity": "sha1-toXt2CWIhjZepitX0w3ij63Nl08=" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "^4.0.3" - } - }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "escodegen": { "version": "1.11.1", @@ -2204,60 +1056,53 @@ } }, "eslint": { - "version": "6.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", + "ajv": "^6.9.1", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob": "^7.1.2", + "globals": "^11.7.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.14", + "lodash": "^4.17.11", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", "progress": "^2.0.0", "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, "chalk": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -2265,72 +1110,152 @@ "supports-color": "^5.3.0" } }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "eslint-config-airbnb-base": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz", + "integrity": "sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==", + "dev": true, + "requires": { + "eslint-restricted-globals": "^0.1.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "ms": "2.0.0" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "ms": "2.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, + "eslint-restricted-globals": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", + "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=", + "dev": true + }, "eslint-scope": { - "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { - "esrecurse": "^4.3.0", + "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } }, "eslint-utils": { "version": "1.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" @@ -2338,19 +1263,19 @@ }, "eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { - "version": "6.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-6.2.1.tgz", - "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", "dev": true, "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "esprima": { @@ -2360,8 +1285,8 @@ }, "esquery": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc=", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -2369,16 +1294,16 @@ "dependencies": { "estraverse": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "esrecurse": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { "estraverse": "^5.2.0" @@ -2386,8 +1311,8 @@ "dependencies": { "estraverse": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } @@ -2432,74 +1357,77 @@ } } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "requires": { - "ms": "2.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { - "is-descriptor": "^0.1.0" + "mimic-fn": "^2.1.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "requires": { - "is-extendable": "^0.1.0" + "shebang-regex": "^3.0.0" } - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "requires": { - "is-plain-object": "^2.0.4" + "isexe": "^2.0.0" } } } }, "external-editor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { "chardet": "^0.7.0", @@ -2507,154 +1435,47 @@ "tmp": "^0.0.33" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "fast-glob": { - "version": "2.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha1-pdW2l+yN7aRo2Fp0A1KQoCWpUpU=", - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fast-safe-stringify": { "version": "2.0.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha1-EkqohYmSYfaK7bQqfAgN6dpgh0M=" + "integrity": "sha1-EkqohYmSYfaK7bQqfAgN6dpgh0M=", + "dev": true }, "figures": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { "flat-cache": "^2.0.1" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=" - }, - "filelist": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/filelist/-/filelist-1.0.1.tgz", - "integrity": "sha1-8Q0aOuhsFpSAjo8gkG9D1MkTLbs=", - "requires": { - "minimatch": "^3.0.4" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "find-package-json": { "version": "1.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", @@ -2662,20 +1483,13 @@ }, "find-up": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "requires": { "locate-path": "^3.0.0" } }, - "first-chunk-stream": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", - "requires": { - "readable-stream": "^2.0.2" - } - }, "flat": { "version": "4.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-4.1.1.tgz", @@ -2695,77 +1509,41 @@ }, "flat-cache": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", - "dev": true - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=", - "optional": true, - "requires": { - "debug": "=3.1.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "optional": true, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, "requires": { - "ms": "2.0.0" + "glob": "^7.1.3" } } } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true }, "formidable": { "version": "1.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha1-cPt8oCkO5v+WEJBBX0s989IIJlk=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } + "integrity": "sha1-cPt8oCkO5v+WEJBBX0s989IIJlk=", + "dev": true }, "from": { "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" }, "fs-minipass": { @@ -2778,7 +1556,7 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { @@ -2788,38 +1566,6 @@ "dev": true, "optional": true }, - "ftp": { - "version": "0.3.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", @@ -2827,70 +1573,22 @@ }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "get-func-name": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-stream": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-uri": { - "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-uri/-/get-uri-2.0.3.tgz", - "integrity": "sha1-+hM1Iml4HXUWLG/IE8npBTI/urU=", - "requires": { - "data-uri-to-buffer": "2", - "debug": "4", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "3" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "readable-stream": { - "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.3.0.tgz", - "integrity": "sha1-y4ARqtAC63F78EApH+uoVpyYb7k=", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { - "assert-plus": "^1.0.0" + "pump": "^3.0.0" } }, "glob": { @@ -2906,65 +1604,35 @@ "path-is-absolute": "^1.0.0" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, "globals": { - "version": "12.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-12.4.0.tgz", - "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", - "dev": true - } - } + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true }, - "globby": { - "version": "8.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-8.0.2.tgz", - "integrity": "sha1-VpdhnM2VxSdduy1vqkIIfBqUHY0=", + "got": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/got/-/got-11.7.0.tgz", + "integrity": "sha512-7en2XwH2MEqOsrK0xaKhbWibBoZqy+f1RSUoIeF1BLcnf+pyQdDsljWMfmOh+QKJwuvDIiKx38GtPh5wFdGGjg==", "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "@sindresorhus/is": "^3.1.1", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" } }, "graceful-fs": { "version": "4.1.15", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=" + "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=", + "dev": true }, "grapheme-splitter": { "version": "1.0.4", @@ -2977,20 +1645,6 @@ "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", @@ -3001,43 +1655,15 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, "has-symbols": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=" }, - "has-value": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "he": { "version": "1.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", @@ -3045,97 +1671,35 @@ "dev": true }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "requires": { + "lru-cache": "^6.0.0" + } }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha1-TuenN6vZJniik9mzShr00NCMeHs=", + "http2-wrapper": { + "version": "1.0.0-beta.5.2", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", + "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==", "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" - } + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" } }, "human-signals": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", - "optional": true + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "^2.0.0" @@ -3145,19 +1709,15 @@ "version": "0.4.24", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, - "ignore": { - "version": "3.3.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=" - }, "import-fresh": { "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY=", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -3166,7 +1726,7 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { @@ -3181,7 +1741,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -3199,232 +1759,64 @@ "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" }, "inquirer": { - "version": "7.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", - "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", - "dev": true - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha1-jKhGNcTaqQDA05Z6buesYCce5VI=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "ansi-regex": "^4.1.0" } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", - "dev": true } } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=" - }, "ip": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true }, "is-binary-path": { "version": "2.1.0", @@ -3435,32 +1827,18 @@ "binary-extensions": "^2.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" - }, "is-callable": { "version": "1.2.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.2.tgz", "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=" }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "is-core-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", + "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "has": "^1.0.3" } }, "is-date-object": { @@ -3468,42 +1846,23 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=" }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, "is-extglob": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -3534,7 +1893,7 @@ }, "is-lambda": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, "is-negative-zero": { @@ -3542,46 +1901,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, - "is-number": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "requires": { - "isobject": "^3.0.1" - } - }, "is-promise": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true }, "is-regex": { "version": "1.1.1", @@ -3591,23 +1915,16 @@ "has-symbols": "^1.0.1" } }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" - }, - "is-scoped": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-scoped/-/is-scoped-1.0.0.tgz", - "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", - "requires": { - "scoped-regex": "^1.0.0" - } - }, "is-stream": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "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==" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true }, "is-symbol": { "version": "1.0.3", @@ -3617,92 +1934,35 @@ "has-symbols": "^1.0.1" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" - }, "isarray": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istextorbinary": { - "version": "2.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-2.5.1.tgz", - "integrity": "sha1-FKM4JM9rnV13Q+rBvivSwxDQzL0=", - "requires": { - "binaryextensions": "^2.1.2", - "editions": "^2.1.3", - "textextensions": "^2.4.0" - } - }, - "jake": { - "version": "10.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jake/-/jake-10.8.2.tgz", - "integrity": "sha1-68nehVgWCmbYLQ6txqLlj7xQCns=", - "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, "jmespath": { "version": "0.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "jose": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose/-/jose-2.0.2.tgz", - "integrity": "sha1-+yI4W4DGWMx6DK4FtwhsBMa+SfQ=", + "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.2.tgz", + "integrity": "sha512-yD93lsiMA1go/qxSY/vXWBodmIZJIxeB7QhFi8z1yQ3KUwKENqI9UA8VCHlQ5h3x1zWuWZjoY87ByQzkQbIrQg==", "requires": { "@panva/asn1.js": "^1.0.0" } }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, "js-yaml": { "version": "3.13.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.13.1.tgz", @@ -3712,40 +1972,32 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "jsonparse": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, "jsonpath": { @@ -3765,107 +2017,58 @@ } } }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha1-AOceC431TCEhofJhN98igGc7zA0=", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" - }, - "semver": { - "version": "5.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.0.tgz", - "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" - } - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha1-dDwymFy56YZVUw1TZBtmyGRbA5o=", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jws/-/jws-3.2.2.tgz", - "integrity": "sha1-ABCZ82OUaMlBQADpmZX6UvtHgwQ=", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, "keypress": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keypress/-/keypress-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } }, "kleur": { "version": "3.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kleur/-/kleur-3.0.3.tgz", "integrity": "sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=" }, - "lazy-cache": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", - "optional": true, - "requires": { - "set-getter": "^0.1.0" - } - }, "levn": { "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" } }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } }, "locate-path": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -3873,87 +2076,37 @@ }, "lodash": { "version": "4.17.20", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", - "requires": { - "chalk": "^2.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } + "lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true }, "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { - "version": "4.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "yallist": "^4.0.0" } }, "macos-release": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/macos-release/-/macos-release-2.3.0.tgz", - "integrity": "sha1-6xkwsDbAgArevM1fF7xMEt6Ltx8=" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", + "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==" }, "make-fetch-happen": { "version": "8.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", - "integrity": "sha1-83xdk9FCkEiMpqKukXo4C9fSTxY=", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", + "integrity": "sha512-jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==", "requires": { "agentkeepalive": "^4.1.0", "cacache": "^15.0.0", @@ -3974,8 +2127,8 @@ "dependencies": { "agent-base": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.1.tgz", - "integrity": "sha1-gIAH5OWGfeywq2qy+Sj721pZbbQ=", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", + "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", "requires": { "debug": "4" } @@ -3992,21 +2145,13 @@ }, "https-proxy-agent": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { "agent-base": "6", "debug": "4" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "requires": { - "yallist": "^4.0.0" - } - }, "smart-buffer": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.1.0.tgz", @@ -4014,8 +2159,8 @@ }, "socks": { "version": "2.4.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.4.4.tgz", - "integrity": "sha1-8aM4LngUrijJe7gqOLwawkshzKI=", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.4.4.tgz", + "integrity": "sha512-7LmHN4IHj1Vpd/k8D872VGCHJ6yIVyeFkfIBExRmGPYQ/kdUkpdg9eKh9oOzYYYKQhuxavayJHTnmBG+EzluUA==", "requires": { "ip": "^1.1.5", "smart-buffer": "^4.1.0" @@ -4030,118 +2175,31 @@ "debug": "4", "socks": "^2.3.3" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "mem-fs": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mem-fs/-/mem-fs-1.1.3.tgz", - "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", - "requires": { - "through2": "^2.0.0", - "vinyl": "^1.1.0", - "vinyl-file": "^2.0.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } } } }, "merge-stream": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", - "optional": true - }, - "merge2": { - "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha1-fumdvWm7ZIFoklPwGEiKG5ArDtU=" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "methods": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true }, "mime-db": { "version": "1.40.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" + "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=", + "dev": true }, "mime-types": { "version": "2.1.24", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.24.tgz", "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", + "dev": true, "requires": { "mime-db": "1.40.0" } @@ -4149,7 +2207,13 @@ "mimic-fn": { "version": "1.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.0.4", @@ -4159,19 +2223,18 @@ "brace-expansion": "^1.1.7" } }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, "minipass": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" - } + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" } }, "minipass-collect": { @@ -4184,8 +2247,8 @@ }, "minipass-fetch": { "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.3.2.tgz", - "integrity": "sha1-Vzdm+xrobjDfkWprBgvC6AG/jzc=", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", + "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -4212,8 +2275,8 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "requires": { "minipass": "^3.0.0" } @@ -4228,37 +2291,11 @@ }, "minizlib": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - } } }, "mixme": { @@ -4267,20 +2304,12 @@ "integrity": "sha1-MEZSza8ko98EhyBeYaxhYsaQbd0=" }, "mkdirp": { - "version": "0.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha1-WlFLcXklkoeVKIHpRBDsVGVln4w=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" - }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", - "dev": true - } } }, "mocha": { @@ -4404,6 +2433,15 @@ "chalk": "^2.4.2" } }, + "mkdirp": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", + "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "ms": { "version": "2.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", @@ -4500,52 +2538,43 @@ }, "moment": { "version": "2.24.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.24.0.tgz", - "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "ms": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "0.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true }, "natural-compare": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "netmask": { - "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", - "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" - }, "nice-try": { "version": "1.0.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=" + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true + }, + "nock": { + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.0.4.tgz", + "integrity": "sha512-alqTV8Qt7TUbc74x1pKRLSENzfjp4nywovcJgi/1aXDiUxXdt7TkruSTF5MDWPP7UoPVgea4F9ghVdmX0xxnSA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash.set": "^4.3.2", + "propagate": "^2.0.0" + } }, "node-environment-flags": { "version": "1.0.6", @@ -4567,8 +2596,9 @@ }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -4576,10 +2606,17 @@ "validate-npm-package-license": "^3.0.1" }, "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==", + "dev": true + }, "semver": { "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -4589,57 +2626,25 @@ "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", "dev": true }, - "npm-api": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-api/-/npm-api-1.0.0.tgz", - "integrity": "sha1-YDPCg7sE3bAYU0TBrQftT2fHeYk=", - "optional": true, - "requires": { - "JSONStream": "^1.3.5", - "clone-deep": "^4.0.1", - "download-stats": "^0.3.4", - "moment": "^2.24.0", - "paged-request": "^2.0.1", - "request": "^2.88.0" - } + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, "npm-package-arg": { "version": "8.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.0.tgz", - "integrity": "sha1-tfYxlBjDJGocOOGo+6oGIxvFMI8=", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz", + "integrity": "sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==", "requires": { "hosted-git-info": "^3.0.6", "semver": "^7.0.0", "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "3.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha1-owcnOF6oWs/O6U4KrZ42jHkuA2w=", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" - } } }, "npm-registry-fetch": { "version": "8.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-8.1.5.tgz", - "integrity": "sha1-MycMZyIDDC0VipcNEyfc2aFJtcU=", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.1.5.tgz", + "integrity": "sha512-yZPNoJK9clx1jhSXU54kU6Aj1SV2p7mXUs1W/6OjQvek3wb1RrjDCrt4iY1+VX9eBQvvSGEpzNmYkRUaTL8rqg==", "requires": { "@npmcli/ci-detect": "^1.0.0", "lru-cache": "^6.0.0", @@ -4649,61 +2654,20 @@ "minipass-json-stream": "^1.0.1", "minizlib": "^2.0.0", "npm-package-arg": "^8.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" - } } }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "path-key": "^3.0.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" } } }, @@ -4717,14 +2681,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, "object.assign": { "version": "4.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.1.tgz", @@ -4757,6 +2713,17 @@ } } }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" + } + }, "object.getownpropertydescriptors": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", @@ -4767,17 +2734,21 @@ "es-abstract": "^1.17.0-next.1" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, "requires": { - "isobject": "^3.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" } }, "once": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -4785,15 +2756,16 @@ }, "onetime": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, "requires": { "mimic-fn": "^1.0.0" } }, "optionator": { "version": "0.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.2.tgz", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { "deep-is": "~0.1.3", @@ -4805,23 +2777,24 @@ } }, "os-name": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha1-3sGdlmKW4c1i1wGlpm7h3ernCAE=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.0.tgz", + "integrity": "sha512-caABzDdJMbtykt7GmSogEat3faTKQhmZf0BS5l/pZGmP0vPWQjXWqOhbLyK+b6j2/DQPmEvYdzLXJXXLJNVDNg==", "requires": { "macos-release": "^2.2.0", - "windows-release": "^3.1.0" + "windows-release": "^4.0.0" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "p-cancelable": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", + "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" }, "p-limit": { "version": "2.2.0", @@ -4833,8 +2806,9 @@ }, "p-locate": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, "requires": { "p-limit": "^2.0.0" } @@ -4852,184 +2826,132 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" }, - "pac-proxy-agent": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", - "integrity": "sha1-EdV4tyoWStdL+dW6yf9GKjgoJDI=", - "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "pac-resolver": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pac-resolver/-/pac-resolver-3.0.0.tgz", - "integrity": "sha1-auoweH2wqJFwTet4AKcip2FabyY=", - "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" - } - }, - "paged-request": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/paged-request/-/paged-request-2.0.1.tgz", - "integrity": "sha1-kRZPBCIx/raGQ1QtJTBHalGP9N4=", - "optional": true, - "requires": { - "axios": "^0.18.0" - } - }, "parent-module": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } }, "path-exists": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, "path-key": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "path-parse": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", - "requires": { - "pify": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true }, "pathval": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, "pause-stream": { "version": "0.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "requires": { "through": "~2.3" } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, "picomatch": { "version": "2.2.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", "dev": true }, - "pify": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, "requires": { - "pinkie": "^2.0.0" + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, "prelude-ls": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "pretty-bytes": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pretty-bytes/-/pretty-bytes-5.2.0.tgz", - "integrity": "sha1-lsksbpWgs1BZJT+zPAPiYNQPWh8=" - }, "process-nextick-args": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.0.tgz", @@ -5042,62 +2964,23 @@ }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", "requires": { "err-code": "^1.0.0", "retry": "^0.10.0" } }, - "proxy-agent": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-agent/-/proxy-agent-3.1.0.tgz", - "integrity": "sha1-PPhu6RHJSHTeQ1nzfv2d4lFXwRM=", - "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "pac-proxy-agent": "^3.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } - } - }, - "proxy-from-env": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.1.31", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/psl/-/psl-1.1.31.tgz", - "integrity": "sha1-6aqG0BAbWxBcvpOsa3hM1UcnYYQ=" + "propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true }, "pump": { "version": "3.0.0", @@ -5110,33 +2993,95 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "dependencies": { + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, - "read-chunk": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-chunk/-/read-chunk-3.2.0.tgz", - "integrity": "sha1-KYSv54ypv7vbdLGTh7+ehiicFso=", + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, "requires": { - "pify": "^4.0.1", - "with-open-file": "^0.1.6" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true } } }, @@ -5163,161 +3108,437 @@ "picomatch": "^2.0.4" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" } }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", + "resolve-alpn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", + "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=" + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/request/-/request-2.88.2.tgz", - "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", - "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" + "rewire": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", + "dev": true, + "requires": { + "eslint": "^6.8.0" }, "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "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==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } } }, - "uuid": { - "version": "3.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=" + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true } } }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "resolve": { - "version": "1.11.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha1-6hDYEQN2mC/vV434/DC5rDCgej4=", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" - }, - "retry": { - "version": "0.10.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - }, - "rewire": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", - "dev": true, - "requires": { - "eslint": "^6.8.0" - } - }, "rimraf": { - "version": "2.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } }, "run-async": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, "requires": { "is-promise": "^2.1.0" } @@ -5326,6 +3547,7 @@ "version": "6.5.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", + "dev": true, "requires": { "tslib": "^1.9.0" } @@ -5335,24 +3557,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" }, - "scoped-regex": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/scoped-regex/-/scoped-regex-1.0.0.tgz", - "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" - }, "semver": { "version": "7.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.1.3.tgz", @@ -5360,90 +3569,33 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-getter": { - "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-getter/-/set-getter-0.1.0.tgz", - "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", - "optional": true, - "requires": { - "to-object-path": "^0.3.0" - } - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=" - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", - "optional": true, - "requires": { - "kind-of": "^6.0.2" - } - }, "shebang-command": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shelljs": { - "version": "0.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shelljs/-/shelljs-0.8.3.tgz", - "integrity": "sha1-p/MxlSDr8J7oEnWyNorbKGZZsJc=", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, - "slash": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, "slice-ansi": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -5451,183 +3603,37 @@ "is-fullwidth-code-point": "^2.0.0" } }, - "smart-buffer": { - "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.0.2.tgz", - "integrity": "sha1-UgeFjDgVzGkRBwPGuU5GwVY0OV0=" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socks": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.3.2.tgz", - "integrity": "sha1-reOI6ebYf9sRZJwVdGxXiSKliD4=", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "4.0.2" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", - "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha1-dezRqI3owYTvAV6vtRtbSL/RG7E=" + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "dev": true }, "split": { "version": "1.0.1", @@ -5637,35 +3643,11 @@ "through": "2" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "requires": { - "extend-shallow": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", - "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" - } - }, "ssri": { "version": "8.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.0.tgz", @@ -5682,39 +3664,19 @@ "escodegen": "^1.8.1" } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "stream": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", + "integrity": "sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } + "emitter-component": "^1.1.1" } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" - }, "string-width": { "version": "2.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -5748,45 +3710,27 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "requires": { "ansi-regex": "^3.0.0" } }, - "strip-bom-stream": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", - "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", - "requires": { - "first-chunk-stream": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true }, "strip-final-newline": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", - "optional": true + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, @@ -5794,6 +3738,7 @@ "version": "5.2.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-5.2.2.tgz", "integrity": "sha1-b/cmxWQnlbLCcAnpJofI5pprsH0=", + "dev": true, "requires": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.2", @@ -5812,6 +3757,7 @@ "version": "1.0.8", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -5820,6 +3766,7 @@ "version": "4.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.2.0.tgz", "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", + "dev": true, "requires": { "ms": "2.1.2" }, @@ -5827,7 +3774,8 @@ "ms": { "version": "2.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true } } }, @@ -5835,6 +3783,7 @@ "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.0.tgz", "integrity": "sha1-MbfjnIXxNVtxOe4MZHzw3n+DxoI=", + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -5844,85 +3793,52 @@ "mime": { "version": "2.4.6", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime/-/mime-2.4.6.tgz", - "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=" - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "qs": { - "version": "6.9.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.9.4.tgz", - "integrity": "sha1-kJCykNH5FyjTwi5UhDykSupatoc=" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, - "superagent-mocker": { - "version": "0.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-mocker/-/superagent-mocker-0.5.2.tgz", - "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", - "dev": true, - "requires": { - "path-to-regexp": "^1.1.0" - } - }, - "superagent-proxy": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-proxy/-/superagent-proxy-2.0.0.tgz", - "integrity": "sha1-n1dRXNZg4unOVcDmvXD5LrB8PuA=", - "requires": { - "debug": "^3.1.0", - "proxy-agent": "3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } + "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=", + "dev": true }, "ms": { "version": "2.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "qs": { + "version": "6.9.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.9.4.tgz", + "integrity": "sha1-kJCykNH5FyjTwi5UhDykSupatoc=", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true } } }, - "superagent-throttle": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent-throttle/-/superagent-throttle-1.0.1.tgz", - "integrity": "sha1-XrOp0BNwssMgbXqQ6o8ESDaUA9M=" - }, "supports-color": { "version": "5.5.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, "requires": { "has-flag": "^3.0.0" } }, "table": { "version": "5.4.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-5.4.6.tgz", - "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { "ajv": "^6.10.2", @@ -5931,40 +3847,22 @@ "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "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" - } - }, "ansi-regex": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "emoji-regex": { "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -5974,8 +3872,8 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -5985,8 +3883,8 @@ }, "tar": { "version": "6.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.0.5.tgz", - "integrity": "sha1-vegVCG4Qs58dzSmOidWW4VNeIA8=", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -5998,29 +3896,25 @@ "dependencies": { "mkdirp": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" } } }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" + }, "text-table": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "textextensions": { - "version": "2.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-2.4.0.tgz", - "integrity": "sha1-ahQ6mFRkOEzCz/Ea6kSM1bAY5ys=" + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true }, "through": { "version": "2.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { @@ -6031,71 +3925,20 @@ "readable-stream": "2 || 3" } }, - "thunkify": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", - "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, "tmp": { "version": "0.0.33", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=" - }, "tslib": { "version": "1.9.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=" + "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=", + "dev": true }, "tty-table": { "version": "4.1.1", @@ -6111,6 +3954,14 @@ "yargs": "^15.1.0" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, "breakword": { "version": "1.0.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.5.tgz", @@ -6124,6 +3975,28 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "csv": { "version": "5.3.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-5.3.2.tgz", @@ -6155,6 +4028,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -6273,6 +4151,14 @@ } } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, "yargs": { "version": "15.4.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", @@ -6471,22 +4357,9 @@ } } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, "type-check": { "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { "prelude-ls": "~1.1.2" @@ -6499,26 +4372,16 @@ "dev": true }, "type-fest": { - "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true }, "underscore": { "version": "1.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/underscore/-/underscore-1.7.0.tgz", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, - "union-value": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, "unique-filename": { "version": "1.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", @@ -6535,103 +4398,31 @@ "imurmurhash": "^0.1.4" } }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "untildify": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha1-HntCsUC8/ZIrIucMoSZb/jY0x8k=" - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" - }, "uri-js": { - "version": "4.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, "requires": { "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { - "prepend-http": "^1.0.1" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" - }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "uuid": { - "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-7.0.2.tgz", - "integrity": "sha1-f/XCA0Z+kfXg2Fz8uq99LrvKm+Y=" - }, "v8-compile-cache": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha1-VLw83UMxe8qR413K8wWxpyN950U=", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", "dev": true }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -6639,91 +4430,15 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "^1.0.3" } }, - "verror": { - "version": "1.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha1-2FsH2pbkWNJbL/4Z/s6fLKoT7YY=", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-file": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl-file/-/vinyl-file-2.0.0.tgz", - "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0", - "strip-bom-stream": "^2.0.0", - "vinyl": "^1.1.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - } - } - }, "wcwidth": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -6733,13 +4448,14 @@ "version": "1.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, "wide-align": { @@ -6752,63 +4468,22 @@ } }, "windows-release": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/windows-release/-/windows-release-3.2.0.tgz", - "integrity": "sha1-gSLa1a/DA9gzQiOAaAp5zfqReF8=", - "requires": { - "execa": "^1.0.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/execa/-/execa-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "with-open-file": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/with-open-file/-/with-open-file-0.1.6.tgz", - "integrity": "sha1-C8F47Kt19rqsiuEcheB0RdaQ6lA=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", "requires": { - "p-finally": "^1.0.0", - "p-try": "^2.1.0", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" - } + "execa": "^4.0.2" } }, "word-wrap": { "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wordwrap": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "wrap-ansi": { @@ -6874,37 +4549,27 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write/-/write-1.0.3.tgz", - "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" } }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, "y18n": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.0.tgz", "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" }, "yallist": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs-unparser": { "version": "1.6.0", @@ -7018,111 +4683,6 @@ } } } - }, - "yeoman-environment": { - "version": "2.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yeoman-environment/-/yeoman-environment-2.8.1.tgz", - "integrity": "sha1-dsUvzM8mvL197TXZ4iqfPxOU0kE=", - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "diff": "^3.5.0", - "escape-string-regexp": "^1.0.2", - "globby": "^8.0.1", - "grouped-queue": "^1.0.0", - "inquirer": "^6.0.0", - "is-scoped": "^1.0.0", - "lodash": "^4.17.10", - "log-symbols": "^2.2.0", - "mem-fs": "^1.1.0", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "untildify": "^3.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=" - }, - "debug": { - "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "requires": { - "ms": "^2.1.1" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "grouped-queue": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grouped-queue/-/grouped-queue-1.1.0.tgz", - "integrity": "sha1-Y+P5ypCvlSJp0dQIeeQSIerMdMs=", - "requires": { - "lodash": "^4.17.15" - } - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=", - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" - } - } } } } diff --git a/package.json b/package.json index 498d8b45..451aa034 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,11 @@ "main": "./bin/cortex.js", "scripts": { "preinstall": "npx check-node-version -p --package", + "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js", "test": "CORTEX_CONFIG_DIR=./test/cortex mocha --recursive" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "repository": { "type": "git", @@ -29,45 +30,43 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.30", "@hapi/joi": "17.1.1", "boxen": "4.2.0", - "chalk": "3.0.0", + "chalk": "4.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "5.0.0", + "commander": "6.1.0", "debug": "4.1.1", "event-stream": "4.0.1", "find-package-json": "1.2.0", "glob": "7.1.6", + "got": "11.7.0", "is-installed-globally": "0.3.1", "jmespath": "0.15.0", "jose": "2.0.2", "js-yaml": "3.13.1", "jsonpath": "1.0.2", - "jsonwebtoken": "8.5.1", "lodash": "4.17.20", "moment": "2.24.0", "npm-registry-fetch": "8.1.5", - "os-name": "3.1.0", + "os-name": "4.0.0", "progress": "2.0.3", - "request": "2.88.2", "semver": "7.1.3", "split": "1.0.1", - "superagent": "5.2.2", - "superagent-proxy": "2.0.0", - "superagent-throttle": "1.0.1", + "stream": "0.0.2", "through2": "3.0.1", - "tty-table": "4.1.1", - "uuid": "7.0.2", - "yeoman-environment": "2.8.1" + "tty-table": "4.1.1" }, "devDependencies": { "chai": "4.2.0", "chai-as-promised": "7.1.1", + "eslint": "5.16.0", + "eslint-config-airbnb-base": "13.1.0", + "eslint-plugin-import": "2.20.2", "mocha": "7.1.1", + "nock": "13.0.4", "rewire": "5.0.0", - "superagent-mocker": "0.5.2" + "superagent": "5.2.2" } } diff --git a/scripts/cortex b/scripts/cortex index 4c9800db..bdd2867b 100755 --- a/scripts/cortex +++ b/scripts/cortex @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. +# Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance with the License. diff --git a/src/client/accounts.js b/src/client/accounts.js index d5dd8940..b7858fe6 100644 --- a/src/client/accounts.js +++ b/src/client/accounts.js @@ -14,248 +14,26 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); +const got = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Accounts { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoint = `${cortexUrl}/v2/accounts`; - this.groupsEndpoint = `${this.endpoint}/groups`; - this.resourcesEndpoint = `${this.endpoint}/resources`; this.whoAmIEndpoint = `${this.endpoint}/user/whoami`; } - listGroups(token) { - const endpoint = this.groupsEndpoint; - debug('listGroups => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeGroup(token, groupName) { - const endpoint = `${this.groupsEndpoint}/${groupName}`; - debug('describeGroup($s) => %s', groupName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - createGroup(token, groupName, description) { - const endpoint = this.groupsEndpoint; - debug('createGroup(%s) => %s', groupName, endpoint); - let body = { - name: groupName - }; - if (description) - body.description = description; - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(body) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - whoAmI(token) { const endpoint = this.whoAmIEndpoint; debug('whoAmI => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - addMembersToGroup(token, groupName, members) { - const endpoint = `${this.groupsEndpoint}/${groupName}/members`; - debug('addMembersToGroup => %s', endpoint); - return request - .put(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send({ - members: members - }) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - deleteGroup(token, groupName) { - const endpoint = `${this.groupsEndpoint}/${groupName}`; - debug('deleteGroup($s) => %s', groupName, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - removeMembersFromGroup(token, groupName, members) { - const endpoint = `${this.groupsEndpoint}/${groupName}/members`; - debug('removeMembersFromGroup($s) => %s', groupName, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send({ - members: members - }) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - - registerResource(token, resourceName, description, access) { - const endpoint = this.resourcesEndpoint; - debug('registerResource(%s) => %s', resourceName, endpoint); - let body = { - name: resourceName - }; - if (description) - body.description = description; - if (access) - body.access = access; - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(body) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - grantGroupAccessToResource(token, resourceId, groupName) { - const endpoint = `${this.resourcesEndpoint}/${resourceId}/access`; - debug('grantGroupAccessToResource(%s) => %s', resourceId, endpoint); - return request - .put(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send({ - groupId: groupName - }) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - // TODO: To be implemented - // listResources(token) { - // const endpoint = this.resourcesEndpoint; - // debug('listResources => %s', endpoint); - // return request - // .get(endpoint) - // .set('Authorization', `Bearer ${token}`) - // .then((res) => { - // if (res.ok) { - // return {success: true, result: res.body}; - // } - // return {success: false, status: res.status, message: res.body}; - // }); - // } - - // TODO: To be implemented - // unregisterResource(token, resourceName) { - // const endpoint = `${this.resourcesEndpoint}/${resourceName}`; - // debug('unregisterResource(%s) => %s', resourceName, endpoint); - // return request - // .delete(endpoint) - // .set('Authorization', `Bearer ${token}`) - // .then((res) => { - // if (res.ok) { - // return {success: true, result: res.body}; - // } - // return {success: false, status: res.status, message: res.body}; - // }); - // } - - // TODO: To be implemented - // revokeGroupAccessToResource(token, resourceId) { - // const endpoint = `${this.resourcesEndpoint}/${resourceId}/access`; - // debug('revokeGroupAccessToResource(%s) => %s', resourceId, endpoint); - // return request - // .delete(endpoint) - // .set('Authorization', `Bearer ${token}`) - // .then((res) => { - // if (res.ok) { - // return {success: true, result: res.body}; - // } - // return {success: false, status: res.status, message: res.body}; - // }); - // } - }; diff --git a/src/client/actions.js b/src/client/actions.js index 6b8675df..3f0f688f 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,278 +13,205 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -const url = require('url'); +const _ = require('lodash'); const chalk = require('chalk'); -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const jsonwebtoken = require('jsonwebtoken'); -const { constructError, callMe } = require('../commands/utils'); +const jose = require('jose'); +const { got } = require('./apiutils'); +const { + constructError, callMe, checkProject, getUserAgent, +} = require('../commands/utils'); module.exports = class Actions { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/actions`; - this.endpointV3 = `${cortexUrl}/v3/actions`; - this.endpointJobsV3 = `${cortexUrl}/v3/jobs`; + this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/actions`; } - invokeAction(token, actionName, params, actionType) { - let endpoint = `${this.endpointV3}/${actionName}/invoke`; - if (actionType) { - endpoint = `${endpoint}?actionType=${actionType}` - } - debug('invokeAction(%s) => %s', actionName, endpoint); - - const req = request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .send(params); - - return req.then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - async deployAction(token, actionName, params) { - let endpoint = `${this.endpointV3}`; + async deployAction(projectId, token, actionName, params) { + checkProject(projectId); + let endpoint = this.endpointV4(projectId); if (params.actionType) { endpoint = `${endpoint}?actionType=${params.actionType}`; } debug('deployAction(%s, docker=%s, ttl=%s) => %s', actionName, params.dockerImage, params.ttl, endpoint); - + const body = { ...params }; try { - params.docker = await this._maybePushDockerImage(params.dockerImage, token, params.pushDocker); + body.docker = await this._maybePushDockerImage(params.dockerImage, token, params.pushDocker); } catch (error) { - return {success: false, status: 400, message: error.message || error}; + return { success: false, status: 400, message: error.message || error }; } - params.name = actionName; + body.name = actionName; - const req = request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .send(params); - - return req.then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); } - listActions(token) { + listActions(projectId, token) { + checkProject(projectId); debug('listActions() => %s', this.endpointV3); - return request - .get(this.endpointV3) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, actions: res.body.functions}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - - } - - describeAction(token, actionName) { - const endpoint = `${this.endpointV3}/${actionName}`; + return got + .get(this.endpointV4(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(actions => actions) + .catch(err => constructError(err)); + } + + describeAction(projectId, token, actionName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${actionName}`; debug('describeAction(%s) => %s', actionName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, action: res.body.function}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { headers: { Authorization: `Bearer ${token}` } }) + .json() + .then(action => action) + .catch(err => constructError(err)); } - getLogsAction(token, actionName) { - const endpoint = `${this.endpointV3}/${actionName}/logs`; + getLogsAction(projectId, token, actionName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${actionName}/logs`; debug('getLogsAction(%s) => %s', actionName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - if (_.isArray(res.body)) { + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then((logs) => { + if (_.isArray(logs)) { // returns plain array for Rancher daemons - return {success: true, logs: res.body}; + return { success: true, logs }; } - return res.body; - } - return {success: false, status: res.status, message: res.body}; + return logs; }) - .catch((err) => { - return constructError(err); - }); + .catch(err => constructError(err)); } - deleteAction(token, actionName, actionType) { - let endpoint = `${this.endpointV3}/${actionName}`; + deleteAction(projectId, token, actionName, actionType) { + checkProject(projectId); + let endpoint = `${this.endpointV4(projectId)}/${actionName}`; if (actionType) { - endpoint = `${endpoint}?actionType=${actionType}` + endpoint = `${endpoint}?actionType=${actionType}`; } debug('deleteAction(%s, %s) => %s', actionName, actionType, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return {success: true, action: res.body.action}; - } - return {success: false, status: res.status, message: res.body}; + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(action => ({ success: true, action })) + .catch(err => constructError(err)); } - taskLogs(token, jobId, taskId) { + taskLogs(projectId, token, jobId, taskId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}/logs`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/logs`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(res => res) + .catch(err => constructError(err)); } - taskCancel(token, jobId, taskId) { + taskCancel(projectId, token, jobId, taskId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}`; - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}`; + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(res => res) + .catch(err => constructError(err)); } - taskStatus(token, jobId, taskId) { + taskStatus(projectId, token, jobId, taskId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}/status`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/status`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() .then((res) => { - if (res.ok) { - const resBody = res.body; - debug('resBody (with provider status as well): %s', resBody); - const respBodyNoProviderField = _.omit(resBody, '_providerStatus'); - return respBodyNoProviderField; - } - return {success: false, status: res.status, message: res.body}; + debug('resBody (with provider status as well): %s', res); + return _.omit(res, '_providerStatus'); }) - .catch((err) => { - return constructError(err); - }); + .catch(err => constructError(err)); } - jobListTasks(token, jobId) { + jobListTasks(projectId, token, jobId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(res => res) + .catch(err => constructError(err)); } - taskStats(token, jobId) { + taskStats(projectId, token, jobId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/stats`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/stats`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); - } - - listTasksByActivation(token, activationId) { - const endpoint = `${this.endpointV3}/${activationId}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + .json() + .then(res => res) + .catch(err => constructError(err)); + } + + listTasksByActivation(projectId, token, activationId) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${activationId}`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); - } - - getConfig(token) { - return request - .get(_.join([this.endpointV3, '_config'], '/')) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, config: res.body.config}; - } - return {success: false, status: res.status, message: res.body}; + .json() + .then(res => res) + .catch(err => constructError(err)); + } + + getConfig(projectId, token) { + checkProject(projectId); + const endpoint = _.join([this.endpointV4(projectId), '_config'], '/'); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(config => ({ success: true, config })) + .catch(err => constructError(err)); } static getCanonicalJobId(jobId) { @@ -292,17 +219,15 @@ module.exports = class Actions { const namespaceProvided = /\w\/\w/.test(jobId); if (!namespaceProvided) { canonicalJobId = `default/${jobId}`; - console.warn(chalk.yellow(`Namespace not given in jobId, assuming 'default'`)); + console.warn(chalk.yellow('Namespace not given in jobId, assuming \'default\'')); } return canonicalJobId; } async _cortexRegistryUrl(token) { const res = await this.getConfig(token); - if (res.success) - return res.config.dockerPrivateRegistryUrl - else - throw res + if (res.success) return res.config.dockerPrivateRegistryUrl; + throw res; } _cortexRegistryImagePath(registryUrl, imageRepo, tenant) { @@ -312,11 +237,11 @@ module.exports = class Actions { async _maybePushDockerImage(image, token, pushDocker) { if (!image || !pushDocker) { - return image + return image; } const registryUrl = await this._cortexRegistryUrl(token); const imageName = image.replace(/.+\..+\//, ''); - const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, jsonwebtoken.decode(token).tenant); + const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, jose.JWT.decode(token).tenant); await callMe(`docker login -u cli --password ${token} ${registryUrl}`); await callMe(`docker pull ${image} || echo "Docker pull failed using local image"`); await callMe(`docker tag ${image} ${cortexImageUrl}`); diff --git a/src/client/agents.js b/src/client/agents.js index 51869bae..3d1e1788 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,291 +14,101 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Agents { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/agents`; - this.endpointV3 = `${cortexUrl}/v3/agents`; + this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}`; } - invokeAgentService(token, agentName, serviceName, params) { - const endpoint = `${this.endpointV3}/${agentName}/services/${serviceName}`; + invokeAgentService(projectId, token, agentName, serviceName) { + const endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(params) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - getActivation(token, activationId) { - const endpoint = `${this.endpointV3}/activations/${activationId}`; + getActivation(projectId, token, activationId) { + const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - listActivations(token, instanceId, environmentName) { - let endpoint = `${this.endpointV3}/instances/${instanceId}/activations`; - debug('listActivations(%s, %s) => %s', instanceId, environmentName, endpoint); + listActivations(projectId, token, snapshotId, environmentName) { + let endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}/activations`; + debug('listActivations(%s, %s) => %s', snapshotId, environmentName, endpoint); if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - listAgentSnapshots(token, agentName, environmentName) { - let endpoint = `${this.endpoint}/snapshots/${agentName}`; + listAgentSnapshots(projectId, token, agentName, environmentName) { + let endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/snapshots`; debug('listAgentSnapshots(%s, %s) => %s', agentName, environmentName, endpoint); if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - - listSnapshotInstances(token, snapshotId, environmentName) { - let endpoint = `${this.endpoint}/instances?snapshotId=${snapshotId}`; - debug('listSnapshotInstances(%s, %s) => (%s)', snapshotId, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; - - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, instances: res.body.instances}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - describeAgentSnapshot(token, snapshotId, environmentName) { - let endpoint = `${this.endpoint}/snapshots/${snapshotId}?deps=true`; + describeAgentSnapshot(projectId, token, snapshotId, environmentName) { + let endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, environmentName, endpoint); if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - createAgentSnapshot(token, snapshot) { - const endpoint = `${this.endpoint}/snapshots`; + createAgentSnapshot(projectId, token, snapshot) { + const endpoint = `${this.endpointV4(projectId)}/agents/${snapshot.agentName}/snapshots`; debug('getAgentSnapshot=> %s', endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(snapshot) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - listAgentInstances(token, agentName, environmentName) { - let endpoint = `${this.endpoint}/instances/${agentName}`; - debug('getAgentInstances(%s, %s) => %s', agentName, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; - - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, instances: res.body.instances}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: snapshot, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - - createAgentInstance(token, instance) { - const endpoint = `${this.endpoint}/instances`; - debug('createAgentInstance => %s', endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(instance) - .type('json') - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - getAgentInstance(token, instanceId) { - const endpoint = `${this.endpoint}/instances/${instanceId}`; - debug('getAgentInstance => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - deleteAgentInstance(token, instanceId) { - const endpoint = `${this.endpoint}/instances/${instanceId}`; - debug('deleteAgentInstance => %s', endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - stopAgentInstance(token, instanceId) { - const endpoint = `${this.endpoint}/instances/${instanceId}/stop`; - debug('stopAgentInstance => %s', endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - - listTriggers(token) { - const endpoint = `${this.endpoint}/triggers`; + listTriggers(projectId, token) { + const endpoint = `${this.endpointV4(projectId)}/triggers`; debug('listTriggers => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } }; diff --git a/src/commands/apiutils.js b/src/client/apiutils.js similarity index 84% rename from src/commands/apiutils.js rename to src/client/apiutils.js index 92fa221b..b621f15d 100644 --- a/src/commands/apiutils.js +++ b/src/client/apiutils.js @@ -1,24 +1,27 @@ +const got = require('got'); -const superagentRequest = require('superagent'); -require('superagent-proxy')(superagentRequest); -const debug = require('debug')('cortex:cli'); - -const { printWarning } = require('./utils'); -const { getUserAgent } = require('../useragent'); - -function handleAuthError(res, req) { - if (res.headers['x-auth-error']) { - res.statusCode = 401; - this.callback(new Error(`Auth Error: ${res.headers['x-auth-error']}`)); - } -} +module.exports.got = got.extend({ + followRedirect: false, + hooks: { + afterResponse: [ + (res) => { + if (res.headers['x-auth-error']) { + res.statusCode = 401; + throw new Error(`Auth Error: ${res.headers['x-auth-error']}`); + } + return res; + }, + ], + }, +}); /** * makes a request via superagent. proxy methods will be utilized * if the user (i.e. person running cli commands) has set environment * variables for their proxy (this is assuming ofc they have a proxy). if * no env variables set, the request just keeps piping through. */ - +// TODO for proxies https://github.com/gajus/global-agent +/** function requestWrapper() { // @tutorial: https://stackoverflow.com/questions/22156326/private-properties-in-javascript-es6-classes // below are private variables @@ -83,3 +86,4 @@ function requestWrapper() { } module.exports.request = new requestWrapper(); +* */ diff --git a/src/client/catalog.js b/src/client/catalog.js index 476b2618..52293ab1 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,341 +14,264 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError, formatAllServiceInputParameters } = require('../commands/utils'); -const AGENTS_API_VERSION = 'v3'; +const { got } = require('./apiutils'); +const { + constructError, formatAllServiceInputParameters, checkProject, getUserAgent, +} = require('../commands/utils'); -const createEndpoints = (baseUri) => { - return { - catalog: `${baseUri}/v2/catalog`, - skills: `${baseUri}/v3/catalog/skills`, - agents: `${baseUri}/v3/catalog/agents`, - types: `${baseUri}/v3/catalog/types`, - agentVersions: `${baseUri}/v3/agents/versions`, - profileSchemas: `${baseUri}/v3/graph/profiles/schemas`, - } -}; +const createEndpoints = baseUri => ({ + skills: projectId => `${baseUri}/fabric/v4/projects/${projectId}/skills`, + agents: projectId => `${baseUri}/fabric/v4/projects/${projectId}/agents`, + types: projectId => `${baseUri}/fabric/v4/projects/${projectId}/types`, + }); module.exports = class Catalog { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoints = createEndpoints(cortexUrl); } - saveSkill(token, skillObj) { + saveSkill(projectId, token, skillObj) { + checkProject(projectId); debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills); - return request - .post(this.endpoints.skills) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(skillObj) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(this.endpoints.skills(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: skillObj, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); } - listSkills(token) { + listSkills(projectId, token) { + checkProject(projectId); debug('listSkills() => %s', this.endpoints.skills); - return request - .get(this.endpoints.skills) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, skills: res.body.skills || res.body.processors}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(this.endpoints.skills(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(skills => ({ success: true, ...skills })) + .catch(err => constructError(err)); } - describeSkill(token, skillName) { - const endpoint = `${this.endpoints.skills}/${skillName}`; + describeSkill(projectId, token, skillName) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${skillName}`; debug('describeSkill(%s) => %s', skillName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, skill: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, skill: res })) + .catch(err => constructError(err)); } - listAgents(token) { - debug('listAgents() => %s', this.endpoints.agents); - return request - .get(this.endpoints.agents) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, agents: res.body.agents}; - } - return {success: false, status: res.status, message: res.body}; + listAgents(projectId, token) { + checkProject(projectId); + const endpoint = this.endpoints.agents(projectId); + debug('listAgents() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(agentResp => ({ success: true, ...agentResp })) + .catch(err => constructError(err)); } - listServices(token, agentName, profile) { + listServices(projectId, token, agentName) { + // TODO removed profile should I use that as the URL ?? + checkProject(projectId); debug('listServices() using describeAgent'); - return this.describeAgent(profile.token, agentName).then((response) => { + return this.describeAgent(projectId, token, agentName).then((response) => { if (response.success) { - const urlBase = `${profile.url}/${AGENTS_API_VERSION}/agents/${agentName}/services`; + const urlBase = `${this.endpoints.agents(projectId)}/${agentName}/services`; const servicesList = response.agent.inputs .filter(i => i.signalType === 'Service') .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) - .map(i => ({ ...i, formatted_types: - formatAllServiceInputParameters(i.parameters)})); + .map(i => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); return { success: true, services: servicesList }; - } else { + } return response; - } }); } - saveAgent(token, agentObj) { - debug('saveAgent(%s) => %s', agentObj.name, this.endpoints.agents); - return request - .post(this.endpoints.agents) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(agentObj) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + saveAgent(projectId, token, agentObj) { + checkProject(projectId); + const endpoint = this.endpoints.agents(projectId); + debug('saveAgent(%s) => %s', agentObj.name, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: agentObj, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); } - describeAgent(token, agentName) { - const endpoint = `${this.endpoints.agents}/${agentName}`; + describeAgent(projectId, token, agentName) { + checkProject(projectId); + const endpoint = `${this.endpoints.agents(projectId)}/${agentName}`; debug('describeAgent(%s) => %s', agentName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, agent: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(agent => ({ success: true, agent })) + .catch(err => constructError(err)); } - describeAgentVersions(token, agentName) { - const endpoint = `${this.endpoints.agentVersions}/${agentName}`; + describeAgentVersions(projectId, token, agentName) { + checkProject(projectId); + const endpoint = `${this.endpoints.agents(projectId)}/${agentName}/versions`; debug('describeAgentVersions(%s) => %s', agentName, endpoint); - - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, agent: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(agent => ({ success: true, agent })) + .catch(err => constructError(err)); } - saveType(token, types) { - const names = types.types.map((t) => t.name); + saveType(projectId, token, types) { + checkProject(projectId); + const endpoint = `${this.endpoints.types(projectId)}`; + const names = types.types.map(t => t.name); debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types); - return request - .post(this.endpoints.types) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(types) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: types, }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - describeType(token, typeName) { - const endpoint = `${this.endpoints.types}/${typeName}`; + describeType(projectId, token, typeName) { + checkProject(projectId); + const endpoint = `${this.endpoints.types(projectId)}/${typeName}`; debug('describeType(%s) => %s', typeName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, type: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(type => ({ success: true, type })) + .catch(err => constructError(err)); } - listTypes(token) { + listTypes(projectId, token) { + checkProject(projectId); + const endpoint = `${this.endpoints.types(projectId)}`; debug('listTypes() => %s', this.endpoints.types); - return request - .get(this.endpoints.types) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, types: res.body.types}; - } - return {success: false, status: res.status, message: res.body}; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(types => ({ success: true, ...types })) + .catch(err => constructError(err)); } - saveProfileSchema(token, schemaObj) { - debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); - return request - .post(this.endpoints.profileSchemas) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(schemaObj) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - - listProfileSchemas(token, filter, sort, limit, skip) { - debug('listProfileSchemas() => %s', this.endpoints.profileSchemas); - const req = request - .get(this.endpoints.profileSchemas) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (filter) req.query({ filter }); - if (sort) req.query({ sort }); - if (limit) req.query({ limit }); - if (skip) req.query({ skip }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, schemas: res.body.schemas}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeProfileSchema(token, schemaName) { - const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; - debug('describeProfileSchema(%s) => %s', schemaName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, schema: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - deleteProfileSchema(token, schemaName) { - const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; - debug('deleteProfileSchema(%s) => %s', schemaName, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } + // saveProfileSchema(projectId, token, schemaObj) { + // debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); + // return request + // .post(this.endpoints.profileSchemas) + // .set('Authorization', `Bearer ${token}`) + // .set('x-cortex-proxy-notify', true) + // .send(schemaObj) + // .then((res) => { + // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + // console.error(chalk.blue('Request proxied to cloud.')); + // if (res.ok) { + // return {success: true, message: res.body}; + // } + // return {success: false, message: res.body, status: res.status}; + // }) + // .catch((err) => { + // return constructError(err); + // }); + // } + // + // listProfileSchemas(projectId, token, filter, sort, limit, skip) { + // debug('listProfileSchemas() => %s', this.endpoints.profileSchemas); + // const req = request + // .get(this.endpoints.profileSchemas) + // .set('Authorization', `Bearer ${token}`) + // .set('x-cortex-proxy-notify', true); + // + // if (filter) req.query({ filter }); + // if (sort) req.query({ sort }); + // if (limit) req.query({ limit }); + // if (skip) req.query({ skip }); + // + // return req.then((res) => { + // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + // console.error(chalk.blue('Request proxied to cloud.')); + // if (res.ok) { + // return {success: true, schemas: res.body.schemas}; + // } + // return {success: false, status: res.status, message: res.body}; + // }) + // .catch((err) => { + // return constructError(err); + // }); + // } + // + // describeProfileSchema(projectId, token, schemaName) { + // const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; + // debug('describeProfileSchema(%s) => %s', schemaName, endpoint); + // return request + // .get(endpoint) + // .set('Authorization', `Bearer ${token}`) + // .set('x-cortex-proxy-notify', true) + // .then((res) => { + // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + // console.error(chalk.blue('Request proxied to cloud.')); + // if (res.ok) { + // return {success: true, schema: res.body}; + // } + // else { + // return {success: false, message: res.body, status: res.status}; + // } + // }) + // .catch((err) => { + // return constructError(err); + // }); + // } + // + // deleteProfileSchema(projectId, token, schemaName) { + // const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; + // debug('deleteProfileSchema(%s) => %s', schemaName, endpoint); + // return request + // .delete(endpoint) + // .set('Authorization', `Bearer ${token}`) + // .set('x-cortex-proxy-notify', true) + // .then((res) => { + // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + // console.error(chalk.blue('Request proxied to cloud.')); + // if (res.ok) { + // return {success: true}; + // } + // else { + // return {success: false, message: res.body, status: res.status}; + // } + // }) + // .catch((err) => { + // return constructError(err); + // }); + // } }; diff --git a/src/client/connections.js b/src/client/connections.js index 007c878d..f77a3ce1 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,120 +14,99 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Connections { - constructor(cortexUrl) { + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/connections`; this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/connections`; } - queryConnection(token, connectionName, queryObject) { - const queryEndpoint = `${this.endpoint}/${connectionName}/query` - debug('queryConnection(%s) => %s', connectionName, queryEndpoint); - return request - .post(queryEndpoint) - .set('Authorization', `Bearer ${token}`) - .send(queryObject) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + async queryConnection(projectId, token, connectionName, queryObject) { + const endpoint = `${this.endpoint(projectId)}/${connectionName}/query`; + debug('queryConnection(%s) => %s', connectionName, endpoint); + try { + const message = await got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: queryObject, + }).json(); + return { success: true, message }; + } catch (err) { + return constructError(err); + } } - listConnections(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + listConnections(projectId, token) { + const endpoint = `${this.endpoint(projectId)}`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - saveConnection(token, connObj) { - debug('saveConnection(%s) => %s', connObj.name, this.endpoint); - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .send(connObj) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + async saveConnection(projectId, token, connObj) { + const endpoint = `${this.endpoint(projectId)}`; + debug('saveConnection(%s) => %s', connObj.name, this.endpoint(projectId)); + try { + const message = await got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: connObj, + }).json(); + return { success: true, message }; + } catch (err) { + return constructError(err); + } } - describeConnection(token, connectionName) { - const endpoint = `${this.endpoint}/${connectionName}`; + describeConnection(projectId, token, connectionName) { + const endpoint = `${this.endpoint(projectId)}/${connectionName}`; debug('describeConnection(%s) => %s', connectionName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - testConnection(token, {name, title, description, connectionType, allowWrite, tags, params}) { - const url = this.endpoint + '/test'; + async testConnection(projectId, token, { + name, title, description, connectionType, allowWrite, tags, params, + }) { + const url = `${this.cortexUrl}/fabric/v4/projects/${projectId}/connectiontest`; debug('saveConnection(%s) => %s', name, url); - return request - .post(url) - .set('Authorization', `Bearer ${token}`) - .send({name, title, description, connectionType, allowWrite, tags, params}) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.message, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + try { + const message = await got + .post(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { + name, title, description, connectionType, allowWrite, tags, params, + }, + }).json(); + return { success: true, message }; + } catch (err) { + return constructError(err); + } } listConnectionsTypes(token) { - const endpoint = `${this.endpoint}/types`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + const endpoint = `${this.cortexUrl}/fabric/v4/connectiontypes`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - }; - diff --git a/src/client/content.js b/src/client/content.js index 5d52faf4..4c255582 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,21 +15,20 @@ */ const fs = require('fs'); -const os = require('os'); -const path = require('path'); -const { URL } = require('url'); +const stream = require('stream'); +const { got } = require('./apiutils'); +const { promisify } = require('util'); + +const pipeline = promisify(stream.pipeline); -const ProgressBar = require('progress'); -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); -const { getUserAgent } = require('../useragent'); +const { constructError, getUserAgent } = require('../commands/utils'); +const Variables = require('./variables'); module.exports = class Content { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/content`; + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/content`; } _sanitizeKey(key) { @@ -37,209 +36,81 @@ module.exports = class Content { return key.replace(/^\//, ''); } - listContent(token) { - debug('listContent %s', this.endpoint); - return request - .get(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + listContent(projectId, token) { + const endpoint = this.endpoint(projectId); + debug('listContent %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - uploadContent(token, {content, key}) { - debug('uploadContent(%s, %s) => %s', key, content, this.endpoint); + // eslint-disable-next-line no-unused-vars + async uploadContentStreaming(projectId, token, key, content, showProgress = false, contentType = 'application/octet-stream') { const contentKey = this._sanitizeKey(key); - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .field('key', contentKey) - .attach('content', content) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - - uploadContentStreaming(token, key, content, showProgress = false, contentType='application/octet-stream') { - debug('uploadContentStreaming(%s, %s) => %s', key, content, `${this.endpoint}/${key}`); - - // NOTE: superagent only supports uploads via .attach(), which uses multipart forms (@see - // https://github.com/visionmedia/superagent/issues/1250). To perform a streaming upload, - // we use requestjs instead. - const requestLibRequest = require('request'); - - const contentKey = this._sanitizeKey(key); - const url = new URL(`${this.endpoint}/${contentKey}`); - - let progressBar; - if (showProgress) { - progressBar = new ProgressBar( - ' uploading [:bar] :percent :etas', - { renderThrottle: 500, total: fs.statSync(content).size } + const endpoint = `${this.endpoint(projectId)}/${contentKey}`; + // todo show progress.. + debug('uploadContentStreaming(%s, %s) => %s', key, content, endpoint); + try { + const message = await pipeline( + fs.createReadStream(content), + got.stream.post(endpoint, { + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': contentType, + }, + }), ); + return { success: true, message }; + } catch (err) { + return constructError(err); } - - return new Promise((resolve) => { - fs - .createReadStream(content) - .on('data', (chunk) => { - progressBar && progressBar.tick(chunk.length); - }) - .pipe(requestLibRequest - .post({ - uri: url, - headers: { - 'Accept': 'application/json', - 'Authorization': `Bearer ${token}`, - 'Content-Type': contentType, - 'User-Agent': getUserAgent(), - } - }, function(err, res, body) { - if (err) { - resolve({success: false, message: err.message}); - return; - } - if (res.statusCode === 200) { - resolve({success: true, message: body}); - return; - } - // NOTE this is using npm request NOT superagent - fields are different - resolve({success: false, message: body, status: res.statusCode}); - }) - ); - }); } - uploadSecureContent(token, key, content) { + async uploadSecureContent(projectId, token, key, content) { const contentKey = this._sanitizeKey(key); - const url = `${this.cortexUrl}/v2/tenants/secrets/${contentKey}`; - debug('uploadSecureContent(%s) => %s', content, url); - return request - .post(url) - .set('Authorization', `Bearer ${token}`) - .send(content) - .accept('application/json') - .type('json') - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const vars = new Variables(this.cortextUrl); + return vars.writeVariable(projectId, token, contentKey, content); } - - deleteContent(token, key) { - debug('deleteContent(%s) => %s', key, this.endpoint); + deleteContent(projectId, token, key) { const contentKey = this._sanitizeKey(key); - const url = `${this.endpoint}/${contentKey}`; - return request - .delete(url) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const endpoint = `${this.endpoint(projectId)}/${contentKey}`; + debug('deleteContent => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - downloadContent(token, key, showProgress = false) { - debug('downloadContent(%s) => %s', key, this.endpoint); + // TODO progress + // eslint-disable-next-line no-unused-vars + async downloadContent(projecId, token, key, showProgress = false) { const contentKey = this._sanitizeKey(key); - const url = `${this.endpoint}/${contentKey}`; - - const stream = request - .get(url) - .set('Authorization', `Bearer ${token}`) - .use((req) => { - if (showProgress) { - req.on('request', (clientReq) => { - clientReq.on('response', function(res) { - const total = +(res.headers['content-length'] || res.headers['Content-Length']); - const progressBar = new ProgressBar( - ' downloading [:bar] :percent :etas', - { - current: 0, - renderThrottle: 500, - total: total, - } - ); - - res.on('data', (chunk) => progressBar.tick(chunk.length)); - }); - }); - } - }); - - return new Promise((resolve, reject) => { - stream.on('response', function(response) { - if (response.status !== 200) { - stream.abort(); - return resolve({ - success: false, - status: stream.response.status, - message: stream.response.error - }); - } - }); - - stream.on('end', () => { - return resolve({ - success: true, - message: `\nDownloaded ${contentKey}`, - status: stream.response.status - }); - }); - - stream.on('error', (err) => { - return resolve(constructError(err)); - }); - - stream.pipe(process.stdout); - }); + const endpoint = `${this.endpoint(projecId)}/${contentKey}`; + debug('downloadContent(%s) => %s', key, this.endpoint); + try { + return pipeline( + got.stream(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }), + process.stdout, + ); + } catch (err) { + return constructError(err); + } } - - downloadSecureContent(token, key) { + async downloadSecureContent(projectId, token, key) { const contentKey = this._sanitizeKey(key); - const url = `${this.cortexUrl}/v2/tenants/secrets/${contentKey}`; - debug('downloadContent(%s) => %s', contentKey, url); - return request - .get(url) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return {success: true, message: res.text}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const vars = new Variables(this.cortextUrl); + return vars.readVariable(projectId, token, contentKey); } - }; - diff --git a/src/client/datasets.js b/src/client/datasets.js index 3c6e3dbd..de6a3418 100644 --- a/src/client/datasets.js +++ b/src/client/datasets.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,105 +14,73 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Datasets { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v3/datasets`; + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/datasets`; } - listDatasets(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + listDatasets(projectId, token) { + const endpoint = `${this.endpoint(projectId)}`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - saveDatasets(token,dsObject) { + saveDatasets(projectId, token, dsObject) { + const endpoint = `${this.endpoint(projectId)}`; debug('saveConnection(%s) => %s', dsObject.name, this.endpoint); - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .send(dsObject) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; // don't think we ever hit this - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: dsObject, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); } - describeDataset(token, datasetName) { - const endpoint = `${this.endpoint}/${datasetName}`; + describeDataset(projectId, token, datasetName) { + const endpoint = `${this.endpoint(projectId)}/${datasetName}`; debug('describeConnection(%s) => %s', datasetName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); +} - getDataframe (token, datasetName) { - const endpoint = `${this.endpoint}/${datasetName}/dataframe`; + getDataframe(projectId, token, datasetName) { + const endpoint = `${this.endpoint(projectId)}/${datasetName}/dataframe`; debug('describeConnection(%s) => %s', datasetName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - streamDataset(token, datasetName) { - const endpoint = `${this.endpoint}/${datasetName}/stream`; + streamDataset(projectId, token, datasetName) { + const endpoint = `${this.endpoint(projectId)}/${datasetName}/stream`; debug('describeConnection(%s) => %s', datasetName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .buffer() - .then((res) => { - if (res.ok) { - return {success: true, result: res}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } }; diff --git a/src/client/environments.js b/src/client/environments.js deleted file mode 100644 index 158ed6fc..00000000 --- a/src/client/environments.js +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); - -module.exports = class Environments { - - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/agents/environments`; - } - - listEnvironments(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - saveEnvironment(token, env) { - debug('saveEnvironment(%s) => %s', env.name, this.endpoint); - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .send(env) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - promoteEnvironment(token, promoteDef) { - debug('promoteEnvironment(%s) => %s', promoteDef.environmentName, this.endpoint); - return request - .post(`${this.endpoint}/promote`) - .set('Authorization', `Bearer ${token}`) - .send(promoteDef) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeEnvironment(token, environmentName) { - const endpoint = `${this.endpoint}/${environmentName}`; - debug('describeEnvironment(%s) => %s', environmentName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - listInstances(token, environmentName) { - const endpoint = `${this.endpoint}/${environmentName}/instances`; - debug('listInstances(%s) => %s', environmentName, this.endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } -}; - diff --git a/src/client/experiments.js b/src/client/experiments.js index d7e91759..c5129934 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,177 +14,109 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const ProgressBar = require('progress'); -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); +const Content = require('./content'); module.exports = class Experiments { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/experiments`; + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; } - listExperiments(token) { - const endpoint = `${this.endpoint}`; + listExperiments(projectId, token) { + const endpoint = `${this.endpoint(projectId)}`; debug('listExperiments() => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - describeExperiment(token, name) { - const endpoint = `${this.endpoint}/${name}`; + describeExperiment(projectId, token, name) { + const endpoint = `${this.endpoint(projectId)}/${name}`; debug('describeExperiment(%s) => %s', name, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - deleteExperiment(token, name) { - const endpoint = `${this.endpoint}/${name}`; + deleteExperiment(projectId, token, name) { + const endpoint = `${this.endpoint(projectId)}/${name}`; debug('deleteExperiment(%s) => %s', name, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - listRuns(token, experimentName, filter, limit, sort) { - const endpoint = `${this.endpoint}/${experimentName}/runs`; + listRuns(projectId, token, experimentName, filter, limit, sort) { + const endpoint = `${this.endpoint(projectId)}/${experimentName}/runs`; debug('listRuns(%s) => %s', experimentName, endpoint); - const req = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`); - - if (filter) req.query({filter}); - if (limit) req.query({limit}); - if (sort) req.query({sort}); - - return req.then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - describeRun(token, experimentName, runId) { - const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}`; + describeRun(projectId, token, experimentName, runId) { + const endpoint = `${this.endpoint(projectId)}/${experimentName}/runs/${runId}`; debug('describeRun(%s) => %s', runId, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - deleteRun(token, experimentName, runId) { - const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}`; + deleteRun(projectId, token, experimentName, runId) { + const endpoint = `${this.endpoint(projectId)}/${experimentName}/runs/${runId}`; debug('deleteRun(%s) => %s', runId, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - downloadArtifact(token, experimentName, runId, artifactName, showProgress = false) { - const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}/artifacts/${artifactName}`; - debug('downloadArtifact(%s) => %s', artifactName, endpoint); - - const stream = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .use((req) => { - if (showProgress) { - req.on('request', (clientReq) => { - clientReq.on('response', function(res) { - const total = +(res.headers['content-length'] || res.headers['Content-Length']); - const progressBar = new ProgressBar( - ' downloading [:bar] :percent :etas', - { - current: 0, - renderThrottle: 500, - total: total, - } - ); - - res.on('data', (chunk) => progressBar.tick(chunk.length)); - }); - }); - } - }); - - return new Promise((resolve, reject) => { - stream.on('response', function(response) { - if (response.status !== 200) { - stream.abort(); - return resolve({ - success: false, - status: stream.response.status, - message: stream.response.error - }); - } - }); - - stream.on('end', () => { - return resolve({ - success: true, - message: `\nDownloaded ${artifactName}`, - status: stream.response.status - }); - }); - - stream.on('error', (err) => { - return resolve(constructError(err)); - }); + _artifactKey(experimentName, runId, artifact) { + return `experiments/${experimentName}/${runId}/artifacts/${artifact}`; + } - stream.pipe(process.stdout); - }); + // eslint-disable-next-line no-unused-vars + async downloadArtifact(projectId, token, experimentName, runId, artifactName, showProgress = false) { + try { + // Check if run exists.. + await this.describeRun(projectId, token, experimentName, runId); + // just generate the key and avoid hop to managed content.. + const key = this._artifactKey(experimentName, runId, artifactName); + const cont = new Content(this.cortexUrl); + return cont.downloadContent(projectId, token, key, showProgress); + } catch (err) { + return constructError(err); + } } }; diff --git a/src/client/graph.js b/src/client/graph.js index a096512c..c786d504 100644 --- a/src/client/graph.js +++ b/src/client/graph.js @@ -14,314 +14,191 @@ * limitations under the License. */ -const Throttle = require('superagent-throttle'); const debug = require('debug')('cortex:cli:graph'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError } = require('../commands/utils'); -const { request } = require('../commands/apiutils'); - -const createEndpoints = (baseUri) => { - return { - profileVersions: `${baseUri}/v3/graph/profile-versions`, - profiles: `${baseUri}/v3/graph/profiles`, - schemas: `${baseUri}/v3/graph/profiles/schemas`, - events: `${baseUri}/v3/graph/events`, - entities: `${baseUri}/v3/graph/entities`, - track: `${baseUri}/v3/graph/events/track`, - query: `${baseUri}/v3/graph/query`, - } -}; - -const throttle = new Throttle({ - active: true, - concurrent: 20, - rate: 500, - ratePer: 1000, +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); + +const createEndpoints = baseUri => ({ + profileVersions: projectId => `${baseUri}/fabric/v4/projects/${projectId}/profile-versions`, + profiles: projectId => `${baseUri}/fabric/v4/projects/${projectId}/profiles`, + schemas: projectId => `${baseUri}/fabric/v4/projects/${projectId}/profiles/schemas`, + events: projectId => `${baseUri}/fabric/v4/projects/${projectId}/events`, + entities: projectId => `${baseUri}/fabric/v4/projects/${projectId}/entities`, + track: projectId => `${baseUri}/fabric/v4/projects/${projectId}/events/track`, + query: projectId => `${baseUri}/fabric/v4/projects/${projectId}/query`, }); class Graph { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoints = createEndpoints(cortexUrl); } - listProfiles(token, filter, sort, limit, skip) { - debug('listProfiles() => GET %s', this.endpoints.profiles); - const req = request - .get(this.endpoints.profiles) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (filter) req.query({ filter }); - if (sort) req.query({ sort }); - if (limit) req.query({ limit }); - if (skip) req.query({ skip }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, profiles: res.body.profiles}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + listProfiles(projectId, token, filter, sort, limit, skip) { + debug('listProfiles() => GET %s', this.endpoints.profiles(projectId)); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.sort = skip; + return got + .get(this.endpoints.profiles(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(profiles => ({ success: true, profiles })) + .catch(err => constructError(err)); } - listProfileVersions(token, profileId, schemaNames, before, after, limit) { + listProfileVersions(projectId, token, profileId, schemaNames, before, after, limit) { const endpoint = `${this.endpoints.profileVersions}/${profileId}`; debug('listProfileVersions(%s) => GET %s', profileId, endpoint); - const req = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (schemaNames) req.query({ schemaNames }); - if (before) req.query({ before }); - if (after) req.query({ after }); - if (limit) req.query({ limit }); - - return req.then((res) => { - if (res.ok) { - return { success: true, versions: res.body.versions }; - } - return { success: false, message: res.body, status: res.status }; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + if (schemaNames) query.schemaNames = schemaNames; + if (before) query.before = before; + if (after) query.after = after; + query.limit = 100; + if (limit) query.limit = limit; + + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(versions => ({ success: true, versions })) + .catch(err => constructError(err)); } - describeProfile(token, profileId, schemaName, historic, versionLimit, attribute) { - const endpoint = `${this.endpoints.profiles}/${profileId}`; + describeProfile(projectId, token, profileId, schemaName, historic, versionLimit, attribute) { + const endpoint = `${this.endpoints.profiles(projectId)}/${profileId}`; debug('describeProfile(%s) => GET %s', profileId, endpoint); - - const req = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (schemaName) req.query({ schemaNames: schemaName }); - if (historic) req.query({ historic }); - if (versionLimit) req.query({ versionLimit }); - if (attribute) req.query({ attributes: attribute }); - - return req.then((res) => { - if (res.ok) { - return {success: true, profile: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + if (schemaName) query.schemaName = schemaName; + if (historic) query.historic = historic; + if (versionLimit) query.versionLimit = versionLimit; + if (attribute) query.attribute = attribute; + + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(profile => ({ success: true, profile })) + .catch(err => constructError(err)); } - deleteProfile(token, profileId, schemaName) { - const endpoint = `${this.endpoints.profiles}/${profileId}`; + deleteProfile(projectId, token, profileId, schemaName) { + const endpoint = `${this.endpoints.profiles(projectId)}/${profileId}`; debug('deleteProfile(%s) => DELETE %s', profileId, endpoint); - - const req = request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (schemaName) req.query({ schema: schemaName }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true,}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + if (schemaName) query.schema = schemaName; + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(() => ({ success: true })) + .catch(err => constructError(err)); } - findEvents(token, filter, sort, limit, skip) { - debug('findEvents() => GET %s', this.endpoints.events); - - const req = request - .get(this.endpoints.events) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (filter) req.query({ filter }); - if (sort) req.query({ sort }); - - if (limit) { - req.query({ limit }); - } - else { - req.query({ limit: 50 }); - } - - if (skip) req.query({ skip }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, events: res.body.events}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + findEvents(projectId, token, filter, sort, limit, skip) { + const endpoint = this.endpoints.events(projectId); + debug('findEvents() => GET %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (sort) query.sort = sort; + // ?? if (versionLimit) query.versionLimit = versionLimit; + if (skip) query.skip = skip; + query.limit = 50; + if (limit) query.limit = limit; + + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(events => ({ success: true, events })) + .catch(err => constructError(err)); } - publishEntities(token, entityEvents) { - debug('publishEntities() => POST %s', this.endpoints.events); - - return request - .post(this.endpoints.events) - .use(throttle.plugin()) - .retry(3, (err, res) => { - if (err) { - debug(`retry on error: ${err}`); - return true; - } - - if (res) { - // Retry on 502, 503, 504 - gateway errors - if (res.status >= 502 && res.status <= 504) { - debug(`server/gateway error with status ${res.status}, retrying request`); - return true; - } - - // Retry on 429 - rate limit - if (res.status == 429) { - debug(`retry after rate limit exceeded`); - return true; - } - } - - return false; - }) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .type('json') - .send(entityEvents) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body.message || res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + publishEntities(projectId, token, entityEvents) { + debug('publishEntities() => POST %s', this.endpoints.events(projectId)); + return got + .post(this.endpoints.events(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: entityEvents, + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - track(token, event) { - debug('track() => POST %s', this.endpoints.track); - - return request - .post(this.endpoints.track) - .use(throttle.plugin()) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .type('json') - .send(event) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - - if (res.ok) { - return {success: true, message: res.body.message || res.body}; - } - - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - const e = constructError(err); - debug(e); - return e; - }); + track(projectId, token, event) { + // TODO re-enable throttling + const endpoint = this.endpoints.track(projectId); + debug('track() => POST %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: event, + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - rebuildProfiles(token, schemaName, profileId, filter, sort, limit, skip) { + rebuildProfiles(projectId, token, schemaName, profileId, filter, sort, limit, skip) { const endpoint = `${this.endpoints.schemas}/${schemaName}/rebuild`; debug('rebuildProfiles() => PUT %s', endpoint); - const req = request - .put(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - req.query({ filter: filter ? filter : {} }); - - if (profileId) req.query({ profileId }); - if (sort) req.query({ sort }); - if (limit) req.query({ limit }); - if (skip) req.query({ skip }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body.message || res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + query.filter = filter || {}; + + if (profileId) query.profileId = profileId; + if (sort) query.sort = sort; + if (limit) query.limit = limit; + if (skip) query.skip = skip; + + return got + .put(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - getEntity(token, entityId) { + getEntity(projectId, token, entityId) { const endpoint = `${this.endpoints.entities}/${entityId}`; debug('getEntity(%s) => GET %s', entityId, endpoint); - const req = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, entity: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(entity => ({ success: true, entity })) + .catch(err => constructError(err)); } - query(token, query) { + query(projectId, token, query) { const endpoint = this.endpoints.query; debug('queryGraph(%s) => POST %s', query, endpoint); - const req = request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send({ query }) - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { query }, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } } diff --git a/src/client/jobs.js b/src/client/jobs.js deleted file mode 100644 index 2212fe09..00000000 --- a/src/client/jobs.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); -const Actions = require('./actions'); - -module.exports = class Jobs { - - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/jobs`; - } - - listJobs(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeJob(token, name) { - const endpoint = `${this.endpoint}/${name}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - jobStatus(token, jobDefinition) { - const endpoint = `${this.endpoint}/${jobDefinition}/stats`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - async saveJob(token, {name, image, command, memory, vcpus, environment}, pushDocker) { - const action = new Actions(this.cortexUrl); - try { - image = await action._maybePushDockerImage(image, token, pushDocker); - } catch (error) { - return {success: false, status: 400, message: error.message || error}; - } - - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .send({name, image, command, memory, vcpus, environment}) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } -}; \ No newline at end of file diff --git a/src/client/tasks.js b/src/client/tasks.js deleted file mode 100644 index d7a2e7f7..00000000 --- a/src/client/tasks.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); - -module.exports = class Tasks { - - constructor(cortexUrl, jobId) { - this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/jobs/${jobId}/tasks`; - } - - listTasks(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - taskLogs(token, taskId) { - const endpoint = `${this.endpoint}/${taskId}/logs`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - cancelTask(token, taskId, message) { - const endpoint = `${this.endpoint}/${taskId}/cancel`; - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .send({message}) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeTask(token, taskId) { - const endpoint = `${this.endpoint}/${taskId}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } -}; \ No newline at end of file diff --git a/src/client/variables.js b/src/client/variables.js index aa561d4e..6c19eeb3 100644 --- a/src/client/variables.js +++ b/src/client/variables.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,71 +15,50 @@ */ const debug = require('debug')('cortex:cli'); -const { request } = require('../commands/apiutils'); - -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Variables { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/tenants/secrets/variables`; + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/secrets`; } - listVariables(token) { - const endpoint = `${this.endpoint}?list=true`; + listVariables(projectId, token) { + const endpoint = `${this.endpoint(projectId)}?list=true`; debug('listVariables => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - readVariable(token, keyName) { - const endpoint = `${this.endpoint}/${keyName}`; - const body = {} + readVariable(projectId, token, keyName) { + const endpoint = `${this.endpoint(projectId)}/${keyName}`; debug('readVariable($s) => %s', keyName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - writeVariable(token, keyName, value) { - const endpoint = `${this.endpoint}/${keyName}`; + writeVariable(projectId, token, keyName, value) { + const endpoint = `${this.endpoint(projectId)}/${keyName}`; debug('writeVariable(%s) => %s', keyName, endpoint); const body = { value }; - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(body) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } }; diff --git a/src/commander.js b/src/commander.js index 46b7931a..5f993891 100644 --- a/src/commander.js +++ b/src/commander.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -22,24 +22,24 @@ const { exportDoc } = require('./commands/utils.js'); // Monkey-patch `commander` library to keep track of when an action executes commander.Command.prototype._action = commander.Command.prototype.action; -commander.Command.prototype.action = function(fn) { +commander.Command.prototype.action = function (fn) { return this._action(function wrapped(...args) { (this.parent || this)._actionTaken = true; fn(...args); }); }; -commander.Command.prototype.wasActionTaken = function() { +commander.Command.prototype.wasActionTaken = function () { return (this.parent || this)._actionTaken || false; }; -commander.Command.prototype.helpAndExit = function() { +commander.Command.prototype.helpAndExit = function () { this.outputHelp(identity); process.exit(1); }; commander.Command.prototype._parse = commander.Command.prototype.parse; -commander.Command.prototype.parse = function(argv, options) { +commander.Command.prototype.parse = function (argv, options) { const defaultOpts = { noActionHandler: this.helpAndExit.bind(this) }; const opts = merge(defaultOpts, options || {}); process.env.DOC && exportDoc(this); @@ -47,7 +47,7 @@ commander.Command.prototype.parse = function(argv, options) { this._parse(argv); if (!this.wasActionTaken()) { if (process.env.CORTEX_TOKEN) { - console.error("Using token from environment variable $CORTEX_TOKEN") + console.error('Using token from environment variable $CORTEX_TOKEN'); } opts.noActionHandler(); } diff --git a/src/commands/accounts.js b/src/commands/accounts.js deleted file mode 100644 index dc63b9a9..00000000 --- a/src/commands/accounts.js +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Accounts = require('../client/accounts'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - -module.exports.CreateGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, options) { - const profile = loadProfile(options.profile); - debug('%s.createGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - const description = options.description; - accounts.createGroup(profile.token, groupName, description).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to create group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to create group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.AddMembersToGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, members, options) { - const profile = loadProfile(options.profile); - debug('%s.addMembersToGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - accounts.addMembersToGroup(profile.token, groupName, members).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to add members to group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to add members to group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListGroupsCommand = class { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listGroups', profile.name); - - const accounts = new Accounts(profile.url); - accounts.listGroups(profile.token).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - if (options.json) - printSuccess(JSON.stringify(result, null, 2), options); - else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 50 }, - { column: 'Owner', field: 'owner', width: 25 }, - { column: 'Description', field: 'description', width: 50 }, - { column: 'Tenant', field: 'tenant', width: 25 }, - { column: 'Members', field: 'members', width: 30 }, - { column: 'Upsert Date', field: 'upsert_date', width: 26 } - ]; - - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list groups : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list groups : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, options) { - const profile = loadProfile(options.profile); - debug('%s.describeGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - accounts.describeGroup(profile.token, groupName).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to describe group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DeleteGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, options) { - const profile = loadProfile(options.profile); - debug('%s.deleteGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - accounts.deleteGroup(profile.token, groupName).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to delete group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.RemoveMembersFromGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, members, options) { - const profile = loadProfile(options.profile); - debug('%s.removeMembersFromGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - accounts.removeMembersFromGroup(profile.token, groupName, members).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to remove members from group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to remove members from group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.RegisterResourceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(resourceName, options) { - const profile = loadProfile(options.profile); - debug('%s.registerResource(%s)', profile.name, resourceName); - - const accounts = new Accounts(profile.url); - const description = options.description; - const access = options.access; - accounts.registerResource(profile.token, resourceName, description, access).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to register resource : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to register resource : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.GrantGroupAccessToResourceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(resourceId, groupName, options) { - const profile = loadProfile(options.profile); - debug('%s.grantGroupAccessToResource(resourceId: %s, groupName: %s)', profile.name, resourceId, groupName); - - const accounts = new Accounts(profile.url); - accounts.grantGroupAccessToResource(profile.token, resourceId, groupName).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to grant group access to resource : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to grant group access to resource : ${err.status} ${err.message}`, options); - }); - } -}; - -// TODO: To be implemented -// module.exports.ListResourcesCommand = class { -// -// constructor(program) { -// this.program = program; -// } -// -// execute(options) { -// const profile = loadProfile(options.profile); -// debug('%s.listGroups', profile.name); -// -// const accounts = new Accounts(profile.url); -// accounts.listResources(profile.token).then((response) => { -// if (response.success) { -// let result = filterObject(response.result, options); -// if (options.json) -// printSuccess(JSON.stringify(result, null, 2), options); -// else { -// const tableSpec = [ -// { column: 'Name', field: 'name', width: 50 }, -// { column: 'Owner', field: 'owner', width: 25 }, -// { column: 'Description', field: 'description', width: 50 }, -// { column: 'Tenant', field: 'tenant', width: 25 }, -// { column: 'Members', field: 'members', width: 30 }, -// { column: 'Upsert Date', field: 'upsert_date', width: 26 } -// ]; -// -// printTable(tableSpec, result); -// } -// } -// else { -// printError(`Failed to add members to group : ${response.message}`, options); -// } -// }) -// .catch((err) => { -// printError(`Failed to add members to group : ${err.status} ${err.message}`, options); -// }); -// } -// }; - -// TODO: To be implemented -// module.exports.UnregisterResourceCommand = class { -// -// constructor(program) { -// this.program = program; -// } -// -// execute(resourceName, options) { -// const profile = loadProfile(options.profile); -// debug('%s.deleteGroup(%s)', profile.name, resourceName); -// -// const accounts = new Accounts(profile.url); -// accounts.unregisterResource(profile.token, resourceName).then((response) => { -// if (response.success) { -// let result = filterObject(response.result, options); -// printSuccess(JSON.stringify(result, null, 2), options); -// } -// else { -// printError(`Failed to delete group : ${response.message}`, options); -// } -// }) -// .catch((err) => { -// printError(`Failed to delete group : ${err.status} ${err.message}`, options); -// }); -// } -// }; - -// TODO: To be implemented -// module.exports.RevokeGroupAccessToResourceCommand = class { -// -// constructor(program) { -// this.program = program; -// } -// -// execute(resourceId, options) { -// const profile = loadProfile(options.profile); -// debug('%s.revokeGroupAccessToResource(%s)', profile.name, resourceId); -// -// const accounts = new Accounts(profile.url); -// accounts.revokeGroupAccessToResource(profile.token, resourceId).then((response) => { -// if (response.success) { -// let result = filterObject(response.result, options); -// printSuccess(JSON.stringify(result, null, 2), options); -// } -// else { -// printError(`Failed to delete group : ${response.message}`, options); -// } -// }) -// .catch((err) => { -// printError(`Failed to delete group : ${err.status} ${err.message}`, options); -// }); -// } -// }; \ No newline at end of file diff --git a/src/commands/actions.js b/src/commands/actions.js index 02bdc4a1..e731cee0 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,14 +15,14 @@ */ const _ = require('lodash'); const fs = require('fs'); -const uuid = require('uuid/v4'); const debug = require('debug')('cortex:cli'); -const {loadProfile} = require('../config'); +const { loadProfile } = require('../config'); const Actions = require('../client/actions'); -const {printSuccess, printWarning, printError, filterObject, parseObject, printTable} = require('./utils'); +const { + printSuccess, printWarning, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.ListActionsCommand = class { - constructor(program) { this.program = program; } @@ -32,27 +32,24 @@ module.exports.ListActionsCommand = class { debug('%s.executeListActions()', profile.name); const actions = new Actions(profile.url); - actions.listActions(profile.token) + actions.listActions(options.project || profile.project, profile.token) .then((response) => { if (response.success) { let result = response.actions; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ - {column: 'Name', field: 'name', width: 50}, - {column: 'Image', field: 'image', width: 50}, - {column: 'Created On', field: 'createdAt', width: 26} + { column: 'Name', field: 'name', width: 50 }, + { column: 'Image', field: 'image', width: 50 }, + { column: 'Created On', field: 'createdAt', width: 26 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list actions: ${response.status} ${response.message}`, options); } }) @@ -63,7 +60,6 @@ module.exports.ListActionsCommand = class { }; module.exports.DescribeActionCommand = class { - constructor(program) { this.program = program; } @@ -73,13 +69,12 @@ module.exports.DescribeActionCommand = class { debug('%s.executeDescribeAction(%s)', profile.name, actionName); const actions = new Actions(profile.url); - actions.describeAction(profile.token, actionName) + actions.describeAction(options.project || profile.project, profile.token, actionName) .then((response) => { if (response.success) { - let result = filterObject(response.action, options); + const result = filterObject(response.action, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe action: ${response.status} ${response.message}`, options); } }) @@ -90,7 +85,6 @@ module.exports.DescribeActionCommand = class { }; module.exports.DeployActionCommand = class { - constructor(program) { this.program = program; } @@ -99,27 +93,27 @@ module.exports.DeployActionCommand = class { const profile = loadProfile(options.profile); debug('%s.deployAction(%s)', profile.name, actionName); - let params = {}; + const params = {}; if (options.podspec) { const paramsStr = fs.readFileSync(options.podspec); params.podSpec = parseObject(paramsStr, options); } - if(options.kind){ - printWarning("The kind option has been deprecated and will be ignored.", options); + if (options.kind) { + printWarning('The kind option has been deprecated and will be ignored.', options); } - if(options.code){ - printWarning("The code option has been deprecated and will be ignored." + - " Use the docker option for setting an existing image to use.", options); + if (options.code) { + printWarning('The code option has been deprecated and will be ignored.' + + ' Use the docker option for setting an existing image to use.', options); } - if(options.memory){ - printWarning("The memory option has been deprecated and will be ignored." + - " Use the podspec option for setting this value.", options); + if (options.memory) { + printWarning('The memory option has been deprecated and will be ignored.' + + ' Use the podspec option for setting this value.', options); } - if(options.vcpus){ - printWarning("The vcpus option has been deprecated and will be ignored." + - " Use the podspec option for setting this value.", options); + if (options.vcpus) { + printWarning('The vcpus option has been deprecated and will be ignored.' + + ' Use the podspec option for setting this value.', options); } params.dockerImage = options.docker; params.ttl = options.ttl; @@ -129,15 +123,14 @@ module.exports.DeployActionCommand = class { params.environment = options.environment; params.environmentVariables = options.environmentVariables; params.pushDocker = options.pushDocker; - params.scaleCount = parseInt(options.scaleCount); + params.scaleCount = parseInt(options.scaleCount, 10); const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, params) + actions.deployAction(options.project || profile.project, profile.token, actionName, params) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); - } - else { + } else { printError(`Action deployment failed: ${response.status} ${response.message}`, options); } }) @@ -147,64 +140,7 @@ module.exports.DeployActionCommand = class { } }; -module.exports.InvokeActionCommand = class { - - constructor(program) { - this.program = program; - } - - execute(actionName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeInvokeAction(%s)', profile.name, actionName); - - let params = {}; - if (options.params) { - params = parseObject(options.params, options); - } - else if (options.paramsFile) { - const paramsStr = fs.readFileSync(options.paramsFile); - params = parseObject(paramsStr, options); - } - - const actionType = options.actionType; - params.properties = params.properties || {}; - if (options.method) - params.properties['daemon.method'] = options.method; - if (options.path) - params.properties['daemon.path'] = options.path; - if(options.memory){ - printWarning("The memory option has been deprecated and will be ignored." + - " Use the deploy command with podspec option for setting this value.", options); - } - if(options.vcpus){ - printWarning("The vcpus option has been deprecated and will be ignored." + - " Use the deploy command with podspec option for setting this value.", options); - } - // Set Token if not specified - if (!params.token) params.token = profile.token; - - debug('params: %o', params); - - const actions = new Actions(profile.url); - actions.invokeAction(profile.token, actionName, params, actionType) - .then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Action invocation failed: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to invoke action: ${err.status} ${err.message}`, options); - }); - } -}; - - module.exports.DeleteActionCommand = class { - constructor(program) { this.program = program; } @@ -212,15 +148,14 @@ module.exports.DeleteActionCommand = class { execute(actionName, options) { const profile = loadProfile(options.profile); debug('%s.executeDeleteAction(%s)', profile.name, actionName); - const actionType = options.actionType; + const { actionType } = options; const actions = new Actions(profile.url); - actions.deleteAction(profile.token, actionName, actionType) + actions.deleteAction(options.project || profile.project, profile.token, actionName, actionType) .then((response) => { if (response.success) { - let result = filterObject(response, options); + const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action deletion failed: ${response.status} ${response.message}`, options); } }) @@ -239,16 +174,15 @@ module.exports.TaskLogsActionCommand = class { const profile = loadProfile(options.profile); debug('%s.taskLogsActions (%s, %s)', profile.name, jobId, taskId); const actions = new Actions(profile.url); - actions.taskLogs(profile.token, jobId, taskId) + actions.taskLogs(options.project || profile.project, profile.token, jobId, taskId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action task logs failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -261,16 +195,15 @@ module.exports.TaskCancelActionCommand = class { const profile = loadProfile(options.profile); debug('%s.taskCancelActions (%s, %s)', profile.name, jobId, taskId); const actions = new Actions(profile.url); - actions.taskCancel(profile.token, jobId, taskId) + actions.taskCancel(options.project || profile.project, profile.token, jobId, taskId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action cancel task failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -283,16 +216,15 @@ module.exports.TaskStatusActionCommand = class { const profile = loadProfile(options.profile); debug('%s.taskStatusActions (%s, %s)', profile.name, jobId, taskId); const actions = new Actions(profile.url); - actions.taskStatus(profile.token, jobId, taskId) + actions.taskStatus(options.project || profile.project, profile.token, jobId, taskId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action task logs failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -305,16 +237,15 @@ module.exports.JobTaskListActionCommand = class { const profile = loadProfile(options.profile); debug('%s.jobTaskListActions (%s, %s)', profile.name, jobId); const actions = new Actions(profile.url); - actions.jobListTasks(profile.token, jobId) + actions.jobListTasks(options.project || profile.project, profile.token, jobId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Action list job's tasks failed: ${response.status} ${response.message}`, options); } - else { - printError(`Action list job\'s tasks failed: ${response.status} ${response.message}`, options); - } - }) + }); } }; @@ -328,16 +259,15 @@ module.exports.TaskStatsActionCommand = class { const profile = loadProfile(options.profile); debug('%s.taskStatsActions (%s, %s)', profile.name, jobId); const actions = new Actions(profile.url); - actions.taskStats(profile.token, jobId) + actions.taskStats(options.project || profile.project, profile.token, jobId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action get Job tasks stats failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -351,16 +281,15 @@ module.exports.ListTaskByActivation = class { const profile = loadProfile(options.profile); debug('%s.listTasksByActivation (%s, %s)', profile.name, activationId); const actions = new Actions(profile.url); - actions.listTasksByActivation(profile.token, activationId) + actions.listTasksByActivation(options.project || profile.project, profile.token, activationId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Agent task list by activation failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -373,17 +302,16 @@ module.exports.GetLogsCommand = class { const profile = loadProfile(options.profile); debug('%s.getLogsActions (%s, %s)', profile.name, jobId); const actions = new Actions(profile.url); - actions.getLogsAction(profile.token, jobId) + actions.getLogsAction(options.project || profile.project, profile.token, jobId) .then((response) => { if (response.success) { if (options.json) { return printSuccess(JSON.stringify(response, null, 2), options); } - const logsStr = _.get(response,'logs',[]).join('/n'); - printSuccess(logsStr, options); - } else { - printError(`Action get logs failed: ${response.status} ${response.message}`, options); + const logsStr = _.get(response, 'logs', []).join('/n'); + return printSuccess(logsStr, options); } - }) + return printError(`Action get logs failed: ${response.status} ${response.message}`, options); + }); } }; diff --git a/src/commands/agents.js b/src/commands/agents.js index 4c39e9fd..5d69176a 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -16,13 +16,15 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); +const _ = require('lodash'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); -const _ = require('lodash'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); -module.exports.SaveAgentCommand = class SaveAgentCommand { +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); +module.exports.SaveAgentCommand = class SaveAgentCommand { constructor(program) { this.program = program; } @@ -36,11 +38,10 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { debug('%o', agent); const catalog = new Catalog(profile.url); - catalog.saveAgent(profile.token, agent).then((response) => { + catalog.saveAgent(options.project || profile.project, profile.token, agent).then((response) => { if (response.success) { - printSuccess(`Agent saved`, options); - } - else { + printSuccess('Agent saved', options); + } else { printError(`Failed to save agent: ${response.status} ${response.message}`, options); } }) @@ -51,7 +52,6 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { }; module.exports.ListAgentsCommand = class ListAgentsCommand { - constructor(program) { this.program = program; } @@ -61,27 +61,23 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { debug('%s.executeListAgents()', profile.name); const catalog = new Catalog(profile.url); - catalog.listAgents(profile.token).then((response) => { + catalog.listAgents(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.agents; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Name', field: 'name', width: 50 }, { column: 'Title', field: 'title', width: 25 }, { column: 'Description', field: 'description', width: 50 }, - { column: 'Created On', field: 'createdAt', width: 26 } + { column: 'Created On', field: 'createdAt', width: 26 }, ]; - printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list agents: ${response.status} ${response.message}`, options); } }) @@ -93,7 +89,6 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { }; module.exports.DescribeAgentCommand = class DescribeAgentCommand { - constructor(program) { this.program = program; } @@ -103,28 +98,24 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { const catalog = new Catalog(profile.url); if (options.versions) { debug('%s.executeDescribeAgentVersions(%s)', profile.name, agentName); - catalog.describeAgentVersions(profile.token, agentName).then((response) => { + catalog.describeAgentVersions(options.project || profile.project, profile.token, agentName).then((response) => { if (response.success) { - let result = filterObject(response.agent, options); + const result = filterObject(response.agent, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe agent versions ${agentName}: ${response.message}`, options); } }) .catch((err) => { printError(`Failed to describe agent versions ${agentName}: ${err.status} ${err.message}`, options); }); - } - - else { + } else { debug('%s.executeDescribeAgent(%s)', profile.name, agentName); - catalog.describeAgent(profile.token, agentName).then((response) => { + catalog.describeAgent(options.project || profile.project, profile.token, agentName).then((response) => { if (response.success) { - let result = filterObject(response.agent, options); + const result = filterObject(response.agent, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe agent ${agentName}: ${response.message}`, options); } }) @@ -136,7 +127,6 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { }; module.exports.InvokeAgentServiceCommand = class { - constructor(program) { this.program = program; } @@ -148,8 +138,7 @@ module.exports.InvokeAgentServiceCommand = class { let params = {}; if (options.params) { params = parseObject(options.params, options); - } - else if (options.paramsFile) { + } else if (options.paramsFile) { const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); } @@ -157,12 +146,11 @@ module.exports.InvokeAgentServiceCommand = class { debug('params: %o', params); const agents = new Agents(profile.url); - agents.invokeAgentService(profile.token, agentName, serviceName, params).then((response) => { + agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Invocation failed: ${response.status} ${response.message}`, options); } }) @@ -170,8 +158,7 @@ module.exports.InvokeAgentServiceCommand = class { if (err.response && err.response.body) { debug('Raw error response: %o', err.response.body); printError(`Failed to invoke agent service (${err.status} ${err.message}): ${err.response.body.error}`, options); - } - else { + } else { printError(`Failed to invoke agent service: ${err.status} ${err.message}`, options); } }); @@ -179,7 +166,6 @@ module.exports.InvokeAgentServiceCommand = class { }; module.exports.GetActivationCommand = class { - constructor(program) { this.program = program; } @@ -189,12 +175,11 @@ module.exports.GetActivationCommand = class { debug('%s.getActivation(%s)', profile.name, activationId); const agents = new Agents(profile.url); - agents.getActivation(profile.token, activationId).then((response) => { + agents.getActivation(options.project || profile.project, profile.token, activationId).then((response) => { if (response.success) { - let result = filterObject(response.result.activation, options); + const result = filterObject(response.result.activation, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to get activation ${activationId}: ${response.message}`, options); } }) @@ -205,7 +190,6 @@ module.exports.GetActivationCommand = class { }; module.exports.ListActivationsCommand = class { - constructor(program) { this.program = program; } @@ -216,16 +200,14 @@ module.exports.ListActivationsCommand = class { debug('%s.listActivations(%s)', profile.name, instanceId); const agents = new Agents(profile.url); - agents.listActivations(profile.token, instanceId, envName).then((response) => { + agents.listActivations(options.project || profile.project, profile.token, instanceId, envName).then((response) => { if (response.success) { let result = response.result.activations; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Activation Id', field: 'activationId', width: 38 }, { column: 'Type', field: 'type', width: 20 }, @@ -237,8 +219,7 @@ module.exports.ListActivationsCommand = class { printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list activations for instance ${instanceId}: ${response.message}`, options); } }) @@ -248,51 +229,7 @@ module.exports.ListActivationsCommand = class { } }; -module.exports.ListAgentInstancesCommand = class { - - constructor(program) { - this.program = program; - } - - execute(agentName, options) { - const profile = loadProfile(options.profile); - const envName = options.environmentName; - debug('%s.listAgentInstances(%s)', profile.name, agentName); - - const agents = new Agents(profile.url); - agents.listAgentInstances(profile.token, agentName, envName).then((response) => { - if (response.success) { - let result = response.instances; - if (options.query) - result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Instance Id', field: 'id', width: 26 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Snapshot Id', field: 'snapshotId', width: 40 }, - { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Environment', field: 'environmentName', width: 26 }, - { column: 'Created At', field: 'createdAt', width: 26 }, - ]; - - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list agent instances ${agentName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list agent instances ${agentName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListServicesCommand = class ListServicesCommand{ +module.exports.ListServicesCommand = class ListServicesCommand { constructor(program) { this.program = program; } @@ -302,29 +239,27 @@ module.exports.ListServicesCommand = class ListServicesCommand{ debug('%s.listServices(%s)', profile.name, agentName); const catalog = new Catalog(profile.url); - catalog.listServices(profile.token, agentName, profile).then((response) => { + catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { if (response.success) { - let result = filterObject(response.services, options); + const result = filterObject(response.services, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ - {column: 'Service Name', field: 'name', width: 25}, - {column: 'Service Endpoint URL', field: 'url', width: 115}, - {column: 'Parameters', field: 'formatted_types', width: 65} + { column: 'Service Name', field: 'name', width: 25 }, + { column: 'Service Endpoint URL', field: 'url', width: 115 }, + { column: 'Parameters', field: 'formatted_types', width: 65 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to return agent service information: ${agentName}: ${response.message}`, options); } }).catch((err) => { printError(`Failed to return agent service information: ${agentName}: ${err.status} ${err.message}`, options); }); } -} +}; module.exports.ListAgentSnapshotsCommand = class { constructor(program) { @@ -337,24 +272,23 @@ module.exports.ListAgentSnapshotsCommand = class { debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listAgentSnapshots(profile.token, agentName, envName).then((response) => { + agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, envName) + .then((response) => { if (response.success) { - let result = filterObject(response.result.snapshots, options); + const result = filterObject(response.result.snapshots, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Snapshot ID', field: 'id', width: 40 }, { column: 'Title', field: 'title', width: 30 }, { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Environment', field: 'environmentName', width: 30 }, - { column: 'Created On', field: 'createdAt', width: 26 } + { column: 'Created On', field: 'createdAt', width: 26 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list agent snapshots ${agentName}: ${response.message}`, options); } }) @@ -365,46 +299,6 @@ module.exports.ListAgentSnapshotsCommand = class { } }; -module.exports.ListSnapshotInstancesCommand = class { - - constructor(program) { - this.program = program; - } - - execute(snapshotId, options) { - const profile = loadProfile(options.profile); - debug('%s.listSnapshotInstances(%s)', profile.name, snapshotId); - - const agents = new Agents(profile.url); - const envName = options.environmentName; - agents.listSnapshotInstances(profile.token, snapshotId, envName).then((response) => { - if (response.success) { - let result = filterObject(response.instances, options); - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Instance Id', field: 'instanceId', width: 26 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Environment Id', field: 'environmentName', width: 26 }, - { column: 'Created At', field: 'createdAt', width: 26 }, - ]; - printTable(tableSpec, result); - } - - } - else { - printError(`Failed to list instances for snapshot ${snapshotId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list instances for snapshot ${snapshotId}: ${err.status} ${err.message}`, options); - }); - } -}; - - module.exports.DescribeAgentSnapshotCommand = class { constructor(program) { this.program = program; @@ -416,12 +310,11 @@ module.exports.DescribeAgentSnapshotCommand = class { debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); const agents = new Agents(profile.url); - agents.describeAgentSnapshot(profile.token, snapshotId, envName).then((response) => { + agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, envName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`, options); } }).catch((err) => { @@ -431,7 +324,6 @@ module.exports.DescribeAgentSnapshotCommand = class { }; module.exports.CreateAgentSnapshotCommand = class { - constructor(program) { this.program = program; } @@ -443,20 +335,19 @@ module.exports.CreateAgentSnapshotCommand = class { debug('%s.createAgentSnapshot(%s)', profile.name, snapshotDefinition); const snapshotDefStr = fs.readFileSync(snapshotDefinition); snapshot = parseObject(snapshotDefStr, options); - } else if ( _.get(options,'title','').length > 0 && _.get(options,'agentName','').length > 0) { - snapshot = { agentName: options.agentName, title: options.title } + } else if (_.get(options, 'title', '').length > 0 && _.get(options, 'agentName', '').length > 0) { + snapshot = { agentName: options.agentName, title: options.title }; } else { - printError(`Either --title <..> and --agentName <..> or a snapshot definition file must be provided`, options); + printError('Either --title <..> and --agentName <..> or a snapshot definition file must be provided', options); return; } - const agentName = snapshot.agentName; + const { agentName } = snapshot; const agents = new Agents(profile.url); - agents.createAgentSnapshot(profile.token, snapshot).then((response) => { + agents.createAgentSnapshot(options.project || profile.project, profile.token, snapshot).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to create agent snapshot ${agentName}: ${response.message}`, options); } }) @@ -464,159 +355,28 @@ module.exports.CreateAgentSnapshotCommand = class { printError(`Failed to create agent snapshot ${agentName}: ${err.status} ${err.message}`, options); }); } - }; -module.exports.CreateAgentInstanceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(instanceDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.createAgentInstance', profile.name); - const agents = new Agents(profile.url); - let instance; - if (instanceDefinition) { - const instanceDefStr = fs.readFileSync(instanceDefinition); - instance = parseObject(instanceDefStr, options); - } else if ( !_.isEmpty(_.get(options,'snapshotId','')) ) { - instance = { snapshotId: options.snapshotId, environmentName: options.environmentName || 'cortex/default'} - } else { - printError(`Either --snapshotId <..> or a instance definition file must be provided`, options); - return; - } - agents.createAgentInstance(profile.token, instance).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to create agent instance : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to create agent instance : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.GetAgentInstanceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(instanceId, options) { - const profile = loadProfile(options.profile); - debug('%s.getAgentInstance(%s)', profile.name, instanceId); - - const agents = new Agents(profile.url); - agents.getAgentInstance(profile.token, instanceId).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Instance Id', field: '_id', width: 26 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Tenant Id', field: 'tenantId', width: 20 }, - { column: 'Snapshot Id', field: 'snapshotId', width: 40 }, - { column: 'Environment Id', field: 'environmentId', width: 26 }, - { column: 'Created At', field: 'createdAt', width: 26 }, - { column: 'Updated At', field: 'updatedAt', width: 26 } - ]; - printTable(tableSpec, [result.instance]); - } - - } - else { - printError(`Failed to get agent instance ${instanceId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to get agent instance ${instanceId}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DeleteAgentInstanceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(instanceId, options) { - const profile = loadProfile(options.profile); - debug('%s.deleteAgentInstance(%s)', profile.name, instanceId); - - const agents = new Agents(profile.url); - agents.deleteAgentInstance(profile.token, instanceId).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to delete agent instance ${instanceId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete agent instance ${instanceId} : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.StopAgentInstanceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(instanceId, options) { - const profile = loadProfile(options.profile); - debug('%s.stopAgentInstance(%s)', profile.name, instanceId); - - const agents = new Agents(profile.url); - agents.stopAgentInstance(profile.token, instanceId).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to stop agent instance ${instanceId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to stop agent instance ${instanceId} : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListTriggersCommand = class { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listTriggers', profile.name); - - const agents = new Agents(profile.url); - agents.listTriggers(profile.token).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to list triggers ${instanceId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list triggers ${instanceId} : ${err.status} ${err.message}`, options); - }); - } -}; +// module.exports.ListTriggersCommand = class { +// constructor(program) { +// this.program = program; +// } +// +// execute(options) { +// const profile = loadProfile(options.profile); +// debug('%s.listTriggers', profile.name); +// +// const agents = new Agents(profile.url); +// agents.listTriggers(profile.token).then((response) => { +// if (response.success) { +// const result = filterObject(response.result, options); +// printSuccess(JSON.stringify(result, null, 2), options); +// } else { +// printError(`Failed to list triggers ${instanceId}: ${response.message}`, options); +// } +// }) +// .catch((err) => { +// printError(`Failed to list triggers ${instanceId} : ${err.status} ${err.message}`, options); +// }); +// } +// }; diff --git a/src/commands/configure.js b/src/commands/configure.js index b865775e..9ed1c734 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -20,71 +20,55 @@ const _ = require('lodash'); const prompt = require('co-prompt'); const chalk = require('chalk'); const fs = require('fs'); -const { readConfig, defaultConfig, Profile } = require('../config'); +const { readConfig, defaultConfig } = require('../config'); const { printSuccess, printError, filterObject } = require('./utils'); const Accounts = require('../client/accounts'); -/** - * Validate 's'' is not empty, return 's' or throw error - * @param s - * @param msg - * @param regex - * @returns {*} - * @private - */ -function _validate(s, msg, regex=undefined) { - if (_.isEmpty(s) || (regex && !regex.test(s))) { - console.error(chalk.red(msg)); - process.exit(1); - } - return s; -} - function _validatePatFile(patFile) { - if(!fs.existsSync(patFile)) { + if (!fs.existsSync(patFile)) { printError(`Personal Access Token file does not exist at: ${patFile}`); } - - const patData = JSON.parse(fs.readFileSync(patFile)); - - return patData; + return JSON.parse(fs.readFileSync(patFile)); } - module.exports.ConfigureCommand = class { - constructor(program) { this.program = program; } + execute(options) { const config = readConfig(); - const profileName = options.profile || _.get(config,'currentProfile','default'); + const profileName = options.profile || _.get(config, 'currentProfile', 'default'); const patFile = this.program.file; debug('configuring profile: %s', profileName); console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); const cmd = this; - co(function*(){ + co(function* () { try { let patData = null; if (patFile) { patData = _validatePatFile(patFile); } else { - patData = JSON.parse(yield prompt(`Cortex Personal Access Token: `)); + patData = JSON.parse(yield prompt('Cortex Personal Access Token: ')); } cmd.saveConfig(config, profileName, patData, cmd.program.project); console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); - process.exit(1) - }catch (err) { + process.exit(1); + } catch (err) { printError(err); } }); } - saveConfig(config, profileName, {url, username, issuer, audience, jwk}, project) { - if(!config) - config = defaultConfig(); - config.setProfile(profileName, {url, username, issuer, audience, jwk, project}); + + saveConfig(config, profileName, { + url, username, issuer, audience, jwk, + }, project) { + if (!config) config = defaultConfig(); + config.setProfile(profileName, { + url, username, issuer, audience, jwk, project, + }); config.currentProfile = profileName; config.save(); } @@ -94,6 +78,7 @@ module.exports.SetProfileCommand = class { constructor(program) { this.program = program; } + execute(profileName, options) { const config = readConfig(); const profile = config.getProfile(profileName); @@ -110,7 +95,6 @@ module.exports.SetProfileCommand = class { }; module.exports.DescribeProfileCommand = class { - constructor(program) { this.program = program; } @@ -118,7 +102,7 @@ module.exports.DescribeProfileCommand = class { execute(options) { const config = readConfig(); if (config === undefined) { - printError(`Configuration not found. Please run "cortex configure".`); + printError('Configuration not found. Please run "cortex configure".'); return; } @@ -140,10 +124,9 @@ module.exports.DescribeProfileCommand = class { const accounts = new Accounts(profile.url); accounts.whoAmI(profile.token).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe profile : ${response.message}`, options); } }) @@ -161,23 +144,21 @@ module.exports.ListProfilesCommand = class { execute(options) { const config = readConfig(); if (config === undefined) { - printError(`Configuration not found. Please run "cortex configure".`,options); + printError('Configuration not found. Please run "cortex configure".', options); return; } const profiles = Object.keys(config.profiles); - for (let name of profiles) { + profiles.forEach((name) => { if (name === config.currentProfile) { if (options.color === 'on') { console.log(chalk.green.bold(name)); - } - else { + } else { console.log(`${name} [active]`); } - } - else { + } else { console.log(name); } - } + }); } }; diff --git a/src/commands/connections.js b/src/commands/connections.js index 83ed5ae5..d15fb63f 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,15 +15,15 @@ */ const _ = require('lodash'); const fs = require('fs'); -const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Connections = require('../client/connections'); const Content = require('../client/content'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.ListConnections = class ListConnections { - constructor(program) { this.program = program; } @@ -33,29 +33,26 @@ module.exports.ListConnections = class ListConnections { debug('%s.listConnections()', profile.name); const conns = new Connections(profile.url); - conns.listConnections(profile.token).then((response) => { + conns.listConnections(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.result.connections; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 50 }, { column: 'Description', field: 'description', width: 50 }, { column: 'Connection Type', field: 'connectionType', width: 25 }, { column: 'Writeable', field: 'allowWrite', width: 15 }, - { column: 'Created On', field: 'createdAt', width: 26 } + { column: 'Created On', field: 'createdAt', width: 26 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list connections: ${response.status} ${response.message}`, options); } }) @@ -67,7 +64,6 @@ module.exports.ListConnections = class ListConnections { }; module.exports.SaveConnectionCommand = class SaveConnectionCommand { - constructor(program) { this.program = program; } @@ -75,11 +71,9 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { getParamsValue(connectionDefinition, paramName) { const results = connectionDefinition.params.filter(item => item.name === paramName); if (results && results.length) { - return results[0]['value']; - - } else { + return results[0].value; + } return undefined; - } } stripJarPathFromParams(params) { @@ -97,20 +91,19 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); - if (jdbcJarFilePath && !jdbcJarFilePath.includes("--Insert jar file path--")) { + if (jdbcJarFilePath && !jdbcJarFilePath.includes('--Insert jar file path--')) { const content = new Content(profile.url); const connection = new Connections(profile.url); - content.uploadContentStreaming(profile.token, contentKey, jdbcJarFilePath).then((response) => { - - let marshaledConnObj = connObj; + content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) + .then(() => { + const marshaledConnObj = connObj; marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); - connection.saveConnection(profile.token, marshaledConnObj).then((response) => { + connection.saveConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { if (response.success) { - printSuccess(`Connection saved`, options); - } - else { + printSuccess('Connection saved', options); + } else { printError(`Failed to save connection: ${response.status} ${response.message}`, options); } }) @@ -122,13 +115,11 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); }); } else { - const connection = new Connections(profile.url); - connection.saveConnection(profile.token, connObj).then((response) => { + connection.saveConnection(options.project || profile.project, profile.token, connObj).then((response) => { if (response.success) { - printSuccess(`Connection saved`, options); - } - else { + printSuccess('Connection saved', options); + } else { printError(`Failed to save connection: ${response.status} ${response.message}`, options); } }) @@ -140,7 +131,6 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { }; module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { - constructor(program) { this.program = program; } @@ -150,12 +140,11 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { debug('%s.executeDescribeConnection(%s)', profile.name, connectionName); const connection = new Connections(profile.url); - connection.describeConnection(profile.token, connectionName).then((response) => { + connection.describeConnection(options.project || profile.project, profile.token, connectionName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe connection ${connectionName}: ${response.message}`, options); } }) @@ -166,19 +155,16 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { }; module.exports.TestConnectionCommand = class TestConnectionCommand { - constructor(program) { this.program = program; } getParamsValue(connectionDefinition, paramName) { - const results = _.get(connectionDefinition,'params',[]).filter(item => item.name === paramName); + const results = _.get(connectionDefinition, 'params', []).filter(item => item.name === paramName); if (results && results.length) { - return results[0]['value']; - - } else { + return results[0].value; + } return undefined; - } } stripJarPathFromParams(params) { @@ -198,19 +184,17 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { if (jdbcJarFilePath) { const content = new Content(profile.url); - const connection = new Connections(profile.url); - - content.uploadContentStreaming(profile.token, contentKey, jdbcJarFilePath).then((response) => { + content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) + .then(() => { const connection = new Connections(profile.url); - let marshaledConnObj = connObj; + const marshaledConnObj = connObj; marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); - connection.testConnection(profile.token, marshaledConnObj).then((response) => { + connection.testConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { if (response.success) { - printSuccess(`Connection successfully tested`, options); - } - else { + printSuccess('Connection successfully tested', options); + } else { printError(`Failed while testing connection: ${response.message}`, options); } }) @@ -221,15 +205,13 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { .catch((err) => { printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); }); - } else { const connection = new Connections(profile.url); - connection.testConnection(profile.token, connObj).then((response) => { + connection.testConnection(options.project || profile.project, profile.token, connObj).then((response) => { if (response.success) { - printSuccess(`Connection successfully tested`, options); - } - else { - printError(`Failed while testing connection: ${response.message || response.body.message }`, options); + printSuccess('Connection successfully tested', options); + } else { + printError(`Failed while testing connection: ${response.message || response.body.message}`, options); } }) .catch((err) => { @@ -240,7 +222,6 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { }; module.exports.ListConnectionsTypes = class ListConnectionsTypes { - constructor(program) { this.program = program; } @@ -253,25 +234,22 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { conns.listConnectionsTypes(profile.token).then((response) => { if (response.success) { let result = response.result.connectionTypes; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Name', field: 'name', width: 50 }, { column: 'Title', field: 'title', width: 25 }, { column: 'Description', field: 'description', width: 50 }, { column: 'Created On', field: 'createdAt', width: 26 }, - { column: 'Updated On', field: 'updatedAt', width: 26 } + { column: 'Updated On', field: 'updatedAt', width: 26 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list connection types: ${response.status} ${response.message}`, options); } }) @@ -283,7 +261,6 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { }; module.exports.QueryConnectionCommand = class QueryConnectionCommand { - constructor(program) { this.program = program; } @@ -297,21 +274,21 @@ module.exports.QueryConnectionCommand = class QueryConnectionCommand { let queryObject = {}; let queryInput = options.query; - if(options.file) { + if (options.file) { queryInput = fs.readFileSync(options.file, 'UTF-8'); } - if(!queryInput) { + if (!queryInput) { queryInput = 'select 1'; } try { queryObject = JSON.parse(queryInput); - if(queryObject.filter) { + if (queryObject.filter) { queryObject.filter = JSON.stringify(queryObject.filter); } - if(queryObject.sort) { + if (queryObject.sort) { queryObject.sort = JSON.stringify(queryObject.sort); } } catch (err) { @@ -321,12 +298,16 @@ module.exports.QueryConnectionCommand = class QueryConnectionCommand { debug('queryParams: %o', queryObject); const connections = new Connections(profile.url); - connections.queryConnection(profile.token, connectionName, queryObject) + connections.queryConnection(options.project || profile.project, profile.token, connectionName, queryObject) .then((response) => { if (response.success) { - printSuccess(JSON.stringify(response.message, null, 2), options); - } - else { + if (options.json) { + printSuccess(JSON.stringify(JSON.parse(response.message), null, 2), options); + } else { + // might get images/binaries from S3 + printSuccess(response.message, options); + } + } else { printError(`Failed to query connection: ${response.status} ${response.message}`, options); } }) @@ -335,20 +316,3 @@ module.exports.QueryConnectionCommand = class QueryConnectionCommand { }); } }; - -module.exports.GenerateConnectionCommand = class GenerateConnectionCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - debug('%s.generateConnection()'); - const yenv = yeoman.createEnv(); - yenv.lookup(()=>{ - yenv.run('@c12e/cortex:connections', - { }, - (err) => { err ? printError(err) : printSuccess('Done.') }); - }); - } -}; diff --git a/src/commands/content.js b/src/commands/content.js index edf0c9f9..9c0d64a9 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -16,14 +16,14 @@ const _ = require('lodash'); const fs = require('fs'); const path = require('path'); -const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Content = require('../client/content'); -const { printSuccess, printError, filterObject, parseObject, printTable, getSourceFiles, humanReadableFileSize } = require('./utils'); +const { + printSuccess, printError, filterObject, printTable, getSourceFiles, humanReadableFileSize, +} = require('./utils'); module.exports.ListContent = class ListContent { - constructor(program) { this.program = program; } @@ -33,25 +33,23 @@ module.exports.ListContent = class ListContent { debug('%s.listContent()', profile.name); const content = new Content(profile.url); - content.listContent(profile.token).then((response) => { + content.listContent(options.project || profile.project, profile.token).then((response) => { if (response.success) { if (options.query || options.json) { - let result = filterObject(response.message, options); + const result = filterObject(response.message, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Key', field: 'Key', width: 70 }, { column: 'Content Type', field: 'ContentType', width: 30 }, { column: 'Last Modified', field: 'LastModified', width: 30 }, - { column: 'Size (bytes)', field: 'Size', width: 20 } + { column: 'Size (bytes)', field: 'Size', width: 20 }, ]; printTable(tableSpec, response.message); } - } - else { + } else { printError(`Failed to list content: ${response.status} ${response.message}`, options); } }) @@ -63,7 +61,6 @@ module.exports.ListContent = class ListContent { }; module.exports.UploadContent = class UploadContent { - constructor(program) { this.program = program; } @@ -74,8 +71,8 @@ module.exports.UploadContent = class UploadContent { const contentClient = new Content(profile.url); - const chunkSize = parseInt(options.chunkSize); - //const chunkSize = parseInt(options.chunkSize); + const chunkSize = parseInt(options.chunkSize, 10); + // const chunkSize = parseInt(options.chunkSize); const uploadSecure = _.partial(UploadContent.uploadSecure, contentClient, profile, options); const upload = _.partial(UploadContent.upload, contentClient, profile, options); @@ -99,10 +96,9 @@ module.exports.UploadContent = class UploadContent { .reduce((promise, currentChunk) => promise .then(() => { debug(`working on chunk of files: ${JSON.stringify(currentChunk)}`); - const promises = currentChunk.map((item) => upload(`${contentKey}/${item.relative}`, item.canonical)); + const promises = currentChunk.map(item => upload(`${contentKey}/${item.relative}`, item.canonical)); return Promise.all(promises); - }), Promise.resolve() - ); + }), Promise.resolve()); } else { console.log('Test option set. Nothing uploaded.'); } @@ -112,14 +108,11 @@ module.exports.UploadContent = class UploadContent { cbTest(filesDict); } }); - } else { - if (options.secure) { + } else if (options.secure) { uploadSecure(contentKey, filePath); - } - else { + } else { upload(contentKey, filePath); } - } } @@ -128,25 +121,23 @@ module.exports.UploadContent = class UploadContent { const fileBaseName = path.basename(filePath); const secureContent = {}; - secureContent[fileBaseName] = new Buffer(fileContent).toString('base64'); - contentClient.uploadSecureContent(profile.token, contentKey, secureContent).then((response) => { + secureContent[fileBaseName] = Buffer.from(fileContent).toString('base64'); + contentClient.uploadSecureContent(options.project || profile.project, profile.token, contentKey, secureContent).then((response) => { if (response.success) { - printSuccess(`Secure content successfully uploaded.`, options); - } - else { + printSuccess('Secure content successfully uploaded.', options); + } else { printError(`Failed to upload secure content: ${response.status} ${response.message}`, options); } - }) + }); } static upload(contentClient, profile, options, contentKey, filePath) { const showProgress = !!options.progress; const contentType = _.get(options, 'contentType', 'application/octet-stream'); - return contentClient.uploadContentStreaming(profile.token, contentKey, filePath, showProgress, contentType).then((response) => { + return contentClient.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, filePath, showProgress, contentType).then((response) => { if (response.success) { - printSuccess(`Content successfully uploaded.`, options); - } - else { + printSuccess('Content successfully uploaded.', options); + } else { printError(`Failed to upload content: ${response.status} ${response.message}`, options); } }) @@ -158,7 +149,6 @@ module.exports.UploadContent = class UploadContent { }; module.exports.DeleteContent = class DeleteContent { - constructor(program) { this.program = program; } @@ -168,11 +158,10 @@ module.exports.DeleteContent = class DeleteContent { debug('%s.deleteContent()', profile.name); const content = new Content(profile.url); - content.deleteContent(profile.token, contentKey).then((response) => { + content.deleteContent(options.project || profile.project, profile.token, contentKey).then((response) => { if (response.success) { - printSuccess(`Content successfully deleted.`, options); - } - else { + printSuccess('Content successfully deleted.', options); + } else { printError(`Failed to delete content: ${response.status} ${response.message}`, options); } }) @@ -184,7 +173,6 @@ module.exports.DeleteContent = class DeleteContent { }; module.exports.DownloadContent = class DownloadContent { - constructor(program) { this.program = program; } @@ -198,11 +186,10 @@ module.exports.DownloadContent = class DownloadContent { // To download content from Secrets if (options.secure) { - content.downloadSecureContent(profile.token, contentKey).then((response) => { + content.downloadSecureContent(options.project || profile.project, profile.token, contentKey).then((response) => { if (response.success) { printSuccess(response.message, options); - } - else { + } else { printError(`Failed to download secure content: ${response.status} ${response.message}`, options); } }) @@ -210,14 +197,12 @@ module.exports.DownloadContent = class DownloadContent { debug(err); printError(`Failed to download secure content: ${err.status} ${err.message}`, options); }); - } - else { - content.downloadContent(profile.token, contentKey, showProgress).then((response) => { + } else { + content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).then((response) => { if (response.success) { // messages need to be on stderr as content is streamed to stdout console.error(response.message); - } - else { + } else { printError(`Failed to download content: ${response.status} ${response.message}`, options); } }).catch((err) => { @@ -225,6 +210,5 @@ module.exports.DownloadContent = class DownloadContent { printError(`Failed to download content: ${err.status} ${err.message}`, options); }); } - } }; diff --git a/src/commands/datasets.js b/src/commands/datasets.js index 026db826..139f2170 100644 --- a/src/commands/datasets.js +++ b/src/commands/datasets.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -17,13 +17,13 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const es = require('event-stream'); -const yeoman = require('yeoman-environment'); const { loadProfile } = require('../config'); const Datasets = require('../client/datasets'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.ListDatasets = class ListDatasets { - constructor(program) { this.program = program; } @@ -33,17 +33,16 @@ module.exports.ListDatasets = class ListDatasets { debug('%s.listDatasets()', profile.name); const datasets = new Datasets(profile.url); - datasets.listDatasets(profile.token).then((response) => { + datasets.listDatasets(options.project || profile.project, profile.token).then((response) => { if (response.success) { - let result = response.result; + let { result } = response; if (options.query) { result = filterObject(response.result, options); } if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 50 }, { column: 'Connection Name', field: 'connectionName', width: 25 }, @@ -54,8 +53,7 @@ module.exports.ListDatasets = class ListDatasets { printTable(tableSpec, result.datasets); } - } - else { + } else { printError(`Failed to list datasets: ${response.status} ${response.message}`, options); } }) @@ -67,7 +65,6 @@ module.exports.ListDatasets = class ListDatasets { }; module.exports.SaveDatasetsCommand = class SaveDatasetsCommand { - constructor(program) { this.program = program; } @@ -81,11 +78,10 @@ module.exports.SaveDatasetsCommand = class SaveDatasetsCommand { debug('%o', connObj); const datasets = new Datasets(profile.url); - datasets.saveDatasets(profile.token, connObj).then((response) => { + datasets.saveDatasets(options.project || profile.project, profile.token, connObj).then((response) => { if (response.success) { - printSuccess(`Dataset saved`, options); - } - else { + printSuccess('Dataset saved', options); + } else { printError(`Failed to save Dataset: ${response.status} ${response.message}`, options); } }) @@ -96,7 +92,6 @@ module.exports.SaveDatasetsCommand = class SaveDatasetsCommand { }; module.exports.DescribeDatasetCommand = class DescribeDatasetCommand { - constructor(program) { this.program = program; } @@ -106,12 +101,11 @@ module.exports.DescribeDatasetCommand = class DescribeDatasetCommand { debug('%s.executeDescribeDataset(%s)', profile.name, datasetName); const dataset = new Datasets(profile.url); - dataset.describeDataset(profile.token, datasetName).then((response) => { + dataset.describeDataset(options.project || profile.project, profile.token, datasetName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe dataset ${datasetName}: ${response.message}`, options); } }) @@ -122,7 +116,6 @@ module.exports.DescribeDatasetCommand = class DescribeDatasetCommand { }; module.exports.GetDataframeCommand = class GetDataframeCommand { - constructor(program) { this.program = program; } @@ -132,11 +125,10 @@ module.exports.GetDataframeCommand = class GetDataframeCommand { debug('%s.executeGetDataframe(%s)', profile.name, datasetName); const dataset = new Datasets(profile.url); - dataset.getDataframe(profile.token, datasetName).then((response) => { + dataset.getDataframe(options.project || profile.project, profile.token, datasetName).then((response) => { if (response.success) { printSuccess(JSON.stringify(response.result, null, 2), options); - } - else { + } else { printError(`Failed to get dataframe ${datasetName}: ${response.message}`, options); } }) @@ -147,7 +139,6 @@ module.exports.GetDataframeCommand = class GetDataframeCommand { }; module.exports.StreamDatasetCommand = class StreamDatasetCommand { - constructor(program) { this.program = program; } @@ -157,14 +148,13 @@ module.exports.StreamDatasetCommand = class StreamDatasetCommand { debug('%s.executeStreamDataset(%s)', profile.name, datasetName); const dataset = new Datasets(profile.url); - dataset.streamDataset(profile.token, datasetName).then((response) => { + dataset.streamDataset(options.project || profile.project, profile.token, datasetName).then((response) => { if (response.success) { - let stream = new es.Stream.PassThrough(); + const stream = new es.Stream.PassThrough(); stream.write(response.result.text); stream.end(); - stream.pipe(process.stdout) - } - else { + stream.pipe(process.stdout); + } else { printError(`Failed to stream dataset ${datasetName}: ${response.message}`, options); } }) @@ -173,21 +163,3 @@ module.exports.StreamDatasetCommand = class StreamDatasetCommand { }); } }; - -module.exports.GenerateDatasetCommand = class GenerateDatasetCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - debug('%s.generateDataset()', options.profile); - const yenv = yeoman.createEnv(); - const profile = options.profile; - yenv.lookup(()=>{ - yenv.run('@c12e/cortex:datasets', - {'cortexProfile': profile }, - (err) => { err ? printError(err) : printSuccess('Done.') }); - }); - } -}; diff --git a/src/commands/deploy.js b/src/commands/deploy.js index a4cfbc1c..db7d8d21 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,10 +14,12 @@ * limitations under the License. */ const debug = require('debug')('cortex:cli'); -const {loadProfile} = require('../config'); const path = require('path'); +const { loadProfile } = require('../config'); const Agents = require('../client/agents'); -const {printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile} = require('./utils'); +const { + printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, +} = require('./utils'); /** @@ -65,36 +67,35 @@ module.exports.DeploySnapshotCommand = class { const agents = new Agents(profile.url); const promises = []; - snapshotIds.split(' ').forEach(function (snapshotId) { - promises.push(agents.describeAgentSnapshot(profile.token, snapshotId, envName).then((response) => { + snapshotIds.split(' ').forEach((snapshotId) => { + promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, envName).then((response) => { if (response.success) { let result = filterObject(response.result, options); result = cleanInternalFields(result); - //TODO add validation for not exporting tip snapshots, as they don't have all dependencies. Should we enforce? - let filename = snapshotId + ".json"; + // TODO add validation for not exporting tip snapshots, as they don't have all dependencies. Should we enforce? + let filename = `${snapshotId}.json`; if (options.yaml) { result = jsonToYaml(result); - filename = snapshotId + ".yaml"; + filename = `${snapshotId}.yaml`; } const filepath = path.join(exportPath, 'snapshots', filename); writeToFile(result, filepath); printSuccess(`Successfully exported agent snapshot ${filepath}`); return filepath; - } else { - printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); - } + } + return printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); }).catch((err) => { printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); })); }); - Promise.all(promises).then(result => { + Promise.all(promises).then((result) => { const manifest = { - "version": 1, - "kind": "deployment-manifest", - "cortex": { - "snapshots": result - } + version: 1, + kind: 'deployment-manifest', + cortex: { + snapshots: result, + }, }; writeToFile(jsonToYaml(manifest), manifestFile); printSuccess(`Successfully generated manifest file ${manifestFile}`); diff --git a/src/commands/docker.js b/src/commands/docker.js index 7439dd89..f2ae744a 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,13 +15,12 @@ */ const debug = require('debug')('cortex:cli'); -const {loadProfile} = require('../config'); -const {printSuccess, printError} = require('./utils'); +const { loadProfile } = require('../config'); +const { printSuccess, printError } = require('./utils'); const Actions = require('../client/actions'); const { callMe } = require('../commands/utils'); module.exports.DockerLoginCommand = class { - constructor(program) { this.program = program; } @@ -31,7 +30,7 @@ module.exports.DockerLoginCommand = class { debug('%s.executeDockerLogin()', profile.name); const action = new Actions(profile.url); - const registryUrl = await action._cortexRegistryUrl(profile.token); + const registryUrl = await action._cortexRegistryUrl(options.project || profile.project, profile.token); try { await callMe(`docker login -u cli --password ${profile.token} ${registryUrl}`); printSuccess(JSON.stringify('Login Succeeded', null, 2), options); @@ -39,4 +38,4 @@ module.exports.DockerLoginCommand = class { printError(`Failed to docker login: ${err.message || err}`, options); } } -}; \ No newline at end of file +}; diff --git a/src/commands/environments.js b/src/commands/environments.js deleted file mode 100644 index d87af2d7..00000000 --- a/src/commands/environments.js +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const yeoman = require('yeoman-environment'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Environments = require('../client/environments'); -const Content = require('../client/content'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); -const _ = require('lodash/object'); -module.exports.ListEnvironments = class ListEnvironments { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listEnvironment()', profile.name); - - const envs = new Environments(profile.url); - envs.listEnvironments(profile.token).then((response) => { - if (response.success) { - let result = _.get(response,'result.environments',[]); - if (options.query) - result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Name', field: 'name', width: 25 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Region', field: 'regionRef', width: 25 } - ]; - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list environments: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list environments: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.SaveEnvironmentCommand = class SaveEnvironmentCommand { - - constructor(program) { - this.program = program; - } - - execute(environmentDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSaveDefinition(%s)', profile.name, environmentDefinition); - - const envDefStr = fs.readFileSync(environmentDefinition); - const envObj = parseObject(envDefStr, options); - debug('%o', envObj); - - const environment = new Environments(profile.url); - environment.saveEnvironment(profile.token, envObj) - .then((response) => { - if (response.success) { - printSuccess(`Environment \'${envObj.name}\' saved`, options); - } else { - printError(`Failed to save environment: ${response.status} ${response.message}`, options); - }}) - .catch((err) => { - printError(`Failed to save environment: ${err.response.body.message}`, options); - }); - } -}; - - -module.exports.DescribeEnvironmentCommand = class DescribeEnvironmentCommand { - - constructor(program) { - this.program = program; - } - - execute(environmentName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDescribeEnvironment(%s)', profile.name, environmentName); - - const environment = new Environments(profile.url); - environment.describeEnvironment(profile.token, environmentName).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to describe environment ${environmentName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe environment ${environmentName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListInstancesCommand = class ListInstancesCommand { - - constructor(program) { - this.program = program; - } - - execute(environmentName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeListInstances(%s)', profile.name, environmentName); - const environment = new Environments(profile.url); - - environment.listInstances(profile.token, environmentName).then((response) => { - if (response.success) { - let result = _.get(response,'result.instances',[]); - if (options.query) - result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Instance Id', field: 'id', width: 26 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Snapshot Id', field: 'snapshotId', width: 40 }, - { column: 'Agent Name', field: 'agentName', width: 50 }, - { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Environment', field: 'environmentName', width: 26 }, - { column: 'Created At', field: 'createdAt', width: 26 }, - ]; - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list instances in environment ${environmentName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list instances in environment ${environmentName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.PromoteEnvironmentCommand = class PromoteEnvironmentCommand { - - constructor(program) { - this.program = program; - } - - execute(promoteDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.executePromoteDefinition(%s)', profile.name, promoteDefinition); - let promObj; - if ( promoteDefinition ) { - const promStr = fs.readFileSync(promoteDefinition); - promObj = parseObject(promStr, options); - } else if ( _.get(options,'snapshotId','').length > 0 && _.get(options,'environmentName','').length > 0) { - promObj = { snapshotId: options.snapshotId, environmentName: options.environmentName } - } else { - printError(`Either --snapshotId <..> and --environmentName <..> or a promotion definition file must be provided`, options); - return; - } - debug('%o', promObj); - - const environment = new Environments(profile.url); - environment.promoteEnvironment(profile.token, promObj) - .then((response) => { - if (response.success) { - printSuccess(`Snapshot \'${promObj.snapshotId}\' successfully promoted to \'${promObj.environmentName}\' environment. Instance \'${response.message.instanceId}\' created.`, options); - } else { - let errMsg = `Failed to promote to environment: ${response.status} ${response.message}\n`; - if (response.details) { - response.details.forEach(d => - errMsg = errMsg + `${d.resource} ${d.name} - ${d.error}\n`); - } - printError(errMsg, options); - - }}) - .catch((err) => { - printError(`Failed to promote to environment: ${err.response.body.message}`, options); - }); - } -}; - diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 21f04d4f..3f518ec7 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,17 +14,16 @@ * limitations under the License. */ -const fs = require('fs'); const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const moment = require('moment'); -const es = require('event-stream'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, printTable, +} = require('./utils'); class ListExperiments { - constructor(program) { this.program = program; } @@ -34,17 +33,16 @@ class ListExperiments { debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); - exp.listExperiments(profile.token).then((response) => { + exp.listExperiments(options.project || profile.project, profile.token).then((response) => { if (response.success) { - let result = response.result; + let { result } = response; if (options.query) { result = filterObject(response.result, options); } if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 50 }, { column: 'Version', field: '_version', width: 25 }, @@ -53,8 +51,7 @@ class ListExperiments { printTable(tableSpec, result.experiments); } - } - else { + } else { printError(`Failed to list experiments: ${response.status} - ${response.message}`, options); } }) @@ -66,7 +63,6 @@ class ListExperiments { } class DescribeExperimentCommand { - constructor(program) { this.program = program; } @@ -76,12 +72,11 @@ class DescribeExperimentCommand { debug('%s.executeDescribeExperiment(%s)', profile.name, experimentName); const exp = new Experiments(profile.url); - exp.describeExperiment(profile.token, experimentName).then((response) => { + exp.describeExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe experiment ${experimentName}: ${response.status} - ${response.message}`, options); } }) @@ -92,7 +87,6 @@ class DescribeExperimentCommand { } class DeleteExperimentCommand { - constructor(program) { this.program = program; } @@ -102,12 +96,11 @@ class DeleteExperimentCommand { debug('%s.executeDeleteExperiment(%s)', profile.name, experimentName); const exp = new Experiments(profile.url); - exp.deleteExperiment(profile.token, experimentName).then((response) => { + exp.deleteExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to delete experiment ${experimentName}: ${response.status} - ${response.message}`, options); } }) @@ -118,7 +111,6 @@ class DeleteExperimentCommand { } class ListRuns { - constructor(program) { this.program = program; } @@ -130,31 +122,37 @@ class ListRuns { const exp = new Experiments(profile.url); const sort = options.sort || JSON.stringify({ startTime: -1 }); - exp.listRuns(profile.token, experimentName, options.filter, options.limit, sort).then((response) => { + exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort).then((response) => { if (response.success) { - let result = response.result; + let { result } = response; if (options.query) { result = filterObject(response.result, options); } if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { alias: 'Run ID', value: 'runId', width: 25 }, - { alias: 'Start', value: 'startTime', width: 25, formatter: (val) => moment.unix(val).format('YYYY-MM-DD HH:mm a')}, - { alias: 'Took', value: 'took', width: 25, formatter: (val) => moment.duration(val, 'seconds').humanize()}, - { alias: 'Params', value: 'params', width: 45, formatter: (val) => _.map(val, (v, k) => `${k}: ${v}`).join('\n') }, - { alias: 'Metrics', value: 'metrics', width: 45, formatter: (val) => _.map(val, (v, k) => `${k}: ${v}`).join('\n') }, - { alias: 'Artifacts', value: 'artifacts', formatter: (val) => Object.keys(val).join(', ') }, + { + alias: 'Start', value: 'startTime', width: 25, formatter: val => moment.unix(val).format('YYYY-MM-DD HH:mm a'), +}, + { + alias: 'Took', value: 'took', width: 25, formatter: val => moment.duration(val, 'seconds').humanize(), +}, + { + alias: 'Params', value: 'params', width: 45, formatter: val => _.map(val, (v, k) => `${k}: ${v}`).join('\n'), +}, + { + alias: 'Metrics', value: 'metrics', width: 45, formatter: val => _.map(val, (v, k) => `${k}: ${v}`).join('\n'), +}, + { alias: 'Artifacts', value: 'artifacts', formatter: val => Object.keys(val).join(', ') }, ]; const Table = require('tty-table'); const t = new Table(tableSpec, result.runs); console.log(t.render()); } - } - else { + } else { printError(`Failed to list runs: ${response.status} ${response.status} - ${response.message}`, options); } }) @@ -166,7 +164,6 @@ class ListRuns { } class DescribeRunCommand { - constructor(program) { this.program = program; } @@ -176,12 +173,11 @@ class DescribeRunCommand { debug('%s.executeDescribeRun(%s)', profile.name, runId); const exp = new Experiments(profile.url); - exp.describeRun(profile.token, experimentName, runId).then((response) => { + exp.describeRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); } }) @@ -192,7 +188,6 @@ class DescribeRunCommand { } class DeleteRunCommand { - constructor(program) { this.program = program; } @@ -202,11 +197,10 @@ class DeleteRunCommand { debug('%s.executeDeleteRun(%s)', profile.name, runId); const exp = new Experiments(profile.url); - exp.deleteRun(profile.token, experimentName, runId).then((response) => { + exp.deleteRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { printSuccess(`Run ${runId} in experiment ${experimentName} deleted`, options); - } - else { + } else { printError(`Failed to delete run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); } }) @@ -217,7 +211,6 @@ class DeleteRunCommand { } class DownloadArtifactCommand { - constructor(program) { this.program = program; } @@ -230,12 +223,11 @@ class DownloadArtifactCommand { const showProgress = !!options.progress; // To download content from Secrets - exp.downloadArtifact(profile.token, experimentName, runId, artifactName, showProgress).then((response) => { + exp.downloadArtifact(options.project || profile.project, profile.token, experimentName, runId, artifactName, showProgress).then((response) => { if (response.success) { // messages need to be on stderr as content is streamed to stdout console.error(response.message); - } - else { + } else { printError(`Failed to download artifact: ${response.status} - ${response.message}`, options); } }).catch((err) => { diff --git a/src/commands/graph.js b/src/commands/graph.js index 387a86ab..39873928 100644 --- a/src/commands/graph.js +++ b/src/commands/graph.js @@ -26,15 +26,19 @@ const through2 = require('through2'); const { loadProfile } = require('../config'); const { Graph } = require('../client/graph'); -const { printSuccess, printError, filterObject, countLinesInFile, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, countLinesInFile, printTable, +} = require('./utils'); const _reserved = ['$match', '$path', '$transform', '$name']; const _systemEvents = ['$set', '$unset', '$delete']; -const progressBarConfig = 'publishing [:bar] :current/:total :rate evt/s :elapsed s' ; +const progressBarConfig = 'publishing [:bar] :current/:total :rate evt/s :elapsed s'; const applyTemplate = (t, target) => { - const { $match, $path, $transform, $name } = t; + const { + $match, $path, $transform, $name, +} = t; debug(`applying template to target: ${JSON.stringify(target, null, 4)}`); @@ -43,10 +47,10 @@ const applyTemplate = (t, target) => { debug(`checking $match for ${$name}: ${$match}`); let match = true; const queryTarget = [target]; - for (let m of $match) { + ($match).forEach((m) => { const paths = jp.query(queryTarget, m); match = paths && paths.length > 0; - } + }); if (!match) return null; if ($name) debug(`Matched template ${$name}: ${$match}`); @@ -69,18 +73,16 @@ const applyTemplate = (t, target) => { debug('q:', q); // Hardcoded event using a system event type - if (k == 'event' && _systemEvents.indexOf(q) !== -1) { + if (k === 'event' && _systemEvents.indexOf(q) !== -1) { result[k] = q; return; } if (_.isObject(q)) { result[k] = applyTemplate(q, target); - } - else if (q.startsWith('$')) { + } else if (q.startsWith('$')) { result[k] = jp.value(target, q); - } - else { + } else { result[k] = q; } }); @@ -88,41 +90,28 @@ const applyTemplate = (t, target) => { return result; }; -const fixUnicodeKeys = (obj) => { - const keys = Object.keys(obj); - const result = {}; - keys.forEach((k) => { - const newKey = k.replace(/\\u002e/, '_').replace(/@/, '_'); - result[newKey] = obj[k]; - }); - return result; -}; - function castValue(value) { - if (_.isNumber(value) || _.isString(value) || _.isBoolean(value)) { - return { value }; - } if (_.isArray(value)) { return { - value: _.map(value, (x) => _.isString(x) ? castValue(x) : x) + value: _.map(value, x => (_.isString(x) ? castValue(x) : x)), }; - } // Construct Dimensional from Object if (_.isObject(value)) { return { value: _.map( _.entries(value), - entry => { + (entry) => { const [k, v] = entry; return { dimensionId: k, dimensionValue: castValue(v), }; - } - ) - } + }, + ), + }; } + return { value }; } /** @@ -135,10 +124,12 @@ const autoAttributes = (evt) => { // Skip relationship events if (evt.targetEntityId) return attrs; - const { event, properties, entityId, entityType, eventTime, source, meta, eventLabel } = evt; + const { + event, properties, entityId, entityType, eventTime, source, meta, eventLabel, +} = evt; - if (event == '$set') { - attrs = Object.keys(properties).map((k) => ({ + if (event === '$set') { + attrs = Object.keys(properties).map(k => ({ event: k, entityId, entityType, @@ -154,7 +145,6 @@ const autoAttributes = (evt) => { }; class FindEventsCommand { - constructor(program) { this.program = program; } @@ -164,29 +154,26 @@ class FindEventsCommand { debug('%s.executeFindEvents()', profile.name); const graph = new Graph(profile.url); - graph.findEvents(profile.token, options.filter, options.sort, options.limit, options.skip) + graph.findEvents(options.project || profile.project, profile.token, options.filter, options.sort, options.limit, options.skip) .then((response) => { if (response.success) { let result = response.events; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ - {column: 'Entity ID', field: 'entityId', width: 40}, - {column: 'Entity Type', field: 'entityType', width: 30}, - {column: 'Event', field: 'event', width: 30}, - {column: 'Event Label', field: 'eventLabel', width: 30}, - {column: 'Event Time', field: 'eventTime', width: 20}, + { column: 'Entity ID', field: 'entityId', width: 40 }, + { column: 'Entity Type', field: 'entityType', width: 30 }, + { column: 'Event', field: 'event', width: 30 }, + { column: 'Event Label', field: 'eventLabel', width: 30 }, + { column: 'Event Time', field: 'eventTime', width: 20 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to find entities: ${response.status} ${response.message}`, options); } }) @@ -218,10 +205,9 @@ class PublishEventsCommand { let rs; if (options.tracking) { - rs = await graph.track(profile.token, events); - } - else { - rs = await graph.publishEntities(profile.token, events); + rs = await graph.track(options.project || profile.project, profile.token, events); + } else { + rs = await graph.publishEntities(options.project || profile.project, profile.token, events); } if (bar && events.length > 0) bar.tick(events.length); @@ -232,14 +218,14 @@ class PublishEventsCommand { }; // Git conflict - this was not async before ... - const printEvent = async (events, bar) => { + const printEvent = async (events) => { if (!events) return; - events.forEach((e) => console.log(JSON.stringify(e))); + events.forEach(e => console.log(JSON.stringify(e))); }; function list_can_handle_element_without_going_over_size(batch_size, element_size, max_size) { const batch_size_delta_if_elem_added = element_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty - return batch_size + batch_size_delta_if_elem_added <= max_size + return batch_size + batch_size_delta_if_elem_added <= max_size; } function batchElementsUntilSize(max_size) { @@ -252,12 +238,10 @@ class PublishEventsCommand { if (event_size > max_event_size) { debug(`Event too large at ${event_size}B. Max Size: ${max_event_size}B. Event: ${JSON.stringify(event)}`); - } - else if (list_can_handle_element_without_going_over_size(batch_size, event_size, max_size)) { + } else if (list_can_handle_element_without_going_over_size(batch_size, event_size, max_size)) { batch.push(event); - batch_size += event_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty [] - } - else { + batch_size += event_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty [] + } else { debug(`LIMIT REACHED ${batch_size}, PUSHING ${batch.length} elements.`); this.push(batch); batch = []; @@ -285,17 +269,17 @@ class PublishEventsCommand { bar = !_.isEmpty(bar) ? bar : ( new ProgressBar(progressBarConfig, { total: 0, width: 65 }) ); - const { batchHandler, batchFlusher, } = batchElementsUntilSize(1024 * 100); + const { batchHandler, batchFlusher } = batchElementsUntilSize(1024 * 100); stream .pipe(split()) // Cast to JSONs .pipe(through2.obj( - function (line, encoding, callback){ + function (line, encoding, callback) { if (!_.isEmpty(line)) { this.push(JSON.parse(line)); } callback(); - } + }, )) // Transform and Expand Auto Attributes ... .pipe(through2.obj( @@ -304,24 +288,25 @@ class PublishEventsCommand { if (options.transform) { debug('loading templates from: ', path.resolve(options.transform)); + // eslint-disable-next-line import/no-dynamic-require const templates = require(path.resolve(options.transform)); debug('loaded templates:', templates); // The event gets completely replaced in this case ... since we are saying it needs to be // transformed ... thats why concat is not used here ... events = _.map( templates, - (t) => applyTemplate(t, event), + t => applyTemplate(t, event), ).filter(e => e !== null); } if (options.auto) { - const autoAttrs = _.flatten(events.map((evt) => autoAttributes(evt))); + const autoAttrs = _.flatten(events.map(evt => autoAttributes(evt))); debug(`Generated ${autoAttrs.length} attribute events`); events = events.concat(autoAttrs); } - events.forEach((e) => this.push(e)); + events.forEach(e => this.push(e)); callback(); - } + }, )) // Batch Based on Size .pipe(through2({ objectMode: true }, batchHandler, batchFlusher)) @@ -329,10 +314,10 @@ class PublishEventsCommand { // Only upload 1 batch at a time! { objectMode: true, highWaterMark: 5 }, function (batch_of_events_to_upload, encoding, callback) { - if (lineCountIsDynamic){ + if (lineCountIsDynamic) { bar.total += _.size(batch_of_events_to_upload); } - let task = options.dryRun ? printEvent : publishEvent; + const task = options.dryRun ? printEvent : publishEvent; task(batch_of_events_to_upload, bar) .then((response) => { this.push(response); @@ -342,14 +327,14 @@ class PublishEventsCommand { printError(`Error uploading event batch: ${error.message}`, options, false); callback(); }); - } + }, )) .on('data', (response_from_batch_publish) => { debug(`# Response from events published : ${response_from_batch_publish}`); }) - .on('error', (err) => reject(err)) + .on('error', err => reject(err)) .on('end', () => { - if(!options.dryRun) { + if (!options.dryRun) { printError(`Finished processing ${bar.total} events in batches.`, null, false); } bar.terminate(); @@ -363,7 +348,7 @@ class PublishEventsCommand { let bar = null; if (!lineCountIsDynamic) { bar = new ProgressBar( - progressBarConfig, { total: numLines, width: 65 } + progressBarConfig, { total: numLines, width: 65 }, ); printError(`Publishing ${numLines} records from file ${file}`, null, false); } else { @@ -375,18 +360,16 @@ class PublishEventsCommand { }); }); } - else { + return new Promise((resolve, reject) => { process.stdin.resume(); process.stdin.setEncoding('utf8'); processStream(process.stdin, resolve, reject); }); - } } } class GetEntityCommand { - constructor(program) { this.program = program; } @@ -396,7 +379,7 @@ class GetEntityCommand { debug('%s.executeGetEntity(%s)', profile.name, entityId); const graph = new Graph(profile.url); - graph.getEntity(profile.token, entityId) + graph.getEntity(options.project || profile.project, profile.token, entityId) .then((response) => { if (response.success) { let result = response.entity; @@ -404,8 +387,7 @@ class GetEntityCommand { result = filterObject(result, options); } printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to get entity: ${response.status} ${response.message}`, options); } }) @@ -416,7 +398,6 @@ class GetEntityCommand { } class QueryGraphCommand { - constructor(program) { this.program = program; } @@ -426,30 +407,29 @@ class QueryGraphCommand { debug('%s.executeQueryGraph(%s)', profile.name, query); const graph = new Graph(profile.url); - graph.query(profile.token, query) + graph.query(options.project || profile.project, profile.token, query) .then((response) => { if (response.success) { - const result = response.result; + const { result } = response; const rows = result.values || []; debug('query result:', result); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const table = new Table( - result.columns.map(c => ({ value: c, headerColor : 'cyan', })), + result.columns.map(c => ({ value: c, headerColor: 'cyan' })), rows, - { defaultValue: '---'}); + { defaultValue: '---' }, +); printSuccess(query); console.log(table.render()); console.log(); printSuccess(`Found ${rows.length} results in ${result.took} milliseconds`, options); } - } - else { + } else { printError(`Failed to execute query: ${response.status} ${response.message}`, options); } }) diff --git a/src/commands/jobs.js b/src/commands/jobs.js deleted file mode 100644 index 0550ac83..00000000 --- a/src/commands/jobs.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Jobs = require('../client/jobs'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - -module.exports.ListJobs = class ListJobs { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listJobs()', profile.name); - - const jobs = new Jobs(profile.url); - jobs.listJobs(profile.token).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result.jobs, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Image', field: 'image', width: 90 }, - { column: 'Memory', field: 'memory', width: 10 }, - { column: 'Virtual CPUs', field: 'vcpus', width: 15 } - ]; - printTable(tableSpec, response.result.jobs); - } - } - else { - printError(`Failed to list jobs: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list jobs: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeJob = class DescribeJob { - - constructor(program) { - this.program = program; - } - - execute(jobDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.describeJob()', profile.name); - - const jobs = new Jobs(profile.url); - jobs.describeJob(profile.token, jobDefinition).then((response) => { - if (response.success) { - if (options.json) { - let result = filterObject(response.result.job, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Image', field: 'image', width: 90 }, - { column: 'Memory', field: 'memory', width: 10 }, - { column: 'Virtual CPUs', field: 'vcpus', width: 15 } - ]; - printTable(tableSpec, [response.result.job]); - } - } - else { - printError(`Failed to describe job: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to describe job: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.JobStatus = class JobStatus { - - constructor(program) { - this.program = program; - } - - execute(jobDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.jobStatus()', profile.name); - - const jobs = new Jobs(profile.url); - jobs.jobStatus(profile.token, jobDefinition).then((response) => { - if (response.success) { - if (options.json) { - let result = response.result; - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Submitted', field: 'SUBMITTED', width: 15 }, - { column: 'Pending', field: 'PENDING', width: 15 }, - { column: 'Runnable', field: 'RUNNABLE', width: 15 }, - { column: 'Starting', field: 'STARTING', width: 15 }, - { column: 'Running', field: 'RUNNING', width: 15 }, - { column: 'Succeeded', field: 'SUCCEEDED', width: 15 }, - { column: 'Failed', field: 'FAILED', width: 15 } - ]; - printTable(tableSpec, [response.result.stats]); - } - } - else { - printError(`Failed to describe job: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to describe job: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.SaveJob = class SaveJob { - - constructor(program) { - this.program = program; - } - - execute(jobDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.saveJob()', profile.name); - - const jobDefStr = fs.readFileSync(jobDefinition); - const job = parseObject(jobDefStr, options); - debug('%o', job); - - const jobs = new Jobs(profile.url); - jobs.saveJob(profile.token, job, options.pushDocker).then((response) => { - if (response.success) { - printSuccess('Job saved', options); - } - else { - printError(`Failed to save job: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to save job: ${err.status} ${err.message}`, options); - }); - } -}; \ No newline at end of file diff --git a/src/commands/profiles.js b/src/commands/profiles.js index fccb2204..533a2dc5 100644 --- a/src/commands/profiles.js +++ b/src/commands/profiles.js @@ -14,16 +14,16 @@ * limitations under the License. */ -const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { Graph } = require('../client/graph'); -const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, +} = require('./utils'); class SaveProfileSchemaCommand { - constructor(program) { this.program = program; } @@ -36,20 +36,20 @@ class SaveProfileSchemaCommand { const schema = parseObject(schemaStr, options); const catalog = new Catalog(profile.url); - catalog.saveProfileSchema(profile.token, schema) + catalog.saveProfileSchema(options.project || profile.project, profile.token, schema) .then((response) => { if (response.success) { - printSuccess(`Profile Schema saved`, options); + printSuccess('Profile Schema saved', options); } else { - const {message, details} = response; + const { message, details } = response; debug(`Failed to save profile schema: ${response.status} - ${message}`); debug(response); printError('Failed to save profile schema.', options, false); if (details) { printError('The following issues were found:', options, false); const tableSpec = [ - {column: 'Path', field: 'path', width: 50}, - {column: 'Message', field: 'message', width: 100}, + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, ]; details.map(d => d.path = formatValidationPath(d.path)); printTable(tableSpec, details); @@ -69,7 +69,6 @@ class SaveProfileSchemaCommand { } class ListProfileSchemasCommand { - constructor(program) { this.program = program; } @@ -78,22 +77,23 @@ class ListProfileSchemasCommand { const profile = loadProfile(options.profile); debug('%s.executeListProfileSchemas()', profile.name); - const { filter, sort, limit, skip } = options; + const { + filter, sort, limit, skip, +} = options; const catalog = new Catalog(profile.url); - catalog.listProfileSchemas(profile.token, filter, sort, limit, skip) + catalog.listProfileSchemas(options.project || profile.project, profile.token, filter, sort, limit, skip) .then((response) => { if (response.success) { let result = response.schemas; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - {column: 'Title', field: 'title', width: 50}, - {column: 'Name', field: 'name', width: 50}, - {column: 'Version', field: '_version', width: 12} + { column: 'Title', field: 'title', width: 50 }, + { column: 'Name', field: 'name', width: 50 }, + { column: 'Version', field: '_version', width: 12 }, ]; printTable(tableSpec, result); @@ -109,7 +109,6 @@ class ListProfileSchemasCommand { } class DescribeProfileSchemaCommand { - constructor(program) { this.program = program; } @@ -119,10 +118,10 @@ class DescribeProfileSchemaCommand { debug('%s.executeDescribeProfileSchema(%s)', profile.name, schemaName); const catalog = new Catalog(profile.url); - catalog.describeProfileSchema(profile.token, schemaName) + catalog.describeProfileSchema(options.project || profile.project, profile.token, schemaName) .then((response) => { if (response.success) { - let result = filterObject(response.schema, options); + const result = filterObject(response.schema, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printError(`Failed to describe profile schema ${schemaName}: ${response.message}`, options); @@ -135,7 +134,6 @@ class DescribeProfileSchemaCommand { } class DeleteProfileSchemaCommand { - constructor(program) { this.program = program; } @@ -145,11 +143,11 @@ class DeleteProfileSchemaCommand { debug('%s.executeDeleteProfileSchema(%s)', profile.name, schemaName); const catalog = new Catalog(profile.url); - catalog.deleteProfileSchema(profile.token, schemaName) + catalog.deleteProfileSchema(options.project || profile.project, profile.token, schemaName) .then((response) => { if (response.success) { debug(response.message); - printSuccess(`Profile Schema deleted.`, options); + printSuccess('Profile Schema deleted.', options); } else { printError(`Failed to delete profile schema ${schemaName}: ${response.message}`, options); } @@ -169,30 +167,29 @@ class ListProfilesCommand { const profile = loadProfile(options.profile); debug('%s.executeListProfiles()', profile.name); - const { filter, sort, limit, skip } = options; + const { + filter, sort, limit, skip, +} = options; const graph = new Graph(profile.url); - graph.listProfiles(profile.token, filter, sort, limit, skip) + graph.listProfiles(options.project || profile.project, profile.token, filter, sort, limit, skip) .then((response) => { if (response.success) { let result = response.profiles; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ - {column: 'Profile ID', field: 'profileId', width: 50}, - {column: 'Profile Schema', field: 'profileSchema', width: 50}, - {column: 'Version', field: 'version', width: 12}, - {column: 'Last Updated', field: 'updatedAt', width: 40} + { column: 'Profile ID', field: 'profileId', width: 50 }, + { column: 'Profile Schema', field: 'profileSchema', width: 50 }, + { column: 'Version', field: 'version', width: 12 }, + { column: 'Last Updated', field: 'updatedAt', width: 40 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list profiles: ${response.status} ${response.message}`, options); } }) @@ -213,10 +210,10 @@ class ListProfileVersionsCommand { const { before, after, limit } = options; debug( '%s.executeListProfileVersionsCommand(%s) Options:[%s][%s][%s]', - profile.name, profileId, before, after, limit + profile.name, profileId, before, after, limit, ); const graph = new Graph(profile.url); - graph.listProfileVersions(profile.token, profileId, schemaName, before, after, limit) + graph.listProfileVersions(options.project || profile.project, profile.token, profileId, schemaName, before, after, limit) .then((response) => { if (response.success) { let result = response.versions; @@ -225,19 +222,17 @@ class ListProfileVersionsCommand { } if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Profile ID', field: 'profileId', width: 50 }, { column: 'Profile Schema', field: 'profileSchema', width: 50 }, { column: 'Version', field: 'version', width: 12 }, - { column: 'Created At', field: 'createdAt', width: 40 } + { column: 'Created At', field: 'createdAt', width: 40 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list profile versions: ${response.status} ${response.message}`, options); } }) @@ -258,10 +253,10 @@ class DescribeProfileCommand { debug(`${profile.name}.executeDescribeProfile(${profileId}) [${historic}][${versionLimit}][${attribute}]`); const graph = new Graph(profile.url); - graph.describeProfile(profile.token, profileId, schemaName, historic, versionLimit, attribute) + graph.describeProfile(options.project || profile.project, profile.token, profileId, schemaName, historic, versionLimit, attribute) .then((response) => { if (response.success) { - let result = filterObject(response.profile, options); + const result = filterObject(response.profile, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printError(`Failed to describe profile ${schemaName}: ${response.message}`, options); @@ -274,7 +269,6 @@ class DescribeProfileCommand { } class DeleteProfileCommand { - constructor(program) { this.program = program; } @@ -284,10 +278,10 @@ class DeleteProfileCommand { debug('%s.executeDeleteProfile(%s)', profile.name, profileId); const graph = new Graph(profile.url); - graph.deleteProfile(profile.token, profileId, schemaName) + graph.deleteProfile(options.project || profile.project, profile.token, profileId, schemaName) .then((response) => { if (response.success) { - printSuccess(`Profile deleted.`, options); + printSuccess('Profile deleted.', options); } else { printError(`Failed to delete profile ${schemaName}: ${response.message}`, options); } @@ -299,7 +293,6 @@ class DeleteProfileCommand { } class RebuildProfilesCommand { - constructor(program) { this.program = program; } @@ -309,7 +302,7 @@ class RebuildProfilesCommand { debug('%s.executeRebuildProfiles(%s)', profile.name, schemaName); const graph = new Graph(profile.url); - graph.rebuildProfiles(profile.token, schemaName, profileId, options.filter, options.sort, options.limit, options.skip) + graph.rebuildProfiles(options.project || profile.project, profile.token, schemaName, profileId, options.filter, options.sort, options.limit, options.skip) .then((response) => { if (response.success) { printSuccess(response.message, options); diff --git a/src/commands/project.js b/src/commands/project.js deleted file mode 100644 index 9e5e24fe..00000000 --- a/src/commands/project.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const debug = require('debug')('cortex:cli'); -const yeoman = require('yeoman-environment'); -const { printSuccess, printError, filterObject, parseObject } = require('./utils'); - -module.exports.GenerateProjectCommand = class GenerateProjectCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - debug('generateProject()'); - const repoUrl = 'https://github.com/CognitiveScale/cortex-fabric-examples'; - printSuccess(`This command is deprecated. See the ${repoUrl} repo for guidance.`, options); - } -}; diff --git a/src/commands/skills.js b/src/commands/skills.js index 64450197..d5823a0b 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,33 +15,30 @@ */ const _ = require('lodash'); const fs = require('fs'); -const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); -function _formatpath(p){ - let cnt=0, res = ''; +function _formatpath(p) { + let cnt = 0; let +res = ''; const len = p.length; - p.forEach(s => { + p.forEach((s) => { if (_.isNumber(s)) { - res += `[${s}]` - }else - if ( cnt < len) - res += s; - else - res +=s; - if (cnt < len-1 && !_.isNumber(p[cnt+1])) - res += '.'; + res += `[${s}]`; + } else + if (cnt < len) res += s; + else res += s; + if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) res += '.'; cnt += 1; - - }) + }); return res; } module.exports.SaveSkillCommand = class SaveSkillCommand { - constructor(program) { this.program = program; } @@ -54,23 +51,20 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const skill = parseObject(skillDefStr, options); const catalog = new Catalog(profile.url); - catalog.saveSkill(profile.token, skill).then((response) => { + catalog.saveSkill(options.project || profile.project, profile.token, skill).then((response) => { if (response.success) { - printSuccess(`Skill saved`, options); - } else { - if (response.details) { + printSuccess('Skill saved', options); + } else if (response.details) { console.log(`Failed to save skill: ${response.status} ${response.message}`); console.log('The following issues were found:'); const tableSpec = [ - {column: 'Path', field: 'path', width: 50}, - {column: 'Message', field: 'message', width: 100}, + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, ]; response.details.map(d => d.path = _formatpath(d.path)); - printTable(tableSpec,response.details); + printTable(tableSpec, response.details); printError(''); // Just exit - } - } }) .catch((err) => { printError(`Failed to save skill: ${err.status} ${err.response.body.error}`, options); @@ -79,7 +73,6 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { }; module.exports.ListSkillsCommand = class ListSkillsCommand { - constructor(program) { this.program = program; } @@ -89,26 +82,23 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { debug('%s.executeListSkills()', profile.name); const catalog = new Catalog(profile.url); - catalog.listSkills(profile.token).then((response) => { + catalog.listSkills(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.skills; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Title', field: 'title', width: 50 }, { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 } + { column: 'Version', field: '_version', width: 12 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list skills: ${response.status} ${response.message}`, options); } }) @@ -119,7 +109,6 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { }; module.exports.DescribeSkillCommand = class DescribeSkillCommand { - constructor(program) { this.program = program; } @@ -129,12 +118,11 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { debug('%s.executeDescribeSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); - catalog.describeSkill(profile.token, skillName).then((response) => { + catalog.describeSkill(options.project || profile.project, profile.token, skillName).then((response) => { if (response.success) { - let result = filterObject(response.skill, options); + const result = filterObject(response.skill, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe skill ${skillName}: ${response.message}`, options); } }) @@ -143,16 +131,3 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { }); } }; - -module.exports.GenerateSkillCommand = class GenerateSkillCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - debug('%s.generateSkill()'); - const repoUrl = 'https://github.com/CognitiveScale/cortex-fabric-examples'; - printSuccess(`This command is deprecated. See the ${repoUrl} repo for guidance.`, options); - } -}; diff --git a/src/commands/tasks.js b/src/commands/tasks.js deleted file mode 100644 index 106c8c16..00000000 --- a/src/commands/tasks.js +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Tasks = require('../client/tasks'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - -module.exports.ListTasks = class ListTasks { - - constructor(program) { - this.program = program; - } - - execute(jobId, options) { - const profile = loadProfile(options.profile); - debug('%s.listTasks()', profile.name); - - const tasks = new Tasks(profile.url, jobId); - tasks.listTasks(profile.token).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Task ID', field: 'taskId', width: 40 }, - { column: 'Status', field: 'status', width: 40 }, - { column: 'Detail', field: 'statusReason', width: 40 }, - { column: 'Created', field: 'createdAt', width: 40 }, - { column: 'Started', field: 'startedAt', width: 40 }, - { column: 'Stopped', field: 'stoppedAt', width: 40 } - ]; - - printTable(tableSpec, response.result.tasks); - } - } - else { - printError(`Failed to list tasks: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list tasks: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.TaskLogs = class TaskLogs { - - constructor(program) { - this.program = program; - } - - execute(jobId, taskId, options) { - const profile = loadProfile(options.profile); - debug('%s.taskLogs()', profile.name); - - const tasks = new Tasks(profile.url, jobId); - tasks.taskLogs(profile.token, taskId).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Status', field: 'status', width: 40 }, - { column: 'Message', field: 'message', width: 40 } - ]; - printTable(tableSpec, [response.result]); - } - } - else { - printError(`Failed to fetch logs: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to fetch logs: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.CancelTask = class CancelTask { - - constructor(program) { - this.program = program; - } - - execute(jobId, taskId, options) { - const profile = loadProfile(options.profile); - debug('%s.cancelTask()', profile.name); - - const message = options.message; - const tasks = new Tasks(profile.url, jobId); - tasks.cancelTask(profile.token, taskId, message).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Status', field: 'status', width: 20 } - ]; - printTable(tableSpec, [response.result]); - } - } - else { - printError(`Failed to cancel task: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to cancel task: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeTask = class DescribeTask { - - constructor(program) { - this.program = program; - } - - execute(jobId, taskId, options) { - const profile = loadProfile(options.profile); - debug('%s.describeTask()', profile.name); - - const tasks = new Tasks(profile.url, jobId); - tasks.describeTask(profile.token, taskId).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Id', field: 'id', width: 40 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Created At', field: 'createdAt', width: 15 }, - { column: 'Started At', field: 'startedAt', width: 15 }, - { column: 'Stopped At', field: 'stoppedAt', width: 15 } - ]; - printTable(tableSpec, [response.result]); - } - } - else { - printError(`Failed to describe task: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to describe task: ${err.status} ${err.message}`, options); - }); - } -}; \ No newline at end of file diff --git a/src/commands/types.js b/src/commands/types.js index 705641d4..ca83de39 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -18,10 +18,11 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.SaveTypeCommand = class SaveTypeCommand { - constructor(program) { this.program = program; } @@ -35,17 +36,14 @@ module.exports.SaveTypeCommand = class SaveTypeCommand { debug('%o', type); let normalizedType = {}; - if ( !('types' in type) ) - normalizedType["types"] = [type]; - else - normalizedType = type; + if (!('types' in type)) normalizedType.types = [type]; + else normalizedType = type; const catalog = new Catalog(profile.url); - catalog.saveType(profile.token, normalizedType).then((response) => { + catalog.saveType(options.project || profile.project, profile.token, normalizedType).then((response) => { if (response.success) { - printSuccess(`Type definition saved`, options); - } - else { + printSuccess('Type definition saved', options); + } else { printError(`Failed to save type: ${response.status} ${response.message}`, options); } }) @@ -56,7 +54,6 @@ module.exports.SaveTypeCommand = class SaveTypeCommand { }; module.exports.ListTypesCommand = class ListTypesCommand { - constructor(program) { this.program = program; } @@ -66,26 +63,23 @@ module.exports.ListTypesCommand = class ListTypesCommand { debug('%s.executeListTypes()', profile.name); const catalog = new Catalog(profile.url); - catalog.listTypes(profile.token).then((response) => { + catalog.listTypes(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.types; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Title', field: 'title', width: 50 }, { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 } + { column: 'Version', field: '_version', width: 12 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list types: ${response.status} ${response.message}`, options); } }) @@ -96,7 +90,6 @@ module.exports.ListTypesCommand = class ListTypesCommand { }; module.exports.DescribeTypeCommand = class DescribeTypeCommand { - constructor(program) { this.program = program; } @@ -106,12 +99,11 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { debug('%s.executeDescribeType(%s)', profile.name, typeName); const catalog = new Catalog(profile.url); - catalog.describeType(profile.token, typeName).then((response) => { + catalog.describeType(options.project || profile.project, profile.token, typeName).then((response) => { if (response.success) { - let result = filterObject(response.type, options); + const result = filterObject(response.type, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe type ${typeName}: ${response.message}`, options); } }) @@ -120,4 +112,3 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { }); } }; - diff --git a/src/commands/utils.js b/src/commands/utils.js index 7d7d8385..5f410b30 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,73 +14,80 @@ * limitations under the License. */ +const _ = require('lodash'); const chalk = require('chalk'); -const path = require('path'); +const debug = require('debug')('cortex:cli'); +const findPackageJson = require('find-package-json'); const fs = require('fs'); -const _ = require('lodash'); -const jmsepath = require('jmespath'); const glob = require('glob'); -const yaml = require('js-yaml'); -const debug = require('debug')('cortex:cli'); +const jmsepath = require('jmespath'); +const os = require('os'); +const osName = require('os-name'); +const path = require('path'); const Table = require('cli-table'); +const yaml = require('js-yaml'); const { exec } = require('child_process'); -module.exports.constructError = function(error) { + +module.exports.constructError = (error) => { // fallback to text in message or standard error message - let errResp = error.response; - let errorText = (errResp && errResp.text) || error.message; + const errResp = error.response; + let errorText = _.get(errResp, 'body'); + if (_.isEmpty(errorText)) { + errorText = error.message; + } let details; // if JSON was returned, look for either a message or error in it try { - const resp = errResp ? JSON.parse(errResp.text) : {}; + const resp = errResp ? JSON.parse(errorText) : {}; if (resp.message || resp.error) errorText = resp.message || resp.error; + // eslint-disable-next-line prefer-destructuring details = resp.details; - } catch(e) { + } catch (e) { // Guess it wasn't JSON! } - return {success: false, message: errorText, details, status: error.status || ''}; + return { + success: false, message: errorText, details, status: error.status || '', +}; }; -module.exports.printSuccess = function(message, options) { +module.exports.printSuccess = (message, options) => { if (!options || options.color === 'on') { console.log(chalk.green(message)); - } - else { + } else { console.log(message); } }; -module.exports.printWarning = function(message, options) { +module.exports.printWarning = (message, options) => { if (!options || options.color === 'on') { console.log(chalk.yellow(message)); - } - else { + } else { console.log(message); } }; -module.exports.printError = function(message, options, exit = true) { - if (!options || options.color === 'on') { +module.exports.printError = (message, options, exit = true) => { + if (!options || options.color === 'on') { console.error(chalk.red(message)); - } - else { + } else { console.error(message); } if (exit) { - process.exit(1) + process.exit(1); } }; -module.exports.filterObject = function(obj, options) { +module.exports.filterObject = (obj, options) => { if (options.query) { - debug('filtering results with query: ' + options.query); + debug(`filtering results with query: ${options.query}`); return jmsepath.search(obj, options.query); } return obj; }; -module.exports.parseObject = function(str, options) { +module.exports.parseObject = (str, options) => { if (options.yaml) { return yaml.safeLoad(str); } @@ -90,35 +97,35 @@ module.exports.parseObject = function(str, options) { function _extractValues(fields, obj) { const rv = []; - fields.forEach((f) => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null)? obj[f].toString() : '-')); + fields.forEach(f => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null) ? obj[f].toString() : '-')); return rv; } -module.exports.printTable = function(spec, objects, transform) { +module.exports.printTable = (spec, objects, transform) => { transform = transform || function (obj) { return obj; }; - const head = spec.map((s) => s.column); - const colWidths = spec.map((s) => s.width); - const fields = spec.map((s) => s.field); - const values = objects.map((obj) => _extractValues(fields, transform(obj))); + const head = spec.map(s => s.column); + const colWidths = spec.map(s => s.width); + const fields = spec.map(s => s.field); + const values = objects.map(obj => _extractValues(fields, transform(obj))); debug('printing fields: %o', fields); - const table = new Table({head, colWidths, style: {head: ['cyan']}}); - values.forEach((v) => table.push(v)); + const table = new Table({ head, colWidths, style: { head: ['cyan'] } }); + values.forEach(v => table.push(v)); console.log(table.toString()); }; -module.exports.exportDoc = function(program){ - console.log(JSON.stringify(program.commands.map((c)=>({ +module.exports.exportDoc = (program) => { + console.log(JSON.stringify(program.commands.map(c => ({ name: c._name, description: c._description, - usage: c.usage(), - options: c.options.map((o)=>({ + usage: c.usage(), + options: c.options.map(o => ({ flags: o.flags, defaultValue: o.defaultValue, - description: o.description - })) + description: o.description, + })), })))); process.exit(0); }; @@ -130,7 +137,7 @@ module.exports.exportDoc = function(program){ */ async function callMe(commandStr) { return new Promise((resolve, reject) => { - const proc = exec(commandStr,(err, stdout) => { + const proc = exec(commandStr, (err, stdout) => { if (err) { reject(err.message + stdout); } else { @@ -139,28 +146,25 @@ async function callMe(commandStr) { }); // Pipe stdout to stderr in real time: proc.stdout.pipe(process.stderr); - }); } module.exports.callMe = callMe; -module.exports.getSourceFiles = function(source, cb) { - const options = {silent:true}; +module.exports.getSourceFiles = (source, cb) => { + const options = { silent: true }; const normalizedSource = (source.endsWith('/')) ? source : `${source}/`; const normalizedPath = path.join(normalizedSource, '**', '*'); - glob(normalizedPath, options, function (err, files) { + glob(normalizedPath, options, (err, files) => { // files is an array of filenames. if (err) { cb(err, null); } else { - const results = files.filter(path => fs.lstatSync(path).isFile()).map((path) => { - return { - canonical: path, - relative: path.slice(normalizedSource.length), - size: fs.lstatSync(path).size, - }; - }); + const results = files.filter(fpath => fs.lstatSync(fpath).isFile()).map(fpath => ({ + canonical: fpath, + relative: fpath.slice(normalizedSource.length), + size: fs.lstatSync(fpath).size, + })); cb(null, results); } }); @@ -171,117 +175,108 @@ function round(value, precision) { return Math.floor(value * multiplier) / multiplier; } -module.exports.humanReadableFileSize = function(sizeInBytes) { +module.exports.humanReadableFileSize = (sizeInBytes) => { const ranges = { - 'K': Math.pow(10, 3), - 'M': Math.pow(10, 6), - 'G': Math.pow(10, 9), - 'T': Math.pow(10, 12), + K: Math.pow(10, 3), + M: Math.pow(10, 6), + G: Math.pow(10, 9), + T: Math.pow(10, 12), }; - if (sizeInBytes < ranges['K']) { - return `${sizeInBytes}B` - } else if (sizeInBytes < ranges['M']) { - return `${round(sizeInBytes/ranges['K'], 1)}K` - } else if (sizeInBytes < ranges['G']) { - return `${round(sizeInBytes/ranges['M'], 1)}M` - } else if (sizeInBytes < ranges['T']) { - return `${round(sizeInBytes/ranges['G'], 1)}G` + if (sizeInBytes < ranges.K) { + return `${sizeInBytes}B`; + } if (sizeInBytes < ranges.M) { + return `${round(sizeInBytes / ranges.K, 1)}K`; + } if (sizeInBytes < ranges.G) { + return `${round(sizeInBytes / ranges.M, 1)}M`; + } if (sizeInBytes < ranges.T) { + return `${round(sizeInBytes / ranges.G, 1)}G`; } - + return sizeInBytes; // Umm fix logic }; -module.exports.formatAllServiceInputParameters = function(allParameters){ - if(allParameters.$ref != null){ +function formatServiceInputParameter(inputParameter) { + if (inputParameter.type === 'array') { + return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}<${inputParameter.format}>`); + } + + return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); +} + +module.exports.formatAllServiceInputParameters = (allParameters) => { + if (allParameters.$ref != null) { return `$ref:${allParameters.$ref}`; } - else{ + return allParameters.map(inputParameters => formatServiceInputParameter(inputParameters)).join('\n'); - } -} +}; -function formatServiceInputParameter(inputParameter){ - if(inputParameter.type === 'array'){ - return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}<${inputParameter.format}>`); - } - else{ - return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); - } -} -module.exports.countLinesInFile = (filePath) => { +module.exports.countLinesInFile = filePath => new Promise((resolve, reject) => { // Bug ... this code ignores the final line that does not end with a new line ... thats why leftovers was added - return new Promise((resolve, reject) => { + // eslint-disable-next-line implicit-arrow-linebreak let count = 0; let leftovers = true; fs.createReadStream(filePath) .on('error', e => reject(e)) - .on('data', chunk => { - for (let i=0; i < chunk.length; ++i) { - if (chunk[i] == 10) { - count++; + .on('data', (chunk) => { + for (let i = 0; i < chunk.length; i += 1) { + if (chunk[i] === 10) { + count += 1; leftovers = false; } else { leftovers = true; } } }) - .on('end', () => leftovers ? resolve(count + 1) : resolve(count) ); + .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); }); -}; - module.exports.formatValidationPath = (p) => { - let cnt = 0, res = ''; + let cnt = 0; let +res = ''; const len = p.length; - p.forEach(s => { + p.forEach((s) => { if (_.isNumber(s)) { - res += `[${s}]` - } else if (cnt < len) - res += s; - else - res += s; - if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) - res += '.'; + res += `[${s}]`; + } else if (cnt < len) res += s; + else res += s; + if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) res += '.'; cnt += 1; - }); return res; }; -module.exports.cleanInternalFields = function(jsobj) { - return JSON.stringify(jsobj, function re(a, obj) { - if (a.startsWith("_")) { +module.exports.cleanInternalFields = jsobj => JSON.stringify(jsobj, (a, obj) => { + if (a.startsWith('_')) { return undefined; } return obj; }, 2); -}; -module.exports.jsonToYaml = function (json) { - if (typeof json == 'string') { + +module.exports.jsonToYaml = (json) => { + if (typeof json === 'string') { json = JSON.parse(json); } return yaml.dump(json); }; -module.exports.writeToFile = function (content, filepath) { +module.exports.writeToFile = (content, filepath) => { const dir = path.dirname(filepath); if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, {recursive: true}); + fs.mkdirSync(dir, { recursive: true }); } fs.writeFileSync(filepath, content); }; -module.exports.fileExists = function (filepath) { - return fs.existsSync(filepath) -}; +module.exports.fileExists = filepath => fs.existsSync(filepath); // Alternatively, we can use fs.rmdirSync(, {recursive: true}), but that requires node v12+ -const deleteFolderRecursive = function(filepath) { +const deleteFolderRecursive = (filepath) => { try { if (fs.existsSync(filepath)) { if (fs.lstatSync(filepath).isDirectory()) { - fs.readdirSync(filepath).forEach((file, index) => { + fs.readdirSync(filepath).forEach((file) => { const curPath = path.join(filepath, file); if (fs.lstatSync(curPath).isDirectory()) { // recurse deleteFolderRecursive(curPath); @@ -300,3 +295,15 @@ const deleteFolderRecursive = function(filepath) { }; module.exports.deleteFile = deleteFolderRecursive; + +module.exports.checkProject = (projectId) => { + if (_.isEmpty(projectId)) { + console.error(chalk.red('\'project\' is required, please provide using \'cortex configure\' or --project')); + process.exit(1); + } +}; + +const pkg = findPackageJson(__dirname).next().value; +module.exports.getUserAgent = function getUserAgent() { + return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; +}; diff --git a/src/commands/variables.js b/src/commands/variables.js index 7559061f..1471593a 100644 --- a/src/commands/variables.js +++ b/src/commands/variables.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -22,10 +22,11 @@ const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); const Variables = require('../client/variables'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.ListVariablesCommand = class { - constructor(program) { this.program = program; } @@ -35,20 +36,18 @@ module.exports.ListVariablesCommand = class { debug('%s.listVariables(%s)', profile.name); const variables = new Variables(profile.url); - variables.listVariables(profile.token) + variables.listVariables(options.project || profile.project, profile.token) .then((response) => { if (response.success) { const result = filterObject(response.result, options); - if (options.json) - printSuccess(JSON.stringify(result, null, 2), options); + if (options.json) printSuccess(JSON.stringify(result, null, 2), options); else { const tableSpec = [ { column: 'Variable Key Name', field: 'keyName', width: 50 }, ]; printTable(tableSpec, map(x => ({ keyName: x }), result)); } - } - else { + } else { printError(`Failed to list variables: ${response.message}`, options); } }) @@ -59,7 +58,6 @@ module.exports.ListVariablesCommand = class { }; module.exports.ReadVariableCommand = class { - constructor(program) { this.program = program; } @@ -69,20 +67,18 @@ module.exports.ReadVariableCommand = class { debug('%s.readVariable(%s)', profile.name, keyName); const variables = new Variables(profile.url); - variables.readVariable(profile.token, keyName).then((response) => { + variables.readVariable(options.project || profile.project, profile.token, keyName).then((response) => { if (response.success) { const result = filterObject(response.result, options); - if (options.json) - printSuccess(JSON.stringify(result, null, 2), options); + if (options.json) printSuccess(JSON.stringify(result, null, 2), options); else { const tableSpec = [ { column: 'Variable Key Name', field: 'keyName', width: 50 }, - { column: 'Value', field: 'value', width: 50 } + { column: 'Value', field: 'value', width: 50 }, ]; - printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2)}]); + printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2) }]); } - } - else { + } else { printError(`Failed to read secure variable : ${response.message}`, options); } }) @@ -93,7 +89,6 @@ module.exports.ReadVariableCommand = class { }; module.exports.WriteVariableCommand = class { - constructor(program) { this.program = program; } @@ -105,8 +100,7 @@ module.exports.WriteVariableCommand = class { let data = value; if (options.data) { data = parseObject(options.data, options); - } - else if (options.dataFile) { + } else if (options.dataFile) { const dataStr = fs.readFileSync(options.dataFile); data = parseObject(dataStr, options); } @@ -116,17 +110,12 @@ module.exports.WriteVariableCommand = class { } const variables = new Variables(profile.url); - variables.writeVariable(profile.token, keyName, data).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); + return variables.writeVariable(options.project || profile.project, profile.token, keyName, data).then((response) => { + const result = filterObject(response.result, options); printSuccess(result.message, options); - } - else { - printError(`Failed to write secure variable : ${response.message}`, options); - } }) - .catch((err) => { - printError(`Failed to write secure variable : ${err.status} ${err.message}`, options); - }); + .catch((err) => { + printError(`Failed to write secure variable : ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/compatibility.js b/src/compatibility.js index 970eea9d..61becdf8 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -25,11 +25,11 @@ const isInstalledGlobally = require('is-installed-globally'); const keys = require('lodash/fp/keys'); const last = require('lodash/fp/last'); const npmFetch = require('npm-registry-fetch'); -const { request } = require('./commands/apiutils'); const semver = require('semver'); const uniq = require('lodash/fp/uniq'); +const { got } = require('./client/apiutils'); const { loadProfile } = require('./config'); -const { printError, printWarning } = require('../src/commands/utils'); +const { printError, printWarning, getUserAgent } = require('../src/commands/utils'); const pkg = findPackageJson(__dirname).next().value; @@ -40,22 +40,27 @@ function getAvailableVersions(name) { .then(manifest => keys(getOr({}, 'versions', manifest))) .then(versions => uniq(concat(versions, pkg.version))) .then(versions => versions.sort(semver.compare)) - .catch(_ => { + .catch((_) => { throw new Error('Unable to determine CLI available versions'); }); } function getRequiredVersion(profile) { - const endpoint = `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`; + const endpoint = `${profile.url}/fabric/v4/compatibility/applications/cortex-cli`; debug('getRequiredVersion => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${profile.token}`) - .set('x-cortex-proxy-notify', true) + return got + .get(endpoint, { + headers: { + Authorization: `Bearer ${profile.token}`, + 'user-agent': getUserAgent(), + }, +}) + .json() .then((res) => { - if (!res.ok) { throw new Error('Unable to fetch compatibility'); } - const { semver } = res.body; + const { semver } = res; return semver; + }).catch((err) => { + throw new Error(`Unable to fetch compatibility: ${err.message}`); }); } @@ -65,17 +70,16 @@ function notifyUpdate({ required = false, current, latest }) { margin: 1, align: 'center', borderColor: 'yellow', - borderStyle: 'round' + borderStyle: 'round', }; - const message = - `Update ${required ? chalk.bold('required') : 'available'} ` + - chalk.dim(current) + - chalk.reset(' → ') + - chalk.green(latest) + - '\nRun ' + - chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) + - ' to update'; + const message = `Update ${required ? chalk.bold('required') : 'available'} ${ + chalk.dim(current) + }${chalk.reset(' → ') + }${chalk.green(latest) + }\nRun ${ + chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) + } to update`; console.warn(boxen(message, opts)); } @@ -93,25 +97,25 @@ function upgradeRequired(args) { async function getCompatibility(profile) { debug('getCompatibility => %s profile', profile.name); - try{ + try { // fail if unable to contact cortex service const requirements = await getRequiredVersion(profile); - const satisfied = semver.satisfies(pkg.version, requirements); + const satisfied = semver.satisfies(pkg.version, requirements); try { // warn user but don't fail const versions = await getAvailableVersions(pkg.name); debug('getCompatibility => versions: %s, requirements: %s', versions, requirements); const compatibleVersions = filter(v => semver.satisfies(v, requirements), versions); debug('getCompatibility => compatible versions: %s', compatibleVersions); - const {version: current} = pkg; + const { version: current } = pkg; const latest = last(compatibleVersions); debug('getCompatibility => satisfied: %s', satisfied); - return ({current, latest, satisfied}); - }catch (e) { + return ({ current, latest, satisfied }); + } catch (e) { printWarning(`Warning unable to check for cortex-cli update: ${e.message}`); - return ({current: pkg.version, latest: pkg.version, satisfied}); + return ({ current: pkg.version, latest: pkg.version, satisfied }); } - }catch (e) { + } catch (e) { throw new Error(`Unable to contact cortex: ${e.message}`); } } @@ -127,8 +131,7 @@ function withCompatibilityCheck(fn) { .then(({ current, latest, satisfied }) => { if (!satisfied) { upgradeRequired({ current, latest }); - } - else if (semver.gt(latest, current)) { + } else if (semver.gt(latest, current)) { upgradeAvailable({ current, latest }); } }) @@ -136,7 +139,6 @@ function withCompatibilityCheck(fn) { .catch((error) => { printError(error); }); - } return Promise.resolve().then(() => fn(...args)); }; @@ -144,5 +146,5 @@ function withCompatibilityCheck(fn) { module.exports = { getCompatibility, - withCompatibilityCheck + withCompatibilityCheck, }; diff --git a/src/config.js b/src/config.js index 66f740fd..832b98b6 100644 --- a/src/config.js +++ b/src/config.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -24,23 +24,25 @@ const { JWT, JWK } = require('jose'); const { printError } = require('./commands/utils'); function generateJwt(profile) { - const { username, issuer, audience,jwk } = profile; + const { + username, issuer, audience, jwk, + } = profile; const jwtSigner = JWK.asKey(jwk); const payload = { }; return JWT.sign(payload, jwtSigner, { - issuer: issuer, - audience: audience, + issuer, + audience, subject: username, expiresIn: '2m', }); } -module.exports.defaultConfig = defaultConfig = function(){ +module.exports.defaultConfig = defaultConfig = function () { return new Config({}); }; -module.exports.readConfig = readConfig = function() { +module.exports.readConfig = readConfig = function () { const configDir = process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); if (!fs.existsSync(configDir)) { fs.mkdirSync(configDir); @@ -57,11 +59,11 @@ module.exports.readConfig = readConfig = function() { // version 3 // debug('loaded v3 config: %o', configObj); return new Config(configObj); - } else { - fs.copyFileSync(configFile, path.join(configDir, 'config_v2')) + } + fs.copyFileSync(configFile, path.join(configDir, 'config_v2')); defaultConfig().save(); printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); - } + if (configObj.version && configObj.version === '2') { // version 2 @@ -71,7 +73,7 @@ module.exports.readConfig = readConfig = function() { // version 1 // debug('loaded v1 config: %o', configObj); - return new Config({profiles: configObj}); + return new Config({ profiles: configObj }); } return undefined; @@ -86,12 +88,13 @@ const ProfileSchema = Joi.object().keys({ issuer: Joi.string().required(), audience: Joi.string().required(), token: Joi.string().optional(), - project: Joi.string().optional() + project: Joi.string().optional(), }); class Profile { - - constructor(name, {url, username, issuer, audience, jwk, project}) { + constructor(name, { + url, username, issuer, audience, jwk, project, +}) { this.name = name; this.url = process.env.CORTEX_URI || url; this.username = username; @@ -103,27 +106,32 @@ class Profile { } validate() { - const {error, value} = ProfileSchema.validate(this,{abortEarly: false}); + const { error, value } = ProfileSchema.validate(this, { abortEarly: false }); if (error) { - throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. ` + - `Please get your Personal Access Token from the Cortex Console and run "cortex configure".`); + throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. ` + + 'Please get your Personal Access Token from the Cortex Console and run "cortex configure".'); } return this; } toJSON() { - return {url: this.url, username: this.username, issuer: this.issuer, audience: this.audience, - jwk: this.jwk, project: this.project}; + return { + url: this.url, + username: this.username, + issuer: this.issuer, + audience: this.audience, + jwk: this.jwk, + project: this.project, + }; } } class Config { - - constructor({version, profiles, currentProfile}) { + constructor({ version, profiles, currentProfile }) { this.version = version || '3'; this.profiles = profiles || {}; this.currentProfile = currentProfile; - for (let name of Object.keys(this.profiles)) { + for (const name of Object.keys(this.profiles)) { this.profiles[name] = new Profile(name, this.profiles[name]); } } @@ -138,19 +146,23 @@ class Config { return profileType; } - setProfile(name, {url, username, issuer, audience, jwk, project}) { - const profile = new Profile(name, {url, username, issuer, audience, jwk, project}); + setProfile(name, { + url, username, issuer, audience, jwk, project, + }) { + const profile = new Profile(name, { + url, username, issuer, audience, jwk, project, + }); profile.validate(); // do not set/save invalid profiles .. - this.profiles[name] = profile + this.profiles[name] = profile; } toJSON() { const profiles = {}; - for (let name of Object.keys(this.profiles)) { + for (const name of Object.keys(this.profiles)) { profiles[name] = this.profiles[name].toJSON(); } - return {version: this.version, profiles: profiles, currentProfile: this.currentProfile}; + return { version: this.version, profiles, currentProfile: this.currentProfile }; } save() { @@ -159,7 +171,7 @@ class Config { fs.mkdirSync(configDir); } - _.forEach(this.profiles, function(profile) { + _.forEach(this.profiles, (profile) => { delete profile.token; }); @@ -168,10 +180,10 @@ class Config { } } -module.exports.loadProfile = function(profileName) { +module.exports.loadProfile = function (profileName) { const config = readConfig(); if (config === undefined) { - throw new Error(`Please configure the Cortex CLI by running "cortex configure"`); + throw new Error('Please configure the Cortex CLI by running "cortex configure"'); } const name = profileName || config.currentProfile || 'default'; diff --git a/src/useragent.js b/src/useragent.js deleted file mode 100644 index f468edd9..00000000 --- a/src/useragent.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const findPackageJson = require('find-package-json'); -const os = require('os'); -const osName = require('os-name'); - -const pkg = findPackageJson(__dirname).next().value; - -module.exports.getUserAgent = function getUserAgent() { - return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; -} diff --git a/test/compatibility.js b/test/compatibility.js index 267de192..e9d62423 100644 --- a/test/compatibility.js +++ b/test/compatibility.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,53 +14,49 @@ * limitations under the License. */ -const chai = require("chai"); -const chaiAsPromised = require("chai-as-promised"); +const chai = require('chai'); +const chaiAsPromised = require('chai-as-promised'); const findPackageJson = require('find-package-json'); const rewire = require('rewire'); const semver = require('semver'); -const superagent = require('superagent'); -const superagentMock = require('superagent-mocker'); +const nock = require('nock'); const compatibilityModule = rewire('../src/compatibility'); chai.use(chaiAsPromised); -const expect = chai.expect; +const { expect } = chai; const pkg = findPackageJson(__dirname).next().value; -describe('compatibility checks', function () { +describe('compatibility checks', () => { const profile = { url: 'http://example.com', account: 'testAccount', - tenantId: 'testTenant', + projectId: 'testTenant', username: 'testUser', - token: 'testToken' + token: 'testToken', }; - describe('with a compatible application version', function () { - let requestMock; + describe('with a compatible application version', () => { let revertCompatibilityModule; - before(function () { - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - () => ({ ok: true, body: { semver: pkg.version } }) - ); + before(() => { + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: pkg.version })); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), }, }); }); - after(function () { + after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); + nock.restore(); }); - it('should resolve as satisfied', function () { + it('should resolve as satisfied', () => { const expected = { current: pkg.version, latest: pkg.version, satisfied: true }; return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); }); @@ -68,30 +64,28 @@ describe('compatibility checks', function () { describe('with an incompatible application version', () => { const nextMajorVersion = semver.inc(pkg.version, 'major'); - let requestMock; let revertCompatibilityModule; before(() => { - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - () => ({ ok: true, body: { semver: nextMajorVersion } }) - ); + nock.activate(); + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: nextMajorVersion })); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { json: () => Promise.resolve({ versions: { [pkg.version]: {}, - [nextMajorVersion]: {} - } - }) + [nextMajorVersion]: {}, + }, + }), }, }); }); after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); + nock.restore(); }); it('should resolve as unsatisfied', () => { @@ -101,52 +95,45 @@ describe('compatibility checks', function () { }); describe('when the compatibility service cannot be reached', () => { - let requestMock; let revertCompatibilityModule; before(() => { - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - () => { throw new Error('BOOM!'); } - ); + nock.activate(); + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(500, () => ('BOOM')); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), }, }); }); after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); + nock.restore(); }); - it('should reject', () => { - return expect(compatibilityModule.getCompatibility(profile)).to.be.rejected; - }); + it('should reject', () => expect(compatibilityModule.getCompatibility(profile)).to.be.rejected); }); describe('when the npm cannot be reached', () => { - let requestMock; let revertCompatibilityModule; - before(() => { - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - () => ({ ok: true, body: { semver: pkg.version } }) - ); + nock.activate(); + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: pkg.version })); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { - json: () => Promise.reject(new Error('BOOM!')) + json: () => Promise.reject(new Error('BOOM!')), }, }); }); after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); + nock.restore(); }); it('should not reject', () => { @@ -155,4 +142,4 @@ describe('compatibility checks', function () { return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); }); }); -}); \ No newline at end of file +}); diff --git a/test/docker-registry.js b/test/docker-registry.js index 361f74bd..1e7cf6c9 100644 --- a/test/docker-registry.js +++ b/test/docker-registry.js @@ -1,4 +1,4 @@ -const {assert} = require('chai'); +const { assert } = require('chai'); const Actions = require('../src/client/actions'); const action = new Actions('https://api.cortex-dev.insights.ai'); @@ -7,23 +7,22 @@ const action = new Actions('https://api.cortex-dev.insights.ai'); describe('_cortexRegistryImagePath()', () => { it('returns the full URL of the image in the private registry', () => { const registryUrl = 'private-registry.cortex.insights.ai'; - const tenant = 'tenant' + const tenant = 'tenant'; - const i1 = 'image' - const i2 = 'c12e/image' - const i3 = 'docker.io/library/image' + const i1 = 'image'; + const i2 = 'c12e/image'; + const i3 = 'docker.io/library/image'; - const t1 = 'image:1234' - const t2 = 'c12e/image:1234' - const t3 = 'docker.io/library/image:1234' + const t1 = 'image:1234'; + const t2 = 'c12e/image:1234'; + const t3 = 'docker.io/library/image:1234'; - for (i of [i1, i2, i3]) { - assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image') - } + [i1, i2, i3].forEach((i) => { + assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image'); + }); - for (i of [t1, t2, t3]) { - assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image:1234') - } - }) - -}) + [t1, t2, t3].forEach((i) => { + assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image:1234'); + }); + }); +}); diff --git a/test/sanity.js b/test/sanity.js index cb979248..723a5128 100644 --- a/test/sanity.js +++ b/test/sanity.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ const commander = require('commander'); const { ListProfilesCommand } = require('../src/commands/configure'); -describe('sanity check', function () { - it('lists profiles', function sanity(done) { +describe('sanity check', () => { + it('lists profiles', (done) => { const program = new commander.Command(); const command = new ListProfilesCommand(program); - command.execute({color: 'on'}); + command.execute({ color: 'on' }); done(); }); -}); \ No newline at end of file +}); diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index 6003ec0a..106ee0a9 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,32 +15,35 @@ */ const commander = require('commander'); +const chai = require('chai'); const { UploadContent } = require('../src/commands/content'); const { humanReadableFileSize } = require('../src/commands/utils'); -const chai = require('chai'); -const expect = chai.expect; -describe('Upload Directory', function () { - it('test upload', (done) => { +const { expect } = chai; + +describe('Upload Directory', () => { + it('test upload', (done) => { const program = new commander.Command(); const command = new UploadContent(program); const contentKey = '.shared'; const filePath = `${__dirname}/cortex`; const options = { - 'recursive': true, - 'test': true + recursive: true, + test: true, }; const expectedFileDicts = [ - { canonical: `${__dirname}/cortex/config`, + { + canonical: `${__dirname}/cortex/config`, relative: 'config', - size: 483 + size: 483, }, - { canonical: `${__dirname}/cortex/sample/upload/config`, + { + canonical: `${__dirname}/cortex/sample/upload/config`, relative: 'sample/upload/config', - size: 483 - } + size: 483, + }, ]; command.execute(contentKey, filePath, options, (fileDicts) => { @@ -50,49 +53,49 @@ describe('Upload Directory', function () { }); }); -describe('Human Readable File Size', function () { - it('bytes', (done) => { +describe('Human Readable File Size', () => { + it('bytes', (done) => { const sizeInBytes = 260; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('260B'); done(); }); - it('KB', (done) => { + it('KB', (done) => { const sizeInBytes = 1200; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('1.2K'); done(); }); - it('MB', (done) => { + it('MB', (done) => { const sizeInBytes = 1000000; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('1M'); done(); }); - it('1MB less some', (done) => { + it('1MB less some', (done) => { const sizeInBytes = Math.pow(10, 3) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999B'); done(); }); - it('1k 200 bytes less', (done) => { + it('1k 200 bytes less', (done) => { const sizeInBytes = 1000000 - 200; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.8K'); done(); }); - it('1k less', (done) => { + it('1k less', (done) => { const sizeInBytes = Math.pow(10, 6) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.9K'); done(); }); - it('several GB', (done) => { + it('several GB', (done) => { const sizeInBytes = 32 * Math.pow(10, 9) + 345 * Math.pow(10, 6); const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('32.3G'); diff --git a/test/useragent.js b/test/useragent.js index de399c61..11936d7f 100644 --- a/test/useragent.js +++ b/test/useragent.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,60 +14,53 @@ * limitations under the License. */ -const chai = require("chai"); -const chaiAsPromised = require("chai-as-promised"); +const chai = require('chai'); +const chaiAsPromised = require('chai-as-promised'); const findPackageJson = require('find-package-json'); const rewire = require('rewire'); -const superagent = require('superagent'); -const superagentMock = require('superagent-mocker'); +const nock = require('nock'); const compatibilityModule = rewire('../src/compatibility'); chai.use(chaiAsPromised); -const expect = chai.expect; const pkg = findPackageJson(__dirname).next().value; -describe('useragent', function () { +describe('useragent', () => { const profile = { url: 'http://example.com', account: 'testAccount', - tenantId: 'testTenant', + projectId: 'testTenant', username: 'testUser', - token: 'testToken' + token: 'testToken', }; - let requestMock; - let requestMockHeaders; let revertCompatibilityModule; - before(function () { + before(() => { // Compatibility API call is as good as any to verify the request has user-agent, // so mock it the same way we do for that test, adding capture of headers. - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - (req) => { - requestMockHeaders = req.headers; // Capture headers - return ({ ok: true, body: { semver: pkg.version } }); - } - ); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), }, }); - - requestMockHeaders = {}; }); - after(function () { + after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); }); - it('should exist in request headers', function () { - return compatibilityModule.getCompatibility(profile).then(() => - expect(requestMockHeaders['user-agent']).to.include(`${pkg.name}/${pkg.version}`)); + it('should exist in request headers', async () => { + nock.activate(); + const n = nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: pkg.version })) + .matchHeader('user-agent', (val) => { + console.log(val); + return val.includes(`${pkg.name}/${pkg.version}`); + }); + await compatibilityModule.getCompatibility(profile); + n.done(); }); }); diff --git a/test/utils/api.js b/test/utils/api.js deleted file mode 100644 index 8cf0b3a7..00000000 --- a/test/utils/api.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const assert = require('assert'); - -const { request } = require('../../src/commands/apiutils'); - -describe('testing api utils request function methods exist', function() { - it('request get method should exist', function() { - assert.ok(request.get); - }); - - it('request delete method should exist', function() { - assert.ok(request.delete); - }); - - it('request post method should exist', function() { - assert.ok(request.post); - }); - - it('request put method should exist', function() { - assert.ok(request.put); - }); - - it('request nonexistentmumbojumbo method should NOT exist', function() { - assert.ok(request.nonexistentmumbojumbo === undefined); - }); - - it('private var proxyEnv for request NOT be accessible', function() { - assert.ok(request.proxyEnv === undefined); - }); -}); - - From 130a35fc938b5ff76e37e312e074461f426c7a8d Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 29 Oct 2020 08:56:33 -0500 Subject: [PATCH 145/864] Fab 328 project commands (#244) * Add initial cli commands for projects * cleaup linting --- bin/cortex-projects.js | 86 ++++++++++++++++++++++++++++ bin/cortex.js | 2 +- package-lock.json | 67 ++++++++++++++++++---- package.json | 4 +- src/client/apiServerClient.js | 64 +++++++++++++++++++++ src/client/content.js | 7 +-- src/commands/projects.js | 105 ++++++++++++++++++++++++++++++++++ src/compatibility.js | 4 +- 8 files changed, 321 insertions(+), 18 deletions(-) create mode 100755 bin/cortex-projects.js create mode 100644 src/client/apiServerClient.js create mode 100644 src/commands/projects.js diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js new file mode 100755 index 00000000..5d96cda6 --- /dev/null +++ b/bin/cortex-projects.js @@ -0,0 +1,86 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + CreateProjectCommand, + ListProjectsCommand, + DescribeProjectCommand, +} = require('../src/commands/projects'); + +program.description('Work with Cortex Projects'); + +// Create Project +program + .command('create [projectDefinition]') + .description('Save a project definition') + .storeOptionsAsProperties(false) + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('-n, --name ', 'The project name') + .option('-t, --title [string]', 'The project title') + .option('-d, --description [string]', 'The project description') + .option('-y, --yaml', 'Use YAML for project definition format') + .action(withCompatibilityCheck((projectDefinition, options) => { + try { + new CreateProjectCommand(program).execute(projectDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Projects +program + .command('list') + .description('List project definitions') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((options) => { + try { + new ListProjectsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Get|Describe Project +program + .command('describe ') + .alias('get') + .description('Describe project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((projectName, options) => { + try { + new DescribeProjectCommand(program).execute(projectName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 41a5f3e7..dc0c9b90 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -37,7 +37,7 @@ program .command('datasets [cmd]', 'Work with Cortex Datasets') .command('docker [cmd]', 'Work with Docker') .command('jobs [cmd]', 'Work with Cortex v2 Jobs') - .command('projects [cmd]', 'Work with a related collection of Cortex contributions') + .command('projects [cmd]', 'Work with Cortex projects') .command('skills [cmd]', 'Work with Cortex Skills') .command('tasks [cmd]', 'Work with Cortex v2 Tasks') .command('types [cmd]', 'Work with Cortex Types') diff --git a/package-lock.json b/package-lock.json index 87d1349f..be5be3bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -289,8 +289,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "balanced-match": { "version": "1.0.0", @@ -782,10 +781,18 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz", - "integrity": "sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==" }, "component-emitter": { "version": "1.3.0", @@ -815,6 +822,14 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cross-fetch": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", + "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", + "requires": { + "node-fetch": "2.6.1" + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -916,8 +931,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { "version": "1.1.2", @@ -1435,6 +1449,11 @@ "tmp": "^0.0.33" } }, + "extract-files": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1535,6 +1554,16 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, + "form-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "formidable": { "version": "1.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/formidable/-/formidable-1.2.1.tgz", @@ -1639,6 +1668,21 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha1-nPOmZcYkdHmJaDSvNc8du0QAdn4=" }, + "graphql": { + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.4.0.tgz", + "integrity": "sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA==" + }, + "graphql-request": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.3.0.tgz", + "integrity": "sha512-NHj65WSIUh8j7TBYgzWU0fqvLfxrqFDrLG8nZUh+IREZw50ljR6JXlXRkr52/fL/46wpItiQNLDrG+UZI+KmzA==", + "requires": { + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + } + }, "growl": { "version": "1.10.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", @@ -2192,14 +2236,12 @@ "mime-db": { "version": "1.40.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=", - "dev": true + "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" }, "mime-types": { "version": "2.1.24", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.24.tgz", "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", - "dev": true, "requires": { "mime-db": "1.40.0" } @@ -2594,6 +2636,11 @@ } } }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", diff --git a/package.json b/package.json index 451aa034..a33d1892 100644 --- a/package.json +++ b/package.json @@ -36,12 +36,14 @@ "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "6.1.0", + "commander": "6.2.0", "debug": "4.1.1", "event-stream": "4.0.1", "find-package-json": "1.2.0", "glob": "7.1.6", "got": "11.7.0", + "graphql": "15.4.0", + "graphql-request": "3.3.0", "is-installed-globally": "0.3.1", "jmespath": "0.15.0", "jose": "2.0.2", diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js new file mode 100644 index 00000000..2aef978b --- /dev/null +++ b/src/client/apiServerClient.js @@ -0,0 +1,64 @@ +const _ = require('lodash'); +const { GraphQLClient, gql } = require('graphql-request'); + +module.exports = class ApiServerClient { + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/fabric/v4/graphql`; + } + + _client(token) { + return new GraphQLClient(this.endpoint, { + headers: { + Authorization: `Bearer: ${token}`, + }, + redirect: 'error', + }); + } + + /** + * Query project using graphql + * @param projectId + * @return {Promise} + */ + async getProject(token, projectId) { + try { + const fetched = await this._client(token) + .request(gql`query { projectByName( name: "${projectId}" ){name, title, description}}`); + return _.get(fetched, 'projectByName'); + } catch (err) { + throw err; + } + } + + + /** + * Query project using graphql + * @param projectId + * @return {Promise} + */ + async listProjects(token) { + try { + const fetched = await this._client(token) + .request(gql`{ projects { name, title, description} }`); + return _.get(fetched, 'projects', []); + } catch (err) { + throw err; + } + } + + /** + * Query project using graphql + * @param projectId + * @return {Promise} + */ + async createProject(token, projDef) { + try { + const fetched = await this._client(token) + .request(gql`mutation NewProject($input: ProjectInput!) { createProject(input: $input){name}}`, { input: projDef }); + return _.get(fetched, 'createProject', {}); + } catch (err) { + throw err; + } + } +}; diff --git a/src/client/content.js b/src/client/content.js index 4c255582..08c22a86 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -16,15 +16,14 @@ const fs = require('fs'); const stream = require('stream'); -const { got } = require('./apiutils'); const { promisify } = require('util'); - -const pipeline = promisify(stream.pipeline); - const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); const { constructError, getUserAgent } = require('../commands/utils'); const Variables = require('./variables'); +const pipeline = promisify(stream.pipeline); + module.exports = class Content { constructor(cortexUrl) { this.cortexUrl = cortexUrl; diff --git a/src/commands/projects.js b/src/commands/projects.js new file mode 100644 index 00000000..6653283c --- /dev/null +++ b/src/commands/projects.js @@ -0,0 +1,105 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _ = require('lodash'); +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const ApiServerClient = require('../client/apiServerClient'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); + +module.exports.CreateProjectCommand = class CreateProjectCommand { + constructor(program) { + this.program = program; + } + + async execute(projectDefinition, command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeSaveProject(%s)', profile.name, projectDefinition); + let project = {}; + if (projectDefinition) { + const projectDefStr = fs.readFileSync(projectDefinition); + project = parseObject(projectDefStr, options); + } + if (_.isEmpty(options.name || project.name)) { + printError('`name` must be provided', options); + } + try { + const cli = new ApiServerClient(profile.url); + const response = await cli.createProject(profile.token, { + name: options.name || project.name, + title: options.title || project.title, + description: options.description || project.description, + }); + printSuccess(`Project ${response.name} saved`, options); + } catch (err) { + printError(`Failed to save project: ${err.message}`, options); + } + } +}; + +module.exports.ListProjectsCommand = class ListProjectsCommand { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListProjects()', profile.name); + + const cli = new ApiServerClient(profile.url); + try { + const response = await cli.listProjects(profile.token); + let result = response; + if (options.query) result = filterObject(result, options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 80 }, + ]; + printTable(tableSpec, result); + } + } catch (err) { + printError(`Failed to list projects: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.DescribeProjectCommand = class DescribeProjectCommand { + constructor(program) { + this.program = program; + } + + async execute(projectName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDescribeProject(%s)', profile.name, projectName); + const cli = new ApiServerClient(profile.url); + + try { + const response = await cli.getProject(profile.token, projectName); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + printError(`Failed to describe project: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/src/compatibility.js b/src/compatibility.js index 61becdf8..8db438a6 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -122,11 +122,11 @@ async function getCompatibility(profile) { function withCompatibilityCheck(fn) { return (...args) => { - const options = last(args) || {}; + const command = last(args); + const options = command.opts(); if (options.compat) { const { profile: profileName } = options; const profile = loadProfile(profileName); - return getCompatibility(profile) .then(({ current, latest, satisfied }) => { if (!satisfied) { From 84f0b96f9330a0a461c1f339fdca8caa147e3fad Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Thu, 29 Oct 2020 11:03:51 -0500 Subject: [PATCH 146/864] FAB-177 rbac tools initial (#245) * FAB-177 rbac tools initial * FAB-177 rbac got, options, messaging * FAB-177 lint, copyright --- bin/cortex-roles.js | 126 ++++++++++++++++++++++++++ bin/cortex-users.js | 65 +++++++++++++ bin/cortex.js | 3 + src/client/content.js | 1 + src/client/roles.js | 151 +++++++++++++++++++++++++++++++ src/client/users.js | 81 +++++++++++++++++ src/commands/roles.js | 206 ++++++++++++++++++++++++++++++++++++++++++ src/commands/users.js | 94 +++++++++++++++++++ 8 files changed, 727 insertions(+) create mode 100755 bin/cortex-roles.js create mode 100755 bin/cortex-users.js create mode 100644 src/client/roles.js create mode 100644 src/client/users.js create mode 100644 src/commands/roles.js create mode 100644 src/commands/users.js diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js new file mode 100755 index 00000000..fa93296e --- /dev/null +++ b/bin/cortex-roles.js @@ -0,0 +1,126 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + RoleAssignCommand, + RoleCreateCommand, + RoleDeleteCommand, + RoleGrantCommand, + RoleDescribeCommand, + RoleListCommand, +} = require('../src/commands/roles'); + +program.description('Work with Cortex Roles'); + +program.command('list') + .description('List roles by project and user') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--user [user]', 'User to list roles for') + .option('--project [project', 'Project to list roles for') + .action(withCompatibilityCheck((options) => { + try { + new RoleListCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('describe ') + .description('Describe role grants and users') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--users', 'List users associated with role') + .option('--no-grants', 'Ignore grants associated with role') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleDescribeCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +program.command('delete ') + .description('Delete a role and remove grants/assignments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleDeleteCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('create ') + .description('Create a role with the given grant') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--project ', 'Grant project') + .requiredOption('--resource ', 'Grant resource') + .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleCreateCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('grant ') + .description('Manage grants on an existing role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--project ', 'Grant project') + .requiredOption('--resource ', 'Grant resource') + .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .option('--delete', 'Remove grant from role') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleGrantCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('assign ') + .description('Manage a list of user assignments on a role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--users ', 'Users to add/remove on role') + .option('--delete', 'Unassign users from role') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleAssignCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-users.js b/bin/cortex-users.js new file mode 100755 index 00000000..6bed3211 --- /dev/null +++ b/bin/cortex-users.js @@ -0,0 +1,65 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + UserDescribeCommand, + UserGrantCommand, +} = require('../src/commands/users'); + +program.description('Work with Cortex User'); + +program.command('describe') + .description('Describe a users grants and roles') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--user [user]', 'The user to describe, self for default') + .option('--roles', 'Include roles for user') + .option('--no-grants', 'Ignore grants for user') + .action(withCompatibilityCheck((options) => { + try { + new UserDescribeCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +program.command('grant ') + .description('Manage user grants') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .requiredOption('--project ', 'Grant project') + .requiredOption('--resource ', 'Grant resource') + .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .option('--profile [profile]', 'The profile to use') + .option('--delete', 'Remove grant from user') + .action(withCompatibilityCheck((user, options) => { + try { + new UserGrantCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index dc0c9b90..4c9eecfe 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -36,7 +36,10 @@ program .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('datasets [cmd]', 'Work with Cortex Datasets') .command('docker [cmd]', 'Work with Docker') + .command('groups [cmd]', 'Work with Cortex Groups') .command('jobs [cmd]', 'Work with Cortex v2 Jobs') + .command('users [cmd]', 'Work with a Cortex Users') + .command('roles [cmd]', 'Work with a Cortex Roles') .command('projects [cmd]', 'Work with Cortex projects') .command('skills [cmd]', 'Work with Cortex Skills') .command('tasks [cmd]', 'Work with Cortex v2 Tasks') diff --git a/src/client/content.js b/src/client/content.js index 08c22a86..e60402b5 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -16,6 +16,7 @@ const fs = require('fs'); const stream = require('stream'); + const { promisify } = require('util'); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); diff --git a/src/client/roles.js b/src/client/roles.js new file mode 100644 index 00000000..d85550fa --- /dev/null +++ b/src/client/roles.js @@ -0,0 +1,151 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); + +module.exports = class Roles { + constructor(cortexUrl, role, flags = []) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/fabric/v4`; + this.flags = ''; + + if (role) { + this.rolesEndpoint = `${this.endpoint}/roles/${role}`; + } else { + this.rolesEndpoint = `${this.endpoint}/roles`; + } + this.rolesUsersEndpoint = `${this.rolesEndpoint}/users`; + this.rolesGrantsEndpoint = `${this.rolesEndpoint}/grants`; + + if (flags.length > 0) { + this.flags = `${flags.reduce((flagString, flag) => { + if (flagString) { + flagString += `&${flag}=true`; + } else { + flagString += `?${flag}=true`; + } + return flagString; + }, '')}`; + } + } + + describeRole(token) { + const endpoint = this.rolesEndpoint + this.flags; + debug('describeRole => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + + deleteRole(token) { + const endpoint = this.rolesEndpoint; + debug('deleteRole => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + createRole(token, body) { + const endpoint = this.rolesEndpoint; + debug('createRole => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + + addUsersToRole(token, users) { + const endpoint = `${this.rolesUsersEndpoint}`; + debug('addUsersToRole => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { users }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeUsersFromRole(token, users) { + const endpoint = `${this.rolesUsersEndpoint}`; + debug('removeUsersFromRole => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { users }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + createGrantForRole(token, body) { + const endpoint = `${this.rolesGrantsEndpoint}`; + debug('createGrantForRole => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeGrantFromRole(token, body) { + const endpoint = `${this.rolesGrantsEndpoint}`; + debug('removeGrantFromRole => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + listRoles(token, project) { + let endpoint = this.rolesEndpoint; + if (project) { + endpoint += `?project=${project}`; + } + debug('listRoles => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } +}; diff --git a/src/client/users.js b/src/client/users.js new file mode 100644 index 00000000..73302ab1 --- /dev/null +++ b/src/client/users.js @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); + +module.exports = class Users { + constructor(cortexUrl, user, flags = []) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/fabric/v4`; + this.flags = ''; + + if (user) { + this.usersEndpoint = `${this.endpoint}/usergrants/${user}`; + } else { + this.usersEndpoint = `${this.endpoint}/usergrants`; + } + if (flags.length > 0) { + this.flags = `${flags.reduce((flagString, flag) => { + if (flagString) { + flagString += `&${flag}=true`; + } else { + flagString += `?${flag}=true`; + } + return flagString; + }, '')}`; + } + } + + describeUser(token) { + const endpoint = `${this.usersEndpoint}/${this.flags}`; + debug('listForUser => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + createGrantForUser(token, body) { + const endpoint = this.usersEndpoint; + debug('createGrantForUser => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeGrantFromUser(token, body) { + const endpoint = this.usersEndpoint; + debug('removeGrantFromUser => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } +}; diff --git a/src/commands/roles.js b/src/commands/roles.js new file mode 100644 index 00000000..5e1e3e3b --- /dev/null +++ b/src/commands/roles.js @@ -0,0 +1,206 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Roles = require('../client/roles'); +const { + printSuccess, printError, filterObject, +} = require('./utils'); + +function createGrant(options) { + return { + project: options.project, + resource: options.resource, + actions: options.actions, + }; +} + +module.exports.RoleDeleteCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + debug('%s.deleteRole=%s', profile.name, role); + + const client = new Roles(profile.url, role); + + client.deleteRole(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to delete role : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleCreateCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + const form = createGrant(options); + form.role = role; + debug('%s.createRole=%s', profile.name); + + const client = new Roles(profile.url); + + client.createRole(profile.token, form).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to create role : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to create role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleAssignCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + debug('%s.grantRoler=%s', profile.name, role); + + const client = new Roles(profile.url, role); + const call = (deleteFlag, token, users) => { + if (deleteFlag) { + return client.removeUsersFromRole(token, users); + } + return client.addUsersToRole(token, users); + }; + + call(options.delete, profile.token, options.users).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} user from role : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} user from role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleGrantCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + const form = createGrant(options); + debug('%s.grantRoler=%s', profile.name, role); + + const client = new Roles(profile.url, role); + const call = (deleteFlag, token, body) => { + if (deleteFlag) { + return client.removeGrantFromRole(token, body); + } + return client.createGrantForRole(token, body); + }; + + call(options.delete, profile.token, form).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for role : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleDescribeCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + debug('%s.describeForRole=%s', profile.name, role); + + const flags = []; + + if (options.grants) { + flags.push('grants'); + } + if (options.users) { + flags.push('users'); + } + const client = new Roles(profile.url, role, flags); + client.describeRole(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe role : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleListCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listRole=%s', profile.name); + + const flags = []; + + const client = new Roles(profile.url, flags); + client.listRoles(profile.token, options.project).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to list roles : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list roles : ${err.status} ${err.message}`, options); + }); + } +}; diff --git a/src/commands/users.js b/src/commands/users.js new file mode 100644 index 00000000..f9a1e018 --- /dev/null +++ b/src/commands/users.js @@ -0,0 +1,94 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Users = require('../client/users'); +const { + printSuccess, printError, filterObject, +} = require('./utils'); + +function createGrant(options) { + return { + project: options.project, + resource: options.resource, + actions: options.actions, + }; +} + +module.exports.UserGrantCommand = class { + constructor(program) { + this.program = program; + } + + execute(user, options) { + const profile = loadProfile(options.profile); + const form = createGrant(options); + debug('%s.grantUser=%s', profile.name, user || 'self'); + const client = new Users(profile.url, user); + const call = (deleteFlag, token, body) => { + if (deleteFlag) { + return client.removeGrantFromUser(token, body); + } + return client.createGrantForUser(token, body); + }; + + call(options.delete, profile.token, form).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for user : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for user : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.UserDescribeCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.describeForUser=%s', profile.name, options.user || 'self'); + + const flags = []; + + if (options.grants) { + flags.push('grants'); + } + if (options.roles) { + flags.push('roles'); + } + const client = new Users(profile.url, options.user, flags); + client.describeUser(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe user : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe user : ${err.status} ${err.message}`, options); + }); + } +}; From 96336be1d1d7a8adb48c9cce0689a40ae417fb14 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 29 Oct 2020 13:38:01 -0500 Subject: [PATCH 147/864] =?UTF-8?q?Fixed=20auth=20header=20typo,=20added?= =?UTF-8?q?=20CORTEX=5FNO=5FAUTH=3Dtrue=20env=20var=20for=20develop?= =?UTF-8?q?=E2=80=A6=20(#246)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for developer sanity * Fix error handling saving types * Added alias for describe --- bin/cortex-datasets.js | 1 + bin/cortex-types.js | 1 + src/client/apiServerClient.js | 2 +- src/commands/types.js | 32 +++++++++++++++----------------- src/compatibility.js | 15 ++++++++------- 5 files changed, 26 insertions(+), 25 deletions(-) diff --git a/bin/cortex-datasets.js b/bin/cortex-datasets.js index b5e6caf8..01b7f630 100644 --- a/bin/cortex-datasets.js +++ b/bin/cortex-datasets.js @@ -70,6 +70,7 @@ program // Describe Dataset program .command('describe ') + .alias('get') .description('Describe dataset') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 838b74fc..cafd8e57 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -67,6 +67,7 @@ program // Describe Type program .command('describe ') + .alias('get') .description('Describe type') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 2aef978b..90caf410 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -10,7 +10,7 @@ module.exports = class ApiServerClient { _client(token) { return new GraphQLClient(this.endpoint, { headers: { - Authorization: `Bearer: ${token}`, + Authorization: `bearer ${token}`, }, redirect: 'error', }); diff --git a/src/commands/types.js b/src/commands/types.js index ca83de39..581696cb 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -27,29 +27,27 @@ module.exports.SaveTypeCommand = class SaveTypeCommand { this.program = program; } - execute(typeDefinition, options) { + async execute(typeDefinition, options) { const profile = loadProfile(options.profile); debug('%s.executeSaveType(%s)', profile.name, typeDefinition); + try { + const typeDefStr = fs.readFileSync(typeDefinition); + const type = parseObject(typeDefStr, options); + debug('%o', type); - const typeDefStr = fs.readFileSync(typeDefinition); - const type = parseObject(typeDefStr, options); - debug('%o', type); + let normalizedType = {}; + if (!('types' in type)) normalizedType.types = [type]; + else normalizedType = type; - let normalizedType = {}; - if (!('types' in type)) normalizedType.types = [type]; - else normalizedType = type; - - const catalog = new Catalog(profile.url); - catalog.saveType(options.project || profile.project, profile.token, normalizedType).then((response) => { + const catalog = new Catalog(profile.url); + const response = await catalog.saveType(options.project || profile.project, profile.token, normalizedType); if (response.success) { - printSuccess('Type definition saved', options); - } else { - printError(`Failed to save type: ${response.status} ${response.message}`, options); + return printSuccess('Type definition saved', options); } - }) - .catch((err) => { - printError(`Failed to save type: ${err.status} ${err.response.body.error}`, options); - }); + return printError(`${response.message}: ${JSON.stringify(response.details || '')} `); + } catch (err) { + return printError(`Failed to save type: ${err.status} ${err.message}`, options); + } } }; diff --git a/src/compatibility.js b/src/compatibility.js index 8db438a6..8a1905af 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -14,6 +14,7 @@ * limitations under the License. */ +const _ = require('lodash'); const boxen = require('boxen'); const chalk = require('chalk'); const concat = require('lodash/fp/concat'); @@ -25,7 +26,7 @@ const isInstalledGlobally = require('is-installed-globally'); const keys = require('lodash/fp/keys'); const last = require('lodash/fp/last'); const npmFetch = require('npm-registry-fetch'); -const semver = require('semver'); +const Semver = require('semver'); const uniq = require('lodash/fp/uniq'); const { got } = require('./client/apiutils'); const { loadProfile } = require('./config'); @@ -39,8 +40,8 @@ function getAvailableVersions(name) { .json(pkg.name) .then(manifest => keys(getOr({}, 'versions', manifest))) .then(versions => uniq(concat(versions, pkg.version))) - .then(versions => versions.sort(semver.compare)) - .catch((_) => { + .then(versions => versions.sort(Semver.compare)) + .catch(() => { throw new Error('Unable to determine CLI available versions'); }); } @@ -100,12 +101,12 @@ async function getCompatibility(profile) { try { // fail if unable to contact cortex service const requirements = await getRequiredVersion(profile); - const satisfied = semver.satisfies(pkg.version, requirements); + const satisfied = Semver.satisfies(pkg.version, requirements); try { // warn user but don't fail const versions = await getAvailableVersions(pkg.name); debug('getCompatibility => versions: %s, requirements: %s', versions, requirements); - const compatibleVersions = filter(v => semver.satisfies(v, requirements), versions); + const compatibleVersions = filter(v => Semver.satisfies(v, requirements), versions); debug('getCompatibility => compatible versions: %s', compatibleVersions); const { version: current } = pkg; const latest = last(compatibleVersions); @@ -124,14 +125,14 @@ function withCompatibilityCheck(fn) { return (...args) => { const command = last(args); const options = command.opts(); - if (options.compat) { + if (options.compat && !_.toLower(process.env.CORTEX_NO_COMPAT) === 'true') { const { profile: profileName } = options; const profile = loadProfile(profileName); return getCompatibility(profile) .then(({ current, latest, satisfied }) => { if (!satisfied) { upgradeRequired({ current, latest }); - } else if (semver.gt(latest, current)) { + } else if (Semver.gt(latest, current)) { upgradeAvailable({ current, latest }); } }) From e7ac058c220810f4291d5b3705db3ccf2972162c Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 29 Oct 2020 15:53:21 -0500 Subject: [PATCH 148/864] Remove dead commands, sort command help (#247) --- bin/cortex.js | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/bin/cortex.js b/bin/cortex.js index 4c9eecfe..c8587967 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -26,28 +26,23 @@ const pkg = findPackageJson(__dirname).next().value; program .version(pkg.version, '-v, --version') .description('Cortex CLI') -// .command('accounts [cmd]', 'Work with Cortex Accounts') .command('actions [cmd]', 'Work with Cortex Actions') .command('agents [cmd]', 'Work with Cortex Agents') .command('configure', 'Configure the Cortex CLI') .command('connections [cmd]', 'Work with Cortex Connections') .command('content [cmd]', 'Work with Cortex Managed Content') - .command('environments [cmd]', 'Work with Cortex Environments') - .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('datasets [cmd]', 'Work with Cortex Datasets') + .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('docker [cmd]', 'Work with Docker') - .command('groups [cmd]', 'Work with Cortex Groups') - .command('jobs [cmd]', 'Work with Cortex v2 Jobs') - .command('users [cmd]', 'Work with a Cortex Users') + .command('experiments [cmd]', 'Work with Cortex Experiments') + .command('graph [cmd]', 'Work with the Cortex Graph') + .command('profiles [cmd]', 'Work with Cortex Profiles') + .command('projects [cmd]', 'Work with Cortex Projects') .command('roles [cmd]', 'Work with a Cortex Roles') - .command('projects [cmd]', 'Work with Cortex projects') + .command('secrets [cmd]', 'Work with Cortex Secrets') .command('skills [cmd]', 'Work with Cortex Skills') - .command('tasks [cmd]', 'Work with Cortex v2 Tasks') .command('types [cmd]', 'Work with Cortex Types') - .command('secrets [cmd]', 'Work with Cortex Secrets') - .command('experiments [cmd]', 'Work with Cortex Experiments') - .command('profiles [cmd]', 'Work with Cortex Profiles') - .command('graph [cmd]', 'Work with the Cortex Graph'); + .command('users [cmd]', 'Work with a Cortex Users'); program.parse(process.argv, { noActionHandler: () => {} }); if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { From f14fc2944885ce03fc913b1bd2705a463426e7ff Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 29 Oct 2020 17:38:53 -0500 Subject: [PATCH 149/864] Added missing get aliases (#248) * Added missing get aliases * Rename projects create project save, fix promise error --- bin/cortex-connections.js | 1 + bin/cortex-projects.js | 2 +- bin/cortex-roles.js | 1 + bin/cortex-skills.js | 1 + bin/cortex-users.js | 1 + src/commands/projects.js | 14 +++++++------- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 437cb8dc..61641dbb 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -90,6 +90,7 @@ program // Describe Connection program .command('describe ') + .alias('get') .description('Describe connection') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 5d96cda6..c898fdf6 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -31,7 +31,7 @@ program.description('Work with Cortex Projects'); // Create Project program - .command('create [projectDefinition]') + .command('save [projectDefinition]') .description('Save a project definition') .storeOptionsAsProperties(false) .option('--no-compat', 'Ignore API compatibility checks') diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index fa93296e..bab36674 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -47,6 +47,7 @@ program.command('list') })); program.command('describe ') + .alias('get') .description('Describe role grants and users') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 7536d76d..12ef898b 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -67,6 +67,7 @@ program // Describe Skill program .command('describe ') + .alias('get') .description('Describe skill') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 6bed3211..a0b83e3d 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -28,6 +28,7 @@ const { program.description('Work with Cortex User'); program.command('describe') + .alias('get') .description('Describe a users grants and roles') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') diff --git a/src/commands/projects.js b/src/commands/projects.js index 6653283c..61f5e0cf 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -32,14 +32,14 @@ module.exports.CreateProjectCommand = class CreateProjectCommand { const profile = loadProfile(options.profile); debug('%s.executeSaveProject(%s)', profile.name, projectDefinition); let project = {}; - if (projectDefinition) { - const projectDefStr = fs.readFileSync(projectDefinition); - project = parseObject(projectDefStr, options); - } - if (_.isEmpty(options.name || project.name)) { - printError('`name` must be provided', options); - } try { + if (projectDefinition) { + const projectDefStr = fs.readFileSync(projectDefinition); + project = parseObject(projectDefStr, options); + } + if (_.isEmpty(options.name || project.name)) { + printError('`name` must be provided', options); + } const cli = new ApiServerClient(profile.url); const response = await cli.createProject(profile.token, { name: options.name || project.name, From 2ff2f3abb389d982acc6c7cbfba9990e2c2fcc33 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Fri, 30 Oct 2020 02:26:45 -0500 Subject: [PATCH 150/864] FAB-177 get rid of whoami (#249) --- src/client/accounts.js | 39 --------------------------------------- src/commands/configure.js | 16 +--------------- 2 files changed, 1 insertion(+), 54 deletions(-) delete mode 100644 src/client/accounts.js diff --git a/src/client/accounts.js b/src/client/accounts.js deleted file mode 100644 index b7858fe6..00000000 --- a/src/client/accounts.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const debug = require('debug')('cortex:cli'); -const got = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); - -module.exports = class Accounts { - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/accounts`; - this.whoAmIEndpoint = `${this.endpoint}/user/whoami`; - } - - whoAmI(token) { - const endpoint = this.whoAmIEndpoint; - debug('whoAmI => %s', endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } -}; diff --git a/src/commands/configure.js b/src/commands/configure.js index 9ed1c734..bcc69e86 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -21,8 +21,7 @@ const prompt = require('co-prompt'); const chalk = require('chalk'); const fs = require('fs'); const { readConfig, defaultConfig } = require('../config'); -const { printSuccess, printError, filterObject } = require('./utils'); -const Accounts = require('../client/accounts'); +const { printSuccess, printError } = require('./utils'); function _validatePatFile(patFile) { if (!fs.existsSync(patFile)) { @@ -120,19 +119,6 @@ module.exports.DescribeProfileCommand = class { printSuccess(`Username: ${profile.username}`, options); printSuccess(`JWK: ${JSON.stringify(profile.jwk)}`, options); printSuccess(`Project: ${profile.project || 'undefined'}`, options); - - const accounts = new Accounts(profile.url); - accounts.whoAmI(profile.token).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe profile : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe profile : ${err.status} ${err.message}`, options); - }); } }; From 2bc2baef1b8d712bb5b8fb7917d390bed4574897 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Fri, 30 Oct 2020 10:12:12 -0500 Subject: [PATCH 151/864] FAB-177 remove list roles by user (#250) * FAB-177 remove list roles by user * FAB-177 including configure token command to get access token --- bin/cortex-configure.js | 21 ++++++++++++++++++--- bin/cortex-roles.js | 1 - src/commands/configure.js | 23 +++++++++++++++++++++-- src/config.js | 4 ++-- 4 files changed, 41 insertions(+), 8 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 24543ab3..65b78d82 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -23,23 +23,38 @@ const { DescribeProfileCommand, ListProfilesCommand, SetProfileCommand, + GetAccessToken, } = require('../src/commands/configure'); program - .option('--file [file]', 'Personal Access Token file location') + .option('--file [file]', 'Personal access config file location') .option('--profile [profile]', 'The profile to configure') .option('--project [project]', 'The default project to use') .description('Configure the Cortex CLI'); -program.command('auth', { isDefault: true }) +program.command('create', { isDefault: true }) .description('Authenticate to cortex (default command)') - .option('--file [file]', 'Personal Access Token file location') + .option('--file [file]', 'Personal access config file location') .option('--profile [profile]', 'The profile to configure') .option('--project [project]', 'The default project') .action(() => { new ConfigureCommand(program).execute({ profile: program.profile, color: program.color }); }); +program + .command('token') + .description('Create access token') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .action(() => { + new GetAccessToken(program).execute({ + profile: program.profile, + project: program.project, + color: program.color, + }); + }); + program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on'); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index bab36674..5e34847d 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -36,7 +36,6 @@ program.command('list') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .option('--user [user]', 'User to list roles for') .option('--project [project', 'Project to list roles for') .action(withCompatibilityCheck((options) => { try { diff --git a/src/commands/configure.js b/src/commands/configure.js index bcc69e86..99de4095 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -20,7 +20,13 @@ const _ = require('lodash'); const prompt = require('co-prompt'); const chalk = require('chalk'); const fs = require('fs'); -const { readConfig, defaultConfig } = require('../config'); + +const { + readConfig, + defaultConfig, + generateJwt, + loadProfile, +} = require('../config'); const { printSuccess, printError } = require('./utils'); function _validatePatFile(patFile) { @@ -50,7 +56,7 @@ module.exports.ConfigureCommand = class { if (patFile) { patData = _validatePatFile(patFile); } else { - patData = JSON.parse(yield prompt('Cortex Personal Access Token: ')); + patData = JSON.parse(yield prompt('Cortex Personal Access Config: ')); } cmd.saveConfig(config, profileName, patData, cmd.program.project); console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); @@ -148,3 +154,16 @@ module.exports.ListProfilesCommand = class { }); } }; + +module.exports.GetAccessToken = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.getAccesToken', profile.name); + const jwt = generateJwt(profile, '1d'); + return printSuccess(jwt, options); + } +}; diff --git a/src/config.js b/src/config.js index 832b98b6..092e413e 100644 --- a/src/config.js +++ b/src/config.js @@ -23,7 +23,7 @@ const debug = require('debug')('cortex:config'); const { JWT, JWK } = require('jose'); const { printError } = require('./commands/utils'); -function generateJwt(profile) { +module.exports.generateJwt = generateJwt = function(profile, expiresIn = '2m') { const { username, issuer, audience, jwk, } = profile; @@ -34,7 +34,7 @@ function generateJwt(profile) { issuer, audience, subject: username, - expiresIn: '2m', + expiresIn, }); } From 728a0a9df92d4aa9795523ccc7ae13855a2dba0b Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 30 Oct 2020 12:05:47 -0500 Subject: [PATCH 152/864] set versio to 2.0.0-a.1 (#251) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a33d1892..87d00d7d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0", + "version": "2.0.0-a.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From be5b3c738f44532afe96086c2779ec11c1909cf7 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Sun, 1 Nov 2020 13:22:47 -0600 Subject: [PATCH 153/864] FAB-177 error handling (#253) --- bin/cortex-configure.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 65b78d82..32c840e9 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +const chalk = require('chalk'); const program = require('../src/commander'); const { @@ -48,11 +48,15 @@ program .option('--project [project]', 'The project to use') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .action(() => { - new GetAccessToken(program).execute({ - profile: program.profile, - project: program.project, - color: program.color, - }); + try { + new GetAccessToken(program).execute({ + profile: program.profile, + project: program.project, + color: program.color, + }); + } catch (err) { + console.error(chalk.red(err.message)); + } }); program From 1961101d70254ebaf64606c776f3e6e0935245c7 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Tue, 3 Nov 2020 14:26:29 -0600 Subject: [PATCH 154/864] CM-514 2.0.0-alpha.1 (#254) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports * bumped generator version to `0.3.24` * Bump version to 0.12.19 (#211) * Improvements to graph client and command client. (#213) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. * [CCF-12214] Specify custom HTTP User-Agent header value for all requests * 0.13.0 * [CCF-11868] Add scaleCount option to action deploy * 0.14.0 * Nein, marketplace * 1.0.0 * [CCF-12231] Fix endpoint specification for deleting a profile * 1.0.1 * [CCF-12390] Update deps to pass audit * 1.0.2 * rebase master, fixup package-lock.json * Fix api end (#224) * Remove api endpoint * clean up * Ccf 12660 develop rebase (#226) * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 clean up verbage * CCF-12660 cmd to command * CCF-12660 update to 1.0.3 * CCF-12660 remove vcpu and memory option parsing * Update dependencies and remove deprecation warnings (#223) * Update dependencies and remove deprecation warnings Joi method change remove dead code remove dead test * Version bump mocha, uuid * Added missing split dep, remove unused url dep * deprecated the `--kind` and `--code` options on the actions subcommand, no longer pass the option from the client to the command and also displays a warning when the options are still passed in (#228) * Ccf 12859 cortextoken warning (#230) * Add node version to package json to ensure we have a new enough node version, warn if use is using CORTEX_TOKEN * CCF-12859 Add message to warn users that CORTEX_TOKEN is set Require NODE 10.x or higher!! Bump package.json for vulns * Fix default behavior for cortex configure with new isDefault: true from commander * Fix missing options on cortex configure * CCF-12822 npm doesnot enforce anything, add preinstall check (#231) * CCF-12822 npm doesnot enforce anything, add preinstall check * pack-lock * Bump builder image from c12e/nodejs:dev-8.11.0 to 10.21.0 * CCF-12767: adding deprecated warnings to project and skills generate commands (#235) * bump version to 1.1.1 (#237) * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * added * FAB-285 SSO auth, temp whoAmI, project option support (#240) * FAB-285 SSO auth, temp whoAmI, project option support * FAB-285 SSO fix unit tests * FAB-285 SSO add project option to every command * FAB-285 cleanup issuance, process env and token exp (#242) * FAB-285 cleanup issuance, process env and token exp * FAB-285 handle auth error (#243) * FAB-285 handle auth error * FAB-285 better status code * Feature/fab183 projects (#241) * WIP to fix non JSON query responses on CLI * First pass at emitting markdown for cortex cli docs * Quote <> in text, replace
with
* added header * remove newline line 1 * Last tweaks generate_docs.js * WIP * WIP skills, actions, agents, snapshots working using projects. Remove request and using got Removed v2 jobs, tasks, envirnonments, instances First pass on connections, content, datasets * Added linting, fixes linting errors * Fixed unit tests, re-added user agent * update for url changes * Fixed bad url content upload * Missed adding projectId in secrets requests, renamed variables -> secrets, fixed error messages I hope * Fix cortex types list * Removed cortex datasets generate * URI typo * rebase/linting * Rebase on dev, added redirect hook to properly handle server-server auth resp * Fab 328 project commands (#244) * Add initial cli commands for projects * cleaup linting * FAB-177 rbac tools initial (#245) * FAB-177 rbac tools initial * FAB-177 rbac got, options, messaging * FAB-177 lint, copyright * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for develop… (#246) * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for developer sanity * Fix error handling saving types * Added alias for describe * Remove dead commands, sort command help (#247) * Added missing get aliases (#248) * Added missing get aliases * Rename projects create project save, fix promise error * FAB-177 get rid of whoami (#249) * FAB-177 remove list roles by user (#250) * FAB-177 remove list roles by user * FAB-177 including configure token command to get access token * set versio to 2.0.0-a.1 (#251) * FAB-177 error handling (#253) * Merge branch 'develop' into CM-514 # Conflicts: # bin/cortex-configure.js # bin/cortex-project.js # bin/cortex-skills.js # package-lock.json # package.json # src/commander.js # src/commands/project.js # src/commands/skills.js Co-authored-by: Christine Draper Co-authored-by: clee Co-authored-by: Matt Sanchez Co-authored-by: David Aldridge Co-authored-by: Johan Gielstra Co-authored-by: ljha --- .eslintrc.json | 26 + .gitignore | 1 + README.md | 11 +- bin/cortex-accounts.js | 168 - bin/cortex-actions.js | 64 +- bin/cortex-agents.js | 179 +- bin/cortex-configure.js | 58 +- bin/cortex-connections.js | 44 +- bin/cortex-content.js | 22 +- bin/cortex-datasets.js | 38 +- bin/cortex-deploy.js | 48 + bin/cortex-docker.js | 8 +- bin/cortex-environments.js | 126 - bin/cortex-experiments.js | 29 +- bin/cortex-graph.js | 15 +- bin/cortex-jobs.js | 105 - bin/cortex-profiles.js | 36 +- bin/cortex-project.js | 40 - bin/cortex-projects.js | 86 + bin/cortex-roles.js | 126 + ...{cortex-variables.js => cortex-secrets.js} | 18 +- bin/cortex-skills.js | 29 +- bin/cortex-tasks.js | 106 - bin/cortex-types.js | 19 +- bin/cortex-users.js | 66 + bin/cortex.js | 24 +- generate_docs.js | 89 + generate_docs.sh | 12 +- package-lock.json | 6317 +++++++---------- package.json | 36 +- scripts/cortex | 2 +- src/client/accounts.js | 242 - src/client/actions.js | 371 +- src/client/agents.js | 328 +- src/client/apiServerClient.js | 64 + src/{commands => client}/apiutils.js | 52 +- src/client/auth.js | 57 - src/client/catalog.js | 495 +- src/client/connections.js | 171 +- src/client/content.js | 265 +- src/client/datasets.js | 134 +- src/client/environments.js | 113 - src/client/experiments.js | 226 +- src/client/graph.js | 413 +- src/client/jobs.js | 99 - src/client/roles.js | 151 + src/client/tasks.js | 92 - src/client/users.js | 81 + src/client/variables.js | 85 +- src/commander.js | 12 +- src/commands/accounts.js | 339 - src/commands/actions.js | 188 +- src/commands/agents.js | 402 +- src/commands/configure.js | 147 +- src/commands/connections.js | 146 +- src/commands/content.js | 80 +- src/commands/datasets.js | 70 +- src/commands/deploy.js | 104 + src/commands/docker.js | 11 +- src/commands/environments.js | 203 - src/commands/experiments.js | 86 +- src/commands/graph.js | 150 +- src/commands/jobs.js | 168 - src/commands/profiles.js | 89 +- src/commands/project.js | 32 - src/commands/projects.js | 105 + src/commands/roles.js | 206 + src/commands/skills.js | 81 +- src/commands/tasks.js | 173 - src/commands/types.js | 65 +- src/commands/users.js | 94 + src/commands/utils.js | 261 +- src/commands/variables.js | 47 +- src/compatibility.js | 77 +- src/config.js | 103 +- src/useragent.js | 25 - test/compatibility.js | 91 +- test/cortex/config | 29 +- test/cortex/sample/upload/config | 29 +- test/docker-registry.js | 33 +- test/sanity.js | 10 +- test/uploadDirectory.js | 43 +- test/useragent.js | 49 +- test/utils/api.js | 47 - 84 files changed, 5863 insertions(+), 9319 deletions(-) create mode 100644 .eslintrc.json delete mode 100755 bin/cortex-accounts.js create mode 100755 bin/cortex-deploy.js delete mode 100755 bin/cortex-environments.js delete mode 100755 bin/cortex-jobs.js delete mode 100644 bin/cortex-project.js create mode 100755 bin/cortex-projects.js create mode 100755 bin/cortex-roles.js rename bin/{cortex-variables.js => cortex-secrets.js} (88%) delete mode 100755 bin/cortex-tasks.js create mode 100755 bin/cortex-users.js create mode 100644 generate_docs.js delete mode 100644 src/client/accounts.js create mode 100644 src/client/apiServerClient.js rename src/{commands => client}/apiutils.js (59%) delete mode 100644 src/client/auth.js delete mode 100644 src/client/environments.js delete mode 100644 src/client/jobs.js create mode 100644 src/client/roles.js delete mode 100644 src/client/tasks.js create mode 100644 src/client/users.js delete mode 100644 src/commands/accounts.js create mode 100644 src/commands/deploy.js delete mode 100644 src/commands/environments.js delete mode 100644 src/commands/jobs.js delete mode 100644 src/commands/project.js create mode 100644 src/commands/projects.js create mode 100644 src/commands/roles.js delete mode 100644 src/commands/tasks.js create mode 100644 src/commands/users.js delete mode 100644 src/useragent.js delete mode 100644 test/utils/api.js diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..218b9a0d --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,26 @@ +{ + "extends": "airbnb-base", + "rules": { + "no-underscore-dangle": [ + 0 + ], + "no-console": "off", // This is a cli app.. + "indent": 0, + "global-require":"off", + "no-return-assign": "off", + "no-param-reassign": "warn", + "no-undef": "error", + "no-trailing-spaces": "off", + "prefer-promise-reject-errors": "warn", + "max-len": [ + "warn", {"code":180} // High res display .. + ], + "no-restricted-properties": "warn", + "camelcase": "warn", + "class-methods-use-this": "off" + }, + "env": { + "node": true, + "mocha": true + } +} diff --git a/.gitignore b/.gitignore index 9ddfe457..244dc2b9 100644 --- a/.gitignore +++ b/.gitignore @@ -96,3 +96,4 @@ test/cortex/local.json .local/ dist/ +cortex-cli-docs.md \ No newline at end of file diff --git a/README.md b/README.md index bfee41a1..62e39066 100644 --- a/README.md +++ b/README.md @@ -38,11 +38,12 @@ cortex [sub-command] [options] ### Getting Started ```bash -cortex configure -Cortex URL [https://api.cortex.insights.ai]: -Account []: -Username []: -Password: ********** +cortex configure --file /personal/access/token.json --project defaultProject + +or + +cortex configure --project defaultProject +Cortex Personal Access Token: ``` Upon successful login, a config file will be saved in your home directory with your authentication token for future use. (**NOTE:** currently, you will have to re-run the configure command when your token expires). diff --git a/bin/cortex-accounts.js b/bin/cortex-accounts.js deleted file mode 100755 index f64c743f..00000000 --- a/bin/cortex-accounts.js +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - CreateGroupCommand, - AddMembersToGroupCommand, - ListGroupsCommand, - DescribeGroupCommand, - DeleteGroupCommand, - RemoveMembersFromGroupCommand, - RegisterResourceCommand, - GrantGroupAccessToResourceCommand, -} = require('../src/commands/accounts'); - -program.description('Work with Cortex Accounts'); - -// Create Group -program - .command('create-groups ') - .description('Create a group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--description [description]', 'Group description') - .action(withCompatibilityCheck((groupName, options) => { - try { - new CreateGroupCommand(program).execute(groupName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Add Members to Group -program - .command('add-members-groups [members...]') - .description('Add members to group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((groupName, members, options) => { - try { - new AddMembersToGroupCommand(program).execute(groupName, members, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Groups -program - .command('list-groups') - .description('List groups') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((options) => { - try { - new ListGroupsCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Group -program - .command('describe-groups ') - .description('Describe a group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((groupName, options) => { - try { - new DescribeGroupCommand(program).execute(groupName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete Group -program - .command('delete-groups ') - .description('Delete a group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((groupName, options) => { - try { - new DeleteGroupCommand(program).execute(groupName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Remove Members From Group -program - .command('remove-members-groups [members...]') - .description('Remove members from a group') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((groupName, members, options) => { - try { - new RemoveMembersFromGroupCommand(program).execute(groupName, members, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Register Resource -program - .command('register-resources ') - .description('Register a resource') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--description [description]', 'Resource description') - .option('--access [access]', 'Access level of resource [read/write/admin/execute]') - .action(withCompatibilityCheck((resourceName, options) => { - try { - new RegisterResourceCommand(program).execute(resourceName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Grant Group Access To Resource -program - .command('grant-group-access-resources ') - .description('Grant group access to a resource') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((resourceId, groupName, options) => { - try { - new GrantGroupAccessToResourceCommand(program).execute(resourceId, groupName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); \ No newline at end of file diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 9685fb86..c1f7d937 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -44,13 +44,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -58,17 +58,18 @@ program // Describe Action program .command('describe ') + .alias('get') .description('Describe an action') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('-d, --download', 'Download code binary in response') .action(withCompatibilityCheck((actionName, options) => { try { new DescribeActionCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -80,13 +81,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') .action(withCompatibilityCheck((actionName, options) => { try { new DeleteActionCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -96,14 +97,14 @@ program .command('logs ') .description('Get logs for an action') .option('--no-compat', 'Ignore API compatibility checks') - .option( '--json', 'Return raw JSON response') + .option('--json', 'Return raw JSON response') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((actionName, options) => { try { new GetLogsCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -119,15 +120,15 @@ program .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--actionType [actionType]', 'Type of action') .option('--path [path]', 'Path to the daemon service url being invoked', '') - .option('--method [method]', 'HTTP method') // GET, POST ... + .option('--method [method]', 'HTTP method') // GET, POST ... .action(withCompatibilityCheck((actionName, options) => { try { new InvokeActionCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -135,20 +136,18 @@ program // Deploy Action program .command('deploy ') + .alias('save') .description('Deploy an action') .option('--no-compat', 'Ignore API compatibility checks') - .option('--kind [kind]', '[Deprecated] Action runtime kind') // python:3, python:2, nodejs:default - .option('--code [code]', '[Deprecated] The code file or code archive to deploy') .option('--docker [image]', 'Docker image to use as the runner') - .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') - .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') .option('--ttl [ttl]', 'Daemon time to live') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--actionType [actionType]', 'Type of action') - .option('--port [port]', 'Docker port') //'9091' + .option('--port [port]', 'Docker port') // '9091' .option('--environment [environment]', 'Environment') - .option('--cmd [cmd]', 'Command to be executed') //'["--daemon"]' + .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('--scaleCount [count]', 'Scale count', 'Scale count, only used for daemon action types') @@ -165,8 +164,7 @@ program // } new DeployActionCommand(program).execute(actionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -178,12 +176,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, taskId, options) => { try { new TaskLogsActionCommand(program).execute(jobId, taskId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -195,12 +193,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, taskId, options) => { try { new TaskCancelActionCommand(program).execute(jobId, taskId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -212,12 +210,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, taskId, options) => { try { new TaskStatusActionCommand(program).execute(jobId, taskId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -229,13 +227,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' + - ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') + .option('--project [project]', 'The project to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' + + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') .action(withCompatibilityCheck((jobId, options) => { try { new JobTaskListActionCommand(program).execute(jobId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -247,12 +245,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((jobId, options) => { try { new TaskStatsActionCommand(program).execute(jobId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 8c89edfa..75edb93e 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -28,25 +28,18 @@ const { InvokeAgentServiceCommand, GetActivationCommand, ListActivationsCommand, - ListAgentInstancesCommand, ListSnapshotInstancesCommand, - CreateAgentInstanceCommand, - GetAgentInstanceCommand, - DeleteAgentInstanceCommand, - StopAgentInstanceCommand, ListTriggersCommand, ListServicesCommand, ListAgentSnapshotsCommand, DescribeAgentSnapshotCommand, - CreateAgentSnapshotCommand + CreateAgentSnapshotCommand, } = require('../src/commands/agents'); const { ListTaskByActivation, } = require('../src/commands/actions'); -const { printError } = require('../src/commands/utils'); - program.description('Work with Cortex Agents'); // Save Agent @@ -56,12 +49,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') .action(withCompatibilityCheck((agentDefinition, options) => { try { new SaveAgentCommand(program).execute(agentDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -70,16 +63,17 @@ program program .command('list') .description('List agent definitions') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -88,16 +82,17 @@ program program .command('describe ') .description('Describe agent') + .alias('get') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--versions', 'To get list of versions of an agent') .action(withCompatibilityCheck((agentName, options) => { try { new DescribeAgentCommand(program).execute(agentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -109,34 +104,17 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((agentName, serviceName, options) => { try { new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -//Get Agent Service Activation -program - .command('get-service-activation ') - .description('Get service activation') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((activationId, options) => { - try { - printError('DEPRECATED. This command will be removed in a future version. Use get-activation instead.', options, false); - new GetActivationCommand(program).execute(activationId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); program .command('get-activation ') @@ -144,12 +122,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { new GetActivationCommand(program).execute(activationId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -160,14 +138,14 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((instanceId, options) => { try { new ListActivationsCommand(program).execute(instanceId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -179,15 +157,14 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((agentName, options) => { try { new ListServicesCommand(program).execute(agentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); - } })); @@ -197,186 +174,100 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -//List snapshot instances +// List snapshot instances program .command('list-snapshot-instances ') .description('List snapshot instances ') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((snapshotId, options) => { try { new ListSnapshotInstancesCommand(program).execute(snapshotId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); program .command('describe-snapshot ') + .alias('get-snapshot') .description('Describe agent snapshot') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .action(withCompatibilityCheck((snapshotId, options) => { try { new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -//Create Agent Snapshot +// Create Agent Snapshot program .command('create-snapshot [snapshotDefinition]') .description('Create an agent snapshot') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--agentName [name[:version]]', 'The name of the agent to snapshot') .option('--title [title]', 'A descriptive title for the snapshot') .action(withCompatibilityCheck((snapshotDefinition, options) => { try { new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); - -//List agent instances -program - .command('list-instances ') - .description('List agent instances ') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((agentName, options) => { - try { - new ListAgentInstancesCommand(program).execute(agentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -//Create agent instances -program - .command('create-instance [instanceDefinition]') - .description('Create agent instance') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--environmentName [environmentName]', 'The environment to use') - .option('--profile [profile]', 'The profile to use') - .option('--snapshotId [snapshotId]', 'The name of the agent to snapshot') - .action(withCompatibilityCheck((instanceDefinition, options) => { - try { - new CreateAgentInstanceCommand(program).execute(instanceDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -//Get agent instance -program - .command('get-instance ') - .description('Get agent instance') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .action(withCompatibilityCheck((instanceId, options) => { - try { - new GetAgentInstanceCommand(program).execute(instanceId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -//Delete agent instance -program - .command('delete-instance ') - .description('Delete agent instance') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((instanceId, options) => { - try { - new DeleteAgentInstanceCommand(program).execute(instanceId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -//Stop agent instance -program - .command('stop-instance ') - .description('Stop agent instance') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .action(withCompatibilityCheck((instanceId, options) => { - try { - new StopAgentInstanceCommand(program).execute(instanceId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -//List triggers +// List triggers program .command('list-triggers') .description('List of triggers for the current tenant') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((options) => { try { new ListTriggersCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -//List Tasks +// List Tasks program .command('list-tasks ') .description('List tasks associated with a given activationId') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((activationId, options) => { try { new ListTaskByActivation(program).execute(activationId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 22ffecaa..32c840e9 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,58 +15,72 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - +const chalk = require('chalk'); const program = require('../src/commander'); const { ConfigureCommand, DescribeProfileCommand, ListProfilesCommand, - SetProfileCommand + SetProfileCommand, + GetAccessToken, } = require('../src/commands/configure'); program - .option('--url [url]', 'Cortex URL') - .option('--account [account]', 'Account') - .option('--username [username]', 'Username') - .option('--password [password]', 'Password') + .option('--file [file]', 'Personal access config file location') .option('--profile [profile]', 'The profile to configure') + .option('--project [project]', 'The default project to use') .description('Configure the Cortex CLI'); -let cmd = undefined; -program.command('auth', { isDefault: true}) +program.command('create', { isDefault: true }) .description('Authenticate to cortex (default command)') - .option('--url [url]', 'Cortex URL') - .option('--account [account]', 'Account') - .option('--username [username]', 'Username') - .option('--password [password]', 'Password') + .option('--file [file]', 'Personal access config file location') .option('--profile [profile]', 'The profile to configure') - .action( (options) => { - new ConfigureCommand(program).execute({profile: program.profile, color: program.color}); + .option('--project [project]', 'The default project') + .action(() => { + new ConfigureCommand(program).execute({ profile: program.profile, color: program.color }); }); program + .command('token') + .description('Create access token') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .action(() => { + try { + new GetAccessToken(program).execute({ + profile: program.profile, + project: program.project, + color: program.color, + }); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + +program + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on'); program .command('list') .description('List configured profiles') - .action((options) => { - new ListProfilesCommand(program).execute({color: program.color}); + .action(() => { + new ListProfilesCommand(program).execute({ color: program.color }); }); program .command('describe ') .description('Describe a configured profile') - .action((profileName, options) => { - new DescribeProfileCommand(program).execute({profile: profileName, color: program.color}); + .action((profileName) => { + new DescribeProfileCommand(program).execute({ profile: profileName, color: program.color }); }); program .command('set-profile ') .description('Sets the current profile.') - .action((profileName, options) => { - new SetProfileCommand(program).execute(profileName, {color: program.color}); + .action((profileName) => { + new SetProfileCommand(program).execute(profileName, { color: program.color }); }); -program.parse(process.argv); \ No newline at end of file +program.parse(process.argv); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index b88726a2..61641dbb 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -28,7 +28,6 @@ const { DescribeConnectionCommand, TestConnectionCommand, ListConnectionsTypes, - GenerateConnectionCommand } = require('../src/commands/connections'); program.description('Work with Cortex Connections'); @@ -41,13 +40,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -59,12 +58,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') .action(withCompatibilityCheck((connDefinition, options) => { try { new SaveConnectionCommand(program).execute(connDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -76,13 +75,14 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--json', 'Pretty print JSON results') + .option('--project [project]', 'The project to use') .option('--query [query]', 'The query to use, "select 1" is default') .option('--file [file]', 'Location of file containing query string') .action(withCompatibilityCheck((connName, options) => { try { new QueryConnectionCommand(program).execute(connName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -90,16 +90,17 @@ program // Describe Connection program .command('describe ') + .alias('get') .description('Describe connection') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((connectionName, options) => { try { new DescribeConnectionCommand(program).execute(connectionName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -111,12 +112,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') .action(withCompatibilityCheck((connDefinition, options) => { try { new TestConnectionCommand(program).execute(connDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -128,30 +129,15 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListConnectionsTypes(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); - -// Generate Connections -program - .command('generate') - .description('Generates the structure of the connection payload') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new GenerateConnectionCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - }); - program.parse(process.argv); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index f4a39bbd..a3f5d7ef 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -25,7 +25,7 @@ const { ListContent, UploadContent, DeleteContent, - DownloadContent + DownloadContent, } = require('../src/commands/content'); program.description('Work with Cortex Contents'); @@ -38,13 +38,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListContent(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -59,14 +59,14 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--secure', 'Uploads the content securely to the Cortex Vault. \n\t\t\t\tUse this option for keytab files or content that contains sensitive information that is required during Runtime. \n\t\t\t\tTake note of the contentKey you give to this content for future reference.') - .option('--content-type [MIME type]', 'Sets the \`Content-Type\` or MIME type of the content ( default: application/octet-stream )') + .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) .action(withCompatibilityCheck((contentKey, filePath, options) => { try { new UploadContent(program).execute(contentKey, filePath, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -78,11 +78,11 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((contentKey, options) => { try { new DeleteContent(program).execute(contentKey, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -95,12 +95,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--secure', 'Downloads the content securely from the Cortex Vault.') .action(withCompatibilityCheck((contentKey, options) => { try { new DownloadContent(program).execute(contentKey, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-datasets.js b/bin/cortex-datasets.js index ec45bf15..01b7f630 100644 --- a/bin/cortex-datasets.js +++ b/bin/cortex-datasets.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -27,7 +27,6 @@ const { DescribeDatasetCommand, GetDataframeCommand, StreamDatasetCommand, - GenerateDatasetCommand } = require('../src/commands/datasets'); program.description('Work with Cortex Connections'); @@ -40,13 +39,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using detailed JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListDatasets(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -58,12 +57,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for dataset file definition format') .action(withCompatibilityCheck((datasetDef, options) => { try { new SaveDatasetsCommand(program).execute(datasetDef, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -71,16 +70,17 @@ program // Describe Dataset program .command('describe ') + .alias('get') .description('Describe dataset') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((datasetName, options) => { try { new DescribeDatasetCommand(program).execute(datasetName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -92,11 +92,11 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((datasetName, options) => { try { new GetDataframeCommand(program).execute(datasetName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -108,27 +108,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((datasetName, options) => { try { new StreamDatasetCommand(program).execute(datasetName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -program - .command('generate') - .description('Generates the structure and top level build script for a dataset') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use', 'default') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new GenerateDatasetCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - }); - program.parse(process.argv); diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js new file mode 100755 index 00000000..95f9e9b7 --- /dev/null +++ b/bin/cortex-deploy.js @@ -0,0 +1,48 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + DeploySnapshotCommand, +} = require('../src/commands/deploy'); + +program.description('Export Cortex artifacts for deployment'); + +// Export Agent Snapshot. Provide snapshotIds in quotes separated by space like "snapshotId1 snapshotId2". This is to support multiple agents in one deployment manifest file. +program + .command('snapshots ') + .description('Export Agent(s) snapshots(s) for deployment. Provide snapshotIds separated by space, as <"snapshotId1 snapshotId2 ...">') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for snapshot export format') + .option('-f, --force', 'Force delete existing exported files') + .action(withCompatibilityCheck((skillDefinition, options) => { + try { + new DeploySnapshotCommand(program).execute(skillDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 9fc67de4..bff484c5 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -34,13 +34,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((options) => { try { new DockerLoginCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -program.parse(process.argv); \ No newline at end of file +program.parse(process.argv); diff --git a/bin/cortex-environments.js b/bin/cortex-environments.js deleted file mode 100755 index ae9f69ec..00000000 --- a/bin/cortex-environments.js +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListEnvironments, - SaveEnvironmentCommand, - PromoteEnvironmentCommand, - DescribeEnvironmentCommand, - ListInstancesCommand -} = require('../src/commands/environments'); - -program.description('Work with Cortex Environments'); - - -// List Environments -program - .command('list') - .description('List environments') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((options) => { - try { - new ListEnvironments(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Save Environement -program - .command('save ') - .description('Create an environment. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('-y, --yaml', 'Use YAML for environment definition format') - .action(withCompatibilityCheck((envDefinition, options) => { - try { - new SaveEnvironmentCommand(program).execute(envDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Promote Environment -program - .command('promote [promotionDefinition]') - .description('Promote a snapshot to an environment. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('-y, --yaml', 'Use YAML for environment definition format') - .option('--snapshotId [snapshotId]', 'SnapshotID to promote') - .option('--environmentName [environmentName]', 'Environment to promote snapshotId to') - .action(withCompatibilityCheck((promotionDefinition, options) => { - try { - new PromoteEnvironmentCommand(program).execute(promotionDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Environment -program - .command('describe ') - .description('Describe environment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((environmentName, options) => { - try { - new DescribeEnvironmentCommand(program).execute(environmentName, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - - - -// List Instances in Environment -program - .command('list-instances [environmentName]') - .description('List instances in environment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((environmentName, options) => { - try { - new ListInstancesCommand(program).execute(environmentName || 'cortex/default', options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 1c8c9168..d5c1cd91 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -27,6 +27,7 @@ const { ListRuns, DescribeRunCommand, DeleteRunCommand, + DeleteExperimentCommand, DownloadArtifactCommand, } = require('../src/commands/experiments'); @@ -39,6 +40,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') @@ -48,8 +50,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListExperiments(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -61,12 +62,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((experimentName, options) => { try { new DescribeExperimentCommand(program).execute(experimentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -78,11 +79,11 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DeleteExperimentCommand(program).execute(experimentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -94,6 +95,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') @@ -103,8 +105,7 @@ program .action(withCompatibilityCheck((experimentName, options) => { try { new ListRuns(program).execute(experimentName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -116,12 +117,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DescribeRunCommand(program).execute(experimentName, runId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -133,11 +134,11 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DeleteRunCommand(program).execute(experimentName, runId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -149,11 +150,11 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { try { new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-graph.js b/bin/cortex-graph.js index 7b9fe947..6d76c7cb 100755 --- a/bin/cortex-graph.js +++ b/bin/cortex-graph.js @@ -37,6 +37,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use as the event query.') @@ -46,8 +47,7 @@ program .action(withCompatibilityCheck((options) => { try { new FindEventsCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -59,10 +59,11 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--tracking', 'Enable tracking event mode.') .option('--transform [templates]', 'Apply transform templates to the input JSON records.') .option('--dry-run', "Simulate the publish (but don't actually send events to the server).") - .option('--auto', "Enable auto attribute creation using each entity property as an attribute value.") + .option('--auto', 'Enable auto attribute creation using each entity property as an attribute value.') .action(withCompatibilityCheck(async (file, options) => { await new PublishEventsCommand(program).execute(file, options) .catch(err => console.error(chalk.red(err.message))); @@ -75,11 +76,11 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck(async (entityId, options) => { try { new GetEntityCommand(program).execute(entityId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -91,12 +92,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .action(withCompatibilityCheck(async (query, options) => { try { new QueryGraphCommand(program).execute(query, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-jobs.js b/bin/cortex-jobs.js deleted file mode 100755 index 5a9d59f9..00000000 --- a/bin/cortex-jobs.js +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env node - -/* -* Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. -* -* Licensed under the Apache License, Version 2.0 (the “License”); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an “AS IS” BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListJobs, - JobStatus, - DescribeJob, - SaveJob -} = require('../src/commands/jobs'); - -program.description('Work with Cortex v2 Jobs. Use Cortex Actions for v3 jobs.'); - - -// List Jobs -program - .command('list') - .description('List v2 job definitions') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((options) => { - try { - new ListJobs(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Job -program - .command('describe ') - .description('Describe v2 job definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .action(withCompatibilityCheck((jobDefinition, options) => { - try { - new DescribeJob(program).execute(jobDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Job Status -program - .command('status ') - .description('Get v2 job status') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .action(withCompatibilityCheck((jobDefinition, options) => { - try { - new JobStatus(program).execute(jobDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - - -// Save Job -program - .command('save ') - .description('Save a v2 job definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('-y, --yaml', 'Use YAML for job definition format') - .option('--push-docker', 'Push Docker image to the Cortex registry.') - .action(withCompatibilityCheck((jobDefinition, options) => { - try { - new SaveJob(program).execute(jobDefinition, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js index af79735e..16204e29 100755 --- a/bin/cortex-profiles.js +++ b/bin/cortex-profiles.js @@ -42,12 +42,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The configuration profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for profile schema format') .action(withCompatibilityCheck((profileSchema, options) => { try { new SaveProfileSchemaCommand(program).execute(profileSchema, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -59,6 +59,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use as the event query.') @@ -68,8 +69,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListProfileSchemasCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -81,12 +81,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((schemaName, options) => { try { new DescribeProfileSchemaCommand(program).execute(schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -98,11 +98,11 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((schemaName, options) => { try { new DeleteProfileSchemaCommand(program).execute(schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -114,6 +114,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use as the event query.') @@ -123,8 +124,7 @@ program .action(withCompatibilityCheck((options) => { try { new ListProfilesCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -136,6 +136,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--before [before]', 'Filter versions before a sepcific date.') @@ -144,8 +145,7 @@ program .action(withCompatibilityCheck((profileId, schemaName, options) => { try { new ListProfileVersionsCommand(program).execute(profileId, schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -161,12 +161,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((profileId, schemaName, options) => { try { new DescribeProfileCommand(program).execute(profileId, schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -178,11 +178,11 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((profileId, schemaName, options) => { try { new DeleteProfileCommand(program).execute(profileId, schemaName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -194,6 +194,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--filter [filter]', 'A Mongo style filter to use as the event query.') .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') .option('--limit [limit]', 'Limit the number of events returned.') @@ -201,8 +202,7 @@ program .action(withCompatibilityCheck((schemaName, profileId, options) => { try { new RebuildProfilesCommand(program).execute(schemaName, profileId, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-project.js b/bin/cortex-project.js deleted file mode 100644 index 46091f97..00000000 --- a/bin/cortex-project.js +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { GenerateProjectCommand } = require('../src/commands/project'); - -program.description('Work with a related collection of Cortex contributions'); - -// Generate Project -program - .command('generate') - .description('(Deprecated) Generates the structure and top level build script for a project') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { - try { - new GenerateProjectCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - }); - -program.parse(process.argv); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js new file mode 100755 index 00000000..c898fdf6 --- /dev/null +++ b/bin/cortex-projects.js @@ -0,0 +1,86 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + CreateProjectCommand, + ListProjectsCommand, + DescribeProjectCommand, +} = require('../src/commands/projects'); + +program.description('Work with Cortex Projects'); + +// Create Project +program + .command('save [projectDefinition]') + .description('Save a project definition') + .storeOptionsAsProperties(false) + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('-n, --name ', 'The project name') + .option('-t, --title [string]', 'The project title') + .option('-d, --description [string]', 'The project description') + .option('-y, --yaml', 'Use YAML for project definition format') + .action(withCompatibilityCheck((projectDefinition, options) => { + try { + new CreateProjectCommand(program).execute(projectDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Projects +program + .command('list') + .description('List project definitions') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((options) => { + try { + new ListProjectsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Get|Describe Project +program + .command('describe ') + .alias('get') + .description('Describe project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((projectName, options) => { + try { + new DescribeProjectCommand(program).execute(projectName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js new file mode 100755 index 00000000..5e34847d --- /dev/null +++ b/bin/cortex-roles.js @@ -0,0 +1,126 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + RoleAssignCommand, + RoleCreateCommand, + RoleDeleteCommand, + RoleGrantCommand, + RoleDescribeCommand, + RoleListCommand, +} = require('../src/commands/roles'); + +program.description('Work with Cortex Roles'); + +program.command('list') + .description('List roles by project and user') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project', 'Project to list roles for') + .action(withCompatibilityCheck((options) => { + try { + new RoleListCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('describe ') + .alias('get') + .description('Describe role grants and users') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--users', 'List users associated with role') + .option('--no-grants', 'Ignore grants associated with role') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleDescribeCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +program.command('delete ') + .description('Delete a role and remove grants/assignments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleDeleteCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('create ') + .description('Create a role with the given grant') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--project ', 'Grant project') + .requiredOption('--resource ', 'Grant resource') + .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleCreateCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('grant ') + .description('Manage grants on an existing role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--project ', 'Grant project') + .requiredOption('--resource ', 'Grant resource') + .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .option('--delete', 'Remove grant from role') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleGrantCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('assign ') + .description('Manage a list of user assignments on a role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--users ', 'Users to add/remove on role') + .option('--delete', 'Unassign users from role') + .action(withCompatibilityCheck((role, options) => { + try { + new RoleAssignCommand(program).execute(role, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-variables.js b/bin/cortex-secrets.js similarity index 88% rename from bin/cortex-variables.js rename to bin/cortex-secrets.js index edb0e44d..8f2443ad 100755 --- a/bin/cortex-variables.js +++ b/bin/cortex-secrets.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -27,7 +27,7 @@ const { WriteVariableCommand, } = require('../src/commands/variables'); -program.description('Work with Cortex Secure Variables'); +program.description('Work with Cortex Secrets'); // List Secure Variable Keys program @@ -37,11 +37,11 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((options) => { try { new ListVariablesCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -54,11 +54,11 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((keyName, options) => { try { new ReadVariableCommand(program).execute(keyName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -72,13 +72,13 @@ program .option('--data [data]', 'JSON value to save') .option('--data-file [dataFile]', 'A file containing either JSON or YAML formatted value to save') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((keyName, value, options) => { try { new WriteVariableCommand(program).execute(keyName, value, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -program.parse(process.argv); \ No newline at end of file +program.parse(process.argv); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index efbcd898..12ef898b 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ const { SaveSkillCommand, ListSkillsCommand, DescribeSkillCommand, - GenerateSkillCommand } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); @@ -37,12 +36,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for skill definition format') .action(withCompatibilityCheck((skillDefinition, options) => { try { new SaveSkillCommand(program).execute(skillDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -54,13 +53,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((options) => { try { new ListSkillsCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -68,31 +67,19 @@ program // Describe Skill program .command('describe ') + .alias('get') .description('Describe skill') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((skillName, options) => { try { new DescribeSkillCommand(program).execute(skillName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); -program - .command('generate') - .description('(Deprecated) Generates the structure and top level build script for a skill') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new GenerateSkillCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - }); - program.parse(process.argv); diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js deleted file mode 100755 index 979b24e5..00000000 --- a/bin/cortex-tasks.js +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env node - -/* -* Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. -* -* Licensed under the Apache License, Version 2.0 (the “License”); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an “AS IS” BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListTasks, - TaskLogs, - CancelTask, - DescribeTask -} = require('../src/commands/tasks'); - -program.description('Work with Cortex v2 tasks. Use Cortex Actions for v3 tasks.'); - - -// List Tasks -program - .command('list ') - .description('List task definitions within a v2 job definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, options) => { - try { - new ListTasks(program).execute(jobId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Tasks logs -program - .command('logs ') - .description('Get v2 task logs') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new TaskLogs(program).execute(jobId, taskId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Cancel task -program - .command('cancel ') - .description('Cancel a v2 task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('-m, --message ', 'Cancellation message') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new CancelTask(program).execute(jobId, taskId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe task -program - .command('describe ') - .description('Describe a v2 task definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new DescribeTask(program).execute(jobId, taskId, options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index a4026824..cafd8e57 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -24,11 +24,11 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { SaveTypeCommand, ListTypesCommand, - DescribeTypeCommand + DescribeTypeCommand, } = require('../src/commands/types'); program.description('Work with Cortex Types'); - + // Save Type program .command('save ') @@ -36,12 +36,12 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for type definition format') .action(withCompatibilityCheck((typeDefinition, options) => { try { new SaveTypeCommand(program).execute(typeDefinition, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -53,13 +53,13 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); @@ -67,16 +67,17 @@ program // Describe Type program .command('describe ') + .alias('get') .description('Describe type') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((typeName, options) => { try { new DescribeTypeCommand(program).execute(typeName, options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } })); diff --git a/bin/cortex-users.js b/bin/cortex-users.js new file mode 100755 index 00000000..a0b83e3d --- /dev/null +++ b/bin/cortex-users.js @@ -0,0 +1,66 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + UserDescribeCommand, + UserGrantCommand, +} = require('../src/commands/users'); + +program.description('Work with Cortex User'); + +program.command('describe') + .alias('get') + .description('Describe a users grants and roles') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--user [user]', 'The user to describe, self for default') + .option('--roles', 'Include roles for user') + .option('--no-grants', 'Ignore grants for user') + .action(withCompatibilityCheck((options) => { + try { + new UserDescribeCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +program.command('grant ') + .description('Manage user grants') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .requiredOption('--project ', 'Grant project') + .requiredOption('--resource ', 'Grant resource') + .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .option('--profile [profile]', 'The profile to use') + .option('--delete', 'Remove grant from user') + .action(withCompatibilityCheck((user, options) => { + try { + new UserGrantCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index f27ca511..c8587967 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -1,7 +1,7 @@ #!/usr/bin/env node /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -26,30 +26,26 @@ const pkg = findPackageJson(__dirname).next().value; program .version(pkg.version, '-v, --version') .description('Cortex CLI') - .command('accounts [cmd]', 'Work with Cortex Accounts') .command('actions [cmd]', 'Work with Cortex Actions') .command('agents [cmd]', 'Work with Cortex Agents') .command('configure', 'Configure the Cortex CLI') .command('connections [cmd]', 'Work with Cortex Connections') .command('content [cmd]', 'Work with Cortex Managed Content') - .command('environments [cmd]', 'Work with Cortex Environments') .command('datasets [cmd]', 'Work with Cortex Datasets') + .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('docker [cmd]', 'Work with Docker') - .command('jobs [cmd]', 'Work with Cortex v2 Jobs') - .command('project [cmd]', 'Work with a related collection of Cortex contributions') - .command('skills [cmd]', 'Work with Cortex Skills') - .command('tasks [cmd]', 'Work with Cortex v2 Tasks') - .command('types [cmd]', 'Work with Cortex Types') - .command('variables [cmd]', 'Work with Cortex Secure Variables') .command('experiments [cmd]', 'Work with Cortex Experiments') + .command('graph [cmd]', 'Work with the Cortex Graph') .command('profiles [cmd]', 'Work with Cortex Profiles') - .command('graph [cmd]', 'Work with the Cortex Graph'); - -program.parse(process.argv, { noActionHandler: function() { + .command('projects [cmd]', 'Work with Cortex Projects') + .command('roles [cmd]', 'Work with a Cortex Roles') + .command('secrets [cmd]', 'Work with Cortex Secrets') + .command('skills [cmd]', 'Work with Cortex Skills') + .command('types [cmd]', 'Work with Cortex Types') + .command('users [cmd]', 'Work with a Cortex Users'); -}}); +program.parse(process.argv, { noActionHandler: () => {} }); if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { program.outputHelp(identity); process.exit(1); } - diff --git a/generate_docs.js b/generate_docs.js new file mode 100644 index 00000000..74c35474 --- /dev/null +++ b/generate_docs.js @@ -0,0 +1,89 @@ +/** + * Opted to use pure JS versus adding handlebars as a dep, as handlebars always has vulns.. + */ +const _ = require('lodash'); +const fs = require('fs'); + +// read command args if passed +const sourcedir = _.get(process.argv,'[2]','.') +const outfile = _.get(process.argv,'[3]'); + +// use top level commands as driver +const rootJson = require(`${sourcedir}/cortex.json`) + +// replace /n/t with HTML equivs +const cleanString = (s) => s + .replace(/\n/g, '
') + .replace(/\t/g, 'nbsp;nbsp;') + .replace(//g,'>`') + +// print sub-command flags as string +const optionRow = (opts) => _.join( + _.sortBy(opts,['flags']).map( + (opt) => `\`${opt.flags}\`${ _.isEmpty(opt.defaultValue) ? '' : ` (*default:* \`${opt.defaultValue }\`)`} - ${cleanString(opt.description)}` + ), + '
' +) + +const subcmdTable = (subcmd) => `| Command | Description | Options | +| ------- | ----------- | ------- |\n` + +_.join( + _.sortBy(subcmd, ['name']).map((cmd) => `| \`${cmd.name} ${cmd.usage }\` | ${cmd.description } | ${optionRow(cmd.options)} |`), + '\n' +) + +const cmdHeading = (cmd) => ` +## ${_.capitalize(cmd.name)} +\`\`\` +cortex ${cmd.name} ${cmd.usage} +\`\`\` +${cmd.description} +`; + +const header = `--- +title: "Cortex CLI" +linkTitle: "Cortex CLI" +description: > + Provides a list of all commands available in the Cortex Command Line Interface. +--- +This reference guide provides a list of all commands available in the Cortex Command Line +Interface (Cortex CLI). See [CLI](getting-started/use-cli.md) for +help getting started using the CLI. +## Notation +The following table describes the common notation used in this reference guide. +| Notation | Description | Example | +| -------- | ----------- | ------- | +| \`< >\` | Required | \`\` denotes a required value. | +| \`[ ]\` | Optional | \`[options]\` denotes an optional value. | +## Syntax +\`\`\`cli +cortex [command] [options] +\`\`\` +## Global options +| Option | Description | +| --------- | --------- | +| \`-v\`, \`--version\` | Outputs the version number. | +| \`-h\`, \`--help\` | Outputs usage information. | +| \`--profile [profile]\` | Run the CLI using the specified profile instead of the default config. | +## General notes +* The output results for most \`list\` commands display as a table. Add the +\`--json\` option to output results as JSON. When \`--json\` is used, you can use the +\`--query\` option to [filter the results](/getting-started/use-cli.md). +* The output results for \`describe\` commands display in the format of the document +it is describing. This can include YAML, JSON, or other formats. +` + +const body = _.join( + _.sortBy(rootJson, ["name"]).map( + (cmd) =>`${cmdHeading(cmd)}\n`+ + `${subcmdTable(require(`${sourcedir}/cortex-${cmd.name}.json`))}` + ), +''); +const output = header + body +// if outfile write to file ... +if (_.isEmpty(outfile)) { + console.log(output) +} else { + fs.writeFileSync(outfile, output) +} \ No newline at end of file diff --git a/generate_docs.sh b/generate_docs.sh index 42ac3629..99b44565 100755 --- a/generate_docs.sh +++ b/generate_docs.sh @@ -1,6 +1,16 @@ #!/bin/bash export DOC=true +OUTFILE=cortex-cli-docs.md +OUTDIR=$(mktemp -d) +# generating meta from commands. +echo "Generating metadata from commands" for F in bin/*.js; do + echo -n '.' NAME=$(basename $F .js) - node $F > ${NAME}.json + node $F > "${OUTDIR}/${NAME}.json" done +# generating markdown +node generate_docs.js "${OUTDIR}" ${OUTFILE} +echo +echo "Done -> ${OUTFILE}" +rm -r ${OUTDIR} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e006ba36..4eb247f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,24 +1,32 @@ { "name": "cortex-cli", - "version": "1.1.1", + "version": "2.0.0-a.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, "requires": { - "@babel/highlight": "^7.8.3" + "@babel/highlight": "^7.10.4" } }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" }, "dependencies": { @@ -26,52 +34,37 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" } } }, - "@c12e/generator-cortex": { - "version": "0.3.30", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@c12e/generator-cortex/-/generator-cortex-0.3.30.tgz", - "integrity": "sha1-nb8HCulOvuOW62Z8+Lm6U8QoK2U=", - "requires": { - "@hapi/joi": "^17.1.0", - "debug": "^4.1.1", - "superagent": "^5.2.2", - "yeoman-generator": "^4.5.0" - } - }, "@hapi/address": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.1.tgz", - "integrity": "sha512-0oEP5UiyV4f3d6cBL8F3Z5S7iWSX39Knnl0lY8i+6gfmmIBj44JCBNtcMgwyS+5v7j3VYavNay0NFHDS+UGQcw==", + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha1-1gxcDZMOd0Vv3N4lmOdzAuKVXh0=", "requires": { "@hapi/hoek": "^9.0.0" } }, "@hapi/formula": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha1-7a3gYZ7VjI5PFk8jPNpwIR54cSg=" }, "@hapi/hoek": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", - "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" + "version": "9.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha1-bJ6vx4wVKSSPj02SsHmacStgUsY=" }, "@hapi/joi": { "version": "17.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha1-nMjX4sIhPR5GcIxiYBhLRHxmE1A=", "requires": { "@hapi/address": "^4.0.1", "@hapi/formula": "^2.0.0", @@ -82,100 +75,113 @@ }, "@hapi/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha1-gFtA1NvsBPwRanMIlJTgDwc96N8=" }, "@hapi/topo": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha1-wZr4V3+jk6BunHe2CZWvlZvnIec=", "requires": { "@hapi/hoek": "^9.0.0" } }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "@npmcli/ci-detect": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", + "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==" + }, + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha1-3hAwcNrA9IzknPZpPCOvWcD3BGQ=", "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" + } } }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + "@panva/asn1.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" }, - "@npmcli/ci-detect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.2.0.tgz", - "integrity": "sha512-JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA==" + "@sindresorhus/is": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz", + "integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==" + }, + "@szmarczak/http-timer": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", + "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", + "requires": { + "defer-to-connect": "^2.0.0" + } }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + "@types/cacheable-request": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", + "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + "@types/http-cache-semantics": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", + "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "@types/keyv": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", + "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", "requires": { - "@types/events": "*", - "@types/minimatch": "*", "@types/node": "*" } }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" - }, "@types/node": { - "version": "13.7.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.6.tgz", - "integrity": "sha512-eyK7MWD0R1HqVTp+PtwRgFeIsemzuj4gBFSQxfPHY5iMjS7474e5wq+VFgTcdpyHeNxyKSaetYAjdMLJlKoWqA==" + "version": "14.14.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.0.tgz", + "integrity": "sha512-BfbIHP9IapdupGhq/hc+jT5dyiBVZ2DdeC5WwJWQWDb0GijQlzUFAeIQn/2GtvZcd2HVUU7An8felIICFTC2qg==" }, - "@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==" + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + } }, "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "requires": { - "es6-promisify": "^5.0.0" - } - }, "agentkeepalive": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.2.tgz", - "integrity": "sha512-waNHE7tQBBn+2qXucI8HY0o2Y0OBPWldWOWsZwY71JcCm4SvrPnWdceFfB5NIXSqE8Ewq6VR/Qt5b1i69P6KCQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", + "integrity": "sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -183,18 +189,19 @@ } }, "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "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", @@ -202,67 +209,37 @@ "uri-js": "^4.2.2" } }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "ansi-colors": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=", "dev": true }, "ansi-escapes": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "dev": true }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, "requires": { "color-convert": "^1.9.0" } }, "anymatch": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -271,205 +248,64 @@ }, "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "requires": { "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, "requires": { - "array-uniq": "^1.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, "array.prototype.flat": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha1-DegrQmsDGNv9uUAInjiwQ9N/bHs=", "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" } }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "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=" - }, "assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-types": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", - "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" - }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "atob": { - "version": "2.1.2", - "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=" - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", "dev": true }, - "binaryextensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.2.0.tgz", - "integrity": "sha512-bHhs98rj/7i/RZpCSJ3uk55pLXOItjIrh2sRQZSM6OoktScX+LxJzvlU+FELp9j3TdcddTmmYArLSGptCTwjuw==" - }, "boxen": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha1-5BG2I1fW1tNlh8isPV2XTaoHDmQ=", "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", @@ -481,16 +317,81 @@ "widest-line": "^3.1.0" }, "dependencies": { + "ansi-align": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -498,110 +399,106 @@ }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" } }, "type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=" + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", + "requires": { + "string-width": "^4.0.0" + } } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", "dev": true }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, "builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, "cacache": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz", - "integrity": "sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==", + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", "requires": { + "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "glob": "^7.1.4", "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", + "lru-cache": "^6.0.0", "minipass": "^3.1.1", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", "mkdirp": "^1.0.3", - "move-file": "^2.0.0", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", @@ -610,42 +507,50 @@ "unique-filename": "^1.1.1" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "requires": { + "yallist": "^4.0.0" + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } } } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "cacheable-lookup": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz", + "integrity": "sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==" + }, + "cacheable-request": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", + "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -657,20 +562,10 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, - "capture-stack-trace": { - "version": "1.0.1", - "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=" - }, "chai": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.2.0.tgz", + "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -683,53 +578,52 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", "dev": true, "requires": { "check-error": "^1.0.2" } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "dependencies": { "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { "has-flag": "^4.0.0" } @@ -739,7 +633,8 @@ "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true }, "check-error": { "version": "1.0.2", @@ -749,8 +644,8 @@ }, "chokidar": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha1-EsBxRmjFWAD2WeJi1JYql/r1VKY=", "dev": true, "requires": { "anymatch": "~3.1.1", @@ -765,8 +660,8 @@ "dependencies": { "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", "dev": true, "requires": { "fill-range": "^7.0.1" @@ -774,8 +669,8 @@ }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -783,8 +678,8 @@ }, "glob-parent": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -792,14 +687,14 @@ }, "is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", "dev": true }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", "dev": true, "requires": { "is-number": "^7.0.0" @@ -809,44 +704,24 @@ }, "chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" }, "clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" }, "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, "requires": { "restore-cursor": "^2.0.0" } @@ -862,76 +737,15 @@ "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" + "mimic-response": "^1.0.0" } }, "co": { @@ -947,19 +761,11 @@ "keypress": "~0.2.1" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -967,7 +773,8 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "colors": { "version": "1.0.3", @@ -983,52 +790,51 @@ } }, "commander": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.0.0.tgz", - "integrity": "sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==" }, "component-emitter": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, "cookiejar": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha1-3YojVTB1L5iPmghE8/xYnjERElw=", + "dev": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "cross-fetch": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", + "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", "requires": { - "capture-stack-trace": "^1.0.0" + "node-fetch": "2.6.1" } }, "cross-spawn": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -1039,66 +845,25 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true } } }, - "csv": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz", - "integrity": "sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==", - "requires": { - "csv-generate": "^3.2.4", - "csv-parse": "^4.8.8", - "csv-stringify": "^5.3.6", - "stream-transform": "^2.0.1" - } - }, - "csv-generate": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.2.4.tgz", - "integrity": "sha512-qNM9eqlxd53TWJeGtY1IQPj90b563Zx49eZs8e0uMyEvPgvNVmX1uZDtdzAcflB3PniuH9creAzcFOdyJ9YGvA==" - }, - "csv-parse": { - "version": "4.8.8", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.8.8.tgz", - "integrity": "sha512-Kv3Ilz2GV58dOoHBXRCTF8ijxlLjl80bG3d67XPI6DNqffb3AnbPbKr/WvCUMJq5V0AZYi6sukOaOQAVpfuVbg==" - }, - "csv-stringify": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.6.tgz", - "integrity": "sha512-kPcRbMvo5NLLD71TAqW5K+g9kbM2HpIZJLAzm73Du8U+5TXmDp9YtXKCBLyxEh0q3Jbg8QhNFBz3b5VJzjZ/jw==" - }, - "dargs": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz", - "integrity": "sha512-5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-uri-to-buffer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", - "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" - }, "debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + } } }, "decamelize": { @@ -1106,25 +871,30 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } }, "deep-eql": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", "dev": true, "requires": { "type-detect": "^4.0.0" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -1145,68 +915,19 @@ } } }, + "defer-to-connect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", + "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==" + }, "define-properties": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", "requires": { "object-keys": "^1.0.12" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "degenerator": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/degenerator/-/degenerator-1.0.4.tgz", - "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", - "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } - } - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1218,17 +939,10 @@ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "requires": { - "path-type": "^3.0.0" - } + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true }, "doctrine": { "version": "3.0.0", @@ -1244,67 +958,40 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, - "duplexer3": { - "version": "0.1.4", - "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=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "editions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.0.tgz", - "integrity": "sha512-jeXYwHPKbitU1l14dWlsl5Nm+b1Hsm7VX73BsrQ4RVwEcAQQIPFHTZAbVtuIGxZBrpdT2FXd8lbtrNBrzZxIsA==", - "requires": { - "errlop": "^2.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" + "emitter-component": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz", + "integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" }, "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "optional": true, "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", "requires": { "once": "^1.4.0" } @@ -1314,77 +1001,53 @@ "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" }, - "errlop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.0.0.tgz", - "integrity": "sha512-z00WIrQhtOMUnjdTG0O4f6hMG64EVccVDBy2WwgjcF8S4UB1exGYuc2OFwmdQmsJwLQVEIHWHPCz/omXXgAZHw==" - }, - "error": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", - "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", - "requires": { - "string-template": "~0.2.1" - } - }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", - "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "version": "1.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "^4.0.3" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "version": "1.11.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-1.11.1.tgz", + "integrity": "sha1-xIX/jWtM24nif0qFbpHxGEAcpRA=", "requires": { "esprima": "^3.1.3", "estraverse": "^4.2.0", @@ -1400,72 +1063,56 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "optional": true } } }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", + "ajv": "^6.9.1", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob": "^7.1.2", + "globals": "^11.7.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.14", + "lodash": "^4.17.11", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", "progress": "^2.0.0", "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "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==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -1477,250 +1124,220 @@ "supports-color": "^5.3.0" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==" + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { - "restore-cursor": "^3.1.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, "run-async": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "dev": true, "requires": { "is-promise": "^2.1.0" } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, "requires": { "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" }, "dependencies": { "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" } } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } + "ansi-regex": "^3.0.0" } }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "type-fest": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, + "eslint-config-airbnb-base": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz", + "integrity": "sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==", + "dev": true, + "requires": { + "eslint-restricted-globals": "^0.1.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, + "eslint-restricted-globals": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", + "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=", + "dev": true + }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -1737,67 +1354,75 @@ } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", "dev": true, "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" }, "esquery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", - "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { - "estraverse": "^5.0.0" + "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", - "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" }, "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "event-stream": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", "requires": { "duplexer": "^0.1.1", "from": "^0.1.7", @@ -1806,73 +1431,87 @@ "split": "^1.0.1", "stream-combiner": "^0.2.2", "through": "^2.3.8" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "map-stream": { + "version": "0.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "requires": { - "ms": "2.0.0" + "duplexer": "~0.1.1", + "through": "~2.3.4" } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + } + } + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "requires": { - "is-descriptor": "^0.1.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { - "is-extendable": "^0.1.0" + "mimic-fn": "^2.1.0" } }, - "ms": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "requires": { - "is-plain-object": "^2.0.4" + "isexe": "^2.0.0" } } } @@ -1881,98 +1520,29 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "extract-files": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -1981,13 +1551,15 @@ }, "fast-safe-stringify": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha1-EkqohYmSYfaK7bQqfAgN6dpgh0M=", + "dev": true }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } @@ -2001,57 +1573,24 @@ "flat-cache": "^2.0.1" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "find-package-json": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "requires": { "locate-path": "^3.0.0" } }, - "first-chunk-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", - "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", - "requires": { - "readable-stream": "^2.0.2" - } - }, "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-4.1.1.tgz", + "integrity": "sha1-o5IFnMOCiB/5hkL12k3eCpWfMJs=", "dev": true, "requires": { "is-buffer": "~2.0.3" @@ -2059,8 +1598,8 @@ "dependencies": { "is-buffer": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=", "dev": true } } @@ -2093,16 +1632,6 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, - "for-in": { - "version": "1.0.2", - "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=" - }, "form-data": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", @@ -2114,17 +1643,10 @@ } }, "formidable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", - "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha1-cPt8oCkO5v+WEJBBX0s989IIJlk=", + "dev": true }, "from": { "version": "0.1.7", @@ -2133,8 +1655,8 @@ }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", "requires": { "minipass": "^3.0.0" } @@ -2145,48 +1667,16 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "version": "2.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", "dev": true, "optional": true }, - "ftp": { - "version": "0.3.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, "function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" }, "functional-red-black-tree": { "version": "1.0.1", @@ -2194,11 +1684,6 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", @@ -2206,72 +1691,17 @@ "dev": true }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-uri": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", - "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", - "requires": { - "data-uri-to-buffer": "1", - "debug": "2", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "get-value": { - "version": "2.0.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=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "gh-got": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz", - "integrity": "sha1-7pW+NxBv2HSKlvjR20uuqJ4b+oo=", - "requires": { - "got": "^6.2.0", - "is-plain-obj": "^1.1.0" - } - }, - "github-username": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz", - "integrity": "sha1-CnciGbMTB0NCnyRW0L3T21Xc57E=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { - "gh-got": "^5.0.0" + "pump": "^3.0.0" } }, "glob": { "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2281,137 +1711,60 @@ "path-is-absolute": "^1.0.0" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "requires": { - "ini": "^1.3.5" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "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 - } - } - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - } - } - }, "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/got/-/got-11.7.0.tgz", + "integrity": "sha512-7en2XwH2MEqOsrK0xaKhbWibBoZqy+f1RSUoIeF1BLcnf+pyQdDsljWMfmOh+QKJwuvDIiKx38GtPh5wFdGGjg==", + "requires": { + "@sindresorhus/is": "^3.1.1", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" } }, "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + "version": "4.1.15", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=", + "dev": true }, "grapheme-splitter": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha1-nPOmZcYkdHmJaDSvNc8du0QAdn4=" }, - "grouped-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-1.0.0.tgz", - "integrity": "sha512-XslfWrAGCYovQjveHODR0hllUrsn3UtvPFTkamHbgVHmkUA6eCIDmw3JDWVLJvuntTvYjwaPGamlyzK4/HAEOA==", + "graphql": { + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.4.0.tgz", + "integrity": "sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA==" + }, + "graphql-request": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.3.0.tgz", + "integrity": "sha512-NHj65WSIUh8j7TBYgzWU0fqvLfxrqFDrLG8nZUh+IREZw50ljR6JXlXRkr52/fL/46wpItiQNLDrG+UZI+KmzA==", "requires": { - "lodash": "^4.17.15" + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" } }, "growl": { "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", "requires": { "function-bind": "^1.1.1" } @@ -2419,122 +1772,46 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, "has-symbols": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=" }, "he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", "dev": true }, "hosted-git-info": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.7.tgz", - "integrity": "sha512-ChkjQtKJ3GI6SsI4O5jwr8q8EPrWCnxuc4Tbx+vRI5x6mDOpjKKltNo1lRlszw3xwgTOSns1ZRBiMmmwpcvLxg==" - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "lru-cache": "^6.0.0" } }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "http2-wrapper": { + "version": "1.0.0-beta.5.2", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", + "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" } }, - "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==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "agent-base": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", - "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", - "requires": { - "debug": "4" - } - } - } + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" }, "humanize-ms": { "version": "1.2.1", @@ -2546,17 +1823,13 @@ }, "iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, "import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", @@ -2574,13 +1847,13 @@ }, "indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" }, "infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" }, "inflight": { "version": "1.0.6", @@ -2592,19 +1865,20 @@ } }, "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.5.tgz", + "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" }, "inquirer": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, "requires": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", @@ -2624,12 +1898,14 @@ "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2640,304 +1916,187 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" - }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + "version": "1.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=" }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "is-core-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", + "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "has": "^1.0.3" } }, "is-date-object": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=" }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", - "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.3.1.tgz", + "integrity": "sha1-Z5r++Bk0enJYRhf9GUl/AQuO018=", "requires": { "global-dirs": "^2.0.1", "is-path-inside": "^3.0.1" - } - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "global-dirs": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha1-rN87tmhbzVXLNeigUiZlaelGkgE=", "requires": { - "is-buffer": "^1.1.5" + "ini": "^1.3.5" } + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha1-9SIPyCo+IzdXKR3dycWHfyofMBc=" } } }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" - }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, - "is-scoped": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", - "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=", "requires": { - "scoped-regex": "^1.0.0" + "has-symbols": "^1.0.1" } }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "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==" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true }, "is-symbol": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", "requires": { "has-symbols": "^1.0.1" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isbinaryfile": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.4.tgz", - "integrity": "sha512-pEutbN134CzcjlLS1myKX/uxNjwU5eBVSprvkpv3+3dqhBHUZLIWJQowC40w5c0Zf19vBY8mrZl88y5J4RAPbQ==" - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "isobject": { - "version": "3.0.1", - "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=" - }, - "istextorbinary": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", - "integrity": "sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==", - "requires": { - "binaryextensions": "^2.1.2", - "editions": "^2.2.0", - "textextensions": "^2.5.0" - } - }, "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, + "jose": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.2.tgz", + "integrity": "sha512-yD93lsiMA1go/qxSY/vXWBodmIZJIxeB7QhFi8z1yQ3KUwKENqI9UA8VCHlQ5h3x1zWuWZjoY87ByQzkQbIrQg==", + "requires": { + "@panva/asn1.js": "^1.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, "js-yaml": { "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -2948,7 +2107,8 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "jsonparse": { "version": "1.3.1", @@ -2957,8 +2117,8 @@ }, "jsonpath": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", - "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonpath/-/jsonpath-1.0.2.tgz", + "integrity": "sha1-5qrmgdA+mne0ZR1dlurF/GOx/RM=", "requires": { "esprima": "1.2.2", "static-eval": "2.0.2", @@ -2972,74 +2132,23 @@ } } }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, "keypress": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } }, "kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=" }, "levn": { "version": "0.3.0", @@ -3050,117 +2159,69 @@ "type-check": "~0.3.2" } }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "^2.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true }, "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "macos-release": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", - "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==" - }, - "make-dir": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", - "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", + "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==" }, "make-fetch-happen": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.7.tgz", - "integrity": "sha512-rkDA4c1nMXVqLkfOaM5RK2dxkUndjLOCrPycTDZgbkFDzhmaCO3P1dmCW//yt1I/G1EcedJqMsSjWkV79Hh4hQ==", + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", + "integrity": "sha512-jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==", "requires": { "agentkeepalive": "^4.1.0", "cacache": "^15.0.0", @@ -3168,10 +2229,10 @@ "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^5.1.1", + "lru-cache": "^6.0.0", "minipass": "^3.1.3", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.1.2", + "minipass-fetch": "^1.3.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", "promise-retry": "^1.1.1", @@ -3180,201 +2241,97 @@ }, "dependencies": { "agent-base": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz", - "integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", + "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", "requires": { "debug": "4" } }, "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", "requires": { "@tootallnate/once": "1", "agent-base": "6", "debug": "4" } }, - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "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==", "requires": { - "yallist": "^4.0.0" + "agent-base": "6", + "debug": "4" } }, "smart-buffer": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha1-kWBcJdkWUvRmHqacz0XxszHKIbo=" }, "socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.4.4.tgz", + "integrity": "sha512-7LmHN4IHj1Vpd/k8D872VGCHJ6yIVyeFkfIBExRmGPYQ/kdUkpdg9eKh9oOzYYYKQhuxavayJHTnmBG+EzluUA==", "requires": { - "ip": "1.1.5", + "ip": "^1.1.5", "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha1-fA82Tnsc9KekN+cSU77XLpAEvmA=", "requires": { "agent-base": "6", "debug": "4", "socks": "^2.3.3" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "mem-fs": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", - "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", - "requires": { - "through2": "^2.0.0", - "vinyl": "^1.1.0", - "vinyl-file": "^2.0.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } } } }, - "mem-fs-editor": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz", - "integrity": "sha512-e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==", - "requires": { - "commondir": "^1.0.1", - "deep-extend": "^0.6.0", - "ejs": "^2.6.1", - "glob": "^7.1.4", - "globby": "^9.2.0", - "isbinaryfile": "^4.0.0", - "mkdirp": "^0.5.0", - "multimatch": "^4.0.0", - "rimraf": "^2.6.3", - "through2": "^3.0.1", - "vinyl": "^2.2.0" - } - }, - "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true }, "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + "version": "1.40.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" }, "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "version": "2.1.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", "requires": { - "mime-db": "1.43.0" + "mime-db": "1.40.0" } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { "brace-expansion": "^1.1.7" } @@ -3382,128 +2339,96 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "minipass": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", - "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "requires": { "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } } }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", "requires": { "minipass": "^3.0.0" } }, "minipass-fetch": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz", - "integrity": "sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", + "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", - "minipass-pipeline": "^1.2.2", "minipass-sized": "^1.0.3", "minizlib": "^2.0.0" } }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", "requires": { "minipass": "^3.0.0" } }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" } }, "minipass-pipeline": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", - "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "requires": { "minipass": "^3.0.0" } }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", "requires": { "minipass": "^3.0.0" } }, "minizlib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", - "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } } }, "mixme": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.3.5.tgz", - "integrity": "sha512-SyV9uPETRig5ZmYev0ANfiGeB+g6N2EnqqEfBbCGmmJ6MgZ3E4qv5aPbnHVdZ60KAHHXV+T3sXopdrnIXQdmjQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixme/-/mixme-0.3.5.tgz", + "integrity": "sha1-MEZSza8ko98EhyBeYaxhYsaQbd0=" }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, "requires": { "minimist": "^1.2.5" } }, "mocha": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz", - "integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-7.1.1.tgz", + "integrity": "sha1-ifuzDQlCmEWxu4k6gwv1dxBJpEE=", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -3534,14 +2459,20 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", "dev": true }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -3551,8 +2482,8 @@ "dependencies": { "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -3562,8 +2493,8 @@ }, "cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", "dev": true, "requires": { "string-width": "^3.1.0", @@ -3573,23 +2504,29 @@ }, "debug": { "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "dev": true, "requires": { "ms": "^2.1.1" } }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", "dev": true }, "glob": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.3.tgz", + "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3602,8 +2539,8 @@ }, "log-symbols": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q=", "dev": true, "requires": { "chalk": "^2.4.2" @@ -3620,14 +2557,32 @@ }, "ms": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", "dev": true }, - "string-width": { + "object.assign": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -3637,8 +2592,8 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -3646,8 +2601,8 @@ }, "supports-color": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha1-ds/nQs8fQbubHCmtAwaMBbTA5Ao=", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -3655,8 +2610,8 @@ }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -3666,8 +2621,8 @@ }, "yargs": { "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", "dev": true, "requires": { "cliui": "^5.0.0", @@ -3684,8 +2639,8 @@ }, "yargs-parser": { "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -3699,67 +2654,16 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, - "move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==", - "requires": { - "path-exists": "^4.0.0" - }, - "dependencies": { - "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==" - } - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - } - } - }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true }, "natural-compare": { "version": "1.4.0", @@ -3767,20 +2671,28 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "netmask": { - "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/netmask/-/netmask-1.0.6.tgz", - "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" - }, "nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true + }, + "nock": { + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.0.4.tgz", + "integrity": "sha512-alqTV8Qt7TUbc74x1pKRLSENzfjp4nywovcJgi/1aXDiUxXdt7TkruSTF5MDWPP7UoPVgea4F9ghVdmX0xxnSA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash.set": "^4.3.2", + "propagate": "^2.0.0" + } }, "node-environment-flags": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha1-owrBNiH299Z0JgpU3t4EjDmCwIg=", "dev": true, "requires": { "object.getownpropertydescriptors": "^2.0.3", @@ -3789,16 +2701,22 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -3806,169 +2724,144 @@ "validate-npm-package-license": "^3.0.1" }, "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==", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", "dev": true }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + }, "npm-package-arg": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.0.tgz", - "integrity": "sha512-JgqZHCEUKvhX7EehLNdySiuB227a0QYra9wpZOkW+jvwsRYKkce7y5Rv2axkxScJU1EP+L32jT2PLhQz7IWHlw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz", + "integrity": "sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==", "requires": { - "hosted-git-info": "^3.0.2", - "osenv": "^0.1.5", + "hosted-git-info": "^3.0.6", "semver": "^7.0.0", "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", - "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", - "requires": { - "lru-cache": "^5.1.1" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } } }, "npm-registry-fetch": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz", - "integrity": "sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.1.5.tgz", + "integrity": "sha512-yZPNoJK9clx1jhSXU54kU6Aj1SV2p7mXUs1W/6OjQvek3wb1RrjDCrt4iY1+VX9eBQvvSGEpzNmYkRUaTL8rqg==", "requires": { "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^8.0.2", - "minipass": "^3.0.0", - "minipass-fetch": "^1.1.2", + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.0.0", "npm-package-arg": "^8.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } } }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "path-key": "^3.0.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" } } }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + "version": "1.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA=" }, "object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "object.assign": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.1.tgz", + "integrity": "sha1-MDhnpmbN1Bk27N7fsfjz4ypHjN0=", "requires": { - "isobject": "^3.0.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg=", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" } }, "object.getownpropertydescriptors": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, "requires": { - "isobject": "^3.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" } }, "once": { @@ -3983,6 +2876,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, "requires": { "mimic-fn": "^1.0.0" } @@ -4000,43 +2894,30 @@ "wordwrap": "~1.0.0" } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, "os-name": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.0.tgz", + "integrity": "sha512-caABzDdJMbtykt7GmSogEat3faTKQhmZf0BS5l/pZGmP0vPWQjXWqOhbLyK+b6j2/DQPmEvYdzLXJXXLJNVDNg==", "requires": { "macos-release": "^2.2.0", - "windows-release": "^3.1.0" + "windows-release": "^4.0.0" } }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "p-cancelable": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", + "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" }, "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", "requires": { "p-try": "^2.0.0" } @@ -4045,70 +2926,23 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, "requires": { "p-limit": "^2.0.0" } }, "p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", "requires": { "aggregate-error": "^3.0.0" } }, "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==" - }, - "pac-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", - "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", - "requires": { - "agent-base": "^4.2.0", - "debug": "^4.1.1", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - } - } - }, - "pac-resolver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", - "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", - "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" }, "parent-module": { "version": "1.0.1", @@ -4120,77 +2954,42 @@ } }, "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" + "error-ex": "^1.2.0" } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "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==" - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true }, "pathval": { "version": "1.1.0", @@ -4206,64 +3005,80 @@ "through": "~2.3" } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, "picomatch": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", "dev": true }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, "requires": { - "pinkie": "^2.0.0" + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "pretty-bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", - "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" - }, "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" }, "progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" }, "promise-inflight": { "version": "1.0.1", @@ -4279,69 +3094,16 @@ "retry": "^0.10.0" } }, - "proxy-agent": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", - "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", - "requires": { - "agent-base": "^4.2.0", - "debug": "4", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^3.0.1", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "proxy-from-env": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" - }, - "psl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" + "propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -4350,57 +3112,101 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", - "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==" - }, - "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, - "read-chunk": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", - "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", - "requires": { - "pify": "^4.0.1", - "with-open-file": "^0.1.6" - } + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "dependencies": { + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "read-pkg-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz", - "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, "requires": { - "find-up": "^3.0.0", - "read-pkg": "^5.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } } }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -4413,166 +3219,435 @@ }, "readdirp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha1-wwwzNSsSyW37S4lUIaSf1alZODk=", "dev": true, "requires": { "picomatch": "^2.0.4" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "dev": true, + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } }, - "replace-ext": { + "resolve-alpn": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "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" + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", + "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + }, + "rewire": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", + "dev": true, + "requires": { + "eslint": "^6.8.0" }, "dependencies": { - "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==", + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "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==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "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==" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true } } }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - }, - "rewire": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", - "dev": true, - "requires": { - "eslint": "^6.8.0" - } - }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } @@ -4581,81 +3656,45 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, "requires": { "is-promise": "^2.1.0" } }, "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "version": "6.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", + "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", + "dev": true, "requires": { "tslib": "^1.9.0" } }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "scoped-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", - "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" }, "semver": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", - "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.1.3.tgz", + "integrity": "sha1-5DRc5zBxxT8zZEXPwZ77HDEd8qY=" }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -4663,28 +3702,14 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shelljs": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", - "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -4696,357 +3721,107 @@ "is-fullwidth-code-point": "^2.0.0" } }, - "smart-buffer": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", - "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==" - }, - "smartwrap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.1.tgz", - "integrity": "sha512-BoOIGADm5Q9OXGVmT899L1fx6dvOYciVUPB9yFlE1XkxRs3/6sqT/HYZoXOxNb4jj2zshtH+jhmGa6wGkNDPgA==", - "requires": { - "array.prototype.flat": "^1.2.3", - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socks": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", - "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "4.0.2" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", - "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "dependencies": { - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "requires": { - "es6-promisify": "^5.0.0" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "dev": true }, "split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", + "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", "requires": { "through": "2" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "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" - } - }, "ssri": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha1-ecp04h+M6u3fy0uQFDxFi42YiAg=", "requires": { "minipass": "^3.1.1" } }, "static-eval": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha1-LRdZMGsb76aIk4RUxUa3hx+AakI=", "requires": { "escodegen": "^1.8.1" } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "stream-transform": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.1.tgz", - "integrity": "sha512-GiTcO/rRvZP2R8WPwxmxCFP+Of1yIATuFAmYkvSLDfcD93X2WHiPwdgIqeFT2CvL1gyAsjQvu1nB6RDNQ5b2jw==", + "stream": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", + "integrity": "sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=", "requires": { - "mixme": "^0.3.1" + "emitter-component": "^1.1.1" } }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" - }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" } }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=", "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5" } }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=", "requires": { "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "es-abstract": "^1.17.5" } }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "requires": { "safe-buffer": "~5.1.0" } @@ -5055,31 +3830,21 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "requires": { "ansi-regex": "^3.0.0" } }, "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "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 }, - "strip-bom-stream": { + "strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", - "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", - "requires": { - "first-chunk-stream": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" }, "strip-json-comments": { "version": "2.0.1", @@ -5089,8 +3854,9 @@ }, "superagent": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", - "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-5.2.2.tgz", + "integrity": "sha1-b/cmxWQnlbLCcAnpJofI5pprsH0=", + "dev": true, "requires": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.2", @@ -5105,10 +3871,65 @@ "semver": "^6.3.0" }, "dependencies": { + "combined-stream": { + "version": "1.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "debug": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.2.0.tgz", + "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } + } + }, + "form-data": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha1-MbfjnIXxNVtxOe4MZHzw3n+DxoI=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime/-/mime-2.4.6.tgz", + "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "qs": { + "version": "6.9.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.9.4.tgz", + "integrity": "sha1-kJCykNH5FyjTwi5UhDykSupatoc=", + "dev": true + }, "readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5117,48 +3938,17 @@ }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "superagent-mocker": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/superagent-mocker/-/superagent-mocker-0.5.2.tgz", - "integrity": "sha1-YdqBaHT/bLJksU2iiVOooqq0Wrg=", - "dev": true, - "requires": { - "path-to-regexp": "^1.1.0" - } - }, - "superagent-proxy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-2.0.0.tgz", - "integrity": "sha512-TktJma5jPdiH1BNN+reF/RMW3b8aBTCV7KlLFV0uYcREgNf3pvo7Rdt564OcFHwkGb3mYEhHuWPBhSbOwiNaYw==", - "requires": { - "debug": "^3.1.0", - "proxy-agent": "3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true } } }, - "superagent-throttle": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/superagent-throttle/-/superagent-throttle-1.0.1.tgz", - "integrity": "sha512-m5Ngf0S5QoA84zgwVqVnVA34u9uvo8uM+QEF9B7eNI5FDaSoSoUwQsx7V1GmLXgYLkolhIiucFDVJXF9z49hgQ==" - }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -5181,6 +3971,12 @@ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -5204,14 +4000,14 @@ } }, "tar": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", - "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^3.0.0", - "minizlib": "^2.1.0", + "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, @@ -5220,11 +4016,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -5236,12 +4027,8 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "textextensions": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", - "integrity": "sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==" + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true }, "through": { "version": "2.3.8", @@ -5250,91 +4037,31 @@ }, "through2": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-3.0.1.tgz", + "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", "requires": { "readable-stream": "2 || 3" } }, - "thunkify": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/thunkify/-/thunkify-2.1.2.tgz", - "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "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==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=", + "dev": true }, "tty-table": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.1.tgz", - "integrity": "sha512-iCxPm5DCPgqs3ELrUDEe+JsOcQOSPZSe+dwM5oIQZk5OfyzQWPVQwkHjyFp4aoDHC0HTM47jd0TkQZUBpxnN0Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tty-table/-/tty-table-4.1.1.tgz", + "integrity": "sha1-Sr3/iZt7f0Ia91b9o1LGt4EgUk8=", "requires": { "chalk": "^3.0.0", "csv": "^5.3.1", @@ -5345,34 +4072,409 @@ "yargs": "^15.1.0" }, "dependencies": { - "ansi-regex": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "breakword": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.5.tgz", + "integrity": "sha1-/UIKQX9VAWc2tbYVFhyuHI+BmBA=", + "requires": { + "wcwidth": "^1.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "csv": { + "version": "5.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-5.3.2.tgz", + "integrity": "sha1-ULNE4l37uMYmhKG87BjCJGiyFh4=", + "requires": { + "csv-generate": "^3.2.4", + "csv-parse": "^4.8.8", + "csv-stringify": "^5.3.6", + "stream-transform": "^2.0.1" + } + }, + "csv-generate": { + "version": "3.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-generate/-/csv-generate-3.2.4.tgz", + "integrity": "sha1-RA2rkXcznuBnbJ5cFvUOKzRjwBk=" + }, + "csv-parse": { + "version": "4.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-parse/-/csv-parse-4.12.0.tgz", + "integrity": "sha1-/ULWKRu6rdUdMAn2ytuz5TtM4CY=" + }, + "csv-stringify": { + "version": "5.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-stringify/-/csv-stringify-5.5.1.tgz", + "integrity": "sha1-9CzdN5sPfxQpM6EfZ0sakevQ/NA=" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + }, + "locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" + }, + "smartwrap": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smartwrap/-/smartwrap-2.0.1.tgz", + "integrity": "sha1-9OL7NkQCIH5OrF7OwNo4ZNYhtCM=", + "requires": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" + }, + "dependencies": { + "yargs": { + "version": "15.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "cliui": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + } + } + }, + "stream-transform": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-transform/-/stream-transform-2.0.2.tgz", + "integrity": "sha1-PLehTIAus5vEDKqrBTXlhPOmXK8=", + "requires": { + "mixme": "^0.3.1" + } }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "requires": { + "color-convert": "^1.9.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" + } + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + } + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "requires": { + "ansi-styles": "^3.2.0" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -5383,144 +4485,62 @@ }, "type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", "dev": true }, "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==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true }, "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "untildify": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", - "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "unique-filename": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "requires": { - "punycode": "^2.1.0" + "unique-slug": "^2.0.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "unique-slug": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", "requires": { - "prepend-http": "^1.0.1" + "imurmurhash": "^0.1.4" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "uuid": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz", - "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==" - }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", "dev": true }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -5534,74 +4554,6 @@ "builtins": "^1.0.3" } }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", - "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0", - "strip-bom-stream": "^2.0.0", - "vinyl": "^1.1.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" - }, - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - } - } - }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -5612,8 +4564,9 @@ }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -5625,96 +4578,19 @@ }, "wide-align": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", "dev": true, "requires": { "string-width": "^1.0.2 || 2" } }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "windows-release": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", - "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", - "requires": { - "execa": "^1.0.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "with-open-file": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", - "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", "requires": { - "p-finally": "^1.0.0", - "p-try": "^2.1.0", - "pify": "^4.0.1" + "execa": "^4.0.2" } }, "word-wrap": { @@ -5730,8 +4606,8 @@ }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5740,45 +4616,39 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" }, "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5787,8 +4657,8 @@ }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", "requires": { "ansi-regex": "^5.0.0" } @@ -5809,122 +4679,20 @@ "mkdirp": "^0.5.1" } }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, "y18n": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "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==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "yargs-parser": { - "version": "18.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", - "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs-unparser": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha1-7yXCx2n/a9CeSw+dfGBfsnhG6p8=", "dev": true, "requires": { "flat": "^4.1.0", @@ -5934,14 +4702,20 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", "dev": true }, "cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", "dev": true, "requires": { "string-width": "^3.1.0", @@ -5949,10 +4723,28 @@ "wrap-ansi": "^5.1.0" } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -5962,8 +4754,8 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -5971,8 +4763,8 @@ }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -5982,8 +4774,8 @@ }, "yargs": { "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", "dev": true, "requires": { "cliui": "^5.0.0", @@ -6000,8 +4792,8 @@ }, "yargs-parser": { "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -6009,135 +4801,6 @@ } } } - }, - "yeoman-environment": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.1.tgz", - "integrity": "sha512-MV6yeJfnSsZBv/VuWvw82bN6hF6KIXRUwhEPaO+RHJAWeNCQAF+iYfBNsJOo4tx5Puch300h+DF9QZceKkbzQg==", - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "debug": "^3.1.0", - "diff": "^3.5.0", - "escape-string-regexp": "^1.0.2", - "globby": "^8.0.1", - "grouped-queue": "^1.0.0", - "inquirer": "^6.0.0", - "is-scoped": "^1.0.0", - "lodash": "^4.17.10", - "log-symbols": "^2.2.0", - "mem-fs": "^1.1.0", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "untildify": "^3.0.3" - }, - "dependencies": { - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - } - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - } - } - }, - "yeoman-generator": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.6.0.tgz", - "integrity": "sha512-Hq65rLqMNCS0h0n1yakSZjHsEZHm0ZpOM02Nja6O03s2k5WHvAhGOx7uxs93vrJv62zFrJtD9e9mVhgoVbi7CQ==", - "requires": { - "async": "^2.6.2", - "chalk": "^2.4.2", - "cli-table": "^0.3.1", - "cross-spawn": "^6.0.5", - "dargs": "^6.1.0", - "dateformat": "^3.0.3", - "debug": "^4.1.1", - "diff": "^4.0.1", - "error": "^7.0.2", - "find-up": "^3.0.0", - "github-username": "^3.0.0", - "istextorbinary": "^2.5.1", - "lodash": "^4.17.11", - "make-dir": "^3.0.0", - "mem-fs-editor": "^6.0.0", - "minimist": "^1.2.0", - "pretty-bytes": "^5.2.0", - "read-chunk": "^3.2.0", - "read-pkg-up": "^5.0.0", - "rimraf": "^2.6.3", - "run-async": "^2.0.0", - "shelljs": "^0.8.3", - "text-table": "^0.2.0", - "through2": "^3.0.1", - "yeoman-environment": "^2.3.4" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } } } } diff --git a/package.json b/package.json index ce99101a..87d00d7d 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,15 @@ { "name": "cortex-cli", - "version": "1.1.1", + "version": "2.0.0-a.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { "preinstall": "npx check-node-version -p --package", + "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js", "test": "CORTEX_CONFIG_DIR=./test/cortex mocha --recursive" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "repository": { "type": "git", @@ -29,44 +30,45 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@c12e/generator-cortex": "0.3.30", "@hapi/joi": "17.1.1", "boxen": "4.2.0", - "chalk": "3.0.0", + "chalk": "4.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "5.0.0", + "commander": "6.2.0", "debug": "4.1.1", "event-stream": "4.0.1", "find-package-json": "1.2.0", "glob": "7.1.6", + "got": "11.7.0", + "graphql": "15.4.0", + "graphql-request": "3.3.0", "is-installed-globally": "0.3.1", "jmespath": "0.15.0", + "jose": "2.0.2", "js-yaml": "3.13.1", "jsonpath": "1.0.2", - "jsonwebtoken": "8.5.1", - "lodash": "4.17.15", + "lodash": "4.17.20", "moment": "2.24.0", - "npm-registry-fetch": "8.0.0", - "os-name": "3.1.0", + "npm-registry-fetch": "8.1.5", + "os-name": "4.0.0", "progress": "2.0.3", - "request": "2.88.2", "semver": "7.1.3", "split": "1.0.1", - "superagent": "5.2.2", - "superagent-proxy": "2.0.0", - "superagent-throttle": "1.0.1", + "stream": "0.0.2", "through2": "3.0.1", - "tty-table": "4.1.1", - "uuid": "7.0.2", - "yeoman-environment": "2.8.1" + "tty-table": "4.1.1" }, "devDependencies": { "chai": "4.2.0", "chai-as-promised": "7.1.1", + "eslint": "5.16.0", + "eslint-config-airbnb-base": "13.1.0", + "eslint-plugin-import": "2.20.2", "mocha": "7.1.1", + "nock": "13.0.4", "rewire": "5.0.0", - "superagent-mocker": "0.5.2" + "superagent": "5.2.2" } } diff --git a/scripts/cortex b/scripts/cortex index 4c9800db..bdd2867b 100755 --- a/scripts/cortex +++ b/scripts/cortex @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. +# Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance with the License. diff --git a/src/client/accounts.js b/src/client/accounts.js deleted file mode 100644 index 16a7892d..00000000 --- a/src/client/accounts.js +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); - -module.exports = class Accounts { - - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/accounts`; - this.groupsEndpoint = `${this.endpoint}/groups`; - this.resourcesEndpoint = `${this.endpoint}/resources`; - } - - listGroups(token) { - const endpoint = this.groupsEndpoint; - debug('listGroups => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeGroup(token, groupName) { - const endpoint = `${this.groupsEndpoint}/${groupName}`; - debug('describeGroup($s) => %s', groupName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - createGroup(token, groupName, description) { - const endpoint = this.groupsEndpoint; - debug('createGroup(%s) => %s', groupName, endpoint); - let body = { - name: groupName - }; - if (description) - body.description = description; - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(body) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - addMembersToGroup(token, groupName, members) { - const endpoint = `${this.groupsEndpoint}/${groupName}/members`; - debug('addMembersToGroup => %s', endpoint); - return request - .put(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send({ - members: members - }) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - deleteGroup(token, groupName) { - const endpoint = `${this.groupsEndpoint}/${groupName}`; - debug('deleteGroup($s) => %s', groupName, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - removeMembersFromGroup(token, groupName, members) { - const endpoint = `${this.groupsEndpoint}/${groupName}/members`; - debug('removeMembersFromGroup($s) => %s', groupName, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send({ - members: members - }) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - registerResource(token, resourceName, description, access) { - const endpoint = this.resourcesEndpoint; - debug('registerResource(%s) => %s', resourceName, endpoint); - let body = { - name: resourceName - }; - if (description) - body.description = description; - if (access) - body.access = access; - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(body) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - grantGroupAccessToResource(token, resourceId, groupName) { - const endpoint = `${this.resourcesEndpoint}/${resourceId}/access`; - debug('grantGroupAccessToResource(%s) => %s', resourceId, endpoint); - return request - .put(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send({ - groupId: groupName - }) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - // TODO: To be implemented - // listResources(token) { - // const endpoint = this.resourcesEndpoint; - // debug('listResources => %s', endpoint); - // return request - // .get(endpoint) - // .set('Authorization', `Bearer ${token}`) - // .then((res) => { - // if (res.ok) { - // return {success: true, result: res.body}; - // } - // return {success: false, status: res.status, message: res.body}; - // }); - // } - - // TODO: To be implemented - // unregisterResource(token, resourceName) { - // const endpoint = `${this.resourcesEndpoint}/${resourceName}`; - // debug('unregisterResource(%s) => %s', resourceName, endpoint); - // return request - // .delete(endpoint) - // .set('Authorization', `Bearer ${token}`) - // .then((res) => { - // if (res.ok) { - // return {success: true, result: res.body}; - // } - // return {success: false, status: res.status, message: res.body}; - // }); - // } - - // TODO: To be implemented - // revokeGroupAccessToResource(token, resourceId) { - // const endpoint = `${this.resourcesEndpoint}/${resourceId}/access`; - // debug('revokeGroupAccessToResource(%s) => %s', resourceId, endpoint); - // return request - // .delete(endpoint) - // .set('Authorization', `Bearer ${token}`) - // .then((res) => { - // if (res.ok) { - // return {success: true, result: res.body}; - // } - // return {success: false, status: res.status, message: res.body}; - // }); - // } - -}; diff --git a/src/client/actions.js b/src/client/actions.js index 6b8675df..3f0f688f 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,278 +13,205 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -const url = require('url'); +const _ = require('lodash'); const chalk = require('chalk'); -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const jsonwebtoken = require('jsonwebtoken'); -const { constructError, callMe } = require('../commands/utils'); +const jose = require('jose'); +const { got } = require('./apiutils'); +const { + constructError, callMe, checkProject, getUserAgent, +} = require('../commands/utils'); module.exports = class Actions { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/actions`; - this.endpointV3 = `${cortexUrl}/v3/actions`; - this.endpointJobsV3 = `${cortexUrl}/v3/jobs`; + this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/actions`; } - invokeAction(token, actionName, params, actionType) { - let endpoint = `${this.endpointV3}/${actionName}/invoke`; - if (actionType) { - endpoint = `${endpoint}?actionType=${actionType}` - } - debug('invokeAction(%s) => %s', actionName, endpoint); - - const req = request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .send(params); - - return req.then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - async deployAction(token, actionName, params) { - let endpoint = `${this.endpointV3}`; + async deployAction(projectId, token, actionName, params) { + checkProject(projectId); + let endpoint = this.endpointV4(projectId); if (params.actionType) { endpoint = `${endpoint}?actionType=${params.actionType}`; } debug('deployAction(%s, docker=%s, ttl=%s) => %s', actionName, params.dockerImage, params.ttl, endpoint); - + const body = { ...params }; try { - params.docker = await this._maybePushDockerImage(params.dockerImage, token, params.pushDocker); + body.docker = await this._maybePushDockerImage(params.dockerImage, token, params.pushDocker); } catch (error) { - return {success: false, status: 400, message: error.message || error}; + return { success: false, status: 400, message: error.message || error }; } - params.name = actionName; + body.name = actionName; - const req = request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .send(params); - - return req.then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); } - listActions(token) { + listActions(projectId, token) { + checkProject(projectId); debug('listActions() => %s', this.endpointV3); - return request - .get(this.endpointV3) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, actions: res.body.functions}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - - } - - describeAction(token, actionName) { - const endpoint = `${this.endpointV3}/${actionName}`; + return got + .get(this.endpointV4(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(actions => actions) + .catch(err => constructError(err)); + } + + describeAction(projectId, token, actionName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${actionName}`; debug('describeAction(%s) => %s', actionName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, action: res.body.function}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { headers: { Authorization: `Bearer ${token}` } }) + .json() + .then(action => action) + .catch(err => constructError(err)); } - getLogsAction(token, actionName) { - const endpoint = `${this.endpointV3}/${actionName}/logs`; + getLogsAction(projectId, token, actionName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${actionName}/logs`; debug('getLogsAction(%s) => %s', actionName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - if (_.isArray(res.body)) { + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then((logs) => { + if (_.isArray(logs)) { // returns plain array for Rancher daemons - return {success: true, logs: res.body}; + return { success: true, logs }; } - return res.body; - } - return {success: false, status: res.status, message: res.body}; + return logs; }) - .catch((err) => { - return constructError(err); - }); + .catch(err => constructError(err)); } - deleteAction(token, actionName, actionType) { - let endpoint = `${this.endpointV3}/${actionName}`; + deleteAction(projectId, token, actionName, actionType) { + checkProject(projectId); + let endpoint = `${this.endpointV4(projectId)}/${actionName}`; if (actionType) { - endpoint = `${endpoint}?actionType=${actionType}` + endpoint = `${endpoint}?actionType=${actionType}`; } debug('deleteAction(%s, %s) => %s', actionName, actionType, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return {success: true, action: res.body.action}; - } - return {success: false, status: res.status, message: res.body}; + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(action => ({ success: true, action })) + .catch(err => constructError(err)); } - taskLogs(token, jobId, taskId) { + taskLogs(projectId, token, jobId, taskId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}/logs`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/logs`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(res => res) + .catch(err => constructError(err)); } - taskCancel(token, jobId, taskId) { + taskCancel(projectId, token, jobId, taskId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}`; - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}`; + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(res => res) + .catch(err => constructError(err)); } - taskStatus(token, jobId, taskId) { + taskStatus(projectId, token, jobId, taskId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks/${taskId}/status`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/status`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() .then((res) => { - if (res.ok) { - const resBody = res.body; - debug('resBody (with provider status as well): %s', resBody); - const respBodyNoProviderField = _.omit(resBody, '_providerStatus'); - return respBodyNoProviderField; - } - return {success: false, status: res.status, message: res.body}; + debug('resBody (with provider status as well): %s', res); + return _.omit(res, '_providerStatus'); }) - .catch((err) => { - return constructError(err); - }); + .catch(err => constructError(err)); } - jobListTasks(token, jobId) { + jobListTasks(projectId, token, jobId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/tasks`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(res => res) + .catch(err => constructError(err)); } - taskStats(token, jobId) { + taskStats(projectId, token, jobId) { + checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointJobsV3}/${canonicalJobId}/stats`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/stats`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); - } - - listTasksByActivation(token, activationId) { - const endpoint = `${this.endpointV3}/${activationId}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return res.body; - } - return {success: false, status: res.status, message: res.body}; + .json() + .then(res => res) + .catch(err => constructError(err)); + } + + listTasksByActivation(projectId, token, activationId) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${activationId}`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); - } - - getConfig(token) { - return request - .get(_.join([this.endpointV3, '_config'], '/')) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, config: res.body.config}; - } - return {success: false, status: res.status, message: res.body}; + .json() + .then(res => res) + .catch(err => constructError(err)); + } + + getConfig(projectId, token) { + checkProject(projectId); + const endpoint = _.join([this.endpointV4(projectId), '_config'], '/'); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(config => ({ success: true, config })) + .catch(err => constructError(err)); } static getCanonicalJobId(jobId) { @@ -292,17 +219,15 @@ module.exports = class Actions { const namespaceProvided = /\w\/\w/.test(jobId); if (!namespaceProvided) { canonicalJobId = `default/${jobId}`; - console.warn(chalk.yellow(`Namespace not given in jobId, assuming 'default'`)); + console.warn(chalk.yellow('Namespace not given in jobId, assuming \'default\'')); } return canonicalJobId; } async _cortexRegistryUrl(token) { const res = await this.getConfig(token); - if (res.success) - return res.config.dockerPrivateRegistryUrl - else - throw res + if (res.success) return res.config.dockerPrivateRegistryUrl; + throw res; } _cortexRegistryImagePath(registryUrl, imageRepo, tenant) { @@ -312,11 +237,11 @@ module.exports = class Actions { async _maybePushDockerImage(image, token, pushDocker) { if (!image || !pushDocker) { - return image + return image; } const registryUrl = await this._cortexRegistryUrl(token); const imageName = image.replace(/.+\..+\//, ''); - const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, jsonwebtoken.decode(token).tenant); + const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, jose.JWT.decode(token).tenant); await callMe(`docker login -u cli --password ${token} ${registryUrl}`); await callMe(`docker pull ${image} || echo "Docker pull failed using local image"`); await callMe(`docker tag ${image} ${cortexImageUrl}`); diff --git a/src/client/agents.js b/src/client/agents.js index 51869bae..3d1e1788 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,291 +14,101 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Agents { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/agents`; - this.endpointV3 = `${cortexUrl}/v3/agents`; + this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}`; } - invokeAgentService(token, agentName, serviceName, params) { - const endpoint = `${this.endpointV3}/${agentName}/services/${serviceName}`; + invokeAgentService(projectId, token, agentName, serviceName) { + const endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(params) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - getActivation(token, activationId) { - const endpoint = `${this.endpointV3}/activations/${activationId}`; + getActivation(projectId, token, activationId) { + const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - listActivations(token, instanceId, environmentName) { - let endpoint = `${this.endpointV3}/instances/${instanceId}/activations`; - debug('listActivations(%s, %s) => %s', instanceId, environmentName, endpoint); + listActivations(projectId, token, snapshotId, environmentName) { + let endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}/activations`; + debug('listActivations(%s, %s) => %s', snapshotId, environmentName, endpoint); if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - listAgentSnapshots(token, agentName, environmentName) { - let endpoint = `${this.endpoint}/snapshots/${agentName}`; + listAgentSnapshots(projectId, token, agentName, environmentName) { + let endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/snapshots`; debug('listAgentSnapshots(%s, %s) => %s', agentName, environmentName, endpoint); if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - - listSnapshotInstances(token, snapshotId, environmentName) { - let endpoint = `${this.endpoint}/instances?snapshotId=${snapshotId}`; - debug('listSnapshotInstances(%s, %s) => (%s)', snapshotId, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; - - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, instances: res.body.instances}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - describeAgentSnapshot(token, snapshotId, environmentName) { - let endpoint = `${this.endpoint}/snapshots/${snapshotId}?deps=true`; + describeAgentSnapshot(projectId, token, snapshotId, environmentName) { + let endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, environmentName, endpoint); if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - createAgentSnapshot(token, snapshot) { - const endpoint = `${this.endpoint}/snapshots`; + createAgentSnapshot(projectId, token, snapshot) { + const endpoint = `${this.endpointV4(projectId)}/agents/${snapshot.agentName}/snapshots`; debug('getAgentSnapshot=> %s', endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(snapshot) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - listAgentInstances(token, agentName, environmentName) { - let endpoint = `${this.endpoint}/instances/${agentName}`; - debug('getAgentInstances(%s, %s) => %s', agentName, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; - - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, instances: res.body.instances}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: snapshot, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - - createAgentInstance(token, instance) { - const endpoint = `${this.endpoint}/instances`; - debug('createAgentInstance => %s', endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(instance) - .type('json') - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - getAgentInstance(token, instanceId) { - const endpoint = `${this.endpoint}/instances/${instanceId}`; - debug('getAgentInstance => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - deleteAgentInstance(token, instanceId) { - const endpoint = `${this.endpoint}/instances/${instanceId}`; - debug('deleteAgentInstance => %s', endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - stopAgentInstance(token, instanceId) { - const endpoint = `${this.endpoint}/instances/${instanceId}/stop`; - debug('stopAgentInstance => %s', endpoint); - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - - listTriggers(token) { - const endpoint = `${this.endpoint}/triggers`; + listTriggers(projectId, token) { + const endpoint = `${this.endpointV4(projectId)}/triggers`; debug('listTriggers => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } }; diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js new file mode 100644 index 00000000..90caf410 --- /dev/null +++ b/src/client/apiServerClient.js @@ -0,0 +1,64 @@ +const _ = require('lodash'); +const { GraphQLClient, gql } = require('graphql-request'); + +module.exports = class ApiServerClient { + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/fabric/v4/graphql`; + } + + _client(token) { + return new GraphQLClient(this.endpoint, { + headers: { + Authorization: `bearer ${token}`, + }, + redirect: 'error', + }); + } + + /** + * Query project using graphql + * @param projectId + * @return {Promise} + */ + async getProject(token, projectId) { + try { + const fetched = await this._client(token) + .request(gql`query { projectByName( name: "${projectId}" ){name, title, description}}`); + return _.get(fetched, 'projectByName'); + } catch (err) { + throw err; + } + } + + + /** + * Query project using graphql + * @param projectId + * @return {Promise} + */ + async listProjects(token) { + try { + const fetched = await this._client(token) + .request(gql`{ projects { name, title, description} }`); + return _.get(fetched, 'projects', []); + } catch (err) { + throw err; + } + } + + /** + * Query project using graphql + * @param projectId + * @return {Promise} + */ + async createProject(token, projDef) { + try { + const fetched = await this._client(token) + .request(gql`mutation NewProject($input: ProjectInput!) { createProject(input: $input){name}}`, { input: projDef }); + return _.get(fetched, 'createProject', {}); + } catch (err) { + throw err; + } + } +}; diff --git a/src/commands/apiutils.js b/src/client/apiutils.js similarity index 59% rename from src/commands/apiutils.js rename to src/client/apiutils.js index a25fd06f..b621f15d 100644 --- a/src/commands/apiutils.js +++ b/src/client/apiutils.js @@ -1,18 +1,27 @@ +const got = require('got'); -const superagentRequest = require('superagent'); -require('superagent-proxy')(superagentRequest); -const debug = require('debug')('cortex:cli'); - -const { printWarning } = require('./utils'); -const { getUserAgent } = require('../useragent'); - +module.exports.got = got.extend({ + followRedirect: false, + hooks: { + afterResponse: [ + (res) => { + if (res.headers['x-auth-error']) { + res.statusCode = 401; + throw new Error(`Auth Error: ${res.headers['x-auth-error']}`); + } + return res; + }, + ], + }, +}); /** * makes a request via superagent. proxy methods will be utilized - * if the user (i.e. person running cli commands) has set environment + * if the user (i.e. person running cli commands) has set environment * variables for their proxy (this is assuming ofc they have a proxy). if * no env variables set, the request just keeps piping through. */ - +// TODO for proxies https://github.com/gajus/global-agent +/** function requestWrapper() { // @tutorial: https://stackoverflow.com/questions/22156326/private-properties-in-javascript-es6-classes // below are private variables @@ -23,41 +32,58 @@ function requestWrapper() { const bypassProxy = process.env.bypass_proxy; this.get = function(endpoint) { - if (bypassProxy) return superagentRequest.get(endpoint); + if (bypassProxy) + return superagentRequest + .get(endpoint) + .on('redirect', handleAuthError); bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .get(endpoint) .proxy(proxyEnv) + .on('redirect', handleAuthError) .set('User-Agent', getUserAgent()); }; this.delete = function(endpoint) { - if (bypassProxy) return superagentRequest.delete(endpoint); + if (bypassProxy) + return superagentRequest + .delete(endpoint) + .on('redirect', handleAuthError); bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .delete(endpoint) + .on('redirect', handleAuthError) .proxy(proxyEnv) .set('User-Agent', getUserAgent()); }; this.post = function(endpoint) { - if (bypassProxy) return superagentRequest.post(endpoint); + if (bypassProxy) + return superagentRequest + .post(endpoint) + .on('redirect', handleAuthError); bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .post(endpoint) + .on('redirect', handleAuthError) .proxy(proxyEnv) .set('User-Agent', getUserAgent()); } this.put = function(endpoint) { - if (bypassProxy) return superagentRequest.put(endpoint); + if (bypassProxy) + return superagentRequest + .put(endpoint) + .on('redirect', handleAuthError); bothProxiesSet && printWarning(bothProxiesWarning); return superagentRequest .put(endpoint) + .on('redirect', handleAuthError) .proxy(proxyEnv) .set('User-Agent', getUserAgent()); } } module.exports.request = new requestWrapper(); +* */ diff --git a/src/client/auth.js b/src/client/auth.js deleted file mode 100644 index 339d1d23..00000000 --- a/src/client/auth.js +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError } = require('../commands/utils'); - -module.exports = class Auth { - - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - } - - login(tenantId, username, password) { - const endpoint = `${this.cortexUrl}/v2/admin/${tenantId}/users/authenticate`; - - debug('login(%s) => %s', username, endpoint); - - return request - .post(endpoint) - .set('x-cortex-proxy-notify', true) - .send({ - username: username, - password: password - }) - .then((response) => { - if (Boolean(_.get(response, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - - if (response.ok) { - debug('login response: %o', response.body); - return response.body; - } - else { - throw new Error('Authentication failed'); - } - }) - .catch((err) => { - return constructError(err); - }); - } -}; \ No newline at end of file diff --git a/src/client/catalog.js b/src/client/catalog.js index 476b2618..52293ab1 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,341 +14,264 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError, formatAllServiceInputParameters } = require('../commands/utils'); -const AGENTS_API_VERSION = 'v3'; +const { got } = require('./apiutils'); +const { + constructError, formatAllServiceInputParameters, checkProject, getUserAgent, +} = require('../commands/utils'); -const createEndpoints = (baseUri) => { - return { - catalog: `${baseUri}/v2/catalog`, - skills: `${baseUri}/v3/catalog/skills`, - agents: `${baseUri}/v3/catalog/agents`, - types: `${baseUri}/v3/catalog/types`, - agentVersions: `${baseUri}/v3/agents/versions`, - profileSchemas: `${baseUri}/v3/graph/profiles/schemas`, - } -}; +const createEndpoints = baseUri => ({ + skills: projectId => `${baseUri}/fabric/v4/projects/${projectId}/skills`, + agents: projectId => `${baseUri}/fabric/v4/projects/${projectId}/agents`, + types: projectId => `${baseUri}/fabric/v4/projects/${projectId}/types`, + }); module.exports = class Catalog { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoints = createEndpoints(cortexUrl); } - saveSkill(token, skillObj) { + saveSkill(projectId, token, skillObj) { + checkProject(projectId); debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills); - return request - .post(this.endpoints.skills) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(skillObj) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(this.endpoints.skills(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: skillObj, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); } - listSkills(token) { + listSkills(projectId, token) { + checkProject(projectId); debug('listSkills() => %s', this.endpoints.skills); - return request - .get(this.endpoints.skills) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, skills: res.body.skills || res.body.processors}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(this.endpoints.skills(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(skills => ({ success: true, ...skills })) + .catch(err => constructError(err)); } - describeSkill(token, skillName) { - const endpoint = `${this.endpoints.skills}/${skillName}`; + describeSkill(projectId, token, skillName) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${skillName}`; debug('describeSkill(%s) => %s', skillName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, skill: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, skill: res })) + .catch(err => constructError(err)); } - listAgents(token) { - debug('listAgents() => %s', this.endpoints.agents); - return request - .get(this.endpoints.agents) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, agents: res.body.agents}; - } - return {success: false, status: res.status, message: res.body}; + listAgents(projectId, token) { + checkProject(projectId); + const endpoint = this.endpoints.agents(projectId); + debug('listAgents() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(agentResp => ({ success: true, ...agentResp })) + .catch(err => constructError(err)); } - listServices(token, agentName, profile) { + listServices(projectId, token, agentName) { + // TODO removed profile should I use that as the URL ?? + checkProject(projectId); debug('listServices() using describeAgent'); - return this.describeAgent(profile.token, agentName).then((response) => { + return this.describeAgent(projectId, token, agentName).then((response) => { if (response.success) { - const urlBase = `${profile.url}/${AGENTS_API_VERSION}/agents/${agentName}/services`; + const urlBase = `${this.endpoints.agents(projectId)}/${agentName}/services`; const servicesList = response.agent.inputs .filter(i => i.signalType === 'Service') .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) - .map(i => ({ ...i, formatted_types: - formatAllServiceInputParameters(i.parameters)})); + .map(i => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); return { success: true, services: servicesList }; - } else { + } return response; - } }); } - saveAgent(token, agentObj) { - debug('saveAgent(%s) => %s', agentObj.name, this.endpoints.agents); - return request - .post(this.endpoints.agents) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(agentObj) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + saveAgent(projectId, token, agentObj) { + checkProject(projectId); + const endpoint = this.endpoints.agents(projectId); + debug('saveAgent(%s) => %s', agentObj.name, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: agentObj, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); } - describeAgent(token, agentName) { - const endpoint = `${this.endpoints.agents}/${agentName}`; + describeAgent(projectId, token, agentName) { + checkProject(projectId); + const endpoint = `${this.endpoints.agents(projectId)}/${agentName}`; debug('describeAgent(%s) => %s', agentName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, agent: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(agent => ({ success: true, agent })) + .catch(err => constructError(err)); } - describeAgentVersions(token, agentName) { - const endpoint = `${this.endpoints.agentVersions}/${agentName}`; + describeAgentVersions(projectId, token, agentName) { + checkProject(projectId); + const endpoint = `${this.endpoints.agents(projectId)}/${agentName}/versions`; debug('describeAgentVersions(%s) => %s', agentName, endpoint); - - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, agent: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(agent => ({ success: true, agent })) + .catch(err => constructError(err)); } - saveType(token, types) { - const names = types.types.map((t) => t.name); + saveType(projectId, token, types) { + checkProject(projectId); + const endpoint = `${this.endpoints.types(projectId)}`; + const names = types.types.map(t => t.name); debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types); - return request - .post(this.endpoints.types) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(types) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: types, }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - describeType(token, typeName) { - const endpoint = `${this.endpoints.types}/${typeName}`; + describeType(projectId, token, typeName) { + checkProject(projectId); + const endpoint = `${this.endpoints.types(projectId)}/${typeName}`; debug('describeType(%s) => %s', typeName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, type: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(type => ({ success: true, type })) + .catch(err => constructError(err)); } - listTypes(token) { + listTypes(projectId, token) { + checkProject(projectId); + const endpoint = `${this.endpoints.types(projectId)}`; debug('listTypes() => %s', this.endpoints.types); - return request - .get(this.endpoints.types) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, types: res.body.types}; - } - return {success: false, status: res.status, message: res.body}; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), }) - .catch((err) => { - return constructError(err); - }); + .json() + .then(types => ({ success: true, ...types })) + .catch(err => constructError(err)); } - saveProfileSchema(token, schemaObj) { - debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); - return request - .post(this.endpoints.profileSchemas) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(schemaObj) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - - listProfileSchemas(token, filter, sort, limit, skip) { - debug('listProfileSchemas() => %s', this.endpoints.profileSchemas); - const req = request - .get(this.endpoints.profileSchemas) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (filter) req.query({ filter }); - if (sort) req.query({ sort }); - if (limit) req.query({ limit }); - if (skip) req.query({ skip }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, schemas: res.body.schemas}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeProfileSchema(token, schemaName) { - const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; - debug('describeProfileSchema(%s) => %s', schemaName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, schema: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - deleteProfileSchema(token, schemaName) { - const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; - debug('deleteProfileSchema(%s) => %s', schemaName, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } + // saveProfileSchema(projectId, token, schemaObj) { + // debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); + // return request + // .post(this.endpoints.profileSchemas) + // .set('Authorization', `Bearer ${token}`) + // .set('x-cortex-proxy-notify', true) + // .send(schemaObj) + // .then((res) => { + // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + // console.error(chalk.blue('Request proxied to cloud.')); + // if (res.ok) { + // return {success: true, message: res.body}; + // } + // return {success: false, message: res.body, status: res.status}; + // }) + // .catch((err) => { + // return constructError(err); + // }); + // } + // + // listProfileSchemas(projectId, token, filter, sort, limit, skip) { + // debug('listProfileSchemas() => %s', this.endpoints.profileSchemas); + // const req = request + // .get(this.endpoints.profileSchemas) + // .set('Authorization', `Bearer ${token}`) + // .set('x-cortex-proxy-notify', true); + // + // if (filter) req.query({ filter }); + // if (sort) req.query({ sort }); + // if (limit) req.query({ limit }); + // if (skip) req.query({ skip }); + // + // return req.then((res) => { + // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + // console.error(chalk.blue('Request proxied to cloud.')); + // if (res.ok) { + // return {success: true, schemas: res.body.schemas}; + // } + // return {success: false, status: res.status, message: res.body}; + // }) + // .catch((err) => { + // return constructError(err); + // }); + // } + // + // describeProfileSchema(projectId, token, schemaName) { + // const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; + // debug('describeProfileSchema(%s) => %s', schemaName, endpoint); + // return request + // .get(endpoint) + // .set('Authorization', `Bearer ${token}`) + // .set('x-cortex-proxy-notify', true) + // .then((res) => { + // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + // console.error(chalk.blue('Request proxied to cloud.')); + // if (res.ok) { + // return {success: true, schema: res.body}; + // } + // else { + // return {success: false, message: res.body, status: res.status}; + // } + // }) + // .catch((err) => { + // return constructError(err); + // }); + // } + // + // deleteProfileSchema(projectId, token, schemaName) { + // const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; + // debug('deleteProfileSchema(%s) => %s', schemaName, endpoint); + // return request + // .delete(endpoint) + // .set('Authorization', `Bearer ${token}`) + // .set('x-cortex-proxy-notify', true) + // .then((res) => { + // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) + // console.error(chalk.blue('Request proxied to cloud.')); + // if (res.ok) { + // return {success: true}; + // } + // else { + // return {success: false, message: res.body, status: res.status}; + // } + // }) + // .catch((err) => { + // return constructError(err); + // }); + // } }; diff --git a/src/client/connections.js b/src/client/connections.js index 007c878d..f77a3ce1 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,120 +14,99 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Connections { - constructor(cortexUrl) { + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/connections`; this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/connections`; } - queryConnection(token, connectionName, queryObject) { - const queryEndpoint = `${this.endpoint}/${connectionName}/query` - debug('queryConnection(%s) => %s', connectionName, queryEndpoint); - return request - .post(queryEndpoint) - .set('Authorization', `Bearer ${token}`) - .send(queryObject) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + async queryConnection(projectId, token, connectionName, queryObject) { + const endpoint = `${this.endpoint(projectId)}/${connectionName}/query`; + debug('queryConnection(%s) => %s', connectionName, endpoint); + try { + const message = await got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: queryObject, + }).json(); + return { success: true, message }; + } catch (err) { + return constructError(err); + } } - listConnections(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + listConnections(projectId, token) { + const endpoint = `${this.endpoint(projectId)}`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - saveConnection(token, connObj) { - debug('saveConnection(%s) => %s', connObj.name, this.endpoint); - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .send(connObj) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + async saveConnection(projectId, token, connObj) { + const endpoint = `${this.endpoint(projectId)}`; + debug('saveConnection(%s) => %s', connObj.name, this.endpoint(projectId)); + try { + const message = await got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: connObj, + }).json(); + return { success: true, message }; + } catch (err) { + return constructError(err); + } } - describeConnection(token, connectionName) { - const endpoint = `${this.endpoint}/${connectionName}`; + describeConnection(projectId, token, connectionName) { + const endpoint = `${this.endpoint(projectId)}/${connectionName}`; debug('describeConnection(%s) => %s', connectionName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - testConnection(token, {name, title, description, connectionType, allowWrite, tags, params}) { - const url = this.endpoint + '/test'; + async testConnection(projectId, token, { + name, title, description, connectionType, allowWrite, tags, params, + }) { + const url = `${this.cortexUrl}/fabric/v4/projects/${projectId}/connectiontest`; debug('saveConnection(%s) => %s', name, url); - return request - .post(url) - .set('Authorization', `Bearer ${token}`) - .send({name, title, description, connectionType, allowWrite, tags, params}) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.message, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + try { + const message = await got + .post(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { + name, title, description, connectionType, allowWrite, tags, params, + }, + }).json(); + return { success: true, message }; + } catch (err) { + return constructError(err); + } } listConnectionsTypes(token) { - const endpoint = `${this.endpoint}/types`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + const endpoint = `${this.cortexUrl}/fabric/v4/connectiontypes`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - }; - diff --git a/src/client/content.js b/src/client/content.js index 5d52faf4..e60402b5 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,21 +15,20 @@ */ const fs = require('fs'); -const os = require('os'); -const path = require('path'); -const { URL } = require('url'); +const stream = require('stream'); -const ProgressBar = require('progress'); -const { request } = require('../commands/apiutils'); +const { promisify } = require('util'); const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); -const { getUserAgent } = require('../useragent'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); +const Variables = require('./variables'); -module.exports = class Content { +const pipeline = promisify(stream.pipeline); +module.exports = class Content { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/content`; + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/content`; } _sanitizeKey(key) { @@ -37,209 +36,81 @@ module.exports = class Content { return key.replace(/^\//, ''); } - listContent(token) { - debug('listContent %s', this.endpoint); - return request - .get(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + listContent(projectId, token) { + const endpoint = this.endpoint(projectId); + debug('listContent %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - uploadContent(token, {content, key}) { - debug('uploadContent(%s, %s) => %s', key, content, this.endpoint); + // eslint-disable-next-line no-unused-vars + async uploadContentStreaming(projectId, token, key, content, showProgress = false, contentType = 'application/octet-stream') { const contentKey = this._sanitizeKey(key); - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .field('key', contentKey) - .attach('content', content) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - - uploadContentStreaming(token, key, content, showProgress = false, contentType='application/octet-stream') { - debug('uploadContentStreaming(%s, %s) => %s', key, content, `${this.endpoint}/${key}`); - - // NOTE: superagent only supports uploads via .attach(), which uses multipart forms (@see - // https://github.com/visionmedia/superagent/issues/1250). To perform a streaming upload, - // we use requestjs instead. - const requestLibRequest = require('request'); - - const contentKey = this._sanitizeKey(key); - const url = new URL(`${this.endpoint}/${contentKey}`); - - let progressBar; - if (showProgress) { - progressBar = new ProgressBar( - ' uploading [:bar] :percent :etas', - { renderThrottle: 500, total: fs.statSync(content).size } + const endpoint = `${this.endpoint(projectId)}/${contentKey}`; + // todo show progress.. + debug('uploadContentStreaming(%s, %s) => %s', key, content, endpoint); + try { + const message = await pipeline( + fs.createReadStream(content), + got.stream.post(endpoint, { + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': contentType, + }, + }), ); + return { success: true, message }; + } catch (err) { + return constructError(err); } - - return new Promise((resolve) => { - fs - .createReadStream(content) - .on('data', (chunk) => { - progressBar && progressBar.tick(chunk.length); - }) - .pipe(requestLibRequest - .post({ - uri: url, - headers: { - 'Accept': 'application/json', - 'Authorization': `Bearer ${token}`, - 'Content-Type': contentType, - 'User-Agent': getUserAgent(), - } - }, function(err, res, body) { - if (err) { - resolve({success: false, message: err.message}); - return; - } - if (res.statusCode === 200) { - resolve({success: true, message: body}); - return; - } - // NOTE this is using npm request NOT superagent - fields are different - resolve({success: false, message: body, status: res.statusCode}); - }) - ); - }); } - uploadSecureContent(token, key, content) { + async uploadSecureContent(projectId, token, key, content) { const contentKey = this._sanitizeKey(key); - const url = `${this.cortexUrl}/v2/tenants/secrets/${contentKey}`; - debug('uploadSecureContent(%s) => %s', content, url); - return request - .post(url) - .set('Authorization', `Bearer ${token}`) - .send(content) - .accept('application/json') - .type('json') - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const vars = new Variables(this.cortextUrl); + return vars.writeVariable(projectId, token, contentKey, content); } - - deleteContent(token, key) { - debug('deleteContent(%s) => %s', key, this.endpoint); + deleteContent(projectId, token, key) { const contentKey = this._sanitizeKey(key); - const url = `${this.endpoint}/${contentKey}`; - return request - .delete(url) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const endpoint = `${this.endpoint(projectId)}/${contentKey}`; + debug('deleteContent => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - downloadContent(token, key, showProgress = false) { - debug('downloadContent(%s) => %s', key, this.endpoint); + // TODO progress + // eslint-disable-next-line no-unused-vars + async downloadContent(projecId, token, key, showProgress = false) { const contentKey = this._sanitizeKey(key); - const url = `${this.endpoint}/${contentKey}`; - - const stream = request - .get(url) - .set('Authorization', `Bearer ${token}`) - .use((req) => { - if (showProgress) { - req.on('request', (clientReq) => { - clientReq.on('response', function(res) { - const total = +(res.headers['content-length'] || res.headers['Content-Length']); - const progressBar = new ProgressBar( - ' downloading [:bar] :percent :etas', - { - current: 0, - renderThrottle: 500, - total: total, - } - ); - - res.on('data', (chunk) => progressBar.tick(chunk.length)); - }); - }); - } - }); - - return new Promise((resolve, reject) => { - stream.on('response', function(response) { - if (response.status !== 200) { - stream.abort(); - return resolve({ - success: false, - status: stream.response.status, - message: stream.response.error - }); - } - }); - - stream.on('end', () => { - return resolve({ - success: true, - message: `\nDownloaded ${contentKey}`, - status: stream.response.status - }); - }); - - stream.on('error', (err) => { - return resolve(constructError(err)); - }); - - stream.pipe(process.stdout); - }); + const endpoint = `${this.endpoint(projecId)}/${contentKey}`; + debug('downloadContent(%s) => %s', key, this.endpoint); + try { + return pipeline( + got.stream(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }), + process.stdout, + ); + } catch (err) { + return constructError(err); + } } - - downloadSecureContent(token, key) { + async downloadSecureContent(projectId, token, key) { const contentKey = this._sanitizeKey(key); - const url = `${this.cortexUrl}/v2/tenants/secrets/${contentKey}`; - debug('downloadContent(%s) => %s', contentKey, url); - return request - .get(url) - .set('Authorization', `Bearer ${token}`) - .accept('application/json') - .then((res) => { - if (res.ok) { - return {success: true, message: res.text}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const vars = new Variables(this.cortextUrl); + return vars.readVariable(projectId, token, contentKey); } - }; - diff --git a/src/client/datasets.js b/src/client/datasets.js index 3c6e3dbd..de6a3418 100644 --- a/src/client/datasets.js +++ b/src/client/datasets.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,105 +14,73 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Datasets { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v3/datasets`; + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/datasets`; } - listDatasets(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + listDatasets(projectId, token) { + const endpoint = `${this.endpoint(projectId)}`; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - saveDatasets(token,dsObject) { + saveDatasets(projectId, token, dsObject) { + const endpoint = `${this.endpoint(projectId)}`; debug('saveConnection(%s) => %s', dsObject.name, this.endpoint); - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .send(dsObject) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; // don't think we ever hit this - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: dsObject, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); } - describeDataset(token, datasetName) { - const endpoint = `${this.endpoint}/${datasetName}`; + describeDataset(projectId, token, datasetName) { + const endpoint = `${this.endpoint(projectId)}/${datasetName}`; debug('describeConnection(%s) => %s', datasetName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); +} - getDataframe (token, datasetName) { - const endpoint = `${this.endpoint}/${datasetName}/dataframe`; + getDataframe(projectId, token, datasetName) { + const endpoint = `${this.endpoint(projectId)}/${datasetName}/dataframe`; debug('describeConnection(%s) => %s', datasetName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - streamDataset(token, datasetName) { - const endpoint = `${this.endpoint}/${datasetName}/stream`; + streamDataset(projectId, token, datasetName) { + const endpoint = `${this.endpoint(projectId)}/${datasetName}/stream`; debug('describeConnection(%s) => %s', datasetName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .buffer() - .then((res) => { - if (res.ok) { - return {success: true, result: res}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } }; diff --git a/src/client/environments.js b/src/client/environments.js deleted file mode 100644 index 158ed6fc..00000000 --- a/src/client/environments.js +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); - -module.exports = class Environments { - - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/agents/environments`; - } - - listEnvironments(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); - } - - saveEnvironment(token, env) { - debug('saveEnvironment(%s) => %s', env.name, this.endpoint); - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .send(env) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - promoteEnvironment(token, promoteDef) { - debug('promoteEnvironment(%s) => %s', promoteDef.environmentName, this.endpoint); - return request - .post(`${this.endpoint}/promote`) - .set('Authorization', `Bearer ${token}`) - .send(promoteDef) - .then((res) => { - if (res.ok) { - return {success: true, message: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeEnvironment(token, environmentName) { - const endpoint = `${this.endpoint}/${environmentName}`; - debug('describeEnvironment(%s) => %s', environmentName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - else { - return {success: false, message: res.body, status: res.status}; - } - }) - .catch((err) => { - return constructError(err); - }); - } - - listInstances(token, environmentName) { - const endpoint = `${this.endpoint}/${environmentName}/instances`; - debug('listInstances(%s) => %s', environmentName, this.endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); - } -}; - diff --git a/src/client/experiments.js b/src/client/experiments.js index d7e91759..c5129934 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,177 +14,109 @@ * limitations under the License. */ -const { request } = require('../commands/apiutils'); const debug = require('debug')('cortex:cli'); -const ProgressBar = require('progress'); -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); +const Content = require('./content'); module.exports = class Experiments { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/experiments`; + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; } - listExperiments(token) { - const endpoint = `${this.endpoint}`; + listExperiments(projectId, token) { + const endpoint = `${this.endpoint(projectId)}`; debug('listExperiments() => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - describeExperiment(token, name) { - const endpoint = `${this.endpoint}/${name}`; + describeExperiment(projectId, token, name) { + const endpoint = `${this.endpoint(projectId)}/${name}`; debug('describeExperiment(%s) => %s', name, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - deleteExperiment(token, name) { - const endpoint = `${this.endpoint}/${name}`; + deleteExperiment(projectId, token, name) { + const endpoint = `${this.endpoint(projectId)}/${name}`; debug('deleteExperiment(%s) => %s', name, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - listRuns(token, experimentName, filter, limit, sort) { - const endpoint = `${this.endpoint}/${experimentName}/runs`; + listRuns(projectId, token, experimentName, filter, limit, sort) { + const endpoint = `${this.endpoint(projectId)}/${experimentName}/runs`; debug('listRuns(%s) => %s', experimentName, endpoint); - const req = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`); - - if (filter) req.query({filter}); - if (limit) req.query({limit}); - if (sort) req.query({sort}); - - return req.then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - describeRun(token, experimentName, runId) { - const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}`; + describeRun(projectId, token, experimentName, runId) { + const endpoint = `${this.endpoint(projectId)}/${experimentName}/runs/${runId}`; debug('describeRun(%s) => %s', runId, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - deleteRun(token, experimentName, runId) { - const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}`; + deleteRun(projectId, token, experimentName, runId) { + const endpoint = `${this.endpoint(projectId)}/${experimentName}/runs/${runId}`; debug('deleteRun(%s) => %s', runId, endpoint); - return request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - downloadArtifact(token, experimentName, runId, artifactName, showProgress = false) { - const endpoint = `${this.endpoint}/${experimentName}/runs/${runId}/artifacts/${artifactName}`; - debug('downloadArtifact(%s) => %s', artifactName, endpoint); - - const stream = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .use((req) => { - if (showProgress) { - req.on('request', (clientReq) => { - clientReq.on('response', function(res) { - const total = +(res.headers['content-length'] || res.headers['Content-Length']); - const progressBar = new ProgressBar( - ' downloading [:bar] :percent :etas', - { - current: 0, - renderThrottle: 500, - total: total, - } - ); - - res.on('data', (chunk) => progressBar.tick(chunk.length)); - }); - }); - } - }); - - return new Promise((resolve, reject) => { - stream.on('response', function(response) { - if (response.status !== 200) { - stream.abort(); - return resolve({ - success: false, - status: stream.response.status, - message: stream.response.error - }); - } - }); - - stream.on('end', () => { - return resolve({ - success: true, - message: `\nDownloaded ${artifactName}`, - status: stream.response.status - }); - }); - - stream.on('error', (err) => { - return resolve(constructError(err)); - }); + _artifactKey(experimentName, runId, artifact) { + return `experiments/${experimentName}/${runId}/artifacts/${artifact}`; + } - stream.pipe(process.stdout); - }); + // eslint-disable-next-line no-unused-vars + async downloadArtifact(projectId, token, experimentName, runId, artifactName, showProgress = false) { + try { + // Check if run exists.. + await this.describeRun(projectId, token, experimentName, runId); + // just generate the key and avoid hop to managed content.. + const key = this._artifactKey(experimentName, runId, artifactName); + const cont = new Content(this.cortexUrl); + return cont.downloadContent(projectId, token, key, showProgress); + } catch (err) { + return constructError(err); + } } }; diff --git a/src/client/graph.js b/src/client/graph.js index a096512c..c786d504 100644 --- a/src/client/graph.js +++ b/src/client/graph.js @@ -14,314 +14,191 @@ * limitations under the License. */ -const Throttle = require('superagent-throttle'); const debug = require('debug')('cortex:cli:graph'); -const _ = require('lodash'); -const chalk = require('chalk'); -const { constructError } = require('../commands/utils'); -const { request } = require('../commands/apiutils'); - -const createEndpoints = (baseUri) => { - return { - profileVersions: `${baseUri}/v3/graph/profile-versions`, - profiles: `${baseUri}/v3/graph/profiles`, - schemas: `${baseUri}/v3/graph/profiles/schemas`, - events: `${baseUri}/v3/graph/events`, - entities: `${baseUri}/v3/graph/entities`, - track: `${baseUri}/v3/graph/events/track`, - query: `${baseUri}/v3/graph/query`, - } -}; - -const throttle = new Throttle({ - active: true, - concurrent: 20, - rate: 500, - ratePer: 1000, +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); + +const createEndpoints = baseUri => ({ + profileVersions: projectId => `${baseUri}/fabric/v4/projects/${projectId}/profile-versions`, + profiles: projectId => `${baseUri}/fabric/v4/projects/${projectId}/profiles`, + schemas: projectId => `${baseUri}/fabric/v4/projects/${projectId}/profiles/schemas`, + events: projectId => `${baseUri}/fabric/v4/projects/${projectId}/events`, + entities: projectId => `${baseUri}/fabric/v4/projects/${projectId}/entities`, + track: projectId => `${baseUri}/fabric/v4/projects/${projectId}/events/track`, + query: projectId => `${baseUri}/fabric/v4/projects/${projectId}/query`, }); class Graph { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoints = createEndpoints(cortexUrl); } - listProfiles(token, filter, sort, limit, skip) { - debug('listProfiles() => GET %s', this.endpoints.profiles); - const req = request - .get(this.endpoints.profiles) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (filter) req.query({ filter }); - if (sort) req.query({ sort }); - if (limit) req.query({ limit }); - if (skip) req.query({ skip }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, profiles: res.body.profiles}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + listProfiles(projectId, token, filter, sort, limit, skip) { + debug('listProfiles() => GET %s', this.endpoints.profiles(projectId)); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.sort = skip; + return got + .get(this.endpoints.profiles(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(profiles => ({ success: true, profiles })) + .catch(err => constructError(err)); } - listProfileVersions(token, profileId, schemaNames, before, after, limit) { + listProfileVersions(projectId, token, profileId, schemaNames, before, after, limit) { const endpoint = `${this.endpoints.profileVersions}/${profileId}`; debug('listProfileVersions(%s) => GET %s', profileId, endpoint); - const req = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (schemaNames) req.query({ schemaNames }); - if (before) req.query({ before }); - if (after) req.query({ after }); - if (limit) req.query({ limit }); - - return req.then((res) => { - if (res.ok) { - return { success: true, versions: res.body.versions }; - } - return { success: false, message: res.body, status: res.status }; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + if (schemaNames) query.schemaNames = schemaNames; + if (before) query.before = before; + if (after) query.after = after; + query.limit = 100; + if (limit) query.limit = limit; + + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(versions => ({ success: true, versions })) + .catch(err => constructError(err)); } - describeProfile(token, profileId, schemaName, historic, versionLimit, attribute) { - const endpoint = `${this.endpoints.profiles}/${profileId}`; + describeProfile(projectId, token, profileId, schemaName, historic, versionLimit, attribute) { + const endpoint = `${this.endpoints.profiles(projectId)}/${profileId}`; debug('describeProfile(%s) => GET %s', profileId, endpoint); - - const req = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (schemaName) req.query({ schemaNames: schemaName }); - if (historic) req.query({ historic }); - if (versionLimit) req.query({ versionLimit }); - if (attribute) req.query({ attributes: attribute }); - - return req.then((res) => { - if (res.ok) { - return {success: true, profile: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + if (schemaName) query.schemaName = schemaName; + if (historic) query.historic = historic; + if (versionLimit) query.versionLimit = versionLimit; + if (attribute) query.attribute = attribute; + + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(profile => ({ success: true, profile })) + .catch(err => constructError(err)); } - deleteProfile(token, profileId, schemaName) { - const endpoint = `${this.endpoints.profiles}/${profileId}`; + deleteProfile(projectId, token, profileId, schemaName) { + const endpoint = `${this.endpoints.profiles(projectId)}/${profileId}`; debug('deleteProfile(%s) => DELETE %s', profileId, endpoint); - - const req = request - .delete(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (schemaName) req.query({ schema: schemaName }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true,}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + if (schemaName) query.schema = schemaName; + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(() => ({ success: true })) + .catch(err => constructError(err)); } - findEvents(token, filter, sort, limit, skip) { - debug('findEvents() => GET %s', this.endpoints.events); - - const req = request - .get(this.endpoints.events) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - if (filter) req.query({ filter }); - if (sort) req.query({ sort }); - - if (limit) { - req.query({ limit }); - } - else { - req.query({ limit: 50 }); - } - - if (skip) req.query({ skip }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, events: res.body.events}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + findEvents(projectId, token, filter, sort, limit, skip) { + const endpoint = this.endpoints.events(projectId); + debug('findEvents() => GET %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (sort) query.sort = sort; + // ?? if (versionLimit) query.versionLimit = versionLimit; + if (skip) query.skip = skip; + query.limit = 50; + if (limit) query.limit = limit; + + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(events => ({ success: true, events })) + .catch(err => constructError(err)); } - publishEntities(token, entityEvents) { - debug('publishEntities() => POST %s', this.endpoints.events); - - return request - .post(this.endpoints.events) - .use(throttle.plugin()) - .retry(3, (err, res) => { - if (err) { - debug(`retry on error: ${err}`); - return true; - } - - if (res) { - // Retry on 502, 503, 504 - gateway errors - if (res.status >= 502 && res.status <= 504) { - debug(`server/gateway error with status ${res.status}, retrying request`); - return true; - } - - // Retry on 429 - rate limit - if (res.status == 429) { - debug(`retry after rate limit exceeded`); - return true; - } - } - - return false; - }) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .type('json') - .send(entityEvents) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body.message || res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + publishEntities(projectId, token, entityEvents) { + debug('publishEntities() => POST %s', this.endpoints.events(projectId)); + return got + .post(this.endpoints.events(projectId), { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: entityEvents, + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - track(token, event) { - debug('track() => POST %s', this.endpoints.track); - - return request - .post(this.endpoints.track) - .use(throttle.plugin()) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .type('json') - .send(event) - .then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - - if (res.ok) { - return {success: true, message: res.body.message || res.body}; - } - - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - const e = constructError(err); - debug(e); - return e; - }); + track(projectId, token, event) { + // TODO re-enable throttling + const endpoint = this.endpoints.track(projectId); + debug('track() => POST %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: event, + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - rebuildProfiles(token, schemaName, profileId, filter, sort, limit, skip) { + rebuildProfiles(projectId, token, schemaName, profileId, filter, sort, limit, skip) { const endpoint = `${this.endpoints.schemas}/${schemaName}/rebuild`; debug('rebuildProfiles() => PUT %s', endpoint); - const req = request - .put(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - req.query({ filter: filter ? filter : {} }); - - if (profileId) req.query({ profileId }); - if (sort) req.query({ sort }); - if (limit) req.query({ limit }); - if (skip) req.query({ skip }); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, message: res.body.message || res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + const query = {}; + query.filter = filter || {}; + + if (profileId) query.profileId = profileId; + if (sort) query.sort = sort; + if (limit) query.limit = limit; + if (skip) query.skip = skip; + + return got + .put(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { query }, + }).json() + .then(message => ({ success: true, message })) + .catch(err => constructError(err)); } - getEntity(token, entityId) { + getEntity(projectId, token, entityId) { const endpoint = `${this.endpoints.entities}/${entityId}`; debug('getEntity(%s) => GET %s', entityId, endpoint); - const req = request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true); - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, entity: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(entity => ({ success: true, entity })) + .catch(err => constructError(err)); } - query(token, query) { + query(projectId, token, query) { const endpoint = this.endpoints.query; debug('queryGraph(%s) => POST %s', query, endpoint); - const req = request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send({ query }) - - return req.then((res) => { - if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - console.error(chalk.blue('Request proxied to cloud.')); - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, message: res.body, status: res.status}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { query }, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } } diff --git a/src/client/jobs.js b/src/client/jobs.js deleted file mode 100644 index 2212fe09..00000000 --- a/src/client/jobs.js +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); -const Actions = require('./actions'); - -module.exports = class Jobs { - - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/jobs`; - } - - listJobs(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeJob(token, name) { - const endpoint = `${this.endpoint}/${name}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - jobStatus(token, jobDefinition) { - const endpoint = `${this.endpoint}/${jobDefinition}/stats`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - async saveJob(token, {name, image, command, memory, vcpus, environment}, pushDocker) { - const action = new Actions(this.cortexUrl); - try { - image = await action._maybePushDockerImage(image, token, pushDocker); - } catch (error) { - return {success: false, status: 400, message: error.message || error}; - } - - return request - .post(this.endpoint) - .set('Authorization', `Bearer ${token}`) - .send({name, image, command, memory, vcpus, environment}) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } -}; \ No newline at end of file diff --git a/src/client/roles.js b/src/client/roles.js new file mode 100644 index 00000000..d85550fa --- /dev/null +++ b/src/client/roles.js @@ -0,0 +1,151 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); + +module.exports = class Roles { + constructor(cortexUrl, role, flags = []) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/fabric/v4`; + this.flags = ''; + + if (role) { + this.rolesEndpoint = `${this.endpoint}/roles/${role}`; + } else { + this.rolesEndpoint = `${this.endpoint}/roles`; + } + this.rolesUsersEndpoint = `${this.rolesEndpoint}/users`; + this.rolesGrantsEndpoint = `${this.rolesEndpoint}/grants`; + + if (flags.length > 0) { + this.flags = `${flags.reduce((flagString, flag) => { + if (flagString) { + flagString += `&${flag}=true`; + } else { + flagString += `?${flag}=true`; + } + return flagString; + }, '')}`; + } + } + + describeRole(token) { + const endpoint = this.rolesEndpoint + this.flags; + debug('describeRole => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + + deleteRole(token) { + const endpoint = this.rolesEndpoint; + debug('deleteRole => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + createRole(token, body) { + const endpoint = this.rolesEndpoint; + debug('createRole => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + + addUsersToRole(token, users) { + const endpoint = `${this.rolesUsersEndpoint}`; + debug('addUsersToRole => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { users }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeUsersFromRole(token, users) { + const endpoint = `${this.rolesUsersEndpoint}`; + debug('removeUsersFromRole => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { users }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + createGrantForRole(token, body) { + const endpoint = `${this.rolesGrantsEndpoint}`; + debug('createGrantForRole => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeGrantFromRole(token, body) { + const endpoint = `${this.rolesGrantsEndpoint}`; + debug('removeGrantFromRole => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + listRoles(token, project) { + let endpoint = this.rolesEndpoint; + if (project) { + endpoint += `?project=${project}`; + } + debug('listRoles => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } +}; diff --git a/src/client/tasks.js b/src/client/tasks.js deleted file mode 100644 index d7a2e7f7..00000000 --- a/src/client/tasks.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const { request } = require('../commands/apiutils'); -const debug = require('debug')('cortex:cli'); -const { constructError } = require('../commands/utils'); - -module.exports = class Tasks { - - constructor(cortexUrl, jobId) { - this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/jobs/${jobId}/tasks`; - } - - listTasks(token) { - const endpoint = `${this.endpoint}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - taskLogs(token, taskId) { - const endpoint = `${this.endpoint}/${taskId}/logs`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - cancelTask(token, taskId, message) { - const endpoint = `${this.endpoint}/${taskId}/cancel`; - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .send({message}) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } - - describeTask(token, taskId) { - const endpoint = `${this.endpoint}/${taskId}`; - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .then((res) => { - if (res.ok) { - return { success: true, result: res.body }; - } - return { success: false, status: res.status, message: res.body }; - }) - .catch((err) => { - return constructError(err); - }); - } -}; \ No newline at end of file diff --git a/src/client/users.js b/src/client/users.js new file mode 100644 index 00000000..73302ab1 --- /dev/null +++ b/src/client/users.js @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); + +module.exports = class Users { + constructor(cortexUrl, user, flags = []) { + this.cortexUrl = cortexUrl; + this.endpoint = `${cortexUrl}/fabric/v4`; + this.flags = ''; + + if (user) { + this.usersEndpoint = `${this.endpoint}/usergrants/${user}`; + } else { + this.usersEndpoint = `${this.endpoint}/usergrants`; + } + if (flags.length > 0) { + this.flags = `${flags.reduce((flagString, flag) => { + if (flagString) { + flagString += `&${flag}=true`; + } else { + flagString += `?${flag}=true`; + } + return flagString; + }, '')}`; + } + } + + describeUser(token) { + const endpoint = `${this.usersEndpoint}/${this.flags}`; + debug('listForUser => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + createGrantForUser(token, body) { + const endpoint = this.usersEndpoint; + debug('createGrantForUser => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeGrantFromUser(token, body) { + const endpoint = this.usersEndpoint; + debug('removeGrantFromUser => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } +}; diff --git a/src/client/variables.js b/src/client/variables.js index aa561d4e..6c19eeb3 100644 --- a/src/client/variables.js +++ b/src/client/variables.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,71 +15,50 @@ */ const debug = require('debug')('cortex:cli'); -const { request } = require('../commands/apiutils'); - -const { constructError } = require('../commands/utils'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Variables { - constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = `${cortexUrl}/v2/tenants/secrets/variables`; + this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/secrets`; } - listVariables(token) { - const endpoint = `${this.endpoint}?list=true`; + listVariables(projectId, token) { + const endpoint = `${this.endpoint(projectId)}?list=true`; debug('listVariables => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - readVariable(token, keyName) { - const endpoint = `${this.endpoint}/${keyName}`; - const body = {} + readVariable(projectId, token, keyName) { + const endpoint = `${this.endpoint(projectId)}/${keyName}`; debug('readVariable($s) => %s', keyName, endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } - writeVariable(token, keyName, value) { - const endpoint = `${this.endpoint}/${keyName}`; + writeVariable(projectId, token, keyName, value) { + const endpoint = `${this.endpoint(projectId)}/${keyName}`; debug('writeVariable(%s) => %s', keyName, endpoint); const body = { value }; - return request - .post(endpoint) - .set('Authorization', `Bearer ${token}`) - .set('x-cortex-proxy-notify', true) - .send(body) - .then((res) => { - if (res.ok) { - return {success: true, result: res.body}; - } - return {success: false, status: res.status, message: res.body}; - }) - .catch((err) => { - return constructError(err); - }); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: body, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); } }; diff --git a/src/commander.js b/src/commander.js index 46b7931a..5f993891 100644 --- a/src/commander.js +++ b/src/commander.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -22,24 +22,24 @@ const { exportDoc } = require('./commands/utils.js'); // Monkey-patch `commander` library to keep track of when an action executes commander.Command.prototype._action = commander.Command.prototype.action; -commander.Command.prototype.action = function(fn) { +commander.Command.prototype.action = function (fn) { return this._action(function wrapped(...args) { (this.parent || this)._actionTaken = true; fn(...args); }); }; -commander.Command.prototype.wasActionTaken = function() { +commander.Command.prototype.wasActionTaken = function () { return (this.parent || this)._actionTaken || false; }; -commander.Command.prototype.helpAndExit = function() { +commander.Command.prototype.helpAndExit = function () { this.outputHelp(identity); process.exit(1); }; commander.Command.prototype._parse = commander.Command.prototype.parse; -commander.Command.prototype.parse = function(argv, options) { +commander.Command.prototype.parse = function (argv, options) { const defaultOpts = { noActionHandler: this.helpAndExit.bind(this) }; const opts = merge(defaultOpts, options || {}); process.env.DOC && exportDoc(this); @@ -47,7 +47,7 @@ commander.Command.prototype.parse = function(argv, options) { this._parse(argv); if (!this.wasActionTaken()) { if (process.env.CORTEX_TOKEN) { - console.error("Using token from environment variable $CORTEX_TOKEN") + console.error('Using token from environment variable $CORTEX_TOKEN'); } opts.noActionHandler(); } diff --git a/src/commands/accounts.js b/src/commands/accounts.js deleted file mode 100644 index dc63b9a9..00000000 --- a/src/commands/accounts.js +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Accounts = require('../client/accounts'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - -module.exports.CreateGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, options) { - const profile = loadProfile(options.profile); - debug('%s.createGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - const description = options.description; - accounts.createGroup(profile.token, groupName, description).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to create group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to create group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.AddMembersToGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, members, options) { - const profile = loadProfile(options.profile); - debug('%s.addMembersToGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - accounts.addMembersToGroup(profile.token, groupName, members).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to add members to group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to add members to group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListGroupsCommand = class { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listGroups', profile.name); - - const accounts = new Accounts(profile.url); - accounts.listGroups(profile.token).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - if (options.json) - printSuccess(JSON.stringify(result, null, 2), options); - else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 50 }, - { column: 'Owner', field: 'owner', width: 25 }, - { column: 'Description', field: 'description', width: 50 }, - { column: 'Tenant', field: 'tenant', width: 25 }, - { column: 'Members', field: 'members', width: 30 }, - { column: 'Upsert Date', field: 'upsert_date', width: 26 } - ]; - - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list groups : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list groups : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, options) { - const profile = loadProfile(options.profile); - debug('%s.describeGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - accounts.describeGroup(profile.token, groupName).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to describe group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DeleteGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, options) { - const profile = loadProfile(options.profile); - debug('%s.deleteGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - accounts.deleteGroup(profile.token, groupName).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to delete group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.RemoveMembersFromGroupCommand = class { - - constructor(program) { - this.program = program; - } - - execute(groupName, members, options) { - const profile = loadProfile(options.profile); - debug('%s.removeMembersFromGroup(%s)', profile.name, groupName); - - const accounts = new Accounts(profile.url); - accounts.removeMembersFromGroup(profile.token, groupName, members).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to remove members from group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to remove members from group : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.RegisterResourceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(resourceName, options) { - const profile = loadProfile(options.profile); - debug('%s.registerResource(%s)', profile.name, resourceName); - - const accounts = new Accounts(profile.url); - const description = options.description; - const access = options.access; - accounts.registerResource(profile.token, resourceName, description, access).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to register resource : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to register resource : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.GrantGroupAccessToResourceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(resourceId, groupName, options) { - const profile = loadProfile(options.profile); - debug('%s.grantGroupAccessToResource(resourceId: %s, groupName: %s)', profile.name, resourceId, groupName); - - const accounts = new Accounts(profile.url); - accounts.grantGroupAccessToResource(profile.token, resourceId, groupName).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to grant group access to resource : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to grant group access to resource : ${err.status} ${err.message}`, options); - }); - } -}; - -// TODO: To be implemented -// module.exports.ListResourcesCommand = class { -// -// constructor(program) { -// this.program = program; -// } -// -// execute(options) { -// const profile = loadProfile(options.profile); -// debug('%s.listGroups', profile.name); -// -// const accounts = new Accounts(profile.url); -// accounts.listResources(profile.token).then((response) => { -// if (response.success) { -// let result = filterObject(response.result, options); -// if (options.json) -// printSuccess(JSON.stringify(result, null, 2), options); -// else { -// const tableSpec = [ -// { column: 'Name', field: 'name', width: 50 }, -// { column: 'Owner', field: 'owner', width: 25 }, -// { column: 'Description', field: 'description', width: 50 }, -// { column: 'Tenant', field: 'tenant', width: 25 }, -// { column: 'Members', field: 'members', width: 30 }, -// { column: 'Upsert Date', field: 'upsert_date', width: 26 } -// ]; -// -// printTable(tableSpec, result); -// } -// } -// else { -// printError(`Failed to add members to group : ${response.message}`, options); -// } -// }) -// .catch((err) => { -// printError(`Failed to add members to group : ${err.status} ${err.message}`, options); -// }); -// } -// }; - -// TODO: To be implemented -// module.exports.UnregisterResourceCommand = class { -// -// constructor(program) { -// this.program = program; -// } -// -// execute(resourceName, options) { -// const profile = loadProfile(options.profile); -// debug('%s.deleteGroup(%s)', profile.name, resourceName); -// -// const accounts = new Accounts(profile.url); -// accounts.unregisterResource(profile.token, resourceName).then((response) => { -// if (response.success) { -// let result = filterObject(response.result, options); -// printSuccess(JSON.stringify(result, null, 2), options); -// } -// else { -// printError(`Failed to delete group : ${response.message}`, options); -// } -// }) -// .catch((err) => { -// printError(`Failed to delete group : ${err.status} ${err.message}`, options); -// }); -// } -// }; - -// TODO: To be implemented -// module.exports.RevokeGroupAccessToResourceCommand = class { -// -// constructor(program) { -// this.program = program; -// } -// -// execute(resourceId, options) { -// const profile = loadProfile(options.profile); -// debug('%s.revokeGroupAccessToResource(%s)', profile.name, resourceId); -// -// const accounts = new Accounts(profile.url); -// accounts.revokeGroupAccessToResource(profile.token, resourceId).then((response) => { -// if (response.success) { -// let result = filterObject(response.result, options); -// printSuccess(JSON.stringify(result, null, 2), options); -// } -// else { -// printError(`Failed to delete group : ${response.message}`, options); -// } -// }) -// .catch((err) => { -// printError(`Failed to delete group : ${err.status} ${err.message}`, options); -// }); -// } -// }; \ No newline at end of file diff --git a/src/commands/actions.js b/src/commands/actions.js index 02bdc4a1..e731cee0 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,14 +15,14 @@ */ const _ = require('lodash'); const fs = require('fs'); -const uuid = require('uuid/v4'); const debug = require('debug')('cortex:cli'); -const {loadProfile} = require('../config'); +const { loadProfile } = require('../config'); const Actions = require('../client/actions'); -const {printSuccess, printWarning, printError, filterObject, parseObject, printTable} = require('./utils'); +const { + printSuccess, printWarning, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.ListActionsCommand = class { - constructor(program) { this.program = program; } @@ -32,27 +32,24 @@ module.exports.ListActionsCommand = class { debug('%s.executeListActions()', profile.name); const actions = new Actions(profile.url); - actions.listActions(profile.token) + actions.listActions(options.project || profile.project, profile.token) .then((response) => { if (response.success) { let result = response.actions; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ - {column: 'Name', field: 'name', width: 50}, - {column: 'Image', field: 'image', width: 50}, - {column: 'Created On', field: 'createdAt', width: 26} + { column: 'Name', field: 'name', width: 50 }, + { column: 'Image', field: 'image', width: 50 }, + { column: 'Created On', field: 'createdAt', width: 26 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list actions: ${response.status} ${response.message}`, options); } }) @@ -63,7 +60,6 @@ module.exports.ListActionsCommand = class { }; module.exports.DescribeActionCommand = class { - constructor(program) { this.program = program; } @@ -73,13 +69,12 @@ module.exports.DescribeActionCommand = class { debug('%s.executeDescribeAction(%s)', profile.name, actionName); const actions = new Actions(profile.url); - actions.describeAction(profile.token, actionName) + actions.describeAction(options.project || profile.project, profile.token, actionName) .then((response) => { if (response.success) { - let result = filterObject(response.action, options); + const result = filterObject(response.action, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe action: ${response.status} ${response.message}`, options); } }) @@ -90,7 +85,6 @@ module.exports.DescribeActionCommand = class { }; module.exports.DeployActionCommand = class { - constructor(program) { this.program = program; } @@ -99,27 +93,27 @@ module.exports.DeployActionCommand = class { const profile = loadProfile(options.profile); debug('%s.deployAction(%s)', profile.name, actionName); - let params = {}; + const params = {}; if (options.podspec) { const paramsStr = fs.readFileSync(options.podspec); params.podSpec = parseObject(paramsStr, options); } - if(options.kind){ - printWarning("The kind option has been deprecated and will be ignored.", options); + if (options.kind) { + printWarning('The kind option has been deprecated and will be ignored.', options); } - if(options.code){ - printWarning("The code option has been deprecated and will be ignored." + - " Use the docker option for setting an existing image to use.", options); + if (options.code) { + printWarning('The code option has been deprecated and will be ignored.' + + ' Use the docker option for setting an existing image to use.', options); } - if(options.memory){ - printWarning("The memory option has been deprecated and will be ignored." + - " Use the podspec option for setting this value.", options); + if (options.memory) { + printWarning('The memory option has been deprecated and will be ignored.' + + ' Use the podspec option for setting this value.', options); } - if(options.vcpus){ - printWarning("The vcpus option has been deprecated and will be ignored." + - " Use the podspec option for setting this value.", options); + if (options.vcpus) { + printWarning('The vcpus option has been deprecated and will be ignored.' + + ' Use the podspec option for setting this value.', options); } params.dockerImage = options.docker; params.ttl = options.ttl; @@ -129,15 +123,14 @@ module.exports.DeployActionCommand = class { params.environment = options.environment; params.environmentVariables = options.environmentVariables; params.pushDocker = options.pushDocker; - params.scaleCount = parseInt(options.scaleCount); + params.scaleCount = parseInt(options.scaleCount, 10); const actions = new Actions(profile.url); - actions.deployAction(profile.token, actionName, params) + actions.deployAction(options.project || profile.project, profile.token, actionName, params) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); - } - else { + } else { printError(`Action deployment failed: ${response.status} ${response.message}`, options); } }) @@ -147,64 +140,7 @@ module.exports.DeployActionCommand = class { } }; -module.exports.InvokeActionCommand = class { - - constructor(program) { - this.program = program; - } - - execute(actionName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeInvokeAction(%s)', profile.name, actionName); - - let params = {}; - if (options.params) { - params = parseObject(options.params, options); - } - else if (options.paramsFile) { - const paramsStr = fs.readFileSync(options.paramsFile); - params = parseObject(paramsStr, options); - } - - const actionType = options.actionType; - params.properties = params.properties || {}; - if (options.method) - params.properties['daemon.method'] = options.method; - if (options.path) - params.properties['daemon.path'] = options.path; - if(options.memory){ - printWarning("The memory option has been deprecated and will be ignored." + - " Use the deploy command with podspec option for setting this value.", options); - } - if(options.vcpus){ - printWarning("The vcpus option has been deprecated and will be ignored." + - " Use the deploy command with podspec option for setting this value.", options); - } - // Set Token if not specified - if (!params.token) params.token = profile.token; - - debug('params: %o', params); - - const actions = new Actions(profile.url); - actions.invokeAction(profile.token, actionName, params, actionType) - .then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Action invocation failed: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to invoke action: ${err.status} ${err.message}`, options); - }); - } -}; - - module.exports.DeleteActionCommand = class { - constructor(program) { this.program = program; } @@ -212,15 +148,14 @@ module.exports.DeleteActionCommand = class { execute(actionName, options) { const profile = loadProfile(options.profile); debug('%s.executeDeleteAction(%s)', profile.name, actionName); - const actionType = options.actionType; + const { actionType } = options; const actions = new Actions(profile.url); - actions.deleteAction(profile.token, actionName, actionType) + actions.deleteAction(options.project || profile.project, profile.token, actionName, actionType) .then((response) => { if (response.success) { - let result = filterObject(response, options); + const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action deletion failed: ${response.status} ${response.message}`, options); } }) @@ -239,16 +174,15 @@ module.exports.TaskLogsActionCommand = class { const profile = loadProfile(options.profile); debug('%s.taskLogsActions (%s, %s)', profile.name, jobId, taskId); const actions = new Actions(profile.url); - actions.taskLogs(profile.token, jobId, taskId) + actions.taskLogs(options.project || profile.project, profile.token, jobId, taskId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action task logs failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -261,16 +195,15 @@ module.exports.TaskCancelActionCommand = class { const profile = loadProfile(options.profile); debug('%s.taskCancelActions (%s, %s)', profile.name, jobId, taskId); const actions = new Actions(profile.url); - actions.taskCancel(profile.token, jobId, taskId) + actions.taskCancel(options.project || profile.project, profile.token, jobId, taskId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action cancel task failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -283,16 +216,15 @@ module.exports.TaskStatusActionCommand = class { const profile = loadProfile(options.profile); debug('%s.taskStatusActions (%s, %s)', profile.name, jobId, taskId); const actions = new Actions(profile.url); - actions.taskStatus(profile.token, jobId, taskId) + actions.taskStatus(options.project || profile.project, profile.token, jobId, taskId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action task logs failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -305,16 +237,15 @@ module.exports.JobTaskListActionCommand = class { const profile = loadProfile(options.profile); debug('%s.jobTaskListActions (%s, %s)', profile.name, jobId); const actions = new Actions(profile.url); - actions.jobListTasks(profile.token, jobId) + actions.jobListTasks(options.project || profile.project, profile.token, jobId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Action list job's tasks failed: ${response.status} ${response.message}`, options); } - else { - printError(`Action list job\'s tasks failed: ${response.status} ${response.message}`, options); - } - }) + }); } }; @@ -328,16 +259,15 @@ module.exports.TaskStatsActionCommand = class { const profile = loadProfile(options.profile); debug('%s.taskStatsActions (%s, %s)', profile.name, jobId); const actions = new Actions(profile.url); - actions.taskStats(profile.token, jobId) + actions.taskStats(options.project || profile.project, profile.token, jobId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Action get Job tasks stats failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -351,16 +281,15 @@ module.exports.ListTaskByActivation = class { const profile = loadProfile(options.profile); debug('%s.listTasksByActivation (%s, %s)', profile.name, activationId); const actions = new Actions(profile.url); - actions.listTasksByActivation(profile.token, activationId) + actions.listTasksByActivation(options.project || profile.project, profile.token, activationId) .then((response) => { if (response.success) { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Agent task list by activation failed: ${response.status} ${response.message}`, options); } - }) + }); } }; @@ -373,17 +302,16 @@ module.exports.GetLogsCommand = class { const profile = loadProfile(options.profile); debug('%s.getLogsActions (%s, %s)', profile.name, jobId); const actions = new Actions(profile.url); - actions.getLogsAction(profile.token, jobId) + actions.getLogsAction(options.project || profile.project, profile.token, jobId) .then((response) => { if (response.success) { if (options.json) { return printSuccess(JSON.stringify(response, null, 2), options); } - const logsStr = _.get(response,'logs',[]).join('/n'); - printSuccess(logsStr, options); - } else { - printError(`Action get logs failed: ${response.status} ${response.message}`, options); + const logsStr = _.get(response, 'logs', []).join('/n'); + return printSuccess(logsStr, options); } - }) + return printError(`Action get logs failed: ${response.status} ${response.message}`, options); + }); } }; diff --git a/src/commands/agents.js b/src/commands/agents.js index 4c39e9fd..5d69176a 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -16,13 +16,15 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); +const _ = require('lodash'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); -const _ = require('lodash'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); -module.exports.SaveAgentCommand = class SaveAgentCommand { +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); +module.exports.SaveAgentCommand = class SaveAgentCommand { constructor(program) { this.program = program; } @@ -36,11 +38,10 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { debug('%o', agent); const catalog = new Catalog(profile.url); - catalog.saveAgent(profile.token, agent).then((response) => { + catalog.saveAgent(options.project || profile.project, profile.token, agent).then((response) => { if (response.success) { - printSuccess(`Agent saved`, options); - } - else { + printSuccess('Agent saved', options); + } else { printError(`Failed to save agent: ${response.status} ${response.message}`, options); } }) @@ -51,7 +52,6 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { }; module.exports.ListAgentsCommand = class ListAgentsCommand { - constructor(program) { this.program = program; } @@ -61,27 +61,23 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { debug('%s.executeListAgents()', profile.name); const catalog = new Catalog(profile.url); - catalog.listAgents(profile.token).then((response) => { + catalog.listAgents(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.agents; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Name', field: 'name', width: 50 }, { column: 'Title', field: 'title', width: 25 }, { column: 'Description', field: 'description', width: 50 }, - { column: 'Created On', field: 'createdAt', width: 26 } + { column: 'Created On', field: 'createdAt', width: 26 }, ]; - printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list agents: ${response.status} ${response.message}`, options); } }) @@ -93,7 +89,6 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { }; module.exports.DescribeAgentCommand = class DescribeAgentCommand { - constructor(program) { this.program = program; } @@ -103,28 +98,24 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { const catalog = new Catalog(profile.url); if (options.versions) { debug('%s.executeDescribeAgentVersions(%s)', profile.name, agentName); - catalog.describeAgentVersions(profile.token, agentName).then((response) => { + catalog.describeAgentVersions(options.project || profile.project, profile.token, agentName).then((response) => { if (response.success) { - let result = filterObject(response.agent, options); + const result = filterObject(response.agent, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe agent versions ${agentName}: ${response.message}`, options); } }) .catch((err) => { printError(`Failed to describe agent versions ${agentName}: ${err.status} ${err.message}`, options); }); - } - - else { + } else { debug('%s.executeDescribeAgent(%s)', profile.name, agentName); - catalog.describeAgent(profile.token, agentName).then((response) => { + catalog.describeAgent(options.project || profile.project, profile.token, agentName).then((response) => { if (response.success) { - let result = filterObject(response.agent, options); + const result = filterObject(response.agent, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe agent ${agentName}: ${response.message}`, options); } }) @@ -136,7 +127,6 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { }; module.exports.InvokeAgentServiceCommand = class { - constructor(program) { this.program = program; } @@ -148,8 +138,7 @@ module.exports.InvokeAgentServiceCommand = class { let params = {}; if (options.params) { params = parseObject(options.params, options); - } - else if (options.paramsFile) { + } else if (options.paramsFile) { const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); } @@ -157,12 +146,11 @@ module.exports.InvokeAgentServiceCommand = class { debug('params: %o', params); const agents = new Agents(profile.url); - agents.invokeAgentService(profile.token, agentName, serviceName, params).then((response) => { + agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Invocation failed: ${response.status} ${response.message}`, options); } }) @@ -170,8 +158,7 @@ module.exports.InvokeAgentServiceCommand = class { if (err.response && err.response.body) { debug('Raw error response: %o', err.response.body); printError(`Failed to invoke agent service (${err.status} ${err.message}): ${err.response.body.error}`, options); - } - else { + } else { printError(`Failed to invoke agent service: ${err.status} ${err.message}`, options); } }); @@ -179,7 +166,6 @@ module.exports.InvokeAgentServiceCommand = class { }; module.exports.GetActivationCommand = class { - constructor(program) { this.program = program; } @@ -189,12 +175,11 @@ module.exports.GetActivationCommand = class { debug('%s.getActivation(%s)', profile.name, activationId); const agents = new Agents(profile.url); - agents.getActivation(profile.token, activationId).then((response) => { + agents.getActivation(options.project || profile.project, profile.token, activationId).then((response) => { if (response.success) { - let result = filterObject(response.result.activation, options); + const result = filterObject(response.result.activation, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to get activation ${activationId}: ${response.message}`, options); } }) @@ -205,7 +190,6 @@ module.exports.GetActivationCommand = class { }; module.exports.ListActivationsCommand = class { - constructor(program) { this.program = program; } @@ -216,16 +200,14 @@ module.exports.ListActivationsCommand = class { debug('%s.listActivations(%s)', profile.name, instanceId); const agents = new Agents(profile.url); - agents.listActivations(profile.token, instanceId, envName).then((response) => { + agents.listActivations(options.project || profile.project, profile.token, instanceId, envName).then((response) => { if (response.success) { let result = response.result.activations; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Activation Id', field: 'activationId', width: 38 }, { column: 'Type', field: 'type', width: 20 }, @@ -237,8 +219,7 @@ module.exports.ListActivationsCommand = class { printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list activations for instance ${instanceId}: ${response.message}`, options); } }) @@ -248,51 +229,7 @@ module.exports.ListActivationsCommand = class { } }; -module.exports.ListAgentInstancesCommand = class { - - constructor(program) { - this.program = program; - } - - execute(agentName, options) { - const profile = loadProfile(options.profile); - const envName = options.environmentName; - debug('%s.listAgentInstances(%s)', profile.name, agentName); - - const agents = new Agents(profile.url); - agents.listAgentInstances(profile.token, agentName, envName).then((response) => { - if (response.success) { - let result = response.instances; - if (options.query) - result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Instance Id', field: 'id', width: 26 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Snapshot Id', field: 'snapshotId', width: 40 }, - { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Environment', field: 'environmentName', width: 26 }, - { column: 'Created At', field: 'createdAt', width: 26 }, - ]; - - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list agent instances ${agentName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list agent instances ${agentName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListServicesCommand = class ListServicesCommand{ +module.exports.ListServicesCommand = class ListServicesCommand { constructor(program) { this.program = program; } @@ -302,29 +239,27 @@ module.exports.ListServicesCommand = class ListServicesCommand{ debug('%s.listServices(%s)', profile.name, agentName); const catalog = new Catalog(profile.url); - catalog.listServices(profile.token, agentName, profile).then((response) => { + catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { if (response.success) { - let result = filterObject(response.services, options); + const result = filterObject(response.services, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ - {column: 'Service Name', field: 'name', width: 25}, - {column: 'Service Endpoint URL', field: 'url', width: 115}, - {column: 'Parameters', field: 'formatted_types', width: 65} + { column: 'Service Name', field: 'name', width: 25 }, + { column: 'Service Endpoint URL', field: 'url', width: 115 }, + { column: 'Parameters', field: 'formatted_types', width: 65 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to return agent service information: ${agentName}: ${response.message}`, options); } }).catch((err) => { printError(`Failed to return agent service information: ${agentName}: ${err.status} ${err.message}`, options); }); } -} +}; module.exports.ListAgentSnapshotsCommand = class { constructor(program) { @@ -337,24 +272,23 @@ module.exports.ListAgentSnapshotsCommand = class { debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listAgentSnapshots(profile.token, agentName, envName).then((response) => { + agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, envName) + .then((response) => { if (response.success) { - let result = filterObject(response.result.snapshots, options); + const result = filterObject(response.result.snapshots, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Snapshot ID', field: 'id', width: 40 }, { column: 'Title', field: 'title', width: 30 }, { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Environment', field: 'environmentName', width: 30 }, - { column: 'Created On', field: 'createdAt', width: 26 } + { column: 'Created On', field: 'createdAt', width: 26 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list agent snapshots ${agentName}: ${response.message}`, options); } }) @@ -365,46 +299,6 @@ module.exports.ListAgentSnapshotsCommand = class { } }; -module.exports.ListSnapshotInstancesCommand = class { - - constructor(program) { - this.program = program; - } - - execute(snapshotId, options) { - const profile = loadProfile(options.profile); - debug('%s.listSnapshotInstances(%s)', profile.name, snapshotId); - - const agents = new Agents(profile.url); - const envName = options.environmentName; - agents.listSnapshotInstances(profile.token, snapshotId, envName).then((response) => { - if (response.success) { - let result = filterObject(response.instances, options); - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Instance Id', field: 'instanceId', width: 26 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Environment Id', field: 'environmentName', width: 26 }, - { column: 'Created At', field: 'createdAt', width: 26 }, - ]; - printTable(tableSpec, result); - } - - } - else { - printError(`Failed to list instances for snapshot ${snapshotId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list instances for snapshot ${snapshotId}: ${err.status} ${err.message}`, options); - }); - } -}; - - module.exports.DescribeAgentSnapshotCommand = class { constructor(program) { this.program = program; @@ -416,12 +310,11 @@ module.exports.DescribeAgentSnapshotCommand = class { debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); const agents = new Agents(profile.url); - agents.describeAgentSnapshot(profile.token, snapshotId, envName).then((response) => { + agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, envName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`, options); } }).catch((err) => { @@ -431,7 +324,6 @@ module.exports.DescribeAgentSnapshotCommand = class { }; module.exports.CreateAgentSnapshotCommand = class { - constructor(program) { this.program = program; } @@ -443,20 +335,19 @@ module.exports.CreateAgentSnapshotCommand = class { debug('%s.createAgentSnapshot(%s)', profile.name, snapshotDefinition); const snapshotDefStr = fs.readFileSync(snapshotDefinition); snapshot = parseObject(snapshotDefStr, options); - } else if ( _.get(options,'title','').length > 0 && _.get(options,'agentName','').length > 0) { - snapshot = { agentName: options.agentName, title: options.title } + } else if (_.get(options, 'title', '').length > 0 && _.get(options, 'agentName', '').length > 0) { + snapshot = { agentName: options.agentName, title: options.title }; } else { - printError(`Either --title <..> and --agentName <..> or a snapshot definition file must be provided`, options); + printError('Either --title <..> and --agentName <..> or a snapshot definition file must be provided', options); return; } - const agentName = snapshot.agentName; + const { agentName } = snapshot; const agents = new Agents(profile.url); - agents.createAgentSnapshot(profile.token, snapshot).then((response) => { + agents.createAgentSnapshot(options.project || profile.project, profile.token, snapshot).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to create agent snapshot ${agentName}: ${response.message}`, options); } }) @@ -464,159 +355,28 @@ module.exports.CreateAgentSnapshotCommand = class { printError(`Failed to create agent snapshot ${agentName}: ${err.status} ${err.message}`, options); }); } - }; -module.exports.CreateAgentInstanceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(instanceDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.createAgentInstance', profile.name); - const agents = new Agents(profile.url); - let instance; - if (instanceDefinition) { - const instanceDefStr = fs.readFileSync(instanceDefinition); - instance = parseObject(instanceDefStr, options); - } else if ( !_.isEmpty(_.get(options,'snapshotId','')) ) { - instance = { snapshotId: options.snapshotId, environmentName: options.environmentName || 'cortex/default'} - } else { - printError(`Either --snapshotId <..> or a instance definition file must be provided`, options); - return; - } - agents.createAgentInstance(profile.token, instance).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to create agent instance : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to create agent instance : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.GetAgentInstanceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(instanceId, options) { - const profile = loadProfile(options.profile); - debug('%s.getAgentInstance(%s)', profile.name, instanceId); - - const agents = new Agents(profile.url); - agents.getAgentInstance(profile.token, instanceId).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - const tableSpec = [ - { column: 'Instance Id', field: '_id', width: 26 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Tenant Id', field: 'tenantId', width: 20 }, - { column: 'Snapshot Id', field: 'snapshotId', width: 40 }, - { column: 'Environment Id', field: 'environmentId', width: 26 }, - { column: 'Created At', field: 'createdAt', width: 26 }, - { column: 'Updated At', field: 'updatedAt', width: 26 } - ]; - printTable(tableSpec, [result.instance]); - } - - } - else { - printError(`Failed to get agent instance ${instanceId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to get agent instance ${instanceId}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DeleteAgentInstanceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(instanceId, options) { - const profile = loadProfile(options.profile); - debug('%s.deleteAgentInstance(%s)', profile.name, instanceId); - - const agents = new Agents(profile.url); - agents.deleteAgentInstance(profile.token, instanceId).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to delete agent instance ${instanceId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete agent instance ${instanceId} : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.StopAgentInstanceCommand = class { - - constructor(program) { - this.program = program; - } - - execute(instanceId, options) { - const profile = loadProfile(options.profile); - debug('%s.stopAgentInstance(%s)', profile.name, instanceId); - - const agents = new Agents(profile.url); - agents.stopAgentInstance(profile.token, instanceId).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to stop agent instance ${instanceId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to stop agent instance ${instanceId} : ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListTriggersCommand = class { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listTriggers', profile.name); - - const agents = new Agents(profile.url); - agents.listTriggers(profile.token).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to list triggers ${instanceId}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list triggers ${instanceId} : ${err.status} ${err.message}`, options); - }); - } -}; +// module.exports.ListTriggersCommand = class { +// constructor(program) { +// this.program = program; +// } +// +// execute(options) { +// const profile = loadProfile(options.profile); +// debug('%s.listTriggers', profile.name); +// +// const agents = new Agents(profile.url); +// agents.listTriggers(profile.token).then((response) => { +// if (response.success) { +// const result = filterObject(response.result, options); +// printSuccess(JSON.stringify(result, null, 2), options); +// } else { +// printError(`Failed to list triggers ${instanceId}: ${response.message}`, options); +// } +// }) +// .catch((err) => { +// printError(`Failed to list triggers ${instanceId} : ${err.status} ${err.message}`, options); +// }); +// } +// }; diff --git a/src/commands/configure.js b/src/commands/configure.js index 12d01be1..99de4095 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -19,106 +19,61 @@ const co = require('co'); const _ = require('lodash'); const prompt = require('co-prompt'); const chalk = require('chalk'); -const Auth = require('../client/auth'); -const { readConfig, defaultConfig } = require('../config'); +const fs = require('fs'); + +const { + readConfig, + defaultConfig, + generateJwt, + loadProfile, +} = require('../config'); const { printSuccess, printError } = require('./utils'); -const DEFAULT_CORTEX_URL = 'https://api.cortex.insights.ai'; -const URL_REGEX=/^(https?):\/\/(-\.)?([^\s/?\.#]+\.?)+(\/[^\s]*)?$/; -/** - * Validate 's'' is not empty, return 's' or throw error - * @param s - * @param msg - * @param regex - * @returns {*} - * @private - */ -function _validate(s, msg, regex=undefined) { - if (_.isEmpty(s) || (regex && !regex.test(s))) { - console.error(chalk.red(msg)); - process.exit(1); +function _validatePatFile(patFile) { + if (!fs.existsSync(patFile)) { + printError(`Personal Access Token file does not exist at: ${patFile}`); } - return s; + return JSON.parse(fs.readFileSync(patFile)); } module.exports.ConfigureCommand = class { - constructor(program) { this.program = program; } + execute(options) { const config = readConfig(); - const profileName = options.profile || _.get(config,'currentProfile','default'); - const profileUrl = (this.program.url || process.env.CORTEX_URI) || _.get(config,'url'); - const profileAccount = this.program.account || _.get(config ,'account'); - const profileUsername = this.program.username || _.get(config,'username'); - const profilePassword = this.program.password || undefined; + const profileName = options.profile || _.get(config, 'currentProfile', 'default'); + const patFile = this.program.file; debug('configuring profile: %s', profileName); + console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); - const profile = (config && config.getProfile(profileName)) || {}; const cmd = this; - - co(function*(){ - const defaultCortexUrl = profile.url || DEFAULT_CORTEX_URL; - const defaultAccount = profile.account || ''; - const defaultUsername = profile.username || '';`` - console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); - let cortexUrl = (profileUrl) ? profileUrl : yield prompt(`Cortex URL [${defaultCortexUrl}]: `); - const URL_VALIDATION_MSG=`A valid URL (http[s]://) is required. "${cortexUrl}"`; - cortexUrl = _validate(cortexUrl || defaultCortexUrl, URL_VALIDATION_MSG ,URL_REGEX); - cortexUrl =cortexUrl.replace(/\/$/, ''); // strip any trailing / - let account = (profileAccount) ? profileAccount : yield prompt(`Account [${defaultAccount}]: `); - account = _validate(account || defaultAccount, 'An account name is required.'); - let username = (profileUsername) ? profileUsername : yield prompt(`Username [${defaultUsername}]: `); - username = _validate(username || defaultUsername, 'A user name is required.'); - const password = _validate((profilePassword) ? profilePassword : yield prompt.password('Password: '), - 'A password is required.'); - - debug('cortexUrl: %s', cortexUrl); - debug('account: %s', account); - debug('username: %s', username); - - if (!cortexUrl.match(/^[a-zA-Z]+:\/\//)) { - cortexUrl = 'http://' + cortexUrl; - } - - if (!cortexUrl) { - console.error(chalk.red('Cortex URL must be provided')); - return; - } - - if (!account) { - console.error(chalk.red('Cortex account name must be provided')); - return; - } - - if (!username) { - console.error(chalk.red('Cortex username must be provided')); - return; - } - - const auth = new Auth(cortexUrl); + co(function* () { try { - const authResp = yield auth.login(account, username, password); - if (! _.has(authResp,'jwt') ) { - console.error(chalk.red(`LOGIN FAILED: ${authResp.message || 'No token returned'}`)); + let patData = null; + if (patFile) { + patData = _validatePatFile(patFile); } else { - const token = authResp.jwt; - debug('token: %s', authResp); - cmd.saveConfig(config, profileName, cortexUrl, account, username, token); - console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); + patData = JSON.parse(yield prompt('Cortex Personal Access Config: ')); } - } - catch (e) { - console.error(chalk.red(`LOGIN FAILED: ${e.message}`)); + cmd.saveConfig(config, profileName, patData, cmd.program.project); + console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); + process.exit(1); + } catch (err) { + printError(err); } }); } - saveConfig(config, profileName, url, account, username, token) { - if(!config) - config = defaultConfig(); - config.setProfile(profileName, {url, account, username, token}); + + saveConfig(config, profileName, { + url, username, issuer, audience, jwk, + }, project) { + if (!config) config = defaultConfig(); + config.setProfile(profileName, { + url, username, issuer, audience, jwk, project, + }); config.currentProfile = profileName; config.save(); } @@ -128,6 +83,7 @@ module.exports.SetProfileCommand = class { constructor(program) { this.program = program; } + execute(profileName, options) { const config = readConfig(); const profile = config.getProfile(profileName); @@ -144,7 +100,6 @@ module.exports.SetProfileCommand = class { }; module.exports.DescribeProfileCommand = class { - constructor(program) { this.program = program; } @@ -152,7 +107,7 @@ module.exports.DescribeProfileCommand = class { execute(options) { const config = readConfig(); if (config === undefined) { - printError(`Configuration not found. Please run "cortex configure".`); + printError('Configuration not found. Please run "cortex configure".'); return; } @@ -167,8 +122,9 @@ module.exports.DescribeProfileCommand = class { printSuccess(`Profile: ${profile.name}`, options); printSuccess(`Cortex URL: ${profile.url}`, options); - printSuccess(`Account: ${profile.account}`, options); printSuccess(`Username: ${profile.username}`, options); + printSuccess(`JWK: ${JSON.stringify(profile.jwk)}`, options); + printSuccess(`Project: ${profile.project || 'undefined'}`, options); } }; @@ -180,23 +136,34 @@ module.exports.ListProfilesCommand = class { execute(options) { const config = readConfig(); if (config === undefined) { - printError(`Configuration not found. Please run "cortex configure".`,options); + printError('Configuration not found. Please run "cortex configure".', options); return; } const profiles = Object.keys(config.profiles); - for (let name of profiles) { + profiles.forEach((name) => { if (name === config.currentProfile) { if (options.color === 'on') { console.log(chalk.green.bold(name)); - } - else { + } else { console.log(`${name} [active]`); } - } - else { + } else { console.log(name); } - } + }); + } +}; + +module.exports.GetAccessToken = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.getAccesToken', profile.name); + const jwt = generateJwt(profile, '1d'); + return printSuccess(jwt, options); } }; diff --git a/src/commands/connections.js b/src/commands/connections.js index 83ed5ae5..d15fb63f 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,15 +15,15 @@ */ const _ = require('lodash'); const fs = require('fs'); -const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Connections = require('../client/connections'); const Content = require('../client/content'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.ListConnections = class ListConnections { - constructor(program) { this.program = program; } @@ -33,29 +33,26 @@ module.exports.ListConnections = class ListConnections { debug('%s.listConnections()', profile.name); const conns = new Connections(profile.url); - conns.listConnections(profile.token).then((response) => { + conns.listConnections(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.result.connections; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 50 }, { column: 'Description', field: 'description', width: 50 }, { column: 'Connection Type', field: 'connectionType', width: 25 }, { column: 'Writeable', field: 'allowWrite', width: 15 }, - { column: 'Created On', field: 'createdAt', width: 26 } + { column: 'Created On', field: 'createdAt', width: 26 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list connections: ${response.status} ${response.message}`, options); } }) @@ -67,7 +64,6 @@ module.exports.ListConnections = class ListConnections { }; module.exports.SaveConnectionCommand = class SaveConnectionCommand { - constructor(program) { this.program = program; } @@ -75,11 +71,9 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { getParamsValue(connectionDefinition, paramName) { const results = connectionDefinition.params.filter(item => item.name === paramName); if (results && results.length) { - return results[0]['value']; - - } else { + return results[0].value; + } return undefined; - } } stripJarPathFromParams(params) { @@ -97,20 +91,19 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); - if (jdbcJarFilePath && !jdbcJarFilePath.includes("--Insert jar file path--")) { + if (jdbcJarFilePath && !jdbcJarFilePath.includes('--Insert jar file path--')) { const content = new Content(profile.url); const connection = new Connections(profile.url); - content.uploadContentStreaming(profile.token, contentKey, jdbcJarFilePath).then((response) => { - - let marshaledConnObj = connObj; + content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) + .then(() => { + const marshaledConnObj = connObj; marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); - connection.saveConnection(profile.token, marshaledConnObj).then((response) => { + connection.saveConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { if (response.success) { - printSuccess(`Connection saved`, options); - } - else { + printSuccess('Connection saved', options); + } else { printError(`Failed to save connection: ${response.status} ${response.message}`, options); } }) @@ -122,13 +115,11 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); }); } else { - const connection = new Connections(profile.url); - connection.saveConnection(profile.token, connObj).then((response) => { + connection.saveConnection(options.project || profile.project, profile.token, connObj).then((response) => { if (response.success) { - printSuccess(`Connection saved`, options); - } - else { + printSuccess('Connection saved', options); + } else { printError(`Failed to save connection: ${response.status} ${response.message}`, options); } }) @@ -140,7 +131,6 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { }; module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { - constructor(program) { this.program = program; } @@ -150,12 +140,11 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { debug('%s.executeDescribeConnection(%s)', profile.name, connectionName); const connection = new Connections(profile.url); - connection.describeConnection(profile.token, connectionName).then((response) => { + connection.describeConnection(options.project || profile.project, profile.token, connectionName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe connection ${connectionName}: ${response.message}`, options); } }) @@ -166,19 +155,16 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { }; module.exports.TestConnectionCommand = class TestConnectionCommand { - constructor(program) { this.program = program; } getParamsValue(connectionDefinition, paramName) { - const results = _.get(connectionDefinition,'params',[]).filter(item => item.name === paramName); + const results = _.get(connectionDefinition, 'params', []).filter(item => item.name === paramName); if (results && results.length) { - return results[0]['value']; - - } else { + return results[0].value; + } return undefined; - } } stripJarPathFromParams(params) { @@ -198,19 +184,17 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { if (jdbcJarFilePath) { const content = new Content(profile.url); - const connection = new Connections(profile.url); - - content.uploadContentStreaming(profile.token, contentKey, jdbcJarFilePath).then((response) => { + content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) + .then(() => { const connection = new Connections(profile.url); - let marshaledConnObj = connObj; + const marshaledConnObj = connObj; marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); - connection.testConnection(profile.token, marshaledConnObj).then((response) => { + connection.testConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { if (response.success) { - printSuccess(`Connection successfully tested`, options); - } - else { + printSuccess('Connection successfully tested', options); + } else { printError(`Failed while testing connection: ${response.message}`, options); } }) @@ -221,15 +205,13 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { .catch((err) => { printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); }); - } else { const connection = new Connections(profile.url); - connection.testConnection(profile.token, connObj).then((response) => { + connection.testConnection(options.project || profile.project, profile.token, connObj).then((response) => { if (response.success) { - printSuccess(`Connection successfully tested`, options); - } - else { - printError(`Failed while testing connection: ${response.message || response.body.message }`, options); + printSuccess('Connection successfully tested', options); + } else { + printError(`Failed while testing connection: ${response.message || response.body.message}`, options); } }) .catch((err) => { @@ -240,7 +222,6 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { }; module.exports.ListConnectionsTypes = class ListConnectionsTypes { - constructor(program) { this.program = program; } @@ -253,25 +234,22 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { conns.listConnectionsTypes(profile.token).then((response) => { if (response.success) { let result = response.result.connectionTypes; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Name', field: 'name', width: 50 }, { column: 'Title', field: 'title', width: 25 }, { column: 'Description', field: 'description', width: 50 }, { column: 'Created On', field: 'createdAt', width: 26 }, - { column: 'Updated On', field: 'updatedAt', width: 26 } + { column: 'Updated On', field: 'updatedAt', width: 26 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list connection types: ${response.status} ${response.message}`, options); } }) @@ -283,7 +261,6 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { }; module.exports.QueryConnectionCommand = class QueryConnectionCommand { - constructor(program) { this.program = program; } @@ -297,21 +274,21 @@ module.exports.QueryConnectionCommand = class QueryConnectionCommand { let queryObject = {}; let queryInput = options.query; - if(options.file) { + if (options.file) { queryInput = fs.readFileSync(options.file, 'UTF-8'); } - if(!queryInput) { + if (!queryInput) { queryInput = 'select 1'; } try { queryObject = JSON.parse(queryInput); - if(queryObject.filter) { + if (queryObject.filter) { queryObject.filter = JSON.stringify(queryObject.filter); } - if(queryObject.sort) { + if (queryObject.sort) { queryObject.sort = JSON.stringify(queryObject.sort); } } catch (err) { @@ -321,12 +298,16 @@ module.exports.QueryConnectionCommand = class QueryConnectionCommand { debug('queryParams: %o', queryObject); const connections = new Connections(profile.url); - connections.queryConnection(profile.token, connectionName, queryObject) + connections.queryConnection(options.project || profile.project, profile.token, connectionName, queryObject) .then((response) => { if (response.success) { - printSuccess(JSON.stringify(response.message, null, 2), options); - } - else { + if (options.json) { + printSuccess(JSON.stringify(JSON.parse(response.message), null, 2), options); + } else { + // might get images/binaries from S3 + printSuccess(response.message, options); + } + } else { printError(`Failed to query connection: ${response.status} ${response.message}`, options); } }) @@ -335,20 +316,3 @@ module.exports.QueryConnectionCommand = class QueryConnectionCommand { }); } }; - -module.exports.GenerateConnectionCommand = class GenerateConnectionCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - debug('%s.generateConnection()'); - const yenv = yeoman.createEnv(); - yenv.lookup(()=>{ - yenv.run('@c12e/cortex:connections', - { }, - (err) => { err ? printError(err) : printSuccess('Done.') }); - }); - } -}; diff --git a/src/commands/content.js b/src/commands/content.js index edf0c9f9..9c0d64a9 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -16,14 +16,14 @@ const _ = require('lodash'); const fs = require('fs'); const path = require('path'); -const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Content = require('../client/content'); -const { printSuccess, printError, filterObject, parseObject, printTable, getSourceFiles, humanReadableFileSize } = require('./utils'); +const { + printSuccess, printError, filterObject, printTable, getSourceFiles, humanReadableFileSize, +} = require('./utils'); module.exports.ListContent = class ListContent { - constructor(program) { this.program = program; } @@ -33,25 +33,23 @@ module.exports.ListContent = class ListContent { debug('%s.listContent()', profile.name); const content = new Content(profile.url); - content.listContent(profile.token).then((response) => { + content.listContent(options.project || profile.project, profile.token).then((response) => { if (response.success) { if (options.query || options.json) { - let result = filterObject(response.message, options); + const result = filterObject(response.message, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Key', field: 'Key', width: 70 }, { column: 'Content Type', field: 'ContentType', width: 30 }, { column: 'Last Modified', field: 'LastModified', width: 30 }, - { column: 'Size (bytes)', field: 'Size', width: 20 } + { column: 'Size (bytes)', field: 'Size', width: 20 }, ]; printTable(tableSpec, response.message); } - } - else { + } else { printError(`Failed to list content: ${response.status} ${response.message}`, options); } }) @@ -63,7 +61,6 @@ module.exports.ListContent = class ListContent { }; module.exports.UploadContent = class UploadContent { - constructor(program) { this.program = program; } @@ -74,8 +71,8 @@ module.exports.UploadContent = class UploadContent { const contentClient = new Content(profile.url); - const chunkSize = parseInt(options.chunkSize); - //const chunkSize = parseInt(options.chunkSize); + const chunkSize = parseInt(options.chunkSize, 10); + // const chunkSize = parseInt(options.chunkSize); const uploadSecure = _.partial(UploadContent.uploadSecure, contentClient, profile, options); const upload = _.partial(UploadContent.upload, contentClient, profile, options); @@ -99,10 +96,9 @@ module.exports.UploadContent = class UploadContent { .reduce((promise, currentChunk) => promise .then(() => { debug(`working on chunk of files: ${JSON.stringify(currentChunk)}`); - const promises = currentChunk.map((item) => upload(`${contentKey}/${item.relative}`, item.canonical)); + const promises = currentChunk.map(item => upload(`${contentKey}/${item.relative}`, item.canonical)); return Promise.all(promises); - }), Promise.resolve() - ); + }), Promise.resolve()); } else { console.log('Test option set. Nothing uploaded.'); } @@ -112,14 +108,11 @@ module.exports.UploadContent = class UploadContent { cbTest(filesDict); } }); - } else { - if (options.secure) { + } else if (options.secure) { uploadSecure(contentKey, filePath); - } - else { + } else { upload(contentKey, filePath); } - } } @@ -128,25 +121,23 @@ module.exports.UploadContent = class UploadContent { const fileBaseName = path.basename(filePath); const secureContent = {}; - secureContent[fileBaseName] = new Buffer(fileContent).toString('base64'); - contentClient.uploadSecureContent(profile.token, contentKey, secureContent).then((response) => { + secureContent[fileBaseName] = Buffer.from(fileContent).toString('base64'); + contentClient.uploadSecureContent(options.project || profile.project, profile.token, contentKey, secureContent).then((response) => { if (response.success) { - printSuccess(`Secure content successfully uploaded.`, options); - } - else { + printSuccess('Secure content successfully uploaded.', options); + } else { printError(`Failed to upload secure content: ${response.status} ${response.message}`, options); } - }) + }); } static upload(contentClient, profile, options, contentKey, filePath) { const showProgress = !!options.progress; const contentType = _.get(options, 'contentType', 'application/octet-stream'); - return contentClient.uploadContentStreaming(profile.token, contentKey, filePath, showProgress, contentType).then((response) => { + return contentClient.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, filePath, showProgress, contentType).then((response) => { if (response.success) { - printSuccess(`Content successfully uploaded.`, options); - } - else { + printSuccess('Content successfully uploaded.', options); + } else { printError(`Failed to upload content: ${response.status} ${response.message}`, options); } }) @@ -158,7 +149,6 @@ module.exports.UploadContent = class UploadContent { }; module.exports.DeleteContent = class DeleteContent { - constructor(program) { this.program = program; } @@ -168,11 +158,10 @@ module.exports.DeleteContent = class DeleteContent { debug('%s.deleteContent()', profile.name); const content = new Content(profile.url); - content.deleteContent(profile.token, contentKey).then((response) => { + content.deleteContent(options.project || profile.project, profile.token, contentKey).then((response) => { if (response.success) { - printSuccess(`Content successfully deleted.`, options); - } - else { + printSuccess('Content successfully deleted.', options); + } else { printError(`Failed to delete content: ${response.status} ${response.message}`, options); } }) @@ -184,7 +173,6 @@ module.exports.DeleteContent = class DeleteContent { }; module.exports.DownloadContent = class DownloadContent { - constructor(program) { this.program = program; } @@ -198,11 +186,10 @@ module.exports.DownloadContent = class DownloadContent { // To download content from Secrets if (options.secure) { - content.downloadSecureContent(profile.token, contentKey).then((response) => { + content.downloadSecureContent(options.project || profile.project, profile.token, contentKey).then((response) => { if (response.success) { printSuccess(response.message, options); - } - else { + } else { printError(`Failed to download secure content: ${response.status} ${response.message}`, options); } }) @@ -210,14 +197,12 @@ module.exports.DownloadContent = class DownloadContent { debug(err); printError(`Failed to download secure content: ${err.status} ${err.message}`, options); }); - } - else { - content.downloadContent(profile.token, contentKey, showProgress).then((response) => { + } else { + content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).then((response) => { if (response.success) { // messages need to be on stderr as content is streamed to stdout console.error(response.message); - } - else { + } else { printError(`Failed to download content: ${response.status} ${response.message}`, options); } }).catch((err) => { @@ -225,6 +210,5 @@ module.exports.DownloadContent = class DownloadContent { printError(`Failed to download content: ${err.status} ${err.message}`, options); }); } - } }; diff --git a/src/commands/datasets.js b/src/commands/datasets.js index 026db826..139f2170 100644 --- a/src/commands/datasets.js +++ b/src/commands/datasets.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -17,13 +17,13 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const es = require('event-stream'); -const yeoman = require('yeoman-environment'); const { loadProfile } = require('../config'); const Datasets = require('../client/datasets'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.ListDatasets = class ListDatasets { - constructor(program) { this.program = program; } @@ -33,17 +33,16 @@ module.exports.ListDatasets = class ListDatasets { debug('%s.listDatasets()', profile.name); const datasets = new Datasets(profile.url); - datasets.listDatasets(profile.token).then((response) => { + datasets.listDatasets(options.project || profile.project, profile.token).then((response) => { if (response.success) { - let result = response.result; + let { result } = response; if (options.query) { result = filterObject(response.result, options); } if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 50 }, { column: 'Connection Name', field: 'connectionName', width: 25 }, @@ -54,8 +53,7 @@ module.exports.ListDatasets = class ListDatasets { printTable(tableSpec, result.datasets); } - } - else { + } else { printError(`Failed to list datasets: ${response.status} ${response.message}`, options); } }) @@ -67,7 +65,6 @@ module.exports.ListDatasets = class ListDatasets { }; module.exports.SaveDatasetsCommand = class SaveDatasetsCommand { - constructor(program) { this.program = program; } @@ -81,11 +78,10 @@ module.exports.SaveDatasetsCommand = class SaveDatasetsCommand { debug('%o', connObj); const datasets = new Datasets(profile.url); - datasets.saveDatasets(profile.token, connObj).then((response) => { + datasets.saveDatasets(options.project || profile.project, profile.token, connObj).then((response) => { if (response.success) { - printSuccess(`Dataset saved`, options); - } - else { + printSuccess('Dataset saved', options); + } else { printError(`Failed to save Dataset: ${response.status} ${response.message}`, options); } }) @@ -96,7 +92,6 @@ module.exports.SaveDatasetsCommand = class SaveDatasetsCommand { }; module.exports.DescribeDatasetCommand = class DescribeDatasetCommand { - constructor(program) { this.program = program; } @@ -106,12 +101,11 @@ module.exports.DescribeDatasetCommand = class DescribeDatasetCommand { debug('%s.executeDescribeDataset(%s)', profile.name, datasetName); const dataset = new Datasets(profile.url); - dataset.describeDataset(profile.token, datasetName).then((response) => { + dataset.describeDataset(options.project || profile.project, profile.token, datasetName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe dataset ${datasetName}: ${response.message}`, options); } }) @@ -122,7 +116,6 @@ module.exports.DescribeDatasetCommand = class DescribeDatasetCommand { }; module.exports.GetDataframeCommand = class GetDataframeCommand { - constructor(program) { this.program = program; } @@ -132,11 +125,10 @@ module.exports.GetDataframeCommand = class GetDataframeCommand { debug('%s.executeGetDataframe(%s)', profile.name, datasetName); const dataset = new Datasets(profile.url); - dataset.getDataframe(profile.token, datasetName).then((response) => { + dataset.getDataframe(options.project || profile.project, profile.token, datasetName).then((response) => { if (response.success) { printSuccess(JSON.stringify(response.result, null, 2), options); - } - else { + } else { printError(`Failed to get dataframe ${datasetName}: ${response.message}`, options); } }) @@ -147,7 +139,6 @@ module.exports.GetDataframeCommand = class GetDataframeCommand { }; module.exports.StreamDatasetCommand = class StreamDatasetCommand { - constructor(program) { this.program = program; } @@ -157,14 +148,13 @@ module.exports.StreamDatasetCommand = class StreamDatasetCommand { debug('%s.executeStreamDataset(%s)', profile.name, datasetName); const dataset = new Datasets(profile.url); - dataset.streamDataset(profile.token, datasetName).then((response) => { + dataset.streamDataset(options.project || profile.project, profile.token, datasetName).then((response) => { if (response.success) { - let stream = new es.Stream.PassThrough(); + const stream = new es.Stream.PassThrough(); stream.write(response.result.text); stream.end(); - stream.pipe(process.stdout) - } - else { + stream.pipe(process.stdout); + } else { printError(`Failed to stream dataset ${datasetName}: ${response.message}`, options); } }) @@ -173,21 +163,3 @@ module.exports.StreamDatasetCommand = class StreamDatasetCommand { }); } }; - -module.exports.GenerateDatasetCommand = class GenerateDatasetCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - debug('%s.generateDataset()', options.profile); - const yenv = yeoman.createEnv(); - const profile = options.profile; - yenv.lookup(()=>{ - yenv.run('@c12e/cortex:datasets', - {'cortexProfile': profile }, - (err) => { err ? printError(err) : printSuccess('Done.') }); - }); - } -}; diff --git a/src/commands/deploy.js b/src/commands/deploy.js new file mode 100644 index 00000000..db7d8d21 --- /dev/null +++ b/src/commands/deploy.js @@ -0,0 +1,104 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const path = require('path'); +const { loadProfile } = require('../config'); +const Agents = require('../client/agents'); +const { + printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, +} = require('./utils'); + + +/** + * Cortex deploy command is to export Cortex artifacts (agent, snapshot, skill, action etc) for CI/CD deployment. This command: + * 1. Exports cortex artifacts + * 2. generates manifest files to drive artifacts deployment + * Files are exported/generated in pre-determined layout to support CI/CD deployment + * .fabric + * snapshots + * snapshot1.yaml + * snapshot2.yaml + * agents + * ... + * skills + * ... + * actions + * ... + * fabric.yaml (manifest file) + * + * Currently only exporting agent snapshots. + * + * @type {DeploySnapshotCommand} + */ +module.exports.DeploySnapshotCommand = class { + constructor(program) { + this.program = program; + } + + execute(snapshotIds, options) { + const exportPath = '.fabric'; + const manifestFile = 'fabric.yaml'; + + if (fileExists(exportPath) || fileExists(manifestFile)) { + if (options.force) { + deleteFile(exportPath); + deleteFile(manifestFile); + printSuccess(`Deleted ${exportPath} and ${manifestFile}`); + } else { + printError(`Aborting, because export path ${exportPath} or manifest file ${manifestFile} exists. Use -f option to force delete.`); + } + } + const profile = loadProfile(options.profile); + const envName = options.environmentName; + debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); + + const agents = new Agents(profile.url); + const promises = []; + snapshotIds.split(' ').forEach((snapshotId) => { + promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, envName).then((response) => { + if (response.success) { + let result = filterObject(response.result, options); + result = cleanInternalFields(result); + // TODO add validation for not exporting tip snapshots, as they don't have all dependencies. Should we enforce? + let filename = `${snapshotId}.json`; + if (options.yaml) { + result = jsonToYaml(result); + filename = `${snapshotId}.yaml`; + } + const filepath = path.join(exportPath, 'snapshots', filename); + writeToFile(result, filepath); + printSuccess(`Successfully exported agent snapshot ${filepath}`); + return filepath; + } + return printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); + }).catch((err) => { + printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); + })); + }); + + Promise.all(promises).then((result) => { + const manifest = { + version: 1, + kind: 'deployment-manifest', + cortex: { + snapshots: result, + }, + }; + writeToFile(jsonToYaml(manifest), manifestFile); + printSuccess(`Successfully generated manifest file ${manifestFile}`); + }); + } +}; diff --git a/src/commands/docker.js b/src/commands/docker.js index 7439dd89..f2ae744a 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,13 +15,12 @@ */ const debug = require('debug')('cortex:cli'); -const {loadProfile} = require('../config'); -const {printSuccess, printError} = require('./utils'); +const { loadProfile } = require('../config'); +const { printSuccess, printError } = require('./utils'); const Actions = require('../client/actions'); const { callMe } = require('../commands/utils'); module.exports.DockerLoginCommand = class { - constructor(program) { this.program = program; } @@ -31,7 +30,7 @@ module.exports.DockerLoginCommand = class { debug('%s.executeDockerLogin()', profile.name); const action = new Actions(profile.url); - const registryUrl = await action._cortexRegistryUrl(profile.token); + const registryUrl = await action._cortexRegistryUrl(options.project || profile.project, profile.token); try { await callMe(`docker login -u cli --password ${profile.token} ${registryUrl}`); printSuccess(JSON.stringify('Login Succeeded', null, 2), options); @@ -39,4 +38,4 @@ module.exports.DockerLoginCommand = class { printError(`Failed to docker login: ${err.message || err}`, options); } } -}; \ No newline at end of file +}; diff --git a/src/commands/environments.js b/src/commands/environments.js deleted file mode 100644 index d87af2d7..00000000 --- a/src/commands/environments.js +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const yeoman = require('yeoman-environment'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Environments = require('../client/environments'); -const Content = require('../client/content'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); -const _ = require('lodash/object'); -module.exports.ListEnvironments = class ListEnvironments { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listEnvironment()', profile.name); - - const envs = new Environments(profile.url); - envs.listEnvironments(profile.token).then((response) => { - if (response.success) { - let result = _.get(response,'result.environments',[]); - if (options.query) - result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Name', field: 'name', width: 25 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Region', field: 'regionRef', width: 25 } - ]; - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list environments: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list environments: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.SaveEnvironmentCommand = class SaveEnvironmentCommand { - - constructor(program) { - this.program = program; - } - - execute(environmentDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSaveDefinition(%s)', profile.name, environmentDefinition); - - const envDefStr = fs.readFileSync(environmentDefinition); - const envObj = parseObject(envDefStr, options); - debug('%o', envObj); - - const environment = new Environments(profile.url); - environment.saveEnvironment(profile.token, envObj) - .then((response) => { - if (response.success) { - printSuccess(`Environment \'${envObj.name}\' saved`, options); - } else { - printError(`Failed to save environment: ${response.status} ${response.message}`, options); - }}) - .catch((err) => { - printError(`Failed to save environment: ${err.response.body.message}`, options); - }); - } -}; - - -module.exports.DescribeEnvironmentCommand = class DescribeEnvironmentCommand { - - constructor(program) { - this.program = program; - } - - execute(environmentName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDescribeEnvironment(%s)', profile.name, environmentName); - - const environment = new Environments(profile.url); - environment.describeEnvironment(profile.token, environmentName).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - printError(`Failed to describe environment ${environmentName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe environment ${environmentName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.ListInstancesCommand = class ListInstancesCommand { - - constructor(program) { - this.program = program; - } - - execute(environmentName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeListInstances(%s)', profile.name, environmentName); - const environment = new Environments(profile.url); - - environment.listInstances(profile.token, environmentName).then((response) => { - if (response.success) { - let result = _.get(response,'result.instances',[]); - if (options.query) - result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Instance Id', field: 'id', width: 26 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Snapshot Id', field: 'snapshotId', width: 40 }, - { column: 'Agent Name', field: 'agentName', width: 50 }, - { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Environment', field: 'environmentName', width: 26 }, - { column: 'Created At', field: 'createdAt', width: 26 }, - ]; - printTable(tableSpec, result); - } - } - else { - printError(`Failed to list instances in environment ${environmentName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list instances in environment ${environmentName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.PromoteEnvironmentCommand = class PromoteEnvironmentCommand { - - constructor(program) { - this.program = program; - } - - execute(promoteDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.executePromoteDefinition(%s)', profile.name, promoteDefinition); - let promObj; - if ( promoteDefinition ) { - const promStr = fs.readFileSync(promoteDefinition); - promObj = parseObject(promStr, options); - } else if ( _.get(options,'snapshotId','').length > 0 && _.get(options,'environmentName','').length > 0) { - promObj = { snapshotId: options.snapshotId, environmentName: options.environmentName } - } else { - printError(`Either --snapshotId <..> and --environmentName <..> or a promotion definition file must be provided`, options); - return; - } - debug('%o', promObj); - - const environment = new Environments(profile.url); - environment.promoteEnvironment(profile.token, promObj) - .then((response) => { - if (response.success) { - printSuccess(`Snapshot \'${promObj.snapshotId}\' successfully promoted to \'${promObj.environmentName}\' environment. Instance \'${response.message.instanceId}\' created.`, options); - } else { - let errMsg = `Failed to promote to environment: ${response.status} ${response.message}\n`; - if (response.details) { - response.details.forEach(d => - errMsg = errMsg + `${d.resource} ${d.name} - ${d.error}\n`); - } - printError(errMsg, options); - - }}) - .catch((err) => { - printError(`Failed to promote to environment: ${err.response.body.message}`, options); - }); - } -}; - diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 21f04d4f..3f518ec7 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,17 +14,16 @@ * limitations under the License. */ -const fs = require('fs'); const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const moment = require('moment'); -const es = require('event-stream'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, printTable, +} = require('./utils'); class ListExperiments { - constructor(program) { this.program = program; } @@ -34,17 +33,16 @@ class ListExperiments { debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); - exp.listExperiments(profile.token).then((response) => { + exp.listExperiments(options.project || profile.project, profile.token).then((response) => { if (response.success) { - let result = response.result; + let { result } = response; if (options.query) { result = filterObject(response.result, options); } if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ + } else { + const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 50 }, { column: 'Version', field: '_version', width: 25 }, @@ -53,8 +51,7 @@ class ListExperiments { printTable(tableSpec, result.experiments); } - } - else { + } else { printError(`Failed to list experiments: ${response.status} - ${response.message}`, options); } }) @@ -66,7 +63,6 @@ class ListExperiments { } class DescribeExperimentCommand { - constructor(program) { this.program = program; } @@ -76,12 +72,11 @@ class DescribeExperimentCommand { debug('%s.executeDescribeExperiment(%s)', profile.name, experimentName); const exp = new Experiments(profile.url); - exp.describeExperiment(profile.token, experimentName).then((response) => { + exp.describeExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe experiment ${experimentName}: ${response.status} - ${response.message}`, options); } }) @@ -92,7 +87,6 @@ class DescribeExperimentCommand { } class DeleteExperimentCommand { - constructor(program) { this.program = program; } @@ -102,12 +96,11 @@ class DeleteExperimentCommand { debug('%s.executeDeleteExperiment(%s)', profile.name, experimentName); const exp = new Experiments(profile.url); - exp.deleteExperiment(profile.token, experimentName).then((response) => { + exp.deleteExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to delete experiment ${experimentName}: ${response.status} - ${response.message}`, options); } }) @@ -118,7 +111,6 @@ class DeleteExperimentCommand { } class ListRuns { - constructor(program) { this.program = program; } @@ -130,31 +122,37 @@ class ListRuns { const exp = new Experiments(profile.url); const sort = options.sort || JSON.stringify({ startTime: -1 }); - exp.listRuns(profile.token, experimentName, options.filter, options.limit, sort).then((response) => { + exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort).then((response) => { if (response.success) { - let result = response.result; + let { result } = response; if (options.query) { result = filterObject(response.result, options); } if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { alias: 'Run ID', value: 'runId', width: 25 }, - { alias: 'Start', value: 'startTime', width: 25, formatter: (val) => moment.unix(val).format('YYYY-MM-DD HH:mm a')}, - { alias: 'Took', value: 'took', width: 25, formatter: (val) => moment.duration(val, 'seconds').humanize()}, - { alias: 'Params', value: 'params', width: 45, formatter: (val) => _.map(val, (v, k) => `${k}: ${v}`).join('\n') }, - { alias: 'Metrics', value: 'metrics', width: 45, formatter: (val) => _.map(val, (v, k) => `${k}: ${v}`).join('\n') }, - { alias: 'Artifacts', value: 'artifacts', formatter: (val) => Object.keys(val).join(', ') }, + { + alias: 'Start', value: 'startTime', width: 25, formatter: val => moment.unix(val).format('YYYY-MM-DD HH:mm a'), +}, + { + alias: 'Took', value: 'took', width: 25, formatter: val => moment.duration(val, 'seconds').humanize(), +}, + { + alias: 'Params', value: 'params', width: 45, formatter: val => _.map(val, (v, k) => `${k}: ${v}`).join('\n'), +}, + { + alias: 'Metrics', value: 'metrics', width: 45, formatter: val => _.map(val, (v, k) => `${k}: ${v}`).join('\n'), +}, + { alias: 'Artifacts', value: 'artifacts', formatter: val => Object.keys(val).join(', ') }, ]; const Table = require('tty-table'); const t = new Table(tableSpec, result.runs); console.log(t.render()); } - } - else { + } else { printError(`Failed to list runs: ${response.status} ${response.status} - ${response.message}`, options); } }) @@ -166,7 +164,6 @@ class ListRuns { } class DescribeRunCommand { - constructor(program) { this.program = program; } @@ -176,12 +173,11 @@ class DescribeRunCommand { debug('%s.executeDescribeRun(%s)', profile.name, runId); const exp = new Experiments(profile.url); - exp.describeRun(profile.token, experimentName, runId).then((response) => { + exp.describeRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { - let result = filterObject(response.result, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); } }) @@ -192,7 +188,6 @@ class DescribeRunCommand { } class DeleteRunCommand { - constructor(program) { this.program = program; } @@ -202,11 +197,10 @@ class DeleteRunCommand { debug('%s.executeDeleteRun(%s)', profile.name, runId); const exp = new Experiments(profile.url); - exp.deleteRun(profile.token, experimentName, runId).then((response) => { + exp.deleteRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { printSuccess(`Run ${runId} in experiment ${experimentName} deleted`, options); - } - else { + } else { printError(`Failed to delete run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); } }) @@ -217,7 +211,6 @@ class DeleteRunCommand { } class DownloadArtifactCommand { - constructor(program) { this.program = program; } @@ -230,12 +223,11 @@ class DownloadArtifactCommand { const showProgress = !!options.progress; // To download content from Secrets - exp.downloadArtifact(profile.token, experimentName, runId, artifactName, showProgress).then((response) => { + exp.downloadArtifact(options.project || profile.project, profile.token, experimentName, runId, artifactName, showProgress).then((response) => { if (response.success) { // messages need to be on stderr as content is streamed to stdout console.error(response.message); - } - else { + } else { printError(`Failed to download artifact: ${response.status} - ${response.message}`, options); } }).catch((err) => { diff --git a/src/commands/graph.js b/src/commands/graph.js index 387a86ab..39873928 100644 --- a/src/commands/graph.js +++ b/src/commands/graph.js @@ -26,15 +26,19 @@ const through2 = require('through2'); const { loadProfile } = require('../config'); const { Graph } = require('../client/graph'); -const { printSuccess, printError, filterObject, countLinesInFile, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, countLinesInFile, printTable, +} = require('./utils'); const _reserved = ['$match', '$path', '$transform', '$name']; const _systemEvents = ['$set', '$unset', '$delete']; -const progressBarConfig = 'publishing [:bar] :current/:total :rate evt/s :elapsed s' ; +const progressBarConfig = 'publishing [:bar] :current/:total :rate evt/s :elapsed s'; const applyTemplate = (t, target) => { - const { $match, $path, $transform, $name } = t; + const { + $match, $path, $transform, $name, +} = t; debug(`applying template to target: ${JSON.stringify(target, null, 4)}`); @@ -43,10 +47,10 @@ const applyTemplate = (t, target) => { debug(`checking $match for ${$name}: ${$match}`); let match = true; const queryTarget = [target]; - for (let m of $match) { + ($match).forEach((m) => { const paths = jp.query(queryTarget, m); match = paths && paths.length > 0; - } + }); if (!match) return null; if ($name) debug(`Matched template ${$name}: ${$match}`); @@ -69,18 +73,16 @@ const applyTemplate = (t, target) => { debug('q:', q); // Hardcoded event using a system event type - if (k == 'event' && _systemEvents.indexOf(q) !== -1) { + if (k === 'event' && _systemEvents.indexOf(q) !== -1) { result[k] = q; return; } if (_.isObject(q)) { result[k] = applyTemplate(q, target); - } - else if (q.startsWith('$')) { + } else if (q.startsWith('$')) { result[k] = jp.value(target, q); - } - else { + } else { result[k] = q; } }); @@ -88,41 +90,28 @@ const applyTemplate = (t, target) => { return result; }; -const fixUnicodeKeys = (obj) => { - const keys = Object.keys(obj); - const result = {}; - keys.forEach((k) => { - const newKey = k.replace(/\\u002e/, '_').replace(/@/, '_'); - result[newKey] = obj[k]; - }); - return result; -}; - function castValue(value) { - if (_.isNumber(value) || _.isString(value) || _.isBoolean(value)) { - return { value }; - } if (_.isArray(value)) { return { - value: _.map(value, (x) => _.isString(x) ? castValue(x) : x) + value: _.map(value, x => (_.isString(x) ? castValue(x) : x)), }; - } // Construct Dimensional from Object if (_.isObject(value)) { return { value: _.map( _.entries(value), - entry => { + (entry) => { const [k, v] = entry; return { dimensionId: k, dimensionValue: castValue(v), }; - } - ) - } + }, + ), + }; } + return { value }; } /** @@ -135,10 +124,12 @@ const autoAttributes = (evt) => { // Skip relationship events if (evt.targetEntityId) return attrs; - const { event, properties, entityId, entityType, eventTime, source, meta, eventLabel } = evt; + const { + event, properties, entityId, entityType, eventTime, source, meta, eventLabel, +} = evt; - if (event == '$set') { - attrs = Object.keys(properties).map((k) => ({ + if (event === '$set') { + attrs = Object.keys(properties).map(k => ({ event: k, entityId, entityType, @@ -154,7 +145,6 @@ const autoAttributes = (evt) => { }; class FindEventsCommand { - constructor(program) { this.program = program; } @@ -164,29 +154,26 @@ class FindEventsCommand { debug('%s.executeFindEvents()', profile.name); const graph = new Graph(profile.url); - graph.findEvents(profile.token, options.filter, options.sort, options.limit, options.skip) + graph.findEvents(options.project || profile.project, profile.token, options.filter, options.sort, options.limit, options.skip) .then((response) => { if (response.success) { let result = response.events; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ - {column: 'Entity ID', field: 'entityId', width: 40}, - {column: 'Entity Type', field: 'entityType', width: 30}, - {column: 'Event', field: 'event', width: 30}, - {column: 'Event Label', field: 'eventLabel', width: 30}, - {column: 'Event Time', field: 'eventTime', width: 20}, + { column: 'Entity ID', field: 'entityId', width: 40 }, + { column: 'Entity Type', field: 'entityType', width: 30 }, + { column: 'Event', field: 'event', width: 30 }, + { column: 'Event Label', field: 'eventLabel', width: 30 }, + { column: 'Event Time', field: 'eventTime', width: 20 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to find entities: ${response.status} ${response.message}`, options); } }) @@ -218,10 +205,9 @@ class PublishEventsCommand { let rs; if (options.tracking) { - rs = await graph.track(profile.token, events); - } - else { - rs = await graph.publishEntities(profile.token, events); + rs = await graph.track(options.project || profile.project, profile.token, events); + } else { + rs = await graph.publishEntities(options.project || profile.project, profile.token, events); } if (bar && events.length > 0) bar.tick(events.length); @@ -232,14 +218,14 @@ class PublishEventsCommand { }; // Git conflict - this was not async before ... - const printEvent = async (events, bar) => { + const printEvent = async (events) => { if (!events) return; - events.forEach((e) => console.log(JSON.stringify(e))); + events.forEach(e => console.log(JSON.stringify(e))); }; function list_can_handle_element_without_going_over_size(batch_size, element_size, max_size) { const batch_size_delta_if_elem_added = element_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty - return batch_size + batch_size_delta_if_elem_added <= max_size + return batch_size + batch_size_delta_if_elem_added <= max_size; } function batchElementsUntilSize(max_size) { @@ -252,12 +238,10 @@ class PublishEventsCommand { if (event_size > max_event_size) { debug(`Event too large at ${event_size}B. Max Size: ${max_event_size}B. Event: ${JSON.stringify(event)}`); - } - else if (list_can_handle_element_without_going_over_size(batch_size, event_size, max_size)) { + } else if (list_can_handle_element_without_going_over_size(batch_size, event_size, max_size)) { batch.push(event); - batch_size += event_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty [] - } - else { + batch_size += event_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty [] + } else { debug(`LIMIT REACHED ${batch_size}, PUSHING ${batch.length} elements.`); this.push(batch); batch = []; @@ -285,17 +269,17 @@ class PublishEventsCommand { bar = !_.isEmpty(bar) ? bar : ( new ProgressBar(progressBarConfig, { total: 0, width: 65 }) ); - const { batchHandler, batchFlusher, } = batchElementsUntilSize(1024 * 100); + const { batchHandler, batchFlusher } = batchElementsUntilSize(1024 * 100); stream .pipe(split()) // Cast to JSONs .pipe(through2.obj( - function (line, encoding, callback){ + function (line, encoding, callback) { if (!_.isEmpty(line)) { this.push(JSON.parse(line)); } callback(); - } + }, )) // Transform and Expand Auto Attributes ... .pipe(through2.obj( @@ -304,24 +288,25 @@ class PublishEventsCommand { if (options.transform) { debug('loading templates from: ', path.resolve(options.transform)); + // eslint-disable-next-line import/no-dynamic-require const templates = require(path.resolve(options.transform)); debug('loaded templates:', templates); // The event gets completely replaced in this case ... since we are saying it needs to be // transformed ... thats why concat is not used here ... events = _.map( templates, - (t) => applyTemplate(t, event), + t => applyTemplate(t, event), ).filter(e => e !== null); } if (options.auto) { - const autoAttrs = _.flatten(events.map((evt) => autoAttributes(evt))); + const autoAttrs = _.flatten(events.map(evt => autoAttributes(evt))); debug(`Generated ${autoAttrs.length} attribute events`); events = events.concat(autoAttrs); } - events.forEach((e) => this.push(e)); + events.forEach(e => this.push(e)); callback(); - } + }, )) // Batch Based on Size .pipe(through2({ objectMode: true }, batchHandler, batchFlusher)) @@ -329,10 +314,10 @@ class PublishEventsCommand { // Only upload 1 batch at a time! { objectMode: true, highWaterMark: 5 }, function (batch_of_events_to_upload, encoding, callback) { - if (lineCountIsDynamic){ + if (lineCountIsDynamic) { bar.total += _.size(batch_of_events_to_upload); } - let task = options.dryRun ? printEvent : publishEvent; + const task = options.dryRun ? printEvent : publishEvent; task(batch_of_events_to_upload, bar) .then((response) => { this.push(response); @@ -342,14 +327,14 @@ class PublishEventsCommand { printError(`Error uploading event batch: ${error.message}`, options, false); callback(); }); - } + }, )) .on('data', (response_from_batch_publish) => { debug(`# Response from events published : ${response_from_batch_publish}`); }) - .on('error', (err) => reject(err)) + .on('error', err => reject(err)) .on('end', () => { - if(!options.dryRun) { + if (!options.dryRun) { printError(`Finished processing ${bar.total} events in batches.`, null, false); } bar.terminate(); @@ -363,7 +348,7 @@ class PublishEventsCommand { let bar = null; if (!lineCountIsDynamic) { bar = new ProgressBar( - progressBarConfig, { total: numLines, width: 65 } + progressBarConfig, { total: numLines, width: 65 }, ); printError(`Publishing ${numLines} records from file ${file}`, null, false); } else { @@ -375,18 +360,16 @@ class PublishEventsCommand { }); }); } - else { + return new Promise((resolve, reject) => { process.stdin.resume(); process.stdin.setEncoding('utf8'); processStream(process.stdin, resolve, reject); }); - } } } class GetEntityCommand { - constructor(program) { this.program = program; } @@ -396,7 +379,7 @@ class GetEntityCommand { debug('%s.executeGetEntity(%s)', profile.name, entityId); const graph = new Graph(profile.url); - graph.getEntity(profile.token, entityId) + graph.getEntity(options.project || profile.project, profile.token, entityId) .then((response) => { if (response.success) { let result = response.entity; @@ -404,8 +387,7 @@ class GetEntityCommand { result = filterObject(result, options); } printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to get entity: ${response.status} ${response.message}`, options); } }) @@ -416,7 +398,6 @@ class GetEntityCommand { } class QueryGraphCommand { - constructor(program) { this.program = program; } @@ -426,30 +407,29 @@ class QueryGraphCommand { debug('%s.executeQueryGraph(%s)', profile.name, query); const graph = new Graph(profile.url); - graph.query(profile.token, query) + graph.query(options.project || profile.project, profile.token, query) .then((response) => { if (response.success) { - const result = response.result; + const { result } = response; const rows = result.values || []; debug('query result:', result); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const table = new Table( - result.columns.map(c => ({ value: c, headerColor : 'cyan', })), + result.columns.map(c => ({ value: c, headerColor: 'cyan' })), rows, - { defaultValue: '---'}); + { defaultValue: '---' }, +); printSuccess(query); console.log(table.render()); console.log(); printSuccess(`Found ${rows.length} results in ${result.took} milliseconds`, options); } - } - else { + } else { printError(`Failed to execute query: ${response.status} ${response.message}`, options); } }) diff --git a/src/commands/jobs.js b/src/commands/jobs.js deleted file mode 100644 index 0550ac83..00000000 --- a/src/commands/jobs.js +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Jobs = require('../client/jobs'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - -module.exports.ListJobs = class ListJobs { - - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listJobs()', profile.name); - - const jobs = new Jobs(profile.url); - jobs.listJobs(profile.token).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result.jobs, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Image', field: 'image', width: 90 }, - { column: 'Memory', field: 'memory', width: 10 }, - { column: 'Virtual CPUs', field: 'vcpus', width: 15 } - ]; - printTable(tableSpec, response.result.jobs); - } - } - else { - printError(`Failed to list jobs: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list jobs: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeJob = class DescribeJob { - - constructor(program) { - this.program = program; - } - - execute(jobDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.describeJob()', profile.name); - - const jobs = new Jobs(profile.url); - jobs.describeJob(profile.token, jobDefinition).then((response) => { - if (response.success) { - if (options.json) { - let result = filterObject(response.result.job, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Image', field: 'image', width: 90 }, - { column: 'Memory', field: 'memory', width: 10 }, - { column: 'Virtual CPUs', field: 'vcpus', width: 15 } - ]; - printTable(tableSpec, [response.result.job]); - } - } - else { - printError(`Failed to describe job: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to describe job: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.JobStatus = class JobStatus { - - constructor(program) { - this.program = program; - } - - execute(jobDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.jobStatus()', profile.name); - - const jobs = new Jobs(profile.url); - jobs.jobStatus(profile.token, jobDefinition).then((response) => { - if (response.success) { - if (options.json) { - let result = response.result; - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Submitted', field: 'SUBMITTED', width: 15 }, - { column: 'Pending', field: 'PENDING', width: 15 }, - { column: 'Runnable', field: 'RUNNABLE', width: 15 }, - { column: 'Starting', field: 'STARTING', width: 15 }, - { column: 'Running', field: 'RUNNING', width: 15 }, - { column: 'Succeeded', field: 'SUCCEEDED', width: 15 }, - { column: 'Failed', field: 'FAILED', width: 15 } - ]; - printTable(tableSpec, [response.result.stats]); - } - } - else { - printError(`Failed to describe job: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to describe job: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.SaveJob = class SaveJob { - - constructor(program) { - this.program = program; - } - - execute(jobDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.saveJob()', profile.name); - - const jobDefStr = fs.readFileSync(jobDefinition); - const job = parseObject(jobDefStr, options); - debug('%o', job); - - const jobs = new Jobs(profile.url); - jobs.saveJob(profile.token, job, options.pushDocker).then((response) => { - if (response.success) { - printSuccess('Job saved', options); - } - else { - printError(`Failed to save job: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to save job: ${err.status} ${err.message}`, options); - }); - } -}; \ No newline at end of file diff --git a/src/commands/profiles.js b/src/commands/profiles.js index fccb2204..533a2dc5 100644 --- a/src/commands/profiles.js +++ b/src/commands/profiles.js @@ -14,16 +14,16 @@ * limitations under the License. */ -const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { Graph } = require('../client/graph'); -const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, +} = require('./utils'); class SaveProfileSchemaCommand { - constructor(program) { this.program = program; } @@ -36,20 +36,20 @@ class SaveProfileSchemaCommand { const schema = parseObject(schemaStr, options); const catalog = new Catalog(profile.url); - catalog.saveProfileSchema(profile.token, schema) + catalog.saveProfileSchema(options.project || profile.project, profile.token, schema) .then((response) => { if (response.success) { - printSuccess(`Profile Schema saved`, options); + printSuccess('Profile Schema saved', options); } else { - const {message, details} = response; + const { message, details } = response; debug(`Failed to save profile schema: ${response.status} - ${message}`); debug(response); printError('Failed to save profile schema.', options, false); if (details) { printError('The following issues were found:', options, false); const tableSpec = [ - {column: 'Path', field: 'path', width: 50}, - {column: 'Message', field: 'message', width: 100}, + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, ]; details.map(d => d.path = formatValidationPath(d.path)); printTable(tableSpec, details); @@ -69,7 +69,6 @@ class SaveProfileSchemaCommand { } class ListProfileSchemasCommand { - constructor(program) { this.program = program; } @@ -78,22 +77,23 @@ class ListProfileSchemasCommand { const profile = loadProfile(options.profile); debug('%s.executeListProfileSchemas()', profile.name); - const { filter, sort, limit, skip } = options; + const { + filter, sort, limit, skip, +} = options; const catalog = new Catalog(profile.url); - catalog.listProfileSchemas(profile.token, filter, sort, limit, skip) + catalog.listProfileSchemas(options.project || profile.project, profile.token, filter, sort, limit, skip) .then((response) => { if (response.success) { let result = response.schemas; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - {column: 'Title', field: 'title', width: 50}, - {column: 'Name', field: 'name', width: 50}, - {column: 'Version', field: '_version', width: 12} + { column: 'Title', field: 'title', width: 50 }, + { column: 'Name', field: 'name', width: 50 }, + { column: 'Version', field: '_version', width: 12 }, ]; printTable(tableSpec, result); @@ -109,7 +109,6 @@ class ListProfileSchemasCommand { } class DescribeProfileSchemaCommand { - constructor(program) { this.program = program; } @@ -119,10 +118,10 @@ class DescribeProfileSchemaCommand { debug('%s.executeDescribeProfileSchema(%s)', profile.name, schemaName); const catalog = new Catalog(profile.url); - catalog.describeProfileSchema(profile.token, schemaName) + catalog.describeProfileSchema(options.project || profile.project, profile.token, schemaName) .then((response) => { if (response.success) { - let result = filterObject(response.schema, options); + const result = filterObject(response.schema, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printError(`Failed to describe profile schema ${schemaName}: ${response.message}`, options); @@ -135,7 +134,6 @@ class DescribeProfileSchemaCommand { } class DeleteProfileSchemaCommand { - constructor(program) { this.program = program; } @@ -145,11 +143,11 @@ class DeleteProfileSchemaCommand { debug('%s.executeDeleteProfileSchema(%s)', profile.name, schemaName); const catalog = new Catalog(profile.url); - catalog.deleteProfileSchema(profile.token, schemaName) + catalog.deleteProfileSchema(options.project || profile.project, profile.token, schemaName) .then((response) => { if (response.success) { debug(response.message); - printSuccess(`Profile Schema deleted.`, options); + printSuccess('Profile Schema deleted.', options); } else { printError(`Failed to delete profile schema ${schemaName}: ${response.message}`, options); } @@ -169,30 +167,29 @@ class ListProfilesCommand { const profile = loadProfile(options.profile); debug('%s.executeListProfiles()', profile.name); - const { filter, sort, limit, skip } = options; + const { + filter, sort, limit, skip, +} = options; const graph = new Graph(profile.url); - graph.listProfiles(profile.token, filter, sort, limit, skip) + graph.listProfiles(options.project || profile.project, profile.token, filter, sort, limit, skip) .then((response) => { if (response.success) { let result = response.profiles; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ - {column: 'Profile ID', field: 'profileId', width: 50}, - {column: 'Profile Schema', field: 'profileSchema', width: 50}, - {column: 'Version', field: 'version', width: 12}, - {column: 'Last Updated', field: 'updatedAt', width: 40} + { column: 'Profile ID', field: 'profileId', width: 50 }, + { column: 'Profile Schema', field: 'profileSchema', width: 50 }, + { column: 'Version', field: 'version', width: 12 }, + { column: 'Last Updated', field: 'updatedAt', width: 40 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list profiles: ${response.status} ${response.message}`, options); } }) @@ -213,10 +210,10 @@ class ListProfileVersionsCommand { const { before, after, limit } = options; debug( '%s.executeListProfileVersionsCommand(%s) Options:[%s][%s][%s]', - profile.name, profileId, before, after, limit + profile.name, profileId, before, after, limit, ); const graph = new Graph(profile.url); - graph.listProfileVersions(profile.token, profileId, schemaName, before, after, limit) + graph.listProfileVersions(options.project || profile.project, profile.token, profileId, schemaName, before, after, limit) .then((response) => { if (response.success) { let result = response.versions; @@ -225,19 +222,17 @@ class ListProfileVersionsCommand { } if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Profile ID', field: 'profileId', width: 50 }, { column: 'Profile Schema', field: 'profileSchema', width: 50 }, { column: 'Version', field: 'version', width: 12 }, - { column: 'Created At', field: 'createdAt', width: 40 } + { column: 'Created At', field: 'createdAt', width: 40 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list profile versions: ${response.status} ${response.message}`, options); } }) @@ -258,10 +253,10 @@ class DescribeProfileCommand { debug(`${profile.name}.executeDescribeProfile(${profileId}) [${historic}][${versionLimit}][${attribute}]`); const graph = new Graph(profile.url); - graph.describeProfile(profile.token, profileId, schemaName, historic, versionLimit, attribute) + graph.describeProfile(options.project || profile.project, profile.token, profileId, schemaName, historic, versionLimit, attribute) .then((response) => { if (response.success) { - let result = filterObject(response.profile, options); + const result = filterObject(response.profile, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printError(`Failed to describe profile ${schemaName}: ${response.message}`, options); @@ -274,7 +269,6 @@ class DescribeProfileCommand { } class DeleteProfileCommand { - constructor(program) { this.program = program; } @@ -284,10 +278,10 @@ class DeleteProfileCommand { debug('%s.executeDeleteProfile(%s)', profile.name, profileId); const graph = new Graph(profile.url); - graph.deleteProfile(profile.token, profileId, schemaName) + graph.deleteProfile(options.project || profile.project, profile.token, profileId, schemaName) .then((response) => { if (response.success) { - printSuccess(`Profile deleted.`, options); + printSuccess('Profile deleted.', options); } else { printError(`Failed to delete profile ${schemaName}: ${response.message}`, options); } @@ -299,7 +293,6 @@ class DeleteProfileCommand { } class RebuildProfilesCommand { - constructor(program) { this.program = program; } @@ -309,7 +302,7 @@ class RebuildProfilesCommand { debug('%s.executeRebuildProfiles(%s)', profile.name, schemaName); const graph = new Graph(profile.url); - graph.rebuildProfiles(profile.token, schemaName, profileId, options.filter, options.sort, options.limit, options.skip) + graph.rebuildProfiles(options.project || profile.project, profile.token, schemaName, profileId, options.filter, options.sort, options.limit, options.skip) .then((response) => { if (response.success) { printSuccess(response.message, options); diff --git a/src/commands/project.js b/src/commands/project.js deleted file mode 100644 index 9e5e24fe..00000000 --- a/src/commands/project.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const debug = require('debug')('cortex:cli'); -const yeoman = require('yeoman-environment'); -const { printSuccess, printError, filterObject, parseObject } = require('./utils'); - -module.exports.GenerateProjectCommand = class GenerateProjectCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - debug('generateProject()'); - const repoUrl = 'https://github.com/CognitiveScale/cortex-fabric-examples'; - printSuccess(`This command is deprecated. See the ${repoUrl} repo for guidance.`, options); - } -}; diff --git a/src/commands/projects.js b/src/commands/projects.js new file mode 100644 index 00000000..61f5e0cf --- /dev/null +++ b/src/commands/projects.js @@ -0,0 +1,105 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _ = require('lodash'); +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const ApiServerClient = require('../client/apiServerClient'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); + +module.exports.CreateProjectCommand = class CreateProjectCommand { + constructor(program) { + this.program = program; + } + + async execute(projectDefinition, command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeSaveProject(%s)', profile.name, projectDefinition); + let project = {}; + try { + if (projectDefinition) { + const projectDefStr = fs.readFileSync(projectDefinition); + project = parseObject(projectDefStr, options); + } + if (_.isEmpty(options.name || project.name)) { + printError('`name` must be provided', options); + } + const cli = new ApiServerClient(profile.url); + const response = await cli.createProject(profile.token, { + name: options.name || project.name, + title: options.title || project.title, + description: options.description || project.description, + }); + printSuccess(`Project ${response.name} saved`, options); + } catch (err) { + printError(`Failed to save project: ${err.message}`, options); + } + } +}; + +module.exports.ListProjectsCommand = class ListProjectsCommand { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListProjects()', profile.name); + + const cli = new ApiServerClient(profile.url); + try { + const response = await cli.listProjects(profile.token); + let result = response; + if (options.query) result = filterObject(result, options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 80 }, + ]; + printTable(tableSpec, result); + } + } catch (err) { + printError(`Failed to list projects: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.DescribeProjectCommand = class DescribeProjectCommand { + constructor(program) { + this.program = program; + } + + async execute(projectName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDescribeProject(%s)', profile.name, projectName); + const cli = new ApiServerClient(profile.url); + + try { + const response = await cli.getProject(profile.token, projectName); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + printError(`Failed to describe project: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/src/commands/roles.js b/src/commands/roles.js new file mode 100644 index 00000000..5e1e3e3b --- /dev/null +++ b/src/commands/roles.js @@ -0,0 +1,206 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Roles = require('../client/roles'); +const { + printSuccess, printError, filterObject, +} = require('./utils'); + +function createGrant(options) { + return { + project: options.project, + resource: options.resource, + actions: options.actions, + }; +} + +module.exports.RoleDeleteCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + debug('%s.deleteRole=%s', profile.name, role); + + const client = new Roles(profile.url, role); + + client.deleteRole(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to delete role : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleCreateCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + const form = createGrant(options); + form.role = role; + debug('%s.createRole=%s', profile.name); + + const client = new Roles(profile.url); + + client.createRole(profile.token, form).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to create role : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to create role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleAssignCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + debug('%s.grantRoler=%s', profile.name, role); + + const client = new Roles(profile.url, role); + const call = (deleteFlag, token, users) => { + if (deleteFlag) { + return client.removeUsersFromRole(token, users); + } + return client.addUsersToRole(token, users); + }; + + call(options.delete, profile.token, options.users).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} user from role : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} user from role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleGrantCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + const form = createGrant(options); + debug('%s.grantRoler=%s', profile.name, role); + + const client = new Roles(profile.url, role); + const call = (deleteFlag, token, body) => { + if (deleteFlag) { + return client.removeGrantFromRole(token, body); + } + return client.createGrantForRole(token, body); + }; + + call(options.delete, profile.token, form).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for role : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleDescribeCommand = class { + constructor(program) { + this.program = program; + } + + execute(role, options) { + const profile = loadProfile(options.profile); + debug('%s.describeForRole=%s', profile.name, role); + + const flags = []; + + if (options.grants) { + flags.push('grants'); + } + if (options.users) { + flags.push('users'); + } + const client = new Roles(profile.url, role, flags); + client.describeRole(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe role : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe role : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RoleListCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listRole=%s', profile.name); + + const flags = []; + + const client = new Roles(profile.url, flags); + client.listRoles(profile.token, options.project).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to list roles : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list roles : ${err.status} ${err.message}`, options); + }); + } +}; diff --git a/src/commands/skills.js b/src/commands/skills.js index 64450197..1631e385 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,33 +15,30 @@ */ const _ = require('lodash'); const fs = require('fs'); -const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); -function _formatpath(p){ - let cnt=0, res = ''; +function _formatpath(p) { + let cnt = 0; let +res = ''; const len = p.length; - p.forEach(s => { + p.forEach((s) => { if (_.isNumber(s)) { - res += `[${s}]` - }else - if ( cnt < len) - res += s; - else - res +=s; - if (cnt < len-1 && !_.isNumber(p[cnt+1])) - res += '.'; + res += `[${s}]`; + } else + if (cnt < len) res += s; + else res += s; + if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) res += '.'; cnt += 1; - - }) + }); return res; } module.exports.SaveSkillCommand = class SaveSkillCommand { - constructor(program) { this.program = program; } @@ -54,23 +51,20 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const skill = parseObject(skillDefStr, options); const catalog = new Catalog(profile.url); - catalog.saveSkill(profile.token, skill).then((response) => { + catalog.saveSkill(options.project || profile.project, profile.token, skill).then((response) => { if (response.success) { - printSuccess(`Skill saved`, options); - } else { - if (response.details) { + printSuccess('Skill saved', options); + } else if (response.details) { console.log(`Failed to save skill: ${response.status} ${response.message}`); console.log('The following issues were found:'); const tableSpec = [ - {column: 'Path', field: 'path', width: 50}, - {column: 'Message', field: 'message', width: 100}, + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, ]; response.details.map(d => d.path = _formatpath(d.path)); - printTable(tableSpec,response.details); + printTable(tableSpec, response.details); printError(''); // Just exit - } - } }) .catch((err) => { printError(`Failed to save skill: ${err.status} ${err.response.body.error}`, options); @@ -79,7 +73,6 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { }; module.exports.ListSkillsCommand = class ListSkillsCommand { - constructor(program) { this.program = program; } @@ -89,26 +82,23 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { debug('%s.executeListSkills()', profile.name); const catalog = new Catalog(profile.url); - catalog.listSkills(profile.token).then((response) => { + catalog.listSkills(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.skills; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Title', field: 'title', width: 50 }, { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 } + { column: 'Version', field: '_version', width: 12 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list skills: ${response.status} ${response.message}`, options); } }) @@ -119,7 +109,6 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { }; module.exports.DescribeSkillCommand = class DescribeSkillCommand { - constructor(program) { this.program = program; } @@ -129,12 +118,11 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { debug('%s.executeDescribeSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); - catalog.describeSkill(profile.token, skillName).then((response) => { + catalog.describeSkill(options.project || profile.project, profile.token, skillName).then((response) => { if (response.success) { - let result = filterObject(response.skill, options); + const result = filterObject(response.skill, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe skill ${skillName}: ${response.message}`, options); } }) @@ -143,16 +131,3 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { }); } }; - -module.exports.GenerateSkillCommand = class GenerateSkillCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - debug('%s.generateSkill()'); - const repoUrl = 'https://github.com/CognitiveScale/cortex-fabric-examples'; - printSuccess(`This command is deprecated. See the ${repoUrl} repo for guidance.`, options); - } -}; diff --git a/src/commands/tasks.js b/src/commands/tasks.js deleted file mode 100644 index 106c8c16..00000000 --- a/src/commands/tasks.js +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Tasks = require('../client/tasks'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); - -module.exports.ListTasks = class ListTasks { - - constructor(program) { - this.program = program; - } - - execute(jobId, options) { - const profile = loadProfile(options.profile); - debug('%s.listTasks()', profile.name); - - const tasks = new Tasks(profile.url, jobId); - tasks.listTasks(profile.token).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Task ID', field: 'taskId', width: 40 }, - { column: 'Status', field: 'status', width: 40 }, - { column: 'Detail', field: 'statusReason', width: 40 }, - { column: 'Created', field: 'createdAt', width: 40 }, - { column: 'Started', field: 'startedAt', width: 40 }, - { column: 'Stopped', field: 'stoppedAt', width: 40 } - ]; - - printTable(tableSpec, response.result.tasks); - } - } - else { - printError(`Failed to list tasks: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list tasks: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.TaskLogs = class TaskLogs { - - constructor(program) { - this.program = program; - } - - execute(jobId, taskId, options) { - const profile = loadProfile(options.profile); - debug('%s.taskLogs()', profile.name); - - const tasks = new Tasks(profile.url, jobId); - tasks.taskLogs(profile.token, taskId).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Status', field: 'status', width: 40 }, - { column: 'Message', field: 'message', width: 40 } - ]; - printTable(tableSpec, [response.result]); - } - } - else { - printError(`Failed to fetch logs: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to fetch logs: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.CancelTask = class CancelTask { - - constructor(program) { - this.program = program; - } - - execute(jobId, taskId, options) { - const profile = loadProfile(options.profile); - debug('%s.cancelTask()', profile.name); - - const message = options.message; - const tasks = new Tasks(profile.url, jobId); - tasks.cancelTask(profile.token, taskId, message).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Status', field: 'status', width: 20 } - ]; - printTable(tableSpec, [response.result]); - } - } - else { - printError(`Failed to cancel task: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to cancel task: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeTask = class DescribeTask { - - constructor(program) { - this.program = program; - } - - execute(jobId, taskId, options) { - const profile = loadProfile(options.profile); - debug('%s.describeTask()', profile.name); - - const tasks = new Tasks(profile.url, jobId); - tasks.describeTask(profile.token, taskId).then((response) => { - if (response.success) { - if (options.query || options.json) { - let result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } - else { - let tableSpec = [ - { column: 'Id', field: 'id', width: 40 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Created At', field: 'createdAt', width: 15 }, - { column: 'Started At', field: 'startedAt', width: 15 }, - { column: 'Stopped At', field: 'stoppedAt', width: 15 } - ]; - printTable(tableSpec, [response.result]); - } - } - else { - printError(`Failed to describe task: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to describe task: ${err.status} ${err.message}`, options); - }); - } -}; \ No newline at end of file diff --git a/src/commands/types.js b/src/commands/types.js index 705641d4..581696cb 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -18,45 +18,40 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.SaveTypeCommand = class SaveTypeCommand { - constructor(program) { this.program = program; } - execute(typeDefinition, options) { + async execute(typeDefinition, options) { const profile = loadProfile(options.profile); debug('%s.executeSaveType(%s)', profile.name, typeDefinition); + try { + const typeDefStr = fs.readFileSync(typeDefinition); + const type = parseObject(typeDefStr, options); + debug('%o', type); - const typeDefStr = fs.readFileSync(typeDefinition); - const type = parseObject(typeDefStr, options); - debug('%o', type); - - let normalizedType = {}; - if ( !('types' in type) ) - normalizedType["types"] = [type]; - else - normalizedType = type; + let normalizedType = {}; + if (!('types' in type)) normalizedType.types = [type]; + else normalizedType = type; - const catalog = new Catalog(profile.url); - catalog.saveType(profile.token, normalizedType).then((response) => { + const catalog = new Catalog(profile.url); + const response = await catalog.saveType(options.project || profile.project, profile.token, normalizedType); if (response.success) { - printSuccess(`Type definition saved`, options); - } - else { - printError(`Failed to save type: ${response.status} ${response.message}`, options); + return printSuccess('Type definition saved', options); } - }) - .catch((err) => { - printError(`Failed to save type: ${err.status} ${err.response.body.error}`, options); - }); + return printError(`${response.message}: ${JSON.stringify(response.details || '')} `); + } catch (err) { + return printError(`Failed to save type: ${err.status} ${err.message}`, options); + } } }; module.exports.ListTypesCommand = class ListTypesCommand { - constructor(program) { this.program = program; } @@ -66,26 +61,23 @@ module.exports.ListTypesCommand = class ListTypesCommand { debug('%s.executeListTypes()', profile.name); const catalog = new Catalog(profile.url); - catalog.listTypes(profile.token).then((response) => { + catalog.listTypes(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.types; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Title', field: 'title', width: 50 }, { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 } + { column: 'Version', field: '_version', width: 12 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list types: ${response.status} ${response.message}`, options); } }) @@ -96,7 +88,6 @@ module.exports.ListTypesCommand = class ListTypesCommand { }; module.exports.DescribeTypeCommand = class DescribeTypeCommand { - constructor(program) { this.program = program; } @@ -106,12 +97,11 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { debug('%s.executeDescribeType(%s)', profile.name, typeName); const catalog = new Catalog(profile.url); - catalog.describeType(profile.token, typeName).then((response) => { + catalog.describeType(options.project || profile.project, profile.token, typeName).then((response) => { if (response.success) { - let result = filterObject(response.type, options); + const result = filterObject(response.type, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe type ${typeName}: ${response.message}`, options); } }) @@ -120,4 +110,3 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { }); } }; - diff --git a/src/commands/users.js b/src/commands/users.js new file mode 100644 index 00000000..f9a1e018 --- /dev/null +++ b/src/commands/users.js @@ -0,0 +1,94 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Users = require('../client/users'); +const { + printSuccess, printError, filterObject, +} = require('./utils'); + +function createGrant(options) { + return { + project: options.project, + resource: options.resource, + actions: options.actions, + }; +} + +module.exports.UserGrantCommand = class { + constructor(program) { + this.program = program; + } + + execute(user, options) { + const profile = loadProfile(options.profile); + const form = createGrant(options); + debug('%s.grantUser=%s', profile.name, user || 'self'); + const client = new Users(profile.url, user); + const call = (deleteFlag, token, body) => { + if (deleteFlag) { + return client.removeGrantFromUser(token, body); + } + return client.createGrantForUser(token, body); + }; + + call(options.delete, profile.token, form).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for user : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for user : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.UserDescribeCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.describeForUser=%s', profile.name, options.user || 'self'); + + const flags = []; + + if (options.grants) { + flags.push('grants'); + } + if (options.roles) { + flags.push('roles'); + } + const client = new Users(profile.url, options.user, flags); + client.describeUser(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe user : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe user : ${err.status} ${err.message}`, options); + }); + } +}; diff --git a/src/commands/utils.js b/src/commands/utils.js index 6da9413d..5f410b30 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,111 +14,118 @@ * limitations under the License. */ +const _ = require('lodash'); const chalk = require('chalk'); -const path = require('path'); +const debug = require('debug')('cortex:cli'); +const findPackageJson = require('find-package-json'); const fs = require('fs'); -const _ = require('lodash'); -const jmsepath = require('jmespath'); const glob = require('glob'); -const yaml = require('js-yaml'); -const debug = require('debug')('cortex:cli'); +const jmsepath = require('jmespath'); +const os = require('os'); +const osName = require('os-name'); +const path = require('path'); const Table = require('cli-table'); +const yaml = require('js-yaml'); const { exec } = require('child_process'); -module.exports.constructError = function(error) { + +module.exports.constructError = (error) => { // fallback to text in message or standard error message - let errResp = error.response; - let errorText = (errResp && errResp.text) || error.message; + const errResp = error.response; + let errorText = _.get(errResp, 'body'); + if (_.isEmpty(errorText)) { + errorText = error.message; + } let details; // if JSON was returned, look for either a message or error in it try { - const resp = errResp ? JSON.parse(errResp.text) : {}; + const resp = errResp ? JSON.parse(errorText) : {}; if (resp.message || resp.error) errorText = resp.message || resp.error; + // eslint-disable-next-line prefer-destructuring details = resp.details; - } catch(e) { + } catch (e) { // Guess it wasn't JSON! } - return {success: false, message: errorText, details, status: error.status || ''}; + return { + success: false, message: errorText, details, status: error.status || '', +}; }; -module.exports.printSuccess = function(message, options) { +module.exports.printSuccess = (message, options) => { if (!options || options.color === 'on') { console.log(chalk.green(message)); - } - else { + } else { console.log(message); } }; -module.exports.printWarning = function(message, options) { +module.exports.printWarning = (message, options) => { if (!options || options.color === 'on') { console.log(chalk.yellow(message)); - } - else { + } else { console.log(message); } }; -module.exports.printError = function(message, options, exit = true) { - if (!options || options.color === 'on') { +module.exports.printError = (message, options, exit = true) => { + if (!options || options.color === 'on') { console.error(chalk.red(message)); - } - else { + } else { console.error(message); } if (exit) { - process.exit(1) + process.exit(1); } }; -module.exports.filterObject = function(obj, options) { +module.exports.filterObject = (obj, options) => { if (options.query) { - debug('filtering results with query: ' + options.query); + debug(`filtering results with query: ${options.query}`); return jmsepath.search(obj, options.query); } return obj; }; -module.exports.parseObject = function(str, options) { +module.exports.parseObject = (str, options) => { if (options.yaml) { return yaml.safeLoad(str); } - + return JSON.parse(str); }; function _extractValues(fields, obj) { const rv = []; - fields.forEach((f) => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null)? obj[f].toString() : '-')); + fields.forEach(f => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null) ? obj[f].toString() : '-')); return rv; } -module.exports.printTable = function(spec, objects, transform) { +module.exports.printTable = (spec, objects, transform) => { transform = transform || function (obj) { return obj; }; - const head = spec.map((s) => s.column); - const colWidths = spec.map((s) => s.width); - const fields = spec.map((s) => s.field); - const values = objects.map((obj) => _extractValues(fields, transform(obj))); + const head = spec.map(s => s.column); + const colWidths = spec.map(s => s.width); + const fields = spec.map(s => s.field); + const values = objects.map(obj => _extractValues(fields, transform(obj))); debug('printing fields: %o', fields); - const table = new Table({head, colWidths, style: {head: ['cyan']}}); - values.forEach((v) => table.push(v)); + const table = new Table({ head, colWidths, style: { head: ['cyan'] } }); + values.forEach(v => table.push(v)); console.log(table.toString()); }; -module.exports.exportDoc = function(program){ - console.log(JSON.stringify(program.commands.map((c)=>({ +module.exports.exportDoc = (program) => { + console.log(JSON.stringify(program.commands.map(c => ({ name: c._name, description: c._description, - usage: c.usage(), - options: c.options.map((o)=>({ + usage: c.usage(), + options: c.options.map(o => ({ flags: o.flags, defaultValue: o.defaultValue, - description: o.description - })) + description: o.description, + })), })))); process.exit(0); }; @@ -130,7 +137,7 @@ module.exports.exportDoc = function(program){ */ async function callMe(commandStr) { return new Promise((resolve, reject) => { - const proc = exec(commandStr,(err, stdout) => { + const proc = exec(commandStr, (err, stdout) => { if (err) { reject(err.message + stdout); } else { @@ -139,28 +146,25 @@ async function callMe(commandStr) { }); // Pipe stdout to stderr in real time: proc.stdout.pipe(process.stderr); - }); } module.exports.callMe = callMe; -module.exports.getSourceFiles = function(source, cb) { - const options = {silent:true}; +module.exports.getSourceFiles = (source, cb) => { + const options = { silent: true }; const normalizedSource = (source.endsWith('/')) ? source : `${source}/`; const normalizedPath = path.join(normalizedSource, '**', '*'); - glob(normalizedPath, options, function (err, files) { + glob(normalizedPath, options, (err, files) => { // files is an array of filenames. if (err) { cb(err, null); } else { - const results = files.filter(path => fs.lstatSync(path).isFile()).map((path) => { - return { - canonical: path, - relative: path.slice(normalizedSource.length), - size: fs.lstatSync(path).size, - }; - }); + const results = files.filter(fpath => fs.lstatSync(fpath).isFile()).map(fpath => ({ + canonical: fpath, + relative: fpath.slice(normalizedSource.length), + size: fs.lstatSync(fpath).size, + })); cb(null, results); } }); @@ -171,78 +175,135 @@ function round(value, precision) { return Math.floor(value * multiplier) / multiplier; } -module.exports.humanReadableFileSize = function(sizeInBytes) { +module.exports.humanReadableFileSize = (sizeInBytes) => { const ranges = { - 'K': Math.pow(10, 3), - 'M': Math.pow(10, 6), - 'G': Math.pow(10, 9), - 'T': Math.pow(10, 12), + K: Math.pow(10, 3), + M: Math.pow(10, 6), + G: Math.pow(10, 9), + T: Math.pow(10, 12), }; - if (sizeInBytes < ranges['K']) { - return `${sizeInBytes}B` - } else if (sizeInBytes < ranges['M']) { - return `${round(sizeInBytes/ranges['K'], 1)}K` - } else if (sizeInBytes < ranges['G']) { - return `${round(sizeInBytes/ranges['M'], 1)}M` - } else if (sizeInBytes < ranges['T']) { - return `${round(sizeInBytes/ranges['G'], 1)}G` + if (sizeInBytes < ranges.K) { + return `${sizeInBytes}B`; + } if (sizeInBytes < ranges.M) { + return `${round(sizeInBytes / ranges.K, 1)}K`; + } if (sizeInBytes < ranges.G) { + return `${round(sizeInBytes / ranges.M, 1)}M`; + } if (sizeInBytes < ranges.T) { + return `${round(sizeInBytes / ranges.G, 1)}G`; } - + return sizeInBytes; // Umm fix logic }; -module.exports.formatAllServiceInputParameters = function(allParameters){ - if(allParameters.$ref != null){ - return `$ref:${allParameters.$ref}`; - } - else{ - return allParameters.map(inputParameters => formatServiceInputParameter(inputParameters)).join('\n'); - } -} - -function formatServiceInputParameter(inputParameter){ - if(inputParameter.type === 'array'){ +function formatServiceInputParameter(inputParameter) { + if (inputParameter.type === 'array') { return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}<${inputParameter.format}>`); } - else{ - return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); - } + + return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); } -module.exports.countLinesInFile = (filePath) => { +module.exports.formatAllServiceInputParameters = (allParameters) => { + if (allParameters.$ref != null) { + return `$ref:${allParameters.$ref}`; + } + + return allParameters.map(inputParameters => formatServiceInputParameter(inputParameters)).join('\n'); +}; + + +module.exports.countLinesInFile = filePath => new Promise((resolve, reject) => { // Bug ... this code ignores the final line that does not end with a new line ... thats why leftovers was added - return new Promise((resolve, reject) => { + // eslint-disable-next-line implicit-arrow-linebreak let count = 0; let leftovers = true; fs.createReadStream(filePath) .on('error', e => reject(e)) - .on('data', chunk => { - for (let i=0; i < chunk.length; ++i) { - if (chunk[i] == 10) { - count++; + .on('data', (chunk) => { + for (let i = 0; i < chunk.length; i += 1) { + if (chunk[i] === 10) { + count += 1; leftovers = false; } else { leftovers = true; } } }) - .on('end', () => leftovers ? resolve(count + 1) : resolve(count) ); + .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); }); -}; - module.exports.formatValidationPath = (p) => { - let cnt = 0, res = ''; + let cnt = 0; let +res = ''; const len = p.length; - p.forEach(s => { + p.forEach((s) => { if (_.isNumber(s)) { - res += `[${s}]` - } else if (cnt < len) - res += s; - else - res += s; - if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) - res += '.'; + res += `[${s}]`; + } else if (cnt < len) res += s; + else res += s; + if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) res += '.'; cnt += 1; - }); return res; }; + +module.exports.cleanInternalFields = jsobj => JSON.stringify(jsobj, (a, obj) => { + if (a.startsWith('_')) { + return undefined; + } + return obj; + }, 2); + + +module.exports.jsonToYaml = (json) => { + if (typeof json === 'string') { + json = JSON.parse(json); + } + return yaml.dump(json); +}; + +module.exports.writeToFile = (content, filepath) => { + const dir = path.dirname(filepath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } + + fs.writeFileSync(filepath, content); +}; + +module.exports.fileExists = filepath => fs.existsSync(filepath); + +// Alternatively, we can use fs.rmdirSync(, {recursive: true}), but that requires node v12+ +const deleteFolderRecursive = (filepath) => { + try { + if (fs.existsSync(filepath)) { + if (fs.lstatSync(filepath).isDirectory()) { + fs.readdirSync(filepath).forEach((file) => { + const curPath = path.join(filepath, file); + if (fs.lstatSync(curPath).isDirectory()) { // recurse + deleteFolderRecursive(curPath); + } else { // delete file + fs.unlinkSync(curPath); + } + }); + fs.rmdirSync(filepath); + } else { + fs.unlinkSync(filepath); + } + } + } catch (e) { + console.error(chalk.red(e.message)); + } +}; + +module.exports.deleteFile = deleteFolderRecursive; + +module.exports.checkProject = (projectId) => { + if (_.isEmpty(projectId)) { + console.error(chalk.red('\'project\' is required, please provide using \'cortex configure\' or --project')); + process.exit(1); + } +}; + +const pkg = findPackageJson(__dirname).next().value; +module.exports.getUserAgent = function getUserAgent() { + return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; +}; diff --git a/src/commands/variables.js b/src/commands/variables.js index 7559061f..1471593a 100644 --- a/src/commands/variables.js +++ b/src/commands/variables.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -22,10 +22,11 @@ const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); const Variables = require('../client/variables'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); module.exports.ListVariablesCommand = class { - constructor(program) { this.program = program; } @@ -35,20 +36,18 @@ module.exports.ListVariablesCommand = class { debug('%s.listVariables(%s)', profile.name); const variables = new Variables(profile.url); - variables.listVariables(profile.token) + variables.listVariables(options.project || profile.project, profile.token) .then((response) => { if (response.success) { const result = filterObject(response.result, options); - if (options.json) - printSuccess(JSON.stringify(result, null, 2), options); + if (options.json) printSuccess(JSON.stringify(result, null, 2), options); else { const tableSpec = [ { column: 'Variable Key Name', field: 'keyName', width: 50 }, ]; printTable(tableSpec, map(x => ({ keyName: x }), result)); } - } - else { + } else { printError(`Failed to list variables: ${response.message}`, options); } }) @@ -59,7 +58,6 @@ module.exports.ListVariablesCommand = class { }; module.exports.ReadVariableCommand = class { - constructor(program) { this.program = program; } @@ -69,20 +67,18 @@ module.exports.ReadVariableCommand = class { debug('%s.readVariable(%s)', profile.name, keyName); const variables = new Variables(profile.url); - variables.readVariable(profile.token, keyName).then((response) => { + variables.readVariable(options.project || profile.project, profile.token, keyName).then((response) => { if (response.success) { const result = filterObject(response.result, options); - if (options.json) - printSuccess(JSON.stringify(result, null, 2), options); + if (options.json) printSuccess(JSON.stringify(result, null, 2), options); else { const tableSpec = [ { column: 'Variable Key Name', field: 'keyName', width: 50 }, - { column: 'Value', field: 'value', width: 50 } + { column: 'Value', field: 'value', width: 50 }, ]; - printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2)}]); + printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2) }]); } - } - else { + } else { printError(`Failed to read secure variable : ${response.message}`, options); } }) @@ -93,7 +89,6 @@ module.exports.ReadVariableCommand = class { }; module.exports.WriteVariableCommand = class { - constructor(program) { this.program = program; } @@ -105,8 +100,7 @@ module.exports.WriteVariableCommand = class { let data = value; if (options.data) { data = parseObject(options.data, options); - } - else if (options.dataFile) { + } else if (options.dataFile) { const dataStr = fs.readFileSync(options.dataFile); data = parseObject(dataStr, options); } @@ -116,17 +110,12 @@ module.exports.WriteVariableCommand = class { } const variables = new Variables(profile.url); - variables.writeVariable(profile.token, keyName, data).then((response) => { - if (response.success) { - let result = filterObject(response.result, options); + return variables.writeVariable(options.project || profile.project, profile.token, keyName, data).then((response) => { + const result = filterObject(response.result, options); printSuccess(result.message, options); - } - else { - printError(`Failed to write secure variable : ${response.message}`, options); - } }) - .catch((err) => { - printError(`Failed to write secure variable : ${err.status} ${err.message}`, options); - }); + .catch((err) => { + printError(`Failed to write secure variable : ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/compatibility.js b/src/compatibility.js index 970eea9d..8a1905af 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,6 +14,7 @@ * limitations under the License. */ +const _ = require('lodash'); const boxen = require('boxen'); const chalk = require('chalk'); const concat = require('lodash/fp/concat'); @@ -25,11 +26,11 @@ const isInstalledGlobally = require('is-installed-globally'); const keys = require('lodash/fp/keys'); const last = require('lodash/fp/last'); const npmFetch = require('npm-registry-fetch'); -const { request } = require('./commands/apiutils'); -const semver = require('semver'); +const Semver = require('semver'); const uniq = require('lodash/fp/uniq'); +const { got } = require('./client/apiutils'); const { loadProfile } = require('./config'); -const { printError, printWarning } = require('../src/commands/utils'); +const { printError, printWarning, getUserAgent } = require('../src/commands/utils'); const pkg = findPackageJson(__dirname).next().value; @@ -39,23 +40,28 @@ function getAvailableVersions(name) { .json(pkg.name) .then(manifest => keys(getOr({}, 'versions', manifest))) .then(versions => uniq(concat(versions, pkg.version))) - .then(versions => versions.sort(semver.compare)) - .catch(_ => { + .then(versions => versions.sort(Semver.compare)) + .catch(() => { throw new Error('Unable to determine CLI available versions'); }); } function getRequiredVersion(profile) { - const endpoint = `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`; + const endpoint = `${profile.url}/fabric/v4/compatibility/applications/cortex-cli`; debug('getRequiredVersion => %s', endpoint); - return request - .get(endpoint) - .set('Authorization', `Bearer ${profile.token}`) - .set('x-cortex-proxy-notify', true) + return got + .get(endpoint, { + headers: { + Authorization: `Bearer ${profile.token}`, + 'user-agent': getUserAgent(), + }, +}) + .json() .then((res) => { - if (!res.ok) { throw new Error('Unable to fetch compatibility'); } - const { semver } = res.body; + const { semver } = res; return semver; + }).catch((err) => { + throw new Error(`Unable to fetch compatibility: ${err.message}`); }); } @@ -65,17 +71,16 @@ function notifyUpdate({ required = false, current, latest }) { margin: 1, align: 'center', borderColor: 'yellow', - borderStyle: 'round' + borderStyle: 'round', }; - const message = - `Update ${required ? chalk.bold('required') : 'available'} ` + - chalk.dim(current) + - chalk.reset(' → ') + - chalk.green(latest) + - '\nRun ' + - chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) + - ' to update'; + const message = `Update ${required ? chalk.bold('required') : 'available'} ${ + chalk.dim(current) + }${chalk.reset(' → ') + }${chalk.green(latest) + }\nRun ${ + chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) + } to update`; console.warn(boxen(message, opts)); } @@ -93,42 +98,41 @@ function upgradeRequired(args) { async function getCompatibility(profile) { debug('getCompatibility => %s profile', profile.name); - try{ + try { // fail if unable to contact cortex service const requirements = await getRequiredVersion(profile); - const satisfied = semver.satisfies(pkg.version, requirements); + const satisfied = Semver.satisfies(pkg.version, requirements); try { // warn user but don't fail const versions = await getAvailableVersions(pkg.name); debug('getCompatibility => versions: %s, requirements: %s', versions, requirements); - const compatibleVersions = filter(v => semver.satisfies(v, requirements), versions); + const compatibleVersions = filter(v => Semver.satisfies(v, requirements), versions); debug('getCompatibility => compatible versions: %s', compatibleVersions); - const {version: current} = pkg; + const { version: current } = pkg; const latest = last(compatibleVersions); debug('getCompatibility => satisfied: %s', satisfied); - return ({current, latest, satisfied}); - }catch (e) { + return ({ current, latest, satisfied }); + } catch (e) { printWarning(`Warning unable to check for cortex-cli update: ${e.message}`); - return ({current: pkg.version, latest: pkg.version, satisfied}); + return ({ current: pkg.version, latest: pkg.version, satisfied }); } - }catch (e) { + } catch (e) { throw new Error(`Unable to contact cortex: ${e.message}`); } } function withCompatibilityCheck(fn) { return (...args) => { - const options = last(args) || {}; - if (options.compat) { + const command = last(args); + const options = command.opts(); + if (options.compat && !_.toLower(process.env.CORTEX_NO_COMPAT) === 'true') { const { profile: profileName } = options; const profile = loadProfile(profileName); - return getCompatibility(profile) .then(({ current, latest, satisfied }) => { if (!satisfied) { upgradeRequired({ current, latest }); - } - else if (semver.gt(latest, current)) { + } else if (Semver.gt(latest, current)) { upgradeAvailable({ current, latest }); } }) @@ -136,7 +140,6 @@ function withCompatibilityCheck(fn) { .catch((error) => { printError(error); }); - } return Promise.resolve().then(() => fn(...args)); }; @@ -144,5 +147,5 @@ function withCompatibilityCheck(fn) { module.exports = { getCompatibility, - withCompatibilityCheck + withCompatibilityCheck, }; diff --git a/src/config.js b/src/config.js index 2d1e09a8..092e413e 100644 --- a/src/config.js +++ b/src/config.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,17 +14,35 @@ * limitations under the License. */ +const _ = require('lodash'); const os = require('os'); const fs = require('fs'); const path = require('path'); const Joi = require('@hapi/joi'); const debug = require('debug')('cortex:config'); +const { JWT, JWK } = require('jose'); +const { printError } = require('./commands/utils'); + +module.exports.generateJwt = generateJwt = function(profile, expiresIn = '2m') { + const { + username, issuer, audience, jwk, + } = profile; + const jwtSigner = JWK.asKey(jwk); + const payload = { + }; + return JWT.sign(payload, jwtSigner, { + issuer, + audience, + subject: username, + expiresIn, + }); +} -module.exports.defaultConfig = defaultConfig = function(){ +module.exports.defaultConfig = defaultConfig = function () { return new Config({}); }; -module.exports.readConfig = readConfig = function() { +module.exports.readConfig = readConfig = function () { const configDir = process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); if (!fs.existsSync(configDir)) { fs.mkdirSync(configDir); @@ -36,6 +54,17 @@ module.exports.readConfig = readConfig = function() { if (fs.existsSync(configFile)) { // deal with config versions const configObj = JSON.parse(fs.readFileSync(configFile)); + + if (configObj.version && configObj.version === '3') { + // version 3 + // debug('loaded v3 config: %o', configObj); + return new Config(configObj); + } + fs.copyFileSync(configFile, path.join(configDir, 'config_v2')); + defaultConfig().save(); + printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); + + if (configObj.version && configObj.version === '2') { // version 2 // debug('loaded v2 config: %o', configObj); @@ -44,7 +73,7 @@ module.exports.readConfig = readConfig = function() { // version 1 // debug('loaded v1 config: %o', configObj); - return new Config({profiles: configObj}); + return new Config({ profiles: configObj }); } return undefined; @@ -55,39 +84,54 @@ const ProfileSchema = Joi.object().keys({ url: Joi.string().uri().required(), username: Joi.string().required(), account: Joi.string().required(), - token: Joi.string().required() + jwk: Joi.any().required(), + issuer: Joi.string().required(), + audience: Joi.string().required(), + token: Joi.string().optional(), + project: Joi.string().optional(), }); class Profile { - - constructor(name, {url, username, tenantId, account, token}) { + constructor(name, { + url, username, issuer, audience, jwk, project, +}) { this.name = name; this.url = process.env.CORTEX_URI || url; this.username = username; - this.account = tenantId || account; - this.token = process.env.CORTEX_TOKEN || token; + this.jwk = jwk; + this.account = 'cortex'; + this.issuer = issuer; + this.audience = audience; + this.project = project; } validate() { - const {error, value} = ProfileSchema.validate(this,{abortEarly: false}); + const { error, value } = ProfileSchema.validate(this, { abortEarly: false }); if (error) { - throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. Please run "cortex configure".`); + throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. ` + + 'Please get your Personal Access Token from the Cortex Console and run "cortex configure".'); } return this; } toJSON() { - return {url: this.url, username: this.username, account: this.account, token: this.token}; + return { + url: this.url, + username: this.username, + issuer: this.issuer, + audience: this.audience, + jwk: this.jwk, + project: this.project, + }; } } class Config { - - constructor({version, profiles, currentProfile}) { - this.version = version || '2'; + constructor({ version, profiles, currentProfile }) { + this.version = version || '3'; this.profiles = profiles || {}; this.currentProfile = currentProfile; - for (let name of Object.keys(this.profiles)) { + for (const name of Object.keys(this.profiles)) { this.profiles[name] = new Profile(name, this.profiles[name]); } } @@ -97,23 +141,28 @@ class Config { if (!profile) { return undefined; } - - return new Profile(name, profile).validate(); + const profileType = new Profile(name, profile).validate(); + profileType.token = generateJwt(profile); + return profileType; } - setProfile(name, {url, account, tenantId, username, token}) { - const profile = new Profile(name, {url, username, account, tenantId, token}); + setProfile(name, { + url, username, issuer, audience, jwk, project, + }) { + const profile = new Profile(name, { + url, username, issuer, audience, jwk, project, + }); profile.validate(); // do not set/save invalid profiles .. - this.profiles[name] = profile + this.profiles[name] = profile; } toJSON() { const profiles = {}; - for (let name of Object.keys(this.profiles)) { + for (const name of Object.keys(this.profiles)) { profiles[name] = this.profiles[name].toJSON(); } - return {version: this.version, profiles: profiles, currentProfile: this.currentProfile}; + return { version: this.version, profiles, currentProfile: this.currentProfile }; } save() { @@ -122,15 +171,19 @@ class Config { fs.mkdirSync(configDir); } + _.forEach(this.profiles, (profile) => { + delete profile.token; + }); + const configFile = path.join(configDir, 'config'); fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); } } -module.exports.loadProfile = function(profileName) { +module.exports.loadProfile = function (profileName) { const config = readConfig(); if (config === undefined) { - throw new Error(`Please configure the Cortex CLI by running "cortex configure"`); + throw new Error('Please configure the Cortex CLI by running "cortex configure"'); } const name = profileName || config.currentProfile || 'default'; diff --git a/src/useragent.js b/src/useragent.js deleted file mode 100644 index f468edd9..00000000 --- a/src/useragent.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const findPackageJson = require('find-package-json'); -const os = require('os'); -const osName = require('os-name'); - -const pkg = findPackageJson(__dirname).next().value; - -module.exports.getUserAgent = function getUserAgent() { - return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; -} diff --git a/test/compatibility.js b/test/compatibility.js index 267de192..e9d62423 100644 --- a/test/compatibility.js +++ b/test/compatibility.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,53 +14,49 @@ * limitations under the License. */ -const chai = require("chai"); -const chaiAsPromised = require("chai-as-promised"); +const chai = require('chai'); +const chaiAsPromised = require('chai-as-promised'); const findPackageJson = require('find-package-json'); const rewire = require('rewire'); const semver = require('semver'); -const superagent = require('superagent'); -const superagentMock = require('superagent-mocker'); +const nock = require('nock'); const compatibilityModule = rewire('../src/compatibility'); chai.use(chaiAsPromised); -const expect = chai.expect; +const { expect } = chai; const pkg = findPackageJson(__dirname).next().value; -describe('compatibility checks', function () { +describe('compatibility checks', () => { const profile = { url: 'http://example.com', account: 'testAccount', - tenantId: 'testTenant', + projectId: 'testTenant', username: 'testUser', - token: 'testToken' + token: 'testToken', }; - describe('with a compatible application version', function () { - let requestMock; + describe('with a compatible application version', () => { let revertCompatibilityModule; - before(function () { - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - () => ({ ok: true, body: { semver: pkg.version } }) - ); + before(() => { + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: pkg.version })); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), }, }); }); - after(function () { + after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); + nock.restore(); }); - it('should resolve as satisfied', function () { + it('should resolve as satisfied', () => { const expected = { current: pkg.version, latest: pkg.version, satisfied: true }; return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); }); @@ -68,30 +64,28 @@ describe('compatibility checks', function () { describe('with an incompatible application version', () => { const nextMajorVersion = semver.inc(pkg.version, 'major'); - let requestMock; let revertCompatibilityModule; before(() => { - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - () => ({ ok: true, body: { semver: nextMajorVersion } }) - ); + nock.activate(); + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: nextMajorVersion })); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { json: () => Promise.resolve({ versions: { [pkg.version]: {}, - [nextMajorVersion]: {} - } - }) + [nextMajorVersion]: {}, + }, + }), }, }); }); after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); + nock.restore(); }); it('should resolve as unsatisfied', () => { @@ -101,52 +95,45 @@ describe('compatibility checks', function () { }); describe('when the compatibility service cannot be reached', () => { - let requestMock; let revertCompatibilityModule; before(() => { - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - () => { throw new Error('BOOM!'); } - ); + nock.activate(); + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(500, () => ('BOOM')); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), }, }); }); after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); + nock.restore(); }); - it('should reject', () => { - return expect(compatibilityModule.getCompatibility(profile)).to.be.rejected; - }); + it('should reject', () => expect(compatibilityModule.getCompatibility(profile)).to.be.rejected); }); describe('when the npm cannot be reached', () => { - let requestMock; let revertCompatibilityModule; - before(() => { - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - () => ({ ok: true, body: { semver: pkg.version } }) - ); + nock.activate(); + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: pkg.version })); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { - json: () => Promise.reject(new Error('BOOM!')) + json: () => Promise.reject(new Error('BOOM!')), }, }); }); after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); + nock.restore(); }); it('should not reject', () => { @@ -155,4 +142,4 @@ describe('compatibility checks', function () { return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); }); }); -}); \ No newline at end of file +}); diff --git a/test/cortex/config b/test/cortex/config index 0d688a03..5f629a3b 100644 --- a/test/cortex/config +++ b/test/cortex/config @@ -1,12 +1,19 @@ { - "version": "2", - "profiles": { - "test": { - "url": "http://localhost:8000", - "username": "test_user", - "account": "test_account", - "token": "DUMMY_TOKEN" - } - }, - "currentProfile": "test" -} \ No newline at end of file + "version": "3", + "profiles": { + "default": { + "url": "http://localhost:8000", + "username": "test_user", + "issuer": "cognitivescale.com", + "audience": "cortex", + "jwk": { + "crv": "Ed25519", + "x": "yA1XUDSEoKWa28bCMFljlXwlEFbSVmQQ7ftIMNtB69U", + "d": "bRujm6B2EFaPTp56cU3z3K1w_5oFleLeL3hsLgqCVLc", + "kty": "OKP", + "kid": "X4u2Hv4VxL77bE8N9dT4ltVBoJsSLTH4bY1a5WL6wNY" + } + } + }, + "currentProfile": "default" +} diff --git a/test/cortex/sample/upload/config b/test/cortex/sample/upload/config index 0d688a03..5f629a3b 100644 --- a/test/cortex/sample/upload/config +++ b/test/cortex/sample/upload/config @@ -1,12 +1,19 @@ { - "version": "2", - "profiles": { - "test": { - "url": "http://localhost:8000", - "username": "test_user", - "account": "test_account", - "token": "DUMMY_TOKEN" - } - }, - "currentProfile": "test" -} \ No newline at end of file + "version": "3", + "profiles": { + "default": { + "url": "http://localhost:8000", + "username": "test_user", + "issuer": "cognitivescale.com", + "audience": "cortex", + "jwk": { + "crv": "Ed25519", + "x": "yA1XUDSEoKWa28bCMFljlXwlEFbSVmQQ7ftIMNtB69U", + "d": "bRujm6B2EFaPTp56cU3z3K1w_5oFleLeL3hsLgqCVLc", + "kty": "OKP", + "kid": "X4u2Hv4VxL77bE8N9dT4ltVBoJsSLTH4bY1a5WL6wNY" + } + } + }, + "currentProfile": "default" +} diff --git a/test/docker-registry.js b/test/docker-registry.js index 361f74bd..1e7cf6c9 100644 --- a/test/docker-registry.js +++ b/test/docker-registry.js @@ -1,4 +1,4 @@ -const {assert} = require('chai'); +const { assert } = require('chai'); const Actions = require('../src/client/actions'); const action = new Actions('https://api.cortex-dev.insights.ai'); @@ -7,23 +7,22 @@ const action = new Actions('https://api.cortex-dev.insights.ai'); describe('_cortexRegistryImagePath()', () => { it('returns the full URL of the image in the private registry', () => { const registryUrl = 'private-registry.cortex.insights.ai'; - const tenant = 'tenant' + const tenant = 'tenant'; - const i1 = 'image' - const i2 = 'c12e/image' - const i3 = 'docker.io/library/image' + const i1 = 'image'; + const i2 = 'c12e/image'; + const i3 = 'docker.io/library/image'; - const t1 = 'image:1234' - const t2 = 'c12e/image:1234' - const t3 = 'docker.io/library/image:1234' + const t1 = 'image:1234'; + const t2 = 'c12e/image:1234'; + const t3 = 'docker.io/library/image:1234'; - for (i of [i1, i2, i3]) { - assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image') - } + [i1, i2, i3].forEach((i) => { + assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image'); + }); - for (i of [t1, t2, t3]) { - assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image:1234') - } - }) - -}) + [t1, t2, t3].forEach((i) => { + assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image:1234'); + }); + }); +}); diff --git a/test/sanity.js b/test/sanity.js index cb979248..723a5128 100644 --- a/test/sanity.js +++ b/test/sanity.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ const commander = require('commander'); const { ListProfilesCommand } = require('../src/commands/configure'); -describe('sanity check', function () { - it('lists profiles', function sanity(done) { +describe('sanity check', () => { + it('lists profiles', (done) => { const program = new commander.Command(); const command = new ListProfilesCommand(program); - command.execute({color: 'on'}); + command.execute({ color: 'on' }); done(); }); -}); \ No newline at end of file +}); diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index fb8a5164..106ee0a9 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,32 +15,35 @@ */ const commander = require('commander'); +const chai = require('chai'); const { UploadContent } = require('../src/commands/content'); const { humanReadableFileSize } = require('../src/commands/utils'); -const chai = require('chai'); -const expect = chai.expect; -describe('Upload Directory', function () { - it('test upload', (done) => { +const { expect } = chai; + +describe('Upload Directory', () => { + it('test upload', (done) => { const program = new commander.Command(); const command = new UploadContent(program); const contentKey = '.shared'; const filePath = `${__dirname}/cortex`; const options = { - 'recursive': true, - 'test': true + recursive: true, + test: true, }; const expectedFileDicts = [ - { canonical: `${__dirname}/cortex/config`, + { + canonical: `${__dirname}/cortex/config`, relative: 'config', - size: 260 + size: 483, }, - { canonical: `${__dirname}/cortex/sample/upload/config`, + { + canonical: `${__dirname}/cortex/sample/upload/config`, relative: 'sample/upload/config', - size: 260 - } + size: 483, + }, ]; command.execute(contentKey, filePath, options, (fileDicts) => { @@ -50,49 +53,49 @@ describe('Upload Directory', function () { }); }); -describe('Human Readable File Size', function () { - it('bytes', (done) => { +describe('Human Readable File Size', () => { + it('bytes', (done) => { const sizeInBytes = 260; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('260B'); done(); }); - it('KB', (done) => { + it('KB', (done) => { const sizeInBytes = 1200; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('1.2K'); done(); }); - it('MB', (done) => { + it('MB', (done) => { const sizeInBytes = 1000000; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('1M'); done(); }); - it('1MB less some', (done) => { + it('1MB less some', (done) => { const sizeInBytes = Math.pow(10, 3) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999B'); done(); }); - it('1k 200 bytes less', (done) => { + it('1k 200 bytes less', (done) => { const sizeInBytes = 1000000 - 200; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.8K'); done(); }); - it('1k less', (done) => { + it('1k less', (done) => { const sizeInBytes = Math.pow(10, 6) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.9K'); done(); }); - it('several GB', (done) => { + it('several GB', (done) => { const sizeInBytes = 32 * Math.pow(10, 9) + 345 * Math.pow(10, 6); const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('32.3G'); diff --git a/test/useragent.js b/test/useragent.js index de399c61..11936d7f 100644 --- a/test/useragent.js +++ b/test/useragent.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -14,60 +14,53 @@ * limitations under the License. */ -const chai = require("chai"); -const chaiAsPromised = require("chai-as-promised"); +const chai = require('chai'); +const chaiAsPromised = require('chai-as-promised'); const findPackageJson = require('find-package-json'); const rewire = require('rewire'); -const superagent = require('superagent'); -const superagentMock = require('superagent-mocker'); +const nock = require('nock'); const compatibilityModule = rewire('../src/compatibility'); chai.use(chaiAsPromised); -const expect = chai.expect; const pkg = findPackageJson(__dirname).next().value; -describe('useragent', function () { +describe('useragent', () => { const profile = { url: 'http://example.com', account: 'testAccount', - tenantId: 'testTenant', + projectId: 'testTenant', username: 'testUser', - token: 'testToken' + token: 'testToken', }; - let requestMock; - let requestMockHeaders; let revertCompatibilityModule; - before(function () { + before(() => { // Compatibility API call is as good as any to verify the request has user-agent, // so mock it the same way we do for that test, adding capture of headers. - requestMock = superagentMock(superagent); - requestMock.get( - `${profile.url}/v3/catalog/compatibility/applications/cortex-cli`, - (req) => { - requestMockHeaders = req.headers; // Capture headers - return ({ ok: true, body: { semver: pkg.version } }); - } - ); revertCompatibilityModule = compatibilityModule.__set__({ npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }) + json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), }, }); - - requestMockHeaders = {}; }); - after(function () { + after(() => { revertCompatibilityModule(); - requestMock.unmock(superagent); }); - it('should exist in request headers', function () { - return compatibilityModule.getCompatibility(profile).then(() => - expect(requestMockHeaders['user-agent']).to.include(`${pkg.name}/${pkg.version}`)); + it('should exist in request headers', async () => { + nock.activate(); + const n = nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: pkg.version })) + .matchHeader('user-agent', (val) => { + console.log(val); + return val.includes(`${pkg.name}/${pkg.version}`); + }); + await compatibilityModule.getCompatibility(profile); + n.done(); }); }); diff --git a/test/utils/api.js b/test/utils/api.js deleted file mode 100644 index 8cf0b3a7..00000000 --- a/test/utils/api.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const assert = require('assert'); - -const { request } = require('../../src/commands/apiutils'); - -describe('testing api utils request function methods exist', function() { - it('request get method should exist', function() { - assert.ok(request.get); - }); - - it('request delete method should exist', function() { - assert.ok(request.delete); - }); - - it('request post method should exist', function() { - assert.ok(request.post); - }); - - it('request put method should exist', function() { - assert.ok(request.put); - }); - - it('request nonexistentmumbojumbo method should NOT exist', function() { - assert.ok(request.nonexistentmumbojumbo === undefined); - }); - - it('private var proxyEnv for request NOT be accessible', function() { - assert.ok(request.proxyEnv === undefined); - }); -}); - - From 505d612307681824723bed72d2eedddefa975aaa Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 9 Nov 2020 15:41:56 -0600 Subject: [PATCH 155/864] WIP for missions, campaigns need mutation support for full document --- bin/cortex-campaigns.js | 83 ++++++++++++++++++++++++++ bin/cortex-missions.js | 83 ++++++++++++++++++++++++++ bin/cortex-projects.js | 4 +- bin/cortex.js | 2 + src/client/apiServerClient.js | 109 ++++++++++++++++++++++++++++++++-- src/commands/campaigns.js | 103 ++++++++++++++++++++++++++++++++ src/commands/missions.js | 101 +++++++++++++++++++++++++++++++ 7 files changed, 478 insertions(+), 7 deletions(-) create mode 100755 bin/cortex-campaigns.js create mode 100755 bin/cortex-missions.js create mode 100644 src/commands/campaigns.js create mode 100644 src/commands/missions.js diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js new file mode 100755 index 00000000..a2f4f1f7 --- /dev/null +++ b/bin/cortex-campaigns.js @@ -0,0 +1,83 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + CreateCampaignCommand, + ListCampaignsCommand, + DescribeCampaignCommand, +} = require('../src/commands/campaigns'); + +program.description('Work with Cortex Campaigns'); + +// Create Campaign +program + .command('save [CampaignDefinition]') + .description('Save a Campaign definition') + .storeOptionsAsProperties(false) + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('-y, --yaml', 'Use YAML for Campaign definition format') + .action(withCompatibilityCheck((campaignDefinition, options) => { + try { + new CreateCampaignCommand(program).execute(campaignDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Campaigns +program + .command('list') + .description('List Campaigns') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((options) => { + try { + new ListCampaignsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Get|Describe Campaign +program + .command('describe ') + .alias('get') + .description('Describe Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DescribeCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js new file mode 100755 index 00000000..050a778e --- /dev/null +++ b/bin/cortex-missions.js @@ -0,0 +1,83 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + CreateMissionCommand, + ListMissionsCommand, + DescribeMissionCommand, +} = require('../src/commands/missions'); + +program.description('Work with Cortex Missions'); + +// Create Mission +program + .command('save [missionDefinition]') + .description('Save a mission definition') + .storeOptionsAsProperties(false) + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('-y, --yaml', 'Use YAML for mission definition format') + .action(withCompatibilityCheck((missionDefinition, options) => { + try { + new CreateMissionCommand(program).execute(missionDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List Missions +program + .command('list ') + .description('List mission definitions') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((options) => { + try { + new ListMissionsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Get|Describe Mission +program + .command('describe ') + .alias('get') + .description('Describe mission') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((missionName, options) => { + try { + new DescribeMissionCommand(program).execute(missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index c898fdf6..4694511a 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -32,7 +32,7 @@ program.description('Work with Cortex Projects'); // Create Project program .command('save [projectDefinition]') - .description('Save a project definition') + .description('Save/Create a project') .storeOptionsAsProperties(false) .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') @@ -52,7 +52,7 @@ program // List Projects program .command('list') - .description('List project definitions') + .description('List project') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex.js b/bin/cortex.js index c8587967..c4bae8cf 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -28,6 +28,7 @@ program .description('Cortex CLI') .command('actions [cmd]', 'Work with Cortex Actions') .command('agents [cmd]', 'Work with Cortex Agents') + .command('campaigns [cmd]', 'Work with Cortex Campaigns') .command('configure', 'Configure the Cortex CLI') .command('connections [cmd]', 'Work with Cortex Connections') .command('content [cmd]', 'Work with Cortex Managed Content') @@ -36,6 +37,7 @@ program .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') .command('graph [cmd]', 'Work with the Cortex Graph') + .command('missions [cmd]', 'Work with Cortex Missions') .command('profiles [cmd]', 'Work with Cortex Profiles') .command('projects [cmd]', 'Work with Cortex Projects') .command('roles [cmd]', 'Work with a Cortex Roles') diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 90caf410..bc63de39 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -17,7 +17,8 @@ module.exports = class ApiServerClient { } /** - * Query project using graphql + * Fetch project using graphql + * @param token * @param projectId * @return {Promise} */ @@ -33,8 +34,8 @@ module.exports = class ApiServerClient { /** - * Query project using graphql - * @param projectId + * List projects using graphql + * @param token * @return {Promise} */ async listProjects(token) { @@ -48,8 +49,9 @@ module.exports = class ApiServerClient { } /** - * Query project using graphql - * @param projectId + * Create project using graphql mutation + * @param token + * @param project definition object * @return {Promise} */ async createProject(token, projDef) { @@ -61,4 +63,101 @@ module.exports = class ApiServerClient { throw err; } } + + /** + * Fetch campaign using graphql + * @paa + * @param campaignId + * @return {Promise} + */ + async getCampaign(projectId, token, campaignId) { + try { + const fetched = await this._client(token) + .request(gql`query { campaignByName( project: "${projectId}", name: "${campaignId}" ){name, title, description}}`); + return _.get(fetched, 'campaignByName'); + } catch (err) { + throw err; + } + } + + + /** + * Query campaign using graphql + * @param campaignId + * @return {Promise} + */ + async listCampaigns(projectId, token) { + try { + const fetched = await this._client(token) + .request(gql`{ campaigns ( project: "${projectId}" ) { name, title, description} }`); + return _.get(fetched, 'campaigns', []); + } catch (err) { + throw err; + } + } + + /** + * Query campaign using graphql + * @param campaignId + * @return {Promise} + */ + async createCampaign(projectId, token, def) { + try { + const updatedDef = { ...def, project: projectId }; + const fetched = await this._client(token) + .request(gql`mutation NewCampaign($input: ProjectInput!) { createProject(input: $input){name}}`, { input: updatedDef }); + return _.get(fetched, 'createProject', {}); + } catch (err) { + throw err; + } + } + + /** + * Fetch mission using graphql + * @paa + * @param missionId + * @return {Promise} + */ + async getMission(projectId, token, missionId) { + try { + const fetched = await this._client(token) + .request(gql`query { missionByName( project: "${projectId}", name: "${missionId}" ){name, title, description}}`); + return _.get(fetched, 'missionByName'); + } catch (err) { + throw err; + } + } + + + /** + * Query mission using graphql + * @param missionId + * @return {Promise} + */ + async listMissions(projectId, token) { + try { + const fetched = await this._client(token) + .request(gql`{ missions (project: "${projectId}"){ name, title, description} }`); + return _.get(fetched, 'missions', []); + } catch (err) { + throw err; + } + } + + /** + * Query mission using graphql + * @param missionId + * @return {Promise} + */ + async createMission(projectId, token, def) { + try { + const newdef = { ...def, project: projectId }; + const fetched = await this._client(token) + .request(gql`mutation NewMission($input: ProjectInput!) { createProject(input: $input){name}}`, { input: newdef }); + return _.get(fetched, 'createProject', {}); + } catch (err) { + throw err; + } + } + }; diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js new file mode 100644 index 00000000..7594378b --- /dev/null +++ b/src/commands/campaigns.js @@ -0,0 +1,103 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _ = require('lodash'); +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const ApiServerClient = require('../client/apiServerClient'); +const { + printSuccess, printError, filterObject, parseObject, printTable, checkProject +} = require('./utils'); + +module.exports.CreateCampaignCommand = class CreateCampaignCommand { + constructor(program) { + this.program = program; + } + + async execute(campaignDefinition, command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + checkProject(options.project || profile.project); + debug('%s.executeSaveCampaign(%s)', profile.name, campaignDefinition); + let campaign = {}; + try { + if (campaignDefinition) { + const campaignDefStr = fs.readFileSync(campaignDefinition); + campaign = parseObject(campaignDefStr, options); + } + const cli = new ApiServerClient(profile.url); + const response = await cli.createCampaign( + options.project || profile.project, + profile.token, + _.get(campaign, 'spec', campaign), + ); + printSuccess(`Campaign ${response.name} saved`, options); + } catch (err) { + printError(`Failed to save campaign: ${err.message}`, options); + } + } +}; + +module.exports.ListCampaignsCommand = class ListCampaignsCommand { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListCampaigns()', profile.name); + + const cli = new ApiServerClient(profile.url); + try { + const response = await cli.listCampaigns(options.project || profile.project, profile.token); + let result = response; + if (options.query) result = filterObject(result, options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 80 }, + ]; + printTable(tableSpec, result); + } + } catch (err) { + printError(`Failed to list campaigns: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { + constructor(program) { + this.program = program; + } + + async execute(campaignName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDescribeCampaign(%s)', profile.name, campaignName); + const cli = new ApiServerClient(profile.url); + + try { + const response = await cli.getCampaign(options.project || profile.project, profile.token, campaignName); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + printError(`Failed to describe campaign: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/src/commands/missions.js b/src/commands/missions.js new file mode 100644 index 00000000..d7a49ec3 --- /dev/null +++ b/src/commands/missions.js @@ -0,0 +1,101 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _ = require('lodash'); +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const ApiServerClient = require('../client/apiServerClient'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); + +module.exports.CreateMissionCommand = class CreateMissionCommand { + constructor(program) { + this.program = program; + } + + async execute(missionDefinition, command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeSaveMission(%s)', profile.name, missionDefinition); + let mission = {}; + try { + if (missionDefinition) { + const missionDefStr = fs.readFileSync(missionDefinition); + mission = parseObject(missionDefStr, options); + } + if (_.isEmpty(options.name || mission.name)) { + printError('`name` must be provided', options); + } + const cli = new ApiServerClient(profile.url); + const response = await cli.createMission(options.project || profile.project, profile.token, mission); + printSuccess(`Mission ${response.name} saved`, options); + } catch (err) { + printError(`Failed to save mission: ${err.message}`, options); + } + } +}; + +module.exports.ListMissionsCommand = class ListMissionsCommand { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListMissions()', profile.name); + + const cli = new ApiServerClient(profile.url); + try { + const response = await cli.listMissions(options.project || profile.project, profile.token); + let result = response; + if (options.query) result = filterObject(result, options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 80 }, + ]; + printTable(tableSpec, result); + } + } catch (err) { + printError(`Failed to list missions: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.DescribeMissionCommand = class DescribeMissionCommand { + constructor(program) { + this.program = program; + } + + async execute(missionName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDescribeMission(%s)', profile.name, missionName); + const cli = new ApiServerClient(profile.url); + + try { + const response = await cli.getMission(options.project || profile.project, profile.token, missionName); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + printError(`Failed to describe mission: ${err.status} ${err.message}`, options); + } + } +}; From f2f43b61d8e00b3f8ee4dfade2fc3de4ad4d3911 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 12 Nov 2020 16:11:44 +0530 Subject: [PATCH 156/864] cortex skills generate command added --- bin/cortex-skills.js | 14 +++++++ package.json | 1 + src/commands/skills.js | 85 ++++++++++++++++++++++++++++-------------- 3 files changed, 72 insertions(+), 28 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 12ef898b..539f9c62 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -25,6 +25,7 @@ const { SaveSkillCommand, ListSkillsCommand, DescribeSkillCommand, + GenerateSkillCommand } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); @@ -82,4 +83,17 @@ program } })); +program + .command('generate') + .description('Generates the structure and top level build script for a skill') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .action((options) => { // deliberately not using withCompatibilityCheck() + try { + new GenerateSkillCommand(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + program.parse(process.argv); diff --git a/package.json b/package.json index 87d00d7d..01a2a23b 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { + "@c12e/generator-cortex": "0.3.30", "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", diff --git a/src/commands/skills.js b/src/commands/skills.js index d5823a0b..cd94fd21 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -15,30 +15,33 @@ */ const _ = require('lodash'); const fs = require('fs'); +const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { - printSuccess, printError, filterObject, parseObject, printTable, -} = require('./utils'); +const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); -function _formatpath(p) { - let cnt = 0; let -res = ''; +function _formatpath(p){ + let cnt=0, res = ''; const len = p.length; - p.forEach((s) => { + p.forEach(s => { if (_.isNumber(s)) { - res += `[${s}]`; - } else - if (cnt < len) res += s; - else res += s; - if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) res += '.'; + res += `[${s}]` + }else + if ( cnt < len) + res += s; + else + res +=s; + if (cnt < len-1 && !_.isNumber(p[cnt+1])) + res += '.'; cnt += 1; - }); + + }) return res; } module.exports.SaveSkillCommand = class SaveSkillCommand { + constructor(program) { this.program = program; } @@ -51,20 +54,23 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const skill = parseObject(skillDefStr, options); const catalog = new Catalog(profile.url); - catalog.saveSkill(options.project || profile.project, profile.token, skill).then((response) => { + catalog.saveSkill(profile.token, skill).then((response) => { if (response.success) { - printSuccess('Skill saved', options); - } else if (response.details) { + printSuccess(`Skill saved`, options); + } else { + if (response.details) { console.log(`Failed to save skill: ${response.status} ${response.message}`); console.log('The following issues were found:'); const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, + {column: 'Path', field: 'path', width: 50}, + {column: 'Message', field: 'message', width: 100}, ]; response.details.map(d => d.path = _formatpath(d.path)); - printTable(tableSpec, response.details); + printTable(tableSpec,response.details); printError(''); // Just exit + } + } }) .catch((err) => { printError(`Failed to save skill: ${err.status} ${err.response.body.error}`, options); @@ -73,6 +79,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { }; module.exports.ListSkillsCommand = class ListSkillsCommand { + constructor(program) { this.program = program; } @@ -82,23 +89,26 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { debug('%s.executeListSkills()', profile.name); const catalog = new Catalog(profile.url); - catalog.listSkills(options.project || profile.project, profile.token).then((response) => { + catalog.listSkills(profile.token).then((response) => { if (response.success) { let result = response.skills; - if (options.query) result = filterObject(result, options); + if (options.query) + result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } else { + } + else { const tableSpec = [ { column: 'Title', field: 'title', width: 50 }, { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 }, + { column: 'Version', field: '_version', width: 12 } ]; printTable(tableSpec, result); } - } else { + } + else { printError(`Failed to list skills: ${response.status} ${response.message}`, options); } }) @@ -109,6 +119,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { }; module.exports.DescribeSkillCommand = class DescribeSkillCommand { + constructor(program) { this.program = program; } @@ -118,11 +129,12 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { debug('%s.executeDescribeSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); - catalog.describeSkill(options.project || profile.project, profile.token, skillName).then((response) => { + catalog.describeSkill(profile.token, skillName).then((response) => { if (response.success) { - const result = filterObject(response.skill, options); + let result = filterObject(response.skill, options); printSuccess(JSON.stringify(result, null, 2), options); - } else { + } + else { printError(`Failed to describe skill ${skillName}: ${response.message}`, options); } }) @@ -131,3 +143,20 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { }); } }; + +module.exports.GenerateSkillCommand = class GenerateSkillCommand { + + constructor(program) { + this.program = program; + } + + execute(options) { + debug('%s.generateSkill()'); + const yenv = yeoman.createEnv(); + yenv.lookup(()=>{ + yenv.run('@c12e/cortex:skill', + { }, + (err) => { err ? printError(err) : printSuccess('Done.') }); + }); + } +}; From 4b8bae294c9cd4bdc08c154f272f10fa45642dfb Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 12 Nov 2020 16:16:48 +0530 Subject: [PATCH 157/864] formatting fix --- src/commands/skills.js | 67 ++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 39 deletions(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index cd94fd21..bf3aad80 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -1,5 +1,5 @@ /* - * Copyright 2018 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -19,29 +19,27 @@ const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { printSuccess, printError, filterObject, parseObject, printTable } = require('./utils'); +const { + printSuccess, printError, filterObject, parseObject, printTable, +} = require('./utils'); -function _formatpath(p){ - let cnt=0, res = ''; +function _formatpath(p) { + let cnt = 0; let +res = ''; const len = p.length; - p.forEach(s => { + p.forEach((s) => { if (_.isNumber(s)) { - res += `[${s}]` - }else - if ( cnt < len) - res += s; - else - res +=s; - if (cnt < len-1 && !_.isNumber(p[cnt+1])) - res += '.'; + res += `[${s}]`; + } else + if (cnt < len) res += s; + else res += s; + if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) res += '.'; cnt += 1; - - }) + }); return res; } module.exports.SaveSkillCommand = class SaveSkillCommand { - constructor(program) { this.program = program; } @@ -54,23 +52,20 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const skill = parseObject(skillDefStr, options); const catalog = new Catalog(profile.url); - catalog.saveSkill(profile.token, skill).then((response) => { + catalog.saveSkill(options.project || profile.project, profile.token, skill).then((response) => { if (response.success) { - printSuccess(`Skill saved`, options); - } else { - if (response.details) { + printSuccess('Skill saved', options); + } else if (response.details) { console.log(`Failed to save skill: ${response.status} ${response.message}`); console.log('The following issues were found:'); const tableSpec = [ - {column: 'Path', field: 'path', width: 50}, - {column: 'Message', field: 'message', width: 100}, + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, ]; response.details.map(d => d.path = _formatpath(d.path)); - printTable(tableSpec,response.details); + printTable(tableSpec, response.details); printError(''); // Just exit - } - } }) .catch((err) => { printError(`Failed to save skill: ${err.status} ${err.response.body.error}`, options); @@ -79,7 +74,6 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { }; module.exports.ListSkillsCommand = class ListSkillsCommand { - constructor(program) { this.program = program; } @@ -89,26 +83,23 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { debug('%s.executeListSkills()', profile.name); const catalog = new Catalog(profile.url); - catalog.listSkills(profile.token).then((response) => { + catalog.listSkills(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.skills; - if (options.query) - result = filterObject(result, options); + if (options.query) result = filterObject(result, options); if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { const tableSpec = [ { column: 'Title', field: 'title', width: 50 }, { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 } + { column: 'Version', field: '_version', width: 12 }, ]; printTable(tableSpec, result); } - } - else { + } else { printError(`Failed to list skills: ${response.status} ${response.message}`, options); } }) @@ -119,7 +110,6 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { }; module.exports.DescribeSkillCommand = class DescribeSkillCommand { - constructor(program) { this.program = program; } @@ -129,12 +119,11 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { debug('%s.executeDescribeSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); - catalog.describeSkill(profile.token, skillName).then((response) => { + catalog.describeSkill(options.project || profile.project, profile.token, skillName).then((response) => { if (response.success) { - let result = filterObject(response.skill, options); + const result = filterObject(response.skill, options); printSuccess(JSON.stringify(result, null, 2), options); - } - else { + } else { printError(`Failed to describe skill ${skillName}: ${response.message}`, options); } }) From c09bd4d3f6a651fba8fe8360b6eea3c72c26c045 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 17 Nov 2020 20:28:10 +0530 Subject: [PATCH 158/864] generate skill command based on plopjs --- bin/cortex-generate.js | 41 ++++++++++++++++++++++++++++++++++++++++ bin/cortex-skills.js | 16 +--------------- bin/cortex.js | 1 + package.json | 1 + src/commands/generate.js | 14 ++++++++++++++ src/commands/plopfile.js | 34 +++++++++++++++++++++++++++++++++ src/commands/skills.js | 18 ------------------ 7 files changed, 92 insertions(+), 33 deletions(-) create mode 100755 bin/cortex-generate.js create mode 100644 src/commands/generate.js create mode 100644 src/commands/plopfile.js diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js new file mode 100755 index 00000000..1f2caa6b --- /dev/null +++ b/bin/cortex-generate.js @@ -0,0 +1,41 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { + GenerateSkillCommand +} = require('../src/commands/generate'); + +program.description('Scaffolding Cortex Components'); + +program + .command('skill') + .description('Generates the structure and top level build script for a skill') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .action((options) => { // deliberately not using withCompatibilityCheck() + try { + new GenerateSkillCommand(program).execute(options); + } + catch (err) { + console.error(chalk.red(err.message)); + } + }); + +program.parse(process.argv); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 539f9c62..e4233b53 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -24,8 +24,7 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { SaveSkillCommand, ListSkillsCommand, - DescribeSkillCommand, - GenerateSkillCommand + DescribeSkillCommand } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); @@ -83,17 +82,4 @@ program } })); -program - .command('generate') - .description('Generates the structure and top level build script for a skill') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new GenerateSkillCommand(program).execute(options); - } - catch (err) { - console.error(chalk.red(err.message)); - } - }); - program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index c8587967..f346194b 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -35,6 +35,7 @@ program .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') + .command('generate [cmd]', 'Scaffold Cortex Components') .command('graph [cmd]', 'Work with the Cortex Graph') .command('profiles [cmd]', 'Work with Cortex Profiles') .command('projects [cmd]', 'Work with Cortex Projects') diff --git a/package.json b/package.json index 01a2a23b..f9a3fda7 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { + "plop": "2.7.4", "@c12e/generator-cortex": "0.3.30", "@hapi/joi": "17.1.1", "boxen": "4.2.0", diff --git a/src/commands/generate.js b/src/commands/generate.js new file mode 100644 index 00000000..e4fbbf9f --- /dev/null +++ b/src/commands/generate.js @@ -0,0 +1,14 @@ +module.exports.GenerateSkillCommand = class GenerateSkillCommand { + + constructor(program) { + this.program = program; + } + + execute(options) { + const path = require('path'); + const {Plop, run} = require('plop'); + Plop.launch({ + configPath: path.join(__dirname, 'plopfile.js') + }, run); + } +}; diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js new file mode 100644 index 00000000..8202998f --- /dev/null +++ b/src/commands/plopfile.js @@ -0,0 +1,34 @@ +const path = require('path'); + +module.exports = plop => { + plop.setGenerator('skill', { + description: 'Generate Cortex Skill project', + prompts: [ + { + type: 'input', + name: 'name', + message: 'Skill Name?' + }, + { + type: 'list', + name: 'type', + message: 'Skill Type?', + choices: ['Daemon', 'Job', 'REST API'] + } + ], + actions: [ + { + type: 'addMany', + // Current directory for the new files + destination: path.join(path.resolve('.'), 'src/{{name}}/'), + // Handlebars template used to generate content of project files + base: path.join(path.dirname(require.resolve('@c12e/generator-cortex/generators/skill'))), + templateFiles: path.join(path.dirname(require.resolve('@c12e/generator-cortex/generators/skill')), '**/*.js.hbs'), + abortOnFail: true, + // Must not overwrite files with scaffolding template if already exists + // force: true, + // verbose: true + }, + ], + }); +}; diff --git a/src/commands/skills.js b/src/commands/skills.js index bf3aad80..1631e385 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -15,7 +15,6 @@ */ const _ = require('lodash'); const fs = require('fs'); -const yeoman = require('yeoman-environment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); @@ -132,20 +131,3 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { }); } }; - -module.exports.GenerateSkillCommand = class GenerateSkillCommand { - - constructor(program) { - this.program = program; - } - - execute(options) { - debug('%s.generateSkill()'); - const yenv = yeoman.createEnv(); - yenv.lookup(()=>{ - yenv.run('@c12e/cortex:skill', - { }, - (err) => { err ? printError(err) : printSuccess('Done.') }); - }); - } -}; From 8f7ee2016d65e6118232be842e8fa3ccae4ea6cf Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 17 Nov 2020 20:30:24 +0530 Subject: [PATCH 159/864] skill type template --- src/commands/plopfile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index 8202998f..470df510 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -22,8 +22,8 @@ module.exports = plop => { // Current directory for the new files destination: path.join(path.resolve('.'), 'src/{{name}}/'), // Handlebars template used to generate content of project files - base: path.join(path.dirname(require.resolve('@c12e/generator-cortex/generators/skill'))), - templateFiles: path.join(path.dirname(require.resolve('@c12e/generator-cortex/generators/skill')), '**/*.js.hbs'), + base: path.join(path.dirname(require.resolve('@c12e/generator-cortex/generators/skill/{{type}}'))), + templateFiles: path.join(path.dirname(require.resolve('@c12e/generator-cortex/generators/skill/{{type}}')), '**/*.js.hbs'), abortOnFail: true, // Must not overwrite files with scaffolding template if already exists // force: true, From 0d0b103a7a8e84fa833c6c5edf01790e1f967ff5 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 18 Nov 2020 14:42:33 +0530 Subject: [PATCH 160/864] skill generation templates added --- .../assets/templates/skill/daemon/Dockerfile | 4 ++ .../templates/skill/daemon/__main__.py.hbs | 9 +++++ .../templates/skill/daemon/deploy.sh.hbs | 26 ++++++++++++ .../skill/daemon/requirements.txt.hbs | 3 ++ .../templates/skill/daemon/skill.yaml.hbs | 40 +++++++++++++++++++ .../assets/templates/skill/job/Dockerfile | 4 ++ .../templates/skill/job/__main__.py.hbs | 7 ++++ .../assets/templates/skill/job/deploy.sh.hbs | 26 ++++++++++++ .../templates/skill/job/requirements.txt.hbs | 1 + .../assets/templates/skill/job/skill.yaml.hbs | 26 ++++++++++++ .../templates/skill/rest-api/deploy.sh.hbs | 5 +++ .../templates/skill/rest-api/skill.yaml.hbs | 38 ++++++++++++++++++ src/commands/plopfile.js | 7 ++-- 13 files changed, 193 insertions(+), 3 deletions(-) create mode 100644 src/commands/assets/templates/skill/daemon/Dockerfile create mode 100644 src/commands/assets/templates/skill/daemon/__main__.py.hbs create mode 100644 src/commands/assets/templates/skill/daemon/deploy.sh.hbs create mode 100644 src/commands/assets/templates/skill/daemon/requirements.txt.hbs create mode 100644 src/commands/assets/templates/skill/daemon/skill.yaml.hbs create mode 100644 src/commands/assets/templates/skill/job/Dockerfile create mode 100644 src/commands/assets/templates/skill/job/__main__.py.hbs create mode 100644 src/commands/assets/templates/skill/job/deploy.sh.hbs create mode 100644 src/commands/assets/templates/skill/job/requirements.txt.hbs create mode 100644 src/commands/assets/templates/skill/job/skill.yaml.hbs create mode 100644 src/commands/assets/templates/skill/rest-api/deploy.sh.hbs create mode 100644 src/commands/assets/templates/skill/rest-api/skill.yaml.hbs diff --git a/src/commands/assets/templates/skill/daemon/Dockerfile b/src/commands/assets/templates/skill/daemon/Dockerfile new file mode 100644 index 00000000..d4907bc9 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/Dockerfile @@ -0,0 +1,4 @@ +FROM python:3.7.4-buster +ADD . /app +RUN pip install -r /app/requirements.txt +CMD ["uvicorn", "__main__:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"] diff --git a/src/commands/assets/templates/skill/daemon/__main__.py.hbs b/src/commands/assets/templates/skill/daemon/__main__.py.hbs new file mode 100644 index 00000000..65d4ae03 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/__main__.py.hbs @@ -0,0 +1,9 @@ +from fastapi import FastAPI + +app = FastAPI() + + +@app.post('/invoke') +def run(requestBody: dict): + payload = requestBody['payload'] + return {'payload': payload} diff --git a/src/commands/assets/templates/skill/daemon/deploy.sh.hbs b/src/commands/assets/templates/skill/daemon/deploy.sh.hbs new file mode 100644 index 00000000..94a1713a --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/deploy.sh.hbs @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +set -eux; + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +IMAGE=c12e/{{name}} +DOCKER_IMAGE_TAG=$(git describe --long --always) + +PROFILE=$(jq -r .currentProfile ~/.cortex/config) +PROJECT=$(jq -r .profiles.${PROFILE}.project ~/.cortex/config) +URL=$(jq -r .profiles.${PROFILE}.url ~/.cortex/config) + +# TODO fix docker registry and action deployment once v6 supports this. Also skill and action deployment will be one command. +DOCKERREG=`curl -s -H "Authorization: Bearer ${TOKEN}" ${URL}/v3/actions/_config | jq -r .config.dockerPrivateRegistryUrl` +echo $DOCKERREG + +DOCKER_IMAGE=${DOCKERREG}/${PROJECT}/${IMAGE}:${DOCKER_IMAGE_TAG} +cd $SCRIPT_DIR + +docker build -t ${IMAGE}:${DOCKER_IMAGE_TAG} -f ${SCRIPT_DIR}/Dockerfile . +docker tag ${IMAGE}:${DOCKER_IMAGE_TAG} ${DOCKER_IMAGE} +cortex docker login +docker push ${DOCKER_IMAGE} +cortex actions deploy ${IMAGE} --actionType daemon --docker ${DOCKER_IMAGE} --port '5000' +sleep 10 +cortex actions describe ${IMAGE} diff --git a/src/commands/assets/templates/skill/daemon/requirements.txt.hbs b/src/commands/assets/templates/skill/daemon/requirements.txt.hbs new file mode 100644 index 00000000..06592a66 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/requirements.txt.hbs @@ -0,0 +1,3 @@ +cortex-python +fastapi +uvicorn diff --git a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs new file mode 100644 index 00000000..cef1bcfa --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs @@ -0,0 +1,40 @@ +camel: 1.0.0 +name: c12e/{{dashCase name}} +title: {{name}} +description: {{name}} +inputs: + - name: request + title: API Request + parameters: + - name: params + type: object + description: Request Parameters + required: true + routing: + all: + action : c12e/{{dashCase name}} + runtime: cortex/functions + output: response + +outputs: + - name: response + title: API Response + parameters: + - name: result + type: object + description: API Response + required: true + +properties: + - name: daemon.method + title: Daemon method + description: method + required: true + type: String + defaultValue: POST + - name: daemon.path + title: Daemon path + description: path + required: true + type: String + defaultValue: invoke diff --git a/src/commands/assets/templates/skill/job/Dockerfile b/src/commands/assets/templates/skill/job/Dockerfile new file mode 100644 index 00000000..31fb4a1a --- /dev/null +++ b/src/commands/assets/templates/skill/job/Dockerfile @@ -0,0 +1,4 @@ +FROM python:3.7.4-buster +ADD . /app +RUN pip install -r /app/requirements.txt +CMD ["python", "/app/__main__.py"] diff --git a/src/commands/assets/templates/skill/job/__main__.py.hbs b/src/commands/assets/templates/skill/job/__main__.py.hbs new file mode 100644 index 00000000..21791a58 --- /dev/null +++ b/src/commands/assets/templates/skill/job/__main__.py.hbs @@ -0,0 +1,7 @@ +import json + +if __name__ == '__main__': + import sys + params = sys.argv[1] + params = json.loads(params) + print(f'Received: {params}') diff --git a/src/commands/assets/templates/skill/job/deploy.sh.hbs b/src/commands/assets/templates/skill/job/deploy.sh.hbs new file mode 100644 index 00000000..88d1a93d --- /dev/null +++ b/src/commands/assets/templates/skill/job/deploy.sh.hbs @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +set -eux; + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +IMAGE=c12e/{{name}} +DOCKER_IMAGE_TAG=$(git describe --long --always) + +PROFILE=$(jq -r .currentProfile ~/.cortex/config) +PROJECT=$(jq -r .profiles.${PROFILE}.project ~/.cortex/config) +URL=$(jq -r .profiles.${PROFILE}.url ~/.cortex/config) + +# TODO fix docker registry and action deployment once v6 supports this. Also skill and action deployment will be one command. +DOCKERREG=`curl -s -H "Authorization: Bearer ${TOKEN}" ${URL}/v3/actions/_config | jq -r .config.dockerPrivateRegistryUrl` +echo $DOCKERREG + +DOCKER_IMAGE=${DOCKERREG}/${PROJECT}/${IMAGE}:${DOCKER_IMAGE_TAG} +cd $SCRIPT_DIR + +docker build -t ${IMAGE}:${DOCKER_IMAGE_TAG} -f ${SCRIPT_DIR}/Dockerfile . +docker tag ${IMAGE}:${DOCKER_IMAGE_TAG} ${DOCKER_IMAGE} +cortex docker login +docker push ${DOCKER_IMAGE} +cortex actions deploy ${IMAGE} --actionType job --docker ${DOCKER_IMAGE} --cmd '["python", "/app/__main__.py"]' +sleep 10 +cortex actions describe ${IMAGE} diff --git a/src/commands/assets/templates/skill/job/requirements.txt.hbs b/src/commands/assets/templates/skill/job/requirements.txt.hbs new file mode 100644 index 00000000..c1819925 --- /dev/null +++ b/src/commands/assets/templates/skill/job/requirements.txt.hbs @@ -0,0 +1 @@ +cortex-python diff --git a/src/commands/assets/templates/skill/job/skill.yaml.hbs b/src/commands/assets/templates/skill/job/skill.yaml.hbs new file mode 100644 index 00000000..8b9e8e75 --- /dev/null +++ b/src/commands/assets/templates/skill/job/skill.yaml.hbs @@ -0,0 +1,26 @@ +camel: 1.0.0 +name: c12e/{{dashCase name}} +title: {{name}} +description: {{name}} +inputs: + - name: params + title: Job Input + parameters: + - name: params + type: object + description: Input Params + required: true + routing: + all: + action : c12e/{{dashCase name}} + runtime: cortex/functions + output: response + +outputs: + - name: result + title: Job result + parameters: + - name: result + type: object + description: Job Execution Logs + required: true diff --git a/src/commands/assets/templates/skill/rest-api/deploy.sh.hbs b/src/commands/assets/templates/skill/rest-api/deploy.sh.hbs new file mode 100644 index 00000000..0bef072b --- /dev/null +++ b/src/commands/assets/templates/skill/rest-api/deploy.sh.hbs @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -eux; + +#TODO add cortex skill deploy as per REST API skill deploy diff --git a/src/commands/assets/templates/skill/rest-api/skill.yaml.hbs b/src/commands/assets/templates/skill/rest-api/skill.yaml.hbs new file mode 100644 index 00000000..775123f8 --- /dev/null +++ b/src/commands/assets/templates/skill/rest-api/skill.yaml.hbs @@ -0,0 +1,38 @@ +camel: 1.0.0 +name: c12e/{{dashCase name}} +title: {{name}} +description: {{name}} +properties: + - name: url + title: URL to invoke + description: http[s]://host:port + required: true + type: String + - name: path + title: API path + description: API Path (optional) + type: String + - name: headers.content-type + title: Authorization header + description: Header as an individual property (optional) + defaultValue: 'application/json' + type: String + - name: headers.authorization + title: Authorization header + description: Header as an individual property (optional) + type: String + - name: method + title: HTTP Method + description: (optional) + defaultValue: POST + type: String +inputs: + - name: input + title: input + routing: + all: + output: output + runtime: cortex/http +outputs: + - name: output + title: response diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index 470df510..23e42f67 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -20,10 +20,11 @@ module.exports = plop => { { type: 'addMany', // Current directory for the new files - destination: path.join(path.resolve('.'), 'src/{{name}}/'), + destination: path.join(path.resolve('.'), '{{ dashCase name }}'), // Handlebars template used to generate content of project files - base: path.join(path.dirname(require.resolve('@c12e/generator-cortex/generators/skill/{{type}}'))), - templateFiles: path.join(path.dirname(require.resolve('@c12e/generator-cortex/generators/skill/{{type}}')), '**/*.js.hbs'), + base: 'assets/templates/skill/{{dashCase type}}', + //Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. So not using hbs extension in Dockerfile and picking all files in directory + templateFiles: path.join('assets/templates/skill/{{dashCase type}}', '**/*'), abortOnFail: true, // Must not overwrite files with scaffolding template if already exists // force: true, From 87a5f49881d89eaff9a2e0060f54aeced79f2d1a Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 18 Nov 2020 14:47:17 +0530 Subject: [PATCH 161/864] cmd description --- bin/cortex-generate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index 1f2caa6b..bf1a6012 100755 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -27,7 +27,7 @@ program.description('Scaffolding Cortex Components'); program .command('skill') - .description('Generates the structure and top level build script for a skill') + .description('Generates the structure and top level build script for a skill in current directory') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .action((options) => { // deliberately not using withCompatibilityCheck() try { From bc585a6147c755560a853f2d1bc64f2da1fd1d00 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 18 Nov 2020 14:50:46 +0530 Subject: [PATCH 162/864] removed unused generate-cortex dependencies --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index f9a3fda7..8f7c0e46 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,6 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "plop": "2.7.4", - "@c12e/generator-cortex": "0.3.30", "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", From 25a0449d57907435cdd35d958195eb8aa5a347b7 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 20 Nov 2020 11:20:59 -0600 Subject: [PATCH 163/864] Add ability to export snapshot as a k8s agent + skills CRs (#256) * Add ability to export snapshot as a k8s agent + skills CRs * Fix extra args bug, fix error handling get-snapshot * Fix empty --output issue --- bin/cortex-agents.js | 2 +- package-lock.json | 2 +- src/client/agents.js | 9 ++++----- src/commands/agents.js | 23 +++++++++++++---------- src/compatibility.js | 2 +- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 75edb93e..ddc9f5c6 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -213,7 +213,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') + .option('-o, --output ', 'Format output as yaml or k8s resources') .action(withCompatibilityCheck((snapshotId, options) => { try { new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); diff --git a/package-lock.json b/package-lock.json index be5be3bf..283919e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0", + "version": "2.0.0-a.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/client/agents.js b/src/client/agents.js index 3d1e1788..da6a69e7 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -74,16 +74,15 @@ module.exports = class Agents { .catch(err => constructError(err)); } - describeAgentSnapshot(projectId, token, snapshotId, environmentName) { + describeAgentSnapshot(projectId, token, snapshotId, output) { let endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; - debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; + debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) + searchParams: { output, deps: true }, + }).text() .catch(err => constructError(err)); } diff --git a/src/commands/agents.js b/src/commands/agents.js index 5d69176a..a572b132 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -304,22 +304,25 @@ module.exports.DescribeAgentSnapshotCommand = class { this.program = program; } - execute(snapshotId, options) { + async execute(snapshotId, options) { const profile = loadProfile(options.profile); - const envName = options.environmentName; debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); const agents = new Agents(profile.url); - agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, envName).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`, options); + const output = _.get(options,'output', 'json'); + try { + const response = await agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, output); + if (response.success === false) { + return printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`); } - }).catch((err) => { + if (output.toLowerCase() === 'json') { + const result = filterObject(JSON.parse(response), options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + return printSuccess(response); + } catch (err) { printError(`Failed to describe agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); - }); + } } }; diff --git a/src/compatibility.js b/src/compatibility.js index 8a1905af..c47887d3 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -123,7 +123,7 @@ async function getCompatibility(profile) { function withCompatibilityCheck(fn) { return (...args) => { - const command = last(args); + const command = args.find(a => a !== undefined && typeof a.opts === 'function'); const options = command.opts(); if (options.compat && !_.toLower(process.env.CORTEX_NO_COMPAT) === 'true') { const { profile: profileName } = options; From 1fa3d10598a3e167fc78899d5371a1f2e8dde1c5 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Fri, 20 Nov 2020 16:19:44 -0600 Subject: [PATCH 164/864] FAB-342 deny action flag and external group commands (#257) * FAB-342 deny action flag and external group commands * FAB-342 package update and lint * FAB-342 external group endpoint change --- bin/cortex-roles.js | 83 +- bin/cortex-users.js | 21 +- package-lock.json | 3187 +++++++++++++++++++---------------------- package.json | 2 +- src/client/roles.js | 90 ++ src/client/users.js | 27 + src/commands/roles.js | 150 ++ src/commands/users.js | 34 + 8 files changed, 1885 insertions(+), 1709 deletions(-) diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 5e34847d..af05d52b 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -21,6 +21,11 @@ const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { + ExternalGroupAssignCommand, + ExternalGroupDeleteCommand, + ExternalGroupDescribeCommand, + ExternalGroupListCommand, + RoleProjectAssignCommand, RoleAssignCommand, RoleCreateCommand, RoleDeleteCommand, @@ -82,7 +87,8 @@ program.command('create ') .option('--profile [profile]', 'The profile to use') .requiredOption('--project ', 'Grant project') .requiredOption('--resource ', 'Grant resource') - .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .requiredOption('--actions ', 'Grant actions read | write | execute | *') + .option('--deny', 'Explicit deny of action(s)') .action(withCompatibilityCheck((role, options) => { try { new RoleCreateCommand(program).execute(role, options); @@ -98,8 +104,9 @@ program.command('grant ') .option('--profile [profile]', 'The profile to use') .requiredOption('--project ', 'Grant project') .requiredOption('--resource ', 'Grant resource') - .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .requiredOption('--actions ', 'Grant actions read | write | execute | *') .option('--delete', 'Remove grant from role') + .option('--deny', 'Explicit deny of action(s)') .action(withCompatibilityCheck((role, options) => { try { new RoleGrantCommand(program).execute(role, options); @@ -123,4 +130,76 @@ program.command('assign ') } })); +program.command('project ') + .description('Manage a list of role assignments on a project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--roles ', 'Roles to add/remove on project') + .option('--delete', 'Unassign roles from project') + .action(withCompatibilityCheck((project, options) => { + try { + new RoleProjectAssignCommand(program).execute(project, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('list-external') + .description('List external groups') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((options) => { + try { + new ExternalGroupListCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('describe-external ') + .alias('get') + .description('Describe external group roles and users') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--users', 'List users associated with external group') + .option('--roles', 'List roless associated with external group') + .action(withCompatibilityCheck((externalGroup, options) => { + try { + new ExternalGroupDescribeCommand(program).execute(externalGroup, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('delete-external ') + .description('Delete an external group and remove assignments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((externalGroup, options) => { + try { + new ExternalGroupDeleteCommand(program).execute(externalGroup, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('assign-external') + .description('Manage an external group assignment on a role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--role ', 'Role to add/remove assignment') + .requiredOption('--externalGroup ', 'External group to add/remove on role') + .option('--delete', 'Unassign external group from role') + .action(withCompatibilityCheck((options) => { + try { + new ExternalGroupAssignCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); program.parse(process.argv); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index a0b83e3d..301c761a 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -21,6 +21,7 @@ const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { + UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, } = require('../src/commands/users'); @@ -34,8 +35,7 @@ program.command('describe') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--user [user]', 'The user to describe, self for default') - .option('--roles', 'Include roles for user') - .option('--no-grants', 'Ignore grants for user') + .option('--roles', 'Include grant inheritance from roles') .action(withCompatibilityCheck((options) => { try { new UserDescribeCommand(program).execute(options); @@ -51,9 +51,10 @@ program.command('grant ') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .requiredOption('--project ', 'Grant project') .requiredOption('--resource ', 'Grant resource') - .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .requiredOption('--actions ', 'Grant actions read | write | execute | *') .option('--profile [profile]', 'The profile to use') .option('--delete', 'Remove grant from user') + .option('--deny', 'Explicit deny of action(s)') .action(withCompatibilityCheck((user, options) => { try { new UserGrantCommand(program).execute(user, options); @@ -62,5 +63,19 @@ program.command('grant ') } })); +program.command('project ') + .description('Manage a list of user assignments on a project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--users ', 'Uesrs to add/remove on project') + .option('--delete', 'Unassign users from project') + .action(withCompatibilityCheck((project, options) => { + try { + new UserProjectAssignCommand(program).execute(project, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); program.parse(process.argv); diff --git a/package-lock.json b/package-lock.json index 283919e9..c96b89e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.1", + "version": "2.0.0-a.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -30,6 +30,15 @@ "js-tokens": "^4.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -40,31 +49,61 @@ "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "@hapi/address": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha1-1gxcDZMOd0Vv3N4lmOdzAuKVXh0=", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", "requires": { "@hapi/hoek": "^9.0.0" } }, "@hapi/formula": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha1-7a3gYZ7VjI5PFk8jPNpwIR54cSg=" + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" }, "@hapi/hoek": { "version": "9.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.1.0.tgz", - "integrity": "sha1-bJ6vx4wVKSSPj02SsHmacStgUsY=" + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" }, "@hapi/joi": { "version": "17.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha1-nMjX4sIhPR5GcIxiYBhLRHxmE1A=", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", "requires": { "@hapi/address": "^4.0.1", "@hapi/formula": "^2.0.0", @@ -75,13 +114,13 @@ }, "@hapi/pinpoint": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha1-gFtA1NvsBPwRanMIlJTgDwc96N8=" + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" }, "@hapi/topo": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha1-wZr4V3+jk6BunHe2CZWvlZvnIec=", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "requires": { "@hapi/hoek": "^9.0.0" } @@ -93,17 +132,10 @@ }, "@npmcli/move-file": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha1-3hAwcNrA9IzknPZpPCOvWcD3BGQ=", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", "requires": { "mkdirp": "^1.0.4" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" - } } }, "@panva/asn1.js": { @@ -154,9 +186,9 @@ } }, "@types/node": { - "version": "14.14.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.0.tgz", - "integrity": "sha512-BfbIHP9IapdupGhq/hc+jT5dyiBVZ2DdeC5WwJWQWDb0GijQlzUFAeIQn/2GtvZcd2HVUU7An8felIICFTC2qg==" + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, "@types/responselike": { "version": "1.0.0", @@ -178,6 +210,14 @@ "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "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==", + "requires": { + "debug": "4" + } + }, "agentkeepalive": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", @@ -209,37 +249,55 @@ "uri-js": "^4.2.2" } }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "ansi-colors": { "version": "3.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", "dev": true }, "ansi-escapes": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "anymatch": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -248,8 +306,8 @@ }, "argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { "sprintf-js": "~1.0.2" } @@ -263,21 +321,43 @@ "define-properties": "^1.1.3", "es-abstract": "^1.17.0", "is-string": "^1.0.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha1-DegrQmsDGNv9uUAInjiwQ9N/bHs=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "es-abstract": "^1.18.0-next.1" } }, "assertion-error": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, "astral-regex": { @@ -298,14 +378,14 @@ }, "binary-extensions": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, "boxen": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha1-5BG2I1fW1tNlh8isPV2XTaoHDmQ=", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", @@ -317,49 +397,6 @@ "widest-line": "^3.1.0" }, "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -368,114 +405,39 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", - "requires": { - "string-width": "^4.0.0" - } } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "breakword": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", + "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", + "requires": { + "wcwidth": "^1.0.1" + } + }, "browser-stdout": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "builtins": { @@ -505,21 +467,6 @@ "ssri": "^8.0.0", "tar": "^6.0.2", "unique-filename": "^1.1.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "requires": { - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } } }, "cacheable-lookup": { @@ -539,16 +486,15 @@ "lowercase-keys": "^2.0.0", "normalize-url": "^4.1.0", "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - } + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" } }, "callsites": { @@ -564,8 +510,8 @@ }, "chai": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.2.0.tgz", - "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -578,8 +524,8 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { "check-error": "^1.0.2" @@ -592,42 +538,6 @@ "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "chardet": { @@ -644,8 +554,8 @@ }, "chokidar": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha1-EsBxRmjFWAD2WeJi1JYql/r1VKY=", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", "dev": true, "requires": { "anymatch": "~3.1.1", @@ -656,61 +566,17 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.2.0" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } } }, "chownr": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "clean-stack": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-boxes": { "version": "2.2.1", @@ -735,11 +601,41 @@ } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -762,19 +658,17 @@ } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colors": { "version": "1.0.3", @@ -796,8 +690,8 @@ }, "component-emitter": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "concat-map": { @@ -813,15 +707,10 @@ }, "cookiejar": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha1-3YojVTB1L5iPmghE8/xYnjERElw=", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, "cross-fetch": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", @@ -831,39 +720,47 @@ } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, + "csv": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz", + "integrity": "sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==", + "requires": { + "csv-generate": "^3.2.4", + "csv-parse": "^4.8.8", + "csv-stringify": "^5.3.6", + "stream-transform": "^2.0.1" + } + }, + "csv-generate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.3.0.tgz", + "integrity": "sha512-EXSru4QwEWKwM7wwsJbhrZC+mHEJrhQFoXlohHs80CAU8Qhlv9gaw1sjzNiC3Hr3oUx5skDmEiAlz+tnKWV0RA==" + }, + "csv-parse": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.14.1.tgz", + "integrity": "sha512-4wmcO7QbWtDAncGFaBwlWFPhEN4Akr64IbM4zvDwEOFekI8blLc04Nw7XjQjtSNy+3AUAgBgtUa9nWo5Cq89Xg==" + }, + "csv-stringify": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.5.3.tgz", + "integrity": "sha512-JKG8vIHpWPzdilp2SAmvjmAiIhD+XGKGdhZBGi8QIECgJAsFr7k5CmJIW2QkSxBBsctvmojM25s+UINzQ5NLTg==" + }, "debug": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { "ms": "^2.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } } }, "decamelize": { @@ -888,8 +785,8 @@ }, "deep-eql": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -906,13 +803,6 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - } } }, "defer-to-connect": { @@ -922,8 +812,8 @@ }, "define-properties": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { "object-keys": "^1.0.12" } @@ -935,7 +825,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "diff": { @@ -954,9 +844,9 @@ } }, "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, "emitter-component": { "version": "1.1.1", @@ -964,9 +854,9 @@ "integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=" }, "emoji-regex": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "encoding": { "version": "0.1.13", @@ -975,23 +865,12 @@ "optional": true, "requires": { "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } } }, "end-of-stream": { - "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" } @@ -1011,15 +890,16 @@ } }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", "is-regex": "^1.1.1", "object-inspect": "^1.8.0", "object-keys": "^1.1.1", @@ -1030,8 +910,8 @@ }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -1045,28 +925,15 @@ "dev": true }, "escodegen": { - "version": "1.11.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-1.11.1.tgz", - "integrity": "sha1-xIX/jWtM24nif0qFbpHxGEAcpRA=", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "optional": true - } } }, "eslint": { @@ -1113,6 +980,21 @@ "text-table": "^0.2.0" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -1124,10 +1006,53 @@ "supports-color": "^5.3.0" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "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" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "semver": { @@ -1135,6 +1060,48 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -1294,8 +1261,8 @@ }, "esprima": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { "version": "1.3.1", @@ -1332,19 +1299,19 @@ } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "esutils": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "event-stream": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "requires": { "duplexer": "^0.1.1", "from": "^0.1.7", @@ -1353,28 +1320,12 @@ "split": "^1.0.1", "stream-combiner": "^0.2.2", "through": "^2.3.8" - }, - "dependencies": { - "map-stream": { - "version": "0.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" - }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - } } }, "execa": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", - "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "requires": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", @@ -1385,57 +1336,6 @@ "onetime": "^5.1.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } } }, "external-editor": { @@ -1447,6 +1347,17 @@ "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } } }, "extract-files": { @@ -1473,8 +1384,8 @@ }, "fast-safe-stringify": { "version": "2.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha1-EkqohYmSYfaK7bQqfAgN6dpgh0M=", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", "dev": true }, "figures": { @@ -1495,35 +1406,36 @@ "flat-cache": "^2.0.1" } }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "find-package-json": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flat": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-4.1.1.tgz", - "integrity": "sha1-o5IFnMOCiB/5hkL12k3eCpWfMJs=", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", "dev": true, "requires": { "is-buffer": "~2.0.3" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=", - "dev": true - } } }, "flat-cache": { @@ -1565,9 +1477,9 @@ } }, "formidable": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha1-cPt8oCkO5v+WEJBBX0s989IIJlk=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", + "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==", "dev": true }, "from": { @@ -1577,8 +1489,8 @@ }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { "minipass": "^3.0.0" } @@ -1590,15 +1502,15 @@ }, "fsevents": { "version": "2.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -1606,12 +1518,27 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -1622,8 +1549,8 @@ }, "glob": { "version": "7.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.6.tgz", - "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1633,6 +1560,23 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "requires": { + "ini": "^1.3.5" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -1658,15 +1602,15 @@ } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "grapheme-splitter": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha1-nPOmZcYkdHmJaDSvNc8du0QAdn4=" + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, "graphql": { "version": "15.4.0", @@ -1685,33 +1629,32 @@ }, "growl": { "version": "1.10.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", - "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "has": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { "function-bind": "^1.1.1" } }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-symbols": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=" + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "he": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hosted-git-info": { @@ -1724,8 +1667,18 @@ }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "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==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } }, "http2-wrapper": { "version": "1.0.0-beta.5.2", @@ -1736,6 +1689,15 @@ "resolve-alpn": "^1.0.0" } }, + "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==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -1750,18 +1712,24 @@ } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "dev": true, + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "optional": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1775,13 +1743,13 @@ }, "indent-string": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "infer-owner": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "inflight": { "version": "1.0.6", @@ -1793,14 +1761,14 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inquirer": { "version": "6.5.2", @@ -1824,11 +1792,20 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -1840,13 +1817,55 @@ "supports-color": "^5.3.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "has-flag": "^3.0.0" } } } @@ -1864,22 +1883,28 @@ }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + }, "is-callable": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=" + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" }, "is-core-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", - "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" @@ -1887,8 +1912,8 @@ }, "is-date-object": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=" + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, "is-extglob": { "version": "2.1.1", @@ -1899,13 +1924,12 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -1913,26 +1937,11 @@ }, "is-installed-globally": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.3.1.tgz", - "integrity": "sha1-Z5r++Bk0enJYRhf9GUl/AQuO018=", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", + "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", "requires": { "global-dirs": "^2.0.1", "is-path-inside": "^3.0.1" - }, - "dependencies": { - "global-dirs": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha1-rN87tmhbzVXLNeigUiZlaelGkgE=", - "requires": { - "ini": "^1.3.5" - } - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha1-9SIPyCo+IzdXKR3dycWHfyofMBc=" - } } }, "is-lambda": { @@ -1942,19 +1951,24 @@ }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" + }, "is-regex": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "requires": { "has-symbols": "^1.0.1" } @@ -1972,8 +1986,8 @@ }, "is-symbol": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "requires": { "has-symbols": "^1.0.1" } @@ -1981,7 +1995,8 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "isexe": { "version": "2.0.0", @@ -2009,8 +2024,8 @@ }, "js-yaml": { "version": "3.13.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2046,8 +2061,8 @@ }, "jsonpath": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonpath/-/jsonpath-1.0.2.tgz", - "integrity": "sha1-5qrmgdA+mne0ZR1dlurF/GOx/RM=", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", + "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", "requires": { "esprima": "1.2.2", "static-eval": "2.0.2", @@ -2056,7 +2071,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } @@ -2076,8 +2091,8 @@ }, "kleur": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=" + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" }, "levn": { "version": "0.3.0", @@ -2098,24 +2113,14 @@ "parse-json": "^2.2.0", "pify": "^2.0.0", "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -2129,99 +2134,112 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "macos-release": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", - "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==" - }, - "make-fetch-happen": { - "version": "8.0.10", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", - "integrity": "sha512-jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==", + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, "requires": { - "agentkeepalive": "^4.1.0", - "cacache": "^15.0.0", - "http-cache-semantics": "^4.0.4", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" + "chalk": "^2.4.2" }, "dependencies": { - "agent-base": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", - "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { - "debug": "4" + "color-convert": "^1.9.0" } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "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==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "requires": { - "agent-base": "6", - "debug": "4" + "color-name": "1.1.3" } }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha1-kWBcJdkWUvRmHqacz0XxszHKIbo=" + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, - "socks": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.4.4.tgz", - "integrity": "sha512-7LmHN4IHj1Vpd/k8D872VGCHJ6yIVyeFkfIBExRmGPYQ/kdUkpdg9eKh9oOzYYYKQhuxavayJHTnmBG+EzluUA==", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - } + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, - "socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha1-fA82Tnsc9KekN+cSU77XLpAEvmA=", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "has-flag": "^3.0.0" } } } }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "macos-release": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", + "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==" + }, + "make-fetch-happen": { + "version": "8.0.10", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", + "integrity": "sha512-jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==", + "requires": { + "agentkeepalive": "^4.1.0", + "cacache": "^15.0.0", + "http-cache-semantics": "^4.0.4", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + } + }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -2233,24 +2251,29 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + }, "mime-db": { - "version": "1.40.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { - "version": "2.1.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "requires": { - "mime-db": "1.40.0" + "mime-db": "1.44.0" } }, "mimic-fn": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { "version": "1.0.1", @@ -2259,8 +2282,8 @@ }, "minimatch": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" } @@ -2281,8 +2304,8 @@ }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { "minipass": "^3.0.0" } @@ -2300,16 +2323,16 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { "minipass": "^3.0.0" } }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" @@ -2325,8 +2348,8 @@ }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "requires": { "minipass": "^3.0.0" } @@ -2341,23 +2364,19 @@ } }, "mixme": { - "version": "0.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixme/-/mixme-0.3.5.tgz", - "integrity": "sha1-MEZSza8ko98EhyBeYaxhYsaQbd0=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.4.0.tgz", + "integrity": "sha512-B4Sm1CDC5+ov5AYxSkyeT5HLtiDgNOLKwFlq34wr8E2O3zRdTvQiLzo599Jt9cir6VJrSenOlgvdooVYCQJIYw==" }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mocha": { "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-7.1.1.tgz", - "integrity": "sha1-ifuzDQlCmEWxu4k6gwv1dxBJpEE=", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz", + "integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -2386,44 +2405,19 @@ "yargs-unparser": "1.6.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "color-convert": "^1.9.0" } }, "cliui": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { "string-width": "^3.1.0", @@ -2431,31 +2425,43 @@ "wrap-ansi": "^5.1.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "debug": { "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", - "dev": true + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } }, "glob": { "version": "7.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.3.tgz", - "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -2466,13 +2472,20 @@ "path-is-absolute": "^1.0.0" } }, - "log-symbols": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "locate-path": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q=", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "chalk": "^2.4.2" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "mkdirp": { @@ -2486,14 +2499,14 @@ }, "ms": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "object.assign": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { "define-properties": "^1.1.2", @@ -2502,16 +2515,25 @@ "object-keys": "^1.0.11" } }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -2519,28 +2541,28 @@ "strip-ansi": "^5.1.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "has-flag": "^3.0.0" } }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha1-ds/nQs8fQbubHCmtAwaMBbTA5Ao=", + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "isexe": "^2.0.0" } }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -2550,8 +2572,8 @@ }, "yargs": { "version": "13.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { "cliui": "^5.0.0", @@ -2568,8 +2590,8 @@ }, "yargs-parser": { "version": "13.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -2602,8 +2624,8 @@ }, "nice-try": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "nock": { @@ -2620,8 +2642,8 @@ }, "node-environment-flags": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha1-owrBNiH299Z0JgpU3t4EjDmCwIg=", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", "dev": true, "requires": { "object.getownpropertydescriptors": "^2.0.3", @@ -2630,8 +2652,8 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } @@ -2669,8 +2691,8 @@ }, "normalize-path": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "normalize-url": { @@ -2709,47 +2731,51 @@ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { "path-key": "^3.0.0" - }, - "dependencies": { - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - } } }, "object-inspect": { "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA=" + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" }, "object-keys": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.1.tgz", - "integrity": "sha1-MDhnpmbN1Bk27N7fsfjz4ypHjN0=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.0", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" }, "dependencies": { "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg=", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", "is-regex": "^1.1.1", "object-inspect": "^1.8.0", "object-keys": "^1.1.1", @@ -2760,25 +2786,35 @@ } } }, - "object.entries": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", - "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "has": "^1.0.3" - } - }, "object.getownpropertydescriptors": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "object.values": { @@ -2791,6 +2827,27 @@ "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "once": { @@ -2802,25 +2859,24 @@ } }, "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "^2.1.0" } }, "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "requires": { "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", + "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "word-wrap": "~1.2.3" } }, "os-name": { @@ -2844,34 +2900,33 @@ "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" }, "p-limit": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-map": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { "aggregate-error": "^3.0.0" } }, "p-try": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "parent-module": { "version": "1.0.1", @@ -2892,10 +2947,9 @@ } }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "path-is-absolute": { "version": "1.0.1", @@ -2909,10 +2963,9 @@ "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.6", @@ -2920,6 +2973,15 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, "pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", @@ -2936,8 +2998,14 @@ }, "picomatch": { "version": "2.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pkg-dir": { @@ -2991,6 +3059,12 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, @@ -2999,15 +3073,10 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" - }, "progress": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise-inflight": { "version": "1.0.1", @@ -3031,8 +3100,8 @@ }, "pump": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -3044,6 +3113,12 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -3058,23 +3133,6 @@ "load-json-file": "^2.0.0", "normalize-package-data": "^2.3.2", "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } } }, "read-pkg-up": { @@ -3129,27 +3187,29 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readdirp": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha1-wwwzNSsSyW37S4lUIaSf1alZODk=", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", "dev": true, "requires": { "picomatch": "^2.0.4" @@ -3166,13 +3226,18 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, "resolve": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", - "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "dev": true, "requires": { - "is-core-module": "^2.0.0", + "is-core-module": "^2.1.0", "path-parse": "^1.0.6" } }, @@ -3203,6 +3268,23 @@ "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + } } }, "retry": { @@ -3212,8 +3294,8 @@ }, "rewire": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", "dev": true, "requires": { "eslint": "^6.8.0" @@ -3248,6 +3330,15 @@ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -3275,20 +3366,41 @@ "dev": true }, "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "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" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "eslint": { "version": "6.8.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", @@ -3364,15 +3476,6 @@ "escape-string-regexp": "^1.0.5" } }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -3383,15 +3486,9 @@ } }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "inquirer": { @@ -3434,6 +3531,27 @@ "supports-color": "^7.1.0" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -3454,17 +3572,14 @@ } } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "mute-stream": { "version": "0.0.8", @@ -3472,28 +3587,11 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "restore-cursor": { "version": "3.1.0", @@ -3505,71 +3603,50 @@ "signal-exit": "^3.0.2" } }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } + "shebang-regex": "^1.0.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } - } + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -3582,37 +3659,34 @@ } }, "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true }, "rxjs": { - "version": "6.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", - "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { "version": "7.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.1.3.tgz", - "integrity": "sha1-5DRc5zBxxT8zZEXPwZ77HDEd8qY=" + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" }, "set-blocking": { "version": "2.0.0", @@ -3620,24 +3694,22 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { "version": "2.1.0", @@ -3648,8 +3720,92 @@ "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + }, + "smartwrap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.1.tgz", + "integrity": "sha512-BoOIGADm5Q9OXGVmT899L1fx6dvOYciVUPB9yFlE1XkxRs3/6sqT/HYZoXOxNb4jj2zshtH+jhmGa6wGkNDPgA==", + "requires": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "socks": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.0.tgz", + "integrity": "sha512-00OqQHp5SCbwm9ecOMJj9aQtMSjwi1uVuGQoxnpKCS50VKZcOZ8z11CTKypmR8sEy7nZimy/qXY7rYJYbRlXmA==", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -3684,8 +3840,8 @@ }, "split": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", - "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "requires": { "through": "2" } @@ -3697,16 +3853,16 @@ }, "ssri": { "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha1-ecp04h+M6u3fy0uQFDxFi42YiAg=", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "requires": { "minipass": "^3.1.1" } }, "static-eval": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha1-LRdZMGsb76aIk4RUxUa3hx+AakI=", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", "requires": { "escodegen": "^1.8.1" } @@ -3719,49 +3875,90 @@ "emitter-component": "^1.1.1" } }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "requires": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "stream-transform": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.3.tgz", + "integrity": "sha512-HgNXs2rNG9pKC2gK4owtMPMKfto81S/TWZw0Ybsx6Wp23klnN0YctnMXYe0PmzzhB/zIBEB+0Urf+PMorE4d/A==", + "requires": { + "mixme": "^0.4.0" + } + }, "string-width": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "es-abstract": "^1.18.0-next.1" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "es-abstract": "^1.18.0-next.1" } }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } }, "strip-bom": { @@ -3783,8 +3980,8 @@ }, "superagent": { "version": "5.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-5.2.2.tgz", - "integrity": "sha1-b/cmxWQnlbLCcAnpJofI5pprsH0=", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", + "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", "dev": true, "requires": { "component-emitter": "^1.3.0", @@ -3800,86 +3997,20 @@ "semver": "^6.3.0" }, "dependencies": { - "combined-stream": { - "version": "1.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "debug": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.2.0.tgz", - "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } - }, - "form-data": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha1-MbfjnIXxNVtxOe4MZHzw3n+DxoI=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "mime": { - "version": "2.4.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime/-/mime-2.4.6.tgz", - "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "qs": { - "version": "6.9.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.9.4.tgz", - "integrity": "sha1-kJCykNH5FyjTwi5UhDykSupatoc=", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, "table": { @@ -3894,18 +4025,6 @@ "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -3916,15 +4035,6 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } } } }, @@ -3939,19 +4049,12 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } } }, "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "text-table": { "version": "0.2.0", @@ -3966,31 +4069,40 @@ }, "through2": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-3.0.1.tgz", - "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "requires": { "readable-stream": "2 || 3" } }, "tmp": { "version": "0.0.33", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, "tslib": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tty-table": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tty-table/-/tty-table-4.1.1.tgz", - "integrity": "sha1-Sr3/iZt7f0Ia91b9o1LGt4EgUk8=", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.1.tgz", + "integrity": "sha512-iCxPm5DCPgqs3ELrUDEe+JsOcQOSPZSe+dwM5oIQZk5OfyzQWPVQwkHjyFp4aoDHC0HTM47jd0TkQZUBpxnN0Q==", "requires": { "chalk": "^3.0.0", "csv": "^5.3.1", @@ -4001,26 +4113,10 @@ "yargs": "^15.1.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "breakword": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha1-/UIKQX9VAWc2tbYVFhyuHI+BmBA=", - "requires": { - "wcwidth": "^1.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "chalk": { "version": "3.0.0", @@ -4031,375 +4127,12 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "csv": { - "version": "5.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-5.3.2.tgz", - "integrity": "sha1-ULNE4l37uMYmhKG87BjCJGiyFh4=", - "requires": { - "csv-generate": "^3.2.4", - "csv-parse": "^4.8.8", - "csv-stringify": "^5.3.6", - "stream-transform": "^2.0.1" - } - }, - "csv-generate": { - "version": "3.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-generate/-/csv-generate-3.2.4.tgz", - "integrity": "sha1-RA2rkXcznuBnbJ5cFvUOKzRjwBk=" - }, - "csv-parse": { - "version": "4.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-parse/-/csv-parse-4.12.0.tgz", - "integrity": "sha1-/ULWKRu6rdUdMAn2ytuz5TtM4CY=" - }, - "csv-stringify": { - "version": "5.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-stringify/-/csv-stringify-5.5.1.tgz", - "integrity": "sha1-9CzdN5sPfxQpM6EfZ0sakevQ/NA=" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" - }, - "smartwrap": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smartwrap/-/smartwrap-2.0.1.tgz", - "integrity": "sha1-9OL7NkQCIH5OrF7OwNo4ZNYhtCM=", - "requires": { - "array.prototype.flat": "^1.2.3", - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "yargs": { - "version": "15.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - } - } - }, - "stream-transform": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-transform/-/stream-transform-2.0.2.tgz", - "integrity": "sha1-PLehTIAus5vEDKqrBTXlhPOmXK8=", - "requires": { - "mixme": "^0.3.1" - } - }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { "ansi-regex": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" - } - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "^1.9.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "dependencies": { - "locate-path": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" - } - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - } - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", - "requires": { - "ansi-styles": "^3.2.0" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" } } } @@ -4414,15 +4147,14 @@ }, "type-detect": { "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "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 + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, "underscore": { "version": "1.7.0", @@ -4431,16 +4163,16 @@ }, "unique-filename": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { "imurmurhash": "^0.1.4" } @@ -4460,9 +4192,9 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, "validate-npm-package-license": { @@ -4492,10 +4224,9 @@ } }, "which": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dev": true, + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "requires": { "isexe": "^2.0.0" } @@ -4507,11 +4238,46 @@ }, "wide-align": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" } }, "windows-release": { @@ -4525,18 +4291,12 @@ "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4545,49 +4305,13 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { "ansi-regex": "^5.0.0" } @@ -4606,22 +4330,60 @@ "dev": true, "requires": { "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } } }, "y18n": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, "yargs-unparser": { "version": "1.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha1-7yXCx2n/a9CeSw+dfGBfsnhG6p8=", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, "requires": { "flat": "^4.1.0", @@ -4629,22 +4391,19 @@ "yargs": "^13.3.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } }, "cliui": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { "string-width": "^3.1.0", @@ -4652,28 +4411,59 @@ "wrap-ansi": "^5.1.0" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "dev": true + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -4681,19 +4471,10 @@ "strip-ansi": "^5.1.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -4703,8 +4484,8 @@ }, "yargs": { "version": "13.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { "cliui": "^5.0.0", @@ -4721,8 +4502,8 @@ }, "yargs-parser": { "version": "13.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/package.json b/package.json index 87d00d7d..0ca1aa60 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.1", + "version": "2.0.0-a.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/roles.js b/src/client/roles.js index d85550fa..a422a505 100644 --- a/src/client/roles.js +++ b/src/client/roles.js @@ -30,6 +30,9 @@ module.exports = class Roles { } this.rolesUsersEndpoint = `${this.rolesEndpoint}/users`; this.rolesGrantsEndpoint = `${this.rolesEndpoint}/grants`; + this.rolesProjectsEndpoint = `${this.rolesEndpoint}/projects`; + + this.rolesMappingsEndpoint = `${this.rolesEndpoint}/mappings`; if (flags.length > 0) { this.flags = `${flags.reduce((flagString, flag) => { @@ -148,4 +151,91 @@ module.exports = class Roles { .then(res => ({ success: true, result: res })) .catch(err => constructError(err)); } + + addRolesToProject(token, project, roles) { + const endpoint = `${this.rolesProjectsEndpoint}`; + debug('addRolesToProject => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { project, roles }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeRolesFromProject(token, project, roles) { + const endpoint = `${this.rolesProjectsEndpoint}`; + debug('removeRolesFromProject => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { project, roles }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + listExternalGroups(token) { + const endpoint = this.rolesMappingsEndpoint; + debug('listExternalGroups => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + describeExternalGroup(token, externalGroup) { + const endpoint = `${this.rolesMappingsEndpoint}/${externalGroup}${this.flags}`; + debug('describeExternalGroup => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + deleteExternalGroup(token, externalGroup) { + const endpoint = `${this.rolesMappingsEndpoint}/${externalGroup}`; + debug('deleteExternalGroup => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + addExternalGroupToRole(token, externalGroup) { + const endpoint = `${this.rolesMappingsEndpoint}`; + debug('addExternalGroupToRole => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { externalGroup }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeExternalGroupFromRole(token, externalGroup) { + const endpoint = `${this.rolesMappingsEndpoint}/${externalGroup}`; + debug('removeExternalGroupFromRole => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } }; diff --git a/src/client/users.js b/src/client/users.js index 73302ab1..9683441d 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -29,6 +29,7 @@ module.exports = class Users { } else { this.usersEndpoint = `${this.endpoint}/usergrants`; } + this.usersProjectsEndpoint = `${this.usersEndpoint}/projects`; if (flags.length > 0) { this.flags = `${flags.reduce((flagString, flag) => { if (flagString) { @@ -78,4 +79,30 @@ module.exports = class Users { .then(res => ({ success: true, result: res })) .catch(err => constructError(err)); } + + addUsersToProject(token, project, users) { + const endpoint = `${this.usersProjectsEndpoint}`; + debug('addUsersToProject => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { project, users }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeUsersFromProject(token, project, users) { + const endpoint = `${this.usersProjectsEndpoint}`; + debug('removeUsersFromProject => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { project, users }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } }; diff --git a/src/commands/roles.js b/src/commands/roles.js index 5e1e3e3b..c38daae2 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -25,6 +25,7 @@ function createGrant(options) { project: options.project, resource: options.resource, actions: options.actions, + effect: options.deny ? 'deny' : 'allow', }; } @@ -204,3 +205,152 @@ module.exports.RoleListCommand = class { }); } }; + +module.exports.RoleProjectAssignCommand = class { + constructor(program) { + this.program = program; + } + + execute(project, options) { + const profile = loadProfile(options.profile); + debug('%s.assignRoleProject=%s', profile.name, project); + + const client = new Roles(profile.url, null); + const call = (deleteFlag, token, assignProject, roles) => { + if (deleteFlag) { + return client.removeRolesFromProject(token, assignProject, roles); + } + return client.addRolesToProject(token, assignProject, roles); + }; + + call(options.delete, profile.token, project, options.roles).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} roles from project : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} roles from project : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ExternalGroupListCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listExternalGroup=%s', profile.name); + + const client = new Roles(profile.url, null); + client.listExternalGroups(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to list external groups : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list external groups : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ExternalGroupDescribeCommand = class { + constructor(program) { + this.program = program; + } + + execute(externalGroup, options) { + const profile = loadProfile(options.profile); + debug('%s.describeExternalGroup=%s', profile.name, externalGroup); + + const flags = []; + + if (options.roles) { + flags.push('roles'); + } + if (options.users) { + flags.push('users'); + } + const client = new Roles(profile.url, null, flags); + client.describeExternalGroup(profile.token, externalGroup).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe external group : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe external group : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ExternalGroupDeleteCommand = class { + constructor(program) { + this.program = program; + } + + execute(externalGroup, options) { + const profile = loadProfile(options.profile); + debug('%s.deleteExternalGroup=%s', profile.name, externalGroup); + + const client = new Roles(profile.url, null); + + client.deleteExternalGroup(profile.token, externalGroup).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to delete external group : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete external group : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ExternalGroupAssignCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.externalGroupAssign=%s', profile.name, options.role); + + const client = new Roles(profile.url, options.role); + const call = (deleteFlag, token, externalGroup) => { + if (deleteFlag) { + return client.removeExternalGroupFromRole(token, externalGroup); + } + return client.addExternalGroupToRole(token, externalGroup); + }; + + call(options.delete, profile.token, options.externalGroup).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} external group from role : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'unassign' : 'assign'; + printError( + `Failed to ${func} external group from role : ${err.status} ${err.message}`, options, + ); + }); + } +}; diff --git a/src/commands/users.js b/src/commands/users.js index f9a1e018..cb50a3fc 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -25,6 +25,7 @@ function createGrant(options) { project: options.project, resource: options.resource, actions: options.actions, + effect: options.deny ? 'deny' : 'allow', }; } @@ -92,3 +93,36 @@ module.exports.UserDescribeCommand = class { }); } }; + +module.exports.UserProjectAssignCommand = class { + constructor(program) { + this.program = program; + } + + execute(project, options) { + const profile = loadProfile(options.profile); + debug('%s.assignUserProject=%s', profile.name, project); + + const client = new Users(profile.url, null); + const call = (deleteFlag, token, assignProject, users) => { + if (deleteFlag) { + return client.removeUsersFromProject(token, assignProject, users); + } + return client.addUsersToProject(token, assignProject, users); + }; + + call(options.delete, profile.token, project, options.users).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} users from project : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} users from project : ${err.status} ${err.message}`, options); + }); + } +}; From 7e6cc49a80a15693b67425ef0b182143bf4ba0ad Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Fri, 20 Nov 2020 23:40:23 -0600 Subject: [PATCH 165/864] fix travis build (#258) --- src/client/agents.js | 2 +- src/commands/agents.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/client/agents.js b/src/client/agents.js index da6a69e7..835a30ef 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -75,7 +75,7 @@ module.exports = class Agents { } describeAgentSnapshot(projectId, token, snapshotId, output) { - let endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; + const endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, endpoint); return got .get(endpoint, { diff --git a/src/commands/agents.js b/src/commands/agents.js index a572b132..da268a95 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,7 +21,7 @@ const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -229,7 +229,7 @@ module.exports.ListActivationsCommand = class { } }; -module.exports.ListServicesCommand = class ListServicesCommand { +module.exports.ListServicesCommand = class ListServicesCommand { constructor(program) { this.program = program; } @@ -237,7 +237,7 @@ module.exports.ListServicesCommand = class ListServicesCommand { execute(agentName, options) { const profile = loadProfile(options.profile); debug('%s.listServices(%s)', profile.name, agentName); - + const catalog = new Catalog(profile.url); catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { if (response.success) { @@ -309,7 +309,7 @@ module.exports.DescribeAgentSnapshotCommand = class { debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); const agents = new Agents(profile.url); - const output = _.get(options,'output', 'json'); + const output = _.get(options, 'output', 'json'); try { const response = await agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, output); if (response.success === false) { @@ -321,7 +321,7 @@ module.exports.DescribeAgentSnapshotCommand = class { } return printSuccess(response); } catch (err) { - printError(`Failed to describe agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); + return printError(`Failed to describe agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); } } }; From 9da5066704d47d59de9a90ffe90cc52ebaad0f57 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Sat, 21 Nov 2020 11:53:57 -0600 Subject: [PATCH 166/864] GQL type name changed from ProjectInput -> CreateProjectInput (#260) --- src/client/apiServerClient.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 90caf410..a01ad206 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -55,7 +55,7 @@ module.exports = class ApiServerClient { async createProject(token, projDef) { try { const fetched = await this._client(token) - .request(gql`mutation NewProject($input: ProjectInput!) { createProject(input: $input){name}}`, { input: projDef }); + .request(gql`mutation NewProject($input: CreateProjectInput!) { createProject(input: $input){name}}`, { input: projDef }); return _.get(fetched, 'createProject', {}); } catch (err) { throw err; From 2974d926f723ae9494c1cc2c092c4860c1c5ba56 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Sat, 21 Nov 2020 12:18:16 -0600 Subject: [PATCH 167/864] using lodash whn getting connection params (#259) --- src/commands/connections.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/connections.js b/src/commands/connections.js index d15fb63f..0d08a7a2 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -69,7 +69,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = connectionDefinition.params.filter(item => item.name === paramName); + const results = _.get(connectionDefinition, 'params', []).filter(item => item.name === paramName); if (results && results.length) { return results[0].value; } From f276cf706a84893746672b66d82dc97b727f9cb5 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 23 Nov 2020 18:15:41 +0530 Subject: [PATCH 168/864] Added readme and removed deploy.sh. Described deployment in readme --- .../assets/templates/skill/daemon/README.md | 28 +++++++++++++++++++ .../templates/skill/daemon/deploy.sh.hbs | 26 ----------------- .../templates/skill/daemon/skill.yaml.hbs | 2 +- .../templates/skill/external-api/README.md | 8 ++++++ .../{rest-api => external-api}/skill.yaml.hbs | 2 +- .../assets/templates/skill/job/README.md | 25 +++++++++++++++++ .../assets/templates/skill/job/deploy.sh.hbs | 26 ----------------- .../assets/templates/skill/job/skill.yaml.hbs | 2 +- .../templates/skill/rest-api/deploy.sh.hbs | 5 ---- src/commands/plopfile.js | 2 +- 10 files changed, 65 insertions(+), 61 deletions(-) create mode 100644 src/commands/assets/templates/skill/daemon/README.md delete mode 100644 src/commands/assets/templates/skill/daemon/deploy.sh.hbs create mode 100644 src/commands/assets/templates/skill/external-api/README.md rename src/commands/assets/templates/skill/{rest-api => external-api}/skill.yaml.hbs (95%) create mode 100644 src/commands/assets/templates/skill/job/README.md delete mode 100644 src/commands/assets/templates/skill/job/deploy.sh.hbs delete mode 100644 src/commands/assets/templates/skill/rest-api/deploy.sh.hbs diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md new file mode 100644 index 00000000..6169d175 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -0,0 +1,28 @@ +### Daemon Skill + +Long running Cortex skill serving REST API requests + +#### Files generated: +* `skill.yaml` Skill definition +* `__main__.py` Python3 code serving the daemon API +* `requirements.txt` Python3 libraries dependencies +* `Dockerfile` to build Docker image for this skill + +#### Next Steps: +* Add input/output parameters and properties in skill.yaml as per requirement +* Update `__main__.py` with the business logic this skill will implement. +* Add required libraries to `requirements.txt` +* Make changes to Dockerfile if required + +Note: +> This is a Fast API/Uvicorn based Python3 project, feel free to change to other framework or language as per the need + +#### Deployment Steps +* Build the docker image and push to registry accessible to Cortex DCI + ```bash + docker build -t : -f Dockerfile . + docker tag : + docker push + ``` +* Save Cortex Action `cortex actions deploy --actionType daemon --docker --port '5000' --project ` +* Deploy this Skill `cortex skills save -y skill.yaml --project ` diff --git a/src/commands/assets/templates/skill/daemon/deploy.sh.hbs b/src/commands/assets/templates/skill/daemon/deploy.sh.hbs deleted file mode 100644 index 94a1713a..00000000 --- a/src/commands/assets/templates/skill/daemon/deploy.sh.hbs +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash - -set -eux; - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -IMAGE=c12e/{{name}} -DOCKER_IMAGE_TAG=$(git describe --long --always) - -PROFILE=$(jq -r .currentProfile ~/.cortex/config) -PROJECT=$(jq -r .profiles.${PROFILE}.project ~/.cortex/config) -URL=$(jq -r .profiles.${PROFILE}.url ~/.cortex/config) - -# TODO fix docker registry and action deployment once v6 supports this. Also skill and action deployment will be one command. -DOCKERREG=`curl -s -H "Authorization: Bearer ${TOKEN}" ${URL}/v3/actions/_config | jq -r .config.dockerPrivateRegistryUrl` -echo $DOCKERREG - -DOCKER_IMAGE=${DOCKERREG}/${PROJECT}/${IMAGE}:${DOCKER_IMAGE_TAG} -cd $SCRIPT_DIR - -docker build -t ${IMAGE}:${DOCKER_IMAGE_TAG} -f ${SCRIPT_DIR}/Dockerfile . -docker tag ${IMAGE}:${DOCKER_IMAGE_TAG} ${DOCKER_IMAGE} -cortex docker login -docker push ${DOCKER_IMAGE} -cortex actions deploy ${IMAGE} --actionType daemon --docker ${DOCKER_IMAGE} --port '5000' -sleep 10 -cortex actions describe ${IMAGE} diff --git a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs index cef1bcfa..ef0131db 100644 --- a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs @@ -13,7 +13,7 @@ inputs: routing: all: action : c12e/{{dashCase name}} - runtime: cortex/functions + runtime: cortex/daemons output: response outputs: diff --git a/src/commands/assets/templates/skill/external-api/README.md b/src/commands/assets/templates/skill/external-api/README.md new file mode 100644 index 00000000..0ad3f688 --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/README.md @@ -0,0 +1,8 @@ +### External API Skill + +This Cortex skill is to wrap an external REST API as a skill + +Update `skill.yaml` with `HTTP Method`, `URL`, `Path` and `headers` as per the targeted external API + +#### Deployment Steps: +* Deploy this Skill `cortex skills save -y skill.yaml --project ` diff --git a/src/commands/assets/templates/skill/rest-api/skill.yaml.hbs b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs similarity index 95% rename from src/commands/assets/templates/skill/rest-api/skill.yaml.hbs rename to src/commands/assets/templates/skill/external-api/skill.yaml.hbs index 775123f8..4da00aff 100644 --- a/src/commands/assets/templates/skill/rest-api/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs @@ -32,7 +32,7 @@ inputs: routing: all: output: output - runtime: cortex/http + runtime: cortex/external-api outputs: - name: output title: response diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md new file mode 100644 index 00000000..46fd1276 --- /dev/null +++ b/src/commands/assets/templates/skill/job/README.md @@ -0,0 +1,25 @@ +### Daemon Skill + +Background job running Cortex skill + +#### Files generated: +* `skill.yaml` Skill definition +* `__main__.py` Python3 code implementing job's business logic +* `requirements.txt` Python3 libraries dependencies +* `Dockerfile` to build Docker image for this skill + +#### Next Steps: +* Add input/output parameters and properties in skill.yaml as per requirement +* Update `__main__.py` with the business logic this skill will implement. +* Add required libraries to `requirements.txt` +* Make changes to Dockerfile if required + +#### Deployment Steps +* Build the docker image and push to registry accessible to Cortex DCI + ```bash + docker build -t : -f Dockerfile . + docker tag : + docker push + ``` +* Save Cortex Action `cortex actions deploy --actionType job --docker --cmd '["python", "/app/__main__.py"]' --project ` +* Deploy this Skill `cortex skills save -y skill.yaml --project ` diff --git a/src/commands/assets/templates/skill/job/deploy.sh.hbs b/src/commands/assets/templates/skill/job/deploy.sh.hbs deleted file mode 100644 index 88d1a93d..00000000 --- a/src/commands/assets/templates/skill/job/deploy.sh.hbs +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash - -set -eux; - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -IMAGE=c12e/{{name}} -DOCKER_IMAGE_TAG=$(git describe --long --always) - -PROFILE=$(jq -r .currentProfile ~/.cortex/config) -PROJECT=$(jq -r .profiles.${PROFILE}.project ~/.cortex/config) -URL=$(jq -r .profiles.${PROFILE}.url ~/.cortex/config) - -# TODO fix docker registry and action deployment once v6 supports this. Also skill and action deployment will be one command. -DOCKERREG=`curl -s -H "Authorization: Bearer ${TOKEN}" ${URL}/v3/actions/_config | jq -r .config.dockerPrivateRegistryUrl` -echo $DOCKERREG - -DOCKER_IMAGE=${DOCKERREG}/${PROJECT}/${IMAGE}:${DOCKER_IMAGE_TAG} -cd $SCRIPT_DIR - -docker build -t ${IMAGE}:${DOCKER_IMAGE_TAG} -f ${SCRIPT_DIR}/Dockerfile . -docker tag ${IMAGE}:${DOCKER_IMAGE_TAG} ${DOCKER_IMAGE} -cortex docker login -docker push ${DOCKER_IMAGE} -cortex actions deploy ${IMAGE} --actionType job --docker ${DOCKER_IMAGE} --cmd '["python", "/app/__main__.py"]' -sleep 10 -cortex actions describe ${IMAGE} diff --git a/src/commands/assets/templates/skill/job/skill.yaml.hbs b/src/commands/assets/templates/skill/job/skill.yaml.hbs index 8b9e8e75..118c6fed 100644 --- a/src/commands/assets/templates/skill/job/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/job/skill.yaml.hbs @@ -13,7 +13,7 @@ inputs: routing: all: action : c12e/{{dashCase name}} - runtime: cortex/functions + runtime: cortex/jobs output: response outputs: diff --git a/src/commands/assets/templates/skill/rest-api/deploy.sh.hbs b/src/commands/assets/templates/skill/rest-api/deploy.sh.hbs deleted file mode 100644 index 0bef072b..00000000 --- a/src/commands/assets/templates/skill/rest-api/deploy.sh.hbs +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -set -eux; - -#TODO add cortex skill deploy as per REST API skill deploy diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index 23e42f67..da291c81 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -13,7 +13,7 @@ module.exports = plop => { type: 'list', name: 'type', message: 'Skill Type?', - choices: ['Daemon', 'Job', 'REST API'] + choices: ['Daemon', 'Job', 'External API'] } ], actions: [ From feac5cf3124a38b3bb4f247c8434337ba5bb05b0 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Mon, 23 Nov 2020 11:48:46 -0600 Subject: [PATCH 169/864] fixing lodash commands for testing and saving a connection (#261) --- src/commands/connections.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/connections.js b/src/commands/connections.js index 0d08a7a2..6c60f953 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -69,7 +69,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = _.get(connectionDefinition, 'params', []).filter(item => item.name === paramName); + const results = _.filter(_.get(connectionDefinition, 'params', []),item => item.name === paramName); if (results && results.length) { return results[0].value; } @@ -160,7 +160,7 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = _.get(connectionDefinition, 'params', []).filter(item => item.name === paramName); + const results = _.filter(_.get(connectionDefinition, 'params', []),item => item.name === paramName); if (results && results.length) { return results[0].value; } From 34e563472d918056be38269219e7270435300485 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 25 Nov 2020 13:48:52 -0600 Subject: [PATCH 170/864] Release 2.0.0-a.2 (#262) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports * bumped generator version to `0.3.24` * Bump version to 0.12.19 (#211) * Improvements to graph client and command client. (#213) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. * [CCF-12214] Specify custom HTTP User-Agent header value for all requests * 0.13.0 * [CCF-11868] Add scaleCount option to action deploy * 0.14.0 * Nein, marketplace * 1.0.0 * [CCF-12231] Fix endpoint specification for deleting a profile * 1.0.1 * [CCF-12390] Update deps to pass audit * 1.0.2 * rebase master, fixup package-lock.json * Fix api end (#224) * Remove api endpoint * clean up * Ccf 12660 develop rebase (#226) * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 clean up verbage * CCF-12660 cmd to command * CCF-12660 update to 1.0.3 * CCF-12660 remove vcpu and memory option parsing * Update dependencies and remove deprecation warnings (#223) * Update dependencies and remove deprecation warnings Joi method change remove dead code remove dead test * Version bump mocha, uuid * Added missing split dep, remove unused url dep * deprecated the `--kind` and `--code` options on the actions subcommand, no longer pass the option from the client to the command and also displays a warning when the options are still passed in (#228) * Ccf 12859 cortextoken warning (#230) * Add node version to package json to ensure we have a new enough node version, warn if use is using CORTEX_TOKEN * CCF-12859 Add message to warn users that CORTEX_TOKEN is set Require NODE 10.x or higher!! Bump package.json for vulns * Fix default behavior for cortex configure with new isDefault: true from commander * Fix missing options on cortex configure * CCF-12822 npm doesnot enforce anything, add preinstall check (#231) * CCF-12822 npm doesnot enforce anything, add preinstall check * pack-lock * Bump builder image from c12e/nodejs:dev-8.11.0 to 10.21.0 * CCF-12767: adding deprecated warnings to project and skills generate commands (#235) * bump version to 1.1.1 (#237) * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * added * FAB-285 SSO auth, temp whoAmI, project option support (#240) * FAB-285 SSO auth, temp whoAmI, project option support * FAB-285 SSO fix unit tests * FAB-285 SSO add project option to every command * FAB-285 cleanup issuance, process env and token exp (#242) * FAB-285 cleanup issuance, process env and token exp * FAB-285 handle auth error (#243) * FAB-285 handle auth error * FAB-285 better status code * Feature/fab183 projects (#241) * WIP to fix non JSON query responses on CLI * First pass at emitting markdown for cortex cli docs * Quote <> in text, replace
with
* added header * remove newline line 1 * Last tweaks generate_docs.js * WIP * WIP skills, actions, agents, snapshots working using projects. Remove request and using got Removed v2 jobs, tasks, envirnonments, instances First pass on connections, content, datasets * Added linting, fixes linting errors * Fixed unit tests, re-added user agent * update for url changes * Fixed bad url content upload * Missed adding projectId in secrets requests, renamed variables -> secrets, fixed error messages I hope * Fix cortex types list * Removed cortex datasets generate * URI typo * rebase/linting * Rebase on dev, added redirect hook to properly handle server-server auth resp * Fab 328 project commands (#244) * Add initial cli commands for projects * cleaup linting * FAB-177 rbac tools initial (#245) * FAB-177 rbac tools initial * FAB-177 rbac got, options, messaging * FAB-177 lint, copyright * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for develop… (#246) * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for developer sanity * Fix error handling saving types * Added alias for describe * Remove dead commands, sort command help (#247) * Added missing get aliases (#248) * Added missing get aliases * Rename projects create project save, fix promise error * FAB-177 get rid of whoami (#249) * FAB-177 remove list roles by user (#250) * FAB-177 remove list roles by user * FAB-177 including configure token command to get access token * set versio to 2.0.0-a.1 (#251) * FAB-177 error handling (#253) * Add ability to export snapshot as a k8s agent + skills CRs (#256) * Add ability to export snapshot as a k8s agent + skills CRs * Fix extra args bug, fix error handling get-snapshot * Fix empty --output issue * FAB-342 deny action flag and external group commands (#257) * FAB-342 deny action flag and external group commands * FAB-342 package update and lint * FAB-342 external group endpoint change * fix travis build (#258) * GQL type name changed from ProjectInput -> CreateProjectInput (#260) * using lodash whn getting connection params (#259) * fixing lodash commands for testing and saving a connection (#261) Co-authored-by: Christine Draper Co-authored-by: clee Co-authored-by: Matt Sanchez Co-authored-by: David Aldridge Co-authored-by: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Co-authored-by: ljha --- bin/cortex-agents.js | 2 +- bin/cortex-roles.js | 83 +- bin/cortex-users.js | 21 +- package-lock.json | 3216 +++++++++++++++------------------ package.json | 2 +- src/client/agents.js | 11 +- src/client/apiServerClient.js | 2 +- src/client/roles.js | 90 + src/client/users.js | 27 + src/commands/agents.js | 31 +- src/commands/connections.js | 4 +- src/commands/roles.js | 150 ++ src/commands/skills.js | 4 +- src/commands/users.js | 34 + src/compatibility.js | 2 +- 15 files changed, 1893 insertions(+), 1786 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 75edb93e..ddc9f5c6 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -213,7 +213,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') + .option('-o, --output ', 'Format output as yaml or k8s resources') .action(withCompatibilityCheck((snapshotId, options) => { try { new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 5e34847d..af05d52b 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -21,6 +21,11 @@ const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { + ExternalGroupAssignCommand, + ExternalGroupDeleteCommand, + ExternalGroupDescribeCommand, + ExternalGroupListCommand, + RoleProjectAssignCommand, RoleAssignCommand, RoleCreateCommand, RoleDeleteCommand, @@ -82,7 +87,8 @@ program.command('create ') .option('--profile [profile]', 'The profile to use') .requiredOption('--project ', 'Grant project') .requiredOption('--resource ', 'Grant resource') - .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .requiredOption('--actions ', 'Grant actions read | write | execute | *') + .option('--deny', 'Explicit deny of action(s)') .action(withCompatibilityCheck((role, options) => { try { new RoleCreateCommand(program).execute(role, options); @@ -98,8 +104,9 @@ program.command('grant ') .option('--profile [profile]', 'The profile to use') .requiredOption('--project ', 'Grant project') .requiredOption('--resource ', 'Grant resource') - .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .requiredOption('--actions ', 'Grant actions read | write | execute | *') .option('--delete', 'Remove grant from role') + .option('--deny', 'Explicit deny of action(s)') .action(withCompatibilityCheck((role, options) => { try { new RoleGrantCommand(program).execute(role, options); @@ -123,4 +130,76 @@ program.command('assign ') } })); +program.command('project ') + .description('Manage a list of role assignments on a project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--roles ', 'Roles to add/remove on project') + .option('--delete', 'Unassign roles from project') + .action(withCompatibilityCheck((project, options) => { + try { + new RoleProjectAssignCommand(program).execute(project, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('list-external') + .description('List external groups') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((options) => { + try { + new ExternalGroupListCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('describe-external ') + .alias('get') + .description('Describe external group roles and users') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--users', 'List users associated with external group') + .option('--roles', 'List roless associated with external group') + .action(withCompatibilityCheck((externalGroup, options) => { + try { + new ExternalGroupDescribeCommand(program).execute(externalGroup, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('delete-external ') + .description('Delete an external group and remove assignments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((externalGroup, options) => { + try { + new ExternalGroupDeleteCommand(program).execute(externalGroup, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('assign-external') + .description('Manage an external group assignment on a role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--role ', 'Role to add/remove assignment') + .requiredOption('--externalGroup ', 'External group to add/remove on role') + .option('--delete', 'Unassign external group from role') + .action(withCompatibilityCheck((options) => { + try { + new ExternalGroupAssignCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); program.parse(process.argv); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index a0b83e3d..301c761a 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -21,6 +21,7 @@ const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { + UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, } = require('../src/commands/users'); @@ -34,8 +35,7 @@ program.command('describe') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--user [user]', 'The user to describe, self for default') - .option('--roles', 'Include roles for user') - .option('--no-grants', 'Ignore grants for user') + .option('--roles', 'Include grant inheritance from roles') .action(withCompatibilityCheck((options) => { try { new UserDescribeCommand(program).execute(options); @@ -51,9 +51,10 @@ program.command('grant ') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .requiredOption('--project ', 'Grant project') .requiredOption('--resource ', 'Grant resource') - .requiredOption('--actions ', 'Grant actions read | write | execute | deny | *') + .requiredOption('--actions ', 'Grant actions read | write | execute | *') .option('--profile [profile]', 'The profile to use') .option('--delete', 'Remove grant from user') + .option('--deny', 'Explicit deny of action(s)') .action(withCompatibilityCheck((user, options) => { try { new UserGrantCommand(program).execute(user, options); @@ -62,5 +63,19 @@ program.command('grant ') } })); +program.command('project ') + .description('Manage a list of user assignments on a project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .requiredOption('--users ', 'Uesrs to add/remove on project') + .option('--delete', 'Unassign users from project') + .action(withCompatibilityCheck((project, options) => { + try { + new UserProjectAssignCommand(program).execute(project, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); program.parse(process.argv); diff --git a/package-lock.json b/package-lock.json index 4eb247f4..c96b89e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.1", + "version": "2.0.0-a.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -30,6 +30,15 @@ "js-tokens": "^4.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -40,31 +49,61 @@ "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "@hapi/address": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha1-1gxcDZMOd0Vv3N4lmOdzAuKVXh0=", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", "requires": { "@hapi/hoek": "^9.0.0" } }, "@hapi/formula": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha1-7a3gYZ7VjI5PFk8jPNpwIR54cSg=" + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" }, "@hapi/hoek": { "version": "9.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.1.0.tgz", - "integrity": "sha1-bJ6vx4wVKSSPj02SsHmacStgUsY=" + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" }, "@hapi/joi": { "version": "17.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha1-nMjX4sIhPR5GcIxiYBhLRHxmE1A=", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", "requires": { "@hapi/address": "^4.0.1", "@hapi/formula": "^2.0.0", @@ -75,13 +114,13 @@ }, "@hapi/pinpoint": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha1-gFtA1NvsBPwRanMIlJTgDwc96N8=" + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" }, "@hapi/topo": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha1-wZr4V3+jk6BunHe2CZWvlZvnIec=", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "requires": { "@hapi/hoek": "^9.0.0" } @@ -93,17 +132,10 @@ }, "@npmcli/move-file": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha1-3hAwcNrA9IzknPZpPCOvWcD3BGQ=", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", "requires": { "mkdirp": "^1.0.4" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" - } } }, "@panva/asn1.js": { @@ -154,9 +186,9 @@ } }, "@types/node": { - "version": "14.14.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.0.tgz", - "integrity": "sha512-BfbIHP9IapdupGhq/hc+jT5dyiBVZ2DdeC5WwJWQWDb0GijQlzUFAeIQn/2GtvZcd2HVUU7An8felIICFTC2qg==" + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, "@types/responselike": { "version": "1.0.0", @@ -178,6 +210,14 @@ "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "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==", + "requires": { + "debug": "4" + } + }, "agentkeepalive": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", @@ -209,37 +249,55 @@ "uri-js": "^4.2.2" } }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "ansi-colors": { "version": "3.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", "dev": true }, "ansi-escapes": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "anymatch": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -248,8 +306,8 @@ }, "argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { "sprintf-js": "~1.0.2" } @@ -263,21 +321,43 @@ "define-properties": "^1.1.3", "es-abstract": "^1.17.0", "is-string": "^1.0.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha1-DegrQmsDGNv9uUAInjiwQ9N/bHs=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "es-abstract": "^1.18.0-next.1" } }, "assertion-error": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, "astral-regex": { @@ -298,14 +378,14 @@ }, "binary-extensions": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, "boxen": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha1-5BG2I1fW1tNlh8isPV2XTaoHDmQ=", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", @@ -317,49 +397,6 @@ "widest-line": "^3.1.0" }, "dependencies": { - "ansi-align": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -368,114 +405,39 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", - "requires": { - "string-width": "^4.0.0" - } } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "breakword": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", + "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", + "requires": { + "wcwidth": "^1.0.1" + } + }, "browser-stdout": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "builtins": { @@ -505,21 +467,6 @@ "ssri": "^8.0.0", "tar": "^6.0.2", "unique-filename": "^1.1.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "requires": { - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } } }, "cacheable-lookup": { @@ -539,16 +486,15 @@ "lowercase-keys": "^2.0.0", "normalize-url": "^4.1.0", "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - } + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" } }, "callsites": { @@ -564,8 +510,8 @@ }, "chai": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.2.0.tgz", - "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -578,8 +524,8 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { "check-error": "^1.0.2" @@ -592,42 +538,6 @@ "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } } }, "chardet": { @@ -644,8 +554,8 @@ }, "chokidar": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha1-EsBxRmjFWAD2WeJi1JYql/r1VKY=", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", "dev": true, "requires": { "anymatch": "~3.1.1", @@ -656,61 +566,17 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.2.0" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } } }, "chownr": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "clean-stack": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-boxes": { "version": "2.2.1", @@ -735,11 +601,41 @@ } }, "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -762,19 +658,17 @@ } }, "color-convert": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colors": { "version": "1.0.3", @@ -796,8 +690,8 @@ }, "component-emitter": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "concat-map": { @@ -813,15 +707,10 @@ }, "cookiejar": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha1-3YojVTB1L5iPmghE8/xYnjERElw=", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, "cross-fetch": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", @@ -831,39 +720,47 @@ } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, + "csv": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz", + "integrity": "sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==", + "requires": { + "csv-generate": "^3.2.4", + "csv-parse": "^4.8.8", + "csv-stringify": "^5.3.6", + "stream-transform": "^2.0.1" + } + }, + "csv-generate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.3.0.tgz", + "integrity": "sha512-EXSru4QwEWKwM7wwsJbhrZC+mHEJrhQFoXlohHs80CAU8Qhlv9gaw1sjzNiC3Hr3oUx5skDmEiAlz+tnKWV0RA==" + }, + "csv-parse": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.14.1.tgz", + "integrity": "sha512-4wmcO7QbWtDAncGFaBwlWFPhEN4Akr64IbM4zvDwEOFekI8blLc04Nw7XjQjtSNy+3AUAgBgtUa9nWo5Cq89Xg==" + }, + "csv-stringify": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.5.3.tgz", + "integrity": "sha512-JKG8vIHpWPzdilp2SAmvjmAiIhD+XGKGdhZBGi8QIECgJAsFr7k5CmJIW2QkSxBBsctvmojM25s+UINzQ5NLTg==" + }, "debug": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { "ms": "^2.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - } } }, "decamelize": { @@ -888,8 +785,8 @@ }, "deep-eql": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -906,13 +803,6 @@ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - } } }, "defer-to-connect": { @@ -922,8 +812,8 @@ }, "define-properties": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { "object-keys": "^1.0.12" } @@ -935,7 +825,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "diff": { @@ -954,9 +844,9 @@ } }, "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, "emitter-component": { "version": "1.1.1", @@ -964,9 +854,9 @@ "integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=" }, "emoji-regex": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "encoding": { "version": "0.1.13", @@ -975,23 +865,12 @@ "optional": true, "requires": { "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } } }, "end-of-stream": { - "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" } @@ -1011,15 +890,16 @@ } }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha1-pN5hsvZpifx0IWdsHLl4dXOs5Uw=", + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", "is-regex": "^1.1.1", "object-inspect": "^1.8.0", "object-keys": "^1.1.1", @@ -1030,8 +910,8 @@ }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -1045,28 +925,15 @@ "dev": true }, "escodegen": { - "version": "1.11.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-1.11.1.tgz", - "integrity": "sha1-xIX/jWtM24nif0qFbpHxGEAcpRA=", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "optional": true - } } }, "eslint": { @@ -1113,6 +980,21 @@ "text-table": "^0.2.0" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -1124,76 +1006,76 @@ "supports-color": "^5.3.0" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==" - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "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": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, - "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, "requires": { - "is-promise": "^2.1.0" + "minimist": "^1.2.5" } }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==" - } + "shebang-regex": "^1.0.0" } }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -1203,16 +1085,23 @@ "ansi-regex": "^3.0.0" } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -1372,8 +1261,8 @@ }, "esprima": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { "version": "1.3.1", @@ -1410,19 +1299,19 @@ } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "esutils": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "event-stream": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "requires": { "duplexer": "^0.1.1", "from": "^0.1.7", @@ -1431,28 +1320,12 @@ "split": "^1.0.1", "stream-combiner": "^0.2.2", "through": "^2.3.8" - }, - "dependencies": { - "map-stream": { - "version": "0.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" - }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - } } }, "execa": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", - "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "requires": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", @@ -1463,57 +1336,6 @@ "onetime": "^5.1.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } } }, "external-editor": { @@ -1525,6 +1347,17 @@ "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } } }, "extract-files": { @@ -1551,8 +1384,8 @@ }, "fast-safe-stringify": { "version": "2.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha1-EkqohYmSYfaK7bQqfAgN6dpgh0M=", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", "dev": true }, "figures": { @@ -1573,35 +1406,36 @@ "flat-cache": "^2.0.1" } }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "find-package-json": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flat": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-4.1.1.tgz", - "integrity": "sha1-o5IFnMOCiB/5hkL12k3eCpWfMJs=", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", "dev": true, "requires": { "is-buffer": "~2.0.3" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=", - "dev": true - } } }, "flat-cache": { @@ -1643,9 +1477,9 @@ } }, "formidable": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha1-cPt8oCkO5v+WEJBBX0s989IIJlk=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", + "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==", "dev": true }, "from": { @@ -1655,8 +1489,8 @@ }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { "minipass": "^3.0.0" } @@ -1668,15 +1502,15 @@ }, "fsevents": { "version": "2.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -1684,12 +1518,27 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -1700,8 +1549,8 @@ }, "glob": { "version": "7.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.6.tgz", - "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1711,6 +1560,29 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "requires": { + "ini": "^1.3.5" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, "got": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/got/-/got-11.7.0.tgz", @@ -1730,15 +1602,15 @@ } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "grapheme-splitter": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha1-nPOmZcYkdHmJaDSvNc8du0QAdn4=" + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, "graphql": { "version": "15.4.0", @@ -1757,33 +1629,32 @@ }, "growl": { "version": "1.10.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", - "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "has": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { "function-bind": "^1.1.1" } }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-symbols": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=" + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "he": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hosted-git-info": { @@ -1796,8 +1667,18 @@ }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "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==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } }, "http2-wrapper": { "version": "1.0.0-beta.5.2", @@ -1808,6 +1689,15 @@ "resolve-alpn": "^1.0.0" } }, + "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==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -1822,18 +1712,24 @@ } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "dev": true, + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "optional": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1847,13 +1743,13 @@ }, "indent-string": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "infer-owner": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "inflight": { "version": "1.0.6", @@ -1865,14 +1761,14 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inquirer": { "version": "6.5.2", @@ -1896,11 +1792,20 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -1912,13 +1817,55 @@ "supports-color": "^5.3.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "has-flag": "^3.0.0" } } } @@ -1936,22 +1883,28 @@ }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + }, "is-callable": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha1-x8ZxXNItTdtI0+GZcCI6zquwgNk=" + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" }, "is-core-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", - "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" @@ -1959,8 +1912,8 @@ }, "is-date-object": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=" + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, "is-extglob": { "version": "2.1.1", @@ -1971,13 +1924,12 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -1985,26 +1937,11 @@ }, "is-installed-globally": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.3.1.tgz", - "integrity": "sha1-Z5r++Bk0enJYRhf9GUl/AQuO018=", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", + "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", "requires": { "global-dirs": "^2.0.1", "is-path-inside": "^3.0.1" - }, - "dependencies": { - "global-dirs": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha1-rN87tmhbzVXLNeigUiZlaelGkgE=", - "requires": { - "ini": "^1.3.5" - } - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha1-9SIPyCo+IzdXKR3dycWHfyofMBc=" - } } }, "is-lambda": { @@ -2014,18 +1951,24 @@ }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, "is-regex": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "requires": { "has-symbols": "^1.0.1" } @@ -2043,8 +1986,8 @@ }, "is-symbol": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "requires": { "has-symbols": "^1.0.1" } @@ -2052,7 +1995,8 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "isexe": { "version": "2.0.0", @@ -2080,8 +2024,8 @@ }, "js-yaml": { "version": "3.13.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2117,8 +2061,8 @@ }, "jsonpath": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonpath/-/jsonpath-1.0.2.tgz", - "integrity": "sha1-5qrmgdA+mne0ZR1dlurF/GOx/RM=", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", + "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", "requires": { "esprima": "1.2.2", "static-eval": "2.0.2", @@ -2127,7 +2071,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } @@ -2147,8 +2091,8 @@ }, "kleur": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=" + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" }, "levn": { "version": "0.3.0", @@ -2169,24 +2113,14 @@ "parse-json": "^2.2.0", "pify": "^2.0.0", "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -2200,23 +2134,84 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, "requires": { - "yallist": "^4.0.0" - } - }, - "macos-release": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", - "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==" + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "macos-release": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", + "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==" }, "make-fetch-happen": { "version": "8.0.10", @@ -2238,61 +2233,13 @@ "promise-retry": "^1.1.1", "socks-proxy-agent": "^5.0.0", "ssri": "^8.0.0" - }, - "dependencies": { - "agent-base": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", - "integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==", - "requires": { - "debug": "4" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "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==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha1-kWBcJdkWUvRmHqacz0XxszHKIbo=" - }, - "socks": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.4.4.tgz", - "integrity": "sha512-7LmHN4IHj1Vpd/k8D872VGCHJ6yIVyeFkfIBExRmGPYQ/kdUkpdg9eKh9oOzYYYKQhuxavayJHTnmBG+EzluUA==", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha1-fA82Tnsc9KekN+cSU77XLpAEvmA=", - "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" - } - } } }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -2304,24 +2251,29 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + }, "mime-db": { - "version": "1.40.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { - "version": "2.1.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "requires": { - "mime-db": "1.40.0" + "mime-db": "1.44.0" } }, "mimic-fn": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { "version": "1.0.1", @@ -2330,8 +2282,8 @@ }, "minimatch": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" } @@ -2352,8 +2304,8 @@ }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { "minipass": "^3.0.0" } @@ -2371,16 +2323,16 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { "minipass": "^3.0.0" } }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" @@ -2396,8 +2348,8 @@ }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "requires": { "minipass": "^3.0.0" } @@ -2412,23 +2364,19 @@ } }, "mixme": { - "version": "0.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixme/-/mixme-0.3.5.tgz", - "integrity": "sha1-MEZSza8ko98EhyBeYaxhYsaQbd0=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.4.0.tgz", + "integrity": "sha512-B4Sm1CDC5+ov5AYxSkyeT5HLtiDgNOLKwFlq34wr8E2O3zRdTvQiLzo599Jt9cir6VJrSenOlgvdooVYCQJIYw==" }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mocha": { "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-7.1.1.tgz", - "integrity": "sha1-ifuzDQlCmEWxu4k6gwv1dxBJpEE=", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz", + "integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -2457,44 +2405,19 @@ "yargs-unparser": "1.6.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "color-convert": "^1.9.0" } }, "cliui": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { "string-width": "^3.1.0", @@ -2502,31 +2425,43 @@ "wrap-ansi": "^5.1.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, "debug": { "version": "3.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", - "dev": true + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } }, "glob": { "version": "7.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.3.tgz", - "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -2537,13 +2472,20 @@ "path-is-absolute": "^1.0.0" } }, - "log-symbols": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "locate-path": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q=", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "chalk": "^2.4.2" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "mkdirp": { @@ -2557,14 +2499,14 @@ }, "ms": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "object.assign": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { "define-properties": "^1.1.2", @@ -2573,16 +2515,25 @@ "object-keys": "^1.0.11" } }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -2590,28 +2541,28 @@ "strip-ansi": "^5.1.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "has-flag": "^3.0.0" } }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha1-ds/nQs8fQbubHCmtAwaMBbTA5Ao=", + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "isexe": "^2.0.0" } }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -2621,8 +2572,8 @@ }, "yargs": { "version": "13.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { "cliui": "^5.0.0", @@ -2639,8 +2590,8 @@ }, "yargs-parser": { "version": "13.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -2673,8 +2624,8 @@ }, "nice-try": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "nock": { @@ -2691,8 +2642,8 @@ }, "node-environment-flags": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha1-owrBNiH299Z0JgpU3t4EjDmCwIg=", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", "dev": true, "requires": { "object.getownpropertydescriptors": "^2.0.3", @@ -2701,8 +2652,8 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } @@ -2740,8 +2691,8 @@ }, "normalize-path": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "normalize-url": { @@ -2780,47 +2731,51 @@ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { "path-key": "^3.0.0" - }, - "dependencies": { - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - } } }, "object-inspect": { "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA=" + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" }, "object-keys": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.1.tgz", - "integrity": "sha1-MDhnpmbN1Bk27N7fsfjz4ypHjN0=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.0", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", + "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "has": "^1.0.3" }, "dependencies": { "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha1-bjoKS9pxflAjqzuOkL7DYQjSLGg=", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", "is-regex": "^1.1.1", "object-inspect": "^1.8.0", "object-keys": "^1.1.1", @@ -2831,25 +2786,35 @@ } } }, - "object.entries": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", - "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "has": "^1.0.3" - } - }, "object.getownpropertydescriptors": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "object.values": { @@ -2862,6 +2827,27 @@ "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "once": { @@ -2873,25 +2859,24 @@ } }, "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "^2.1.0" } }, "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "requires": { "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", + "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "word-wrap": "~1.2.3" } }, "os-name": { @@ -2915,34 +2900,33 @@ "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" }, "p-limit": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-map": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { "aggregate-error": "^3.0.0" } }, "p-try": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "parent-module": { "version": "1.0.1", @@ -2963,10 +2947,9 @@ } }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "path-is-absolute": { "version": "1.0.1", @@ -2980,10 +2963,9 @@ "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.6", @@ -2991,6 +2973,15 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, "pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", @@ -3007,8 +2998,14 @@ }, "picomatch": { "version": "2.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "pkg-dir": { @@ -3062,6 +3059,12 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, @@ -3070,15 +3073,10 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" - }, "progress": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "promise-inflight": { "version": "1.0.1", @@ -3102,8 +3100,8 @@ }, "pump": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -3115,6 +3113,12 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "dev": true + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -3129,23 +3133,6 @@ "load-json-file": "^2.0.0", "normalize-package-data": "^2.3.2", "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } } }, "read-pkg-up": { @@ -3200,27 +3187,29 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readdirp": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha1-wwwzNSsSyW37S4lUIaSf1alZODk=", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", "dev": true, "requires": { "picomatch": "^2.0.4" @@ -3237,13 +3226,18 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, "resolve": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", - "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "dev": true, "requires": { - "is-core-module": "^2.0.0", + "is-core-module": "^2.1.0", "path-parse": "^1.0.6" } }, @@ -3274,6 +3268,23 @@ "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + } } }, "retry": { @@ -3283,8 +3294,8 @@ }, "rewire": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", "dev": true, "requires": { "eslint": "^6.8.0" @@ -3319,6 +3330,15 @@ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -3346,20 +3366,41 @@ "dev": true }, "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "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" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "eslint": { "version": "6.8.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", @@ -3435,15 +3476,6 @@ "escape-string-regexp": "^1.0.5" } }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -3454,15 +3486,9 @@ } }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "inquirer": { @@ -3505,6 +3531,27 @@ "supports-color": "^7.1.0" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -3525,17 +3572,14 @@ } } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "mute-stream": { "version": "0.0.8", @@ -3543,28 +3587,11 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "restore-cursor": { "version": "3.1.0", @@ -3576,71 +3603,50 @@ "signal-exit": "^3.0.2" } }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } + "shebang-regex": "^1.0.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } - } + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -3653,37 +3659,34 @@ } }, "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true }, "rxjs": { - "version": "6.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.5.1.tgz", - "integrity": "sha1-96AFqThjYZIbhSTzj1TL+A5dCPQ=", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { "version": "7.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.1.3.tgz", - "integrity": "sha1-5DRc5zBxxT8zZEXPwZ77HDEd8qY=" + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" }, "set-blocking": { "version": "2.0.0", @@ -3691,24 +3694,22 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { "version": "2.1.0", @@ -3719,8 +3720,92 @@ "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + }, + "smartwrap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.1.tgz", + "integrity": "sha512-BoOIGADm5Q9OXGVmT899L1fx6dvOYciVUPB9yFlE1XkxRs3/6sqT/HYZoXOxNb4jj2zshtH+jhmGa6wGkNDPgA==", + "requires": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "socks": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.0.tgz", + "integrity": "sha512-00OqQHp5SCbwm9ecOMJj9aQtMSjwi1uVuGQoxnpKCS50VKZcOZ8z11CTKypmR8sEy7nZimy/qXY7rYJYbRlXmA==", + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -3755,8 +3840,8 @@ }, "split": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", - "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "requires": { "through": "2" } @@ -3768,16 +3853,16 @@ }, "ssri": { "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha1-ecp04h+M6u3fy0uQFDxFi42YiAg=", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "requires": { "minipass": "^3.1.1" } }, "static-eval": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha1-LRdZMGsb76aIk4RUxUa3hx+AakI=", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", "requires": { "escodegen": "^1.8.1" } @@ -3790,49 +3875,90 @@ "emitter-component": "^1.1.1" } }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "requires": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "stream-transform": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.3.tgz", + "integrity": "sha512-HgNXs2rNG9pKC2gK4owtMPMKfto81S/TWZw0Ybsx6Wp23klnN0YctnMXYe0PmzzhB/zIBEB+0Urf+PMorE4d/A==", + "requires": { + "mixme": "^0.4.0" + } + }, "string-width": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "es-abstract": "^1.18.0-next.1" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "es-abstract": "^1.18.0-next.1" } }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } }, "strip-bom": { @@ -3854,8 +3980,8 @@ }, "superagent": { "version": "5.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/superagent/-/superagent-5.2.2.tgz", - "integrity": "sha1-b/cmxWQnlbLCcAnpJofI5pprsH0=", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", + "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", "dev": true, "requires": { "component-emitter": "^1.3.0", @@ -3871,86 +3997,20 @@ "semver": "^6.3.0" }, "dependencies": { - "combined-stream": { - "version": "1.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "debug": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.2.0.tgz", - "integrity": "sha1-fxUPk5IOlMWPVXTC/QGjEQ7/5/E=", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - } - } - }, - "form-data": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha1-MbfjnIXxNVtxOe4MZHzw3n+DxoI=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "mime": { - "version": "2.4.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime/-/mime-2.4.6.tgz", - "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "qs": { - "version": "6.9.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/qs/-/qs-6.9.4.tgz", - "integrity": "sha1-kJCykNH5FyjTwi5UhDykSupatoc=", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, "table": { @@ -3965,18 +4025,6 @@ "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -3987,15 +4035,6 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } } } }, @@ -4010,19 +4049,12 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } } }, "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, "text-table": { "version": "0.2.0", @@ -4037,31 +4069,40 @@ }, "through2": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through2/-/through2-3.0.1.tgz", - "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "requires": { "readable-stream": "2 || 3" } }, "tmp": { "version": "0.0.33", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, "tslib": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tty-table": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tty-table/-/tty-table-4.1.1.tgz", - "integrity": "sha1-Sr3/iZt7f0Ia91b9o1LGt4EgUk8=", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.1.tgz", + "integrity": "sha512-iCxPm5DCPgqs3ELrUDEe+JsOcQOSPZSe+dwM5oIQZk5OfyzQWPVQwkHjyFp4aoDHC0HTM47jd0TkQZUBpxnN0Q==", "requires": { "chalk": "^3.0.0", "csv": "^5.3.1", @@ -4072,26 +4113,10 @@ "yargs": "^15.1.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "breakword": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha1-/UIKQX9VAWc2tbYVFhyuHI+BmBA=", - "requires": { - "wcwidth": "^1.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "chalk": { "version": "3.0.0", @@ -4102,375 +4127,12 @@ "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "csv": { - "version": "5.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv/-/csv-5.3.2.tgz", - "integrity": "sha1-ULNE4l37uMYmhKG87BjCJGiyFh4=", - "requires": { - "csv-generate": "^3.2.4", - "csv-parse": "^4.8.8", - "csv-stringify": "^5.3.6", - "stream-transform": "^2.0.1" - } - }, - "csv-generate": { - "version": "3.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-generate/-/csv-generate-3.2.4.tgz", - "integrity": "sha1-RA2rkXcznuBnbJ5cFvUOKzRjwBk=" - }, - "csv-parse": { - "version": "4.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-parse/-/csv-parse-4.12.0.tgz", - "integrity": "sha1-/ULWKRu6rdUdMAn2ytuz5TtM4CY=" - }, - "csv-stringify": { - "version": "5.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/csv-stringify/-/csv-stringify-5.5.1.tgz", - "integrity": "sha1-9CzdN5sPfxQpM6EfZ0sakevQ/NA=" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" - }, - "smartwrap": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smartwrap/-/smartwrap-2.0.1.tgz", - "integrity": "sha1-9OL7NkQCIH5OrF7OwNo4ZNYhtCM=", - "requires": { - "array.prototype.flat": "^1.2.3", - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "yargs": { - "version": "15.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - } - } - }, - "stream-transform": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-transform/-/stream-transform-2.0.2.tgz", - "integrity": "sha1-PLehTIAus5vEDKqrBTXlhPOmXK8=", - "requires": { - "mixme": "^0.3.1" - } - }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { "ansi-regex": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" - } - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "^1.9.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "dependencies": { - "locate-path": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" - } - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - } - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", - "requires": { - "ansi-styles": "^3.2.0" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" } } } @@ -4485,15 +4147,14 @@ }, "type-detect": { "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "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 + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, "underscore": { "version": "1.7.0", @@ -4502,16 +4163,16 @@ }, "unique-filename": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { "imurmurhash": "^0.1.4" } @@ -4531,9 +4192,9 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, "validate-npm-package-license": { @@ -4563,10 +4224,9 @@ } }, "which": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dev": true, + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "requires": { "isexe": "^2.0.0" } @@ -4578,11 +4238,46 @@ }, "wide-align": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" } }, "windows-release": { @@ -4596,18 +4291,12 @@ "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4616,49 +4305,13 @@ "dependencies": { "ansi-regex": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "strip-ansi": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { "ansi-regex": "^5.0.0" } @@ -4677,22 +4330,60 @@ "dev": true, "requires": { "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } } }, "y18n": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, "yargs-unparser": { "version": "1.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha1-7yXCx2n/a9CeSw+dfGBfsnhG6p8=", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, "requires": { "flat": "^4.1.0", @@ -4700,22 +4391,19 @@ "yargs": "^13.3.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } }, "cliui": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { "string-width": "^3.1.0", @@ -4723,28 +4411,59 @@ "wrap-ansi": "^5.1.0" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "dev": true + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -4752,19 +4471,10 @@ "strip-ansi": "^5.1.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -4774,8 +4484,8 @@ }, "yargs": { "version": "13.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { "cliui": "^5.0.0", @@ -4792,8 +4502,8 @@ }, "yargs-parser": { "version": "13.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/package.json b/package.json index 87d00d7d..0ca1aa60 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.1", + "version": "2.0.0-a.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/agents.js b/src/client/agents.js index 3d1e1788..835a30ef 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -74,16 +74,15 @@ module.exports = class Agents { .catch(err => constructError(err)); } - describeAgentSnapshot(projectId, token, snapshotId, environmentName) { - let endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; - debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}&environmentName=${environmentName}`; + describeAgentSnapshot(projectId, token, snapshotId, output) { + const endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; + debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) + searchParams: { output, deps: true }, + }).text() .catch(err => constructError(err)); } diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 90caf410..a01ad206 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -55,7 +55,7 @@ module.exports = class ApiServerClient { async createProject(token, projDef) { try { const fetched = await this._client(token) - .request(gql`mutation NewProject($input: ProjectInput!) { createProject(input: $input){name}}`, { input: projDef }); + .request(gql`mutation NewProject($input: CreateProjectInput!) { createProject(input: $input){name}}`, { input: projDef }); return _.get(fetched, 'createProject', {}); } catch (err) { throw err; diff --git a/src/client/roles.js b/src/client/roles.js index d85550fa..a422a505 100644 --- a/src/client/roles.js +++ b/src/client/roles.js @@ -30,6 +30,9 @@ module.exports = class Roles { } this.rolesUsersEndpoint = `${this.rolesEndpoint}/users`; this.rolesGrantsEndpoint = `${this.rolesEndpoint}/grants`; + this.rolesProjectsEndpoint = `${this.rolesEndpoint}/projects`; + + this.rolesMappingsEndpoint = `${this.rolesEndpoint}/mappings`; if (flags.length > 0) { this.flags = `${flags.reduce((flagString, flag) => { @@ -148,4 +151,91 @@ module.exports = class Roles { .then(res => ({ success: true, result: res })) .catch(err => constructError(err)); } + + addRolesToProject(token, project, roles) { + const endpoint = `${this.rolesProjectsEndpoint}`; + debug('addRolesToProject => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { project, roles }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeRolesFromProject(token, project, roles) { + const endpoint = `${this.rolesProjectsEndpoint}`; + debug('removeRolesFromProject => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { project, roles }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + listExternalGroups(token) { + const endpoint = this.rolesMappingsEndpoint; + debug('listExternalGroups => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + describeExternalGroup(token, externalGroup) { + const endpoint = `${this.rolesMappingsEndpoint}/${externalGroup}${this.flags}`; + debug('describeExternalGroup => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + deleteExternalGroup(token, externalGroup) { + const endpoint = `${this.rolesMappingsEndpoint}/${externalGroup}`; + debug('deleteExternalGroup => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + addExternalGroupToRole(token, externalGroup) { + const endpoint = `${this.rolesMappingsEndpoint}`; + debug('addExternalGroupToRole => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { externalGroup }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeExternalGroupFromRole(token, externalGroup) { + const endpoint = `${this.rolesMappingsEndpoint}/${externalGroup}`; + debug('removeExternalGroupFromRole => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } }; diff --git a/src/client/users.js b/src/client/users.js index 73302ab1..9683441d 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -29,6 +29,7 @@ module.exports = class Users { } else { this.usersEndpoint = `${this.endpoint}/usergrants`; } + this.usersProjectsEndpoint = `${this.usersEndpoint}/projects`; if (flags.length > 0) { this.flags = `${flags.reduce((flagString, flag) => { if (flagString) { @@ -78,4 +79,30 @@ module.exports = class Users { .then(res => ({ success: true, result: res })) .catch(err => constructError(err)); } + + addUsersToProject(token, project, users) { + const endpoint = `${this.usersProjectsEndpoint}`; + debug('addUsersToProject => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { project, users }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + removeUsersFromProject(token, project, users) { + const endpoint = `${this.usersProjectsEndpoint}`; + debug('removeUsersFromProject => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: { project, users }, + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } }; diff --git a/src/commands/agents.js b/src/commands/agents.js index 5d69176a..da268a95 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,7 +21,7 @@ const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -229,7 +229,7 @@ module.exports.ListActivationsCommand = class { } }; -module.exports.ListServicesCommand = class ListServicesCommand { +module.exports.ListServicesCommand = class ListServicesCommand { constructor(program) { this.program = program; } @@ -237,7 +237,7 @@ module.exports.ListServicesCommand = class ListServicesCommand { execute(agentName, options) { const profile = loadProfile(options.profile); debug('%s.listServices(%s)', profile.name, agentName); - + const catalog = new Catalog(profile.url); catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { if (response.success) { @@ -304,22 +304,25 @@ module.exports.DescribeAgentSnapshotCommand = class { this.program = program; } - execute(snapshotId, options) { + async execute(snapshotId, options) { const profile = loadProfile(options.profile); - const envName = options.environmentName; debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); const agents = new Agents(profile.url); - agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, envName).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`, options); + const output = _.get(options, 'output', 'json'); + try { + const response = await agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, output); + if (response.success === false) { + return printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`); } - }).catch((err) => { - printError(`Failed to describe agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); - }); + if (output.toLowerCase() === 'json') { + const result = filterObject(JSON.parse(response), options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + return printSuccess(response); + } catch (err) { + return printError(`Failed to describe agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); + } } }; diff --git a/src/commands/connections.js b/src/commands/connections.js index d15fb63f..6c60f953 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -69,7 +69,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = connectionDefinition.params.filter(item => item.name === paramName); + const results = _.filter(_.get(connectionDefinition, 'params', []),item => item.name === paramName); if (results && results.length) { return results[0].value; } @@ -160,7 +160,7 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = _.get(connectionDefinition, 'params', []).filter(item => item.name === paramName); + const results = _.filter(_.get(connectionDefinition, 'params', []),item => item.name === paramName); if (results && results.length) { return results[0].value; } diff --git a/src/commands/roles.js b/src/commands/roles.js index 5e1e3e3b..c38daae2 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -25,6 +25,7 @@ function createGrant(options) { project: options.project, resource: options.resource, actions: options.actions, + effect: options.deny ? 'deny' : 'allow', }; } @@ -204,3 +205,152 @@ module.exports.RoleListCommand = class { }); } }; + +module.exports.RoleProjectAssignCommand = class { + constructor(program) { + this.program = program; + } + + execute(project, options) { + const profile = loadProfile(options.profile); + debug('%s.assignRoleProject=%s', profile.name, project); + + const client = new Roles(profile.url, null); + const call = (deleteFlag, token, assignProject, roles) => { + if (deleteFlag) { + return client.removeRolesFromProject(token, assignProject, roles); + } + return client.addRolesToProject(token, assignProject, roles); + }; + + call(options.delete, profile.token, project, options.roles).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} roles from project : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} roles from project : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ExternalGroupListCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listExternalGroup=%s', profile.name); + + const client = new Roles(profile.url, null); + client.listExternalGroups(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to list external groups : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list external groups : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ExternalGroupDescribeCommand = class { + constructor(program) { + this.program = program; + } + + execute(externalGroup, options) { + const profile = loadProfile(options.profile); + debug('%s.describeExternalGroup=%s', profile.name, externalGroup); + + const flags = []; + + if (options.roles) { + flags.push('roles'); + } + if (options.users) { + flags.push('users'); + } + const client = new Roles(profile.url, null, flags); + client.describeExternalGroup(profile.token, externalGroup).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe external group : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe external group : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ExternalGroupDeleteCommand = class { + constructor(program) { + this.program = program; + } + + execute(externalGroup, options) { + const profile = loadProfile(options.profile); + debug('%s.deleteExternalGroup=%s', profile.name, externalGroup); + + const client = new Roles(profile.url, null); + + client.deleteExternalGroup(profile.token, externalGroup).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to delete external group : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete external group : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ExternalGroupAssignCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.externalGroupAssign=%s', profile.name, options.role); + + const client = new Roles(profile.url, options.role); + const call = (deleteFlag, token, externalGroup) => { + if (deleteFlag) { + return client.removeExternalGroupFromRole(token, externalGroup); + } + return client.addExternalGroupToRole(token, externalGroup); + }; + + call(options.delete, profile.token, options.externalGroup).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} external group from role : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'unassign' : 'assign'; + printError( + `Failed to ${func} external group from role : ${err.status} ${err.message}`, options, + ); + }); + } +}; diff --git a/src/commands/skills.js b/src/commands/skills.js index 1631e385..d5823a0b 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -19,11 +19,11 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); function _formatpath(p) { - let cnt = 0; let + let cnt = 0; let res = ''; const len = p.length; p.forEach((s) => { diff --git a/src/commands/users.js b/src/commands/users.js index f9a1e018..cb50a3fc 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -25,6 +25,7 @@ function createGrant(options) { project: options.project, resource: options.resource, actions: options.actions, + effect: options.deny ? 'deny' : 'allow', }; } @@ -92,3 +93,36 @@ module.exports.UserDescribeCommand = class { }); } }; + +module.exports.UserProjectAssignCommand = class { + constructor(program) { + this.program = program; + } + + execute(project, options) { + const profile = loadProfile(options.profile); + debug('%s.assignUserProject=%s', profile.name, project); + + const client = new Users(profile.url, null); + const call = (deleteFlag, token, assignProject, users) => { + if (deleteFlag) { + return client.removeUsersFromProject(token, assignProject, users); + } + return client.addUsersToProject(token, assignProject, users); + }; + + call(options.delete, profile.token, project, options.users).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} users from project : ${response.message}`, options); + } + }) + .catch((err) => { + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} users from project : ${err.status} ${err.message}`, options); + }); + } +}; diff --git a/src/compatibility.js b/src/compatibility.js index 8a1905af..c47887d3 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -123,7 +123,7 @@ async function getCompatibility(profile) { function withCompatibilityCheck(fn) { return (...args) => { - const command = last(args); + const command = args.find(a => a !== undefined && typeof a.opts === 'function'); const options = command.opts(); if (options.compat && !_.toLower(process.env.CORTEX_NO_COMPAT) === 'true') { const { profile: profileName } = options; From 9162c36cfb163c9fdde79dbea83803023c8bf251 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 25 Nov 2020 14:13:39 -0600 Subject: [PATCH 171/864] Linting, node version bump (#264) --- c12e-ci.yml | 2 +- src/commands/connections.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/c12e-ci.yml b/c12e-ci.yml index bb6b2c40..ada4e3ee 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: c12e/nodejs:dev-10.21.0 + image: c12e/nodejs:dev-12.18.3 command: "./build.sh CI" diff --git a/src/commands/connections.js b/src/commands/connections.js index 6c60f953..aa4b8c19 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -69,7 +69,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = _.filter(_.get(connectionDefinition, 'params', []),item => item.name === paramName); + const results = _.filter(_.get(connectionDefinition, 'params', []), item => item.name === paramName); if (results && results.length) { return results[0].value; } @@ -160,7 +160,7 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = _.filter(_.get(connectionDefinition, 'params', []),item => item.name === paramName); + const results = _.filter(_.get(connectionDefinition, 'params', []), item => item.name === paramName); if (results && results.length) { return results[0].value; } From 05b25335476890d893b198f11100178699cc9a6e Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 25 Nov 2020 15:11:33 -0600 Subject: [PATCH 172/864] merge master (#265) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports * bumped generator version to `0.3.24` * Bump version to 0.12.19 (#211) * Improvements to graph client and command client. (#213) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. * [CCF-12214] Specify custom HTTP User-Agent header value for all requests * 0.13.0 * [CCF-11868] Add scaleCount option to action deploy * 0.14.0 * Nein, marketplace * 1.0.0 * [CCF-12231] Fix endpoint specification for deleting a profile * 1.0.1 * [CCF-12390] Update deps to pass audit * 1.0.2 * rebase master, fixup package-lock.json * Fix api end (#224) * Remove api endpoint * clean up * Ccf 12660 develop rebase (#226) * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 clean up verbage * CCF-12660 cmd to command * CCF-12660 update to 1.0.3 * CCF-12660 remove vcpu and memory option parsing * Update dependencies and remove deprecation warnings (#223) * Update dependencies and remove deprecation warnings Joi method change remove dead code remove dead test * Version bump mocha, uuid * Added missing split dep, remove unused url dep * deprecated the `--kind` and `--code` options on the actions subcommand, no longer pass the option from the client to the command and also displays a warning when the options are still passed in (#228) * Ccf 12859 cortextoken warning (#230) * Add node version to package json to ensure we have a new enough node version, warn if use is using CORTEX_TOKEN * CCF-12859 Add message to warn users that CORTEX_TOKEN is set Require NODE 10.x or higher!! Bump package.json for vulns * Fix default behavior for cortex configure with new isDefault: true from commander * Fix missing options on cortex configure * CCF-12822 npm doesnot enforce anything, add preinstall check (#231) * CCF-12822 npm doesnot enforce anything, add preinstall check * pack-lock * Bump builder image from c12e/nodejs:dev-8.11.0 to 10.21.0 * CCF-12767: adding deprecated warnings to project and skills generate commands (#235) * bump version to 1.1.1 (#237) * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * added * FAB-285 SSO auth, temp whoAmI, project option support (#240) * FAB-285 SSO auth, temp whoAmI, project option support * FAB-285 SSO fix unit tests * FAB-285 SSO add project option to every command * FAB-285 cleanup issuance, process env and token exp (#242) * FAB-285 cleanup issuance, process env and token exp * FAB-285 handle auth error (#243) * FAB-285 handle auth error * FAB-285 better status code * Feature/fab183 projects (#241) * WIP to fix non JSON query responses on CLI * First pass at emitting markdown for cortex cli docs * Quote <> in text, replace
with
* added header * remove newline line 1 * Last tweaks generate_docs.js * WIP * WIP skills, actions, agents, snapshots working using projects. Remove request and using got Removed v2 jobs, tasks, envirnonments, instances First pass on connections, content, datasets * Added linting, fixes linting errors * Fixed unit tests, re-added user agent * update for url changes * Fixed bad url content upload * Missed adding projectId in secrets requests, renamed variables -> secrets, fixed error messages I hope * Fix cortex types list * Removed cortex datasets generate * URI typo * rebase/linting * Rebase on dev, added redirect hook to properly handle server-server auth resp * Fab 328 project commands (#244) * Add initial cli commands for projects * cleaup linting * FAB-177 rbac tools initial (#245) * FAB-177 rbac tools initial * FAB-177 rbac got, options, messaging * FAB-177 lint, copyright * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for develop… (#246) * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for developer sanity * Fix error handling saving types * Added alias for describe * Remove dead commands, sort command help (#247) * Added missing get aliases (#248) * Added missing get aliases * Rename projects create project save, fix promise error * FAB-177 get rid of whoami (#249) * FAB-177 remove list roles by user (#250) * FAB-177 remove list roles by user * FAB-177 including configure token command to get access token * set versio to 2.0.0-a.1 (#251) * FAB-177 error handling (#253) * Add ability to export snapshot as a k8s agent + skills CRs (#256) * Add ability to export snapshot as a k8s agent + skills CRs * Fix extra args bug, fix error handling get-snapshot * Fix empty --output issue * FAB-342 deny action flag and external group commands (#257) * FAB-342 deny action flag and external group commands * FAB-342 package update and lint * FAB-342 external group endpoint change * fix travis build (#258) * GQL type name changed from ProjectInput -> CreateProjectInput (#260) * using lodash whn getting connection params (#259) * fixing lodash commands for testing and saving a connection (#261) * Linting, node version bump (#264) Co-authored-by: Christine Draper Co-authored-by: clee Co-authored-by: Matt Sanchez Co-authored-by: David Aldridge Co-authored-by: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Co-authored-by: ljha --- c12e-ci.yml | 2 +- src/commands/connections.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/c12e-ci.yml b/c12e-ci.yml index bb6b2c40..ada4e3ee 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: c12e/nodejs:dev-10.21.0 + image: c12e/nodejs:dev-12.18.3 command: "./build.sh CI" diff --git a/src/commands/connections.js b/src/commands/connections.js index 6c60f953..aa4b8c19 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -69,7 +69,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = _.filter(_.get(connectionDefinition, 'params', []),item => item.name === paramName); + const results = _.filter(_.get(connectionDefinition, 'params', []), item => item.name === paramName); if (results && results.length) { return results[0].value; } @@ -160,7 +160,7 @@ module.exports.TestConnectionCommand = class TestConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = _.filter(_.get(connectionDefinition, 'params', []),item => item.name === paramName); + const results = _.filter(_.get(connectionDefinition, 'params', []), item => item.name === paramName); if (results && results.length) { return results[0].value; } From 49570b062877ecc737b90f7844bb07138cebe5d9 Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Tue, 1 Dec 2020 12:31:47 +0530 Subject: [PATCH 173/864] Update cortex-users.js --- bin/cortex-users.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 301c761a..d2c3d2b3 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -68,7 +68,7 @@ program.command('project ') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .requiredOption('--users ', 'Uesrs to add/remove on project') + .requiredOption('--users ', 'Users to add/remove on project') .option('--delete', 'Unassign users from project') .action(withCompatibilityCheck((project, options) => { try { From 31d0cb6bfdd61ce731e11eb2029cec17d4e300b8 Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Tue, 1 Dec 2020 12:42:30 +0530 Subject: [PATCH 174/864] Fix specific typo --- bin/cortex-profiles.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js index 16204e29..133b3faa 100755 --- a/bin/cortex-profiles.js +++ b/bin/cortex-profiles.js @@ -139,8 +139,8 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--before [before]', 'Filter versions before a sepcific date.') - .option('--after [after]', 'Filter versions after a sepcific date.') + .option('--before [before]', 'Filter versions before a spcific date.') + .option('--after [after]', 'Filter versions after a spcific date.') .option('--limit [limit]', 'Limit the number of events returned.') .action(withCompatibilityCheck((profileId, schemaName, options) => { try { From 1200129e8489fe93e9350da4f376c6b783947245 Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Tue, 1 Dec 2020 12:47:31 +0530 Subject: [PATCH 175/864] roless typo fixed --- bin/cortex-roles.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index af05d52b..5f0d4fbe 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -165,7 +165,7 @@ program.command('describe-external ') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--users', 'List users associated with external group') - .option('--roles', 'List roless associated with external group') + .option('--roles', 'List roles associated with external group') .action(withCompatibilityCheck((externalGroup, options) => { try { new ExternalGroupDescribeCommand(program).execute(externalGroup, options); From 07460c65b1ef57aa26fa05fc51d5144adb5d6cbe Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Tue, 1 Dec 2020 14:01:21 +0530 Subject: [PATCH 176/864] Update cortex-profiles.js --- bin/cortex-profiles.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js index 133b3faa..ae2715b8 100755 --- a/bin/cortex-profiles.js +++ b/bin/cortex-profiles.js @@ -139,8 +139,8 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--before [before]', 'Filter versions before a spcific date.') - .option('--after [after]', 'Filter versions after a spcific date.') + .option('--before [before]', 'Filter versions before a specific date.') + .option('--after [after]', 'Filter versions after a specific date.') .option('--limit [limit]', 'Limit the number of events returned.') .action(withCompatibilityCheck((profileId, schemaName, options) => { try { From e90bf1273c499dbc4090c349a0edcbc4db0eb5e6 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 1 Dec 2020 15:05:28 -0600 Subject: [PATCH 177/864] Fix agent validation output (#267) --- src/commands/agents.js | 17 ++++++++++++----- src/commands/skills.js | 21 ++------------------- src/commands/utils.js | 1 + 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index da268a95..ef38fd3e 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,7 +21,7 @@ const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -41,10 +41,17 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { catalog.saveAgent(options.project || profile.project, profile.token, agent).then((response) => { if (response.success) { printSuccess('Agent saved', options); - } else { - printError(`Failed to save agent: ${response.status} ${response.message}`, options); - } - }) + } else if (response.details) { + console.log(`Failed to save agent: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + }}) .catch((err) => { printError(`Failed to save agent: ${err.status} ${err.message}`, options); }); diff --git a/src/commands/skills.js b/src/commands/skills.js index d5823a0b..6c381100 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -13,31 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); -function _formatpath(p) { - let cnt = 0; let -res = ''; - const len = p.length; - p.forEach((s) => { - if (_.isNumber(s)) { - res += `[${s}]`; - } else - if (cnt < len) res += s; - else res += s; - if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) res += '.'; - cnt += 1; - }); - return res; -} - module.exports.SaveSkillCommand = class SaveSkillCommand { constructor(program) { this.program = program; @@ -61,7 +44,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; - response.details.map(d => d.path = _formatpath(d.path)); + response.details.map(d => d.path = formatValidationPath(d.path)); printTable(tableSpec, response.details); printError(''); // Just exit } diff --git a/src/commands/utils.js b/src/commands/utils.js index 5f410b30..c081e377 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -307,3 +307,4 @@ const pkg = findPackageJson(__dirname).next().value; module.exports.getUserAgent = function getUserAgent() { return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; }; + From f71494037c9b671c00f0d47f3305c07dd1bb0836 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 3 Dec 2020 10:38:13 -0600 Subject: [PATCH 178/864] Clean up (#268) * Remove references to environmentName * remove listtrigger command * remove dead commands, add skill invoke command * remove dataets.*, connection test/query --- README.md | 5 - bin/cortex-actions.js | 216 +++++++++++++++++++------------------- bin/cortex-agents.js | 67 +----------- bin/cortex-connections.js | 38 ------- bin/cortex-datasets.js | 120 --------------------- bin/cortex-skills.js | 19 ++++ bin/cortex.js | 1 - src/client/agents.js | 40 ++++--- src/client/datasets.js | 86 --------------- src/commands/actions.js | 1 - src/commands/agents.js | 36 +------ src/commands/datasets.js | 165 ----------------------------- src/commands/deploy.js | 3 +- src/commands/skills.js | 38 +++++++ src/commands/utils.js | 1 - 15 files changed, 194 insertions(+), 642 deletions(-) delete mode 100644 bin/cortex-datasets.js delete mode 100644 src/client/datasets.js delete mode 100644 src/commands/datasets.js diff --git a/README.md b/README.md index 62e39066..d9d41f05 100644 --- a/README.md +++ b/README.md @@ -174,11 +174,6 @@ cortex agents list --query "[].{name: name, title: title}" - [x] get-stream [datasetName] - [x] generate - [ ] snapshots -- [ ] environments - - [ ] list - - [ ] save [environmentDefinition] - - [ ] delete [environmentDefinition] - - [ ] describe [environmentName] - [ ] container-registries - [ ] list - [ ] save [registryName] diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index c1f7d937..5c0d3e91 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -26,13 +26,14 @@ const { DescribeActionCommand, DeleteActionCommand, DeployActionCommand, - GetLogsCommand, + // TODO readd logs/task calls + // GetLogsCommand, InvokeActionCommand, - JobTaskListActionCommand, - TaskCancelActionCommand, - TaskLogsActionCommand, - TaskStatsActionCommand, - TaskStatusActionCommand, + // JobTaskListActionCommand, + // TaskCancelActionCommand, + // TaskLogsActionCommand, + // TaskStatsActionCommand, + // TaskStatusActionCommand, } = require('../src/commands/actions'); program.description('Work with Cortex Actions'); @@ -92,22 +93,22 @@ program } })); -// Get logs Action -program - .command('logs ') - .description('Get logs for an action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--json', 'Return raw JSON response') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((actionName, options) => { - try { - new GetLogsCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); +// // Get logs Action +// program +// .command('logs ') +// .description('Get logs for an action') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--json', 'Return raw JSON response') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .action(withCompatibilityCheck((actionName, options) => { +// try { +// new GetLogsCommand(program).execute(actionName, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); // Invoke Action program @@ -146,7 +147,6 @@ program .option('--project [project]', 'The project to use') .option('--actionType [actionType]', 'Type of action') .option('--port [port]', 'Docker port') // '9091' - .option('--environment [environment]', 'Environment') .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') .option('--push-docker', 'Push Docker image to the Cortex registry.') @@ -169,90 +169,90 @@ program } })); -// Get Tasks logs -program - .command('task-logs ') - .description('Get Tasks logs') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new TaskLogsActionCommand(program).execute(jobId, taskId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Cancel Tasks -program - .command('task-cancel ') - .description('Cancel Task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new TaskCancelActionCommand(program).execute(jobId, taskId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Tasks Status -program - .command('task-status ') - .description('Get Task\'s status') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new TaskStatusActionCommand(program).execute(jobId, taskId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Job tasks -program - .command('task-list ') - .description('List Job\'s tasks status') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' - + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') - .action(withCompatibilityCheck((jobId, options) => { - try { - new JobTaskListActionCommand(program).execute(jobId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Job Stats -program - .command('task-stats ') - .description('Get Task\'s stats for a given Job') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, options) => { - try { - new TaskStatsActionCommand(program).execute(jobId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); +// // Get Tasks logs +// program +// .command('task-logs ') +// .description('Get Tasks logs') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') +// .action(withCompatibilityCheck((jobId, taskId, options) => { +// try { +// new TaskLogsActionCommand(program).execute(jobId, taskId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); +// +// // Cancel Tasks +// program +// .command('task-cancel ') +// .description('Cancel Task') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') +// .action(withCompatibilityCheck((jobId, taskId, options) => { +// try { +// new TaskCancelActionCommand(program).execute(jobId, taskId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); +// +// // Get Tasks Status +// program +// .command('task-status ') +// .description('Get Task\'s status') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') +// .action(withCompatibilityCheck((jobId, taskId, options) => { +// try { +// new TaskStatusActionCommand(program).execute(jobId, taskId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); +// +// // List Job tasks +// program +// .command('task-list ') +// .description('List Job\'s tasks status') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' +// + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') +// .action(withCompatibilityCheck((jobId, options) => { +// try { +// new JobTaskListActionCommand(program).execute(jobId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); +// +// // Get Job Stats +// program +// .command('task-stats ') +// .description('Get Task\'s stats for a given Job') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') +// .action(withCompatibilityCheck((jobId, options) => { +// try { +// new TaskStatsActionCommand(program).execute(jobId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); program.parse(process.argv); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index ddc9f5c6..e277053e 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -28,18 +28,12 @@ const { InvokeAgentServiceCommand, GetActivationCommand, ListActivationsCommand, - ListSnapshotInstancesCommand, - ListTriggersCommand, ListServicesCommand, ListAgentSnapshotsCommand, DescribeAgentSnapshotCommand, CreateAgentSnapshotCommand, } = require('../src/commands/agents'); -const { - ListTaskByActivation, -} = require('../src/commands/actions'); - program.description('Work with Cortex Agents'); // Save Agent @@ -133,18 +127,17 @@ program })); program - .command('list-activations ') - .description('List agent instance activations') + .command('list-activations ') + .description('List agent activations') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((instanceId, options) => { + .action(withCompatibilityCheck((snapshotId, options) => { try { - new ListActivationsCommand(program).execute(instanceId, options); + new ListActivationsCommand(program).execute(snapshotId, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -175,7 +168,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((agentName, options) => { @@ -186,25 +178,6 @@ program } })); -// List snapshot instances -program - .command('list-snapshot-instances ') - .description('List snapshot instances ') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((snapshotId, options) => { - try { - new ListSnapshotInstancesCommand(program).execute(snapshotId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - program .command('describe-snapshot ') .alias('get-snapshot') @@ -240,36 +213,4 @@ program } })); -// List triggers -program - .command('list-triggers') - .description('List of triggers for the current tenant') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((options) => { - try { - new ListTriggersCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Tasks -program - .command('list-tasks ') - .description('List tasks associated with a given activationId') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((activationId, options) => { - try { - new ListTaskByActivation(program).execute(activationId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - program.parse(process.argv); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 61641dbb..e29f7e52 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -24,9 +24,7 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { ListConnections, SaveConnectionCommand, - QueryConnectionCommand, DescribeConnectionCommand, - TestConnectionCommand, ListConnectionsTypes, } = require('../src/commands/connections'); @@ -68,25 +66,6 @@ program } })); -// Query Connection -program - .command('query ') - .description('Query a connection.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Pretty print JSON results') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'The query to use, "select 1" is default') - .option('--file [file]', 'Location of file containing query string') - .action(withCompatibilityCheck((connName, options) => { - try { - new QueryConnectionCommand(program).execute(connName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - // Describe Connection program .command('describe ') @@ -105,23 +84,6 @@ program } })); -// Test Connections -program - .command('test ') - .description('Test a connections definition before saving. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for agent definition format') - .action(withCompatibilityCheck((connDefinition, options) => { - try { - new TestConnectionCommand(program).execute(connDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - // List Connections Types program .command('list-types') diff --git a/bin/cortex-datasets.js b/bin/cortex-datasets.js deleted file mode 100644 index 01b7f630..00000000 --- a/bin/cortex-datasets.js +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListDatasets, - SaveDatasetsCommand, - DescribeDatasetCommand, - GetDataframeCommand, - StreamDatasetCommand, -} = require('../src/commands/datasets'); - -program.description('Work with Cortex Connections'); - - -// List Dataset -program - .command('list') - .description('List Datasets') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using detailed JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((options) => { - try { - new ListDatasets(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Save Dataset -program - .command('save ') - .description('Save a dataset definition. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for dataset file definition format') - .action(withCompatibilityCheck((datasetDef, options) => { - try { - new SaveDatasetsCommand(program).execute(datasetDef, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Dataset -program - .command('describe ') - .alias('get') - .description('Describe dataset') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new DescribeDatasetCommand(program).execute(datasetName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Dataframe -program - .command('get-dataframe ') - .description('Get dataset in dataframe format') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new GetDataframeCommand(program).execute(datasetName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Stream -program - .command('get-stream ') - .description('Stream dataset content') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new StreamDatasetCommand(program).execute(datasetName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 12ef898b..94faa2a6 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -25,6 +25,7 @@ const { SaveSkillCommand, ListSkillsCommand, DescribeSkillCommand, + InvokeSkillCommand, } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); @@ -82,4 +83,22 @@ program } })); +// Invoke Skill +program + .command('invoke ') + .description('Invoke a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--params [params]', 'JSON params to send to the action') + .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .action(withCompatibilityCheck((skillName, inputName, options) => { + try { + new InvokeSkillCommand(program).execute(skillName, inputName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index c8587967..9777c076 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -31,7 +31,6 @@ program .command('configure', 'Configure the Cortex CLI') .command('connections [cmd]', 'Work with Cortex Connections') .command('content [cmd]', 'Work with Cortex Managed Content') - .command('datasets [cmd]', 'Work with Cortex Datasets') .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') diff --git a/src/client/agents.js b/src/client/agents.js index 835a30ef..01d4ccbc 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -25,7 +25,7 @@ module.exports = class Agents { } invokeAgentService(projectId, token, agentName, serviceName) { - const endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/services/${serviceName}`; + const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got .post(endpoint, { @@ -36,6 +36,18 @@ module.exports = class Agents { .catch(err => constructError(err)); } + invokeSkill(projectId, token, skillName, inputName) { + const endpoint = `${this.endpointV4(projectId)}/skillinvoke/${skillName}/inputs/${inputName}`; + debug('invokeSkill(%s, %s) => %s', skillName, inputName, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); + } + getActivation(projectId, token, activationId) { const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); @@ -48,10 +60,9 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listActivations(projectId, token, snapshotId, environmentName) { - let endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}/activations`; - debug('listActivations(%s, %s) => %s', snapshotId, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; + listActivations(projectId, token, snapshotId) { + const endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}/activations`; + debug('listActivations(%s, %s) => %s', snapshotId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -61,10 +72,9 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listAgentSnapshots(projectId, token, agentName, environmentName) { - let endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/snapshots`; - debug('listAgentSnapshots(%s, %s) => %s', agentName, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; + listAgentSnapshots(projectId, token, agentName) { + const endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/snapshots`; + debug('listAgentSnapshots(%s, %s) => %s', agentName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -98,16 +108,4 @@ module.exports = class Agents { .then(result => ({ success: true, result })) .catch(err => constructError(err)); } - - listTriggers(projectId, token) { - const endpoint = `${this.endpointV4(projectId)}/triggers`; - debug('listTriggers => %s', endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } }; diff --git a/src/client/datasets.js b/src/client/datasets.js deleted file mode 100644 index de6a3418..00000000 --- a/src/client/datasets.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); - -module.exports = class Datasets { - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/datasets`; - } - - listDatasets(projectId, token) { - const endpoint = `${this.endpoint(projectId)}`; - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } - - saveDatasets(projectId, token, dsObject) { - const endpoint = `${this.endpoint(projectId)}`; - debug('saveConnection(%s) => %s', dsObject.name, this.endpoint); - return got - .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: dsObject, - }).json() - .then(res => ({ success: true, message: res })) - .catch(err => constructError(err)); - } - - describeDataset(projectId, token, datasetName) { - const endpoint = `${this.endpoint(projectId)}/${datasetName}`; - debug('describeConnection(%s) => %s', datasetName, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); -} - - getDataframe(projectId, token, datasetName) { - const endpoint = `${this.endpoint(projectId)}/${datasetName}/dataframe`; - debug('describeConnection(%s) => %s', datasetName, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } - - streamDataset(projectId, token, datasetName) { - const endpoint = `${this.endpoint(projectId)}/${datasetName}/stream`; - debug('describeConnection(%s) => %s', datasetName, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } -}; diff --git a/src/commands/actions.js b/src/commands/actions.js index e731cee0..3bdd401d 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -120,7 +120,6 @@ module.exports.DeployActionCommand = class { params.actionType = options.actionType; params.command = options.cmd; params.port = options.port; - params.environment = options.environment; params.environmentVariables = options.environmentVariables; params.pushDocker = options.pushDocker; params.scaleCount = parseInt(options.scaleCount, 10); diff --git a/src/commands/agents.js b/src/commands/agents.js index ef38fd3e..d3fc3814 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,7 +21,7 @@ const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -51,7 +51,8 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { response.details.map(d => d.path = formatValidationPath(d.path)); printTable(tableSpec, response.details); printError(''); // Just exit - }}) + } + }) .catch((err) => { printError(`Failed to save agent: ${err.status} ${err.message}`, options); }); @@ -203,11 +204,10 @@ module.exports.ListActivationsCommand = class { execute(instanceId, options) { const profile = loadProfile(options.profile); - const envName = options.environmentName; debug('%s.listActivations(%s)', profile.name, instanceId); const agents = new Agents(profile.url); - agents.listActivations(options.project || profile.project, profile.token, instanceId, envName).then((response) => { + agents.listActivations(options.project || profile.project, profile.token, instanceId).then((response) => { if (response.success) { let result = response.result.activations; if (options.query) result = filterObject(result, options); @@ -275,11 +275,10 @@ module.exports.ListAgentSnapshotsCommand = class { execute(agentName, options) { const profile = loadProfile(options.profile); - const envName = options.environmentName; debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, envName) + agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName) .then((response) => { if (response.success) { const result = filterObject(response.result.snapshots, options); @@ -290,7 +289,6 @@ module.exports.ListAgentSnapshotsCommand = class { { column: 'Snapshot ID', field: 'id', width: 40 }, { column: 'Title', field: 'title', width: 30 }, { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Environment', field: 'environmentName', width: 30 }, { column: 'Created On', field: 'createdAt', width: 26 }, ]; printTable(tableSpec, result); @@ -366,27 +364,3 @@ module.exports.CreateAgentSnapshotCommand = class { }); } }; - -// module.exports.ListTriggersCommand = class { -// constructor(program) { -// this.program = program; -// } -// -// execute(options) { -// const profile = loadProfile(options.profile); -// debug('%s.listTriggers', profile.name); -// -// const agents = new Agents(profile.url); -// agents.listTriggers(profile.token).then((response) => { -// if (response.success) { -// const result = filterObject(response.result, options); -// printSuccess(JSON.stringify(result, null, 2), options); -// } else { -// printError(`Failed to list triggers ${instanceId}: ${response.message}`, options); -// } -// }) -// .catch((err) => { -// printError(`Failed to list triggers ${instanceId} : ${err.status} ${err.message}`, options); -// }); -// } -// }; diff --git a/src/commands/datasets.js b/src/commands/datasets.js deleted file mode 100644 index 139f2170..00000000 --- a/src/commands/datasets.js +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const es = require('event-stream'); -const { loadProfile } = require('../config'); -const Datasets = require('../client/datasets'); -const { - printSuccess, printError, filterObject, parseObject, printTable, -} = require('./utils'); - -module.exports.ListDatasets = class ListDatasets { - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listDatasets()', profile.name); - - const datasets = new Datasets(profile.url); - datasets.listDatasets(options.project || profile.project, profile.token).then((response) => { - if (response.success) { - let { result } = response; - if (options.query) { - result = filterObject(response.result, options); - } - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Connection Name', field: 'connectionName', width: 25 }, - { column: 'Description', field: 'description', width: 50 }, - { column: 'Created On', field: 'createdAt', width: 26 }, - { column: 'Updated On', field: 'updatedAt', width: 26 }, - ]; - - printTable(tableSpec, result.datasets); - } - } else { - printError(`Failed to list datasets: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list datasets: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.SaveDatasetsCommand = class SaveDatasetsCommand { - constructor(program) { - this.program = program; - } - - execute(datasetDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSaveDatasetDefinition(%s)', profile.name, datasetDefinition); - - const connDefStr = fs.readFileSync(datasetDefinition); - const connObj = parseObject(connDefStr, options); - debug('%o', connObj); - - const datasets = new Datasets(profile.url); - datasets.saveDatasets(options.project || profile.project, profile.token, connObj).then((response) => { - if (response.success) { - printSuccess('Dataset saved', options); - } else { - printError(`Failed to save Dataset: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { // don't think we ever get here.. - printError(`Failed to save Datasets: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeDatasetCommand = class DescribeDatasetCommand { - constructor(program) { - this.program = program; - } - - execute(datasetName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDescribeDataset(%s)', profile.name, datasetName); - - const dataset = new Datasets(profile.url); - dataset.describeDataset(options.project || profile.project, profile.token, datasetName).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe dataset ${datasetName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe dataset ${datasetName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.GetDataframeCommand = class GetDataframeCommand { - constructor(program) { - this.program = program; - } - - execute(datasetName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeGetDataframe(%s)', profile.name, datasetName); - - const dataset = new Datasets(profile.url); - dataset.getDataframe(options.project || profile.project, profile.token, datasetName).then((response) => { - if (response.success) { - printSuccess(JSON.stringify(response.result, null, 2), options); - } else { - printError(`Failed to get dataframe ${datasetName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to get dataframe ${datasetName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.StreamDatasetCommand = class StreamDatasetCommand { - constructor(program) { - this.program = program; - } - - execute(datasetName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeStreamDataset(%s)', profile.name, datasetName); - - const dataset = new Datasets(profile.url); - dataset.streamDataset(options.project || profile.project, profile.token, datasetName).then((response) => { - if (response.success) { - const stream = new es.Stream.PassThrough(); - stream.write(response.result.text); - stream.end(); - stream.pipe(process.stdout); - } else { - printError(`Failed to stream dataset ${datasetName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to stream dataset ${datasetName}: ${err.status} ${err.message}`, options); - }); - } -}; diff --git a/src/commands/deploy.js b/src/commands/deploy.js index db7d8d21..8c7511a0 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -62,13 +62,12 @@ module.exports.DeploySnapshotCommand = class { } } const profile = loadProfile(options.profile); - const envName = options.environmentName; debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); const agents = new Agents(profile.url); const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { - promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, envName).then((response) => { + promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((response) => { if (response.success) { let result = filterObject(response.result, options); result = cleanInternalFields(result); diff --git a/src/commands/skills.js b/src/commands/skills.js index 6c381100..c5e3cfa0 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -17,6 +17,7 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); +const Agent = require('../client/agents'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); @@ -114,3 +115,40 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { }); } }; + +module.exports.InvokeSkillCommand = class InvokeSkillCommand { + constructor(program) { + this.program = program; + } + + execute(skillName, inputName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeInvokeSkill(%s/%s)', profile.name, skillName, inputName); + + let params = {}; + if (options.params) { + params = parseObject(options.params, options); + } else if (options.paramsFile) { + const paramsStr = fs.readFileSync(options.paramsFile); + params = parseObject(paramsStr, options); + } + + const agent = new Agent(profile.url); + agent.InvokeSkill(options.project || profile.project, profile.token, skillName, inputName, params).then((response) => { + if (response.success) { + const result = filterObject(response.skill, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Skill invoke failed: ${response.message}`, options); + } + }) + .catch((err) => { + if (err.response && err.response.body) { + debug('Raw error response: %o', err.response.body); + printError(`Failed to invoke skill(${err.status} ${err.message}): ${err.response.body.error}`, options); + } else { + printError(`Failed to invoke skill: ${err.status} ${err.message}`, options); + } + }); + } +}; diff --git a/src/commands/utils.js b/src/commands/utils.js index c081e377..5f410b30 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -307,4 +307,3 @@ const pkg = findPackageJson(__dirname).next().value; module.exports.getUserAgent = function getUserAgent() { return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; }; - From dbfb5c83b2768ac0912e5487ba33fdfb08b5e0c5 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 3 Dec 2020 11:27:44 -0600 Subject: [PATCH 179/864] invokeSkill fixes (#269) --- src/client/agents.js | 4 ++-- src/commands/skills.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/agents.js b/src/client/agents.js index 01d4ccbc..51859118 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -25,7 +25,7 @@ module.exports = class Agents { } invokeAgentService(projectId, token, agentName, serviceName) { - const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/services/${serviceName}`; + const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${encodeURIComponent(agentName)}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got .post(endpoint, { @@ -37,7 +37,7 @@ module.exports = class Agents { } invokeSkill(projectId, token, skillName, inputName) { - const endpoint = `${this.endpointV4(projectId)}/skillinvoke/${skillName}/inputs/${inputName}`; + const endpoint = `${this.endpointV4(projectId)}/skillinvoke/${encodeURIComponent(skillName)}/inputs/${inputName}`; debug('invokeSkill(%s, %s) => %s', skillName, inputName, endpoint); return got .post(endpoint, { diff --git a/src/commands/skills.js b/src/commands/skills.js index c5e3cfa0..123191d1 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -134,7 +134,7 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { } const agent = new Agent(profile.url); - agent.InvokeSkill(options.project || profile.project, profile.token, skillName, inputName, params).then((response) => { + agent.invokeSkill(options.project || profile.project, profile.token, skillName, inputName, params).then((response) => { if (response.success) { const result = filterObject(response.skill, options); printSuccess(JSON.stringify(result, null, 2), options); From 83876cfb8428ae0938bf6b0469479db6bf44e9ab Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 4 Dec 2020 15:21:03 +0530 Subject: [PATCH 180/864] renamed __main__.py to main.py due to conflict with __main__ module name reserved in python --- src/commands/assets/templates/skill/daemon/Dockerfile | 2 +- src/commands/assets/templates/skill/daemon/README.md | 4 ++-- .../templates/skill/daemon/{__main__.py.hbs => main.py.hbs} | 0 src/commands/assets/templates/skill/job/Dockerfile | 2 +- src/commands/assets/templates/skill/job/README.md | 6 +++--- .../templates/skill/job/{__main__.py.hbs => main.py.hbs} | 0 6 files changed, 7 insertions(+), 7 deletions(-) rename src/commands/assets/templates/skill/daemon/{__main__.py.hbs => main.py.hbs} (100%) rename src/commands/assets/templates/skill/job/{__main__.py.hbs => main.py.hbs} (100%) diff --git a/src/commands/assets/templates/skill/daemon/Dockerfile b/src/commands/assets/templates/skill/daemon/Dockerfile index d4907bc9..fdde45fa 100644 --- a/src/commands/assets/templates/skill/daemon/Dockerfile +++ b/src/commands/assets/templates/skill/daemon/Dockerfile @@ -1,4 +1,4 @@ FROM python:3.7.4-buster ADD . /app RUN pip install -r /app/requirements.txt -CMD ["uvicorn", "__main__:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"] +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"] diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index 6169d175..28c1882f 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -4,13 +4,13 @@ Long running Cortex skill serving REST API requests #### Files generated: * `skill.yaml` Skill definition -* `__main__.py` Python3 code serving the daemon API +* `main.py` Python3 code serving the daemon API * `requirements.txt` Python3 libraries dependencies * `Dockerfile` to build Docker image for this skill #### Next Steps: * Add input/output parameters and properties in skill.yaml as per requirement -* Update `__main__.py` with the business logic this skill will implement. +* Update `main.py` with the business logic this skill will implement. * Add required libraries to `requirements.txt` * Make changes to Dockerfile if required diff --git a/src/commands/assets/templates/skill/daemon/__main__.py.hbs b/src/commands/assets/templates/skill/daemon/main.py.hbs similarity index 100% rename from src/commands/assets/templates/skill/daemon/__main__.py.hbs rename to src/commands/assets/templates/skill/daemon/main.py.hbs diff --git a/src/commands/assets/templates/skill/job/Dockerfile b/src/commands/assets/templates/skill/job/Dockerfile index 31fb4a1a..9c3b16ae 100644 --- a/src/commands/assets/templates/skill/job/Dockerfile +++ b/src/commands/assets/templates/skill/job/Dockerfile @@ -1,4 +1,4 @@ FROM python:3.7.4-buster ADD . /app RUN pip install -r /app/requirements.txt -CMD ["python", "/app/__main__.py"] +CMD ["python", "/app/main.py"] diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 46fd1276..bdaaa443 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -4,13 +4,13 @@ Background job running Cortex skill #### Files generated: * `skill.yaml` Skill definition -* `__main__.py` Python3 code implementing job's business logic +* `main.py` Python3 code implementing job's business logic * `requirements.txt` Python3 libraries dependencies * `Dockerfile` to build Docker image for this skill #### Next Steps: * Add input/output parameters and properties in skill.yaml as per requirement -* Update `__main__.py` with the business logic this skill will implement. +* Update `main.py` with the business logic this skill will implement. * Add required libraries to `requirements.txt` * Make changes to Dockerfile if required @@ -21,5 +21,5 @@ Background job running Cortex skill docker tag : docker push ``` -* Save Cortex Action `cortex actions deploy --actionType job --docker --cmd '["python", "/app/__main__.py"]' --project ` +* Save Cortex Action `cortex actions deploy --actionType job --docker --cmd '["python", "/app/main.py"]' --project ` * Deploy this Skill `cortex skills save -y skill.yaml --project ` diff --git a/src/commands/assets/templates/skill/job/__main__.py.hbs b/src/commands/assets/templates/skill/job/main.py.hbs similarity index 100% rename from src/commands/assets/templates/skill/job/__main__.py.hbs rename to src/commands/assets/templates/skill/job/main.py.hbs From 51a4679729c5cf99ba8ce8165c18e98c13900bf1 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 4 Dec 2020 15:13:17 -0600 Subject: [PATCH 181/864] Fix undefined (#270) * Allow json file for action save * Fix skill invoke output, get-snapshot output, fix action save/deploy --- bin/cortex-actions.js | 30 ++++++++------------ src/client/actions.js | 19 +++++++------ src/commands/actions.js | 61 +++++++++++++++++++++-------------------- src/commands/agents.js | 2 +- src/commands/skills.js | 2 +- 5 files changed, 56 insertions(+), 58 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 5c0d3e91..dd9121f4 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -136,33 +136,25 @@ program // Deploy Action program - .command('deploy ') + .command('deploy [actionDefinition]') .alias('save') .description('Deploy an action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--docker [image]', 'Docker image to use as the runner') - .option('--ttl [ttl]', 'Daemon time to live') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') .option('--actionType [actionType]', 'Type of action') - .option('--port [port]', 'Docker port') // '9091' .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') + .option('--actionName [name]', 'Action name') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('--port [port]', 'Docker port') // '9091' + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--push-docker', 'Push Docker image to the Cortex registry.') - .option('--scaleCount [count]', 'Scale count', 'Scale count, only used for daemon action types') - .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, ' - + 'used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('--scaleCount [count]', 'Scale count, only used for daemon action types') + .option('-y, --yaml', 'Use YAML format') .action(withCompatibilityCheck((actionName, options) => { try { - if (!options.docker) { - throw new Error('--docker [image] required'); - } - // allow kind with docker for blackbox images.. - // if (options.docker && options.kind) { - // throw new Error('Use either --kind [kind] or --docker [image], but not both'); - // } - new DeployActionCommand(program).execute(actionName, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/src/client/actions.js b/src/client/actions.js index 3f0f688f..dc78af7f 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -28,23 +28,26 @@ module.exports = class Actions { this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/actions`; } - async deployAction(projectId, token, actionName, params) { + async deployAction(projectId, token, actionInst) { checkProject(projectId); let endpoint = this.endpointV4(projectId); - if (params.actionType) { - endpoint = `${endpoint}?actionType=${params.actionType}`; + if (actionInst.actionType) { + endpoint = `${endpoint}?actionType=${actionInst.actionType}`; } debug('deployAction(%s, docker=%s, ttl=%s) => %s', - actionName, params.dockerImage, params.ttl, endpoint); - const body = { ...params }; + actionInst.name, actionInst.dockerImage, actionInst.ttl, endpoint); + const body = { ...actionInst }; + // image & docker floating around fixup just in case.. + if (body.docker) { + body.image = body.docker; + delete body.docker; + } try { - body.docker = await this._maybePushDockerImage(params.dockerImage, token, params.pushDocker); + body.docker = await this._maybePushDockerImage(actionInst.dockerImage, token, actionInst.pushDocker); } catch (error) { return { success: false, status: 400, message: error.message || error }; } - body.name = actionName; - return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/actions.js b/src/commands/actions.js index 3bdd401d..9c1bb5f2 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Actions = require('../client/actions'); const { - printSuccess, printWarning, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -84,48 +84,51 @@ module.exports.DescribeActionCommand = class { } }; +function isNumeric(value) { + return /^-?\d+$/.test(value); +} + module.exports.DeployActionCommand = class { constructor(program) { this.program = program; } - execute(actionName, options) { + execute(actionDefinition, options) { const profile = loadProfile(options.profile); - debug('%s.deployAction(%s)', profile.name, actionName); - const params = {}; - - if (options.podspec) { - const paramsStr = fs.readFileSync(options.podspec); - params.podSpec = parseObject(paramsStr, options); + let actionInst = {}; + if (actionDefinition) { + debug('%s.createAgentSnapshot(%s)', profile.name, actionDefinition); + const actionDefStr = fs.readFileSync(actionDefinition); + actionInst = parseObject(actionDefStr, options); } - - if (options.kind) { - printWarning('The kind option has been deprecated and will be ignored.', options); + if (options.actionName) { + actionInst.name = options.actionName; } - if (options.code) { - printWarning('The code option has been deprecated and will be ignored.' - + ' Use the docker option for setting an existing image to use.', options); + if (options.podspec) { + const paramsStr = fs.readFileSync(options.podspec); + actionInst.podSpec = parseObject(paramsStr, options); } - if (options.memory) { - printWarning('The memory option has been deprecated and will be ignored.' - + ' Use the podspec option for setting this value.', options); + if (options.docker) { actionInst.docker = options.docker; } + if (options.actionType) { actionInst.actionType = options.actionType; } + if (options.cmd) { actionInst.command = options.cmd; } + if (options.port) { + if (!isNumeric(options.port)) { + printError('--port must be a number', options); + } + actionInst.port = options.port; } - if (options.vcpus) { - printWarning('The vcpus option has been deprecated and will be ignored.' - + ' Use the podspec option for setting this value.', options); + if (options.environmentVariables) { actionInst.environmentVariables = options.environmentVariables; } + if (options.pushDocker) { actionInst.pushDocker = options.pushDocker; } + if (options.scaleCount) { + if (!isNumeric(options.scaleCount)) { + printError('--scaleCount must be a number', options); + } + actionInst.scaleCount = parseInt(options.scaleCount, 10); } - params.dockerImage = options.docker; - params.ttl = options.ttl; - params.actionType = options.actionType; - params.command = options.cmd; - params.port = options.port; - params.environmentVariables = options.environmentVariables; - params.pushDocker = options.pushDocker; - params.scaleCount = parseInt(options.scaleCount, 10); const actions = new Actions(profile.url); - actions.deployAction(options.project || profile.project, profile.token, actionName, params) + actions.deployAction(options.project || profile.project, profile.token, actionInst) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); diff --git a/src/commands/agents.js b/src/commands/agents.js index d3fc3814..388e3c3f 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -185,7 +185,7 @@ module.exports.GetActivationCommand = class { const agents = new Agents(profile.url); agents.getActivation(options.project || profile.project, profile.token, activationId).then((response) => { if (response.success) { - const result = filterObject(response.result.activation, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printError(`Failed to get activation ${activationId}: ${response.message}`, options); diff --git a/src/commands/skills.js b/src/commands/skills.js index 123191d1..50c708c6 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -136,7 +136,7 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { const agent = new Agent(profile.url); agent.invokeSkill(options.project || profile.project, profile.token, skillName, inputName, params).then((response) => { if (response.success) { - const result = filterObject(response.skill, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printError(`Skill invoke failed: ${response.message}`, options); From 8b92fd12a7a8193e4c314513862b9130c68436a6 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 4 Dec 2020 23:18:20 -0600 Subject: [PATCH 182/864] Wasnot passing params, pass it and simplify request a bit --- package-lock.json | 9 +++++++-- package.json | 5 +++-- src/client/agents.js | 12 ++++++++---- src/commands/utils.js | 7 ++++--- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index c96b89e9..bbcc7863 100644 --- a/package-lock.json +++ b/package-lock.json @@ -825,7 +825,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "diff": { @@ -1951,7 +1951,7 @@ }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, "is-number": { @@ -4177,6 +4177,11 @@ "imurmurhash": "^0.1.4" } }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, "uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", diff --git a/package.json b/package.json index e97b5ae5..1e5a0b8e 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "plop": "2.7.4", "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", @@ -54,12 +53,14 @@ "moment": "2.24.0", "npm-registry-fetch": "8.1.5", "os-name": "4.0.0", + "plop": "2.7.4", "progress": "2.0.3", "semver": "7.1.3", "split": "1.0.1", "stream": "0.0.2", "through2": "3.0.1", - "tty-table": "4.1.1" + "tty-table": "4.1.1", + "unquote": "1.1.1" }, "devDependencies": { "chai": "4.2.0", diff --git a/src/client/agents.js b/src/client/agents.js index 51859118..23f29148 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -24,26 +24,30 @@ module.exports = class Agents { this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}`; } - invokeAgentService(projectId, token, agentName, serviceName) { + invokeAgentService(projectId, token, agentName, serviceName, params) { const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${encodeURIComponent(agentName)}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - }).json() + json: params, + responseType: 'json', + }) .then(result => ({ success: true, result })) .catch(err => constructError(err)); } - invokeSkill(projectId, token, skillName, inputName) { + invokeSkill(projectId, token, skillName, inputName, params) { const endpoint = `${this.endpointV4(projectId)}/skillinvoke/${encodeURIComponent(skillName)}/inputs/${inputName}`; debug('invokeSkill(%s, %s) => %s', skillName, inputName, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - }).json() + json: params, + responseType: 'json', + }) .then(result => ({ success: true, result })) .catch(err => constructError(err)); } diff --git a/src/commands/utils.js b/src/commands/utils.js index 5f410b30..51329905 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -14,6 +14,7 @@ * limitations under the License. */ +const Table = require('cli-table'); const _ = require('lodash'); const chalk = require('chalk'); const debug = require('debug')('cortex:cli'); @@ -24,7 +25,7 @@ const jmsepath = require('jmespath'); const os = require('os'); const osName = require('os-name'); const path = require('path'); -const Table = require('cli-table'); +const unquote = require('unquote'); const yaml = require('js-yaml'); const { exec } = require('child_process'); @@ -89,10 +90,10 @@ module.exports.filterObject = (obj, options) => { module.exports.parseObject = (str, options) => { if (options.yaml) { - return yaml.safeLoad(str); + return yaml.safeLoad(unquote(str)); } - return JSON.parse(str); + return JSON.parse(unquote(str)); }; function _extractValues(fields, obj) { From 6652665da1e03a5e06d08130abe7ff02895f8c3d Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 4 Dec 2020 23:21:42 -0600 Subject: [PATCH 183/864] linting --- bin/cortex-generate.js | 5 +- bin/cortex-skills.js | 2 +- package-lock.json | 2087 +++++++++++++++++++++++++++++++++++--- package.json | 5 +- src/commands/generate.js | 6 +- src/commands/plopfile.js | 10 +- 6 files changed, 1938 insertions(+), 177 deletions(-) diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index bf1a6012..b21d9425 100755 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('../src/commander'); const { - GenerateSkillCommand + GenerateSkillCommand, } = require('../src/commands/generate'); program.description('Scaffolding Cortex Components'); @@ -32,8 +32,7 @@ program .action((options) => { // deliberately not using withCompatibilityCheck() try { new GenerateSkillCommand(program).execute(options); - } - catch (err) { + } catch (err) { console.error(chalk.red(err.message)); } }); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index a2ddd7bb..94faa2a6 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -25,7 +25,7 @@ const { SaveSkillCommand, ListSkillsCommand, DescribeSkillCommand, - InvokeSkillCommand + InvokeSkillCommand, } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); diff --git a/package-lock.json b/package-lock.json index bbcc7863..2b1efbc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,6 +82,15 @@ } } }, + "@babel/runtime-corejs3": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", + "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, "@hapi/address": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", @@ -125,6 +134,29 @@ "@hapi/hoek": "^9.0.0" } }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, "@npmcli/ci-detect": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", @@ -172,11 +204,42 @@ "@types/responselike": "*" } }, + "@types/fined": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.2.tgz", + "integrity": "sha512-hzzTS+X9EqDhx4vwdch/DOZci/bfh5J6Nyz8lqvyfBg2ROx2fPafX+LpDfpVgSvQKj0EYkwTYpBO3z2etwbkOw==" + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/http-cache-semantics": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" }, + "@types/inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", + "requires": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "@types/interpret": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", + "requires": { + "@types/node": "*" + } + }, "@types/keyv": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", @@ -185,6 +248,21 @@ "@types/node": "*" } }, + "@types/liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha512-1jsThE//wKDK+hYM+NJqswI+K9lfR0YNMctteOxAzk/aemI0rQsVDk6Dia0zkPfBWFTh+hiDmrGQXqP1tyM+eg==", + "requires": { + "@types/fined": "*", + "@types/interpret": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", @@ -198,6 +276,14 @@ "@types/node": "*" } }, + "@types/through": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", + "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "requires": { + "@types/node": "*" + } + }, "acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", @@ -312,6 +398,26 @@ "sprintf-js": "~1.0.2" } }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" + }, "array-includes": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", @@ -344,6 +450,21 @@ } } }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, "array.prototype.flat": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", @@ -360,6 +481,11 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -371,11 +497,66 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", @@ -421,7 +602,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -469,6 +649,22 @@ "unique-filename": "^1.1.1" } }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "cacheable-lookup": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz", @@ -503,6 +699,15 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -540,11 +745,35 @@ "supports-color": "^7.1.0" } }, + "change-case": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "check-error": { "version": "1.0.2", @@ -573,6 +802,27 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -587,11 +837,15 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, "requires": { "restore-cursor": "^2.0.0" } }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" + }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", @@ -657,6 +911,15 @@ "keypress": "~0.2.1" } }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -691,25 +954,37 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "requires": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "dev": true + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js-pure": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.0.tgz", + "integrity": "sha512-fRjhg3NeouotRoIV0L1FdchA6CK7ZD+lyINyMoz19SyV+ROpC4noS1xItWHFtwZdlqfMfVPJEyEGdfri2bD1pA==" }, "cross-fetch": { "version": "3.0.6", @@ -768,6 +1043,11 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -818,6 +1098,68 @@ "object-keys": "^1.0.12" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "requires": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -828,12 +1170,32 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + } + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -843,15 +1205,13 @@ "esutils": "^2.0.2" } }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "emitter-component": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz", - "integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=" + "dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "requires": { + "no-case": "^2.2.0" + } }, "emoji-regex": { "version": "7.0.3", @@ -921,8 +1281,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { "version": "1.14.3", @@ -1308,20 +1667,6 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, - "event-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "requires": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -1338,11 +1683,87 @@ "strip-final-newline": "^2.0.0" } }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -1353,13 +1774,71 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } } } }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -1371,6 +1850,30 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1382,11 +1885,13 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", - "dev": true + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "requires": { + "reusify": "^1.0.4" + } }, "figures": { "version": "2.0.0", @@ -1410,7 +1915,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -1429,6 +1933,44 @@ "path-exists": "^4.0.0" } }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" + }, "flat": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", @@ -1466,8 +2008,21 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, - "form-data": { - "version": "3.0.0", + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "^1.0.1" + } + }, + "form-data": { + "version": "3.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "requires": { @@ -1476,16 +2031,13 @@ "mime-types": "^2.1.12" } }, - "formidable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", - "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==", - "dev": true - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } }, "fs-minipass": { "version": "2.1.0", @@ -1547,6 +2099,11 @@ "pump": "^3.0.0" } }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -1564,7 +2121,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -1577,12 +2133,66 @@ "ini": "^1.3.5" } }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + } + } + }, "got": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/got/-/got-11.7.0.tgz", @@ -1604,8 +2214,7 @@ "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "grapheme-splitter": { "version": "1.0.4", @@ -1633,6 +2242,18 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1641,6 +2262,21 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1651,12 +2287,81 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hosted-git-info": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", @@ -1870,11 +2575,48 @@ } } }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -1905,21 +2647,64 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", - "dev": true, "requires": { "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -1930,7 +2715,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -1949,6 +2733,14 @@ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "requires": { + "lower-case": "^1.1.0" + } + }, "is-negative-zero": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", @@ -1957,14 +2749,26 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" }, "is-path-inside": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, "is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", @@ -1973,6 +2777,14 @@ "has-symbols": "^1.0.1" } }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", @@ -1992,17 +2804,47 @@ "has-symbols": "^1.0.1" } }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "requires": { + "upper-case": "^1.1.0" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", @@ -2071,7 +2913,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } @@ -2089,6 +2931,11 @@ "json-buffer": "3.0.1" } }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -2103,6 +2950,21 @@ "type-check": "~0.3.2" } }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -2128,6 +2990,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", @@ -2195,6 +3062,19 @@ } } }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "requires": { + "lower-case": "^1.1.2" + } + }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -2235,27 +3115,138 @@ "ssri": "^8.0.0" } }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", - "dev": true + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } }, "mime-db": { "version": "1.44.0", @@ -2291,8 +3282,7 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "3.1.3", @@ -2363,6 +3353,25 @@ "yallist": "^4.0.0" } }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mixme": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.4.0.tgz", @@ -2616,18 +3625,49 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, "nock": { "version": "13.0.4", "resolved": "https://registry.npmjs.org/nock/-/nock-13.0.4.tgz", @@ -2663,6 +3703,124 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, + "node-plop": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.2.tgz", + "integrity": "sha512-q444beWkMvZwAiYC3BRGJUHgRlpOItQHy+xdy6egXg8KjxDY/Ro309spQTNvH01qK9A8XF6pc0xLKbrHDpxW7w==", + "requires": { + "@babel/runtime-corejs3": "^7.9.2", + "@types/inquirer": "^6.5.0", + "change-case": "^3.1.0", + "del": "^5.1.0", + "globby": "^10.0.1", + "handlebars": "^4.4.3", + "inquirer": "^7.1.0", + "isbinaryfile": "^4.0.2", + "lodash.get": "^4.4.2", + "mkdirp": "^0.5.1", + "resolve": "^1.12.0" + }, + "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==", + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -2733,6 +3891,39 @@ "path-key": "^3.0.0" } }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", @@ -2743,6 +3934,14 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -2754,6 +3953,17 @@ "object-keys": "^1.1.1" } }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, "object.entries": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", @@ -2817,6 +4027,23 @@ } } }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, "object.values": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", @@ -2879,6 +4106,73 @@ "word-wrap": "~1.2.3" } }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "os-name": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.0.tgz", @@ -2891,8 +4185,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { "version": "2.0.0", @@ -2928,13 +4221,31 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "callsites": "^3.0.0" + "callsites": "^3.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" } }, "parse-json": { @@ -2946,6 +4257,33 @@ "error-ex": "^1.2.0" } }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "requires": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "requires": { + "no-case": "^2.2.0" + } + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -2970,8 +4308,20 @@ "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==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, "path-type": { "version": "2.0.0", @@ -2988,19 +4338,10 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "requires": { - "through": "~2.3" - } - }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { "version": "2.3.0", @@ -3068,6 +4409,63 @@ } } }, + "plop": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.4.tgz", + "integrity": "sha512-SaqN3mwug/Ur2RE/ryo05oLTLy+8qZGwosNt9JnrFWca+dLCsPJR1j2ZXwjrccmNu6LA7eB56lRyk/G0fKf9HA==", + "requires": { + "@types/liftoff": "^2.5.0", + "chalk": "^1.1.3", + "interpret": "^1.2.0", + "liftoff": "^2.5.0", + "minimist": "^1.2.0", + "node-plop": "~0.26.2", + "ora": "^3.4.0", + "v8flags": "^2.0.10" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -3113,12 +4511,6 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", - "dev": true - }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -3215,12 +4607,44 @@ "picomatch": "^2.0.4" } }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3235,7 +4659,6 @@ "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, "requires": { "is-core-module": "^2.1.0", "path-parse": "^1.0.6" @@ -3246,12 +4669,26 @@ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==" }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -3264,7 +4701,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -3273,25 +4709,33 @@ "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, "requires": { "mimic-fn": "^1.0.0" } } } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "retry": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, "rewire": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", @@ -3661,14 +5105,17 @@ "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" }, "rxjs": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, "requires": { "tslib": "^1.9.0" } @@ -3678,6 +5125,14 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -3688,11 +5143,41 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" }, + "sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "requires": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3711,6 +5196,11 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -3781,6 +5271,134 @@ } } }, + "snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "requires": { + "no-case": "^2.2.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "socks": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.0.tgz", @@ -3803,8 +5421,24 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { "version": "3.1.1", @@ -3846,6 +5480,14 @@ "through": "2" } }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -3867,21 +5509,23 @@ "escodegen": "^1.8.1" } }, - "stream": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", - "integrity": "sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=", - "requires": { - "emitter-component": "^1.1.1" - } - }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, "stream-transform": { @@ -3978,33 +5622,6 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, - "superagent": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", - "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", - "dev": true, - "requires": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.1", - "methods": "^1.1.2", - "mime": "^2.4.4", - "qs": "^6.9.1", - "readable-stream": "^3.4.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4013,6 +5630,15 @@ "has-flag": "^4.0.0" } }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", @@ -4075,20 +5701,61 @@ "readable-stream": "2 || 3" } }, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -4096,8 +5763,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tty-table": { "version": "4.1.1", @@ -4156,11 +5822,33 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, + "uglify-js": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz", + "integrity": "sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==", + "optional": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, "underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -4182,6 +5870,55 @@ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "requires": { + "upper-case": "^1.1.1" + } + }, "uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", @@ -4191,6 +5928,21 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -4202,6 +5954,14 @@ "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "^1.1.1" + } + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -4298,6 +6058,11 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", diff --git a/package.json b/package.json index 1e5a0b8e..478bfb15 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "co-prompt": "1.0.0", "commander": "6.2.0", "debug": "4.1.1", - "event-stream": "4.0.1", "find-package-json": "1.2.0", "glob": "7.1.6", "got": "11.7.0", @@ -57,7 +56,6 @@ "progress": "2.0.3", "semver": "7.1.3", "split": "1.0.1", - "stream": "0.0.2", "through2": "3.0.1", "tty-table": "4.1.1", "unquote": "1.1.1" @@ -70,7 +68,6 @@ "eslint-plugin-import": "2.20.2", "mocha": "7.1.1", "nock": "13.0.4", - "rewire": "5.0.0", - "superagent": "5.2.2" + "rewire": "5.0.0" } } diff --git a/src/commands/generate.js b/src/commands/generate.js index e4fbbf9f..1a43654d 100644 --- a/src/commands/generate.js +++ b/src/commands/generate.js @@ -1,14 +1,14 @@ module.exports.GenerateSkillCommand = class GenerateSkillCommand { - constructor(program) { this.program = program; } + // eslint-disable-next-line no-unused-vars execute(options) { const path = require('path'); - const {Plop, run} = require('plop'); + const { Plop, run } = require('plop'); Plop.launch({ - configPath: path.join(__dirname, 'plopfile.js') + configPath: path.join(__dirname, 'plopfile.js'), }, run); } }; diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index da291c81..dbd809bf 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -1,20 +1,20 @@ const path = require('path'); -module.exports = plop => { +module.exports = (plop) => { plop.setGenerator('skill', { description: 'Generate Cortex Skill project', prompts: [ { type: 'input', name: 'name', - message: 'Skill Name?' + message: 'Skill Name?', }, { type: 'list', name: 'type', message: 'Skill Type?', - choices: ['Daemon', 'Job', 'External API'] - } + choices: ['Daemon', 'Job', 'External API'], + }, ], actions: [ { @@ -23,7 +23,7 @@ module.exports = plop => { destination: path.join(path.resolve('.'), '{{ dashCase name }}'), // Handlebars template used to generate content of project files base: 'assets/templates/skill/{{dashCase type}}', - //Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. So not using hbs extension in Dockerfile and picking all files in directory + // Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. So not using hbs extension in Dockerfile and picking all files in directory templateFiles: path.join('assets/templates/skill/{{dashCase type}}', '**/*'), abortOnFail: true, // Must not overwrite files with scaffolding template if already exists From 6d2ac9862ccf2f0be5678f270896117c8a4cf202 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 4 Dec 2020 23:55:20 -0600 Subject: [PATCH 184/864] remove unquote --- src/commands/utils.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 51329905..dbc57336 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -25,7 +25,6 @@ const jmsepath = require('jmespath'); const os = require('os'); const osName = require('os-name'); const path = require('path'); -const unquote = require('unquote'); const yaml = require('js-yaml'); const { exec } = require('child_process'); @@ -90,10 +89,10 @@ module.exports.filterObject = (obj, options) => { module.exports.parseObject = (str, options) => { if (options.yaml) { - return yaml.safeLoad(unquote(str)); + return yaml.safeLoad(str); } - return JSON.parse(unquote(str)); + return JSON.parse(str); }; function _extractValues(fields, obj) { From 8457f99ea3dc1ff6f0bec916101dada1c98ae7dc Mon Sep 17 00:00:00 2001 From: ljha-CS Date: Sat, 5 Dec 2020 23:03:50 +0530 Subject: [PATCH 185/864] formatting changes --- .../templates/skill/external-api/skill.yaml.hbs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/commands/assets/templates/skill/external-api/skill.yaml.hbs b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs index 4da00aff..4bbaa108 100644 --- a/src/commands/assets/templates/skill/external-api/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs @@ -4,27 +4,26 @@ title: {{name}} description: {{name}} properties: - name: url - title: URL to invoke + title: URL description: http[s]://host:port required: true type: String - name: path title: API path - description: API Path (optional) + description: API URL Path + required: true type: String - name: headers.content-type - title: Authorization header - description: Header as an individual property (optional) + title: Content-Type header + description: Response Content Type defaultValue: 'application/json' - type: String - - name: headers.authorization - title: Authorization header - description: Header as an individual property (optional) + required: true type: String - name: method title: HTTP Method - description: (optional) + description: HTTP Method defaultValue: POST + required: true type: String inputs: - name: input From 18476b3bf978ab916d13bff01ad464ee441d8826 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Sat, 5 Dec 2020 13:22:21 -0600 Subject: [PATCH 186/864] FAB-673 Fix invoke skill JSON parse issue, fix skill save promise issue --- src/client/agents.js | 6 ++---- src/commands/skills.js | 41 +++++++++++++++++++++-------------------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/src/client/agents.js b/src/client/agents.js index 23f29148..af84e791 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -32,8 +32,7 @@ module.exports = class Agents { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), json: params, - responseType: 'json', - }) + }).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); } @@ -46,8 +45,7 @@ module.exports = class Agents { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), json: params, - responseType: 'json', - }) + }).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); } diff --git a/src/commands/skills.js b/src/commands/skills.js index 50c708c6..b777ce2d 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); @@ -27,32 +28,32 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { this.program = program; } - execute(skillDefinition, options) { + async execute(skillDefinition, options) { const profile = loadProfile(options.profile); debug('%s.executeSaveSkill(%s)', profile.name, skillDefinition); - - const skillDefStr = fs.readFileSync(skillDefinition); - const skill = parseObject(skillDefStr, options); - - const catalog = new Catalog(profile.url); - catalog.saveSkill(options.project || profile.project, profile.token, skill).then((response) => { + try { + const skillDefStr = fs.readFileSync(skillDefinition); + const skill = parseObject(skillDefStr, options); + const catalog = new Catalog(profile.url); + const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); if (response.success) { printSuccess('Skill saved', options); - } else if (response.details) { - console.log(`Failed to save skill: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map(d => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); + } else { + console.log(`Failed to save skill: ${response.message}`); + if (response.details) { + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + } printError(''); // Just exit } - }) - .catch((err) => { - printError(`Failed to save skill: ${err.status} ${err.response.body.error}`, options); - }); + } catch (err) { + printError(`Failed to save skill: ${_.get(err, 'status', '')} ${_.get(err, 'response.body.error', err.message)}`, options); + } } }; From 5701e57d3acdd84e0ada7ce47a4063eeca9e9e01 Mon Sep 17 00:00:00 2001 From: ljha-CS Date: Sun, 6 Dec 2020 01:12:14 +0530 Subject: [PATCH 187/864] added auth header --- .../assets/templates/skill/external-api/skill.yaml.hbs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/commands/assets/templates/skill/external-api/skill.yaml.hbs b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs index 4bbaa108..f8bf08dd 100644 --- a/src/commands/assets/templates/skill/external-api/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs @@ -25,6 +25,10 @@ properties: defaultValue: POST required: true type: String + - name: headers.authorization + title: Authorization Token + description: Authorization token (if required) + type: String inputs: - name: input title: input From 4b969c0e062b5ae9d2d5f97dea5eda99c21ad594 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Sat, 5 Dec 2020 13:47:46 -0600 Subject: [PATCH 188/864] Update package.json Version bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 478bfb15..b85e479f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.2", + "version": "2.0.0-a.3", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 59eb5c2461367e0dbe1678d952b6ef998c26dba2 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 7 Dec 2020 15:45:01 +0530 Subject: [PATCH 189/864] describe agent snapshot is returning JSON but earlier it was returning response, this broke deploy snapshot. Fixing this with updated agent describe snapshot --- src/commands/deploy.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 8c7511a0..cfaa75e9 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -18,7 +18,7 @@ const path = require('path'); const { loadProfile } = require('../config'); const Agents = require('../client/agents'); const { - printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, + printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, } = require('./utils'); @@ -68,7 +68,7 @@ module.exports.DeploySnapshotCommand = class { const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((response) => { - if (response.success) { + // if (response.success) { let result = filterObject(response.result, options); result = cleanInternalFields(result); // TODO add validation for not exporting tip snapshots, as they don't have all dependencies. Should we enforce? @@ -81,8 +81,8 @@ module.exports.DeploySnapshotCommand = class { writeToFile(result, filepath); printSuccess(`Successfully exported agent snapshot ${filepath}`); return filepath; - } - return printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); + // } + // return printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); }).catch((err) => { printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); })); From 99a99775704a9e8f742e44e74e6cc1f92e75d339 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 7 Dec 2020 12:07:21 -0600 Subject: [PATCH 190/864] release 2.0.0-a.3 (#276) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports * bumped generator version to `0.3.24` * Bump version to 0.12.19 (#211) * Improvements to graph client and command client. (#213) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. * [CCF-12214] Specify custom HTTP User-Agent header value for all requests * 0.13.0 * [CCF-11868] Add scaleCount option to action deploy * 0.14.0 * Nein, marketplace * 1.0.0 * [CCF-12231] Fix endpoint specification for deleting a profile * 1.0.1 * [CCF-12390] Update deps to pass audit * 1.0.2 * rebase master, fixup package-lock.json * Fix api end (#224) * Remove api endpoint * clean up * Ccf 12660 develop rebase (#226) * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 clean up verbage * CCF-12660 cmd to command * CCF-12660 update to 1.0.3 * CCF-12660 remove vcpu and memory option parsing * Update dependencies and remove deprecation warnings (#223) * Update dependencies and remove deprecation warnings Joi method change remove dead code remove dead test * Version bump mocha, uuid * Added missing split dep, remove unused url dep * deprecated the `--kind` and `--code` options on the actions subcommand, no longer pass the option from the client to the command and also displays a warning when the options are still passed in (#228) * Ccf 12859 cortextoken warning (#230) * Add node version to package json to ensure we have a new enough node version, warn if use is using CORTEX_TOKEN * CCF-12859 Add message to warn users that CORTEX_TOKEN is set Require NODE 10.x or higher!! Bump package.json for vulns * Fix default behavior for cortex configure with new isDefault: true from commander * Fix missing options on cortex configure * CCF-12822 npm doesnot enforce anything, add preinstall check (#231) * CCF-12822 npm doesnot enforce anything, add preinstall check * pack-lock * Bump builder image from c12e/nodejs:dev-8.11.0 to 10.21.0 * CCF-12767: adding deprecated warnings to project and skills generate commands (#235) * bump version to 1.1.1 (#237) * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * added * FAB-285 SSO auth, temp whoAmI, project option support (#240) * FAB-285 SSO auth, temp whoAmI, project option support * FAB-285 SSO fix unit tests * FAB-285 SSO add project option to every command * FAB-285 cleanup issuance, process env and token exp (#242) * FAB-285 cleanup issuance, process env and token exp * FAB-285 handle auth error (#243) * FAB-285 handle auth error * FAB-285 better status code * Feature/fab183 projects (#241) * WIP to fix non JSON query responses on CLI * First pass at emitting markdown for cortex cli docs * Quote <> in text, replace
with
* added header * remove newline line 1 * Last tweaks generate_docs.js * WIP * WIP skills, actions, agents, snapshots working using projects. Remove request and using got Removed v2 jobs, tasks, envirnonments, instances First pass on connections, content, datasets * Added linting, fixes linting errors * Fixed unit tests, re-added user agent * update for url changes * Fixed bad url content upload * Missed adding projectId in secrets requests, renamed variables -> secrets, fixed error messages I hope * Fix cortex types list * Removed cortex datasets generate * URI typo * rebase/linting * Rebase on dev, added redirect hook to properly handle server-server auth resp * Fab 328 project commands (#244) * Add initial cli commands for projects * cleaup linting * FAB-177 rbac tools initial (#245) * FAB-177 rbac tools initial * FAB-177 rbac got, options, messaging * FAB-177 lint, copyright * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for develop… (#246) * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for developer sanity * Fix error handling saving types * Added alias for describe * Remove dead commands, sort command help (#247) * Added missing get aliases (#248) * Added missing get aliases * Rename projects create project save, fix promise error * FAB-177 get rid of whoami (#249) * FAB-177 remove list roles by user (#250) * FAB-177 remove list roles by user * FAB-177 including configure token command to get access token * set versio to 2.0.0-a.1 (#251) * FAB-177 error handling (#253) * cortex skills generate command added * formatting fix * generate skill command based on plopjs * skill type template * skill generation templates added * cmd description * removed unused generate-cortex dependencies * Add ability to export snapshot as a k8s agent + skills CRs (#256) * Add ability to export snapshot as a k8s agent + skills CRs * Fix extra args bug, fix error handling get-snapshot * Fix empty --output issue * FAB-342 deny action flag and external group commands (#257) * FAB-342 deny action flag and external group commands * FAB-342 package update and lint * FAB-342 external group endpoint change * fix travis build (#258) * GQL type name changed from ProjectInput -> CreateProjectInput (#260) * using lodash whn getting connection params (#259) * Added readme and removed deploy.sh. Described deployment in readme * fixing lodash commands for testing and saving a connection (#261) * Linting, node version bump (#264) * Update cortex-users.js * Fix specific typo * roless typo fixed * Update cortex-profiles.js * Fix agent validation output (#267) * Clean up (#268) * Remove references to environmentName * remove listtrigger command * remove dead commands, add skill invoke command * remove dataets.*, connection test/query * invokeSkill fixes (#269) * renamed __main__.py to main.py due to conflict with __main__ module name reserved in python * Fix undefined (#270) * Allow json file for action save * Fix skill invoke output, get-snapshot output, fix action save/deploy * Wasnot passing params, pass it and simplify request a bit * linting * remove unquote * formatting changes * FAB-673 Fix invoke skill JSON parse issue, fix skill save promise issue * added auth header * Update package.json Version bump * describe agent snapshot is returning JSON but earlier it was returning response, this broke deploy snapshot. Fixing this with updated agent describe snapshot Co-authored-by: Christine Draper Co-authored-by: clee Co-authored-by: Matt Sanchez Co-authored-by: David Aldridge Co-authored-by: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Co-authored-by: ljha Co-authored-by: yreddy-CS --- README.md | 5 - bin/cortex-actions.js | 246 +- bin/cortex-agents.js | 67 +- bin/cortex-connections.js | 38 - bin/cortex-datasets.js | 120 - bin/cortex-generate.js | 40 + bin/cortex-profiles.js | 4 +- bin/cortex-roles.js | 2 +- bin/cortex-skills.js | 19 + bin/cortex-users.js | 2 +- bin/cortex.js | 2 +- package-lock.json | 2108 +++++++++++++++-- package.json | 11 +- src/client/actions.js | 19 +- src/client/agents.js | 44 +- src/client/datasets.js | 86 - src/commands/actions.js | 62 +- src/commands/agents.js | 49 +- .../assets/templates/skill/daemon/Dockerfile | 4 + .../assets/templates/skill/daemon/README.md | 28 + .../assets/templates/skill/daemon/main.py.hbs | 9 + .../skill/daemon/requirements.txt.hbs | 3 + .../templates/skill/daemon/skill.yaml.hbs | 40 + .../templates/skill/external-api/README.md | 8 + .../skill/external-api/skill.yaml.hbs | 41 + .../assets/templates/skill/job/Dockerfile | 4 + .../assets/templates/skill/job/README.md | 25 + .../assets/templates/skill/job/main.py.hbs | 7 + .../templates/skill/job/requirements.txt.hbs | 1 + .../assets/templates/skill/job/skill.yaml.hbs | 26 + src/commands/datasets.js | 165 -- src/commands/deploy.js | 11 +- src/commands/generate.js | 14 + src/commands/plopfile.js | 35 + src/commands/skills.js | 96 +- src/commands/utils.js | 2 +- 36 files changed, 2521 insertions(+), 922 deletions(-) delete mode 100644 bin/cortex-datasets.js create mode 100755 bin/cortex-generate.js delete mode 100644 src/client/datasets.js create mode 100644 src/commands/assets/templates/skill/daemon/Dockerfile create mode 100644 src/commands/assets/templates/skill/daemon/README.md create mode 100644 src/commands/assets/templates/skill/daemon/main.py.hbs create mode 100644 src/commands/assets/templates/skill/daemon/requirements.txt.hbs create mode 100644 src/commands/assets/templates/skill/daemon/skill.yaml.hbs create mode 100644 src/commands/assets/templates/skill/external-api/README.md create mode 100644 src/commands/assets/templates/skill/external-api/skill.yaml.hbs create mode 100644 src/commands/assets/templates/skill/job/Dockerfile create mode 100644 src/commands/assets/templates/skill/job/README.md create mode 100644 src/commands/assets/templates/skill/job/main.py.hbs create mode 100644 src/commands/assets/templates/skill/job/requirements.txt.hbs create mode 100644 src/commands/assets/templates/skill/job/skill.yaml.hbs delete mode 100644 src/commands/datasets.js create mode 100644 src/commands/generate.js create mode 100644 src/commands/plopfile.js diff --git a/README.md b/README.md index 62e39066..d9d41f05 100644 --- a/README.md +++ b/README.md @@ -174,11 +174,6 @@ cortex agents list --query "[].{name: name, title: title}" - [x] get-stream [datasetName] - [x] generate - [ ] snapshots -- [ ] environments - - [ ] list - - [ ] save [environmentDefinition] - - [ ] delete [environmentDefinition] - - [ ] describe [environmentName] - [ ] container-registries - [ ] list - [ ] save [registryName] diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index c1f7d937..dd9121f4 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -26,13 +26,14 @@ const { DescribeActionCommand, DeleteActionCommand, DeployActionCommand, - GetLogsCommand, + // TODO readd logs/task calls + // GetLogsCommand, InvokeActionCommand, - JobTaskListActionCommand, - TaskCancelActionCommand, - TaskLogsActionCommand, - TaskStatsActionCommand, - TaskStatusActionCommand, + // JobTaskListActionCommand, + // TaskCancelActionCommand, + // TaskLogsActionCommand, + // TaskStatsActionCommand, + // TaskStatusActionCommand, } = require('../src/commands/actions'); program.description('Work with Cortex Actions'); @@ -92,22 +93,22 @@ program } })); -// Get logs Action -program - .command('logs ') - .description('Get logs for an action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--json', 'Return raw JSON response') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((actionName, options) => { - try { - new GetLogsCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); +// // Get logs Action +// program +// .command('logs ') +// .description('Get logs for an action') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--json', 'Return raw JSON response') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .action(withCompatibilityCheck((actionName, options) => { +// try { +// new GetLogsCommand(program).execute(actionName, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); // Invoke Action program @@ -135,124 +136,115 @@ program // Deploy Action program - .command('deploy ') + .command('deploy [actionDefinition]') .alias('save') .description('Deploy an action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--docker [image]', 'Docker image to use as the runner') - .option('--ttl [ttl]', 'Daemon time to live') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') .option('--actionType [actionType]', 'Type of action') - .option('--port [port]', 'Docker port') // '9091' - .option('--environment [environment]', 'Environment') .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' - .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') - .option('--push-docker', 'Push Docker image to the Cortex registry.') - .option('--scaleCount [count]', 'Scale count', 'Scale count, only used for daemon action types') - .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, ' - + 'used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') - .action(withCompatibilityCheck((actionName, options) => { - try { - if (!options.docker) { - throw new Error('--docker [image] required'); - } - // allow kind with docker for blackbox images.. - // if (options.docker && options.kind) { - // throw new Error('Use either --kind [kind] or --docker [image], but not both'); - // } - - new DeployActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Tasks logs -program - .command('task-logs ') - .description('Get Tasks logs') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new TaskLogsActionCommand(program).execute(jobId, taskId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Cancel Tasks -program - .command('task-cancel ') - .description('Cancel Task') - .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new TaskCancelActionCommand(program).execute(jobId, taskId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Tasks Status -program - .command('task-status ') - .description('Get Task\'s status') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, taskId, options) => { - try { - new TaskStatusActionCommand(program).execute(jobId, taskId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Job tasks -program - .command('task-list ') - .description('List Job\'s tasks status') + .option('--docker [image]', 'Docker image to use as the runner') + .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') + .option('--actionName [name]', 'Action name') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('--port [port]', 'Docker port') // '9091' .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' - + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') - .action(withCompatibilityCheck((jobId, options) => { + .option('--push-docker', 'Push Docker image to the Cortex registry.') + .option('--scaleCount [count]', 'Scale count, only used for daemon action types') + .option('-y, --yaml', 'Use YAML format') + .action(withCompatibilityCheck((actionName, options) => { try { - new JobTaskListActionCommand(program).execute(jobId, options); + new DeployActionCommand(program).execute(actionName, options); } catch (err) { console.error(chalk.red(err.message)); } })); -// Get Job Stats -program - .command('task-stats ') - .description('Get Task\'s stats for a given Job') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((jobId, options) => { - try { - new TaskStatsActionCommand(program).execute(jobId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); +// // Get Tasks logs +// program +// .command('task-logs ') +// .description('Get Tasks logs') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') +// .action(withCompatibilityCheck((jobId, taskId, options) => { +// try { +// new TaskLogsActionCommand(program).execute(jobId, taskId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); +// +// // Cancel Tasks +// program +// .command('task-cancel ') +// .description('Cancel Task') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') +// .action(withCompatibilityCheck((jobId, taskId, options) => { +// try { +// new TaskCancelActionCommand(program).execute(jobId, taskId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); +// +// // Get Tasks Status +// program +// .command('task-status ') +// .description('Get Task\'s status') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') +// .action(withCompatibilityCheck((jobId, taskId, options) => { +// try { +// new TaskStatusActionCommand(program).execute(jobId, taskId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); +// +// // List Job tasks +// program +// .command('task-list ') +// .description('List Job\'s tasks status') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' +// + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') +// .action(withCompatibilityCheck((jobId, options) => { +// try { +// new JobTaskListActionCommand(program).execute(jobId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); +// +// // Get Job Stats +// program +// .command('task-stats ') +// .description('Get Task\'s stats for a given Job') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') +// .action(withCompatibilityCheck((jobId, options) => { +// try { +// new TaskStatsActionCommand(program).execute(jobId, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); program.parse(process.argv); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index ddc9f5c6..e277053e 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -28,18 +28,12 @@ const { InvokeAgentServiceCommand, GetActivationCommand, ListActivationsCommand, - ListSnapshotInstancesCommand, - ListTriggersCommand, ListServicesCommand, ListAgentSnapshotsCommand, DescribeAgentSnapshotCommand, CreateAgentSnapshotCommand, } = require('../src/commands/agents'); -const { - ListTaskByActivation, -} = require('../src/commands/actions'); - program.description('Work with Cortex Agents'); // Save Agent @@ -133,18 +127,17 @@ program })); program - .command('list-activations ') - .description('List agent instance activations') + .command('list-activations ') + .description('List agent activations') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((instanceId, options) => { + .action(withCompatibilityCheck((snapshotId, options) => { try { - new ListActivationsCommand(program).execute(instanceId, options); + new ListActivationsCommand(program).execute(snapshotId, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -175,7 +168,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((agentName, options) => { @@ -186,25 +178,6 @@ program } })); -// List snapshot instances -program - .command('list-snapshot-instances ') - .description('List snapshot instances ') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--environmentName [environmentName]', 'The environment to list or \'all\'') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((snapshotId, options) => { - try { - new ListSnapshotInstancesCommand(program).execute(snapshotId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - program .command('describe-snapshot ') .alias('get-snapshot') @@ -240,36 +213,4 @@ program } })); -// List triggers -program - .command('list-triggers') - .description('List of triggers for the current tenant') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((options) => { - try { - new ListTriggersCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Tasks -program - .command('list-tasks ') - .description('List tasks associated with a given activationId') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((activationId, options) => { - try { - new ListTaskByActivation(program).execute(activationId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - program.parse(process.argv); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 61641dbb..e29f7e52 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -24,9 +24,7 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { ListConnections, SaveConnectionCommand, - QueryConnectionCommand, DescribeConnectionCommand, - TestConnectionCommand, ListConnectionsTypes, } = require('../src/commands/connections'); @@ -68,25 +66,6 @@ program } })); -// Query Connection -program - .command('query ') - .description('Query a connection.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Pretty print JSON results') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'The query to use, "select 1" is default') - .option('--file [file]', 'Location of file containing query string') - .action(withCompatibilityCheck((connName, options) => { - try { - new QueryConnectionCommand(program).execute(connName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - // Describe Connection program .command('describe ') @@ -105,23 +84,6 @@ program } })); -// Test Connections -program - .command('test ') - .description('Test a connections definition before saving. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for agent definition format') - .action(withCompatibilityCheck((connDefinition, options) => { - try { - new TestConnectionCommand(program).execute(connDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - // List Connections Types program .command('list-types') diff --git a/bin/cortex-datasets.js b/bin/cortex-datasets.js deleted file mode 100644 index 01b7f630..00000000 --- a/bin/cortex-datasets.js +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListDatasets, - SaveDatasetsCommand, - DescribeDatasetCommand, - GetDataframeCommand, - StreamDatasetCommand, -} = require('../src/commands/datasets'); - -program.description('Work with Cortex Connections'); - - -// List Dataset -program - .command('list') - .description('List Datasets') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using detailed JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .action(withCompatibilityCheck((options) => { - try { - new ListDatasets(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Save Dataset -program - .command('save ') - .description('Save a dataset definition. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for dataset file definition format') - .action(withCompatibilityCheck((datasetDef, options) => { - try { - new SaveDatasetsCommand(program).execute(datasetDef, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Dataset -program - .command('describe ') - .alias('get') - .description('Describe dataset') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new DescribeDatasetCommand(program).execute(datasetName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Dataframe -program - .command('get-dataframe ') - .description('Get dataset in dataframe format') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new GetDataframeCommand(program).execute(datasetName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get Stream -program - .command('get-stream ') - .description('Stream dataset content') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((datasetName, options) => { - try { - new StreamDatasetCommand(program).execute(datasetName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js new file mode 100755 index 00000000..b21d9425 --- /dev/null +++ b/bin/cortex-generate.js @@ -0,0 +1,40 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { + GenerateSkillCommand, +} = require('../src/commands/generate'); + +program.description('Scaffolding Cortex Components'); + +program + .command('skill') + .description('Generates the structure and top level build script for a skill in current directory') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .action((options) => { // deliberately not using withCompatibilityCheck() + try { + new GenerateSkillCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + +program.parse(process.argv); diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js index 16204e29..ae2715b8 100755 --- a/bin/cortex-profiles.js +++ b/bin/cortex-profiles.js @@ -139,8 +139,8 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--before [before]', 'Filter versions before a sepcific date.') - .option('--after [after]', 'Filter versions after a sepcific date.') + .option('--before [before]', 'Filter versions before a specific date.') + .option('--after [after]', 'Filter versions after a specific date.') .option('--limit [limit]', 'Limit the number of events returned.') .action(withCompatibilityCheck((profileId, schemaName, options) => { try { diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index af05d52b..5f0d4fbe 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -165,7 +165,7 @@ program.command('describe-external ') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--users', 'List users associated with external group') - .option('--roles', 'List roless associated with external group') + .option('--roles', 'List roles associated with external group') .action(withCompatibilityCheck((externalGroup, options) => { try { new ExternalGroupDescribeCommand(program).execute(externalGroup, options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 12ef898b..94faa2a6 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -25,6 +25,7 @@ const { SaveSkillCommand, ListSkillsCommand, DescribeSkillCommand, + InvokeSkillCommand, } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); @@ -82,4 +83,22 @@ program } })); +// Invoke Skill +program + .command('invoke ') + .description('Invoke a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--params [params]', 'JSON params to send to the action') + .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .action(withCompatibilityCheck((skillName, inputName, options) => { + try { + new InvokeSkillCommand(program).execute(skillName, inputName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 301c761a..d2c3d2b3 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -68,7 +68,7 @@ program.command('project ') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .requiredOption('--users ', 'Uesrs to add/remove on project') + .requiredOption('--users ', 'Users to add/remove on project') .option('--delete', 'Unassign users from project') .action(withCompatibilityCheck((project, options) => { try { diff --git a/bin/cortex.js b/bin/cortex.js index c8587967..079be8ed 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -31,10 +31,10 @@ program .command('configure', 'Configure the Cortex CLI') .command('connections [cmd]', 'Work with Cortex Connections') .command('content [cmd]', 'Work with Cortex Managed Content') - .command('datasets [cmd]', 'Work with Cortex Datasets') .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') + .command('generate [cmd]', 'Scaffold Cortex Components') .command('graph [cmd]', 'Work with the Cortex Graph') .command('profiles [cmd]', 'Work with Cortex Profiles') .command('projects [cmd]', 'Work with Cortex Projects') diff --git a/package-lock.json b/package-lock.json index c96b89e9..2b1efbc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,6 +82,15 @@ } } }, + "@babel/runtime-corejs3": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", + "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, "@hapi/address": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", @@ -125,6 +134,29 @@ "@hapi/hoek": "^9.0.0" } }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, "@npmcli/ci-detect": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", @@ -172,11 +204,42 @@ "@types/responselike": "*" } }, + "@types/fined": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.2.tgz", + "integrity": "sha512-hzzTS+X9EqDhx4vwdch/DOZci/bfh5J6Nyz8lqvyfBg2ROx2fPafX+LpDfpVgSvQKj0EYkwTYpBO3z2etwbkOw==" + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/http-cache-semantics": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" }, + "@types/inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", + "requires": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "@types/interpret": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", + "requires": { + "@types/node": "*" + } + }, "@types/keyv": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", @@ -185,6 +248,21 @@ "@types/node": "*" } }, + "@types/liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha512-1jsThE//wKDK+hYM+NJqswI+K9lfR0YNMctteOxAzk/aemI0rQsVDk6Dia0zkPfBWFTh+hiDmrGQXqP1tyM+eg==", + "requires": { + "@types/fined": "*", + "@types/interpret": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", @@ -198,6 +276,14 @@ "@types/node": "*" } }, + "@types/through": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", + "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "requires": { + "@types/node": "*" + } + }, "acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", @@ -312,6 +398,26 @@ "sprintf-js": "~1.0.2" } }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" + }, "array-includes": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", @@ -344,6 +450,21 @@ } } }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, "array.prototype.flat": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", @@ -360,6 +481,11 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -371,11 +497,66 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", @@ -421,7 +602,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -469,6 +649,22 @@ "unique-filename": "^1.1.1" } }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "cacheable-lookup": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz", @@ -503,6 +699,15 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -540,11 +745,35 @@ "supports-color": "^7.1.0" } }, + "change-case": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "check-error": { "version": "1.0.2", @@ -573,6 +802,27 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -587,11 +837,15 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, "requires": { "restore-cursor": "^2.0.0" } }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" + }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", @@ -657,6 +911,15 @@ "keypress": "~0.2.1" } }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -691,25 +954,37 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "requires": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "dev": true + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js-pure": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.0.tgz", + "integrity": "sha512-fRjhg3NeouotRoIV0L1FdchA6CK7ZD+lyINyMoz19SyV+ROpC4noS1xItWHFtwZdlqfMfVPJEyEGdfri2bD1pA==" }, "cross-fetch": { "version": "3.0.6", @@ -768,6 +1043,11 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -818,6 +1098,68 @@ "object-keys": "^1.0.12" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "requires": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -825,15 +1167,35 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + } + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -843,15 +1205,13 @@ "esutils": "^2.0.2" } }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "emitter-component": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.1.tgz", - "integrity": "sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY=" + "dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "requires": { + "no-case": "^2.2.0" + } }, "emoji-regex": { "version": "7.0.3", @@ -921,8 +1281,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { "version": "1.14.3", @@ -1308,20 +1667,6 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, - "event-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "requires": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -1338,11 +1683,87 @@ "strip-final-newline": "^2.0.0" } }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -1353,13 +1774,71 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } } } }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -1371,6 +1850,30 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1382,11 +1885,13 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", - "dev": true + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "requires": { + "reusify": "^1.0.4" + } }, "figures": { "version": "2.0.0", @@ -1410,7 +1915,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -1429,6 +1933,44 @@ "path-exists": "^4.0.0" } }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" + }, "flat": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", @@ -1466,8 +2008,21 @@ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, - "form-data": { - "version": "3.0.0", + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "^1.0.1" + } + }, + "form-data": { + "version": "3.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "requires": { @@ -1476,16 +2031,13 @@ "mime-types": "^2.1.12" } }, - "formidable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", - "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==", - "dev": true - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } }, "fs-minipass": { "version": "2.1.0", @@ -1547,6 +2099,11 @@ "pump": "^3.0.0" } }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -1564,7 +2121,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -1577,12 +2133,66 @@ "ini": "^1.3.5" } }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + } + } + }, "got": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/got/-/got-11.7.0.tgz", @@ -1604,8 +2214,7 @@ "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "grapheme-splitter": { "version": "1.0.4", @@ -1633,6 +2242,18 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1641,6 +2262,21 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1651,12 +2287,81 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hosted-git-info": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", @@ -1870,11 +2575,48 @@ } } }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -1905,21 +2647,64 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", - "dev": true, "requires": { "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -1930,7 +2715,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -1949,22 +2733,42 @@ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "requires": { + "lower-case": "^1.1.0" + } + }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" }, "is-path-inside": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, "is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", @@ -1973,6 +2777,14 @@ "has-symbols": "^1.0.1" } }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", @@ -1992,17 +2804,47 @@ "has-symbols": "^1.0.1" } }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "requires": { + "upper-case": "^1.1.0" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", @@ -2071,7 +2913,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } @@ -2089,6 +2931,11 @@ "json-buffer": "3.0.1" } }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -2103,6 +2950,21 @@ "type-check": "~0.3.2" } }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -2128,6 +2990,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", @@ -2195,6 +3062,19 @@ } } }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "requires": { + "lower-case": "^1.1.2" + } + }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -2235,27 +3115,138 @@ "ssri": "^8.0.0" } }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", - "dev": true + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } }, "mime-db": { "version": "1.44.0", @@ -2291,8 +3282,7 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "3.1.3", @@ -2363,6 +3353,25 @@ "yallist": "^4.0.0" } }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mixme": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.4.0.tgz", @@ -2616,18 +3625,49 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, "nock": { "version": "13.0.4", "resolved": "https://registry.npmjs.org/nock/-/nock-13.0.4.tgz", @@ -2663,6 +3703,124 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, + "node-plop": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.2.tgz", + "integrity": "sha512-q444beWkMvZwAiYC3BRGJUHgRlpOItQHy+xdy6egXg8KjxDY/Ro309spQTNvH01qK9A8XF6pc0xLKbrHDpxW7w==", + "requires": { + "@babel/runtime-corejs3": "^7.9.2", + "@types/inquirer": "^6.5.0", + "change-case": "^3.1.0", + "del": "^5.1.0", + "globby": "^10.0.1", + "handlebars": "^4.4.3", + "inquirer": "^7.1.0", + "isbinaryfile": "^4.0.2", + "lodash.get": "^4.4.2", + "mkdirp": "^0.5.1", + "resolve": "^1.12.0" + }, + "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==", + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -2733,6 +3891,39 @@ "path-key": "^3.0.0" } }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", @@ -2743,6 +3934,14 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -2754,6 +3953,17 @@ "object-keys": "^1.1.1" } }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, "object.entries": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", @@ -2817,6 +4027,23 @@ } } }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, "object.values": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", @@ -2879,6 +4106,73 @@ "word-wrap": "~1.2.3" } }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "requires": { + "chalk": "^2.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "os-name": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.0.tgz", @@ -2891,8 +4185,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { "version": "2.0.0", @@ -2928,22 +4221,67 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "callsites": "^3.0.0" + "callsites": "^3.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "requires": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", "requires": { - "error-ex": "^1.2.0" + "no-case": "^2.2.0" } }, "path-exists": { @@ -2970,8 +4308,20 @@ "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==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, "path-type": { "version": "2.0.0", @@ -2988,19 +4338,10 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "requires": { - "through": "~2.3" - } - }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { "version": "2.3.0", @@ -3068,6 +4409,63 @@ } } }, + "plop": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.4.tgz", + "integrity": "sha512-SaqN3mwug/Ur2RE/ryo05oLTLy+8qZGwosNt9JnrFWca+dLCsPJR1j2ZXwjrccmNu6LA7eB56lRyk/G0fKf9HA==", + "requires": { + "@types/liftoff": "^2.5.0", + "chalk": "^1.1.3", + "interpret": "^1.2.0", + "liftoff": "^2.5.0", + "minimist": "^1.2.0", + "node-plop": "~0.26.2", + "ora": "^3.4.0", + "v8flags": "^2.0.10" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -3113,12 +4511,6 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", - "dev": true - }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -3215,12 +4607,44 @@ "picomatch": "^2.0.4" } }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3235,7 +4659,6 @@ "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, "requires": { "is-core-module": "^2.1.0", "path-parse": "^1.0.6" @@ -3246,12 +4669,26 @@ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==" }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -3264,7 +4701,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -3273,25 +4709,33 @@ "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, "requires": { "mimic-fn": "^1.0.0" } } } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "retry": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, "rewire": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", @@ -3661,14 +5105,17 @@ "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" }, "rxjs": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, "requires": { "tslib": "^1.9.0" } @@ -3678,6 +5125,14 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -3688,11 +5143,41 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" }, + "sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "requires": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3711,6 +5196,11 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -3781,6 +5271,134 @@ } } }, + "snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "requires": { + "no-case": "^2.2.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "socks": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.0.tgz", @@ -3803,8 +5421,24 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { "version": "3.1.1", @@ -3846,6 +5480,14 @@ "through": "2" } }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -3867,21 +5509,23 @@ "escodegen": "^1.8.1" } }, - "stream": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", - "integrity": "sha1-f1Nj8Ff2WSxVlfALyAon9c7B8O8=", - "requires": { - "emitter-component": "^1.1.1" - } - }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, "stream-transform": { @@ -3978,33 +5622,6 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, - "superagent": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.2.tgz", - "integrity": "sha512-pMWBUnIllK4ZTw7p/UaobiQPwAO5w/1NRRTDpV0FTVNmECztsxKspj3ZWEordVEaqpZtmOQJJna4yTLyC/q7PQ==", - "dev": true, - "requires": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.1", - "methods": "^1.1.2", - "mime": "^2.4.4", - "qs": "^6.9.1", - "readable-stream": "^3.4.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4013,6 +5630,15 @@ "has-flag": "^4.0.0" } }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", @@ -4075,20 +5701,61 @@ "readable-stream": "2 || 3" } }, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -4096,8 +5763,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tty-table": { "version": "4.1.1", @@ -4156,11 +5822,33 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, + "uglify-js": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz", + "integrity": "sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==", + "optional": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, "underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -4177,6 +5865,60 @@ "imurmurhash": "^0.1.4" } }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "requires": { + "upper-case": "^1.1.1" + } + }, "uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", @@ -4186,6 +5928,21 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -4197,6 +5954,14 @@ "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "^1.1.1" + } + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -4293,6 +6058,11 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", diff --git a/package.json b/package.json index 0ca1aa60..b85e479f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.2", + "version": "2.0.0-a.3", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -38,7 +38,6 @@ "co-prompt": "1.0.0", "commander": "6.2.0", "debug": "4.1.1", - "event-stream": "4.0.1", "find-package-json": "1.2.0", "glob": "7.1.6", "got": "11.7.0", @@ -53,12 +52,13 @@ "moment": "2.24.0", "npm-registry-fetch": "8.1.5", "os-name": "4.0.0", + "plop": "2.7.4", "progress": "2.0.3", "semver": "7.1.3", "split": "1.0.1", - "stream": "0.0.2", "through2": "3.0.1", - "tty-table": "4.1.1" + "tty-table": "4.1.1", + "unquote": "1.1.1" }, "devDependencies": { "chai": "4.2.0", @@ -68,7 +68,6 @@ "eslint-plugin-import": "2.20.2", "mocha": "7.1.1", "nock": "13.0.4", - "rewire": "5.0.0", - "superagent": "5.2.2" + "rewire": "5.0.0" } } diff --git a/src/client/actions.js b/src/client/actions.js index 3f0f688f..dc78af7f 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -28,23 +28,26 @@ module.exports = class Actions { this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/actions`; } - async deployAction(projectId, token, actionName, params) { + async deployAction(projectId, token, actionInst) { checkProject(projectId); let endpoint = this.endpointV4(projectId); - if (params.actionType) { - endpoint = `${endpoint}?actionType=${params.actionType}`; + if (actionInst.actionType) { + endpoint = `${endpoint}?actionType=${actionInst.actionType}`; } debug('deployAction(%s, docker=%s, ttl=%s) => %s', - actionName, params.dockerImage, params.ttl, endpoint); - const body = { ...params }; + actionInst.name, actionInst.dockerImage, actionInst.ttl, endpoint); + const body = { ...actionInst }; + // image & docker floating around fixup just in case.. + if (body.docker) { + body.image = body.docker; + delete body.docker; + } try { - body.docker = await this._maybePushDockerImage(params.dockerImage, token, params.pushDocker); + body.docker = await this._maybePushDockerImage(actionInst.dockerImage, token, actionInst.pushDocker); } catch (error) { return { success: false, status: 400, message: error.message || error }; } - body.name = actionName; - return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/agents.js b/src/client/agents.js index 835a30ef..af84e791 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -24,18 +24,32 @@ module.exports = class Agents { this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}`; } - invokeAgentService(projectId, token, agentName, serviceName) { - const endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/services/${serviceName}`; + invokeAgentService(projectId, token, agentName, serviceName, params) { + const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${encodeURIComponent(agentName)}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + json: params, }).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); } + invokeSkill(projectId, token, skillName, inputName, params) { + const endpoint = `${this.endpointV4(projectId)}/skillinvoke/${encodeURIComponent(skillName)}/inputs/${inputName}`; + debug('invokeSkill(%s, %s) => %s', skillName, inputName, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: params, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); + } + getActivation(projectId, token, activationId) { const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); @@ -48,10 +62,9 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listActivations(projectId, token, snapshotId, environmentName) { - let endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}/activations`; - debug('listActivations(%s, %s) => %s', snapshotId, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; + listActivations(projectId, token, snapshotId) { + const endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}/activations`; + debug('listActivations(%s, %s) => %s', snapshotId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -61,10 +74,9 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listAgentSnapshots(projectId, token, agentName, environmentName) { - let endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/snapshots`; - debug('listAgentSnapshots(%s, %s) => %s', agentName, environmentName, endpoint); - if (environmentName) endpoint = `${endpoint}?environmentName=${environmentName}`; + listAgentSnapshots(projectId, token, agentName) { + const endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/snapshots`; + debug('listAgentSnapshots(%s, %s) => %s', agentName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -98,16 +110,4 @@ module.exports = class Agents { .then(result => ({ success: true, result })) .catch(err => constructError(err)); } - - listTriggers(projectId, token) { - const endpoint = `${this.endpointV4(projectId)}/triggers`; - debug('listTriggers => %s', endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } }; diff --git a/src/client/datasets.js b/src/client/datasets.js deleted file mode 100644 index de6a3418..00000000 --- a/src/client/datasets.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); - -module.exports = class Datasets { - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/datasets`; - } - - listDatasets(projectId, token) { - const endpoint = `${this.endpoint(projectId)}`; - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } - - saveDatasets(projectId, token, dsObject) { - const endpoint = `${this.endpoint(projectId)}`; - debug('saveConnection(%s) => %s', dsObject.name, this.endpoint); - return got - .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: dsObject, - }).json() - .then(res => ({ success: true, message: res })) - .catch(err => constructError(err)); - } - - describeDataset(projectId, token, datasetName) { - const endpoint = `${this.endpoint(projectId)}/${datasetName}`; - debug('describeConnection(%s) => %s', datasetName, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); -} - - getDataframe(projectId, token, datasetName) { - const endpoint = `${this.endpoint(projectId)}/${datasetName}/dataframe`; - debug('describeConnection(%s) => %s', datasetName, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } - - streamDataset(projectId, token, datasetName) { - const endpoint = `${this.endpoint(projectId)}/${datasetName}/stream`; - debug('describeConnection(%s) => %s', datasetName, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } -}; diff --git a/src/commands/actions.js b/src/commands/actions.js index e731cee0..9c1bb5f2 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Actions = require('../client/actions'); const { - printSuccess, printWarning, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -84,49 +84,51 @@ module.exports.DescribeActionCommand = class { } }; +function isNumeric(value) { + return /^-?\d+$/.test(value); +} + module.exports.DeployActionCommand = class { constructor(program) { this.program = program; } - execute(actionName, options) { + execute(actionDefinition, options) { const profile = loadProfile(options.profile); - debug('%s.deployAction(%s)', profile.name, actionName); - const params = {}; - - if (options.podspec) { - const paramsStr = fs.readFileSync(options.podspec); - params.podSpec = parseObject(paramsStr, options); + let actionInst = {}; + if (actionDefinition) { + debug('%s.createAgentSnapshot(%s)', profile.name, actionDefinition); + const actionDefStr = fs.readFileSync(actionDefinition); + actionInst = parseObject(actionDefStr, options); } - - if (options.kind) { - printWarning('The kind option has been deprecated and will be ignored.', options); + if (options.actionName) { + actionInst.name = options.actionName; } - if (options.code) { - printWarning('The code option has been deprecated and will be ignored.' - + ' Use the docker option for setting an existing image to use.', options); + if (options.podspec) { + const paramsStr = fs.readFileSync(options.podspec); + actionInst.podSpec = parseObject(paramsStr, options); } - if (options.memory) { - printWarning('The memory option has been deprecated and will be ignored.' - + ' Use the podspec option for setting this value.', options); + if (options.docker) { actionInst.docker = options.docker; } + if (options.actionType) { actionInst.actionType = options.actionType; } + if (options.cmd) { actionInst.command = options.cmd; } + if (options.port) { + if (!isNumeric(options.port)) { + printError('--port must be a number', options); + } + actionInst.port = options.port; } - if (options.vcpus) { - printWarning('The vcpus option has been deprecated and will be ignored.' - + ' Use the podspec option for setting this value.', options); + if (options.environmentVariables) { actionInst.environmentVariables = options.environmentVariables; } + if (options.pushDocker) { actionInst.pushDocker = options.pushDocker; } + if (options.scaleCount) { + if (!isNumeric(options.scaleCount)) { + printError('--scaleCount must be a number', options); + } + actionInst.scaleCount = parseInt(options.scaleCount, 10); } - params.dockerImage = options.docker; - params.ttl = options.ttl; - params.actionType = options.actionType; - params.command = options.cmd; - params.port = options.port; - params.environment = options.environment; - params.environmentVariables = options.environmentVariables; - params.pushDocker = options.pushDocker; - params.scaleCount = parseInt(options.scaleCount, 10); const actions = new Actions(profile.url); - actions.deployAction(options.project || profile.project, profile.token, actionName, params) + actions.deployAction(options.project || profile.project, profile.token, actionInst) .then((response) => { if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); diff --git a/src/commands/agents.js b/src/commands/agents.js index da268a95..388e3c3f 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,7 +21,7 @@ const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -41,9 +41,17 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { catalog.saveAgent(options.project || profile.project, profile.token, agent).then((response) => { if (response.success) { printSuccess('Agent saved', options); - } else { - printError(`Failed to save agent: ${response.status} ${response.message}`, options); - } + } else if (response.details) { + console.log(`Failed to save agent: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } }) .catch((err) => { printError(`Failed to save agent: ${err.status} ${err.message}`, options); @@ -177,7 +185,7 @@ module.exports.GetActivationCommand = class { const agents = new Agents(profile.url); agents.getActivation(options.project || profile.project, profile.token, activationId).then((response) => { if (response.success) { - const result = filterObject(response.result.activation, options); + const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printError(`Failed to get activation ${activationId}: ${response.message}`, options); @@ -196,11 +204,10 @@ module.exports.ListActivationsCommand = class { execute(instanceId, options) { const profile = loadProfile(options.profile); - const envName = options.environmentName; debug('%s.listActivations(%s)', profile.name, instanceId); const agents = new Agents(profile.url); - agents.listActivations(options.project || profile.project, profile.token, instanceId, envName).then((response) => { + agents.listActivations(options.project || profile.project, profile.token, instanceId).then((response) => { if (response.success) { let result = response.result.activations; if (options.query) result = filterObject(result, options); @@ -268,11 +275,10 @@ module.exports.ListAgentSnapshotsCommand = class { execute(agentName, options) { const profile = loadProfile(options.profile); - const envName = options.environmentName; debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, envName) + agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName) .then((response) => { if (response.success) { const result = filterObject(response.result.snapshots, options); @@ -283,7 +289,6 @@ module.exports.ListAgentSnapshotsCommand = class { { column: 'Snapshot ID', field: 'id', width: 40 }, { column: 'Title', field: 'title', width: 30 }, { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Environment', field: 'environmentName', width: 30 }, { column: 'Created On', field: 'createdAt', width: 26 }, ]; printTable(tableSpec, result); @@ -359,27 +364,3 @@ module.exports.CreateAgentSnapshotCommand = class { }); } }; - -// module.exports.ListTriggersCommand = class { -// constructor(program) { -// this.program = program; -// } -// -// execute(options) { -// const profile = loadProfile(options.profile); -// debug('%s.listTriggers', profile.name); -// -// const agents = new Agents(profile.url); -// agents.listTriggers(profile.token).then((response) => { -// if (response.success) { -// const result = filterObject(response.result, options); -// printSuccess(JSON.stringify(result, null, 2), options); -// } else { -// printError(`Failed to list triggers ${instanceId}: ${response.message}`, options); -// } -// }) -// .catch((err) => { -// printError(`Failed to list triggers ${instanceId} : ${err.status} ${err.message}`, options); -// }); -// } -// }; diff --git a/src/commands/assets/templates/skill/daemon/Dockerfile b/src/commands/assets/templates/skill/daemon/Dockerfile new file mode 100644 index 00000000..fdde45fa --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/Dockerfile @@ -0,0 +1,4 @@ +FROM python:3.7.4-buster +ADD . /app +RUN pip install -r /app/requirements.txt +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"] diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md new file mode 100644 index 00000000..28c1882f --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -0,0 +1,28 @@ +### Daemon Skill + +Long running Cortex skill serving REST API requests + +#### Files generated: +* `skill.yaml` Skill definition +* `main.py` Python3 code serving the daemon API +* `requirements.txt` Python3 libraries dependencies +* `Dockerfile` to build Docker image for this skill + +#### Next Steps: +* Add input/output parameters and properties in skill.yaml as per requirement +* Update `main.py` with the business logic this skill will implement. +* Add required libraries to `requirements.txt` +* Make changes to Dockerfile if required + +Note: +> This is a Fast API/Uvicorn based Python3 project, feel free to change to other framework or language as per the need + +#### Deployment Steps +* Build the docker image and push to registry accessible to Cortex DCI + ```bash + docker build -t : -f Dockerfile . + docker tag : + docker push + ``` +* Save Cortex Action `cortex actions deploy --actionType daemon --docker --port '5000' --project ` +* Deploy this Skill `cortex skills save -y skill.yaml --project ` diff --git a/src/commands/assets/templates/skill/daemon/main.py.hbs b/src/commands/assets/templates/skill/daemon/main.py.hbs new file mode 100644 index 00000000..65d4ae03 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/main.py.hbs @@ -0,0 +1,9 @@ +from fastapi import FastAPI + +app = FastAPI() + + +@app.post('/invoke') +def run(requestBody: dict): + payload = requestBody['payload'] + return {'payload': payload} diff --git a/src/commands/assets/templates/skill/daemon/requirements.txt.hbs b/src/commands/assets/templates/skill/daemon/requirements.txt.hbs new file mode 100644 index 00000000..06592a66 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/requirements.txt.hbs @@ -0,0 +1,3 @@ +cortex-python +fastapi +uvicorn diff --git a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs new file mode 100644 index 00000000..ef0131db --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs @@ -0,0 +1,40 @@ +camel: 1.0.0 +name: c12e/{{dashCase name}} +title: {{name}} +description: {{name}} +inputs: + - name: request + title: API Request + parameters: + - name: params + type: object + description: Request Parameters + required: true + routing: + all: + action : c12e/{{dashCase name}} + runtime: cortex/daemons + output: response + +outputs: + - name: response + title: API Response + parameters: + - name: result + type: object + description: API Response + required: true + +properties: + - name: daemon.method + title: Daemon method + description: method + required: true + type: String + defaultValue: POST + - name: daemon.path + title: Daemon path + description: path + required: true + type: String + defaultValue: invoke diff --git a/src/commands/assets/templates/skill/external-api/README.md b/src/commands/assets/templates/skill/external-api/README.md new file mode 100644 index 00000000..0ad3f688 --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/README.md @@ -0,0 +1,8 @@ +### External API Skill + +This Cortex skill is to wrap an external REST API as a skill + +Update `skill.yaml` with `HTTP Method`, `URL`, `Path` and `headers` as per the targeted external API + +#### Deployment Steps: +* Deploy this Skill `cortex skills save -y skill.yaml --project ` diff --git a/src/commands/assets/templates/skill/external-api/skill.yaml.hbs b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs new file mode 100644 index 00000000..f8bf08dd --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs @@ -0,0 +1,41 @@ +camel: 1.0.0 +name: c12e/{{dashCase name}} +title: {{name}} +description: {{name}} +properties: + - name: url + title: URL + description: http[s]://host:port + required: true + type: String + - name: path + title: API path + description: API URL Path + required: true + type: String + - name: headers.content-type + title: Content-Type header + description: Response Content Type + defaultValue: 'application/json' + required: true + type: String + - name: method + title: HTTP Method + description: HTTP Method + defaultValue: POST + required: true + type: String + - name: headers.authorization + title: Authorization Token + description: Authorization token (if required) + type: String +inputs: + - name: input + title: input + routing: + all: + output: output + runtime: cortex/external-api +outputs: + - name: output + title: response diff --git a/src/commands/assets/templates/skill/job/Dockerfile b/src/commands/assets/templates/skill/job/Dockerfile new file mode 100644 index 00000000..9c3b16ae --- /dev/null +++ b/src/commands/assets/templates/skill/job/Dockerfile @@ -0,0 +1,4 @@ +FROM python:3.7.4-buster +ADD . /app +RUN pip install -r /app/requirements.txt +CMD ["python", "/app/main.py"] diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md new file mode 100644 index 00000000..bdaaa443 --- /dev/null +++ b/src/commands/assets/templates/skill/job/README.md @@ -0,0 +1,25 @@ +### Daemon Skill + +Background job running Cortex skill + +#### Files generated: +* `skill.yaml` Skill definition +* `main.py` Python3 code implementing job's business logic +* `requirements.txt` Python3 libraries dependencies +* `Dockerfile` to build Docker image for this skill + +#### Next Steps: +* Add input/output parameters and properties in skill.yaml as per requirement +* Update `main.py` with the business logic this skill will implement. +* Add required libraries to `requirements.txt` +* Make changes to Dockerfile if required + +#### Deployment Steps +* Build the docker image and push to registry accessible to Cortex DCI + ```bash + docker build -t : -f Dockerfile . + docker tag : + docker push + ``` +* Save Cortex Action `cortex actions deploy --actionType job --docker --cmd '["python", "/app/main.py"]' --project ` +* Deploy this Skill `cortex skills save -y skill.yaml --project ` diff --git a/src/commands/assets/templates/skill/job/main.py.hbs b/src/commands/assets/templates/skill/job/main.py.hbs new file mode 100644 index 00000000..21791a58 --- /dev/null +++ b/src/commands/assets/templates/skill/job/main.py.hbs @@ -0,0 +1,7 @@ +import json + +if __name__ == '__main__': + import sys + params = sys.argv[1] + params = json.loads(params) + print(f'Received: {params}') diff --git a/src/commands/assets/templates/skill/job/requirements.txt.hbs b/src/commands/assets/templates/skill/job/requirements.txt.hbs new file mode 100644 index 00000000..c1819925 --- /dev/null +++ b/src/commands/assets/templates/skill/job/requirements.txt.hbs @@ -0,0 +1 @@ +cortex-python diff --git a/src/commands/assets/templates/skill/job/skill.yaml.hbs b/src/commands/assets/templates/skill/job/skill.yaml.hbs new file mode 100644 index 00000000..118c6fed --- /dev/null +++ b/src/commands/assets/templates/skill/job/skill.yaml.hbs @@ -0,0 +1,26 @@ +camel: 1.0.0 +name: c12e/{{dashCase name}} +title: {{name}} +description: {{name}} +inputs: + - name: params + title: Job Input + parameters: + - name: params + type: object + description: Input Params + required: true + routing: + all: + action : c12e/{{dashCase name}} + runtime: cortex/jobs + output: response + +outputs: + - name: result + title: Job result + parameters: + - name: result + type: object + description: Job Execution Logs + required: true diff --git a/src/commands/datasets.js b/src/commands/datasets.js deleted file mode 100644 index 139f2170..00000000 --- a/src/commands/datasets.js +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const es = require('event-stream'); -const { loadProfile } = require('../config'); -const Datasets = require('../client/datasets'); -const { - printSuccess, printError, filterObject, parseObject, printTable, -} = require('./utils'); - -module.exports.ListDatasets = class ListDatasets { - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.listDatasets()', profile.name); - - const datasets = new Datasets(profile.url); - datasets.listDatasets(options.project || profile.project, profile.token).then((response) => { - if (response.success) { - let { result } = response; - if (options.query) { - result = filterObject(response.result, options); - } - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Connection Name', field: 'connectionName', width: 25 }, - { column: 'Description', field: 'description', width: 50 }, - { column: 'Created On', field: 'createdAt', width: 26 }, - { column: 'Updated On', field: 'updatedAt', width: 26 }, - ]; - - printTable(tableSpec, result.datasets); - } - } else { - printError(`Failed to list datasets: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list datasets: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.SaveDatasetsCommand = class SaveDatasetsCommand { - constructor(program) { - this.program = program; - } - - execute(datasetDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSaveDatasetDefinition(%s)', profile.name, datasetDefinition); - - const connDefStr = fs.readFileSync(datasetDefinition); - const connObj = parseObject(connDefStr, options); - debug('%o', connObj); - - const datasets = new Datasets(profile.url); - datasets.saveDatasets(options.project || profile.project, profile.token, connObj).then((response) => { - if (response.success) { - printSuccess('Dataset saved', options); - } else { - printError(`Failed to save Dataset: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { // don't think we ever get here.. - printError(`Failed to save Datasets: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DescribeDatasetCommand = class DescribeDatasetCommand { - constructor(program) { - this.program = program; - } - - execute(datasetName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDescribeDataset(%s)', profile.name, datasetName); - - const dataset = new Datasets(profile.url); - dataset.describeDataset(options.project || profile.project, profile.token, datasetName).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe dataset ${datasetName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe dataset ${datasetName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.GetDataframeCommand = class GetDataframeCommand { - constructor(program) { - this.program = program; - } - - execute(datasetName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeGetDataframe(%s)', profile.name, datasetName); - - const dataset = new Datasets(profile.url); - dataset.getDataframe(options.project || profile.project, profile.token, datasetName).then((response) => { - if (response.success) { - printSuccess(JSON.stringify(response.result, null, 2), options); - } else { - printError(`Failed to get dataframe ${datasetName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to get dataframe ${datasetName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.StreamDatasetCommand = class StreamDatasetCommand { - constructor(program) { - this.program = program; - } - - execute(datasetName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeStreamDataset(%s)', profile.name, datasetName); - - const dataset = new Datasets(profile.url); - dataset.streamDataset(options.project || profile.project, profile.token, datasetName).then((response) => { - if (response.success) { - const stream = new es.Stream.PassThrough(); - stream.write(response.result.text); - stream.end(); - stream.pipe(process.stdout); - } else { - printError(`Failed to stream dataset ${datasetName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to stream dataset ${datasetName}: ${err.status} ${err.message}`, options); - }); - } -}; diff --git a/src/commands/deploy.js b/src/commands/deploy.js index db7d8d21..cfaa75e9 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -18,7 +18,7 @@ const path = require('path'); const { loadProfile } = require('../config'); const Agents = require('../client/agents'); const { - printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, + printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, } = require('./utils'); @@ -62,14 +62,13 @@ module.exports.DeploySnapshotCommand = class { } } const profile = loadProfile(options.profile); - const envName = options.environmentName; debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); const agents = new Agents(profile.url); const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { - promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, envName).then((response) => { - if (response.success) { + promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((response) => { + // if (response.success) { let result = filterObject(response.result, options); result = cleanInternalFields(result); // TODO add validation for not exporting tip snapshots, as they don't have all dependencies. Should we enforce? @@ -82,8 +81,8 @@ module.exports.DeploySnapshotCommand = class { writeToFile(result, filepath); printSuccess(`Successfully exported agent snapshot ${filepath}`); return filepath; - } - return printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); + // } + // return printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); }).catch((err) => { printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); })); diff --git a/src/commands/generate.js b/src/commands/generate.js new file mode 100644 index 00000000..1a43654d --- /dev/null +++ b/src/commands/generate.js @@ -0,0 +1,14 @@ +module.exports.GenerateSkillCommand = class GenerateSkillCommand { + constructor(program) { + this.program = program; + } + + // eslint-disable-next-line no-unused-vars + execute(options) { + const path = require('path'); + const { Plop, run } = require('plop'); + Plop.launch({ + configPath: path.join(__dirname, 'plopfile.js'), + }, run); + } +}; diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js new file mode 100644 index 00000000..dbd809bf --- /dev/null +++ b/src/commands/plopfile.js @@ -0,0 +1,35 @@ +const path = require('path'); + +module.exports = (plop) => { + plop.setGenerator('skill', { + description: 'Generate Cortex Skill project', + prompts: [ + { + type: 'input', + name: 'name', + message: 'Skill Name?', + }, + { + type: 'list', + name: 'type', + message: 'Skill Type?', + choices: ['Daemon', 'Job', 'External API'], + }, + ], + actions: [ + { + type: 'addMany', + // Current directory for the new files + destination: path.join(path.resolve('.'), '{{ dashCase name }}'), + // Handlebars template used to generate content of project files + base: 'assets/templates/skill/{{dashCase type}}', + // Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. So not using hbs extension in Dockerfile and picking all files in directory + templateFiles: path.join('assets/templates/skill/{{dashCase type}}', '**/*'), + abortOnFail: true, + // Must not overwrite files with scaffolding template if already exists + // force: true, + // verbose: true + }, + ], + }); +}; diff --git a/src/commands/skills.js b/src/commands/skills.js index d5823a0b..b777ce2d 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -18,57 +18,42 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); +const Agent = require('../client/agents'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); -function _formatpath(p) { - let cnt = 0; let -res = ''; - const len = p.length; - p.forEach((s) => { - if (_.isNumber(s)) { - res += `[${s}]`; - } else - if (cnt < len) res += s; - else res += s; - if (cnt < len - 1 && !_.isNumber(p[cnt + 1])) res += '.'; - cnt += 1; - }); - return res; -} - module.exports.SaveSkillCommand = class SaveSkillCommand { constructor(program) { this.program = program; } - execute(skillDefinition, options) { + async execute(skillDefinition, options) { const profile = loadProfile(options.profile); debug('%s.executeSaveSkill(%s)', profile.name, skillDefinition); - - const skillDefStr = fs.readFileSync(skillDefinition); - const skill = parseObject(skillDefStr, options); - - const catalog = new Catalog(profile.url); - catalog.saveSkill(options.project || profile.project, profile.token, skill).then((response) => { + try { + const skillDefStr = fs.readFileSync(skillDefinition); + const skill = parseObject(skillDefStr, options); + const catalog = new Catalog(profile.url); + const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); if (response.success) { printSuccess('Skill saved', options); - } else if (response.details) { - console.log(`Failed to save skill: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map(d => d.path = _formatpath(d.path)); - printTable(tableSpec, response.details); + } else { + console.log(`Failed to save skill: ${response.message}`); + if (response.details) { + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + } printError(''); // Just exit } - }) - .catch((err) => { - printError(`Failed to save skill: ${err.status} ${err.response.body.error}`, options); - }); + } catch (err) { + printError(`Failed to save skill: ${_.get(err, 'status', '')} ${_.get(err, 'response.body.error', err.message)}`, options); + } } }; @@ -131,3 +116,40 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { }); } }; + +module.exports.InvokeSkillCommand = class InvokeSkillCommand { + constructor(program) { + this.program = program; + } + + execute(skillName, inputName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeInvokeSkill(%s/%s)', profile.name, skillName, inputName); + + let params = {}; + if (options.params) { + params = parseObject(options.params, options); + } else if (options.paramsFile) { + const paramsStr = fs.readFileSync(options.paramsFile); + params = parseObject(paramsStr, options); + } + + const agent = new Agent(profile.url); + agent.invokeSkill(options.project || profile.project, profile.token, skillName, inputName, params).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Skill invoke failed: ${response.message}`, options); + } + }) + .catch((err) => { + if (err.response && err.response.body) { + debug('Raw error response: %o', err.response.body); + printError(`Failed to invoke skill(${err.status} ${err.message}): ${err.response.body.error}`, options); + } else { + printError(`Failed to invoke skill: ${err.status} ${err.message}`, options); + } + }); + } +}; diff --git a/src/commands/utils.js b/src/commands/utils.js index 5f410b30..dbc57336 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -14,6 +14,7 @@ * limitations under the License. */ +const Table = require('cli-table'); const _ = require('lodash'); const chalk = require('chalk'); const debug = require('debug')('cortex:cli'); @@ -24,7 +25,6 @@ const jmsepath = require('jmespath'); const os = require('os'); const osName = require('os-name'); const path = require('path'); -const Table = require('cli-table'); const yaml = require('js-yaml'); const { exec } = require('child_process'); From 1a19f220cf8b569f0cb0d2f48d3ded5bf4cacd1e Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 10 Dec 2020 11:39:12 +0530 Subject: [PATCH 191/864] describe snapshot response change fixes --- src/commands/deploy.js | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index cfaa75e9..7291c0f1 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -67,22 +67,17 @@ module.exports.DeploySnapshotCommand = class { const agents = new Agents(profile.url); const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { - promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((response) => { - // if (response.success) { - let result = filterObject(response.result, options); - result = cleanInternalFields(result); - // TODO add validation for not exporting tip snapshots, as they don't have all dependencies. Should we enforce? - let filename = `${snapshotId}.json`; - if (options.yaml) { - result = jsonToYaml(result); - filename = `${snapshotId}.yaml`; - } - const filepath = path.join(exportPath, 'snapshots', filename); - writeToFile(result, filepath); - printSuccess(`Successfully exported agent snapshot ${filepath}`); - return filepath; - // } - // return printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); + promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((result) => { + result = cleanInternalFields(result); + let filename = `${snapshotId}.json`; + if (options.yaml) { + result = jsonToYaml(result); + filename = `${snapshotId}.yaml`; + } + const filepath = path.join(exportPath, 'snapshots', filename); + writeToFile(result, filepath); + printSuccess(`Successfully exported agent snapshot ${filepath}`); + return filepath; }).catch((err) => { printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); })); From 35a672b2670a5207d535295ddc60e0023c64313f Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 10 Dec 2020 11:46:31 +0530 Subject: [PATCH 192/864] describe snapshot response change fixes --- src/commands/deploy.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 7291c0f1..7b2b3342 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -68,6 +68,7 @@ module.exports.DeploySnapshotCommand = class { const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((result) => { + result = JSON.parse(result); result = cleanInternalFields(result); let filename = `${snapshotId}.json`; if (options.yaml) { From 9cf35d4becce7c0924c296da37f32532cac1aa64 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 14 Dec 2020 20:33:24 +0530 Subject: [PATCH 193/864] FAB-37 cli commands for campaign export/import --- bin/cortex-campaigns.js | 40 ++++++++++++++++++++++++++++ package.json | 1 + src/client/catalog.js | 55 +++++++++++++++++++++++++++++++++++++-- src/commands/campaigns.js | 39 +++++++++++++++++++++++++++ 4 files changed, 133 insertions(+), 2 deletions(-) diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index a2f4f1f7..d3352f5b 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -25,6 +25,8 @@ const { CreateCampaignCommand, ListCampaignsCommand, DescribeCampaignCommand, + ExportCampaignCommand, + ImportCampaignCommand, } = require('../src/commands/campaigns'); program.description('Work with Cortex Campaigns'); @@ -37,6 +39,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for Campaign definition format') .action(withCompatibilityCheck((campaignDefinition, options) => { try { @@ -53,6 +56,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((options) => { @@ -71,6 +75,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((campaignName, options) => { try { @@ -80,4 +85,39 @@ program } })); +program + .command('export ') + .description('Export Campaign Archive') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--deployable [deployable]', 'Export only deployable missions', true) + .option('--o [output]', 'Export file name') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ExportCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('import ') + .description('Import Campaign Archive') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--filepath [filepath]', 'Exported Campaign file path to import') + .option('--deploy [deploy]', 'Set missions status Ready To Deploy', true) + .option('--overwrite [overwrite]', 'Overwrite existing deployed missions with the imported one', false) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ImportCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/package.json b/package.json index b85e479f..34ac89ca 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", + "form-data": "3.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", diff --git a/src/client/catalog.js b/src/client/catalog.js index 52293ab1..17f6d212 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -16,14 +16,18 @@ const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); +const FormData = require('form-data'); +const http = require('https'); +const fs = require('fs'); const { - constructError, formatAllServiceInputParameters, checkProject, getUserAgent, + constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError } = require('../commands/utils'); const createEndpoints = baseUri => ({ skills: projectId => `${baseUri}/fabric/v4/projects/${projectId}/skills`, agents: projectId => `${baseUri}/fabric/v4/projects/${projectId}/agents`, types: projectId => `${baseUri}/fabric/v4/projects/${projectId}/types`, + campaigns: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, }); module.exports = class Catalog { @@ -96,7 +100,7 @@ module.exports = class Catalog { .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) .map(i => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); return { success: true, services: servicesList }; - } + } return response; }); } @@ -186,6 +190,53 @@ module.exports = class Catalog { .catch(err => constructError(err)); } + exportCampaign(projectId, token, campaignName, deployable, outputFileName) { + checkProject(projectId); + debug('exportCampaign(%s) => %s', campaignName, this.endpoints.campaigns); + + const path = './'+(outputFileName || campaignName+'.zip'); + const url = this.endpoints.campaigns(projectId) + `${campaignName}/export?deployable=${deployable}`; + const file = fs.createWriteStream(path); + return http.get(url, + {headers: { Authorization: `Bearer ${token}` }}, + function(response) { + if (response.statusCode == 200 || response.statusCode == 201) { + response.pipe(file); + printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`) + } else { + printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`) + } + }).on('error', function(e) { + printError(e) + }); + } + + importCampaign(projectId, token, filepath, deploy, overwrite) { + checkProject(projectId); + debug('importCampaign(%s)', this.endpoints.campaigns); + const importUrl = this.endpoints.campaigns(projectId) + `import?deployable=${deploy}&overwrite=${overwrite}`; + const readStream = fs.createReadStream(filepath); + + const form = new FormData(); + form.append('file', readStream); + + const headers = form.getHeaders(); + headers["Authorization"] = `Bearer ${token}`; + + const req = http.request(importUrl, { + method : 'POST', + headers: headers, + }); + + form.pipe(req) + .on('response', function (response) { + printSuccess(response.statusMessage) + }).on('error', function (err) { + printError(err) + }); + + } + // saveProfileSchema(projectId, token, schemaObj) { // debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); // return request diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 7594378b..97fa3a71 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -18,6 +18,7 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); +const Catalog = require('../client/catalog'); const { printSuccess, printError, filterObject, parseObject, printTable, checkProject } = require('./utils'); @@ -101,3 +102,41 @@ module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { } } }; + +module.exports.ExportCampaignCommand = class ExportCampaignCommand { + constructor(program) { + this.program = program; + } + + execute(campaignName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeExportCampaignCommand(%s)', profile.name, campaignName); + const cli = new Catalog(profile.url); + + try { + cli.exportCampaign(options.project || profile.project, profile.token, campaignName, options.deployable, options.o); + } catch (err) { + printError(`Failed to export campaign: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.ImportCampaignCommand = class ImportCampaignCommand { + constructor(program) { + this.program = program; + } + + execute(campaignFilepath, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeImportCampaignCommand(%s)', profile.name, campaignFilepath); + const cli = new Catalog(profile.url); + + try { + cli.importCampaign(options.project || profile.project, profile.token, campaignFilepath, options.deploy, options.overwrite); + } catch (err) { + printError(`Failed to import campaign: ${err.status} ${err.message}`, options); + } + } +}; From 621094169be6033fc03426543a5f34dcee828506 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 14 Dec 2020 20:45:14 +0530 Subject: [PATCH 194/864] FAB-37 cli commands for campaign export/import --- bin/cortex-campaigns.js | 2 +- src/client/catalog.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index d3352f5b..5e6925dc 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -103,7 +103,7 @@ program })); program - .command('import ') + .command('import ') .description('Import Campaign Archive') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') diff --git a/src/client/catalog.js b/src/client/catalog.js index 17f6d212..af649970 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -194,7 +194,7 @@ module.exports = class Catalog { checkProject(projectId); debug('exportCampaign(%s) => %s', campaignName, this.endpoints.campaigns); - const path = './'+(outputFileName || campaignName+'.zip'); + const path = './'+(outputFileName || campaignName+'.amp'); const url = this.endpoints.campaigns(projectId) + `${campaignName}/export?deployable=${deployable}`; const file = fs.createWriteStream(path); return http.get(url, From cf75befaead06c4dc8fc53627be92bc03af32e37 Mon Sep 17 00:00:00 2001 From: ljha-CS Date: Mon, 14 Dec 2020 21:04:13 +0530 Subject: [PATCH 195/864] added port properties --- .../assets/templates/skill/daemon/skill.yaml.hbs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs index ef0131db..1333e4c6 100644 --- a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs @@ -28,13 +28,19 @@ outputs: properties: - name: daemon.method title: Daemon method - description: method + description: Update default value to HTTP method supported by endpoint required: true type: String defaultValue: POST - name: daemon.path title: Daemon path - description: path + description: Update default value to HTTP endpoint path in container required: true type: String defaultValue: invoke + - name: daemon.port + title: Daemon Port + description: Update default value to port on which app will be running + required: true + type: String + defaultValue: 5000 From 973b8fa07e1dd737822f5824bf69a30637e3d7cf Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 14 Dec 2020 23:01:08 +0530 Subject: [PATCH 196/864] remove mission related code --- bin/cortex-campaigns.js | 19 ------- bin/cortex-missions.js | 83 ------------------------------- src/client/catalog.js | 6 ++- src/commands/campaigns.js | 29 ----------- src/commands/missions.js | 101 -------------------------------------- 5 files changed, 5 insertions(+), 233 deletions(-) delete mode 100755 bin/cortex-missions.js delete mode 100644 src/commands/missions.js diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 5e6925dc..9a84f888 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -22,7 +22,6 @@ const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - CreateCampaignCommand, ListCampaignsCommand, DescribeCampaignCommand, ExportCampaignCommand, @@ -31,24 +30,6 @@ const { program.description('Work with Cortex Campaigns'); -// Create Campaign -program - .command('save [CampaignDefinition]') - .description('Save a Campaign definition') - .storeOptionsAsProperties(false) - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for Campaign definition format') - .action(withCompatibilityCheck((campaignDefinition, options) => { - try { - new CreateCampaignCommand(program).execute(campaignDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - // List Campaigns program .command('list') diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js deleted file mode 100755 index 050a778e..00000000 --- a/bin/cortex-missions.js +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - CreateMissionCommand, - ListMissionsCommand, - DescribeMissionCommand, -} = require('../src/commands/missions'); - -program.description('Work with Cortex Missions'); - -// Create Mission -program - .command('save [missionDefinition]') - .description('Save a mission definition') - .storeOptionsAsProperties(false) - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('-y, --yaml', 'Use YAML for mission definition format') - .action(withCompatibilityCheck((missionDefinition, options) => { - try { - new CreateMissionCommand(program).execute(missionDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Missions -program - .command('list ') - .description('List mission definitions') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((options) => { - try { - new ListMissionsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Get|Describe Mission -program - .command('describe ') - .alias('get') - .description('Describe mission') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((missionName, options) => { - try { - new DescribeMissionCommand(program).execute(missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/src/client/catalog.js b/src/client/catalog.js index af649970..84eaa887 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -230,7 +230,11 @@ module.exports = class Catalog { form.pipe(req) .on('response', function (response) { - printSuccess(response.statusMessage) + if (response.statusCode == 200 || response.statusCode == 201) { + printSuccess("Campaign imported successfully") + } else { + printError() + } }).on('error', function (err) { printError(err) }); diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 97fa3a71..ab1fd2c1 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -23,35 +23,6 @@ const { printSuccess, printError, filterObject, parseObject, printTable, checkProject } = require('./utils'); -module.exports.CreateCampaignCommand = class CreateCampaignCommand { - constructor(program) { - this.program = program; - } - - async execute(campaignDefinition, command) { - const options = command.opts(); - const profile = loadProfile(options.profile); - checkProject(options.project || profile.project); - debug('%s.executeSaveCampaign(%s)', profile.name, campaignDefinition); - let campaign = {}; - try { - if (campaignDefinition) { - const campaignDefStr = fs.readFileSync(campaignDefinition); - campaign = parseObject(campaignDefStr, options); - } - const cli = new ApiServerClient(profile.url); - const response = await cli.createCampaign( - options.project || profile.project, - profile.token, - _.get(campaign, 'spec', campaign), - ); - printSuccess(`Campaign ${response.name} saved`, options); - } catch (err) { - printError(`Failed to save campaign: ${err.message}`, options); - } - } -}; - module.exports.ListCampaignsCommand = class ListCampaignsCommand { constructor(program) { this.program = program; diff --git a/src/commands/missions.js b/src/commands/missions.js deleted file mode 100644 index d7a49ec3..00000000 --- a/src/commands/missions.js +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const ApiServerClient = require('../client/apiServerClient'); -const { - printSuccess, printError, filterObject, parseObject, printTable, -} = require('./utils'); - -module.exports.CreateMissionCommand = class CreateMissionCommand { - constructor(program) { - this.program = program; - } - - async execute(missionDefinition, command) { - const options = command.opts(); - const profile = loadProfile(options.profile); - debug('%s.executeSaveMission(%s)', profile.name, missionDefinition); - let mission = {}; - try { - if (missionDefinition) { - const missionDefStr = fs.readFileSync(missionDefinition); - mission = parseObject(missionDefStr, options); - } - if (_.isEmpty(options.name || mission.name)) { - printError('`name` must be provided', options); - } - const cli = new ApiServerClient(profile.url); - const response = await cli.createMission(options.project || profile.project, profile.token, mission); - printSuccess(`Mission ${response.name} saved`, options); - } catch (err) { - printError(`Failed to save mission: ${err.message}`, options); - } - } -}; - -module.exports.ListMissionsCommand = class ListMissionsCommand { - constructor(program) { - this.program = program; - } - - async execute(options) { - const profile = loadProfile(options.profile); - debug('%s.executeListMissions()', profile.name); - - const cli = new ApiServerClient(profile.url); - try { - const response = await cli.listMissions(options.project || profile.project, profile.token); - let result = response; - if (options.query) result = filterObject(result, options); - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Description', field: 'description', width: 80 }, - ]; - printTable(tableSpec, result); - } - } catch (err) { - printError(`Failed to list missions: ${err.status} ${err.message}`, options); - } - } -}; - -module.exports.DescribeMissionCommand = class DescribeMissionCommand { - constructor(program) { - this.program = program; - } - - async execute(missionName, cmd) { - const options = cmd.opts(); - const profile = loadProfile(options.profile); - debug('%s.executeDescribeMission(%s)', profile.name, missionName); - const cli = new ApiServerClient(profile.url); - - try { - const response = await cli.getMission(options.project || profile.project, profile.token, missionName); - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } catch (err) { - printError(`Failed to describe mission: ${err.status} ${err.message}`, options); - } - } -}; From b096dfa312b9c791104e204f0f4b99931d466723 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 14 Dec 2020 23:05:29 +0530 Subject: [PATCH 197/864] project as in latest develop branch --- bin/cortex-projects.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 4694511a..c898fdf6 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -32,7 +32,7 @@ program.description('Work with Cortex Projects'); // Create Project program .command('save [projectDefinition]') - .description('Save/Create a project') + .description('Save a project definition') .storeOptionsAsProperties(false) .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') @@ -52,7 +52,7 @@ program // List Projects program .command('list') - .description('List project') + .description('List project definitions') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') From 1d8e6b9338afebafafd8b2bb3c0b59a31d3a3af8 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 14 Dec 2020 23:10:59 +0530 Subject: [PATCH 198/864] cleanup command list --- bin/cortex.js | 1 - src/client/apiServerClient.js | 77 +++-------------------------------- 2 files changed, 5 insertions(+), 73 deletions(-) diff --git a/bin/cortex.js b/bin/cortex.js index ed4e8056..12e129dd 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -37,7 +37,6 @@ program .command('experiments [cmd]', 'Work with Cortex Experiments') .command('generate [cmd]', 'Scaffold Cortex Components') .command('graph [cmd]', 'Work with the Cortex Graph') - .command('missions [cmd]', 'Work with Cortex Missions') .command('profiles [cmd]', 'Work with Cortex Profiles') .command('projects [cmd]', 'Work with Cortex Projects') .command('roles [cmd]', 'Work with a Cortex Roles') diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 670f731a..27cb0714 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -17,8 +17,7 @@ module.exports = class ApiServerClient { } /** - * Fetch project using graphql - * @param token + * Query project using graphql * @param projectId * @return {Promise} */ @@ -34,8 +33,8 @@ module.exports = class ApiServerClient { /** - * List projects using graphql - * @param token + * Query project using graphql + * @param projectId * @return {Promise} */ async listProjects(token) { @@ -49,9 +48,8 @@ module.exports = class ApiServerClient { } /** - * Create project using graphql mutation - * @param token - * @param project definition object + * Query project using graphql + * @param projectId * @return {Promise} */ async createProject(token, projDef) { @@ -95,69 +93,4 @@ module.exports = class ApiServerClient { throw err; } } - - /** - * Query campaign using graphql - * @param campaignId - * @return {Promise} - */ - async createCampaign(projectId, token, def) { - try { - const updatedDef = { ...def, project: projectId }; - const fetched = await this._client(token) - .request(gql`mutation NewCampaign($input: ProjectInput!) { createProject(input: $input){name}}`, { input: updatedDef }); - return _.get(fetched, 'createProject', {}); - } catch (err) { - throw err; - } - } - - /** - * Fetch mission using graphql - * @paa - * @param missionId - * @return {Promise} - */ - async getMission(projectId, token, missionId) { - try { - const fetched = await this._client(token) - .request(gql`query { missionByName( project: "${projectId}", name: "${missionId}" ){name, title, description}}`); - return _.get(fetched, 'missionByName'); - } catch (err) { - throw err; - } - } - - - /** - * Query mission using graphql - * @param missionId - * @return {Promise} - */ - async listMissions(projectId, token) { - try { - const fetched = await this._client(token) - .request(gql`{ missions (project: "${projectId}"){ name, title, description} }`); - return _.get(fetched, 'missions', []); - } catch (err) { - throw err; - } - } - - /** - * Query mission using graphql - * @param missionId - * @return {Promise} - */ - async createMission(projectId, token, def) { - try { - const newdef = { ...def, project: projectId }; - const fetched = await this._client(token) - .request(gql`mutation NewMission($input: ProjectInput!) { createProject(input: $input){name}}`, { input: newdef }); - return _.get(fetched, 'createProject', {}); - } catch (err) { - throw err; - } - } - }; From 36abcb8932d90bee54a2def452b8adea111fc91f Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 14 Dec 2020 23:27:38 +0530 Subject: [PATCH 199/864] validations added for non existing files or directories passed to import campaign --- src/client/catalog.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client/catalog.js b/src/client/catalog.js index 84eaa887..91136489 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -215,6 +215,9 @@ module.exports = class Catalog { checkProject(projectId); debug('importCampaign(%s)', this.endpoints.campaigns); const importUrl = this.endpoints.campaigns(projectId) + `import?deployable=${deploy}&overwrite=${overwrite}`; + if (!fs.existsSync(filepath) || !fs.lstatSync(filepath).isFile() ) { + printError(`Campaign export file ${filepath} doesn't exists or not a valid export file`) + } const readStream = fs.createReadStream(filepath); const form = new FormData(); @@ -233,7 +236,7 @@ module.exports = class Catalog { if (response.statusCode == 200 || response.statusCode == 201) { printSuccess("Campaign imported successfully") } else { - printError() + printError(`Campaign file ${filepath} import failed with error: [${response.statusCode}] ${response.statusMessage}`) } }).on('error', function (err) { printError(err) From 8be776d4473d76f814a3c0aea598b557431ece6e Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 15 Dec 2020 18:59:12 +0530 Subject: [PATCH 200/864] empty export file issue when campaign export failed --- src/client/catalog.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/client/catalog.js b/src/client/catalog.js index 91136489..7683c77c 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -194,13 +194,15 @@ module.exports = class Catalog { checkProject(projectId); debug('exportCampaign(%s) => %s', campaignName, this.endpoints.campaigns); - const path = './'+(outputFileName || campaignName+'.amp'); + const url = this.endpoints.campaigns(projectId) + `${campaignName}/export?deployable=${deployable}`; - const file = fs.createWriteStream(path); + return http.get(url, {headers: { Authorization: `Bearer ${token}` }}, function(response) { if (response.statusCode == 200 || response.statusCode == 201) { + const path = './'+(outputFileName || campaignName+'.amp'); + const file = fs.createWriteStream(path); response.pipe(file); printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`) } else { From 9771dbf90f57879ca457a8164150cbc6f76a3dda Mon Sep 17 00:00:00 2001 From: ljha-CS Date: Wed, 16 Dec 2020 11:26:19 +0530 Subject: [PATCH 201/864] FAB-770 Help message fixes --- bin/cortex-campaigns.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 9a84f888..d5876a07 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -73,7 +73,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--deployable [deployable]', 'Export only deployable missions', true) + .option('--deployable [true/false]', 'Export only deployable missions', true) .option('--o [output]', 'Export file name') .action(withCompatibilityCheck((campaignName, options) => { try { @@ -91,8 +91,8 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--filepath [filepath]', 'Exported Campaign file path to import') - .option('--deploy [deploy]', 'Set missions status Ready To Deploy', true) - .option('--overwrite [overwrite]', 'Overwrite existing deployed missions with the imported one', false) + .option('--deploy [true/false]', 'Set missions status Ready To Deploy', true) + .option('--overwrite [true/false]', 'Overwrite existing deployed missions with the imported one', false) .action(withCompatibilityCheck((campaignName, options) => { try { new ImportCampaignCommand(program).execute(campaignName, options); From a1c2f9d4d14e7ca815209798fb00d1e328a6173c Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Wed, 16 Dec 2020 09:19:23 -0600 Subject: [PATCH 202/864] 2.0.1 release (#282) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rebased marketplace commands and bump to v0.3.23 (#206) * Rebased marketplace commands and bump to v0.3.23 * Fix package-lock.json to have new generator version * removed unused imports * removed unused imports * bumped generator version to `0.3.24` * Bump version to 0.12.19 (#211) * Improvements to graph client and command client. (#213) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Adds support for graph and profile APIs * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Support graph query in CLI * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Adds CLI support for Cortex Experiments * Adds progress bar to graph event publish for files * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Bump generator-cortex to pick up with_type change * Return error message from content upload properly * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Fixed bugs in list-services update (#174) * Revved generator version and cli version. * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Remove cortex-processors commands (#166) * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Updated list-services command to display the parameter names/types as well (#171) * CCF-9783 reverting changes to agent and catalog (#173) * Fixed bugs in list-services update * Remove --timeout option from actions deploy (#175) * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * Updated to handle parameters being null * Updated gitignore file to not include .DS_Store files * Return error message from content upload properly * Bump generator-cortex to pick up with_type change * Made code fixes per Davids suggestions * Update agents.js * Update catalog.js * Update .gitignore * Made changes from Davids review * Reverted gitignore * Update .gitignore * Update .gitignore * created template checklist as POC * updated pull_request_template * Update pull_request_template.md * Ccf 9171 memory vcpu mismatch (#155) * don't use default command line params for memory and vcpus * 0.12.9 * Bump lodash for vunerabilities CCF-9252 update generator for linux * CCF-9376 update generator version to 0.3.18 (#163) * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * Updated gitignore file to not include .DS_Store files * Made code fixes per Davids suggestions * Update .gitignore * Update .gitignore * Update .gitignore * first working pass, seems like all client methods are now proxied (#185) * first working pass, seems like all client methods are now proxied * added bypass proxy env variable * 0.12.15 * Adds support for publishing graph events from plain old JSON lines files * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Ccf 9955 configure url (#176) * add protocol prefix if one is missing * 0.12.14 * CCF-9286: return instanceId in the message when promoting a snapshot … (#162) * CCF-9286: return instanceId in the message when promoting a snapshot to an environment that was being returned by the api response but not getting included in the cli response * updated message with review comments * fixing undefined error when promoting a snapshot to an environment, instanceId is under `response.message.instanceId` (#164) * working recursive upload of directory (#165) * working recursive upload of directory * 0.12.12 * Add agents list-snapshot-instances (#168) * Chunk directory upload (#169) * use sequential chunks of files to upload * 0.12.13 * Fix invalid query param on list snap instances (#170) * Update NPM deps post-merge with develop * Fixes event publish count in CLI progress bar. Adds graph publish retry support. * Added ability to batch entity events when publishing to the graph api based on REST request size limits. Also added cli command to list profile versions. * Added command to list profile versions. Also more limits when querying profiles. * Getting auto attributes to consider lists and dictionaries to dimensionals. * [CCF-12214] Specify custom HTTP User-Agent header value for all requests * 0.13.0 * [CCF-11868] Add scaleCount option to action deploy * 0.14.0 * Nein, marketplace * 1.0.0 * [CCF-12231] Fix endpoint specification for deleting a profile * 1.0.1 * [CCF-12390] Update deps to pass audit * 1.0.2 * rebase master, fixup package-lock.json * Fix api end (#224) * Remove api endpoint * clean up * Ccf 12660 develop rebase (#226) * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 Add pod spec option to actions deploy command * CCF-12660 clean up verbage * CCF-12660 cmd to command * CCF-12660 update to 1.0.3 * CCF-12660 remove vcpu and memory option parsing * Update dependencies and remove deprecation warnings (#223) * Update dependencies and remove deprecation warnings Joi method change remove dead code remove dead test * Version bump mocha, uuid * Added missing split dep, remove unused url dep * deprecated the `--kind` and `--code` options on the actions subcommand, no longer pass the option from the client to the command and also displays a warning when the options are still passed in (#228) * Ccf 12859 cortextoken warning (#230) * Add node version to package json to ensure we have a new enough node version, warn if use is using CORTEX_TOKEN * CCF-12859 Add message to warn users that CORTEX_TOKEN is set Require NODE 10.x or higher!! Bump package.json for vulns * Fix default behavior for cortex configure with new isDefault: true from commander * Fix missing options on cortex configure * CCF-12822 npm doesnot enforce anything, add preinstall check (#231) * CCF-12822 npm doesnot enforce anything, add preinstall check * pack-lock * Bump builder image from c12e/nodejs:dev-8.11.0 to 10.21.0 * CCF-12767: adding deprecated warnings to project and skills generate commands (#235) * bump version to 1.1.1 (#237) * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * FAB-30 - Added new command `cortex deploy` to export Cortex artifacts for CI deployment * added * FAB-285 SSO auth, temp whoAmI, project option support (#240) * FAB-285 SSO auth, temp whoAmI, project option support * FAB-285 SSO fix unit tests * FAB-285 SSO add project option to every command * FAB-285 cleanup issuance, process env and token exp (#242) * FAB-285 cleanup issuance, process env and token exp * FAB-285 handle auth error (#243) * FAB-285 handle auth error * FAB-285 better status code * Feature/fab183 projects (#241) * WIP to fix non JSON query responses on CLI * First pass at emitting markdown for cortex cli docs * Quote <> in text, replace
with
* added header * remove newline line 1 * Last tweaks generate_docs.js * WIP * WIP skills, actions, agents, snapshots working using projects. Remove request and using got Removed v2 jobs, tasks, envirnonments, instances First pass on connections, content, datasets * Added linting, fixes linting errors * Fixed unit tests, re-added user agent * update for url changes * Fixed bad url content upload * Missed adding projectId in secrets requests, renamed variables -> secrets, fixed error messages I hope * Fix cortex types list * Removed cortex datasets generate * URI typo * rebase/linting * Rebase on dev, added redirect hook to properly handle server-server auth resp * Fab 328 project commands (#244) * Add initial cli commands for projects * cleaup linting * FAB-177 rbac tools initial (#245) * FAB-177 rbac tools initial * FAB-177 rbac got, options, messaging * FAB-177 lint, copyright * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for develop… (#246) * Fixed auth header typo, added CORTEX_NO_AUTH=true env var for developer sanity * Fix error handling saving types * Added alias for describe * Remove dead commands, sort command help (#247) * Added missing get aliases (#248) * Added missing get aliases * Rename projects create project save, fix promise error * FAB-177 get rid of whoami (#249) * FAB-177 remove list roles by user (#250) * FAB-177 remove list roles by user * FAB-177 including configure token command to get access token * set versio to 2.0.0-a.1 (#251) * FAB-177 error handling (#253) * WIP for missions, campaigns need mutation support for full document * cortex skills generate command added * formatting fix * generate skill command based on plopjs * skill type template * skill generation templates added * cmd description * removed unused generate-cortex dependencies * Add ability to export snapshot as a k8s agent + skills CRs (#256) * Add ability to export snapshot as a k8s agent + skills CRs * Fix extra args bug, fix error handling get-snapshot * Fix empty --output issue * FAB-342 deny action flag and external group commands (#257) * FAB-342 deny action flag and external group commands * FAB-342 package update and lint * FAB-342 external group endpoint change * fix travis build (#258) * GQL type name changed from ProjectInput -> CreateProjectInput (#260) * using lodash whn getting connection params (#259) * Added readme and removed deploy.sh. Described deployment in readme * fixing lodash commands for testing and saving a connection (#261) * Linting, node version bump (#264) * Update cortex-users.js * Fix specific typo * roless typo fixed * Update cortex-profiles.js * Fix agent validation output (#267) * Clean up (#268) * Remove references to environmentName * remove listtrigger command * remove dead commands, add skill invoke command * remove dataets.*, connection test/query * invokeSkill fixes (#269) * renamed __main__.py to main.py due to conflict with __main__ module name reserved in python * Fix undefined (#270) * Allow json file for action save * Fix skill invoke output, get-snapshot output, fix action save/deploy * Wasnot passing params, pass it and simplify request a bit * linting * remove unquote * formatting changes * FAB-673 Fix invoke skill JSON parse issue, fix skill save promise issue * added auth header * Update package.json Version bump * describe agent snapshot is returning JSON but earlier it was returning response, this broke deploy snapshot. Fixing this with updated agent describe snapshot * describe snapshot response change fixes * describe snapshot response change fixes * FAB-37 cli commands for campaign export/import * FAB-37 cli commands for campaign export/import * added port properties * remove mission related code * project as in latest develop branch * cleanup command list * validations added for non existing files or directories passed to import campaign * empty export file issue when campaign export failed * CM-529 release 2.0.1 bump * CM-529 fix travis build Co-authored-by: Christine Draper Co-authored-by: clee Co-authored-by: Matt Sanchez Co-authored-by: David Aldridge Co-authored-by: Johan Gielstra Co-authored-by: ljha Co-authored-by: yreddy-CS --- bin/cortex-campaigns.js | 104 ++++++++++++++++ bin/cortex.js | 1 + package-lock.json | 8 +- package.json | 3 +- src/client/apiServerClient.js | 32 +++++ src/client/catalog.js | 63 +++++++++- .../templates/skill/daemon/skill.yaml.hbs | 10 +- src/commands/campaigns.js | 111 ++++++++++++++++++ src/commands/deploy.js | 30 ++--- 9 files changed, 336 insertions(+), 26 deletions(-) create mode 100755 bin/cortex-campaigns.js create mode 100644 src/commands/campaigns.js diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js new file mode 100755 index 00000000..9a84f888 --- /dev/null +++ b/bin/cortex-campaigns.js @@ -0,0 +1,104 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListCampaignsCommand, + DescribeCampaignCommand, + ExportCampaignCommand, + ImportCampaignCommand, +} = require('../src/commands/campaigns'); + +program.description('Work with Cortex Campaigns'); + +// List Campaigns +program + .command('list') + .description('List Campaigns') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((options) => { + try { + new ListCampaignsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Get|Describe Campaign +program + .command('describe ') + .alias('get') + .description('Describe Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DescribeCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('export ') + .description('Export Campaign Archive') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--deployable [deployable]', 'Export only deployable missions', true) + .option('--o [output]', 'Export file name') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ExportCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('import ') + .description('Import Campaign Archive') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--filepath [filepath]', 'Exported Campaign file path to import') + .option('--deploy [deploy]', 'Set missions status Ready To Deploy', true) + .option('--overwrite [overwrite]', 'Overwrite existing deployed missions with the imported one', false) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ImportCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 079be8ed..12e129dd 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -28,6 +28,7 @@ program .description('Cortex CLI') .command('actions [cmd]', 'Work with Cortex Actions') .command('agents [cmd]', 'Work with Cortex Agents') + .command('campaigns [cmd]', 'Work with Cortex Campaigns') .command('configure', 'Configure the Cortex CLI') .command('connections [cmd]', 'Work with Cortex Connections') .command('content [cmd]', 'Work with Cortex Managed Content') diff --git a/package-lock.json b/package-lock.json index 2b1efbc8..825e654e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.2", + "version": "2.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1167,7 +1167,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-file": { @@ -2743,7 +2743,7 @@ }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, "is-number": { @@ -2913,7 +2913,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } diff --git a/package.json b/package.json index b85e479f..d631d86e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.3", + "version": "2.0.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -33,6 +33,7 @@ "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", + "form-data": "3.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index a01ad206..27cb0714 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -61,4 +61,36 @@ module.exports = class ApiServerClient { throw err; } } + + /** + * Fetch campaign using graphql + * @paa + * @param campaignId + * @return {Promise} + */ + async getCampaign(projectId, token, campaignId) { + try { + const fetched = await this._client(token) + .request(gql`query { campaignByName( project: "${projectId}", name: "${campaignId}" ){name, title, description}}`); + return _.get(fetched, 'campaignByName'); + } catch (err) { + throw err; + } + } + + + /** + * Query campaign using graphql + * @param campaignId + * @return {Promise} + */ + async listCampaigns(projectId, token) { + try { + const fetched = await this._client(token) + .request(gql`{ campaigns ( project: "${projectId}" ) { name, title, description} }`); + return _.get(fetched, 'campaigns', []); + } catch (err) { + throw err; + } + } }; diff --git a/src/client/catalog.js b/src/client/catalog.js index 52293ab1..7f5694be 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -15,15 +15,19 @@ */ const debug = require('debug')('cortex:cli'); +const FormData = require('form-data'); +const http = require('https'); +const fs = require('fs'); const { got } = require('./apiutils'); const { - constructError, formatAllServiceInputParameters, checkProject, getUserAgent, + constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError, } = require('../commands/utils'); const createEndpoints = baseUri => ({ skills: projectId => `${baseUri}/fabric/v4/projects/${projectId}/skills`, agents: projectId => `${baseUri}/fabric/v4/projects/${projectId}/agents`, types: projectId => `${baseUri}/fabric/v4/projects/${projectId}/types`, + campaigns: projectId => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, }); module.exports = class Catalog { @@ -96,7 +100,7 @@ module.exports = class Catalog { .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) .map(i => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); return { success: true, services: servicesList }; - } + } return response; }); } @@ -186,6 +190,61 @@ module.exports = class Catalog { .catch(err => constructError(err)); } + exportCampaign(projectId, token, campaignName, deployable, outputFileName) { + checkProject(projectId); + debug('exportCampaign(%s) => %s', campaignName, this.endpoints.campaigns); + + + const url = `${this.endpoints.campaigns(projectId)}${campaignName}/export?deployable=${deployable}`; + + return http.get(url, + { headers: { Authorization: `Bearer ${token}` } }, + (response) => { + if (response.statusCode === 200 || response.statusCode === 201) { + const path = `./${outputFileName || `${campaignName}.amp`}`; + const file = fs.createWriteStream(path); + response.pipe(file); + printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`); + } else { + printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`); + } + }).on('error', (e) => { + printError(e); + }); + } + + importCampaign(projectId, token, filepath, deploy, overwrite) { + checkProject(projectId); + debug('importCampaign(%s)', this.endpoints.campaigns); + const importUrl = `${this.endpoints.campaigns(projectId)}import?deployable=${deploy}&overwrite=${overwrite}`; + if (!fs.existsSync(filepath) || !fs.lstatSync(filepath).isFile()) { + printError(`Campaign export file ${filepath} doesn't exists or not a valid export file`); + } + const readStream = fs.createReadStream(filepath); + + const form = new FormData(); + form.append('file', readStream); + + const headers = form.getHeaders(); + headers.Authorization = `Bearer ${token}`; + + const req = http.request(importUrl, { + method: 'POST', + headers, + }); + + form.pipe(req) + .on('response', (response) => { + if (response.statusCode === 200 || response.statusCode === 201) { + printSuccess('Campaign imported successfully'); + } else { + printError(`Campaign file ${filepath} import failed with error: [${response.statusCode}] ${response.statusMessage}`); + } + }).on('error', (err) => { + printError(err); + }); + } + // saveProfileSchema(projectId, token, schemaObj) { // debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); // return request diff --git a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs index ef0131db..1333e4c6 100644 --- a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs @@ -28,13 +28,19 @@ outputs: properties: - name: daemon.method title: Daemon method - description: method + description: Update default value to HTTP method supported by endpoint required: true type: String defaultValue: POST - name: daemon.path title: Daemon path - description: path + description: Update default value to HTTP endpoint path in container required: true type: String defaultValue: invoke + - name: daemon.port + title: Daemon Port + description: Update default value to port on which app will be running + required: true + type: String + defaultValue: 5000 diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js new file mode 100644 index 00000000..29f5501e --- /dev/null +++ b/src/commands/campaigns.js @@ -0,0 +1,111 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const ApiServerClient = require('../client/apiServerClient'); +const Catalog = require('../client/catalog'); +const { + printSuccess, printError, filterObject, printTable, +} = require('./utils'); + +module.exports.ListCampaignsCommand = class ListCampaignsCommand { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListCampaigns()', profile.name); + + const cli = new ApiServerClient(profile.url); + try { + const response = await cli.listCampaigns(options.project || profile.project, profile.token); + let result = response; + if (options.query) result = filterObject(result, options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 80 }, + ]; + printTable(tableSpec, result); + } + } catch (err) { + printError(`Failed to list campaigns: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { + constructor(program) { + this.program = program; + } + + async execute(campaignName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDescribeCampaign(%s)', profile.name, campaignName); + const cli = new ApiServerClient(profile.url); + + try { + const response = await cli.getCampaign(options.project || profile.project, profile.token, campaignName); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + printError(`Failed to describe campaign: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.ExportCampaignCommand = class ExportCampaignCommand { + constructor(program) { + this.program = program; + } + + execute(campaignName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeExportCampaignCommand(%s)', profile.name, campaignName); + const cli = new Catalog(profile.url); + + try { + cli.exportCampaign(options.project || profile.project, profile.token, campaignName, options.deployable, options.o); + } catch (err) { + printError(`Failed to export campaign: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.ImportCampaignCommand = class ImportCampaignCommand { + constructor(program) { + this.program = program; + } + + execute(campaignFilepath, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeImportCampaignCommand(%s)', profile.name, campaignFilepath); + const cli = new Catalog(profile.url); + + try { + cli.importCampaign(options.project || profile.project, profile.token, campaignFilepath, options.deploy, options.overwrite); + } catch (err) { + printError(`Failed to import campaign: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/src/commands/deploy.js b/src/commands/deploy.js index cfaa75e9..bb7dd3ef 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -18,7 +18,7 @@ const path = require('path'); const { loadProfile } = require('../config'); const Agents = require('../client/agents'); const { - printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, + printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, } = require('./utils'); @@ -67,22 +67,18 @@ module.exports.DeploySnapshotCommand = class { const agents = new Agents(profile.url); const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { - promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((response) => { - // if (response.success) { - let result = filterObject(response.result, options); - result = cleanInternalFields(result); - // TODO add validation for not exporting tip snapshots, as they don't have all dependencies. Should we enforce? - let filename = `${snapshotId}.json`; - if (options.yaml) { - result = jsonToYaml(result); - filename = `${snapshotId}.yaml`; - } - const filepath = path.join(exportPath, 'snapshots', filename); - writeToFile(result, filepath); - printSuccess(`Successfully exported agent snapshot ${filepath}`); - return filepath; - // } - // return printError(`Failed to export agent snapshot ${snapshotId}: ${response.message}`, options); + promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((result) => { + result = JSON.parse(result); + result = cleanInternalFields(result); + let filename = `${snapshotId}.json`; + if (options.yaml) { + result = jsonToYaml(result); + filename = `${snapshotId}.yaml`; + } + const filepath = path.join(exportPath, 'snapshots', filename); + writeToFile(result, filepath); + printSuccess(`Successfully exported agent snapshot ${filepath}`); + return filepath; }).catch((err) => { printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); })); From 5984a6b8230d29ebfd6d841d8c67460891fd2114 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Wed, 16 Dec 2020 14:47:05 -0600 Subject: [PATCH 203/864] 2.0.1 release (#284) --- package-lock.json | 8 +++---- package.json | 2 +- src/client/catalog.js | 49 +++++++++++++++++++-------------------- src/commands/campaigns.js | 4 +--- src/commands/deploy.js | 2 +- 5 files changed, 31 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b1efbc8..825e654e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.2", + "version": "2.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1167,7 +1167,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-file": { @@ -2743,7 +2743,7 @@ }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, "is-number": { @@ -2913,7 +2913,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } diff --git a/package.json b/package.json index 34ac89ca..d631d86e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.0-a.3", + "version": "2.0.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { diff --git a/src/client/catalog.js b/src/client/catalog.js index 7683c77c..7f5694be 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -15,19 +15,19 @@ */ const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); const FormData = require('form-data'); const http = require('https'); const fs = require('fs'); +const { got } = require('./apiutils'); const { - constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError + constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError, } = require('../commands/utils'); const createEndpoints = baseUri => ({ skills: projectId => `${baseUri}/fabric/v4/projects/${projectId}/skills`, agents: projectId => `${baseUri}/fabric/v4/projects/${projectId}/agents`, types: projectId => `${baseUri}/fabric/v4/projects/${projectId}/types`, - campaigns: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, + campaigns: projectId => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, }); module.exports = class Catalog { @@ -195,30 +195,30 @@ module.exports = class Catalog { debug('exportCampaign(%s) => %s', campaignName, this.endpoints.campaigns); - const url = this.endpoints.campaigns(projectId) + `${campaignName}/export?deployable=${deployable}`; + const url = `${this.endpoints.campaigns(projectId)}${campaignName}/export?deployable=${deployable}`; return http.get(url, - {headers: { Authorization: `Bearer ${token}` }}, - function(response) { - if (response.statusCode == 200 || response.statusCode == 201) { - const path = './'+(outputFileName || campaignName+'.amp'); + { headers: { Authorization: `Bearer ${token}` } }, + (response) => { + if (response.statusCode === 200 || response.statusCode === 201) { + const path = `./${outputFileName || `${campaignName}.amp`}`; const file = fs.createWriteStream(path); response.pipe(file); - printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`) + printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`); } else { - printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`) + printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`); } - }).on('error', function(e) { - printError(e) + }).on('error', (e) => { + printError(e); }); } importCampaign(projectId, token, filepath, deploy, overwrite) { checkProject(projectId); debug('importCampaign(%s)', this.endpoints.campaigns); - const importUrl = this.endpoints.campaigns(projectId) + `import?deployable=${deploy}&overwrite=${overwrite}`; - if (!fs.existsSync(filepath) || !fs.lstatSync(filepath).isFile() ) { - printError(`Campaign export file ${filepath} doesn't exists or not a valid export file`) + const importUrl = `${this.endpoints.campaigns(projectId)}import?deployable=${deploy}&overwrite=${overwrite}`; + if (!fs.existsSync(filepath) || !fs.lstatSync(filepath).isFile()) { + printError(`Campaign export file ${filepath} doesn't exists or not a valid export file`); } const readStream = fs.createReadStream(filepath); @@ -226,24 +226,23 @@ module.exports = class Catalog { form.append('file', readStream); const headers = form.getHeaders(); - headers["Authorization"] = `Bearer ${token}`; + headers.Authorization = `Bearer ${token}`; const req = http.request(importUrl, { - method : 'POST', - headers: headers, + method: 'POST', + headers, }); form.pipe(req) - .on('response', function (response) { - if (response.statusCode == 200 || response.statusCode == 201) { - printSuccess("Campaign imported successfully") + .on('response', (response) => { + if (response.statusCode === 200 || response.statusCode === 201) { + printSuccess('Campaign imported successfully'); } else { - printError(`Campaign file ${filepath} import failed with error: [${response.statusCode}] ${response.statusMessage}`) + printError(`Campaign file ${filepath} import failed with error: [${response.statusCode}] ${response.statusMessage}`); } - }).on('error', function (err) { - printError(err) + }).on('error', (err) => { + printError(err); }); - } // saveProfileSchema(projectId, token, schemaObj) { diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index ab1fd2c1..29f5501e 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -13,14 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const _ = require('lodash'); -const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const Catalog = require('../client/catalog'); const { - printSuccess, printError, filterObject, parseObject, printTable, checkProject + printSuccess, printError, filterObject, printTable, } = require('./utils'); module.exports.ListCampaignsCommand = class ListCampaignsCommand { diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 7b2b3342..bb7dd3ef 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -18,7 +18,7 @@ const path = require('path'); const { loadProfile } = require('../config'); const Agents = require('../client/agents'); const { - printSuccess, printError, filterObject, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, + printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, } = require('./utils'); From 4b7afe117af34eaf57575b5a1c9f2effb7fb124a Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 18 Dec 2020 09:35:12 -0600 Subject: [PATCH 204/864] Remove action invoke --- bin/cortex-actions.js | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index dd9121f4..d6ee917f 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -28,7 +28,6 @@ const { DeployActionCommand, // TODO readd logs/task calls // GetLogsCommand, - InvokeActionCommand, // JobTaskListActionCommand, // TaskCancelActionCommand, // TaskLogsActionCommand, @@ -110,30 +109,6 @@ program // } // })); -// Invoke Action -program - .command('invoke ') - .description('Invoke an action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--params [params]', 'JSON params to send to the action') - .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--memory [memory]', '[Deprecated] Action memory limit in megabytes') - .option('--vcpus [vcpus]', '[Deprecated] Action vcpus limit in integer') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--actionType [actionType]', 'Type of action') - .option('--path [path]', 'Path to the daemon service url being invoked', '') - .option('--method [method]', 'HTTP method') // GET, POST ... - .action(withCompatibilityCheck((actionName, options) => { - try { - new InvokeActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - // Deploy Action program .command('deploy [actionDefinition]') From cfc7a0575bd6c0d45a07bf2777142b64e365cc7d Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 4 Jan 2021 14:07:28 -0600 Subject: [PATCH 205/864] Support both --name and --actionName, sort options --- bin/cortex-actions.js | 3 ++- src/commands/actions.js | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index dd9121f4..065b8539 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -139,12 +139,13 @@ program .command('deploy [actionDefinition]') .alias('save') .description('Deploy an action') + .storeOptionsAsProperties(false) + .option('--actionName, --name [name]', 'Action name') .option('--actionType [actionType]', 'Type of action') .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') - .option('--actionName [name]', 'Action name') .option('--no-compat', 'Ignore API compatibility checks') .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('--port [port]', 'Docker port') // '9091' diff --git a/src/commands/actions.js b/src/commands/actions.js index 9c1bb5f2..feed6c34 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -93,7 +93,8 @@ module.exports.DeployActionCommand = class { this.program = program; } - execute(actionDefinition, options) { + execute(actionDefinition, command) { + const options = command.opts(); const profile = loadProfile(options.profile); let actionInst = {}; @@ -105,6 +106,9 @@ module.exports.DeployActionCommand = class { if (options.actionName) { actionInst.name = options.actionName; } + if (options.name) { + actionInst.name = options.name; + } if (options.podspec) { const paramsStr = fs.readFileSync(options.podspec); actionInst.podSpec = parseObject(paramsStr, options); From b7d7deee9c6aa06e5b9451dd99d5da7796923efb Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 5 Jan 2021 11:06:04 -0600 Subject: [PATCH 206/864] plop/ini version bump --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 825e654e..fbfd8949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1167,7 +1167,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-file": { @@ -2471,9 +2471,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inquirer": { "version": "6.5.2", @@ -2743,7 +2743,7 @@ }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, "is-number": { @@ -2913,7 +2913,7 @@ "dependencies": { "esprima": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" } } From c6616fad3e41d49dffcd43c3e7ac08e65148e47e Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 8 Jan 2021 13:33:27 +0530 Subject: [PATCH 207/864] improved error message for user input data --- src/commands/agents.js | 6 +++++- src/commands/skills.js | 6 +++++- src/commands/variables.js | 8 ++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 388e3c3f..3deb42e6 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -145,7 +145,11 @@ module.exports.InvokeAgentServiceCommand = class { let params = {}; if (options.params) { - params = parseObject(options.params, options); + try { + params = parseObject(options.params, options); + } catch (e) { + printError(`Failed to parse params: ${options.params} Error: ${e}`, options); + } } else if (options.paramsFile) { const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); diff --git a/src/commands/skills.js b/src/commands/skills.js index b777ce2d..63d5456b 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -128,7 +128,11 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { let params = {}; if (options.params) { - params = parseObject(options.params, options); + try { + params = parseObject(options.params, options); + } catch (e) { + printError(`Failed to parse params: ${options.params} Error: ${e}`, options); + } } else if (options.paramsFile) { const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); diff --git a/src/commands/variables.js b/src/commands/variables.js index 1471593a..1a07b14b 100644 --- a/src/commands/variables.js +++ b/src/commands/variables.js @@ -23,7 +23,7 @@ const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); const Variables = require('../client/variables'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); module.exports.ListVariablesCommand = class { @@ -99,7 +99,11 @@ module.exports.WriteVariableCommand = class { let data = value; if (options.data) { - data = parseObject(options.data, options); + try { + data = parseObject(options.data, options); + } catch (e) { + printError(`Failed to parse data: ${options.data} Error: ${e}`, options); + } } else if (options.dataFile) { const dataStr = fs.readFileSync(options.dataFile); data = parseObject(dataStr, options); From ca0ae8532833f0e8694f28f0a7c86a3670d26f4b Mon Sep 17 00:00:00 2001 From: ljha-CS Date: Fri, 8 Jan 2021 13:49:08 +0530 Subject: [PATCH 208/864] options for boolean flags --- bin/cortex-campaigns.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index d5876a07..a98f434d 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -73,7 +73,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--deployable [true/false]', 'Export only deployable missions', true) + .option('--deployable [boolean]', 'Export only deployable missions', true) .option('--o [output]', 'Export file name') .action(withCompatibilityCheck((campaignName, options) => { try { @@ -91,8 +91,8 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--filepath [filepath]', 'Exported Campaign file path to import') - .option('--deploy [true/false]', 'Set missions status Ready To Deploy', true) - .option('--overwrite [true/false]', 'Overwrite existing deployed missions with the imported one', false) + .option('--deploy [boolean]', 'Set missions status Ready To Deploy', true) + .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) .action(withCompatibilityCheck((campaignName, options) => { try { new ImportCampaignCommand(program).execute(campaignName, options); From 6d04f2d66ec39e61e074f9fc603d89209d7de49a Mon Sep 17 00:00:00 2001 From: svangapally Date: Mon, 25 Jan 2021 16:21:12 +0530 Subject: [PATCH 209/864] Added namespace removal changes --- src/client/actions.js | 11 +++++------ src/client/agents.js | 4 ++-- src/client/catalog.js | 10 +++++----- src/client/connections.js | 4 ++-- src/client/experiments.js | 10 +++++----- src/commands/agents.js | 2 ++ 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/client/actions.js b/src/client/actions.js index dc78af7f..7294bded 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -72,7 +72,7 @@ module.exports = class Actions { describeAction(projectId, token, actionName) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/${actionName}`; + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}`; debug('describeAction(%s) => %s', actionName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` } }) @@ -83,7 +83,7 @@ module.exports = class Actions { getLogsAction(projectId, token, actionName) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/${actionName}/logs`; + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}/logs`; debug('getLogsAction(%s) => %s', actionName, endpoint); return got .get(endpoint, { @@ -103,7 +103,7 @@ module.exports = class Actions { deleteAction(projectId, token, actionName, actionType) { checkProject(projectId); - let endpoint = `${this.endpointV4(projectId)}/${actionName}`; + let endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}`; if (actionType) { endpoint = `${endpoint}?actionType=${actionType}`; } @@ -220,9 +220,8 @@ module.exports = class Actions { static getCanonicalJobId(jobId) { let canonicalJobId = jobId; const namespaceProvided = /\w\/\w/.test(jobId); - if (!namespaceProvided) { - canonicalJobId = `default/${jobId}`; - console.warn(chalk.yellow('Namespace not given in jobId, assuming \'default\'')); + if (namespaceProvided) { + canonicalJobId = encodeURIComponent(jobId); } return canonicalJobId; } diff --git a/src/client/agents.js b/src/client/agents.js index af84e791..8e8ea876 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -75,7 +75,7 @@ module.exports = class Agents { } listAgentSnapshots(projectId, token, agentName) { - const endpoint = `${this.endpointV4(projectId)}/agents/${agentName}/snapshots`; + const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(agentName)}/snapshots`; debug('listAgentSnapshots(%s, %s) => %s', agentName, endpoint); return got .get(endpoint, { @@ -99,7 +99,7 @@ module.exports = class Agents { } createAgentSnapshot(projectId, token, snapshot) { - const endpoint = `${this.endpointV4(projectId)}/agents/${snapshot.agentName}/snapshots`; + const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(snapshot.agentName)}/snapshots`; debug('getAgentSnapshot=> %s', endpoint); return got .post(endpoint, { diff --git a/src/client/catalog.js b/src/client/catalog.js index 7f5694be..89120a9b 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -63,7 +63,7 @@ module.exports = class Catalog { describeSkill(projectId, token, skillName) { checkProject(projectId); - const endpoint = `${this.endpoints.skills(projectId)}/${skillName}`; + const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; debug('describeSkill(%s) => %s', skillName, endpoint); return got .get(endpoint, { @@ -94,7 +94,7 @@ module.exports = class Catalog { debug('listServices() using describeAgent'); return this.describeAgent(projectId, token, agentName).then((response) => { if (response.success) { - const urlBase = `${this.endpoints.agents(projectId)}/${agentName}/services`; + const urlBase = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/services`; const servicesList = response.agent.inputs .filter(i => i.signalType === 'Service') .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) @@ -121,7 +121,7 @@ module.exports = class Catalog { describeAgent(projectId, token, agentName) { checkProject(projectId); - const endpoint = `${this.endpoints.agents(projectId)}/${agentName}`; + const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; debug('describeAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { @@ -134,7 +134,7 @@ module.exports = class Catalog { describeAgentVersions(projectId, token, agentName) { checkProject(projectId); - const endpoint = `${this.endpoints.agents(projectId)}/${agentName}/versions`; + const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/versions`; debug('describeAgentVersions(%s) => %s', agentName, endpoint); return got .get(endpoint, { @@ -164,7 +164,7 @@ module.exports = class Catalog { describeType(projectId, token, typeName) { checkProject(projectId); - const endpoint = `${this.endpoints.types(projectId)}/${typeName}`; + const endpoint = `${this.endpoints.types(projectId)}/${encodeURIComponent(typeName)}`; debug('describeType(%s) => %s', typeName, endpoint); return got .get(endpoint, { diff --git a/src/client/connections.js b/src/client/connections.js index f77a3ce1..ca5b879c 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -25,7 +25,7 @@ module.exports = class Connections { } async queryConnection(projectId, token, connectionName, queryObject) { - const endpoint = `${this.endpoint(projectId)}/${connectionName}/query`; + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(connectionName)}/query`; debug('queryConnection(%s) => %s', connectionName, endpoint); try { const message = await got @@ -68,7 +68,7 @@ module.exports = class Connections { } describeConnection(projectId, token, connectionName) { - const endpoint = `${this.endpoint(projectId)}/${connectionName}`; + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(connectionName)}`; debug('describeConnection(%s) => %s', connectionName, endpoint); return got .get(endpoint, { diff --git a/src/client/experiments.js b/src/client/experiments.js index c5129934..846ad43a 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -38,7 +38,7 @@ module.exports = class Experiments { } describeExperiment(projectId, token, name) { - const endpoint = `${this.endpoint(projectId)}/${name}`; + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(name)}`; debug('describeExperiment(%s) => %s', name, endpoint); return got .get(endpoint, { @@ -50,7 +50,7 @@ module.exports = class Experiments { } deleteExperiment(projectId, token, name) { - const endpoint = `${this.endpoint(projectId)}/${name}`; + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(name)}`; debug('deleteExperiment(%s) => %s', name, endpoint); return got .delete(endpoint, { @@ -62,7 +62,7 @@ module.exports = class Experiments { } listRuns(projectId, token, experimentName, filter, limit, sort) { - const endpoint = `${this.endpoint(projectId)}/${experimentName}/runs`; + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs`; debug('listRuns(%s) => %s', experimentName, endpoint); const query = {}; if (filter) query.filter = filter; @@ -79,7 +79,7 @@ module.exports = class Experiments { } describeRun(projectId, token, experimentName, runId) { - const endpoint = `${this.endpoint(projectId)}/${experimentName}/runs/${runId}`; + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${runId}`; debug('describeRun(%s) => %s', runId, endpoint); return got .get(endpoint, { @@ -91,7 +91,7 @@ module.exports = class Experiments { } deleteRun(projectId, token, experimentName, runId) { - const endpoint = `${this.endpoint(projectId)}/${experimentName}/runs/${runId}`; + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${runId}`; debug('deleteRun(%s) => %s', runId, endpoint); return got .delete(endpoint, { diff --git a/src/commands/agents.js b/src/commands/agents.js index 3deb42e6..9fd37ef2 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -51,6 +51,8 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { response.details.map(d => d.path = formatValidationPath(d.path)); printTable(tableSpec, response.details); printError(''); // Just exit + } else { + printError(JSON.stringify(response)); } }) .catch((err) => { From 84af32229e5813862e63655ab13adf8af13ac27b Mon Sep 17 00:00:00 2001 From: Melissa Burpo Date: Tue, 26 Jan 2021 09:20:42 -0600 Subject: [PATCH 210/864] fix space that was causing display issue in docs --- generate_docs.js | 1 + 1 file changed, 1 insertion(+) diff --git a/generate_docs.js b/generate_docs.js index 74c35474..e7e1e7b9 100644 --- a/generate_docs.js +++ b/generate_docs.js @@ -52,6 +52,7 @@ Interface (Cortex CLI). See [CLI](getting-started/use-cli.md) for help getting started using the CLI. ## Notation The following table describes the common notation used in this reference guide. + | Notation | Description | Example | | -------- | ----------- | ------- | | \`< >\` | Required | \`\` denotes a required value. | From 0f510feb94536bcebf5eb3824909c0850b47387b Mon Sep 17 00:00:00 2001 From: Melissa Burpo Date: Tue, 26 Jan 2021 09:39:17 -0600 Subject: [PATCH 211/864] fix insertion of characters that didn't render in generated fabric docs --- generate_docs.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generate_docs.js b/generate_docs.js index e7e1e7b9..ddcb9bd3 100644 --- a/generate_docs.js +++ b/generate_docs.js @@ -13,8 +13,8 @@ const rootJson = require(`${sourcedir}/cortex.json`) // replace /n/t with HTML equivs const cleanString = (s) => s - .replace(/\n/g, '
') - .replace(/\t/g, 'nbsp;nbsp;') + .replace(/\n/g, '') + .replace(/\t/g, '') .replace(//g,'>`') From 1270c816b19bca85553807a07baba4f1d0b418cf Mon Sep 17 00:00:00 2001 From: smichalski-cs <38925565+smichalski-cs@users.noreply.github.com> Date: Tue, 26 Jan 2021 15:31:19 -0600 Subject: [PATCH 212/864] skill-generate templates v6 updates (#289) * v6 updates * PR comments --- .../assets/templates/skill/daemon/README.md | 59 +++++++++++++------ .../templates/skill/external-api/README.md | 14 +++-- .../assets/templates/skill/job/README.md | 54 +++++++++++------ 3 files changed, 86 insertions(+), 41 deletions(-) diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index 28c1882f..c06122c4 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -1,28 +1,49 @@ -### Daemon Skill +### Daemon Skill type Long running Cortex skill serving REST API requests -#### Files generated: +Note: +> This project assumes a `fast api server` with one endpoint `/invoke` that is run with the Uvicorn python3 binary; you may change to another framework or language. + + +#### Files generated * `skill.yaml` Skill definition * `main.py` Python3 code serving the daemon API * `requirements.txt` Python3 libraries dependencies * `Dockerfile` to build Docker image for this skill -#### Next Steps: -* Add input/output parameters and properties in skill.yaml as per requirement -* Update `main.py` with the business logic this skill will implement. -* Add required libraries to `requirements.txt` -* Make changes to Dockerfile if required +#### Steps +1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. +2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. +3. Build the docker image (uses the `main.py` file) + ``` + docker build -t : . + ``` +4. Push the docker image to a registry that is connected to your Kubernetes cluster. + ``` + docker push : + ``` -Note: -> This is a Fast API/Uvicorn based Python3 project, feel free to change to other framework or language as per the need - -#### Deployment Steps -* Build the docker image and push to registry accessible to Cortex DCI - ```bash - docker build -t : -f Dockerfile . - docker tag : - docker push - ``` -* Save Cortex Action `cortex actions deploy --actionType daemon --docker --port '5000' --project ` -* Deploy this Skill `cortex skills save -y skill.yaml --project ` + **(Optionally) Retag an image** + ``` + docker tag : : + ``` +5. Deploy the action. + ``` + cortex actions deploy \ + --actionType daemon \ + --docker \ + --port '5000' \ + --project + ``` +6. Modify the `skill.yaml` file. +7. Save/deploy the Skill. + ``` + cortex skills save -y skill.yaml --project + ``` + + The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. + + Skills that are deployed may be invoked (run) either independently or within an agent. + +For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) diff --git a/src/commands/assets/templates/skill/external-api/README.md b/src/commands/assets/templates/skill/external-api/README.md index 0ad3f688..70a1eebf 100644 --- a/src/commands/assets/templates/skill/external-api/README.md +++ b/src/commands/assets/templates/skill/external-api/README.md @@ -1,8 +1,12 @@ -### External API Skill +### External API Skill type -This Cortex skill is to wrap an external REST API as a skill +This skill type allows users to wrap an external REST API as a Cortex Fabric Skill. -Update `skill.yaml` with `HTTP Method`, `URL`, `Path` and `headers` as per the targeted external API +1. Update `skill.yaml` with `HTTP Method`, `URL`, `Path` and `headers` per the targeted external API +2. Deploy the Skill `cortex skills save -y skill.yaml --project ` -#### Deployment Steps: -* Deploy this Skill `cortex skills save -y skill.yaml --project ` +The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. + +Skills that are deployed may be invoked (run) either independently or within an agent. + +For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index bdaaa443..909e9bac 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -1,25 +1,45 @@ -### Daemon Skill +### Job Skill type -Background job running Cortex skill +Cortex skill that runs a background job. -#### Files generated: +#### Files generated * `skill.yaml` Skill definition * `main.py` Python3 code implementing job's business logic * `requirements.txt` Python3 libraries dependencies * `Dockerfile` to build Docker image for this skill -#### Next Steps: -* Add input/output parameters and properties in skill.yaml as per requirement -* Update `main.py` with the business logic this skill will implement. -* Add required libraries to `requirements.txt` -* Make changes to Dockerfile if required +#### Steps +1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. +2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. +3. Build the docker image (uses the `main.py` file) + ``` + docker build -t : . + ``` +4. Push the docker image to a registry that is connected to your Kubernetes cluster. + ``` + docker push : + ``` -#### Deployment Steps -* Build the docker image and push to registry accessible to Cortex DCI - ```bash - docker build -t : -f Dockerfile . - docker tag : - docker push - ``` -* Save Cortex Action `cortex actions deploy --actionType job --docker --cmd '["python", "/app/main.py"]' --project ` -* Deploy this Skill `cortex skills save -y skill.yaml --project ` + **(Optionally) Retag an image** + ``` + docker tag : : + ``` +5. Deploy the action. + ``` + cortex actions deploy \ + --actionType daemon \ + --docker \ + --port '5000' \ + --project + ``` +6. Modify the `skill.yaml` file. +7. Save/deploy the Skill. + ``` + cortex skills save -y skill.yaml --project + ``` + + The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. + + Skills that are deployed may be invoked (run) either independently or within an agent. + +For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) From 8ff05c6d6dd6469f79a3478195b8dd6b67395570 Mon Sep 17 00:00:00 2001 From: svangapally Date: Wed, 27 Jan 2021 17:13:09 +0530 Subject: [PATCH 213/864] Added namespace removal changes in skill generate template --- src/commands/assets/templates/skill/daemon/skill.yaml.hbs | 4 ++-- .../assets/templates/skill/external-api/skill.yaml.hbs | 2 +- src/commands/assets/templates/skill/job/skill.yaml.hbs | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs index 1333e4c6..5f3733bc 100644 --- a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs @@ -1,5 +1,5 @@ camel: 1.0.0 -name: c12e/{{dashCase name}} +name: {{dashCase name}} title: {{name}} description: {{name}} inputs: @@ -12,7 +12,7 @@ inputs: required: true routing: all: - action : c12e/{{dashCase name}} + action : {{dashCase name}} runtime: cortex/daemons output: response diff --git a/src/commands/assets/templates/skill/external-api/skill.yaml.hbs b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs index f8bf08dd..f6a14236 100644 --- a/src/commands/assets/templates/skill/external-api/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs @@ -1,5 +1,5 @@ camel: 1.0.0 -name: c12e/{{dashCase name}} +name: {{dashCase name}} title: {{name}} description: {{name}} properties: diff --git a/src/commands/assets/templates/skill/job/skill.yaml.hbs b/src/commands/assets/templates/skill/job/skill.yaml.hbs index 118c6fed..89dd3041 100644 --- a/src/commands/assets/templates/skill/job/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/job/skill.yaml.hbs @@ -1,5 +1,5 @@ camel: 1.0.0 -name: c12e/{{dashCase name}} +name: {{dashCase name}} title: {{name}} description: {{name}} inputs: @@ -12,7 +12,7 @@ inputs: required: true routing: all: - action : c12e/{{dashCase name}} + action : {{dashCase name}} runtime: cortex/jobs output: response From a30098429ba0aeaf38922d7f4b51f47a7b77daf7 Mon Sep 17 00:00:00 2001 From: svangapally Date: Fri, 29 Jan 2021 16:47:53 +0530 Subject: [PATCH 214/864] Fixed unable to list experiments --- src/client/experiments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/experiments.js b/src/client/experiments.js index 846ad43a..ece4ce42 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -72,7 +72,7 @@ module.exports = class Experiments { .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - searchParams: { query }, + searchParams: query, }).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); From 9a23e71984993a4bfd8dfef6bd8d071d58648c3c Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Wed, 3 Feb 2021 16:24:54 -0600 Subject: [PATCH 215/864] job readme uses job command --- src/commands/assets/templates/skill/job/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 909e9bac..6e4bff10 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -27,7 +27,7 @@ Cortex skill that runs a background job. 5. Deploy the action. ``` cortex actions deploy \ - --actionType daemon \ + --actionType job \ --docker \ --port '5000' \ --project From e10b9702a5cd8c8591a8c8db97e806e88777d135 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Thu, 4 Feb 2021 12:17:03 -0600 Subject: [PATCH 216/864] remove port from deploy command --- src/commands/assets/templates/skill/job/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 6e4bff10..55aea14d 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -29,7 +29,6 @@ Cortex skill that runs a background job. cortex actions deploy \ --actionType job \ --docker \ - --port '5000' \ --project ``` 6. Modify the `skill.yaml` file. From 54f489ee17d0e86b2b3a3b861643f3ee2b1c9e24 Mon Sep 17 00:00:00 2001 From: clee Date: Thu, 4 Feb 2021 15:56:46 -0600 Subject: [PATCH 217/864] fix linting issue --- src/client/actions.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/client/actions.js b/src/client/actions.js index 7294bded..24d45488 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -14,7 +14,6 @@ * limitations under the License. */ const _ = require('lodash'); -const chalk = require('chalk'); const debug = require('debug')('cortex:cli'); const jose = require('jose'); const { got } = require('./apiutils'); From 8afb018eadbe73fda977038a0e0b14d98c0298f2 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Mon, 8 Feb 2021 13:53:05 -0600 Subject: [PATCH 218/864] Update Dockerfile switch job template to use an entrypoint rather than command --- src/commands/assets/templates/skill/job/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/job/Dockerfile b/src/commands/assets/templates/skill/job/Dockerfile index 9c3b16ae..7e850e40 100644 --- a/src/commands/assets/templates/skill/job/Dockerfile +++ b/src/commands/assets/templates/skill/job/Dockerfile @@ -1,4 +1,4 @@ FROM python:3.7.4-buster ADD . /app RUN pip install -r /app/requirements.txt -CMD ["python", "/app/main.py"] +ENTRYPOINT ["python", "/app/main.py"] From f67903750e7c04d4fb4e18fd8dd22f2a577bcf15 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Fri, 12 Feb 2021 14:47:09 +0530 Subject: [PATCH 219/864] FAB-1159 Added actionName to docs, fixed workdir --- .../assets/templates/skill/daemon/Dockerfile | 3 +- .../assets/templates/skill/daemon/README.md | 66 +++++++++++-------- .../assets/templates/skill/job/README.md | 62 +++++++++-------- 3 files changed, 76 insertions(+), 55 deletions(-) diff --git a/src/commands/assets/templates/skill/daemon/Dockerfile b/src/commands/assets/templates/skill/daemon/Dockerfile index fdde45fa..5a4f6cb6 100644 --- a/src/commands/assets/templates/skill/daemon/Dockerfile +++ b/src/commands/assets/templates/skill/daemon/Dockerfile @@ -1,4 +1,5 @@ FROM python:3.7.4-buster ADD . /app -RUN pip install -r /app/requirements.txt +WORKDIR /app +RUN pip install -r requirements.txt CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"] diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index c06122c4..f24fd551 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -3,47 +3,57 @@ Long running Cortex skill serving REST API requests Note: -> This project assumes a `fast api server` with one endpoint `/invoke` that is run with the Uvicorn python3 binary; you may change to another framework or language. +> This project assumes a `fast api server` with one endpoint `/invoke` that is run with the Uvicorn python3 binary; you may change to another framework or language. #### Files generated -* `skill.yaml` Skill definition -* `main.py` Python3 code serving the daemon API -* `requirements.txt` Python3 libraries dependencies -* `Dockerfile` to build Docker image for this skill + +- `skill.yaml` Skill definition +- `main.py` Python3 code serving the daemon API +- `requirements.txt` Python3 libraries dependencies +- `Dockerfile` to build Docker image for this skill #### Steps + 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. 3. Build the docker image (uses the `main.py` file) - ``` - docker build -t : . - ``` + +``` +docker build -t : . +``` + 4. Push the docker image to a registry that is connected to your Kubernetes cluster. - ``` - docker push : - ``` - - **(Optionally) Retag an image** - ``` - docker tag : : - ``` + +``` +docker push : +``` + +**(Optionally) Retag an image** + +``` +docker tag : : +``` + 5. Deploy the action. - ``` - cortex actions deploy \ - --actionType daemon \ - --docker \ - --port '5000' \ - --project - ``` + +``` +cortex actions deploy --actionName \ +--actionType daemon \ +--docker \ +--port '5000' \ +--project +``` + 6. Modify the `skill.yaml` file. 7. Save/deploy the Skill. - ``` - cortex skills save -y skill.yaml --project - ``` - The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. +``` +cortex skills save -y skill.yaml --project +``` + +The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. - Skills that are deployed may be invoked (run) either independently or within an agent. +Skills that are deployed may be invoked (run) either independently or within an agent. For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 55aea14d..6a4a6159 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -3,42 +3,52 @@ Cortex skill that runs a background job. #### Files generated -* `skill.yaml` Skill definition -* `main.py` Python3 code implementing job's business logic -* `requirements.txt` Python3 libraries dependencies -* `Dockerfile` to build Docker image for this skill + +- `skill.yaml` Skill definition +- `main.py` Python3 code implementing job's business logic +- `requirements.txt` Python3 libraries dependencies +- `Dockerfile` to build Docker image for this skill #### Steps + 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. 3. Build the docker image (uses the `main.py` file) - ``` - docker build -t : . - ``` + +``` +docker build -t : . +``` + 4. Push the docker image to a registry that is connected to your Kubernetes cluster. - ``` - docker push : - ``` - - **(Optionally) Retag an image** - ``` - docker tag : : - ``` + +``` +docker push : +``` + +**(Optionally) Retag an image** + +``` +docker tag : : +``` + 5. Deploy the action. - ``` - cortex actions deploy \ - --actionType job \ - --docker \ - --project - ``` + +``` +cortex actions deploy --actionName \ +--actionType job \ +--docker \ +--project +``` + 6. Modify the `skill.yaml` file. 7. Save/deploy the Skill. - ``` - cortex skills save -y skill.yaml --project - ``` - The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. +``` +cortex skills save -y skill.yaml --project +``` + +The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. - Skills that are deployed may be invoked (run) either independently or within an agent. +Skills that are deployed may be invoked (run) either independently or within an agent. For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) From 0d3cc0a5329d55b746aa03251059b8c21121d729 Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Fri, 12 Feb 2021 14:54:48 +0530 Subject: [PATCH 220/864] Update README.md --- .../assets/templates/skill/daemon/README.md | 66 ++++++++----------- 1 file changed, 28 insertions(+), 38 deletions(-) diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index f24fd551..b0f0f4b5 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -3,57 +3,47 @@ Long running Cortex skill serving REST API requests Note: - > This project assumes a `fast api server` with one endpoint `/invoke` that is run with the Uvicorn python3 binary; you may change to another framework or language. -#### Files generated -- `skill.yaml` Skill definition -- `main.py` Python3 code serving the daemon API -- `requirements.txt` Python3 libraries dependencies -- `Dockerfile` to build Docker image for this skill +#### Files generated +* `skill.yaml` Skill definition +* `main.py` Python3 code serving the daemon API +* `requirements.txt` Python3 libraries dependencies +* `Dockerfile` to build Docker image for this skill #### Steps - 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. 3. Build the docker image (uses the `main.py` file) - -``` -docker build -t : . -``` - + ``` + docker build -t : . + ``` 4. Push the docker image to a registry that is connected to your Kubernetes cluster. - -``` -docker push : -``` - -**(Optionally) Retag an image** - -``` -docker tag : : -``` - + ``` + docker push : + ``` + + **(Optionally) Retag an image** + ``` + docker tag : : + ``` 5. Deploy the action. - -``` -cortex actions deploy --actionName \ ---actionType daemon \ ---docker \ ---port '5000' \ ---project -``` - + ``` + cortex actions deploy --actionName \ + --actionType daemon \ + --docker \ + --port '5000' \ + --project + ``` 6. Modify the `skill.yaml` file. 7. Save/deploy the Skill. + ``` + cortex skills save -y skill.yaml --project + ``` -``` -cortex skills save -y skill.yaml --project -``` - -The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. + The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. -Skills that are deployed may be invoked (run) either independently or within an agent. + Skills that are deployed may be invoked (run) either independently or within an agent. For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) From 0bb56abb5d9a77dea76d94424a5bdec17e1b073e Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Fri, 12 Feb 2021 14:56:03 +0530 Subject: [PATCH 221/864] Update README.md --- .../assets/templates/skill/job/README.md | 62 ++++++++----------- 1 file changed, 26 insertions(+), 36 deletions(-) diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 6a4a6159..2eb84f53 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -3,52 +3,42 @@ Cortex skill that runs a background job. #### Files generated - -- `skill.yaml` Skill definition -- `main.py` Python3 code implementing job's business logic -- `requirements.txt` Python3 libraries dependencies -- `Dockerfile` to build Docker image for this skill +* `skill.yaml` Skill definition +* `main.py` Python3 code implementing job's business logic +* `requirements.txt` Python3 libraries dependencies +* `Dockerfile` to build Docker image for this skill #### Steps - 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. 3. Build the docker image (uses the `main.py` file) - -``` -docker build -t : . -``` - + ``` + docker build -t : . + ``` 4. Push the docker image to a registry that is connected to your Kubernetes cluster. - -``` -docker push : -``` - -**(Optionally) Retag an image** - -``` -docker tag : : -``` - + ``` + docker push : + ``` + + **(Optionally) Retag an image** + ``` + docker tag : : + ``` 5. Deploy the action. - -``` -cortex actions deploy --actionName \ ---actionType job \ ---docker \ ---project -``` - + ``` + cortex actions deploy --actionName \ + --actionType job \ + --docker \ + --project + ``` 6. Modify the `skill.yaml` file. 7. Save/deploy the Skill. + ``` + cortex skills save -y skill.yaml --project + ``` -``` -cortex skills save -y skill.yaml --project -``` - -The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. + The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. -Skills that are deployed may be invoked (run) either independently or within an agent. + Skills that are deployed may be invoked (run) either independently or within an agent. For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) From a8f1f0a79765c829767467e5a83adc657f0b46a6 Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Tue, 16 Feb 2021 19:08:50 +0530 Subject: [PATCH 222/864] Update README.md --- src/commands/assets/templates/skill/daemon/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index b0f0f4b5..0d8f69e7 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -46,4 +46,4 @@ Note: Skills that are deployed may be invoked (run) either independently or within an agent. -For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) +For more details about how to build skills go to [Cortex Fabric Documentation - Development - Develop Skills](https://cognitivescale.github.io/cortex-fabric/docs/development/define-skills) From ff0f085816438e14f34012ba697ba0a277349d1e Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Tue, 16 Feb 2021 19:09:09 +0530 Subject: [PATCH 223/864] Update README.md --- src/commands/assets/templates/skill/external-api/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/external-api/README.md b/src/commands/assets/templates/skill/external-api/README.md index 70a1eebf..487c8779 100644 --- a/src/commands/assets/templates/skill/external-api/README.md +++ b/src/commands/assets/templates/skill/external-api/README.md @@ -9,4 +9,4 @@ The Skill is added to the Cortex Fabric catalog and is available for selection w Skills that are deployed may be invoked (run) either independently or within an agent. -For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) +For more details about how to build skills go to [Cortex Fabric Documentation - Development - Develop Skills](https://cognitivescale.github.io/cortex-fabric/docs/development/define-skills) From 15b63fa12b8924848c16585a2d3587ce2f40fb67 Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Tue, 16 Feb 2021 19:09:25 +0530 Subject: [PATCH 224/864] Update README.md --- src/commands/assets/templates/skill/job/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 2eb84f53..9504683e 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -41,4 +41,4 @@ Cortex skill that runs a background job. Skills that are deployed may be invoked (run) either independently or within an agent. -For more details about how to build skills go to [Cortex Fabric Documentation - Build Skills - Define Skills](https://cognitivescale.github.io/cortex-fabric/docs/build-skills/define-skills) +For more details about how to build skills go to [Cortex Fabric Documentation - Development - Develop Skills](https://cognitivescale.github.io/cortex-fabric/docs/development/define-skills) From 1bc133bb655191b1416747bb31113ca0f9693b2b Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 18 Feb 2021 12:29:25 -0600 Subject: [PATCH 225/864] Added ls alias to content list --- bin/cortex-content.js | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/cortex-content.js b/bin/cortex-content.js index a3f5d7ef..9cc2489d 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -35,6 +35,7 @@ program.description('Work with Cortex Contents'); program .command('list') .description('List content') + .alias('ls') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') From bff3260af98397c9b80663adb0a1ca4416412997 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 6 Jan 2021 20:50:52 -0600 Subject: [PATCH 226/864] got RequestError returns X-Auth-Error and other connection related errors, use message over response.body --- src/commands/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index dbc57336..29426018 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -33,7 +33,7 @@ module.exports.constructError = (error) => { // fallback to text in message or standard error message const errResp = error.response; let errorText = _.get(errResp, 'body'); - if (_.isEmpty(errorText)) { + if (_.isEmpty(errorText) || error.name === 'RequestError') { errorText = error.message; } let details; From 97c78be24da3dd23d7aa60b3a7db06ef29611cba Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 18 Feb 2021 13:21:27 -0600 Subject: [PATCH 227/864] remove-graph-cli --- bin/cortex-graph.js | 105 --------- bin/cortex-profiles.js | 210 ------------------ bin/cortex.js | 2 - package-lock.json | 115 ++-------- package.json | 7 +- src/client/graph.js | 205 ------------------ src/commands/graph.js | 448 --------------------------------------- src/commands/profiles.js | 329 ---------------------------- 8 files changed, 18 insertions(+), 1403 deletions(-) delete mode 100755 bin/cortex-graph.js delete mode 100755 bin/cortex-profiles.js delete mode 100644 src/client/graph.js delete mode 100644 src/commands/graph.js delete mode 100644 src/commands/profiles.js diff --git a/bin/cortex-graph.js b/bin/cortex-graph.js deleted file mode 100755 index 6d76c7cb..00000000 --- a/bin/cortex-graph.js +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - FindEventsCommand, - PublishEventsCommand, - GetEntityCommand, - QueryGraphCommand, -} = require('../src/commands/graph'); - -program.description('Work with the Cortex Graph'); - -// Find Entity Events -program - .command('find-events') - .description('Find entity events in the event store') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use as the event query.') - .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') - .option('--limit [limit]', 'Limit the number of events returned.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .action(withCompatibilityCheck((options) => { - try { - new FindEventsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Publish Events -program - .command('publish [file]') - .description('Publish events to the event store') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--tracking', 'Enable tracking event mode.') - .option('--transform [templates]', 'Apply transform templates to the input JSON records.') - .option('--dry-run', "Simulate the publish (but don't actually send events to the server).") - .option('--auto', 'Enable auto attribute creation using each entity property as an attribute value.') - .action(withCompatibilityCheck(async (file, options) => { - await new PublishEventsCommand(program).execute(file, options) - .catch(err => console.error(chalk.red(err.message))); - })); - -// Describe Entity -program - .command('get-entity ') - .description('Get an entity in the graph by ID') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck(async (entityId, options) => { - try { - new GetEntityCommand(program).execute(entityId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Query the graph -program - .command('query ') - .description('Query the graph using the OpenCypher query language') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .action(withCompatibilityCheck(async (query, options) => { - try { - new QueryGraphCommand(program).execute(query, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex-profiles.js b/bin/cortex-profiles.js deleted file mode 100755 index ae2715b8..00000000 --- a/bin/cortex-profiles.js +++ /dev/null @@ -1,210 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('../src/commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - SaveProfileSchemaCommand, - ListProfileSchemasCommand, - ListProfileVersionsCommand, - DescribeProfileSchemaCommand, - DeleteProfileSchemaCommand, - ListProfilesCommand, - DescribeProfileCommand, - DeleteProfileCommand, - RebuildProfilesCommand, -} = require('../src/commands/profiles'); - -program.description('Work with Cortex Profiles'); - -// Save Profile Schema -program - .command('save-schema ') - .description('Save a profile schema') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The configuration profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for profile schema format') - .action(withCompatibilityCheck((profileSchema, options) => { - try { - new SaveProfileSchemaCommand(program).execute(profileSchema, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Profile Schemas -program - .command('list-schemas') - .description('List profile schemas') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use as the event query.') - .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') - .option('--limit [limit]', 'Limit the number of events returned.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .action(withCompatibilityCheck((options) => { - try { - new ListProfileSchemasCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Describe Profile Schema -program - .command('describe-schema ') - .description('Describe Profile Schema') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((schemaName, options) => { - try { - new DescribeProfileSchemaCommand(program).execute(schemaName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete Profile Schema -program - .command('delete-schema ') - .description('Delete a Profile Schema') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((schemaName, options) => { - try { - new DeleteProfileSchemaCommand(program).execute(schemaName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Profiles -program - .command('list') - .description('List profiles') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use as the event query.') - .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') - .option('--limit [limit]', 'Limit the number of events returned.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .action(withCompatibilityCheck((options) => { - try { - new ListProfilesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// List Profile Versions -program - .command('list-versions [schemaName]') - .description('List Profile Versoins') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--before [before]', 'Filter versions before a specific date.') - .option('--after [after]', 'Filter versions after a specific date.') - .option('--limit [limit]', 'Limit the number of events returned.') - .action(withCompatibilityCheck((profileId, schemaName, options) => { - try { - new ListProfileVersionsCommand(program).execute(profileId, schemaName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - - -// Describe Profile -program - .command('describe [schemaName]') - .description('Describe Profile Schema') - .option('--historic', 'Describe the historic version of the profile.') - .option('--versionLimit [versionLimit]', 'Limit the version of the profile being described.') - .option('--attribute [attribute]', 'Describe a specific attribute in the profile.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((profileId, schemaName, options) => { - try { - new DescribeProfileCommand(program).execute(profileId, schemaName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete Profile -program - .command('delete [schemaName]') - .description('Delete a Profile') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((profileId, schemaName, options) => { - try { - new DeleteProfileCommand(program).execute(profileId, schemaName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Rebuild Profile -program - .command('rebuild [profileId]') - .description('Rebuild a Profile') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--filter [filter]', 'A Mongo style filter to use as the event query.') - .option('--sort [sort]', 'A Mongo style sort statement to use in the event query.') - .option('--limit [limit]', 'Limit the number of events returned.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .action(withCompatibilityCheck((schemaName, profileId, options) => { - try { - new RebuildProfilesCommand(program).execute(schemaName, profileId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 12e129dd..4e9fdc5d 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -36,8 +36,6 @@ program .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') .command('generate [cmd]', 'Scaffold Cortex Components') - .command('graph [cmd]', 'Work with the Cortex Graph') - .command('profiles [cmd]', 'Work with Cortex Profiles') .command('projects [cmd]', 'Work with Cortex Projects') .command('roles [cmd]', 'Work with a Cortex Roles') .command('secrets [cmd]', 'Work with Cortex Secrets') diff --git a/package-lock.json b/package-lock.json index fbfd8949..b1de2fa0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1075,7 +1075,8 @@ "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true }, "defaults": { "version": "1.0.3", @@ -1283,18 +1284,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, "eslint": { "version": "5.16.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", @@ -1660,12 +1649,14 @@ "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true }, "execa": { "version": "4.1.0", @@ -1883,7 +1874,8 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true }, "fastq": { "version": "1.9.0", @@ -2901,23 +2893,6 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, - "jsonpath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", - "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", - "requires": { - "esprima": "1.2.2", - "static-eval": "2.0.2", - "underscore": "1.7.0" - }, - "dependencies": { - "esprima": { - "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" - } - } - }, "keypress": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", @@ -2945,6 +2920,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -4097,6 +4073,7 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -4469,12 +4446,14 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true }, "promise-inflight": { "version": "1.0.1", @@ -4588,16 +4567,6 @@ } } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "readdirp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", @@ -5120,11 +5089,6 @@ "tslib": "^1.9.0" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", @@ -5472,14 +5436,6 @@ "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { - "through": "2" - } - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -5501,14 +5457,6 @@ "minipass": "^3.1.1" } }, - "static-eval": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", - "requires": { - "escodegen": "^1.8.1" - } - }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -5589,14 +5537,6 @@ "es-abstract": "^1.18.0-next.1" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -5693,14 +5633,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "requires": { - "readable-stream": "2 || 3" - } - }, "title-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", @@ -5807,6 +5739,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, "requires": { "prelude-ls": "~1.1.2" } @@ -5833,11 +5766,6 @@ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" - }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -5865,11 +5793,6 @@ "imurmurhash": "^0.1.4" } }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -5943,11 +5866,6 @@ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, "v8-compile-cache": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", @@ -6056,7 +5974,8 @@ "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true }, "wordwrap": { "version": "1.0.0", diff --git a/package.json b/package.json index d631d86e..a1457a84 100644 --- a/package.json +++ b/package.json @@ -48,18 +48,13 @@ "jmespath": "0.15.0", "jose": "2.0.2", "js-yaml": "3.13.1", - "jsonpath": "1.0.2", "lodash": "4.17.20", "moment": "2.24.0", "npm-registry-fetch": "8.1.5", "os-name": "4.0.0", "plop": "2.7.4", - "progress": "2.0.3", "semver": "7.1.3", - "split": "1.0.1", - "through2": "3.0.1", - "tty-table": "4.1.1", - "unquote": "1.1.1" + "tty-table": "4.1.1" }, "devDependencies": { "chai": "4.2.0", diff --git a/src/client/graph.js b/src/client/graph.js deleted file mode 100644 index c786d504..00000000 --- a/src/client/graph.js +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const debug = require('debug')('cortex:cli:graph'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); - -const createEndpoints = baseUri => ({ - profileVersions: projectId => `${baseUri}/fabric/v4/projects/${projectId}/profile-versions`, - profiles: projectId => `${baseUri}/fabric/v4/projects/${projectId}/profiles`, - schemas: projectId => `${baseUri}/fabric/v4/projects/${projectId}/profiles/schemas`, - events: projectId => `${baseUri}/fabric/v4/projects/${projectId}/events`, - entities: projectId => `${baseUri}/fabric/v4/projects/${projectId}/entities`, - track: projectId => `${baseUri}/fabric/v4/projects/${projectId}/events/track`, - query: projectId => `${baseUri}/fabric/v4/projects/${projectId}/query`, -}); - -class Graph { - constructor(cortexUrl) { - this.cortexUrl = cortexUrl; - this.endpoints = createEndpoints(cortexUrl); - } - - listProfiles(projectId, token, filter, sort, limit, skip) { - debug('listProfiles() => GET %s', this.endpoints.profiles(projectId)); - const query = {}; - if (filter) query.filter = filter; - if (limit) query.limit = limit; - if (sort) query.sort = sort; - if (skip) query.sort = skip; - return got - .get(this.endpoints.profiles(projectId), { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - searchParams: { query }, - }).json() - .then(profiles => ({ success: true, profiles })) - .catch(err => constructError(err)); - } - - listProfileVersions(projectId, token, profileId, schemaNames, before, after, limit) { - const endpoint = `${this.endpoints.profileVersions}/${profileId}`; - debug('listProfileVersions(%s) => GET %s', profileId, endpoint); - const query = {}; - if (schemaNames) query.schemaNames = schemaNames; - if (before) query.before = before; - if (after) query.after = after; - query.limit = 100; - if (limit) query.limit = limit; - - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - searchParams: { query }, - }).json() - .then(versions => ({ success: true, versions })) - .catch(err => constructError(err)); - } - - describeProfile(projectId, token, profileId, schemaName, historic, versionLimit, attribute) { - const endpoint = `${this.endpoints.profiles(projectId)}/${profileId}`; - debug('describeProfile(%s) => GET %s', profileId, endpoint); - const query = {}; - if (schemaName) query.schemaName = schemaName; - if (historic) query.historic = historic; - if (versionLimit) query.versionLimit = versionLimit; - if (attribute) query.attribute = attribute; - - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - searchParams: { query }, - }).json() - .then(profile => ({ success: true, profile })) - .catch(err => constructError(err)); - } - - deleteProfile(projectId, token, profileId, schemaName) { - const endpoint = `${this.endpoints.profiles(projectId)}/${profileId}`; - debug('deleteProfile(%s) => DELETE %s', profileId, endpoint); - const query = {}; - if (schemaName) query.schema = schemaName; - return got - .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - searchParams: { query }, - }).json() - .then(() => ({ success: true })) - .catch(err => constructError(err)); - } - - findEvents(projectId, token, filter, sort, limit, skip) { - const endpoint = this.endpoints.events(projectId); - debug('findEvents() => GET %s', endpoint); - const query = {}; - if (filter) query.filter = filter; - if (sort) query.sort = sort; - // ?? if (versionLimit) query.versionLimit = versionLimit; - if (skip) query.skip = skip; - query.limit = 50; - if (limit) query.limit = limit; - - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - searchParams: { query }, - }).json() - .then(events => ({ success: true, events })) - .catch(err => constructError(err)); - } - - publishEntities(projectId, token, entityEvents) { - debug('publishEntities() => POST %s', this.endpoints.events(projectId)); - return got - .post(this.endpoints.events(projectId), { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: entityEvents, - }).json() - .then(message => ({ success: true, message })) - .catch(err => constructError(err)); - } - - track(projectId, token, event) { - // TODO re-enable throttling - const endpoint = this.endpoints.track(projectId); - debug('track() => POST %s', endpoint); - return got - .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: event, - }).json() - .then(message => ({ success: true, message })) - .catch(err => constructError(err)); - } - - rebuildProfiles(projectId, token, schemaName, profileId, filter, sort, limit, skip) { - const endpoint = `${this.endpoints.schemas}/${schemaName}/rebuild`; - debug('rebuildProfiles() => PUT %s', endpoint); - - const query = {}; - query.filter = filter || {}; - - if (profileId) query.profileId = profileId; - if (sort) query.sort = sort; - if (limit) query.limit = limit; - if (skip) query.skip = skip; - - return got - .put(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - searchParams: { query }, - }).json() - .then(message => ({ success: true, message })) - .catch(err => constructError(err)); - } - - getEntity(projectId, token, entityId) { - const endpoint = `${this.endpoints.entities}/${entityId}`; - debug('getEntity(%s) => GET %s', entityId, endpoint); - - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() - .then(entity => ({ success: true, entity })) - .catch(err => constructError(err)); - } - - query(projectId, token, query) { - const endpoint = this.endpoints.query; - debug('queryGraph(%s) => POST %s', query, endpoint); - - return got - .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: { query }, - }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); - } -} - -module.exports = { Graph }; diff --git a/src/commands/graph.js b/src/commands/graph.js deleted file mode 100644 index 39873928..00000000 --- a/src/commands/graph.js +++ /dev/null @@ -1,448 +0,0 @@ -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const _ = require('lodash'); -const debug = require('debug')('cortex:cli:graph'); -const split = require('split'); -const fs = require('fs'); -const Table = require('tty-table'); -const ProgressBar = require('progress'); -const jp = require('jsonpath'); -const path = require('path'); -const through2 = require('through2'); - -const { loadProfile } = require('../config'); -const { Graph } = require('../client/graph'); -const { - printSuccess, printError, filterObject, countLinesInFile, printTable, -} = require('./utils'); - - -const _reserved = ['$match', '$path', '$transform', '$name']; -const _systemEvents = ['$set', '$unset', '$delete']; -const progressBarConfig = 'publishing [:bar] :current/:total :rate evt/s :elapsed s'; - -const applyTemplate = (t, target) => { - const { - $match, $path, $transform, $name, -} = t; - - debug(`applying template to target: ${JSON.stringify(target, null, 4)}`); - - // Match condition, if specified, this must eval to true, otherwise the template is skipped - if ($match) { - debug(`checking $match for ${$name}: ${$match}`); - let match = true; - const queryTarget = [target]; - ($match).forEach((m) => { - const paths = jp.query(queryTarget, m); - match = paths && paths.length > 0; - }); - - if (!match) return null; - if ($name) debug(`Matched template ${$name}: ${$match}`); - } - - // A custom transformation, expecting $path + $transform where $transform is a function taking a single param - if ($path) { - const val = jp.value(target, $path); - if ($transform) return $transform(val); - return val; - } - - const result = {}; - const keys = Object.keys(t); - keys.forEach((k) => { - // Skip over reserved keys - if (_reserved.indexOf(k) !== -1) return; - - const q = t[k]; - debug('q:', q); - - // Hardcoded event using a system event type - if (k === 'event' && _systemEvents.indexOf(q) !== -1) { - result[k] = q; - return; - } - - if (_.isObject(q)) { - result[k] = applyTemplate(q, target); - } else if (q.startsWith('$')) { - result[k] = jp.value(target, q); - } else { - result[k] = q; - } - }); - - return result; -}; - -function castValue(value) { - if (_.isArray(value)) { - return { - value: _.map(value, x => (_.isString(x) ? castValue(x) : x)), - }; - } - // Construct Dimensional from Object - if (_.isObject(value)) { - return { - value: _.map( - _.entries(value), - (entry) => { - const [k, v] = entry; - return { - dimensionId: k, - dimensionValue: castValue(v), - }; - }, - ), - }; - } - return { value }; -} - -/** - * Automatically generate attribute events for system events (e.g. $set) - * @param {object} evt - */ -const autoAttributes = (evt) => { - let attrs = []; - - // Skip relationship events - if (evt.targetEntityId) return attrs; - - const { - event, properties, entityId, entityType, eventTime, source, meta, eventLabel, -} = evt; - - if (event === '$set') { - attrs = Object.keys(properties).map(k => ({ - event: k, - entityId, - entityType, - eventTime, - source, - meta, - eventLabel, - properties: castValue(properties[k]), - })); - } - - return attrs; -}; - -class FindEventsCommand { - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.executeFindEvents()', profile.name); - - const graph = new Graph(profile.url); - graph.findEvents(options.project || profile.project, profile.token, options.filter, options.sort, options.limit, options.skip) - .then((response) => { - if (response.success) { - let result = response.events; - if (options.query) result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const tableSpec = [ - { column: 'Entity ID', field: 'entityId', width: 40 }, - { column: 'Entity Type', field: 'entityType', width: 30 }, - { column: 'Event', field: 'event', width: 30 }, - { column: 'Event Label', field: 'eventLabel', width: 30 }, - { column: 'Event Time', field: 'eventTime', width: 20 }, - ]; - - printTable(tableSpec, result); - } - } else { - printError(`Failed to find entities: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to find entities: ${err.status} ${err.message}`, options); - }); - } -} - -class PublishEventsCommand { - constructor(program) { - this.program = program; - } - - execute(file, options) { - const profile = loadProfile(options.profile); - debug('%s.executePublishEvents()', profile.name); - - const graph = new Graph(profile.url); - // Multiple Event Transformers can be specified in the same file ... - const lineCountIsDynamic = (options.transform || options.auto || _.isEmpty(file)); - - const publishEvent = async (events, bar) => { - if (_.isEmpty(events)) return; - - debug(`publishing ${_.size(events)} events`); - debug(`publishing events: ${JSON.stringify(events)}`); - - let rs; - - if (options.tracking) { - rs = await graph.track(options.project || profile.project, profile.token, events); - } else { - rs = await graph.publishEntities(options.project || profile.project, profile.token, events); - } - - if (bar && events.length > 0) bar.tick(events.length); - - if (!rs.success) { - throw Error(rs.message); - } - }; - - // Git conflict - this was not async before ... - const printEvent = async (events) => { - if (!events) return; - events.forEach(e => console.log(JSON.stringify(e))); - }; - - function list_can_handle_element_without_going_over_size(batch_size, element_size, max_size) { - const batch_size_delta_if_elem_added = element_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty - return batch_size + batch_size_delta_if_elem_added <= max_size; - } - - function batchElementsUntilSize(max_size) { - let batch = []; - let batch_size = JSON.stringify(batch).length; - - function handler(event, encoding, callback) { - const max_event_size = max_size - 2; // Handling [] - const event_size = JSON.stringify(event).length; - - if (event_size > max_event_size) { - debug(`Event too large at ${event_size}B. Max Size: ${max_event_size}B. Event: ${JSON.stringify(event)}`); - } else if (list_can_handle_element_without_going_over_size(batch_size, event_size, max_size)) { - batch.push(event); - batch_size += event_size + (batch_size > 2 ? 1 : 0); // 1 for the , if not empty [] - } else { - debug(`LIMIT REACHED ${batch_size}, PUSHING ${batch.length} elements.`); - this.push(batch); - batch = []; - batch_size = JSON.stringify(batch).length; - } - callback(); - } - - function flusher(callback) { - if (!_.isEmpty(batch)) { - this.push(batch); - batch = []; - batch_size = JSON.stringify(batch).length; - } - callback(); - } - return { - batchHandler: handler, - batchFlusher: flusher, - }; - } - - const processStream = (stream, resolve, reject, bar) => { - // Moved here ... we dont know how many events are being pushed ... even if a file is specified ... - bar = !_.isEmpty(bar) ? bar : ( - new ProgressBar(progressBarConfig, { total: 0, width: 65 }) - ); - const { batchHandler, batchFlusher } = batchElementsUntilSize(1024 * 100); - stream - .pipe(split()) - // Cast to JSONs - .pipe(through2.obj( - function (line, encoding, callback) { - if (!_.isEmpty(line)) { - this.push(JSON.parse(line)); - } - callback(); - }, - )) - // Transform and Expand Auto Attributes ... - .pipe(through2.obj( - function (event, encoding, callback) { - let events = [event]; - - if (options.transform) { - debug('loading templates from: ', path.resolve(options.transform)); - // eslint-disable-next-line import/no-dynamic-require - const templates = require(path.resolve(options.transform)); - debug('loaded templates:', templates); - // The event gets completely replaced in this case ... since we are saying it needs to be - // transformed ... thats why concat is not used here ... - events = _.map( - templates, - t => applyTemplate(t, event), - ).filter(e => e !== null); - } - - if (options.auto) { - const autoAttrs = _.flatten(events.map(evt => autoAttributes(evt))); - debug(`Generated ${autoAttrs.length} attribute events`); - events = events.concat(autoAttrs); - } - events.forEach(e => this.push(e)); - callback(); - }, - )) - // Batch Based on Size - .pipe(through2({ objectMode: true }, batchHandler, batchFlusher)) - .pipe(through2( - // Only upload 1 batch at a time! - { objectMode: true, highWaterMark: 5 }, - function (batch_of_events_to_upload, encoding, callback) { - if (lineCountIsDynamic) { - bar.total += _.size(batch_of_events_to_upload); - } - const task = options.dryRun ? printEvent : publishEvent; - task(batch_of_events_to_upload, bar) - .then((response) => { - this.push(response); - callback(); - }) - .catch((error) => { - printError(`Error uploading event batch: ${error.message}`, options, false); - callback(); - }); - }, - )) - .on('data', (response_from_batch_publish) => { - debug(`# Response from events published : ${response_from_batch_publish}`); - }) - .on('error', err => reject(err)) - .on('end', () => { - if (!options.dryRun) { - printError(`Finished processing ${bar.total} events in batches.`, null, false); - } - bar.terminate(); - resolve({ eventCount: bar.total }); - }); - }; - - if (file) { - return countLinesInFile(file) - .then((numLines) => { - let bar = null; - if (!lineCountIsDynamic) { - bar = new ProgressBar( - progressBarConfig, { total: numLines, width: 65 }, - ); - printError(`Publishing ${numLines} records from file ${file}`, null, false); - } else { - printError(`Publishing ??????????? records from file ${file}`, null, false); - } - return new Promise((resolve, reject) => { - const stream = fs.createReadStream(file); - processStream(stream, resolve, reject, bar); - }); - }); - } - - return new Promise((resolve, reject) => { - process.stdin.resume(); - process.stdin.setEncoding('utf8'); - processStream(process.stdin, resolve, reject); - }); - } -} - -class GetEntityCommand { - constructor(program) { - this.program = program; - } - - execute(entityId, options) { - const profile = loadProfile(options.profile); - debug('%s.executeGetEntity(%s)', profile.name, entityId); - - const graph = new Graph(profile.url); - graph.getEntity(options.project || profile.project, profile.token, entityId) - .then((response) => { - if (response.success) { - let result = response.entity; - if (options.query) { - result = filterObject(result, options); - } - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to get entity: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to get entity: ${err.status} ${err.message}`, options); - }); - } -} - -class QueryGraphCommand { - constructor(program) { - this.program = program; - } - - execute(query, options) { - const profile = loadProfile(options.profile); - debug('%s.executeQueryGraph(%s)', profile.name, query); - - const graph = new Graph(profile.url); - graph.query(options.project || profile.project, profile.token, query) - .then((response) => { - if (response.success) { - const { result } = response; - const rows = result.values || []; - - debug('query result:', result); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const table = new Table( - result.columns.map(c => ({ value: c, headerColor: 'cyan' })), - rows, - { defaultValue: '---' }, -); - - printSuccess(query); - console.log(table.render()); - console.log(); - printSuccess(`Found ${rows.length} results in ${result.took} milliseconds`, options); - } - } else { - printError(`Failed to execute query: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to execute query: ${err.status} ${err.message}`, options); - }); - } -} - -module.exports = { - FindEventsCommand, - PublishEventsCommand, - GetEntityCommand, - QueryGraphCommand, -}; diff --git a/src/commands/profiles.js b/src/commands/profiles.js deleted file mode 100644 index 533a2dc5..00000000 --- a/src/commands/profiles.js +++ /dev/null @@ -1,329 +0,0 @@ -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Catalog = require('../client/catalog'); -const { Graph } = require('../client/graph'); -const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, -} = require('./utils'); - -class SaveProfileSchemaCommand { - constructor(program) { - this.program = program; - } - - execute(profileSchema, options) { - const profile = loadProfile(options.profile); - debug('%s.executeSaveProfileSchema(%s)', profile.name, profileSchema); - - const schemaStr = fs.readFileSync(profileSchema); - const schema = parseObject(schemaStr, options); - - const catalog = new Catalog(profile.url); - catalog.saveProfileSchema(options.project || profile.project, profile.token, schema) - .then((response) => { - if (response.success) { - printSuccess('Profile Schema saved', options); - } else { - const { message, details } = response; - debug(`Failed to save profile schema: ${response.status} - ${message}`); - debug(response); - printError('Failed to save profile schema.', options, false); - if (details) { - printError('The following issues were found:', options, false); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - details.map(d => d.path = formatValidationPath(d.path)); - printTable(tableSpec, details); - printError(''); // Just exit - } - } - }) - .catch((err) => { - let msg = ''; - if (err.response && err.response.body) { - msg = err.response.body.error || ''; - } - - printError(`Failed to save profile schema: ${err.status || err} ${msg}`, options); - }); - } -} - -class ListProfileSchemasCommand { - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.executeListProfileSchemas()', profile.name); - - const { - filter, sort, limit, skip, -} = options; - const catalog = new Catalog(profile.url); - catalog.listProfileSchemas(options.project || profile.project, profile.token, filter, sort, limit, skip) - .then((response) => { - if (response.success) { - let result = response.schemas; - if (options.query) result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 }, - ]; - - printTable(tableSpec, result); - } - } else { - printError(`Failed to list profile schemas: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list profile schemas: ${err.status} ${err.message}`, options); - }); - } -} - -class DescribeProfileSchemaCommand { - constructor(program) { - this.program = program; - } - - execute(schemaName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDescribeProfileSchema(%s)', profile.name, schemaName); - - const catalog = new Catalog(profile.url); - catalog.describeProfileSchema(options.project || profile.project, profile.token, schemaName) - .then((response) => { - if (response.success) { - const result = filterObject(response.schema, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe profile schema ${schemaName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe profile schema ${schemaName}: ${err.status} ${err.message}`, options); - }); - } -} - -class DeleteProfileSchemaCommand { - constructor(program) { - this.program = program; - } - - execute(schemaName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDeleteProfileSchema(%s)', profile.name, schemaName); - - const catalog = new Catalog(profile.url); - catalog.deleteProfileSchema(options.project || profile.project, profile.token, schemaName) - .then((response) => { - if (response.success) { - debug(response.message); - printSuccess('Profile Schema deleted.', options); - } else { - printError(`Failed to delete profile schema ${schemaName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete profile schema ${schemaName}: ${err.status} ${err.message}`, options); - }); - } -} - -class ListProfilesCommand { - constructor(program) { - this.program = program; - } - - execute(options) { - const profile = loadProfile(options.profile); - debug('%s.executeListProfiles()', profile.name); - - const { - filter, sort, limit, skip, -} = options; - const graph = new Graph(profile.url); - graph.listProfiles(options.project || profile.project, profile.token, filter, sort, limit, skip) - .then((response) => { - if (response.success) { - let result = response.profiles; - if (options.query) result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const tableSpec = [ - { column: 'Profile ID', field: 'profileId', width: 50 }, - { column: 'Profile Schema', field: 'profileSchema', width: 50 }, - { column: 'Version', field: 'version', width: 12 }, - { column: 'Last Updated', field: 'updatedAt', width: 40 }, - ]; - - printTable(tableSpec, result); - } - } else { - printError(`Failed to list profiles: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list profiles: ${err.status} ${err.message}`, options); - }); - } -} - - -class ListProfileVersionsCommand { - constructor(program) { - this.program = program; - } - - execute(profileId, schemaName, options) { - const profile = loadProfile(options.profile); - const { before, after, limit } = options; - debug( - '%s.executeListProfileVersionsCommand(%s) Options:[%s][%s][%s]', - profile.name, profileId, before, after, limit, - ); - const graph = new Graph(profile.url); - graph.listProfileVersions(options.project || profile.project, profile.token, profileId, schemaName, before, after, limit) - .then((response) => { - if (response.success) { - let result = response.versions; - if (options.query) { - result = filterObject(result, options); - } - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const tableSpec = [ - { column: 'Profile ID', field: 'profileId', width: 50 }, - { column: 'Profile Schema', field: 'profileSchema', width: 50 }, - { column: 'Version', field: 'version', width: 12 }, - { column: 'Created At', field: 'createdAt', width: 40 }, - ]; - - printTable(tableSpec, result); - } - } else { - printError(`Failed to list profile versions: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list profile versions: ${err.status} ${err.message}`, options); - }); - } -} - -class DescribeProfileCommand { - constructor(program) { - this.program = program; - } - - execute(profileId, schemaName, options) { - const profile = loadProfile(options.profile); - const { historic, versionLimit, attribute } = options; - debug(`${profile.name}.executeDescribeProfile(${profileId}) [${historic}][${versionLimit}][${attribute}]`); - - const graph = new Graph(profile.url); - graph.describeProfile(options.project || profile.project, profile.token, profileId, schemaName, historic, versionLimit, attribute) - .then((response) => { - if (response.success) { - const result = filterObject(response.profile, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe profile ${schemaName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe profile ${schemaName}: ${err.status} ${err.message}`, options); - }); - } -} - -class DeleteProfileCommand { - constructor(program) { - this.program = program; - } - - execute(profileId, schemaName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeDeleteProfile(%s)', profile.name, profileId); - - const graph = new Graph(profile.url); - graph.deleteProfile(options.project || profile.project, profile.token, profileId, schemaName) - .then((response) => { - if (response.success) { - printSuccess('Profile deleted.', options); - } else { - printError(`Failed to delete profile ${schemaName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete profile ${schemaName}: ${err.status} ${err.message}`, options); - }); - } -} - -class RebuildProfilesCommand { - constructor(program) { - this.program = program; - } - - execute(schemaName, profileId, options) { - const profile = loadProfile(options.profile); - debug('%s.executeRebuildProfiles(%s)', profile.name, schemaName); - - const graph = new Graph(profile.url); - graph.rebuildProfiles(options.project || profile.project, profile.token, schemaName, profileId, options.filter, options.sort, options.limit, options.skip) - .then((response) => { - if (response.success) { - printSuccess(response.message, options); - } else { - printError(`Failed to rebuild profile: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to rebuild profile: ${err.status} ${err.message}`, options); - }); - } -} - -module.exports = { - SaveProfileSchemaCommand, - ListProfileVersionsCommand, - ListProfileSchemasCommand, - DescribeProfileSchemaCommand, - DeleteProfileSchemaCommand, - ListProfilesCommand, - DescribeProfileCommand, - DeleteProfileCommand, - RebuildProfilesCommand, -}; From 7384ff79db5119f66d0dff9209339007e601c5d1 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Fri, 19 Feb 2021 09:06:38 -0600 Subject: [PATCH 228/864] [FAB-1154] Fix node-plop template files glob pattern for Windows --- src/commands/plopfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index dbd809bf..c3a534d4 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -24,7 +24,7 @@ module.exports = (plop) => { // Handlebars template used to generate content of project files base: 'assets/templates/skill/{{dashCase type}}', // Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. So not using hbs extension in Dockerfile and picking all files in directory - templateFiles: path.join('assets/templates/skill/{{dashCase type}}', '**/*'), + templateFiles: 'assets/templates/skill/{{dashCase type}}/**/*', abortOnFail: true, // Must not overwrite files with scaffolding template if already exists // force: true, From 8e3ae069a1da33ee413c579245b6da757e035afd Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 24 Feb 2021 11:17:10 -0600 Subject: [PATCH 229/864] Version bump 2.0.1 -> 2.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a1457a84..b78343f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.1", + "version": "2.0.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From c298ae5fc639551c8d7738c937b1601af2f47626 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 2 Mar 2021 18:08:33 -0600 Subject: [PATCH 230/864] action deploy return non-zero exit code --- src/commands/actions.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index feed6c34..89f506b1 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -99,9 +99,12 @@ module.exports.DeployActionCommand = class { let actionInst = {}; if (actionDefinition) { - debug('%s.createAgentSnapshot(%s)', profile.name, actionDefinition); - const actionDefStr = fs.readFileSync(actionDefinition); - actionInst = parseObject(actionDefStr, options); + try { + const actionDefStr = fs.readFileSync(actionDefinition); + actionInst = parseObject(actionDefStr, options); + } catch (err) { + printError(`Failed to deploy action: ${err.message}`, options); + } } if (options.actionName) { actionInst.name = options.actionName; From 1caf8fdfd83d16347c6b2d9ec19f7c6f5e78077f Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 4 Mar 2021 20:40:04 +0530 Subject: [PATCH 231/864] FAB-1253 adding Makefile and assets to deploy and test skills generated --- .../assets/templates/skill/daemon/Makefile | 29 +++++++++++++++++++ .../assets/templates/skill/daemon/README.md | 4 +++ .../templates/skill/daemon/action.json.hbs | 9 ++++++ .../templates/skill/daemon/podspec.json | 13 +++++++++ .../templates/skill/daemon/test/payload.json | 3 ++ .../templates/skill/external-api/Makefile | 18 ++++++++++++ .../templates/skill/external-api/README.md | 3 ++ .../skill/external-api/test/payload.json | 3 ++ .../assets/templates/skill/job/Makefile | 29 +++++++++++++++++++ .../assets/templates/skill/job/README.md | 6 +++- .../templates/skill/job/action.json.hbs | 8 +++++ .../assets/templates/skill/job/podspec.json | 13 +++++++++ .../templates/skill/job/test/payload.json | 3 ++ 13 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 src/commands/assets/templates/skill/daemon/Makefile create mode 100644 src/commands/assets/templates/skill/daemon/action.json.hbs create mode 100644 src/commands/assets/templates/skill/daemon/podspec.json create mode 100644 src/commands/assets/templates/skill/daemon/test/payload.json create mode 100644 src/commands/assets/templates/skill/external-api/Makefile create mode 100644 src/commands/assets/templates/skill/external-api/test/payload.json create mode 100644 src/commands/assets/templates/skill/job/Makefile create mode 100644 src/commands/assets/templates/skill/job/action.json.hbs create mode 100644 src/commands/assets/templates/skill/job/podspec.json create mode 100644 src/commands/assets/templates/skill/job/test/payload.json diff --git a/src/commands/assets/templates/skill/daemon/Makefile b/src/commands/assets/templates/skill/daemon/Makefile new file mode 100644 index 00000000..cc01e131 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/Makefile @@ -0,0 +1,29 @@ +IMAGE_TAG=latest +SKILL_NAME=$(notdir $(CURDIR)) + +build: check-env + docker build -t ${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} . + +push: check-env + docker push ${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} + +deploy: check-env + cortex actions deploy action.json --project ${PROJECT_NAME} + cortex skills save -y skill.yaml --project ${PROJECT_NAME} + sleep 10s # wait for action containers to pull and deploy + +tests: check-env + cortex skills invoke --params-file ./test/payload.json ${SKILL_NAME} request --project ${PROJECT_NAME} + +all: build push deploy tests + +get: check-env + cortex skills describe ${SKILL_NAME} --project ${PROJECT_NAME} + +check-env: +ifndef DOCKER_PREGISTRY_URL + $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /.) +endif +ifndef PROJECT_NAME + $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) +endif diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index 0d8f69e7..58b03b83 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -13,6 +13,10 @@ Note: * `Dockerfile` to build Docker image for this skill #### Steps + +A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy skill. +`make all` will build & push Docker image, deploy Cortex Action and Skill, and then invoke skill to test. + 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. 3. Build the docker image (uses the `main.py` file) diff --git a/src/commands/assets/templates/skill/daemon/action.json.hbs b/src/commands/assets/templates/skill/daemon/action.json.hbs new file mode 100644 index 00000000..690ef70a --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/action.json.hbs @@ -0,0 +1,9 @@ +{ + "name":"{{dashCase name}}", + "actionType":"daemon", + "docker":"ljhacs/daemon:v2", + "environmentVariables":"\"TEST\"=\"value\"", + "command": ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"], + "port": "5000", + "podspec": "podspec.json" +} diff --git a/src/commands/assets/templates/skill/daemon/podspec.json b/src/commands/assets/templates/skill/daemon/podspec.json new file mode 100644 index 00000000..ecab5e85 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/podspec.json @@ -0,0 +1,13 @@ +[{ + "path": "/containers/0/resources", + "value": { + "limits": { + "memory":"1G", + "cpu":"1" + }, + "requests": { + "memory":"0.5G", + "cpu":"1" + } + } +}] diff --git a/src/commands/assets/templates/skill/daemon/test/payload.json b/src/commands/assets/templates/skill/daemon/test/payload.json new file mode 100644 index 00000000..d29bdbad --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/test/payload.json @@ -0,0 +1,3 @@ +{ + "payload": {} +} diff --git a/src/commands/assets/templates/skill/external-api/Makefile b/src/commands/assets/templates/skill/external-api/Makefile new file mode 100644 index 00000000..77c77d44 --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/Makefile @@ -0,0 +1,18 @@ +IMAGE_TAG=latest +SKILL_NAME=$(notdir $(CURDIR)) + +deploy: check-env + cortex skills save -y skill.yaml --project ${PROJECT_NAME} + +tests: check-env + cortex skills invoke --params-file ./test/payload.json ${SKILL_NAME} input --project ${PROJECT_NAME} + +all: deploy tests + +get: check-env + cortex skills describe ${SKILL_NAME} --project ${PROJECT_NAME} + +check-env: +ifndef PROJECT_NAME + $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) +endif diff --git a/src/commands/assets/templates/skill/external-api/README.md b/src/commands/assets/templates/skill/external-api/README.md index 487c8779..3994e8dd 100644 --- a/src/commands/assets/templates/skill/external-api/README.md +++ b/src/commands/assets/templates/skill/external-api/README.md @@ -5,6 +5,9 @@ This skill type allows users to wrap an external REST API as a Cortex Fabric Ski 1. Update `skill.yaml` with `HTTP Method`, `URL`, `Path` and `headers` per the targeted external API 2. Deploy the Skill `cortex skills save -y skill.yaml --project ` +A Makefile is provided to do these steps. Set environment variable `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy skill. +`make all` will deploy Cortex Skill, and then invoke skill to test. + The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. Skills that are deployed may be invoked (run) either independently or within an agent. diff --git a/src/commands/assets/templates/skill/external-api/test/payload.json b/src/commands/assets/templates/skill/external-api/test/payload.json new file mode 100644 index 00000000..d29bdbad --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/test/payload.json @@ -0,0 +1,3 @@ +{ + "payload": {} +} diff --git a/src/commands/assets/templates/skill/job/Makefile b/src/commands/assets/templates/skill/job/Makefile new file mode 100644 index 00000000..874a0ee1 --- /dev/null +++ b/src/commands/assets/templates/skill/job/Makefile @@ -0,0 +1,29 @@ +IMAGE_TAG=latest +SKILL_NAME=$(notdir $(CURDIR)) + +build: check-env + docker build -t ${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} . + +push: check-env + docker push ${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} + +deploy: check-env + cortex actions deploy action.json --project ${PROJECT_NAME} + cortex skills save -y skill.yaml --project ${PROJECT_NAME} + sleep 10s # wait for action containers to pull and deploy + +tests: check-env + cortex skills invoke --params-file ./test/payload.json ${SKILL_NAME} params --project ${PROJECT_NAME} + +all: build push deploy tests + +get: check-env + cortex skills describe ${SKILL_NAME} --project ${PROJECT_NAME} + +check-env: +ifndef DOCKER_PREGISTRY_URL + $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /.) +endif +ifndef PROJECT_NAME + $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) +endif diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 9504683e..cf6d62f9 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -9,6 +9,10 @@ Cortex skill that runs a background job. * `Dockerfile` to build Docker image for this skill #### Steps + +A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy skill. +`make all` will build & push Docker image, deploy Cortex Action and Skill, and then invoke skill to test. + 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. 3. Build the docker image (uses the `main.py` file) @@ -20,7 +24,7 @@ Cortex skill that runs a background job. docker push : ``` - **(Optionally) Retag an image** + **(Optionally) Re-tag an image** ``` docker tag : : ``` diff --git a/src/commands/assets/templates/skill/job/action.json.hbs b/src/commands/assets/templates/skill/job/action.json.hbs new file mode 100644 index 00000000..efc54e89 --- /dev/null +++ b/src/commands/assets/templates/skill/job/action.json.hbs @@ -0,0 +1,8 @@ +{ + "name":"{{dashCase name}}", + "actionType":"job", + "docker":"ljhacs/daemon:v2", + "environmentVariables":"\"TEST\"=\"value\"", + "command": ["python", "/app/main.py"], + "podspec": "podspec.json" +} diff --git a/src/commands/assets/templates/skill/job/podspec.json b/src/commands/assets/templates/skill/job/podspec.json new file mode 100644 index 00000000..ecab5e85 --- /dev/null +++ b/src/commands/assets/templates/skill/job/podspec.json @@ -0,0 +1,13 @@ +[{ + "path": "/containers/0/resources", + "value": { + "limits": { + "memory":"1G", + "cpu":"1" + }, + "requests": { + "memory":"0.5G", + "cpu":"1" + } + } +}] diff --git a/src/commands/assets/templates/skill/job/test/payload.json b/src/commands/assets/templates/skill/job/test/payload.json new file mode 100644 index 00000000..d29bdbad --- /dev/null +++ b/src/commands/assets/templates/skill/job/test/payload.json @@ -0,0 +1,3 @@ +{ + "payload": {} +} From cfcbdec78e710193720d1bf3203da0f54fb1b626 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 8 Mar 2021 10:27:11 -0600 Subject: [PATCH 232/864] re-add debug --- src/commands/actions.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/actions.js b/src/commands/actions.js index 89f506b1..357e01a8 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -99,6 +99,7 @@ module.exports.DeployActionCommand = class { let actionInst = {}; if (actionDefinition) { + debug('%s.createAgentSnapshot(%s)', profile.name, actionDefinition); try { const actionDefStr = fs.readFileSync(actionDefinition); actionInst = parseObject(actionDefStr, options); From d7bedaed31c5d067a768f9b4551be0115cf33d66 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 11 Mar 2021 16:13:53 +0530 Subject: [PATCH 233/864] FAB-1253 adding fabric.yaml config for deployment --- .../assets/templates/skill/daemon/action.json.hbs | 5 ++--- .../assets/templates/skill/daemon/fabric.yaml | 7 +++++++ .../assets/templates/skill/daemon/podspec.json | 13 ------------- .../assets/templates/skill/external-api/fabric.yaml | 5 +++++ .../assets/templates/skill/job/action.json.hbs | 5 ++--- src/commands/assets/templates/skill/job/fabric.yaml | 7 +++++++ .../assets/templates/skill/job/podspec.json | 13 ------------- src/commands/plopfile.js | 3 +++ 8 files changed, 26 insertions(+), 32 deletions(-) create mode 100644 src/commands/assets/templates/skill/daemon/fabric.yaml delete mode 100644 src/commands/assets/templates/skill/daemon/podspec.json create mode 100644 src/commands/assets/templates/skill/external-api/fabric.yaml create mode 100644 src/commands/assets/templates/skill/job/fabric.yaml delete mode 100644 src/commands/assets/templates/skill/job/podspec.json diff --git a/src/commands/assets/templates/skill/daemon/action.json.hbs b/src/commands/assets/templates/skill/daemon/action.json.hbs index 690ef70a..9a2c03f7 100644 --- a/src/commands/assets/templates/skill/daemon/action.json.hbs +++ b/src/commands/assets/templates/skill/daemon/action.json.hbs @@ -1,9 +1,8 @@ { "name":"{{dashCase name}}", "actionType":"daemon", - "docker":"ljhacs/daemon:v2", + "docker":"{{dashCase name}}:latest", "environmentVariables":"\"TEST\"=\"value\"", "command": ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"], - "port": "5000", - "podspec": "podspec.json" + "port": "5000" } diff --git a/src/commands/assets/templates/skill/daemon/fabric.yaml b/src/commands/assets/templates/skill/daemon/fabric.yaml new file mode 100644 index 00000000..97761d33 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/fabric.yaml @@ -0,0 +1,7 @@ +version: 1 +kind: deployment-manifest +cortex: + skills: + - skill.yaml + actions: + - action.json diff --git a/src/commands/assets/templates/skill/daemon/podspec.json b/src/commands/assets/templates/skill/daemon/podspec.json deleted file mode 100644 index ecab5e85..00000000 --- a/src/commands/assets/templates/skill/daemon/podspec.json +++ /dev/null @@ -1,13 +0,0 @@ -[{ - "path": "/containers/0/resources", - "value": { - "limits": { - "memory":"1G", - "cpu":"1" - }, - "requests": { - "memory":"0.5G", - "cpu":"1" - } - } -}] diff --git a/src/commands/assets/templates/skill/external-api/fabric.yaml b/src/commands/assets/templates/skill/external-api/fabric.yaml new file mode 100644 index 00000000..7de705a8 --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/fabric.yaml @@ -0,0 +1,5 @@ +version: 1 +kind: deployment-manifest +cortex: + skills: + - skill.yaml diff --git a/src/commands/assets/templates/skill/job/action.json.hbs b/src/commands/assets/templates/skill/job/action.json.hbs index efc54e89..fdf866ec 100644 --- a/src/commands/assets/templates/skill/job/action.json.hbs +++ b/src/commands/assets/templates/skill/job/action.json.hbs @@ -1,8 +1,7 @@ { "name":"{{dashCase name}}", "actionType":"job", - "docker":"ljhacs/daemon:v2", + "docker":"{{dashCase name}}:latest", "environmentVariables":"\"TEST\"=\"value\"", - "command": ["python", "/app/main.py"], - "podspec": "podspec.json" + "command": ["python", "/app/main.py"] } diff --git a/src/commands/assets/templates/skill/job/fabric.yaml b/src/commands/assets/templates/skill/job/fabric.yaml new file mode 100644 index 00000000..97761d33 --- /dev/null +++ b/src/commands/assets/templates/skill/job/fabric.yaml @@ -0,0 +1,7 @@ +version: 1 +kind: deployment-manifest +cortex: + skills: + - skill.yaml + actions: + - action.json diff --git a/src/commands/assets/templates/skill/job/podspec.json b/src/commands/assets/templates/skill/job/podspec.json deleted file mode 100644 index ecab5e85..00000000 --- a/src/commands/assets/templates/skill/job/podspec.json +++ /dev/null @@ -1,13 +0,0 @@ -[{ - "path": "/containers/0/resources", - "value": { - "limits": { - "memory":"1G", - "cpu":"1" - }, - "requests": { - "memory":"0.5G", - "cpu":"1" - } - } -}] diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index c3a534d4..8686aa8f 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -8,6 +8,9 @@ module.exports = (plop) => { type: 'input', name: 'name', message: 'Skill Name?', + validate: (value, { elementType }) => { + return Boolean(value) + } }, { type: 'list', From 6af637891ceeb370bfabdd9cf193cd511096dedb Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Fri, 12 Mar 2021 14:09:32 -0600 Subject: [PATCH 234/864] FAB-1148: update list-activations command to use correct endpoint for v6 and renamed snapshotId param to agentName (#305) --- src/client/agents.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/agents.js b/src/client/agents.js index 8e8ea876..6597be15 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -62,9 +62,9 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listActivations(projectId, token, snapshotId) { - const endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}/activations`; - debug('listActivations(%s, %s) => %s', snapshotId, endpoint); + listActivations(projectId, token, agentName) { + const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/activations`; + debug('listActivations(%s, %s) => %s', agentName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, From 24951fb0bdf0bffd0926d53edee0d346086d81b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Mar 2021 17:44:34 +0000 Subject: [PATCH 235/864] Bump ssri from 8.0.0 to 8.0.1 Bumps [ssri](https://github.com/npm/ssri) from 8.0.0 to 8.0.1. - [Release notes](https://github.com/npm/ssri/releases) - [Changelog](https://github.com/npm/ssri/blob/latest/CHANGELOG.md) - [Commits](https://github.com/npm/ssri/compare/v8.0.0...v8.0.1) Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b1de2fa0..7d373c93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.1", + "version": "2.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -5450,9 +5450,9 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "requires": { "minipass": "^3.1.1" } From da682d817ca9bfed84d7edfbd7a6a6a8ed07c2d1 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 22 Mar 2021 19:24:29 +0530 Subject: [PATCH 236/864] liniting and name validation --- src/commands/plopfile.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index 8686aa8f..16103c6d 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -7,10 +7,8 @@ module.exports = (plop) => { { type: 'input', name: 'name', - message: 'Skill Name?', - validate: (value, { elementType }) => { - return Boolean(value) - } + message: 'Skill Name? (Must be alphanumeric)', + validate: (value, {}) => /^[0-9a-zA-Z][0-9a-zA-Z_\- ]{0,18}[0-9a-zA-Z]$/.test(value) }, { type: 'list', From 97c63fa459478ecf40aafbfe2acf664a5a2e33fe Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 22 Mar 2021 19:29:40 +0530 Subject: [PATCH 237/864] linting and validation --- src/commands/plopfile.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index 16103c6d..e9517252 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -8,7 +8,7 @@ module.exports = (plop) => { type: 'input', name: 'name', message: 'Skill Name? (Must be alphanumeric)', - validate: (value, {}) => /^[0-9a-zA-Z][0-9a-zA-Z_\- ]{0,18}[0-9a-zA-Z]$/.test(value) + validate: value => /^[0-9a-zA-Z][0-9a-zA-Z_\- ]{0,18}[0-9a-zA-Z]$/.test(value), }, { type: 'list', @@ -24,7 +24,8 @@ module.exports = (plop) => { destination: path.join(path.resolve('.'), '{{ dashCase name }}'), // Handlebars template used to generate content of project files base: 'assets/templates/skill/{{dashCase type}}', - // Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. So not using hbs extension in Dockerfile and picking all files in directory + // Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. + // So not using hbs extension in Dockerfile and picking all files in directory templateFiles: 'assets/templates/skill/{{dashCase type}}/**/*', abortOnFail: true, // Must not overwrite files with scaffolding template if already exists From e01ce048841e9e936f6f4949f53cb2ceb6bbad02 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 24 Mar 2021 14:32:17 +0530 Subject: [PATCH 238/864] makefile fixes --- src/commands/assets/templates/skill/daemon/Makefile | 9 +++++---- .../assets/templates/skill/external-api/Makefile | 1 - src/commands/assets/templates/skill/job/Makefile | 9 +++++---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/commands/assets/templates/skill/daemon/Makefile b/src/commands/assets/templates/skill/daemon/Makefile index cc01e131..bf8698cf 100644 --- a/src/commands/assets/templates/skill/daemon/Makefile +++ b/src/commands/assets/templates/skill/daemon/Makefile @@ -1,14 +1,15 @@ IMAGE_TAG=latest SKILL_NAME=$(notdir $(CURDIR)) +DOCKER_IMAGE_URL=${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} build: check-env - docker build -t ${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} . + docker build -t ${DOCKER_IMAGE_URL} . push: check-env - docker push ${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} + docker push ${DOCKER_IMAGE_URL} deploy: check-env - cortex actions deploy action.json --project ${PROJECT_NAME} + cortex actions deploy action.json --project ${PROJECT_NAME} --docker ${DOCKER_IMAGE_URL} cortex skills save -y skill.yaml --project ${PROJECT_NAME} sleep 10s # wait for action containers to pull and deploy @@ -22,7 +23,7 @@ get: check-env check-env: ifndef DOCKER_PREGISTRY_URL - $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /.) + $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /) endif ifndef PROJECT_NAME $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) diff --git a/src/commands/assets/templates/skill/external-api/Makefile b/src/commands/assets/templates/skill/external-api/Makefile index 77c77d44..4b9f511d 100644 --- a/src/commands/assets/templates/skill/external-api/Makefile +++ b/src/commands/assets/templates/skill/external-api/Makefile @@ -1,4 +1,3 @@ -IMAGE_TAG=latest SKILL_NAME=$(notdir $(CURDIR)) deploy: check-env diff --git a/src/commands/assets/templates/skill/job/Makefile b/src/commands/assets/templates/skill/job/Makefile index 874a0ee1..94221c13 100644 --- a/src/commands/assets/templates/skill/job/Makefile +++ b/src/commands/assets/templates/skill/job/Makefile @@ -1,14 +1,15 @@ IMAGE_TAG=latest SKILL_NAME=$(notdir $(CURDIR)) +DOCKER_IMAGE_URL=${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} build: check-env - docker build -t ${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} . + docker build -t ${DOCKER_IMAGE_URL} . push: check-env - docker push ${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} + docker push ${DOCKER_IMAGE_URL} deploy: check-env - cortex actions deploy action.json --project ${PROJECT_NAME} + cortex actions deploy action.json --project ${PROJECT_NAME} --docker ${DOCKER_IMAGE_URL} cortex skills save -y skill.yaml --project ${PROJECT_NAME} sleep 10s # wait for action containers to pull and deploy @@ -22,7 +23,7 @@ get: check-env check-env: ifndef DOCKER_PREGISTRY_URL - $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /.) + $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /) endif ifndef PROJECT_NAME $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) From 66ab2303aff79a62437be6a6098ca031aae1e424 Mon Sep 17 00:00:00 2001 From: clee Date: Thu, 25 Mar 2021 15:07:59 -0500 Subject: [PATCH 239/864] change artifactory publish url --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 02831fed..2423e7e1 100755 --- a/build.sh +++ b/build.sh @@ -39,7 +39,7 @@ function docker_build(){ npm publish --registry=https://registry.npmjs.com/ elif [[ ${BRANCH} = "develop" ]]; then npm config set always-auth true - npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-local/ + npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi } From f8c0a44cb159194131e12aec7ab963b2026819c9 Mon Sep 17 00:00:00 2001 From: clee Date: Thu, 25 Mar 2021 15:11:11 -0500 Subject: [PATCH 240/864] comment out artifactory publish --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 2423e7e1..fa6d5539 100755 --- a/build.sh +++ b/build.sh @@ -39,7 +39,7 @@ function docker_build(){ npm publish --registry=https://registry.npmjs.com/ elif [[ ${BRANCH} = "develop" ]]; then npm config set always-auth true - npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ +# npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi } From 391884d4b3c4596b6edc5e3cd3dc0a6d208ff425 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 6 Apr 2021 16:40:03 -0500 Subject: [PATCH 241/864] Added verbose flag to get-activation --- bin/cortex-agents.js | 1 + src/client/agents.js | 14 +++++++++----- src/commands/agents.js | 4 ++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index e277053e..71313b13 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -117,6 +117,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--verbose', 'Get debugging info in activation response') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { diff --git a/src/client/agents.js b/src/client/agents.js index 6597be15..6ff2caaf 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -50,14 +50,18 @@ module.exports = class Agents { .catch(err => constructError(err)); } - getActivation(projectId, token, activationId) { + getActivation(projectId, token, activationId, verbose) { const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); + const opts = { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }; + if (verbose) { + opts.searchParams = { verbose: true }; + } return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() + .get(endpoint, opts).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); } diff --git a/src/commands/agents.js b/src/commands/agents.js index 9fd37ef2..402e1368 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -187,9 +187,9 @@ module.exports.GetActivationCommand = class { execute(activationId, options) { const profile = loadProfile(options.profile); debug('%s.getActivation(%s)', profile.name, activationId); - + const { verbose, project } = options; const agents = new Agents(profile.url); - agents.getActivation(options.project || profile.project, profile.token, activationId).then((response) => { + agents.getActivation(project || profile.project, profile.token, activationId, verbose).then((response) => { if (response.success) { const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); From 3764fd4713da254ad191555b365d912c4b14b640 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 6 Apr 2021 16:48:09 -0500 Subject: [PATCH 242/864] Fix vulns --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b1de2fa0..92a0ed27 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.1", + "version": "2.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -6033,9 +6033,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" }, "yallist": { "version": "4.0.0", From fd7988df3ba2bf3e1a526e5ae3b73546d60c15a5 Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Tue, 6 Apr 2021 18:50:08 +0530 Subject: [PATCH 243/864] typo was not resolving to correct base URL --- src/client/content.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/content.js b/src/client/content.js index e60402b5..738b941a 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -110,7 +110,7 @@ module.exports = class Content { async downloadSecureContent(projectId, token, key) { const contentKey = this._sanitizeKey(key); - const vars = new Variables(this.cortextUrl); + const vars = new Variables(this.cortexUrl); return vars.readVariable(projectId, token, contentKey); } }; From 0f22cdf85263d0d5b39d6899e6d2c0fe1e695b92 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Mon, 12 Apr 2021 13:12:38 -0500 Subject: [PATCH 244/864] [FAB-1508] Fix relative file paths when using cwd with content upload --recursive --- src/client/content.js | 2 +- src/commands/utils.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/content.js b/src/client/content.js index 738b941a..e7b2bd8e 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -72,7 +72,7 @@ module.exports = class Content { async uploadSecureContent(projectId, token, key, content) { const contentKey = this._sanitizeKey(key); - const vars = new Variables(this.cortextUrl); + const vars = new Variables(this.cortexUrl); return vars.writeVariable(projectId, token, contentKey, content); } diff --git a/src/commands/utils.js b/src/commands/utils.js index 29426018..69efdbec 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -162,7 +162,7 @@ module.exports.getSourceFiles = (source, cb) => { } else { const results = files.filter(fpath => fs.lstatSync(fpath).isFile()).map(fpath => ({ canonical: fpath, - relative: fpath.slice(normalizedSource.length), + relative: path.relative(normalizedSource, fpath), size: fs.lstatSync(fpath).size, })); cb(null, results); From 812653e792f669b21c04db5934758c481320119e Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 12 Apr 2021 14:39:19 -0500 Subject: [PATCH 245/864] Added version option for agents skills --- bin/cortex-agents.js | 1 + bin/cortex-skills.js | 1 + src/client/catalog.js | 6 ++++-- src/commands/agents.js | 2 +- src/commands/skills.js | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 71313b13..8b08f398 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -83,6 +83,7 @@ program .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--versions', 'To get list of versions of an agent') + .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((agentName, options) => { try { new DescribeAgentCommand(program).execute(agentName, options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 94faa2a6..c37d7bc7 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -75,6 +75,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((skillName, options) => { try { new DescribeSkillCommand(program).execute(skillName, options); diff --git a/src/client/catalog.js b/src/client/catalog.js index 89120a9b..15cd0e60 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -61,7 +61,7 @@ module.exports = class Catalog { .catch(err => constructError(err)); } - describeSkill(projectId, token, skillName) { + describeSkill(projectId, token, skillName, verbose = false) { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; debug('describeSkill(%s) => %s', skillName, endpoint); @@ -69,6 +69,7 @@ module.exports = class Catalog { .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: { verbose }, }).json() .then(res => ({ success: true, skill: res })) .catch(err => constructError(err)); @@ -119,7 +120,7 @@ module.exports = class Catalog { .catch(err => constructError(err)); } - describeAgent(projectId, token, agentName) { + describeAgent(projectId, token, agentName, verbose) { checkProject(projectId); const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; debug('describeAgent(%s) => %s', agentName, endpoint); @@ -127,6 +128,7 @@ module.exports = class Catalog { .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: { verbose }, }).json() .then(agent => ({ success: true, agent })) .catch(err => constructError(err)); diff --git a/src/commands/agents.js b/src/commands/agents.js index 402e1368..7b462398 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -121,7 +121,7 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { }); } else { debug('%s.executeDescribeAgent(%s)', profile.name, agentName); - catalog.describeAgent(options.project || profile.project, profile.token, agentName).then((response) => { + catalog.describeAgent(options.project || profile.project, profile.token, agentName, options.verbose).then((response) => { if (response.success) { const result = filterObject(response.agent, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/skills.js b/src/commands/skills.js index 63d5456b..c6665172 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -103,7 +103,7 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { debug('%s.executeDescribeSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); - catalog.describeSkill(options.project || profile.project, profile.token, skillName).then((response) => { + catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { if (response.success) { const result = filterObject(response.skill, options); printSuccess(JSON.stringify(result, null, 2), options); From a7cf3b33019d97abb11ac944e233ddfeec4206a5 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Wed, 14 Apr 2021 10:46:40 -0500 Subject: [PATCH 246/864] When using the --users option of roles assign command ensure there are no empty strings --- bin/cortex-roles.js | 3 ++- src/parsers.js | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/parsers.js diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 5f0d4fbe..bebec056 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -19,6 +19,7 @@ const chalk = require('chalk'); const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); +const { nonEmptyStringParser } = require('../src/parsers'); const { ExternalGroupAssignCommand, @@ -120,7 +121,7 @@ program.command('assign ') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .requiredOption('--users ', 'Users to add/remove on role') + .requiredOption('--users ', 'Users to add/remove on role', nonEmptyStringParser('user names must not be empty')) .option('--delete', 'Unassign users from role') .action(withCompatibilityCheck((role, options) => { try { diff --git a/src/parsers.js b/src/parsers.js new file mode 100644 index 00000000..5d151bd6 --- /dev/null +++ b/src/parsers.js @@ -0,0 +1,33 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const _ = require('lodash'); +const program = require('./commander'); + +function nonEmptyStringParser(message = 'empty string argument') { + return function parseNonEmptyString(arg) { + if (_.isEmpty(arg)) { + const error = `error: ${message}`; + console.error(error); + program._exit(1, 'cortex.invalidStringArgument', error); + } + return arg; + }; +} + +module.exports = { + nonEmptyStringParser, +}; From 27b5e1c5d2791d2e02f23e48298885f6a6f52dbc Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Fri, 16 Apr 2021 09:17:17 -0500 Subject: [PATCH 247/864] [FAB-1509] Remove --secure option from content upload/download commands --- bin/cortex-content.js | 2 -- src/client/content.js | 13 --------- src/commands/content.js | 65 +++++++++-------------------------------- 3 files changed, 14 insertions(+), 66 deletions(-) diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 9cc2489d..a43cab2b 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -61,7 +61,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--secure', 'Uploads the content securely to the Cortex Vault. \n\t\t\t\tUse this option for keytab files or content that contains sensitive information that is required during Runtime. \n\t\t\t\tTake note of the contentKey you give to this content for future reference.') .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) .action(withCompatibilityCheck((contentKey, filePath, options) => { @@ -97,7 +96,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--secure', 'Downloads the content securely from the Cortex Vault.') .action(withCompatibilityCheck((contentKey, options) => { try { new DownloadContent(program).execute(contentKey, options); diff --git a/src/client/content.js b/src/client/content.js index e7b2bd8e..a12d3270 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -21,7 +21,6 @@ const { promisify } = require('util'); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); const { constructError, getUserAgent } = require('../commands/utils'); -const Variables = require('./variables'); const pipeline = promisify(stream.pipeline); @@ -70,12 +69,6 @@ module.exports = class Content { } } - async uploadSecureContent(projectId, token, key, content) { - const contentKey = this._sanitizeKey(key); - const vars = new Variables(this.cortexUrl); - return vars.writeVariable(projectId, token, contentKey, content); - } - deleteContent(projectId, token, key) { const contentKey = this._sanitizeKey(key); const endpoint = `${this.endpoint(projectId)}/${contentKey}`; @@ -107,10 +100,4 @@ module.exports = class Content { return constructError(err); } } - - async downloadSecureContent(projectId, token, key) { - const contentKey = this._sanitizeKey(key); - const vars = new Variables(this.cortexUrl); - return vars.readVariable(projectId, token, contentKey); - } }; diff --git a/src/commands/content.js b/src/commands/content.js index 9c0d64a9..f8a67984 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -14,8 +14,6 @@ * limitations under the License. */ const _ = require('lodash'); -const fs = require('fs'); -const path = require('path'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Content = require('../client/content'); @@ -72,8 +70,6 @@ module.exports.UploadContent = class UploadContent { const contentClient = new Content(profile.url); const chunkSize = parseInt(options.chunkSize, 10); - // const chunkSize = parseInt(options.chunkSize); - const uploadSecure = _.partial(UploadContent.uploadSecure, contentClient, profile, options); const upload = _.partial(UploadContent.upload, contentClient, profile, options); if (options.recursive) { @@ -108,27 +104,9 @@ module.exports.UploadContent = class UploadContent { cbTest(filesDict); } }); - } else if (options.secure) { - uploadSecure(contentKey, filePath); - } else { - upload(contentKey, filePath); - } - } - - - static uploadSecure(contentClient, profile, options, contentKey, filePath) { - const fileContent = fs.readFileSync(filePath); - const fileBaseName = path.basename(filePath); - - const secureContent = {}; - secureContent[fileBaseName] = Buffer.from(fileContent).toString('base64'); - contentClient.uploadSecureContent(options.project || profile.project, profile.token, contentKey, secureContent).then((response) => { - if (response.success) { - printSuccess('Secure content successfully uploaded.', options); - } else { - printError(`Failed to upload secure content: ${response.status} ${response.message}`, options); - } - }); + } else { + upload(contentKey, filePath); + } } static upload(contentClient, profile, options, contentKey, filePath) { @@ -184,31 +162,16 @@ module.exports.DownloadContent = class DownloadContent { const content = new Content(profile.url); const showProgress = !!options.progress; - // To download content from Secrets - if (options.secure) { - content.downloadSecureContent(options.project || profile.project, profile.token, contentKey).then((response) => { - if (response.success) { - printSuccess(response.message, options); - } else { - printError(`Failed to download secure content: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to download secure content: ${err.status} ${err.message}`, options); - }); - } else { - content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).then((response) => { - if (response.success) { - // messages need to be on stderr as content is streamed to stdout - console.error(response.message); - } else { - printError(`Failed to download content: ${response.status} ${response.message}`, options); - } - }).catch((err) => { - debug(err); - printError(`Failed to download content: ${err.status} ${err.message}`, options); - }); - } + content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).then((response) => { + if (response.success) { + // messages need to be on stderr as content is streamed to stdout + console.error(response.message); + } else { + printError(`Failed to download content: ${response.status} ${response.message}`, options); + } + }).catch((err) => { + debug(err); + printError(`Failed to download content: ${err.status} ${err.message}`, options); + }); } }; From 655e80e61c7eda24fc7f814a390e9847984699d8 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Sat, 17 Apr 2021 19:01:14 +0530 Subject: [PATCH 248/864] FAB-1587 Fix debug statements --- src/client/actions.js | 9 ++++++++- src/client/agents.js | 8 ++++---- src/client/catalog.js | 15 ++++++++------- src/client/connections.js | 6 ++++-- src/client/content.js | 10 +++++----- src/client/experiments.js | 2 +- src/client/roles.js | 4 ++-- src/client/users.js | 2 +- src/client/variables.js | 2 +- 9 files changed, 34 insertions(+), 24 deletions(-) diff --git a/src/client/actions.js b/src/client/actions.js index 24d45488..8029b946 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -59,7 +59,7 @@ module.exports = class Actions { listActions(projectId, token) { checkProject(projectId); - debug('listActions() => %s', this.endpointV3); + debug('listActions() => %s', this.endpointV4(projectId)); return got .get(this.endpointV4(projectId), { headers: { Authorization: `Bearer ${token}` }, @@ -121,6 +121,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/logs`; + debug('taskLogs(%s, %s) => %s', jobId, taskId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -135,6 +136,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}`; + debug('taskCancel(%s, %s) => %s', jobId, taskId, endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -149,6 +151,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/status`; + debug('taskStatus(%s, %s) => %s', jobId, taskId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -166,6 +169,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks`; + debug('jobListTasks(%s) => %s', jobId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -180,6 +184,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/stats`; + debug('taskStats(%s) => %s', jobId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -193,6 +198,7 @@ module.exports = class Actions { listTasksByActivation(projectId, token, activationId) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${activationId}`; + debug('listTasksByActivation(%s) => %s', activationId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -206,6 +212,7 @@ module.exports = class Actions { getConfig(projectId, token) { checkProject(projectId); const endpoint = _.join([this.endpointV4(projectId), '_config'], '/'); + debug('getConfig() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/agents.js b/src/client/agents.js index 6ff2caaf..84dd74e0 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -68,7 +68,7 @@ module.exports = class Agents { listActivations(projectId, token, agentName) { const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/activations`; - debug('listActivations(%s, %s) => %s', agentName, endpoint); + debug('listActivations(%s) => %s', agentName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -80,7 +80,7 @@ module.exports = class Agents { listAgentSnapshots(projectId, token, agentName) { const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(agentName)}/snapshots`; - debug('listAgentSnapshots(%s, %s) => %s', agentName, endpoint); + debug('listAgentSnapshots(%s) => %s', agentName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -92,7 +92,7 @@ module.exports = class Agents { describeAgentSnapshot(projectId, token, snapshotId, output) { const endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; - debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, endpoint); + debug('describeAgentSnapshot(%s) => %s', snapshotId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -104,7 +104,7 @@ module.exports = class Agents { createAgentSnapshot(projectId, token, snapshot) { const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(snapshot.agentName)}/snapshots`; - debug('getAgentSnapshot=> %s', endpoint); + debug('createAgentSnapshot(%s)=> %s',snapshot, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/catalog.js b/src/client/catalog.js index 15cd0e60..f0813a9d 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -38,7 +38,7 @@ module.exports = class Catalog { saveSkill(projectId, token, skillObj) { checkProject(projectId); - debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills); + debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills(projectId)); return got .post(this.endpoints.skills(projectId), { headers: { Authorization: `Bearer ${token}` }, @@ -51,7 +51,7 @@ module.exports = class Catalog { listSkills(projectId, token) { checkProject(projectId); - debug('listSkills() => %s', this.endpoints.skills); + debug('listSkills() => %s', this.endpoints.skills(projectId)); return got .get(this.endpoints.skills(projectId), { headers: { Authorization: `Bearer ${token}` }, @@ -96,6 +96,7 @@ module.exports = class Catalog { return this.describeAgent(projectId, token, agentName).then((response) => { if (response.success) { const urlBase = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/services`; + debug('listServices(%s) => %s', agentName ,urlBase); const servicesList = response.agent.inputs .filter(i => i.signalType === 'Service') .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) @@ -152,7 +153,7 @@ module.exports = class Catalog { checkProject(projectId); const endpoint = `${this.endpoints.types(projectId)}`; const names = types.types.map(t => t.name); - debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types); + debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types(projectId)); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -181,7 +182,7 @@ module.exports = class Catalog { listTypes(projectId, token) { checkProject(projectId); const endpoint = `${this.endpoints.types(projectId)}`; - debug('listTypes() => %s', this.endpoints.types); + debug('listTypes() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -194,10 +195,9 @@ module.exports = class Catalog { exportCampaign(projectId, token, campaignName, deployable, outputFileName) { checkProject(projectId); - debug('exportCampaign(%s) => %s', campaignName, this.endpoints.campaigns); - const url = `${this.endpoints.campaigns(projectId)}${campaignName}/export?deployable=${deployable}`; + debug('exportCampaign(%s) => %s', campaignName, url); return http.get(url, { headers: { Authorization: `Bearer ${token}` } }, @@ -217,8 +217,9 @@ module.exports = class Catalog { importCampaign(projectId, token, filepath, deploy, overwrite) { checkProject(projectId); - debug('importCampaign(%s)', this.endpoints.campaigns); + const importUrl = `${this.endpoints.campaigns(projectId)}import?deployable=${deploy}&overwrite=${overwrite}`; + debug('importCampaign(%s) => %s', filepath, importUrl); if (!fs.existsSync(filepath) || !fs.lstatSync(filepath).isFile()) { printError(`Campaign export file ${filepath} doesn't exists or not a valid export file`); } diff --git a/src/client/connections.js b/src/client/connections.js index ca5b879c..424eb72f 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -42,6 +42,7 @@ module.exports = class Connections { listConnections(projectId, token) { const endpoint = `${this.endpoint(projectId)}`; + debug('listConnections() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -53,7 +54,7 @@ module.exports = class Connections { async saveConnection(projectId, token, connObj) { const endpoint = `${this.endpoint(projectId)}`; - debug('saveConnection(%s) => %s', connObj.name, this.endpoint(projectId)); + debug('saveConnection(%s) => %s', connObj.name, endpoint; try { const message = await got .post(endpoint, { @@ -83,7 +84,7 @@ module.exports = class Connections { name, title, description, connectionType, allowWrite, tags, params, }) { const url = `${this.cortexUrl}/fabric/v4/projects/${projectId}/connectiontest`; - debug('saveConnection(%s) => %s', name, url); + debug('testConnection(%s) => %s', name, url); try { const message = await got .post(url, { @@ -101,6 +102,7 @@ module.exports = class Connections { listConnectionsTypes(token) { const endpoint = `${this.cortexUrl}/fabric/v4/connectiontypes`; + debug('listConnectionsTypes() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/content.js b/src/client/content.js index a12d3270..842a4e2e 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -37,7 +37,7 @@ module.exports = class Content { listContent(projectId, token) { const endpoint = this.endpoint(projectId); - debug('listContent %s', endpoint); + debug('listContent() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -72,7 +72,7 @@ module.exports = class Content { deleteContent(projectId, token, key) { const contentKey = this._sanitizeKey(key); const endpoint = `${this.endpoint(projectId)}/${contentKey}`; - debug('deleteContent => %s', endpoint); + debug('deleteContent() => %s', endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -84,10 +84,10 @@ module.exports = class Content { // TODO progress // eslint-disable-next-line no-unused-vars - async downloadContent(projecId, token, key, showProgress = false) { + async downloadContent(projectId, token, key, showProgress = false) { const contentKey = this._sanitizeKey(key); - const endpoint = `${this.endpoint(projecId)}/${contentKey}`; - debug('downloadContent(%s) => %s', key, this.endpoint); + const endpoint = `${this.endpoint(projectId)}/${contentKey}`; + debug('downloadContent() => %s', endpoint); try { return pipeline( got.stream(endpoint, { diff --git a/src/client/experiments.js b/src/client/experiments.js index ece4ce42..a5fb1e5b 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -92,7 +92,7 @@ module.exports = class Experiments { deleteRun(projectId, token, experimentName, runId) { const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${runId}`; - debug('deleteRun(%s) => %s', runId, endpoint); + debug('deleteRun(%s, %s) => %s', experimentName, runId, endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/roles.js b/src/client/roles.js index a422a505..dc85907a 100644 --- a/src/client/roles.js +++ b/src/client/roles.js @@ -154,7 +154,7 @@ module.exports = class Roles { addRolesToProject(token, project, roles) { const endpoint = `${this.rolesProjectsEndpoint}`; - debug('addRolesToProject => %s', endpoint); + debug('addRolesToProject(%s) => %s', roles, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -216,7 +216,7 @@ module.exports = class Roles { addExternalGroupToRole(token, externalGroup) { const endpoint = `${this.rolesMappingsEndpoint}`; - debug('addExternalGroupToRole => %s', endpoint); + debug('addExternalGroupToRole(%s) => %s', externalGroup, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/users.js b/src/client/users.js index 9683441d..e98c9aaa 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -44,7 +44,7 @@ module.exports = class Users { describeUser(token) { const endpoint = `${this.usersEndpoint}/${this.flags}`; - debug('listForUser => %s', endpoint); + debug('describeUser => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/variables.js b/src/client/variables.js index 6c19eeb3..782d261b 100644 --- a/src/client/variables.js +++ b/src/client/variables.js @@ -38,7 +38,7 @@ module.exports = class Variables { readVariable(projectId, token, keyName) { const endpoint = `${this.endpoint(projectId)}/${keyName}`; - debug('readVariable($s) => %s', keyName, endpoint); + debug('readVariable(%s) => %s', keyName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, From 32db21d8835dff7a250ec65a40f7f463a47aea89 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Sat, 17 Apr 2021 19:04:55 +0530 Subject: [PATCH 249/864] fix npm test --- src/client/agents.js | 2 +- src/client/catalog.js | 2 +- src/client/connections.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/agents.js b/src/client/agents.js index 84dd74e0..85774d21 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -104,7 +104,7 @@ module.exports = class Agents { createAgentSnapshot(projectId, token, snapshot) { const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(snapshot.agentName)}/snapshots`; - debug('createAgentSnapshot(%s)=> %s',snapshot, endpoint); + debug('createAgentSnapshot(%s)=> %s', snapshot, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/catalog.js b/src/client/catalog.js index f0813a9d..7644c232 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -96,7 +96,7 @@ module.exports = class Catalog { return this.describeAgent(projectId, token, agentName).then((response) => { if (response.success) { const urlBase = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/services`; - debug('listServices(%s) => %s', agentName ,urlBase); + debug('listServices(%s) => %s', agentName, urlBase); const servicesList = response.agent.inputs .filter(i => i.signalType === 'Service') .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) diff --git a/src/client/connections.js b/src/client/connections.js index 424eb72f..04e80e3d 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -54,7 +54,7 @@ module.exports = class Connections { async saveConnection(projectId, token, connObj) { const endpoint = `${this.endpoint(projectId)}`; - debug('saveConnection(%s) => %s', connObj.name, endpoint; + debug('saveConnection(%s) => %s', connObj.name, endpoint); try { const message = await got .post(endpoint, { From f9a72e40ad09883753de3f71a1317b561ff49766 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Apr 2021 14:59:27 +0000 Subject: [PATCH 250/864] Bump jose from 2.0.2 to 2.0.5 Bumps [jose](https://github.com/panva/jose) from 2.0.2 to 2.0.5. - [Release notes](https://github.com/panva/jose/releases) - [Changelog](https://github.com/panva/jose/blob/v2.0.5/CHANGELOG.md) - [Commits](https://github.com/panva/jose/compare/v2.0.2...v2.0.5) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 92a0ed27..511c749a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2843,9 +2843,9 @@ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "jose": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.2.tgz", - "integrity": "sha512-yD93lsiMA1go/qxSY/vXWBodmIZJIxeB7QhFi8z1yQ3KUwKENqI9UA8VCHlQ5h3x1zWuWZjoY87ByQzkQbIrQg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.5.tgz", + "integrity": "sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA==", "requires": { "@panva/asn1.js": "^1.0.0" } diff --git a/package.json b/package.json index b78343f0..15c35458 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "graphql-request": "3.3.0", "is-installed-globally": "0.3.1", "jmespath": "0.15.0", - "jose": "2.0.2", + "jose": "2.0.5", "js-yaml": "3.13.1", "lodash": "4.17.20", "moment": "2.24.0", From 9cef2be176840634148cb9e0929e92e438424c76 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 20 Apr 2021 11:37:59 -0500 Subject: [PATCH 251/864] FAB-1354: rework agents list-activations command to allow for filtering options by state or time (#314) * FAB-1354: rework agents list-activations command to allow for filtering options by state or time * fix list-activations command to display results correctly without --json option * linting * PR comments --- bin/cortex-agents.js | 14 ++++++++++---- src/client/agents.js | 14 +++++++++----- src/commands/agents.js | 25 +++++++++++++------------ 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 8b08f398..7d093451 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -128,18 +128,24 @@ program } })); +// List activations program - .command('list-activations ') - .description('List agent activations') + .command('list-activations ') + .description('List activations for an agent') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((snapshotId, options) => { + .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') + .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') + .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') + .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') + .option('--status [status]', 'Filters activations by status [complete|error].') + .action(withCompatibilityCheck((agentName, options) => { try { - new ListActivationsCommand(program).execute(snapshotId, options); + new ListActivationsCommand(program).execute(agentName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/client/agents.js b/src/client/agents.js index 85774d21..761c3c46 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -66,14 +66,18 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listActivations(projectId, token, agentName) { + listActivations(projectId, token, agentName, params) { const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/activations`; debug('listActivations(%s) => %s', agentName, endpoint); + const opts = { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }; + if (params) { + opts.searchParams = params; + } return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() + .get(endpoint, opts).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); } diff --git a/src/commands/agents.js b/src/commands/agents.js index 7b462398..d63cf0a6 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -208,12 +208,19 @@ module.exports.ListActivationsCommand = class { this.program = program; } - execute(instanceId, options) { + execute(agentName, options) { const profile = loadProfile(options.profile); - debug('%s.listActivations(%s)', profile.name, instanceId); + debug('%s.listActivations(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listActivations(options.project || profile.project, profile.token, instanceId).then((response) => { + // TODO validate param types? + const queryParams = {}; + if (options.startBefore) queryParams.startBefore = options.startBefore; + if (options.startAfter) queryParams.startAfter = options.startAfter; + if (options.endBefore) queryParams.endBefore = options.endBefore; + if (options.endAfter) queryParams.endAfter = options.endAfter; + if (options.status) queryParams.status = options.status; + agents.listActivations(options.project || profile.project, profile.token, agentName, queryParams).then((response) => { if (response.success) { let result = response.result.activations; if (options.query) result = filterObject(result, options); @@ -223,21 +230,15 @@ module.exports.ListActivationsCommand = class { } else { const tableSpec = [ { column: 'Activation Id', field: 'activationId', width: 38 }, - { column: 'Type', field: 'type', width: 20 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Start', field: 'start', width: 15 }, - { column: 'End', field: 'end', width: 15 }, - { column: 'Session Id', field: 'sessionId', width: 38 }, ]; - - printTable(tableSpec, result); + printTable(tableSpec, _.map(result, r => ({ activationId: r }))); } } else { - printError(`Failed to list activations for instance ${instanceId}: ${response.message}`, options); + printError(`Failed to list activations for instance ${agentName}: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list activations for instance ${instanceId}: ${err.status} ${err.message}`, options); + printError(`Failed to list activations for instance ${agentName}: ${err.status} ${err.message}`, options); }); } }; From 2771a4394cfb8b81856152a2c7f84713575b2b7b Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 21 Apr 2021 12:05:00 -0500 Subject: [PATCH 252/864] Add checkProject to all project scoped apis, rename variables to secrets linting vulns bump --- bin/cortex-secrets.js | 27 ++--- package-lock.json | 120 ++++++++++++--------- package.json | 9 +- src/client/agents.js | 9 +- src/client/connections.js | 41 +------ src/client/content.js | 6 +- src/client/experiments.js | 9 +- src/client/{variables.js => secrets.js} | 28 ++--- src/commands/connections.js | 124 ---------------------- src/commands/{variables.js => secrets.js} | 42 ++++---- 10 files changed, 149 insertions(+), 266 deletions(-) rename src/client/{variables.js => secrets.js} (66%) rename src/commands/{variables.js => secrets.js} (67%) diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 8f2443ad..ff29d246 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -22,17 +22,17 @@ const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - ListVariablesCommand, - ReadVariableCommand, - WriteVariableCommand, -} = require('../src/commands/variables'); + ListSecretsCommand, + ReadSecretsCommand, + WriteSecretsCommand, +} = require('../src/commands/secrets'); program.description('Work with Cortex Secrets'); -// List Secure Variable Keys +// List Secure Keys program .command('list') - .description('List secure variable keys') + .description('List secure keys') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--json', 'Output results using JSON') @@ -40,16 +40,17 @@ program .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((options) => { try { - new ListVariablesCommand(program).execute(options); + new ListSecretsCommand(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } })); -// Read Secure Variable Value +// Read Secure Value program .command('describe ') - .description('Retrieve the value stored for the given variable key.') + .alias('get') + .description('Retrieve the value stored for the given key.') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--json', 'Output results using JSON') @@ -57,16 +58,16 @@ program .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((keyName, options) => { try { - new ReadVariableCommand(program).execute(keyName, options); + new ReadSecretsCommand(program).execute(keyName, options); } catch (err) { console.error(chalk.red(err.message)); } })); -// Write Secure Variable Value +// Write Secure Value program .command('save [value]') - .description('Save or overwrite a secure variable value. By default, values are stored as strings but can also be saved as JSON or YAML values.') + .description('Save or overwrite a secure value. By default, values are stored as strings but can also be saved as JSON or YAML values.') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--data [data]', 'JSON value to save') @@ -75,7 +76,7 @@ program .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((keyName, value, options) => { try { - new WriteVariableCommand(program).execute(keyName, value, options); + new WriteSecretsCommand(program).execute(keyName, value, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/package-lock.json b/package-lock.json index f69457d1..81173b08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -163,11 +163,12 @@ "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==" }, "@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "requires": { - "mkdirp": "^1.0.4" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" } }, "@panva/asn1.js": { @@ -305,9 +306,9 @@ } }, "agentkeepalive": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", - "integrity": "sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -626,9 +627,9 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz", + "integrity": "sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==", "requires": { "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", @@ -644,7 +645,7 @@ "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", - "ssri": "^8.0.0", + "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" } @@ -1168,7 +1169,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-file": { @@ -1237,9 +1238,9 @@ } }, "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "error-ex": { "version": "1.3.2", @@ -2355,9 +2356,9 @@ } }, "hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "requires": { "lru-cache": "^6.0.0" } @@ -3070,23 +3071,23 @@ "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==" }, "make-fetch-happen": { - "version": "8.0.10", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", - "integrity": "sha512-jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==", + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", "requires": { - "agentkeepalive": "^4.1.0", - "cacache": "^15.0.0", - "http-cache-semantics": "^4.0.4", + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^6.0.0", "minipass": "^3.1.3", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.0", + "minipass-fetch": "^1.3.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "promise-retry": "^1.1.1", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", "socks-proxy-agent": "^5.0.0", "ssri": "^8.0.0" } @@ -3277,9 +3278,9 @@ } }, "minipass-fetch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", - "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", + "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -3835,19 +3836,29 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, "npm-package-arg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz", - "integrity": "sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.2.tgz", + "integrity": "sha512-6Eem455JsSMJY6Kpd3EyWE+n5hC+g9bSyHr9K9U2zqZb7+02+hObQ2c0+8iDk/mNF+8r1MhY44WypKJAkySIYA==", "requires": { - "hosted-git-info": "^3.0.6", - "semver": "^7.0.0", + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "npm-registry-fetch": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.1.5.tgz", - "integrity": "sha512-yZPNoJK9clx1jhSXU54kU6Aj1SV2p7mXUs1W/6OjQvek3wb1RrjDCrt4iY1+VX9eBQvvSGEpzNmYkRUaTL8rqg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", + "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", "requires": { "@npmcli/ci-detect": "^1.0.0", "lru-cache": "^6.0.0", @@ -4461,12 +4472,12 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" + "err-code": "^2.0.2", + "retry": "^0.12.0" } }, "propagate": { @@ -4696,9 +4707,9 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, "reusify": { "version": "1.0.4", @@ -5364,9 +5375,9 @@ } }, "socks": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.0.tgz", - "integrity": "sha512-00OqQHp5SCbwm9ecOMJj9aQtMSjwi1uVuGQoxnpKCS50VKZcOZ8z11CTKypmR8sEy7nZimy/qXY7rYJYbRlXmA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", "requires": { "ip": "^1.1.5", "smart-buffer": "^4.1.0" @@ -5605,9 +5616,9 @@ } }, "tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -5856,6 +5867,11 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, + "url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", diff --git a/package.json b/package.json index 15c35458..06ea9751 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.2", + "version": "2.0.3", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -33,13 +33,13 @@ "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", - "form-data": "3.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", "commander": "6.2.0", "debug": "4.1.1", "find-package-json": "1.2.0", + "form-data": "3.0.0", "glob": "7.1.6", "got": "11.7.0", "graphql": "15.4.0", @@ -50,11 +50,12 @@ "js-yaml": "3.13.1", "lodash": "4.17.20", "moment": "2.24.0", - "npm-registry-fetch": "8.1.5", + "npm-registry-fetch": "9.0.0", "os-name": "4.0.0", "plop": "2.7.4", "semver": "7.1.3", - "tty-table": "4.1.1" + "tty-table": "4.1.1", + "url-join": "4.0.1" }, "devDependencies": { "chai": "4.2.0", diff --git a/src/client/agents.js b/src/client/agents.js index 761c3c46..d9592ac7 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -16,7 +16,7 @@ const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); module.exports = class Agents { constructor(cortexUrl) { @@ -25,6 +25,7 @@ module.exports = class Agents { } invokeAgentService(projectId, token, agentName, serviceName, params) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${encodeURIComponent(agentName)}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got @@ -38,6 +39,7 @@ module.exports = class Agents { } invokeSkill(projectId, token, skillName, inputName, params) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/skillinvoke/${encodeURIComponent(skillName)}/inputs/${inputName}`; debug('invokeSkill(%s, %s) => %s', skillName, inputName, endpoint); return got @@ -51,6 +53,7 @@ module.exports = class Agents { } getActivation(projectId, token, activationId, verbose) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); const opts = { @@ -67,6 +70,7 @@ module.exports = class Agents { } listActivations(projectId, token, agentName, params) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/activations`; debug('listActivations(%s) => %s', agentName, endpoint); const opts = { @@ -83,6 +87,7 @@ module.exports = class Agents { } listAgentSnapshots(projectId, token, agentName) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(agentName)}/snapshots`; debug('listAgentSnapshots(%s) => %s', agentName, endpoint); return got @@ -95,6 +100,7 @@ module.exports = class Agents { } describeAgentSnapshot(projectId, token, snapshotId, output) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; debug('describeAgentSnapshot(%s) => %s', snapshotId, endpoint); return got @@ -107,6 +113,7 @@ module.exports = class Agents { } createAgentSnapshot(projectId, token, snapshot) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(snapshot.agentName)}/snapshots`; debug('createAgentSnapshot(%s)=> %s', snapshot, endpoint); return got diff --git a/src/client/connections.js b/src/client/connections.js index 04e80e3d..d344c5a3 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -16,7 +16,7 @@ const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); module.exports = class Connections { constructor(cortexUrl) { @@ -24,23 +24,8 @@ module.exports = class Connections { this.cortexUrl = cortexUrl; } - async queryConnection(projectId, token, connectionName, queryObject) { - const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(connectionName)}/query`; - debug('queryConnection(%s) => %s', connectionName, endpoint); - try { - const message = await got - .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: queryObject, - }).json(); - return { success: true, message }; - } catch (err) { - return constructError(err); - } - } - listConnections(projectId, token) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}`; debug('listConnections() => %s', endpoint); return got @@ -53,6 +38,7 @@ module.exports = class Connections { } async saveConnection(projectId, token, connObj) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}`; debug('saveConnection(%s) => %s', connObj.name, endpoint); try { @@ -69,6 +55,7 @@ module.exports = class Connections { } describeConnection(projectId, token, connectionName) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(connectionName)}`; debug('describeConnection(%s) => %s', connectionName, endpoint); return got @@ -80,26 +67,6 @@ module.exports = class Connections { .catch(err => constructError(err)); } - async testConnection(projectId, token, { - name, title, description, connectionType, allowWrite, tags, params, - }) { - const url = `${this.cortexUrl}/fabric/v4/projects/${projectId}/connectiontest`; - debug('testConnection(%s) => %s', name, url); - try { - const message = await got - .post(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: { - name, title, description, connectionType, allowWrite, tags, params, - }, - }).json(); - return { success: true, message }; - } catch (err) { - return constructError(err); - } - } - listConnectionsTypes(token) { const endpoint = `${this.cortexUrl}/fabric/v4/connectiontypes`; debug('listConnectionsTypes() => %s', endpoint); diff --git a/src/client/content.js b/src/client/content.js index 842a4e2e..1820ddb9 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -20,7 +20,7 @@ const stream = require('stream'); const { promisify } = require('util'); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); const pipeline = promisify(stream.pipeline); @@ -36,6 +36,7 @@ module.exports = class Content { } listContent(projectId, token) { + checkProject(projectId); const endpoint = this.endpoint(projectId); debug('listContent() => %s', endpoint); return got @@ -49,6 +50,7 @@ module.exports = class Content { // eslint-disable-next-line no-unused-vars async uploadContentStreaming(projectId, token, key, content, showProgress = false, contentType = 'application/octet-stream') { + checkProject(projectId); const contentKey = this._sanitizeKey(key); const endpoint = `${this.endpoint(projectId)}/${contentKey}`; // todo show progress.. @@ -70,6 +72,7 @@ module.exports = class Content { } deleteContent(projectId, token, key) { + checkProject(projectId); const contentKey = this._sanitizeKey(key); const endpoint = `${this.endpoint(projectId)}/${contentKey}`; debug('deleteContent() => %s', endpoint); @@ -85,6 +88,7 @@ module.exports = class Content { // TODO progress // eslint-disable-next-line no-unused-vars async downloadContent(projectId, token, key, showProgress = false) { + checkProject(projectId); const contentKey = this._sanitizeKey(key); const endpoint = `${this.endpoint(projectId)}/${contentKey}`; debug('downloadContent() => %s', endpoint); diff --git a/src/client/experiments.js b/src/client/experiments.js index a5fb1e5b..e6ff0040 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -16,7 +16,7 @@ const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); const Content = require('./content'); module.exports = class Experiments { @@ -26,6 +26,7 @@ module.exports = class Experiments { } listExperiments(projectId, token) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}`; debug('listExperiments() => %s', endpoint); return got @@ -38,6 +39,7 @@ module.exports = class Experiments { } describeExperiment(projectId, token, name) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(name)}`; debug('describeExperiment(%s) => %s', name, endpoint); return got @@ -50,6 +52,7 @@ module.exports = class Experiments { } deleteExperiment(projectId, token, name) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(name)}`; debug('deleteExperiment(%s) => %s', name, endpoint); return got @@ -62,6 +65,7 @@ module.exports = class Experiments { } listRuns(projectId, token, experimentName, filter, limit, sort) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs`; debug('listRuns(%s) => %s', experimentName, endpoint); const query = {}; @@ -79,6 +83,7 @@ module.exports = class Experiments { } describeRun(projectId, token, experimentName, runId) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${runId}`; debug('describeRun(%s) => %s', runId, endpoint); return got @@ -91,6 +96,7 @@ module.exports = class Experiments { } deleteRun(projectId, token, experimentName, runId) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${runId}`; debug('deleteRun(%s, %s) => %s', experimentName, runId, endpoint); return got @@ -108,6 +114,7 @@ module.exports = class Experiments { // eslint-disable-next-line no-unused-vars async downloadArtifact(projectId, token, experimentName, runId, artifactName, showProgress = false) { + checkProject(projectId); try { // Check if run exists.. await this.describeRun(projectId, token, experimentName, runId); diff --git a/src/client/variables.js b/src/client/secrets.js similarity index 66% rename from src/client/variables.js rename to src/client/secrets.js index 782d261b..feb022e7 100644 --- a/src/client/variables.js +++ b/src/client/secrets.js @@ -15,18 +15,20 @@ */ const debug = require('debug')('cortex:cli'); +const urljoin = require('url-join'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); -module.exports = class Variables { +module.exports = class Secrets { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/secrets`; + this.endpoint = projectId => urljoin(cortexUrl, 'fabric/v4/projects', projectId, 'secrets'); } - listVariables(projectId, token) { - const endpoint = `${this.endpoint(projectId)}?list=true`; - debug('listVariables => %s', endpoint); + listSecrets(projectId, token) { + checkProject(projectId); + const endpoint = urljoin(this.endpoint(projectId), '?list=true'); + debug('listSecrets => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -36,9 +38,10 @@ module.exports = class Variables { .catch(err => constructError(err)); } - readVariable(projectId, token, keyName) { - const endpoint = `${this.endpoint(projectId)}/${keyName}`; - debug('readVariable(%s) => %s', keyName, endpoint); + readSecret(projectId, token, keyName) { + checkProject(projectId); + const endpoint = urljoin(this.endpoint(projectId), keyName); + debug('readSecret(%s) => %s', keyName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -48,9 +51,10 @@ module.exports = class Variables { .catch(err => constructError(err)); } - writeVariable(projectId, token, keyName, value) { - const endpoint = `${this.endpoint(projectId)}/${keyName}`; - debug('writeVariable(%s) => %s', keyName, endpoint); + writeSecret(projectId, token, keyName, value) { + checkProject(projectId); + const endpoint = urljoin(this.endpoint(projectId), keyName); + debug('writeSecret(%s) => %s', keyName, endpoint); const body = { value }; return got .post(endpoint, { diff --git a/src/commands/connections.js b/src/commands/connections.js index aa4b8c19..bfaa8e20 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -154,73 +154,6 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { } }; -module.exports.TestConnectionCommand = class TestConnectionCommand { - constructor(program) { - this.program = program; - } - - getParamsValue(connectionDefinition, paramName) { - const results = _.filter(_.get(connectionDefinition, 'params', []), item => item.name === paramName); - if (results && results.length) { - return results[0].value; - } - return undefined; - } - - stripJarPathFromParams(params) { - return params.filter(item => item.name !== 'jdbc_jar_file'); - } - - execute(connectionDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.executeTestDefinition(%s)', profile.name, connectionDefinition); - - const connDefStr = fs.readFileSync(connectionDefinition); - const connObj = parseObject(connDefStr, options); - debug('%o', connObj); - - const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); - const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); - - if (jdbcJarFilePath) { - const content = new Content(profile.url); - content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) - .then(() => { - const connection = new Connections(profile.url); - - const marshaledConnObj = connObj; - marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); - - connection.testConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { - if (response.success) { - printSuccess('Connection successfully tested', options); - } else { - printError(`Failed while testing connection: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed while testing connection: ${err.response.body.message}`, options); - }); - }) - .catch((err) => { - printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); - }); - } else { - const connection = new Connections(profile.url); - connection.testConnection(options.project || profile.project, profile.token, connObj).then((response) => { - if (response.success) { - printSuccess('Connection successfully tested', options); - } else { - printError(`Failed while testing connection: ${response.message || response.body.message}`, options); - } - }) - .catch((err) => { - printError(`Failed while testing connection: ${err.status} ${err.message}`, options); - }); - } - } -}; - module.exports.ListConnectionsTypes = class ListConnectionsTypes { constructor(program) { this.program = program; @@ -259,60 +192,3 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { }); } }; - -module.exports.QueryConnectionCommand = class QueryConnectionCommand { - constructor(program) { - this.program = program; - } - - execute(connectionName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeQueryConnection(%s)', profile.name, connectionName); - - debug('params: %o', options); - - let queryObject = {}; - let queryInput = options.query; - - if (options.file) { - queryInput = fs.readFileSync(options.file, 'UTF-8'); - } - - if (!queryInput) { - queryInput = 'select 1'; - } - - try { - queryObject = JSON.parse(queryInput); - - if (queryObject.filter) { - queryObject.filter = JSON.stringify(queryObject.filter); - } - if (queryObject.sort) { - queryObject.sort = JSON.stringify(queryObject.sort); - } - } catch (err) { - queryObject.query = queryInput; - } - - debug('queryParams: %o', queryObject); - - const connections = new Connections(profile.url); - connections.queryConnection(options.project || profile.project, profile.token, connectionName, queryObject) - .then((response) => { - if (response.success) { - if (options.json) { - printSuccess(JSON.stringify(JSON.parse(response.message), null, 2), options); - } else { - // might get images/binaries from S3 - printSuccess(response.message, options); - } - } else { - printError(`Failed to query connection: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to query connection: ${err.status} ${err.message}`, options); - }); - } -}; diff --git a/src/commands/variables.js b/src/commands/secrets.js similarity index 67% rename from src/commands/variables.js rename to src/commands/secrets.js index 1a07b14b..925e5589 100644 --- a/src/commands/variables.js +++ b/src/commands/secrets.js @@ -21,81 +21,81 @@ const isUndefined = require('lodash/fp/isUndefined'); const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); -const Variables = require('../client/variables'); +const Secrets = require('../client/secrets'); const { printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); -module.exports.ListVariablesCommand = class { +module.exports.ListSecretsCommand = class { constructor(program) { this.program = program; } execute(options) { const profile = loadProfile(options.profile); - debug('%s.listVariables(%s)', profile.name); + debug('%s.listsecrets(%s)', profile.name); - const variables = new Variables(profile.url); - variables.listVariables(options.project || profile.project, profile.token) + const secrets = new Secrets(profile.url); + secrets.listSecrets(options.project || profile.project, profile.token) .then((response) => { if (response.success) { const result = filterObject(response.result, options); if (options.json) printSuccess(JSON.stringify(result, null, 2), options); else { const tableSpec = [ - { column: 'Variable Key Name', field: 'keyName', width: 50 }, + { column: 'Secret Key Name', field: 'keyName', width: 50 }, ]; printTable(tableSpec, map(x => ({ keyName: x }), result)); } } else { - printError(`Failed to list variables: ${response.message}`, options); + printError(`Failed to list secrets: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list variables : ${err.status} ${err.message}`, options); + printError(`Failed to list secrets : ${err.status} ${err.message}`, options); }); } }; -module.exports.ReadVariableCommand = class { +module.exports.ReadSecretsCommand = class { constructor(program) { this.program = program; } execute(keyName, options) { const profile = loadProfile(options.profile); - debug('%s.readVariable(%s)', profile.name, keyName); + debug('%s.readsecret(%s)', profile.name, keyName); - const variables = new Variables(profile.url); - variables.readVariable(options.project || profile.project, profile.token, keyName).then((response) => { + const secrets = new Secrets(profile.url); + secrets.readSecret(options.project || profile.project, profile.token, keyName).then((response) => { if (response.success) { const result = filterObject(response.result, options); if (options.json) printSuccess(JSON.stringify(result, null, 2), options); else { const tableSpec = [ - { column: 'Variable Key Name', field: 'keyName', width: 50 }, + { column: 'Key Name', field: 'keyName', width: 50 }, { column: 'Value', field: 'value', width: 50 }, ]; printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2) }]); } } else { - printError(`Failed to read secure variable : ${response.message}`, options); + printError(`Failed to read secure secret : ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to read secure variable : ${err.status} ${err.message}`, options); + printError(`Failed to read secure secret : ${err.status} ${err.message}`, options); }); } }; -module.exports.WriteVariableCommand = class { +module.exports.WriteSecretsCommand = class { constructor(program) { this.program = program; } execute(keyName, value, options) { const profile = loadProfile(options.profile); - debug('%s.writeVariable(%s)', profile.name, keyName); + debug('%s.writeSecret(%s)', profile.name, keyName); let data = value; if (options.data) { @@ -110,16 +110,16 @@ module.exports.WriteVariableCommand = class { } if (isUndefined(data)) { - return printError('Failed to write secure variable : no value specified', options); + return printError('Failed to write secure secret : no value specified', options); } - const variables = new Variables(profile.url); - return variables.writeVariable(options.project || profile.project, profile.token, keyName, data).then((response) => { + const secrets = new Secrets(profile.url); + return secrets.writeSecret(options.project || profile.project, profile.token, keyName, data).then((response) => { const result = filterObject(response.result, options); printSuccess(result.message, options); }) .catch((err) => { - printError(`Failed to write secure variable : ${err.status} ${err.message}`, options); + printError(`Failed to write secure secret : ${err.status} ${err.message}`, options); }); } }; From a952a85a8b7a0ef6334b83a1ba3be10105ed341d Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 16 Apr 2021 09:26:49 -0500 Subject: [PATCH 253/864] Add skills deploy/undeploy cli commands --- bin/cortex-skills.js | 76 ++++++++++++++++++++++++++++++------------ src/client/catalog.js | 28 ++++++++++++++++ src/commands/skills.js | 46 +++++++++++++++++++++++++ 3 files changed, 128 insertions(+), 22 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index c37d7bc7..0efbb91b 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -26,22 +26,59 @@ const { ListSkillsCommand, DescribeSkillCommand, InvokeSkillCommand, + DeploySkillCommand, + UndeploySkillCommand, } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); -// Save Skill +// Deploy Skill program - .command('save ') - .description('Save a skill definition') + .command('deploy ') + .description('Deploy the skill resource to the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((skillName, options) => { + try { + new DeploySkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Skill +program + .command('describe ') + .alias('get') + .description('Describe skill') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for skill definition format') - .action(withCompatibilityCheck((skillDefinition, options) => { + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((skillName, options) => { try { - new SaveSkillCommand(program).execute(skillDefinition, options); + new DescribeSkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Invoke Skill +program + .command('invoke ') + .description('Invoke a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--params [params]', 'JSON params to send to the action') + .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .action(withCompatibilityCheck((skillName, inputName, options) => { + try { + new InvokeSkillCommand(program).execute(skillName, inputName, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -65,38 +102,33 @@ program } })); -// Describe Skill +// Save Skill program - .command('describe ') - .alias('get') - .description('Describe skill') + .command('save ') + .description('Save a skill definition') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((skillName, options) => { + .option('-y, --yaml', 'Use YAML for skill definition format') + .action(withCompatibilityCheck((skillDefinition, options) => { try { - new DescribeSkillCommand(program).execute(skillName, options); + new SaveSkillCommand(program).execute(skillDefinition, options); } catch (err) { console.error(chalk.red(err.message)); } })); -// Invoke Skill +// Undeploy Skill program - .command('invoke ') - .description('Invoke a skill') + .command('undeploy ') + .description('Undeploy the skill resource from the cluster') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--params [params]', 'JSON params to send to the action') - .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .action(withCompatibilityCheck((skillName, inputName, options) => { + .action(withCompatibilityCheck((skillName, options) => { try { - new InvokeSkillCommand(program).execute(skillName, inputName, options); + new UndeploySkillCommand(program).execute(skillName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/client/catalog.js b/src/client/catalog.js index 7644c232..5c271c91 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -75,6 +75,34 @@ module.exports = class Catalog { .catch(err => constructError(err)); } + deploySkill(projectId, token, skillName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/deploy`; + debug('deploySkill(%s) => %s', skillName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then(res => ({ success: true, skill: res })) + .catch(err => constructError(err)); + } + + unDeploySkill(projectId, token, skillName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/undeploy`; + debug('undeploySkill(%s) => %s', skillName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then(res => ({ success: true, skill: res })) + .catch(err => constructError(err)); + } + listAgents(projectId, token) { checkProject(projectId); const endpoint = this.endpoints.agents(projectId); diff --git a/src/commands/skills.js b/src/commands/skills.js index c6665172..5d3cb5fd 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -117,6 +117,52 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { } }; +module.exports.UndeploySkillCommand = class RedeploySkillCommand { + constructor(program) { + this.program = program; + } + + execute(skillName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeUneDeploySkill(%s)', profile.name, skillName); + + const catalog = new Catalog(profile.url); + catalog.unDeploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { + if (response.success) { + printSuccess(`Undeployed skill ${skillName}: ${response.message}`, options); + } else { + printError(`Failed to Undeploy skill ${skillName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to Undeploy skill ${skillName}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeploySkillCommand = class DeploySkillCommand { + constructor(program) { + this.program = program; + } + + execute(skillName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeploySkill(%s)', profile.name, skillName); + + const catalog = new Catalog(profile.url); + catalog.deploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { + if (response.success) { + printSuccess(`Deployed skill ${skillName}: ${response.message}`, options); + } else { + printError(`Failed to deploy skill ${skillName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to deploy skill ${skillName}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.InvokeSkillCommand = class InvokeSkillCommand { constructor(program) { this.program = program; From 2a546182b756f02eaf10bb87a51fafb1cc69f092 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 21 Apr 2021 12:13:52 -0500 Subject: [PATCH 254/864] review comments --- src/commands/skills.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index 5d3cb5fd..754612cc 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -117,19 +117,18 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { } }; -module.exports.UndeploySkillCommand = class RedeploySkillCommand { +module.exports.UndeploySkillCommand = class UndeploySkillCommand { constructor(program) { this.program = program; } execute(skillName, options) { const profile = loadProfile(options.profile); - debug('%s.executeUneDeploySkill(%s)', profile.name, skillName); - + debug('%s.executeUndeploySkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); catalog.unDeploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { if (response.success) { - printSuccess(`Undeployed skill ${skillName}: ${response.message}`, options); + printSuccess(`Undeploy skill ${skillName}: ${response.message}`, options); } else { printError(`Failed to Undeploy skill ${skillName}: ${response.message}`, options); } From 271c92f3ecec8c8f7e978adba11085bb1ae3171c Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 22 Apr 2021 17:21:29 -0500 Subject: [PATCH 255/864] Secrets save wasnot handling errors consistently --- src/client/secrets.js | 2 +- src/commands/secrets.js | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/client/secrets.js b/src/client/secrets.js index feb022e7..0883434f 100644 --- a/src/client/secrets.js +++ b/src/client/secrets.js @@ -62,7 +62,7 @@ module.exports = class Secrets { 'user-agent': getUserAgent(), json: body, }).json() - .then(result => ({ success: true, result })) + .then(result => ({ ...result })) .catch(err => constructError(err)); } }; diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 925e5589..1542fba9 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -74,7 +74,7 @@ module.exports.ReadSecretsCommand = class { else { const tableSpec = [ { column: 'Key Name', field: 'keyName', width: 50 }, - { column: 'Value', field: 'value', width: 50 }, + { column: 'Value (Not Shown)', field: 'value', width: 50 }, ]; printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2) }]); } @@ -110,16 +110,18 @@ module.exports.WriteSecretsCommand = class { } if (isUndefined(data)) { - return printError('Failed to write secure secret : no value specified', options); + return printError('Failed to write secret : no value specified', options); } const secrets = new Secrets(profile.url); return secrets.writeSecret(options.project || profile.project, profile.token, keyName, data).then((response) => { - const result = filterObject(response.result, options); - printSuccess(result.message, options); + if (response.success) { + return printSuccess(response.message, options); + } + return printError(`Failed to write secret: ${response.status} ${response.message}`, options); }) .catch((err) => { - printError(`Failed to write secure secret : ${err.status} ${err.message}`, options); + printError(`Failed to write secret : ${err.status} ${err.message}`, options); }); } }; From 07dfe2d9b3282c9e675cd0162e3367d92a2eadda Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 22 Apr 2021 17:34:33 -0500 Subject: [PATCH 256/864] Fix message deploy/undeploy . --- package-lock.json | 4 ++-- src/client/catalog.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 81173b08..ff58fa8e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.2", + "version": "2.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1169,7 +1169,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-file": { diff --git a/src/client/catalog.js b/src/client/catalog.js index 5c271c91..8c1b2d95 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -85,7 +85,7 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), searchParams: { verbose }, }).json() - .then(res => ({ success: true, skill: res })) + .then(res => ({ ...res })) .catch(err => constructError(err)); } @@ -99,7 +99,7 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), searchParams: { verbose }, }).json() - .then(res => ({ success: true, skill: res })) + .then(res => ({ ...res })) .catch(err => constructError(err)); } From 236c42fdc7d36de66b943ee2ba0e8d0ea1f3a260 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Mon, 26 Apr 2021 13:36:57 -0500 Subject: [PATCH 257/864] [FAB-1689] Previous implementation of empty string parser did not handle variadic params --- bin/cortex-roles.js | 2 +- src/parsers.js | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index bebec056..d2868da0 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -121,7 +121,7 @@ program.command('assign ') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .requiredOption('--users ', 'Users to add/remove on role', nonEmptyStringParser('user names must not be empty')) + .requiredOption('--users ', 'Users to add/remove on role', nonEmptyStringParser({ message: 'user names must not be empty', variadic: true })) .option('--delete', 'Unassign users from role') .action(withCompatibilityCheck((role, options) => { try { diff --git a/src/parsers.js b/src/parsers.js index 5d151bd6..d2720195 100644 --- a/src/parsers.js +++ b/src/parsers.js @@ -17,14 +17,21 @@ const _ = require('lodash'); const program = require('./commander'); -function nonEmptyStringParser(message = 'empty string argument') { - return function parseNonEmptyString(arg) { - if (_.isEmpty(arg)) { +function nonEmptyStringParser(opts) { + const { message = 'empty string argument', variadic = false } = opts; + return function parseNonEmptyString(value, oldValue) { + if (_.isEmpty(value)) { const error = `error: ${message}`; console.error(error); program._exit(1, 'cortex.invalidStringArgument', error); } - return arg; + if (variadic) { + if (!Array.isArray(oldValue)) { + return [value]; + } + return oldValue.concat(value); + } + return value; }; } From 7d6a2f55e2338e78a22cd04c0e7ae377bc19c21b Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Mon, 3 May 2021 17:27:45 -0500 Subject: [PATCH 258/864] Fixing docker-login command to work with fabric endpoints (#321) * Fixing docker-login command to work with fabric endpoints: - currently does a bit of string replace hackery to figure out the private-registry url, this can be fixed once the new info endpoint is available - default ttl of token created for docker login is set to 14d but can be overridden (for long lived kube secrets.. not really reliable though if the JWK changes) * add default for ttl option * add ttl option for `cortex configure token` to override default --- bin/cortex-configure.js | 9 +++------ bin/cortex-docker.js | 1 + package-lock.json | 19 +++++++++++++++++++ package.json | 3 ++- src/commands/configure.js | 3 ++- src/commands/docker.js | 18 ++++++++++++------ 6 files changed, 39 insertions(+), 14 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 32c840e9..ced78d18 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -47,13 +47,10 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action(() => { + .option('--ttl [time]', 'The amount of time for this login to remain active (ex. "1d")', "1d") + .action((options) => { try { - new GetAccessToken(program).execute({ - profile: program.profile, - project: program.project, - color: program.color, - }); + new GetAccessToken(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index bff484c5..17f7547b 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -35,6 +35,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--ttl [time]', 'The amount of time for this login to remain active (ex. "14d")', "14d") .action(withCompatibilityCheck((options) => { try { new DockerLoginCommand(program).execute(options); diff --git a/package-lock.json b/package-lock.json index ff58fa8e..9f479b1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4501,6 +4501,11 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -4635,6 +4640,11 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, "resolve": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", @@ -5872,6 +5882,15 @@ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, + "url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", diff --git a/package.json b/package.json index 06ea9751..8d1a97aa 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,8 @@ "plop": "2.7.4", "semver": "7.1.3", "tty-table": "4.1.1", - "url-join": "4.0.1" + "url-join": "4.0.1", + "url-parse": "1.5.1" }, "devDependencies": { "chai": "4.2.0", diff --git a/src/commands/configure.js b/src/commands/configure.js index 99de4095..b6d337cb 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -162,8 +162,9 @@ module.exports.GetAccessToken = class { execute(options) { const profile = loadProfile(options.profile); + const ttl = options.ttl || '1d'; debug('%s.getAccesToken', profile.name); - const jwt = generateJwt(profile, '1d'); + const jwt = generateJwt(profile, ttl); return printSuccess(jwt, options); } }; diff --git a/src/commands/docker.js b/src/commands/docker.js index f2ae744a..b4ca41dd 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -15,10 +15,13 @@ */ const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); +const URL = require('url-parse'); const { printSuccess, printError } = require('./utils'); -const Actions = require('../client/actions'); const { callMe } = require('../commands/utils'); +const { + generateJwt, + loadProfile, +} = require('../config'); module.exports.DockerLoginCommand = class { constructor(program) { @@ -27,12 +30,15 @@ module.exports.DockerLoginCommand = class { async execute(options) { const profile = loadProfile(options.profile); - debug('%s.executeDockerLogin()', profile.name); + const ttl = options.ttl || '14d'; - const action = new Actions(profile.url); - const registryUrl = await action._cortexRegistryUrl(options.project || profile.project, profile.token); try { - await callMe(`docker login -u cli --password ${profile.token} ${registryUrl}`); + // TODO fetch this from new endpoint or maybe store this in the profile?? + const registryUrl = (new URL(profile.url)).hostname.replace("api", "private-registry"); + const jwt = generateJwt(profile, ttl); + const command = `docker login -u cli --password ${jwt} ${registryUrl}`; + debug('%s.executeDockerLogin(%s)', profile.name, command); + await callMe(command); printSuccess(JSON.stringify('Login Succeeded', null, 2), options); } catch (err) { printError(`Failed to docker login: ${err.message || err}`, options); From 73cc161728a6b143301eeea719fed769bd2eb18a Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 4 May 2021 19:50:07 +0530 Subject: [PATCH 259/864] Fix for FAB-1753 --- src/commands/assets/templates/skill/job/skill.yaml.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/job/skill.yaml.hbs b/src/commands/assets/templates/skill/job/skill.yaml.hbs index 89dd3041..317f09e0 100644 --- a/src/commands/assets/templates/skill/job/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/job/skill.yaml.hbs @@ -14,7 +14,7 @@ inputs: all: action : {{dashCase name}} runtime: cortex/jobs - output: response + output: result outputs: - name: result From b0bf2facf24b5d10f370a505f6032eec8b10cd56 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 4 May 2021 19:57:47 +0530 Subject: [PATCH 260/864] npm test fixes --- bin/cortex-configure.js | 2 +- bin/cortex-docker.js | 2 +- src/commands/docker.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index ced78d18..27d25ccd 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -47,7 +47,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--ttl [time]', 'The amount of time for this login to remain active (ex. "1d")', "1d") + .option('--ttl [time]', 'The amount of time for this login to remain active (ex. "1d")', '1d') .action((options) => { try { new GetAccessToken(program).execute(options); diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 17f7547b..70cf7040 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -35,7 +35,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--ttl [time]', 'The amount of time for this login to remain active (ex. "14d")', "14d") + .option('--ttl [time]', 'The amount of time for this login to remain active (ex. "14d")', '14d') .action(withCompatibilityCheck((options) => { try { new DockerLoginCommand(program).execute(options); diff --git a/src/commands/docker.js b/src/commands/docker.js index b4ca41dd..e535f156 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -34,7 +34,7 @@ module.exports.DockerLoginCommand = class { try { // TODO fetch this from new endpoint or maybe store this in the profile?? - const registryUrl = (new URL(profile.url)).hostname.replace("api", "private-registry"); + const registryUrl = (new URL(profile.url)).hostname.replace('api', 'private-registry'); const jwt = generateJwt(profile, ttl); const command = `docker login -u cli --password ${jwt} ${registryUrl}`; debug('%s.executeDockerLogin(%s)', profile.name, command); From 2f31aba026c8c2f89186ecd54d19797d5a2cb32b Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Fri, 7 May 2021 15:30:03 -0500 Subject: [PATCH 261/864] bump vulnerabilities in cortex-cli and build upgrade to node 12.22.0 (#323) * bump vulnerabilities in cortex-cli and build upgrade to node 12.22.0 * fixing dockerfile base image and adding audit-ci to run as part of the build --- Dockerfile.c12e-ci.cortex-cli | 2 +- c12e-ci.yml | 2 +- package-lock.json | 155 +++++++++++++++++++++++++++------- package.json | 5 +- 4 files changed, 128 insertions(+), 36 deletions(-) diff --git a/Dockerfile.c12e-ci.cortex-cli b/Dockerfile.c12e-ci.cortex-cli index 0a899cc0..faa65b8f 100644 --- a/Dockerfile.c12e-ci.cortex-cli +++ b/Dockerfile.c12e-ci.cortex-cli @@ -1,4 +1,4 @@ -FROM c12e/nodejs:8.9.4 +FROM c12e/nodejs:dev-12.22.0 COPY . /from_ci_cd_build diff --git a/c12e-ci.yml b/c12e-ci.yml index ada4e3ee..05cc4fcf 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: c12e/nodejs:dev-12.18.3 + image: c12e/nodejs:dev-12.22.0 command: "./build.sh CI" diff --git a/package-lock.json b/package-lock.json index 9f479b1f..72616e84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -285,6 +285,16 @@ "@types/node": "*" } }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", @@ -503,6 +513,20 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "audit-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-3.0.0.tgz", + "integrity": "sha512-VK2C2lY+I3I78fKgYtYxOdhl57DOINDqgx2IYwFpLydYxmwIf76XSU+bHyk2l/Ab7Nbx5QhA8Z11jk9phf/ShA==", + "dev": true, + "requires": { + "JSONStream": "^1.3.5", + "cross-spawn": "^7.0.2", + "event-stream": "4.0.1", + "readline-transform": "1.0.0", + "semver": "^7.0.0", + "yargs": "^15.0.0" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -1006,30 +1030,30 @@ } }, "csv": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz", - "integrity": "sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", + "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", "requires": { - "csv-generate": "^3.2.4", - "csv-parse": "^4.8.8", - "csv-stringify": "^5.3.6", - "stream-transform": "^2.0.1" + "csv-generate": "^3.4.0", + "csv-parse": "^4.15.3", + "csv-stringify": "^5.6.2", + "stream-transform": "^2.1.0" } }, "csv-generate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.3.0.tgz", - "integrity": "sha512-EXSru4QwEWKwM7wwsJbhrZC+mHEJrhQFoXlohHs80CAU8Qhlv9gaw1sjzNiC3Hr3oUx5skDmEiAlz+tnKWV0RA==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", + "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" }, "csv-parse": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.14.1.tgz", - "integrity": "sha512-4wmcO7QbWtDAncGFaBwlWFPhEN4Akr64IbM4zvDwEOFekI8blLc04Nw7XjQjtSNy+3AUAgBgtUa9nWo5Cq89Xg==" + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", + "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" }, "csv-stringify": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.5.3.tgz", - "integrity": "sha512-JKG8vIHpWPzdilp2SAmvjmAiIhD+XGKGdhZBGi8QIECgJAsFr7k5CmJIW2QkSxBBsctvmojM25s+UINzQ5NLTg==" + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", + "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" }, "debug": { "version": "4.1.1", @@ -1215,6 +1239,12 @@ "no-case": "^2.2.0" } }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -1659,6 +1689,21 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "event-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" + } + }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -2032,6 +2077,12 @@ "map-cache": "^0.2.2" } }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -2236,9 +2287,9 @@ "dev": true }, "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "requires": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -2963,9 +3014,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.get": { "version": "4.4.2", @@ -3105,6 +3156,12 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -3350,9 +3407,9 @@ } }, "mixme": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.4.0.tgz", - "integrity": "sha512-B4Sm1CDC5+ov5AYxSkyeT5HLtiDgNOLKwFlq34wr8E2O3zRdTvQiLzo599Jt9cir6VJrSenOlgvdooVYCQJIYw==" + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", + "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" }, "mkdirp": { "version": "1.0.4", @@ -4326,6 +4383,15 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "~2.3" + } + }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", @@ -4592,6 +4658,12 @@ "picomatch": "^2.0.4" } }, + "readline-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", + "dev": true + }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -5457,6 +5529,15 @@ "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2" + } + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -5497,12 +5578,22 @@ } } }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, "stream-transform": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.3.tgz", - "integrity": "sha512-HgNXs2rNG9pKC2gK4owtMPMKfto81S/TWZw0Ybsx6Wp23klnN0YctnMXYe0PmzzhB/zIBEB+0Urf+PMorE4d/A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", + "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", "requires": { - "mixme": "^0.4.0" + "mixme": "^0.5.0" } }, "string-width": { @@ -5777,9 +5868,9 @@ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, "uglify-js": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz", - "integrity": "sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==", + "version": "3.13.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz", + "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", "optional": true }, "unc-path-regex": { diff --git a/package.json b/package.json index 8d1a97aa..38ec9ad5 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "./bin/cortex.js", "scripts": { "preinstall": "npx check-node-version -p --package", - "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js", + "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", "test": "CORTEX_CONFIG_DIR=./test/cortex mocha --recursive" }, "engines": { @@ -48,7 +48,7 @@ "jmespath": "0.15.0", "jose": "2.0.5", "js-yaml": "3.13.1", - "lodash": "4.17.20", + "lodash": "4.17.21", "moment": "2.24.0", "npm-registry-fetch": "9.0.0", "os-name": "4.0.0", @@ -59,6 +59,7 @@ "url-parse": "1.5.1" }, "devDependencies": { + "audit-ci": "3.0.0", "chai": "4.2.0", "chai-as-promised": "7.1.1", "eslint": "5.16.0", From 314e8165c338451dec1c28ed86e3e507557cf61e Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 6 May 2021 08:48:41 -0500 Subject: [PATCH 262/864] Make columns consistent Make dates human readable, add author Add type list --- bin/cortex-actions.js | 2 +- package-lock.json | 15 ++++++++++----- package.json | 3 ++- src/commands/actions.js | 11 +++++++---- src/commands/agents.js | 11 ++++------- src/commands/skills.js | 11 ++++------- src/commands/types.js | 11 ++++------- src/commands/utils.js | 19 ++++++++++++++----- test/uploadDirectory.js | 6 +++--- 9 files changed, 49 insertions(+), 40 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index acd15548..229b6d18 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -26,7 +26,7 @@ const { DescribeActionCommand, DeleteActionCommand, DeployActionCommand, - // TODO readd logs/task calls + // TODO re-add logs/task calls // GetLogsCommand, // JobTaskListActionCommand, // TaskCancelActionCommand, diff --git a/package-lock.json b/package-lock.json index 72616e84..85fc6139 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5745,6 +5745,11 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "timeago.js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/timeago.js/-/timeago.js-4.0.2.tgz", + "integrity": "sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==" + }, "title-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", @@ -5810,17 +5815,17 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tty-table": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.1.tgz", - "integrity": "sha512-iCxPm5DCPgqs3ELrUDEe+JsOcQOSPZSe+dwM5oIQZk5OfyzQWPVQwkHjyFp4aoDHC0HTM47jd0TkQZUBpxnN0Q==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.3.tgz", + "integrity": "sha512-Aireaxah5bTJkkJ7b2RI8tMZxogscWP4UCgi5dKuOqL8BWPjnnOebC7F+oFYWTLKUaiJm8h+CvsigBaaCtxqGw==", "requires": { "chalk": "^3.0.0", - "csv": "^5.3.1", + "csv": "^5.3.2", "kleur": "^3.0.3", "smartwrap": "^2.0.1", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1", - "yargs": "^15.1.0" + "yargs": "^15.3.1" }, "dependencies": { "ansi-regex": { diff --git a/package.json b/package.json index 38ec9ad5..bffd998b 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,8 @@ "os-name": "4.0.0", "plop": "2.7.4", "semver": "7.1.3", - "tty-table": "4.1.1", + "timeago.js": "4.0.2", + "tty-table": "4.1.3", "url-join": "4.0.1", "url-parse": "1.5.1" }, diff --git a/src/commands/actions.js b/src/commands/actions.js index 357e01a8..310c56ce 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -16,8 +16,10 @@ const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Actions = require('../client/actions'); + const { printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); @@ -42,12 +44,13 @@ module.exports.ListActionsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Name', field: 'name', width: 50 }, + { column: 'Name', field: 'name', width: 30 }, + { column: 'Type', field: 'type', width: 8 }, { column: 'Image', field: 'image', width: 50 }, - { column: 'Created On', field: 'createdAt', width: 26 }, + { column: 'Updated', field: 'updatedAt', width: 26 }, + { column: 'Author', field: 'createdBy', width: 26 }, ]; - - printTable(tableSpec, result); + printTable(tableSpec, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list actions: ${response.status} ${response.message}`, options); diff --git a/src/commands/agents.js b/src/commands/agents.js index d63cf0a6..8181f5d9 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -17,9 +17,12 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const _ = require('lodash'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); +const { LISTTABLEFORMAT } = require('./utils'); + const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); @@ -79,13 +82,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 50 }, - { column: 'Title', field: 'title', width: 25 }, - { column: 'Description', field: 'description', width: 50 }, - { column: 'Created On', field: 'createdAt', width: 26 }, - ]; - printTable(tableSpec, result); + printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list agents: ${response.status} ${response.message}`, options); diff --git a/src/commands/skills.js b/src/commands/skills.js index 754612cc..5b9ab0a2 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -16,9 +16,12 @@ const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agent = require('../client/agents'); +const { LISTTABLEFORMAT } = require('./utils'); + const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); @@ -75,13 +78,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 }, - ]; - - printTable(tableSpec, result); + printTable(LISTTABLEFORMAT, _.sortBy(result, ['name']), o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list skills: ${response.status} ${response.message}`, options); diff --git a/src/commands/types.js b/src/commands/types.js index 581696cb..ce5b56a7 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -16,8 +16,11 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); +const { LISTTABLEFORMAT } = require('./utils'); + const { printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); @@ -69,13 +72,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 }, - ]; - - printTable(tableSpec, result); + printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list types: ${response.status} ${response.message}`, options); diff --git a/src/commands/utils.js b/src/commands/utils.js index 69efdbec..d48cacbf 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -171,16 +171,16 @@ module.exports.getSourceFiles = (source, cb) => { }; function round(value, precision) { - const multiplier = Math.pow(10, precision || 0); + const multiplier = 10 ** (precision || 0); return Math.floor(value * multiplier) / multiplier; } module.exports.humanReadableFileSize = (sizeInBytes) => { const ranges = { - K: Math.pow(10, 3), - M: Math.pow(10, 6), - G: Math.pow(10, 9), - T: Math.pow(10, 12), + K: 10 ** 3, + M: 10 ** 6, + G: 10 ** 9, + T: 10 ** 12, }; if (sizeInBytes < ranges.K) { return `${sizeInBytes}B`; @@ -307,3 +307,12 @@ const pkg = findPackageJson(__dirname).next().value; module.exports.getUserAgent = function getUserAgent() { return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; }; + +module.exports.LISTTABLEFORMAT = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 40 }, + { column: 'Description', field: 'description', width: 50 }, + { column: 'Modified', field: 'updatedAt', width: 26 }, + { column: 'Author', field: 'createdBy', width: 25 }, + +]; diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index 106ee0a9..c4e50868 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -75,7 +75,7 @@ describe('Human Readable File Size', () => { }); it('1MB less some', (done) => { - const sizeInBytes = Math.pow(10, 3) - 1; + const sizeInBytes = (10 ** 3) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999B'); done(); @@ -89,14 +89,14 @@ describe('Human Readable File Size', () => { }); it('1k less', (done) => { - const sizeInBytes = Math.pow(10, 6) - 1; + const sizeInBytes = (10 ** 6) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.9K'); done(); }); it('several GB', (done) => { - const sizeInBytes = 32 * Math.pow(10, 9) + 345 * Math.pow(10, 6); + const sizeInBytes = 32 * (10 ** 9) + 345 * (10 ** 6); const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('32.3G'); done(); From 09c29f99e4741b3cb9f81cda8e27eb5ae82a13d4 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 7 May 2021 17:18:48 -0500 Subject: [PATCH 263/864] typo in table heading --- src/commands/actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index 310c56ce..7fa9a95f 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -47,7 +47,7 @@ module.exports.ListActionsCommand = class { { column: 'Name', field: 'name', width: 30 }, { column: 'Type', field: 'type', width: 8 }, { column: 'Image', field: 'image', width: 50 }, - { column: 'Updated', field: 'updatedAt', width: 26 }, + { column: 'Modified', field: 'updatedAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 26 }, ]; printTable(tableSpec, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); From 45d1ec2c51cadec2467fb56d2523a9ae5deae2a9 Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Wed, 12 May 2021 13:41:05 -0500 Subject: [PATCH 264/864] Cm 563 (#326) * CM-563 message changes * CM-563 message changes --- bin/cortex-configure.js | 2 +- bin/cortex-docker.js | 2 +- bin/cortex-roles.js | 2 +- bin/cortex-secrets.js | 2 +- src/commands/assets/templates/skill/daemon/README.md | 4 ++-- .../assets/templates/skill/external-api/README.md | 4 ++-- src/commands/assets/templates/skill/job/README.md | 4 ++-- src/commands/plopfile.js | 2 +- src/commands/skills.js | 12 ++++++------ 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 27d25ccd..70a8466e 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -47,7 +47,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--ttl [time]', 'The amount of time for this login to remain active (ex. "1d")', '1d') + .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .action((options) => { try { new GetAccessToken(program).execute(options); diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 70cf7040..0be53f5c 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -35,7 +35,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--ttl [time]', 'The amount of time for this login to remain active (ex. "14d")', '14d') + .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '14d') .action(withCompatibilityCheck((options) => { try { new DockerLoginCommand(program).execute(options); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index d2868da0..25929434 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -121,7 +121,7 @@ program.command('assign ') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .requiredOption('--users ', 'Users to add/remove on role', nonEmptyStringParser({ message: 'user names must not be empty', variadic: true })) + .requiredOption('--users ', 'Users to add/remove to/from a role', nonEmptyStringParser({ message: 'user names must not be empty', variadic: true })) .option('--delete', 'Unassign users from role') .action(withCompatibilityCheck((role, options) => { try { diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index ff29d246..0029d611 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -67,7 +67,7 @@ program // Write Secure Value program .command('save [value]') - .description('Save or overwrite a secure value. By default, values are stored as strings but can also be saved as JSON or YAML values.') + .description('Save or overwrite a secure value. By default values are stored as strings but can also be saved as JSON or YAML.') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--data [data]', 'JSON value to save') diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index 58b03b83..596049bf 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -14,8 +14,8 @@ Note: #### Steps -A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy skill. -`make all` will build & push Docker image, deploy Cortex Action and Skill, and then invoke skill to test. +A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy Skill. +`make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. diff --git a/src/commands/assets/templates/skill/external-api/README.md b/src/commands/assets/templates/skill/external-api/README.md index 3994e8dd..179daddb 100644 --- a/src/commands/assets/templates/skill/external-api/README.md +++ b/src/commands/assets/templates/skill/external-api/README.md @@ -5,8 +5,8 @@ This skill type allows users to wrap an external REST API as a Cortex Fabric Ski 1. Update `skill.yaml` with `HTTP Method`, `URL`, `Path` and `headers` per the targeted external API 2. Deploy the Skill `cortex skills save -y skill.yaml --project ` -A Makefile is provided to do these steps. Set environment variable `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy skill. -`make all` will deploy Cortex Skill, and then invoke skill to test. +A Makefile is provided to do these steps. Set environment variable `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy Skill. +`make all` will deploy Cortex Skill, and then invoke Skill to test. The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index cf6d62f9..4059f43e 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -10,8 +10,8 @@ Cortex skill that runs a background job. #### Steps -A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy skill. -`make all` will build & push Docker image, deploy Cortex Action and Skill, and then invoke skill to test. +A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy Skill. +`make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index e9517252..99d4800b 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -7,7 +7,7 @@ module.exports = (plop) => { { type: 'input', name: 'name', - message: 'Skill Name? (Must be alphanumeric)', + message: 'Skill Name? (Skill name must be alphanumeric, beginning with a letter. Hyphen and underscore allowed internally.)', validate: value => /^[0-9a-zA-Z][0-9a-zA-Z_\- ]{0,18}[0-9a-zA-Z]$/.test(value), }, { diff --git a/src/commands/skills.js b/src/commands/skills.js index 5b9ab0a2..a2e78677 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -125,13 +125,13 @@ module.exports.UndeploySkillCommand = class UndeploySkillCommand { const catalog = new Catalog(profile.url); catalog.unDeploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { if (response.success) { - printSuccess(`Undeploy skill ${skillName}: ${response.message}`, options); + printSuccess(`Undeploy Skill ${skillName}: ${response.message}`, options); } else { - printError(`Failed to Undeploy skill ${skillName}: ${response.message}`, options); + printError(`Failed to Undeploy Skill ${skillName}: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to Undeploy skill ${skillName}: ${err.status} ${err.message}`, options); + printError(`Failed to Undeploy Skill ${skillName}: ${err.status} ${err.message}`, options); }); } }; @@ -148,13 +148,13 @@ module.exports.DeploySkillCommand = class DeploySkillCommand { const catalog = new Catalog(profile.url); catalog.deploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { if (response.success) { - printSuccess(`Deployed skill ${skillName}: ${response.message}`, options); + printSuccess(`Deployed Skill ${skillName}: ${response.message}`, options); } else { - printError(`Failed to deploy skill ${skillName}: ${response.message}`, options); + printError(`Failed to deploy Skill ${skillName}: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to deploy skill ${skillName}: ${err.status} ${err.message}`, options); + printError(`Failed to deploy Skill ${skillName}: ${err.status} ${err.message}`, options); }); } }; From a265fc6c738afc581263e00a102d162f984f400f Mon Sep 17 00:00:00 2001 From: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Date: Thu, 13 May 2021 11:01:09 -0500 Subject: [PATCH 265/864] Release 2.0.3 (#325) * action deploy return non-zero exit code * FAB-1253 adding Makefile and assets to deploy and test skills generated * re-add debug * FAB-1253 adding fabric.yaml config for deployment * FAB-1148: update list-activations command to use correct endpoint for v6 and renamed snapshotId param to agentName (#305) * Bump ssri from 8.0.0 to 8.0.1 Bumps [ssri](https://github.com/npm/ssri) from 8.0.0 to 8.0.1. - [Release notes](https://github.com/npm/ssri/releases) - [Changelog](https://github.com/npm/ssri/blob/latest/CHANGELOG.md) - [Commits](https://github.com/npm/ssri/compare/v8.0.0...v8.0.1) Signed-off-by: dependabot[bot] * liniting and name validation * linting and validation * makefile fixes * change artifactory publish url * comment out artifactory publish * Added verbose flag to get-activation * Fix vulns * typo was not resolving to correct base URL * [FAB-1508] Fix relative file paths when using cwd with content upload --recursive * Added version option for agents skills * When using the --users option of roles assign command ensure there are no empty strings * [FAB-1509] Remove --secure option from content upload/download commands * FAB-1587 Fix debug statements * fix npm test * Bump jose from 2.0.2 to 2.0.5 Bumps [jose](https://github.com/panva/jose) from 2.0.2 to 2.0.5. - [Release notes](https://github.com/panva/jose/releases) - [Changelog](https://github.com/panva/jose/blob/v2.0.5/CHANGELOG.md) - [Commits](https://github.com/panva/jose/compare/v2.0.2...v2.0.5) Signed-off-by: dependabot[bot] * FAB-1354: rework agents list-activations command to allow for filtering options by state or time (#314) * FAB-1354: rework agents list-activations command to allow for filtering options by state or time * fix list-activations command to display results correctly without --json option * linting * PR comments * Add checkProject to all project scoped apis, rename variables to secrets linting vulns bump * Add skills deploy/undeploy cli commands * review comments * Secrets save wasnot handling errors consistently * Fix message deploy/undeploy . * [FAB-1689] Previous implementation of empty string parser did not handle variadic params * Fixing docker-login command to work with fabric endpoints (#321) * Fixing docker-login command to work with fabric endpoints: - currently does a bit of string replace hackery to figure out the private-registry url, this can be fixed once the new info endpoint is available - default ttl of token created for docker login is set to 14d but can be overridden (for long lived kube secrets.. not really reliable though if the JWK changes) * add default for ttl option * add ttl option for `cortex configure token` to override default * Fix for FAB-1753 * npm test fixes * bump vulnerabilities in cortex-cli and build upgrade to node 12.22.0 (#323) * bump vulnerabilities in cortex-cli and build upgrade to node 12.22.0 * fixing dockerfile base image and adding audit-ci to run as part of the build * Make columns consistent Make dates human readable, add author Add type list * typo in table heading * Cm 563 (#326) * CM-563 message changes * CM-563 message changes Co-authored-by: Johan Gielstra Co-authored-by: ljha Co-authored-by: Colton Lee Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: yreddy-CS Co-authored-by: David Aldridge --- Dockerfile.c12e-ci.cortex-cli | 2 +- bin/cortex-actions.js | 2 +- bin/cortex-agents.js | 16 +- bin/cortex-configure.js | 9 +- bin/cortex-content.js | 2 - bin/cortex-docker.js | 1 + bin/cortex-roles.js | 3 +- bin/cortex-secrets.js | 27 +- bin/cortex-skills.js | 75 ++-- build.sh | 2 +- c12e-ci.yml | 2 +- package-lock.json | 327 ++++++++++++------ package.json | 18 +- src/client/actions.js | 9 +- src/client/agents.js | 47 ++- src/client/catalog.js | 49 ++- src/client/connections.js | 45 +-- src/client/content.js | 29 +- src/client/experiments.js | 11 +- src/client/roles.js | 4 +- src/client/{variables.js => secrets.js} | 30 +- src/client/users.js | 2 +- src/commands/actions.js | 19 +- src/commands/agents.js | 42 ++- .../assets/templates/skill/daemon/Makefile | 30 ++ .../assets/templates/skill/daemon/README.md | 4 + .../templates/skill/daemon/action.json.hbs | 8 + .../assets/templates/skill/daemon/fabric.yaml | 7 + .../templates/skill/daemon/test/payload.json | 3 + .../templates/skill/external-api/Makefile | 17 + .../templates/skill/external-api/README.md | 3 + .../templates/skill/external-api/fabric.yaml | 5 + .../skill/external-api/test/payload.json | 3 + .../assets/templates/skill/job/Makefile | 30 ++ .../assets/templates/skill/job/README.md | 6 +- .../templates/skill/job/action.json.hbs | 7 + .../assets/templates/skill/job/fabric.yaml | 7 + .../assets/templates/skill/job/skill.yaml.hbs | 2 +- .../templates/skill/job/test/payload.json | 3 + src/commands/configure.js | 3 +- src/commands/connections.js | 124 ------- src/commands/content.js | 65 +--- src/commands/docker.js | 18 +- src/commands/plopfile.js | 6 +- src/commands/{variables.js => secrets.js} | 50 +-- src/commands/skills.js | 58 +++- src/commands/types.js | 11 +- src/commands/utils.js | 21 +- src/parsers.js | 40 +++ test/uploadDirectory.js | 6 +- 50 files changed, 791 insertions(+), 519 deletions(-) rename src/client/{variables.js => secrets.js} (64%) create mode 100644 src/commands/assets/templates/skill/daemon/Makefile create mode 100644 src/commands/assets/templates/skill/daemon/action.json.hbs create mode 100644 src/commands/assets/templates/skill/daemon/fabric.yaml create mode 100644 src/commands/assets/templates/skill/daemon/test/payload.json create mode 100644 src/commands/assets/templates/skill/external-api/Makefile create mode 100644 src/commands/assets/templates/skill/external-api/fabric.yaml create mode 100644 src/commands/assets/templates/skill/external-api/test/payload.json create mode 100644 src/commands/assets/templates/skill/job/Makefile create mode 100644 src/commands/assets/templates/skill/job/action.json.hbs create mode 100644 src/commands/assets/templates/skill/job/fabric.yaml create mode 100644 src/commands/assets/templates/skill/job/test/payload.json rename src/commands/{variables.js => secrets.js} (62%) create mode 100644 src/parsers.js diff --git a/Dockerfile.c12e-ci.cortex-cli b/Dockerfile.c12e-ci.cortex-cli index 0a899cc0..faa65b8f 100644 --- a/Dockerfile.c12e-ci.cortex-cli +++ b/Dockerfile.c12e-ci.cortex-cli @@ -1,4 +1,4 @@ -FROM c12e/nodejs:8.9.4 +FROM c12e/nodejs:dev-12.22.0 COPY . /from_ci_cd_build diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index acd15548..229b6d18 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -26,7 +26,7 @@ const { DescribeActionCommand, DeleteActionCommand, DeployActionCommand, - // TODO readd logs/task calls + // TODO re-add logs/task calls // GetLogsCommand, // JobTaskListActionCommand, // TaskCancelActionCommand, diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index e277053e..7d093451 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -83,6 +83,7 @@ program .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--versions', 'To get list of versions of an agent') + .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((agentName, options) => { try { new DescribeAgentCommand(program).execute(agentName, options); @@ -117,6 +118,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--verbose', 'Get debugging info in activation response') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { @@ -126,18 +128,24 @@ program } })); +// List activations program - .command('list-activations ') - .description('List agent activations') + .command('list-activations ') + .description('List activations for an agent') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((snapshotId, options) => { + .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') + .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') + .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') + .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') + .option('--status [status]', 'Filters activations by status [complete|error].') + .action(withCompatibilityCheck((agentName, options) => { try { - new ListActivationsCommand(program).execute(snapshotId, options); + new ListActivationsCommand(program).execute(agentName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 32c840e9..70a8466e 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -47,13 +47,10 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action(() => { + .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') + .action((options) => { try { - new GetAccessToken(program).execute({ - profile: program.profile, - project: program.project, - color: program.color, - }); + new GetAccessToken(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 9cc2489d..a43cab2b 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -61,7 +61,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--secure', 'Uploads the content securely to the Cortex Vault. \n\t\t\t\tUse this option for keytab files or content that contains sensitive information that is required during Runtime. \n\t\t\t\tTake note of the contentKey you give to this content for future reference.') .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) .action(withCompatibilityCheck((contentKey, filePath, options) => { @@ -97,7 +96,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--secure', 'Downloads the content securely from the Cortex Vault.') .action(withCompatibilityCheck((contentKey, options) => { try { new DownloadContent(program).execute(contentKey, options); diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index bff484c5..0be53f5c 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -35,6 +35,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '14d') .action(withCompatibilityCheck((options) => { try { new DockerLoginCommand(program).execute(options); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 5f0d4fbe..25929434 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -19,6 +19,7 @@ const chalk = require('chalk'); const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); +const { nonEmptyStringParser } = require('../src/parsers'); const { ExternalGroupAssignCommand, @@ -120,7 +121,7 @@ program.command('assign ') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .requiredOption('--users ', 'Users to add/remove on role') + .requiredOption('--users ', 'Users to add/remove to/from a role', nonEmptyStringParser({ message: 'user names must not be empty', variadic: true })) .option('--delete', 'Unassign users from role') .action(withCompatibilityCheck((role, options) => { try { diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 8f2443ad..0029d611 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -22,17 +22,17 @@ const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - ListVariablesCommand, - ReadVariableCommand, - WriteVariableCommand, -} = require('../src/commands/variables'); + ListSecretsCommand, + ReadSecretsCommand, + WriteSecretsCommand, +} = require('../src/commands/secrets'); program.description('Work with Cortex Secrets'); -// List Secure Variable Keys +// List Secure Keys program .command('list') - .description('List secure variable keys') + .description('List secure keys') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--json', 'Output results using JSON') @@ -40,16 +40,17 @@ program .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((options) => { try { - new ListVariablesCommand(program).execute(options); + new ListSecretsCommand(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } })); -// Read Secure Variable Value +// Read Secure Value program .command('describe ') - .description('Retrieve the value stored for the given variable key.') + .alias('get') + .description('Retrieve the value stored for the given key.') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--json', 'Output results using JSON') @@ -57,16 +58,16 @@ program .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((keyName, options) => { try { - new ReadVariableCommand(program).execute(keyName, options); + new ReadSecretsCommand(program).execute(keyName, options); } catch (err) { console.error(chalk.red(err.message)); } })); -// Write Secure Variable Value +// Write Secure Value program .command('save [value]') - .description('Save or overwrite a secure variable value. By default, values are stored as strings but can also be saved as JSON or YAML values.') + .description('Save or overwrite a secure value. By default values are stored as strings but can also be saved as JSON or YAML.') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--data [data]', 'JSON value to save') @@ -75,7 +76,7 @@ program .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((keyName, value, options) => { try { - new WriteVariableCommand(program).execute(keyName, value, options); + new WriteSecretsCommand(program).execute(keyName, value, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 94faa2a6..0efbb91b 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -26,22 +26,59 @@ const { ListSkillsCommand, DescribeSkillCommand, InvokeSkillCommand, + DeploySkillCommand, + UndeploySkillCommand, } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); -// Save Skill +// Deploy Skill program - .command('save ') - .description('Save a skill definition') + .command('deploy ') + .description('Deploy the skill resource to the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((skillName, options) => { + try { + new DeploySkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Skill +program + .command('describe ') + .alias('get') + .description('Describe skill') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for skill definition format') - .action(withCompatibilityCheck((skillDefinition, options) => { + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((skillName, options) => { try { - new SaveSkillCommand(program).execute(skillDefinition, options); + new DescribeSkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Invoke Skill +program + .command('invoke ') + .description('Invoke a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--params [params]', 'JSON params to send to the action') + .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .action(withCompatibilityCheck((skillName, inputName, options) => { + try { + new InvokeSkillCommand(program).execute(skillName, inputName, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -65,37 +102,33 @@ program } })); -// Describe Skill +// Save Skill program - .command('describe ') - .alias('get') - .description('Describe skill') + .command('save ') + .description('Save a skill definition') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((skillName, options) => { + .option('-y, --yaml', 'Use YAML for skill definition format') + .action(withCompatibilityCheck((skillDefinition, options) => { try { - new DescribeSkillCommand(program).execute(skillName, options); + new SaveSkillCommand(program).execute(skillDefinition, options); } catch (err) { console.error(chalk.red(err.message)); } })); -// Invoke Skill +// Undeploy Skill program - .command('invoke ') - .description('Invoke a skill') + .command('undeploy ') + .description('Undeploy the skill resource from the cluster') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--params [params]', 'JSON params to send to the action') - .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .action(withCompatibilityCheck((skillName, inputName, options) => { + .action(withCompatibilityCheck((skillName, options) => { try { - new InvokeSkillCommand(program).execute(skillName, inputName, options); + new UndeploySkillCommand(program).execute(skillName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/build.sh b/build.sh index 02831fed..fa6d5539 100755 --- a/build.sh +++ b/build.sh @@ -39,7 +39,7 @@ function docker_build(){ npm publish --registry=https://registry.npmjs.com/ elif [[ ${BRANCH} = "develop" ]]; then npm config set always-auth true - npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-local/ +# npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi } diff --git a/c12e-ci.yml b/c12e-ci.yml index ada4e3ee..05cc4fcf 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: c12e/nodejs:dev-12.18.3 + image: c12e/nodejs:dev-12.22.0 command: "./build.sh CI" diff --git a/package-lock.json b/package-lock.json index b1de2fa0..85fc6139 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.1", + "version": "2.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -163,11 +163,12 @@ "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==" }, "@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "requires": { - "mkdirp": "^1.0.4" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" } }, "@panva/asn1.js": { @@ -284,6 +285,16 @@ "@types/node": "*" } }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", @@ -305,9 +316,9 @@ } }, "agentkeepalive": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz", - "integrity": "sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -502,6 +513,20 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "audit-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-3.0.0.tgz", + "integrity": "sha512-VK2C2lY+I3I78fKgYtYxOdhl57DOINDqgx2IYwFpLydYxmwIf76XSU+bHyk2l/Ab7Nbx5QhA8Z11jk9phf/ShA==", + "dev": true, + "requires": { + "JSONStream": "^1.3.5", + "cross-spawn": "^7.0.2", + "event-stream": "4.0.1", + "readline-transform": "1.0.0", + "semver": "^7.0.0", + "yargs": "^15.0.0" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -626,9 +651,9 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz", + "integrity": "sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==", "requires": { "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", @@ -644,7 +669,7 @@ "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", - "ssri": "^8.0.0", + "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" } @@ -1005,30 +1030,30 @@ } }, "csv": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz", - "integrity": "sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", + "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", "requires": { - "csv-generate": "^3.2.4", - "csv-parse": "^4.8.8", - "csv-stringify": "^5.3.6", - "stream-transform": "^2.0.1" + "csv-generate": "^3.4.0", + "csv-parse": "^4.15.3", + "csv-stringify": "^5.6.2", + "stream-transform": "^2.1.0" } }, "csv-generate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.3.0.tgz", - "integrity": "sha512-EXSru4QwEWKwM7wwsJbhrZC+mHEJrhQFoXlohHs80CAU8Qhlv9gaw1sjzNiC3Hr3oUx5skDmEiAlz+tnKWV0RA==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", + "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" }, "csv-parse": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.14.1.tgz", - "integrity": "sha512-4wmcO7QbWtDAncGFaBwlWFPhEN4Akr64IbM4zvDwEOFekI8blLc04Nw7XjQjtSNy+3AUAgBgtUa9nWo5Cq89Xg==" + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", + "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" }, "csv-stringify": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.5.3.tgz", - "integrity": "sha512-JKG8vIHpWPzdilp2SAmvjmAiIhD+XGKGdhZBGi8QIECgJAsFr7k5CmJIW2QkSxBBsctvmojM25s+UINzQ5NLTg==" + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", + "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" }, "debug": { "version": "4.1.1", @@ -1214,6 +1239,12 @@ "no-case": "^2.2.0" } }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -1237,9 +1268,9 @@ } }, "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "error-ex": { "version": "1.3.2", @@ -1658,6 +1689,21 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "event-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" + } + }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -2031,6 +2077,12 @@ "map-cache": "^0.2.2" } }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -2235,9 +2287,9 @@ "dev": true }, "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "requires": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -2355,9 +2407,9 @@ } }, "hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "requires": { "lru-cache": "^6.0.0" } @@ -2843,9 +2895,9 @@ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "jose": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.2.tgz", - "integrity": "sha512-yD93lsiMA1go/qxSY/vXWBodmIZJIxeB7QhFi8z1yQ3KUwKENqI9UA8VCHlQ5h3x1zWuWZjoY87ByQzkQbIrQg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.5.tgz", + "integrity": "sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA==", "requires": { "@panva/asn1.js": "^1.0.0" } @@ -2962,9 +3014,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.get": { "version": "4.4.2", @@ -3070,23 +3122,23 @@ "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==" }, "make-fetch-happen": { - "version": "8.0.10", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", - "integrity": "sha512-jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==", + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", "requires": { - "agentkeepalive": "^4.1.0", - "cacache": "^15.0.0", - "http-cache-semantics": "^4.0.4", + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^6.0.0", "minipass": "^3.1.3", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.0", + "minipass-fetch": "^1.3.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "promise-retry": "^1.1.1", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", "socks-proxy-agent": "^5.0.0", "ssri": "^8.0.0" } @@ -3104,6 +3156,12 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -3277,9 +3335,9 @@ } }, "minipass-fetch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", - "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", + "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -3349,9 +3407,9 @@ } }, "mixme": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.4.0.tgz", - "integrity": "sha512-B4Sm1CDC5+ov5AYxSkyeT5HLtiDgNOLKwFlq34wr8E2O3zRdTvQiLzo599Jt9cir6VJrSenOlgvdooVYCQJIYw==" + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", + "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" }, "mkdirp": { "version": "1.0.4", @@ -3835,19 +3893,29 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, "npm-package-arg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz", - "integrity": "sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.2.tgz", + "integrity": "sha512-6Eem455JsSMJY6Kpd3EyWE+n5hC+g9bSyHr9K9U2zqZb7+02+hObQ2c0+8iDk/mNF+8r1MhY44WypKJAkySIYA==", "requires": { - "hosted-git-info": "^3.0.6", - "semver": "^7.0.0", + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } } }, "npm-registry-fetch": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.1.5.tgz", - "integrity": "sha512-yZPNoJK9clx1jhSXU54kU6Aj1SV2p7mXUs1W/6OjQvek3wb1RrjDCrt4iY1+VX9eBQvvSGEpzNmYkRUaTL8rqg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", + "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", "requires": { "@npmcli/ci-detect": "^1.0.0", "lru-cache": "^6.0.0", @@ -4315,6 +4383,15 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "~2.3" + } + }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", @@ -4461,12 +4538,12 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" + "err-code": "^2.0.2", + "retry": "^0.12.0" } }, "propagate": { @@ -4490,6 +4567,11 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -4576,6 +4658,12 @@ "picomatch": "^2.0.4" } }, + "readline-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", + "dev": true + }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -4624,6 +4712,11 @@ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, "resolve": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", @@ -4696,9 +4789,9 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, "reusify": { "version": "1.0.4", @@ -5364,9 +5457,9 @@ } }, "socks": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.0.tgz", - "integrity": "sha512-00OqQHp5SCbwm9ecOMJj9aQtMSjwi1uVuGQoxnpKCS50VKZcOZ8z11CTKypmR8sEy7nZimy/qXY7rYJYbRlXmA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", "requires": { "ip": "^1.1.5", "smart-buffer": "^4.1.0" @@ -5436,6 +5529,15 @@ "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2" + } + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -5450,9 +5552,9 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "requires": { "minipass": "^3.1.1" } @@ -5476,12 +5578,22 @@ } } }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, "stream-transform": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.3.tgz", - "integrity": "sha512-HgNXs2rNG9pKC2gK4owtMPMKfto81S/TWZw0Ybsx6Wp23klnN0YctnMXYe0PmzzhB/zIBEB+0Urf+PMorE4d/A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", + "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", "requires": { - "mixme": "^0.4.0" + "mixme": "^0.5.0" } }, "string-width": { @@ -5605,9 +5717,9 @@ } }, "tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -5633,6 +5745,11 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "timeago.js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/timeago.js/-/timeago.js-4.0.2.tgz", + "integrity": "sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==" + }, "title-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", @@ -5698,17 +5815,17 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tty-table": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.1.tgz", - "integrity": "sha512-iCxPm5DCPgqs3ELrUDEe+JsOcQOSPZSe+dwM5oIQZk5OfyzQWPVQwkHjyFp4aoDHC0HTM47jd0TkQZUBpxnN0Q==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.3.tgz", + "integrity": "sha512-Aireaxah5bTJkkJ7b2RI8tMZxogscWP4UCgi5dKuOqL8BWPjnnOebC7F+oFYWTLKUaiJm8h+CvsigBaaCtxqGw==", "requires": { "chalk": "^3.0.0", - "csv": "^5.3.1", + "csv": "^5.3.2", "kleur": "^3.0.3", "smartwrap": "^2.0.1", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1", - "yargs": "^15.1.0" + "yargs": "^15.3.1" }, "dependencies": { "ansi-regex": { @@ -5756,9 +5873,9 @@ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, "uglify-js": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz", - "integrity": "sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==", + "version": "3.13.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz", + "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", "optional": true }, "unc-path-regex": { @@ -5856,6 +5973,20 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, + "url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, + "url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -6033,9 +6164,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" }, "yallist": { "version": "4.0.0", diff --git a/package.json b/package.json index b78343f0..bffd998b 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "cortex-cli", - "version": "2.0.2", + "version": "2.0.3", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { "preinstall": "npx check-node-version -p --package", - "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js", + "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", "test": "CORTEX_CONFIG_DIR=./test/cortex mocha --recursive" }, "engines": { @@ -33,30 +33,34 @@ "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", - "form-data": "3.0.0", "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", "commander": "6.2.0", "debug": "4.1.1", "find-package-json": "1.2.0", + "form-data": "3.0.0", "glob": "7.1.6", "got": "11.7.0", "graphql": "15.4.0", "graphql-request": "3.3.0", "is-installed-globally": "0.3.1", "jmespath": "0.15.0", - "jose": "2.0.2", + "jose": "2.0.5", "js-yaml": "3.13.1", - "lodash": "4.17.20", + "lodash": "4.17.21", "moment": "2.24.0", - "npm-registry-fetch": "8.1.5", + "npm-registry-fetch": "9.0.0", "os-name": "4.0.0", "plop": "2.7.4", "semver": "7.1.3", - "tty-table": "4.1.1" + "timeago.js": "4.0.2", + "tty-table": "4.1.3", + "url-join": "4.0.1", + "url-parse": "1.5.1" }, "devDependencies": { + "audit-ci": "3.0.0", "chai": "4.2.0", "chai-as-promised": "7.1.1", "eslint": "5.16.0", diff --git a/src/client/actions.js b/src/client/actions.js index 24d45488..8029b946 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -59,7 +59,7 @@ module.exports = class Actions { listActions(projectId, token) { checkProject(projectId); - debug('listActions() => %s', this.endpointV3); + debug('listActions() => %s', this.endpointV4(projectId)); return got .get(this.endpointV4(projectId), { headers: { Authorization: `Bearer ${token}` }, @@ -121,6 +121,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/logs`; + debug('taskLogs(%s, %s) => %s', jobId, taskId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -135,6 +136,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}`; + debug('taskCancel(%s, %s) => %s', jobId, taskId, endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -149,6 +151,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/status`; + debug('taskStatus(%s, %s) => %s', jobId, taskId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -166,6 +169,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks`; + debug('jobListTasks(%s) => %s', jobId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -180,6 +184,7 @@ module.exports = class Actions { checkProject(projectId); const canonicalJobId = Actions.getCanonicalJobId(jobId); const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/stats`; + debug('taskStats(%s) => %s', jobId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -193,6 +198,7 @@ module.exports = class Actions { listTasksByActivation(projectId, token, activationId) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${activationId}`; + debug('listTasksByActivation(%s) => %s', activationId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -206,6 +212,7 @@ module.exports = class Actions { getConfig(projectId, token) { checkProject(projectId); const endpoint = _.join([this.endpointV4(projectId), '_config'], '/'); + debug('getConfig() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/agents.js b/src/client/agents.js index 8e8ea876..d9592ac7 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -16,7 +16,7 @@ const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); module.exports = class Agents { constructor(cortexUrl) { @@ -25,6 +25,7 @@ module.exports = class Agents { } invokeAgentService(projectId, token, agentName, serviceName, params) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${encodeURIComponent(agentName)}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got @@ -38,6 +39,7 @@ module.exports = class Agents { } invokeSkill(projectId, token, skillName, inputName, params) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/skillinvoke/${encodeURIComponent(skillName)}/inputs/${inputName}`; debug('invokeSkill(%s, %s) => %s', skillName, inputName, endpoint); return got @@ -50,33 +52,44 @@ module.exports = class Agents { .catch(err => constructError(err)); } - getActivation(projectId, token, activationId) { + getActivation(projectId, token, activationId, verbose) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); + const opts = { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }; + if (verbose) { + opts.searchParams = { verbose: true }; + } return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() + .get(endpoint, opts).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); } - listActivations(projectId, token, snapshotId) { - const endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}/activations`; - debug('listActivations(%s, %s) => %s', snapshotId, endpoint); + listActivations(projectId, token, agentName, params) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/activations`; + debug('listActivations(%s) => %s', agentName, endpoint); + const opts = { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }; + if (params) { + opts.searchParams = params; + } return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() + .get(endpoint, opts).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); } listAgentSnapshots(projectId, token, agentName) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(agentName)}/snapshots`; - debug('listAgentSnapshots(%s, %s) => %s', agentName, endpoint); + debug('listAgentSnapshots(%s) => %s', agentName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -87,8 +100,9 @@ module.exports = class Agents { } describeAgentSnapshot(projectId, token, snapshotId, output) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/snapshots/${snapshotId}?deps=true`; - debug('describeAgentSnapshot(%s, %s) => %s', snapshotId, endpoint); + debug('describeAgentSnapshot(%s) => %s', snapshotId, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -99,8 +113,9 @@ module.exports = class Agents { } createAgentSnapshot(projectId, token, snapshot) { + checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(snapshot.agentName)}/snapshots`; - debug('getAgentSnapshot=> %s', endpoint); + debug('createAgentSnapshot(%s)=> %s', snapshot, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/catalog.js b/src/client/catalog.js index 89120a9b..8c1b2d95 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -38,7 +38,7 @@ module.exports = class Catalog { saveSkill(projectId, token, skillObj) { checkProject(projectId); - debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills); + debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills(projectId)); return got .post(this.endpoints.skills(projectId), { headers: { Authorization: `Bearer ${token}` }, @@ -51,7 +51,7 @@ module.exports = class Catalog { listSkills(projectId, token) { checkProject(projectId); - debug('listSkills() => %s', this.endpoints.skills); + debug('listSkills() => %s', this.endpoints.skills(projectId)); return got .get(this.endpoints.skills(projectId), { headers: { Authorization: `Bearer ${token}` }, @@ -61,7 +61,7 @@ module.exports = class Catalog { .catch(err => constructError(err)); } - describeSkill(projectId, token, skillName) { + describeSkill(projectId, token, skillName, verbose = false) { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; debug('describeSkill(%s) => %s', skillName, endpoint); @@ -69,11 +69,40 @@ module.exports = class Catalog { .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: { verbose }, }).json() .then(res => ({ success: true, skill: res })) .catch(err => constructError(err)); } + deploySkill(projectId, token, skillName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/deploy`; + debug('deploySkill(%s) => %s', skillName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then(res => ({ ...res })) + .catch(err => constructError(err)); + } + + unDeploySkill(projectId, token, skillName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/undeploy`; + debug('undeploySkill(%s) => %s', skillName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then(res => ({ ...res })) + .catch(err => constructError(err)); + } + listAgents(projectId, token) { checkProject(projectId); const endpoint = this.endpoints.agents(projectId); @@ -95,6 +124,7 @@ module.exports = class Catalog { return this.describeAgent(projectId, token, agentName).then((response) => { if (response.success) { const urlBase = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/services`; + debug('listServices(%s) => %s', agentName, urlBase); const servicesList = response.agent.inputs .filter(i => i.signalType === 'Service') .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) @@ -119,7 +149,7 @@ module.exports = class Catalog { .catch(err => constructError(err)); } - describeAgent(projectId, token, agentName) { + describeAgent(projectId, token, agentName, verbose) { checkProject(projectId); const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; debug('describeAgent(%s) => %s', agentName, endpoint); @@ -127,6 +157,7 @@ module.exports = class Catalog { .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: { verbose }, }).json() .then(agent => ({ success: true, agent })) .catch(err => constructError(err)); @@ -150,7 +181,7 @@ module.exports = class Catalog { checkProject(projectId); const endpoint = `${this.endpoints.types(projectId)}`; const names = types.types.map(t => t.name); - debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types); + debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types(projectId)); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -179,7 +210,7 @@ module.exports = class Catalog { listTypes(projectId, token) { checkProject(projectId); const endpoint = `${this.endpoints.types(projectId)}`; - debug('listTypes() => %s', this.endpoints.types); + debug('listTypes() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -192,10 +223,9 @@ module.exports = class Catalog { exportCampaign(projectId, token, campaignName, deployable, outputFileName) { checkProject(projectId); - debug('exportCampaign(%s) => %s', campaignName, this.endpoints.campaigns); - const url = `${this.endpoints.campaigns(projectId)}${campaignName}/export?deployable=${deployable}`; + debug('exportCampaign(%s) => %s', campaignName, url); return http.get(url, { headers: { Authorization: `Bearer ${token}` } }, @@ -215,8 +245,9 @@ module.exports = class Catalog { importCampaign(projectId, token, filepath, deploy, overwrite) { checkProject(projectId); - debug('importCampaign(%s)', this.endpoints.campaigns); + const importUrl = `${this.endpoints.campaigns(projectId)}import?deployable=${deploy}&overwrite=${overwrite}`; + debug('importCampaign(%s) => %s', filepath, importUrl); if (!fs.existsSync(filepath) || !fs.lstatSync(filepath).isFile()) { printError(`Campaign export file ${filepath} doesn't exists or not a valid export file`); } diff --git a/src/client/connections.js b/src/client/connections.js index ca5b879c..d344c5a3 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -16,7 +16,7 @@ const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); module.exports = class Connections { constructor(cortexUrl) { @@ -24,24 +24,10 @@ module.exports = class Connections { this.cortexUrl = cortexUrl; } - async queryConnection(projectId, token, connectionName, queryObject) { - const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(connectionName)}/query`; - debug('queryConnection(%s) => %s', connectionName, endpoint); - try { - const message = await got - .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: queryObject, - }).json(); - return { success: true, message }; - } catch (err) { - return constructError(err); - } - } - listConnections(projectId, token) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}`; + debug('listConnections() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -52,8 +38,9 @@ module.exports = class Connections { } async saveConnection(projectId, token, connObj) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}`; - debug('saveConnection(%s) => %s', connObj.name, this.endpoint(projectId)); + debug('saveConnection(%s) => %s', connObj.name, endpoint); try { const message = await got .post(endpoint, { @@ -68,6 +55,7 @@ module.exports = class Connections { } describeConnection(projectId, token, connectionName) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(connectionName)}`; debug('describeConnection(%s) => %s', connectionName, endpoint); return got @@ -79,28 +67,9 @@ module.exports = class Connections { .catch(err => constructError(err)); } - async testConnection(projectId, token, { - name, title, description, connectionType, allowWrite, tags, params, - }) { - const url = `${this.cortexUrl}/fabric/v4/projects/${projectId}/connectiontest`; - debug('saveConnection(%s) => %s', name, url); - try { - const message = await got - .post(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: { - name, title, description, connectionType, allowWrite, tags, params, - }, - }).json(); - return { success: true, message }; - } catch (err) { - return constructError(err); - } - } - listConnectionsTypes(token) { const endpoint = `${this.cortexUrl}/fabric/v4/connectiontypes`; + debug('listConnectionsTypes() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/content.js b/src/client/content.js index e60402b5..1820ddb9 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -20,8 +20,7 @@ const stream = require('stream'); const { promisify } = require('util'); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); -const Variables = require('./variables'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); const pipeline = promisify(stream.pipeline); @@ -37,8 +36,9 @@ module.exports = class Content { } listContent(projectId, token) { + checkProject(projectId); const endpoint = this.endpoint(projectId); - debug('listContent %s', endpoint); + debug('listContent() => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -50,6 +50,7 @@ module.exports = class Content { // eslint-disable-next-line no-unused-vars async uploadContentStreaming(projectId, token, key, content, showProgress = false, contentType = 'application/octet-stream') { + checkProject(projectId); const contentKey = this._sanitizeKey(key); const endpoint = `${this.endpoint(projectId)}/${contentKey}`; // todo show progress.. @@ -70,16 +71,11 @@ module.exports = class Content { } } - async uploadSecureContent(projectId, token, key, content) { - const contentKey = this._sanitizeKey(key); - const vars = new Variables(this.cortextUrl); - return vars.writeVariable(projectId, token, contentKey, content); - } - deleteContent(projectId, token, key) { + checkProject(projectId); const contentKey = this._sanitizeKey(key); const endpoint = `${this.endpoint(projectId)}/${contentKey}`; - debug('deleteContent => %s', endpoint); + debug('deleteContent() => %s', endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -91,10 +87,11 @@ module.exports = class Content { // TODO progress // eslint-disable-next-line no-unused-vars - async downloadContent(projecId, token, key, showProgress = false) { + async downloadContent(projectId, token, key, showProgress = false) { + checkProject(projectId); const contentKey = this._sanitizeKey(key); - const endpoint = `${this.endpoint(projecId)}/${contentKey}`; - debug('downloadContent(%s) => %s', key, this.endpoint); + const endpoint = `${this.endpoint(projectId)}/${contentKey}`; + debug('downloadContent() => %s', endpoint); try { return pipeline( got.stream(endpoint, { @@ -107,10 +104,4 @@ module.exports = class Content { return constructError(err); } } - - async downloadSecureContent(projectId, token, key) { - const contentKey = this._sanitizeKey(key); - const vars = new Variables(this.cortextUrl); - return vars.readVariable(projectId, token, contentKey); - } }; diff --git a/src/client/experiments.js b/src/client/experiments.js index ece4ce42..e6ff0040 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -16,7 +16,7 @@ const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); const Content = require('./content'); module.exports = class Experiments { @@ -26,6 +26,7 @@ module.exports = class Experiments { } listExperiments(projectId, token) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}`; debug('listExperiments() => %s', endpoint); return got @@ -38,6 +39,7 @@ module.exports = class Experiments { } describeExperiment(projectId, token, name) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(name)}`; debug('describeExperiment(%s) => %s', name, endpoint); return got @@ -50,6 +52,7 @@ module.exports = class Experiments { } deleteExperiment(projectId, token, name) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(name)}`; debug('deleteExperiment(%s) => %s', name, endpoint); return got @@ -62,6 +65,7 @@ module.exports = class Experiments { } listRuns(projectId, token, experimentName, filter, limit, sort) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs`; debug('listRuns(%s) => %s', experimentName, endpoint); const query = {}; @@ -79,6 +83,7 @@ module.exports = class Experiments { } describeRun(projectId, token, experimentName, runId) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${runId}`; debug('describeRun(%s) => %s', runId, endpoint); return got @@ -91,8 +96,9 @@ module.exports = class Experiments { } deleteRun(projectId, token, experimentName, runId) { + checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${runId}`; - debug('deleteRun(%s) => %s', runId, endpoint); + debug('deleteRun(%s, %s) => %s', experimentName, runId, endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -108,6 +114,7 @@ module.exports = class Experiments { // eslint-disable-next-line no-unused-vars async downloadArtifact(projectId, token, experimentName, runId, artifactName, showProgress = false) { + checkProject(projectId); try { // Check if run exists.. await this.describeRun(projectId, token, experimentName, runId); diff --git a/src/client/roles.js b/src/client/roles.js index a422a505..dc85907a 100644 --- a/src/client/roles.js +++ b/src/client/roles.js @@ -154,7 +154,7 @@ module.exports = class Roles { addRolesToProject(token, project, roles) { const endpoint = `${this.rolesProjectsEndpoint}`; - debug('addRolesToProject => %s', endpoint); + debug('addRolesToProject(%s) => %s', roles, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -216,7 +216,7 @@ module.exports = class Roles { addExternalGroupToRole(token, externalGroup) { const endpoint = `${this.rolesMappingsEndpoint}`; - debug('addExternalGroupToRole => %s', endpoint); + debug('addExternalGroupToRole(%s) => %s', externalGroup, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/variables.js b/src/client/secrets.js similarity index 64% rename from src/client/variables.js rename to src/client/secrets.js index 6c19eeb3..0883434f 100644 --- a/src/client/variables.js +++ b/src/client/secrets.js @@ -15,18 +15,20 @@ */ const debug = require('debug')('cortex:cli'); +const urljoin = require('url-join'); const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); -module.exports = class Variables { +module.exports = class Secrets { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/secrets`; + this.endpoint = projectId => urljoin(cortexUrl, 'fabric/v4/projects', projectId, 'secrets'); } - listVariables(projectId, token) { - const endpoint = `${this.endpoint(projectId)}?list=true`; - debug('listVariables => %s', endpoint); + listSecrets(projectId, token) { + checkProject(projectId); + const endpoint = urljoin(this.endpoint(projectId), '?list=true'); + debug('listSecrets => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -36,9 +38,10 @@ module.exports = class Variables { .catch(err => constructError(err)); } - readVariable(projectId, token, keyName) { - const endpoint = `${this.endpoint(projectId)}/${keyName}`; - debug('readVariable($s) => %s', keyName, endpoint); + readSecret(projectId, token, keyName) { + checkProject(projectId); + const endpoint = urljoin(this.endpoint(projectId), keyName); + debug('readSecret(%s) => %s', keyName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -48,9 +51,10 @@ module.exports = class Variables { .catch(err => constructError(err)); } - writeVariable(projectId, token, keyName, value) { - const endpoint = `${this.endpoint(projectId)}/${keyName}`; - debug('writeVariable(%s) => %s', keyName, endpoint); + writeSecret(projectId, token, keyName, value) { + checkProject(projectId); + const endpoint = urljoin(this.endpoint(projectId), keyName); + debug('writeSecret(%s) => %s', keyName, endpoint); const body = { value }; return got .post(endpoint, { @@ -58,7 +62,7 @@ module.exports = class Variables { 'user-agent': getUserAgent(), json: body, }).json() - .then(result => ({ success: true, result })) + .then(result => ({ ...result })) .catch(err => constructError(err)); } }; diff --git a/src/client/users.js b/src/client/users.js index 9683441d..e98c9aaa 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -44,7 +44,7 @@ module.exports = class Users { describeUser(token) { const endpoint = `${this.usersEndpoint}/${this.flags}`; - debug('listForUser => %s', endpoint); + debug('describeUser => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/actions.js b/src/commands/actions.js index feed6c34..7fa9a95f 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -16,8 +16,10 @@ const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Actions = require('../client/actions'); + const { printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); @@ -42,12 +44,13 @@ module.exports.ListActionsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Name', field: 'name', width: 50 }, + { column: 'Name', field: 'name', width: 30 }, + { column: 'Type', field: 'type', width: 8 }, { column: 'Image', field: 'image', width: 50 }, - { column: 'Created On', field: 'createdAt', width: 26 }, + { column: 'Modified', field: 'updatedAt', width: 26 }, + { column: 'Author', field: 'createdBy', width: 26 }, ]; - - printTable(tableSpec, result); + printTable(tableSpec, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list actions: ${response.status} ${response.message}`, options); @@ -100,8 +103,12 @@ module.exports.DeployActionCommand = class { let actionInst = {}; if (actionDefinition) { debug('%s.createAgentSnapshot(%s)', profile.name, actionDefinition); - const actionDefStr = fs.readFileSync(actionDefinition); - actionInst = parseObject(actionDefStr, options); + try { + const actionDefStr = fs.readFileSync(actionDefinition); + actionInst = parseObject(actionDefStr, options); + } catch (err) { + printError(`Failed to deploy action: ${err.message}`, options); + } } if (options.actionName) { actionInst.name = options.actionName; diff --git a/src/commands/agents.js b/src/commands/agents.js index 9fd37ef2..8181f5d9 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -17,9 +17,12 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const _ = require('lodash'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); +const { LISTTABLEFORMAT } = require('./utils'); + const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); @@ -79,13 +82,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 50 }, - { column: 'Title', field: 'title', width: 25 }, - { column: 'Description', field: 'description', width: 50 }, - { column: 'Created On', field: 'createdAt', width: 26 }, - ]; - printTable(tableSpec, result); + printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list agents: ${response.status} ${response.message}`, options); @@ -121,7 +118,7 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { }); } else { debug('%s.executeDescribeAgent(%s)', profile.name, agentName); - catalog.describeAgent(options.project || profile.project, profile.token, agentName).then((response) => { + catalog.describeAgent(options.project || profile.project, profile.token, agentName, options.verbose).then((response) => { if (response.success) { const result = filterObject(response.agent, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -187,9 +184,9 @@ module.exports.GetActivationCommand = class { execute(activationId, options) { const profile = loadProfile(options.profile); debug('%s.getActivation(%s)', profile.name, activationId); - + const { verbose, project } = options; const agents = new Agents(profile.url); - agents.getActivation(options.project || profile.project, profile.token, activationId).then((response) => { + agents.getActivation(project || profile.project, profile.token, activationId, verbose).then((response) => { if (response.success) { const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -208,12 +205,19 @@ module.exports.ListActivationsCommand = class { this.program = program; } - execute(instanceId, options) { + execute(agentName, options) { const profile = loadProfile(options.profile); - debug('%s.listActivations(%s)', profile.name, instanceId); + debug('%s.listActivations(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listActivations(options.project || profile.project, profile.token, instanceId).then((response) => { + // TODO validate param types? + const queryParams = {}; + if (options.startBefore) queryParams.startBefore = options.startBefore; + if (options.startAfter) queryParams.startAfter = options.startAfter; + if (options.endBefore) queryParams.endBefore = options.endBefore; + if (options.endAfter) queryParams.endAfter = options.endAfter; + if (options.status) queryParams.status = options.status; + agents.listActivations(options.project || profile.project, profile.token, agentName, queryParams).then((response) => { if (response.success) { let result = response.result.activations; if (options.query) result = filterObject(result, options); @@ -223,21 +227,15 @@ module.exports.ListActivationsCommand = class { } else { const tableSpec = [ { column: 'Activation Id', field: 'activationId', width: 38 }, - { column: 'Type', field: 'type', width: 20 }, - { column: 'Status', field: 'status', width: 15 }, - { column: 'Start', field: 'start', width: 15 }, - { column: 'End', field: 'end', width: 15 }, - { column: 'Session Id', field: 'sessionId', width: 38 }, ]; - - printTable(tableSpec, result); + printTable(tableSpec, _.map(result, r => ({ activationId: r }))); } } else { - printError(`Failed to list activations for instance ${instanceId}: ${response.message}`, options); + printError(`Failed to list activations for instance ${agentName}: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list activations for instance ${instanceId}: ${err.status} ${err.message}`, options); + printError(`Failed to list activations for instance ${agentName}: ${err.status} ${err.message}`, options); }); } }; diff --git a/src/commands/assets/templates/skill/daemon/Makefile b/src/commands/assets/templates/skill/daemon/Makefile new file mode 100644 index 00000000..bf8698cf --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/Makefile @@ -0,0 +1,30 @@ +IMAGE_TAG=latest +SKILL_NAME=$(notdir $(CURDIR)) +DOCKER_IMAGE_URL=${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} + +build: check-env + docker build -t ${DOCKER_IMAGE_URL} . + +push: check-env + docker push ${DOCKER_IMAGE_URL} + +deploy: check-env + cortex actions deploy action.json --project ${PROJECT_NAME} --docker ${DOCKER_IMAGE_URL} + cortex skills save -y skill.yaml --project ${PROJECT_NAME} + sleep 10s # wait for action containers to pull and deploy + +tests: check-env + cortex skills invoke --params-file ./test/payload.json ${SKILL_NAME} request --project ${PROJECT_NAME} + +all: build push deploy tests + +get: check-env + cortex skills describe ${SKILL_NAME} --project ${PROJECT_NAME} + +check-env: +ifndef DOCKER_PREGISTRY_URL + $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /) +endif +ifndef PROJECT_NAME + $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) +endif diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index 0d8f69e7..596049bf 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -13,6 +13,10 @@ Note: * `Dockerfile` to build Docker image for this skill #### Steps + +A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy Skill. +`make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. + 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. 3. Build the docker image (uses the `main.py` file) diff --git a/src/commands/assets/templates/skill/daemon/action.json.hbs b/src/commands/assets/templates/skill/daemon/action.json.hbs new file mode 100644 index 00000000..9a2c03f7 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/action.json.hbs @@ -0,0 +1,8 @@ +{ + "name":"{{dashCase name}}", + "actionType":"daemon", + "docker":"{{dashCase name}}:latest", + "environmentVariables":"\"TEST\"=\"value\"", + "command": ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"], + "port": "5000" +} diff --git a/src/commands/assets/templates/skill/daemon/fabric.yaml b/src/commands/assets/templates/skill/daemon/fabric.yaml new file mode 100644 index 00000000..97761d33 --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/fabric.yaml @@ -0,0 +1,7 @@ +version: 1 +kind: deployment-manifest +cortex: + skills: + - skill.yaml + actions: + - action.json diff --git a/src/commands/assets/templates/skill/daemon/test/payload.json b/src/commands/assets/templates/skill/daemon/test/payload.json new file mode 100644 index 00000000..d29bdbad --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/test/payload.json @@ -0,0 +1,3 @@ +{ + "payload": {} +} diff --git a/src/commands/assets/templates/skill/external-api/Makefile b/src/commands/assets/templates/skill/external-api/Makefile new file mode 100644 index 00000000..4b9f511d --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/Makefile @@ -0,0 +1,17 @@ +SKILL_NAME=$(notdir $(CURDIR)) + +deploy: check-env + cortex skills save -y skill.yaml --project ${PROJECT_NAME} + +tests: check-env + cortex skills invoke --params-file ./test/payload.json ${SKILL_NAME} input --project ${PROJECT_NAME} + +all: deploy tests + +get: check-env + cortex skills describe ${SKILL_NAME} --project ${PROJECT_NAME} + +check-env: +ifndef PROJECT_NAME + $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) +endif diff --git a/src/commands/assets/templates/skill/external-api/README.md b/src/commands/assets/templates/skill/external-api/README.md index 487c8779..179daddb 100644 --- a/src/commands/assets/templates/skill/external-api/README.md +++ b/src/commands/assets/templates/skill/external-api/README.md @@ -5,6 +5,9 @@ This skill type allows users to wrap an external REST API as a Cortex Fabric Ski 1. Update `skill.yaml` with `HTTP Method`, `URL`, `Path` and `headers` per the targeted external API 2. Deploy the Skill `cortex skills save -y skill.yaml --project ` +A Makefile is provided to do these steps. Set environment variable `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy Skill. +`make all` will deploy Cortex Skill, and then invoke Skill to test. + The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. Skills that are deployed may be invoked (run) either independently or within an agent. diff --git a/src/commands/assets/templates/skill/external-api/fabric.yaml b/src/commands/assets/templates/skill/external-api/fabric.yaml new file mode 100644 index 00000000..7de705a8 --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/fabric.yaml @@ -0,0 +1,5 @@ +version: 1 +kind: deployment-manifest +cortex: + skills: + - skill.yaml diff --git a/src/commands/assets/templates/skill/external-api/test/payload.json b/src/commands/assets/templates/skill/external-api/test/payload.json new file mode 100644 index 00000000..d29bdbad --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/test/payload.json @@ -0,0 +1,3 @@ +{ + "payload": {} +} diff --git a/src/commands/assets/templates/skill/job/Makefile b/src/commands/assets/templates/skill/job/Makefile new file mode 100644 index 00000000..94221c13 --- /dev/null +++ b/src/commands/assets/templates/skill/job/Makefile @@ -0,0 +1,30 @@ +IMAGE_TAG=latest +SKILL_NAME=$(notdir $(CURDIR)) +DOCKER_IMAGE_URL=${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} + +build: check-env + docker build -t ${DOCKER_IMAGE_URL} . + +push: check-env + docker push ${DOCKER_IMAGE_URL} + +deploy: check-env + cortex actions deploy action.json --project ${PROJECT_NAME} --docker ${DOCKER_IMAGE_URL} + cortex skills save -y skill.yaml --project ${PROJECT_NAME} + sleep 10s # wait for action containers to pull and deploy + +tests: check-env + cortex skills invoke --params-file ./test/payload.json ${SKILL_NAME} params --project ${PROJECT_NAME} + +all: build push deploy tests + +get: check-env + cortex skills describe ${SKILL_NAME} --project ${PROJECT_NAME} + +check-env: +ifndef DOCKER_PREGISTRY_URL + $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /) +endif +ifndef PROJECT_NAME + $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) +endif diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 9504683e..4059f43e 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -9,6 +9,10 @@ Cortex skill that runs a background job. * `Dockerfile` to build Docker image for this skill #### Steps + +A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy Skill. +`make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. + 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. 3. Build the docker image (uses the `main.py` file) @@ -20,7 +24,7 @@ Cortex skill that runs a background job. docker push : ``` - **(Optionally) Retag an image** + **(Optionally) Re-tag an image** ``` docker tag : : ``` diff --git a/src/commands/assets/templates/skill/job/action.json.hbs b/src/commands/assets/templates/skill/job/action.json.hbs new file mode 100644 index 00000000..fdf866ec --- /dev/null +++ b/src/commands/assets/templates/skill/job/action.json.hbs @@ -0,0 +1,7 @@ +{ + "name":"{{dashCase name}}", + "actionType":"job", + "docker":"{{dashCase name}}:latest", + "environmentVariables":"\"TEST\"=\"value\"", + "command": ["python", "/app/main.py"] +} diff --git a/src/commands/assets/templates/skill/job/fabric.yaml b/src/commands/assets/templates/skill/job/fabric.yaml new file mode 100644 index 00000000..97761d33 --- /dev/null +++ b/src/commands/assets/templates/skill/job/fabric.yaml @@ -0,0 +1,7 @@ +version: 1 +kind: deployment-manifest +cortex: + skills: + - skill.yaml + actions: + - action.json diff --git a/src/commands/assets/templates/skill/job/skill.yaml.hbs b/src/commands/assets/templates/skill/job/skill.yaml.hbs index 89dd3041..317f09e0 100644 --- a/src/commands/assets/templates/skill/job/skill.yaml.hbs +++ b/src/commands/assets/templates/skill/job/skill.yaml.hbs @@ -14,7 +14,7 @@ inputs: all: action : {{dashCase name}} runtime: cortex/jobs - output: response + output: result outputs: - name: result diff --git a/src/commands/assets/templates/skill/job/test/payload.json b/src/commands/assets/templates/skill/job/test/payload.json new file mode 100644 index 00000000..d29bdbad --- /dev/null +++ b/src/commands/assets/templates/skill/job/test/payload.json @@ -0,0 +1,3 @@ +{ + "payload": {} +} diff --git a/src/commands/configure.js b/src/commands/configure.js index 99de4095..b6d337cb 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -162,8 +162,9 @@ module.exports.GetAccessToken = class { execute(options) { const profile = loadProfile(options.profile); + const ttl = options.ttl || '1d'; debug('%s.getAccesToken', profile.name); - const jwt = generateJwt(profile, '1d'); + const jwt = generateJwt(profile, ttl); return printSuccess(jwt, options); } }; diff --git a/src/commands/connections.js b/src/commands/connections.js index aa4b8c19..bfaa8e20 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -154,73 +154,6 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { } }; -module.exports.TestConnectionCommand = class TestConnectionCommand { - constructor(program) { - this.program = program; - } - - getParamsValue(connectionDefinition, paramName) { - const results = _.filter(_.get(connectionDefinition, 'params', []), item => item.name === paramName); - if (results && results.length) { - return results[0].value; - } - return undefined; - } - - stripJarPathFromParams(params) { - return params.filter(item => item.name !== 'jdbc_jar_file'); - } - - execute(connectionDefinition, options) { - const profile = loadProfile(options.profile); - debug('%s.executeTestDefinition(%s)', profile.name, connectionDefinition); - - const connDefStr = fs.readFileSync(connectionDefinition); - const connObj = parseObject(connDefStr, options); - debug('%o', connObj); - - const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); - const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); - - if (jdbcJarFilePath) { - const content = new Content(profile.url); - content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) - .then(() => { - const connection = new Connections(profile.url); - - const marshaledConnObj = connObj; - marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); - - connection.testConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { - if (response.success) { - printSuccess('Connection successfully tested', options); - } else { - printError(`Failed while testing connection: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed while testing connection: ${err.response.body.message}`, options); - }); - }) - .catch((err) => { - printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); - }); - } else { - const connection = new Connections(profile.url); - connection.testConnection(options.project || profile.project, profile.token, connObj).then((response) => { - if (response.success) { - printSuccess('Connection successfully tested', options); - } else { - printError(`Failed while testing connection: ${response.message || response.body.message}`, options); - } - }) - .catch((err) => { - printError(`Failed while testing connection: ${err.status} ${err.message}`, options); - }); - } - } -}; - module.exports.ListConnectionsTypes = class ListConnectionsTypes { constructor(program) { this.program = program; @@ -259,60 +192,3 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { }); } }; - -module.exports.QueryConnectionCommand = class QueryConnectionCommand { - constructor(program) { - this.program = program; - } - - execute(connectionName, options) { - const profile = loadProfile(options.profile); - debug('%s.executeQueryConnection(%s)', profile.name, connectionName); - - debug('params: %o', options); - - let queryObject = {}; - let queryInput = options.query; - - if (options.file) { - queryInput = fs.readFileSync(options.file, 'UTF-8'); - } - - if (!queryInput) { - queryInput = 'select 1'; - } - - try { - queryObject = JSON.parse(queryInput); - - if (queryObject.filter) { - queryObject.filter = JSON.stringify(queryObject.filter); - } - if (queryObject.sort) { - queryObject.sort = JSON.stringify(queryObject.sort); - } - } catch (err) { - queryObject.query = queryInput; - } - - debug('queryParams: %o', queryObject); - - const connections = new Connections(profile.url); - connections.queryConnection(options.project || profile.project, profile.token, connectionName, queryObject) - .then((response) => { - if (response.success) { - if (options.json) { - printSuccess(JSON.stringify(JSON.parse(response.message), null, 2), options); - } else { - // might get images/binaries from S3 - printSuccess(response.message, options); - } - } else { - printError(`Failed to query connection: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to query connection: ${err.status} ${err.message}`, options); - }); - } -}; diff --git a/src/commands/content.js b/src/commands/content.js index 9c0d64a9..f8a67984 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -14,8 +14,6 @@ * limitations under the License. */ const _ = require('lodash'); -const fs = require('fs'); -const path = require('path'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Content = require('../client/content'); @@ -72,8 +70,6 @@ module.exports.UploadContent = class UploadContent { const contentClient = new Content(profile.url); const chunkSize = parseInt(options.chunkSize, 10); - // const chunkSize = parseInt(options.chunkSize); - const uploadSecure = _.partial(UploadContent.uploadSecure, contentClient, profile, options); const upload = _.partial(UploadContent.upload, contentClient, profile, options); if (options.recursive) { @@ -108,27 +104,9 @@ module.exports.UploadContent = class UploadContent { cbTest(filesDict); } }); - } else if (options.secure) { - uploadSecure(contentKey, filePath); - } else { - upload(contentKey, filePath); - } - } - - - static uploadSecure(contentClient, profile, options, contentKey, filePath) { - const fileContent = fs.readFileSync(filePath); - const fileBaseName = path.basename(filePath); - - const secureContent = {}; - secureContent[fileBaseName] = Buffer.from(fileContent).toString('base64'); - contentClient.uploadSecureContent(options.project || profile.project, profile.token, contentKey, secureContent).then((response) => { - if (response.success) { - printSuccess('Secure content successfully uploaded.', options); - } else { - printError(`Failed to upload secure content: ${response.status} ${response.message}`, options); - } - }); + } else { + upload(contentKey, filePath); + } } static upload(contentClient, profile, options, contentKey, filePath) { @@ -184,31 +162,16 @@ module.exports.DownloadContent = class DownloadContent { const content = new Content(profile.url); const showProgress = !!options.progress; - // To download content from Secrets - if (options.secure) { - content.downloadSecureContent(options.project || profile.project, profile.token, contentKey).then((response) => { - if (response.success) { - printSuccess(response.message, options); - } else { - printError(`Failed to download secure content: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to download secure content: ${err.status} ${err.message}`, options); - }); - } else { - content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).then((response) => { - if (response.success) { - // messages need to be on stderr as content is streamed to stdout - console.error(response.message); - } else { - printError(`Failed to download content: ${response.status} ${response.message}`, options); - } - }).catch((err) => { - debug(err); - printError(`Failed to download content: ${err.status} ${err.message}`, options); - }); - } + content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).then((response) => { + if (response.success) { + // messages need to be on stderr as content is streamed to stdout + console.error(response.message); + } else { + printError(`Failed to download content: ${response.status} ${response.message}`, options); + } + }).catch((err) => { + debug(err); + printError(`Failed to download content: ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/commands/docker.js b/src/commands/docker.js index f2ae744a..e535f156 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -15,10 +15,13 @@ */ const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); +const URL = require('url-parse'); const { printSuccess, printError } = require('./utils'); -const Actions = require('../client/actions'); const { callMe } = require('../commands/utils'); +const { + generateJwt, + loadProfile, +} = require('../config'); module.exports.DockerLoginCommand = class { constructor(program) { @@ -27,12 +30,15 @@ module.exports.DockerLoginCommand = class { async execute(options) { const profile = loadProfile(options.profile); - debug('%s.executeDockerLogin()', profile.name); + const ttl = options.ttl || '14d'; - const action = new Actions(profile.url); - const registryUrl = await action._cortexRegistryUrl(options.project || profile.project, profile.token); try { - await callMe(`docker login -u cli --password ${profile.token} ${registryUrl}`); + // TODO fetch this from new endpoint or maybe store this in the profile?? + const registryUrl = (new URL(profile.url)).hostname.replace('api', 'private-registry'); + const jwt = generateJwt(profile, ttl); + const command = `docker login -u cli --password ${jwt} ${registryUrl}`; + debug('%s.executeDockerLogin(%s)', profile.name, command); + await callMe(command); printSuccess(JSON.stringify('Login Succeeded', null, 2), options); } catch (err) { printError(`Failed to docker login: ${err.message || err}`, options); diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index c3a534d4..99d4800b 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -7,7 +7,8 @@ module.exports = (plop) => { { type: 'input', name: 'name', - message: 'Skill Name?', + message: 'Skill Name? (Skill name must be alphanumeric, beginning with a letter. Hyphen and underscore allowed internally.)', + validate: value => /^[0-9a-zA-Z][0-9a-zA-Z_\- ]{0,18}[0-9a-zA-Z]$/.test(value), }, { type: 'list', @@ -23,7 +24,8 @@ module.exports = (plop) => { destination: path.join(path.resolve('.'), '{{ dashCase name }}'), // Handlebars template used to generate content of project files base: 'assets/templates/skill/{{dashCase type}}', - // Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. So not using hbs extension in Dockerfile and picking all files in directory + // Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. + // So not using hbs extension in Dockerfile and picking all files in directory templateFiles: 'assets/templates/skill/{{dashCase type}}/**/*', abortOnFail: true, // Must not overwrite files with scaffolding template if already exists diff --git a/src/commands/variables.js b/src/commands/secrets.js similarity index 62% rename from src/commands/variables.js rename to src/commands/secrets.js index 1a07b14b..1542fba9 100644 --- a/src/commands/variables.js +++ b/src/commands/secrets.js @@ -21,81 +21,81 @@ const isUndefined = require('lodash/fp/isUndefined'); const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); -const Variables = require('../client/variables'); +const Secrets = require('../client/secrets'); const { printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); -module.exports.ListVariablesCommand = class { +module.exports.ListSecretsCommand = class { constructor(program) { this.program = program; } execute(options) { const profile = loadProfile(options.profile); - debug('%s.listVariables(%s)', profile.name); + debug('%s.listsecrets(%s)', profile.name); - const variables = new Variables(profile.url); - variables.listVariables(options.project || profile.project, profile.token) + const secrets = new Secrets(profile.url); + secrets.listSecrets(options.project || profile.project, profile.token) .then((response) => { if (response.success) { const result = filterObject(response.result, options); if (options.json) printSuccess(JSON.stringify(result, null, 2), options); else { const tableSpec = [ - { column: 'Variable Key Name', field: 'keyName', width: 50 }, + { column: 'Secret Key Name', field: 'keyName', width: 50 }, ]; printTable(tableSpec, map(x => ({ keyName: x }), result)); } } else { - printError(`Failed to list variables: ${response.message}`, options); + printError(`Failed to list secrets: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list variables : ${err.status} ${err.message}`, options); + printError(`Failed to list secrets : ${err.status} ${err.message}`, options); }); } }; -module.exports.ReadVariableCommand = class { +module.exports.ReadSecretsCommand = class { constructor(program) { this.program = program; } execute(keyName, options) { const profile = loadProfile(options.profile); - debug('%s.readVariable(%s)', profile.name, keyName); + debug('%s.readsecret(%s)', profile.name, keyName); - const variables = new Variables(profile.url); - variables.readVariable(options.project || profile.project, profile.token, keyName).then((response) => { + const secrets = new Secrets(profile.url); + secrets.readSecret(options.project || profile.project, profile.token, keyName).then((response) => { if (response.success) { const result = filterObject(response.result, options); if (options.json) printSuccess(JSON.stringify(result, null, 2), options); else { const tableSpec = [ - { column: 'Variable Key Name', field: 'keyName', width: 50 }, - { column: 'Value', field: 'value', width: 50 }, + { column: 'Key Name', field: 'keyName', width: 50 }, + { column: 'Value (Not Shown)', field: 'value', width: 50 }, ]; printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2) }]); } } else { - printError(`Failed to read secure variable : ${response.message}`, options); + printError(`Failed to read secure secret : ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to read secure variable : ${err.status} ${err.message}`, options); + printError(`Failed to read secure secret : ${err.status} ${err.message}`, options); }); } }; -module.exports.WriteVariableCommand = class { +module.exports.WriteSecretsCommand = class { constructor(program) { this.program = program; } execute(keyName, value, options) { const profile = loadProfile(options.profile); - debug('%s.writeVariable(%s)', profile.name, keyName); + debug('%s.writeSecret(%s)', profile.name, keyName); let data = value; if (options.data) { @@ -110,16 +110,18 @@ module.exports.WriteVariableCommand = class { } if (isUndefined(data)) { - return printError('Failed to write secure variable : no value specified', options); + return printError('Failed to write secret : no value specified', options); } - const variables = new Variables(profile.url); - return variables.writeVariable(options.project || profile.project, profile.token, keyName, data).then((response) => { - const result = filterObject(response.result, options); - printSuccess(result.message, options); + const secrets = new Secrets(profile.url); + return secrets.writeSecret(options.project || profile.project, profile.token, keyName, data).then((response) => { + if (response.success) { + return printSuccess(response.message, options); + } + return printError(`Failed to write secret: ${response.status} ${response.message}`, options); }) .catch((err) => { - printError(`Failed to write secure variable : ${err.status} ${err.message}`, options); + printError(`Failed to write secret : ${err.status} ${err.message}`, options); }); } }; diff --git a/src/commands/skills.js b/src/commands/skills.js index 63d5456b..a2e78677 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -16,9 +16,12 @@ const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agent = require('../client/agents'); +const { LISTTABLEFORMAT } = require('./utils'); + const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); @@ -75,13 +78,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 }, - ]; - - printTable(tableSpec, result); + printTable(LISTTABLEFORMAT, _.sortBy(result, ['name']), o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list skills: ${response.status} ${response.message}`, options); @@ -103,7 +100,7 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { debug('%s.executeDescribeSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); - catalog.describeSkill(options.project || profile.project, profile.token, skillName).then((response) => { + catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { if (response.success) { const result = filterObject(response.skill, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -117,6 +114,51 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { } }; +module.exports.UndeploySkillCommand = class UndeploySkillCommand { + constructor(program) { + this.program = program; + } + + execute(skillName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeUndeploySkill(%s)', profile.name, skillName); + const catalog = new Catalog(profile.url); + catalog.unDeploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { + if (response.success) { + printSuccess(`Undeploy Skill ${skillName}: ${response.message}`, options); + } else { + printError(`Failed to Undeploy Skill ${skillName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to Undeploy Skill ${skillName}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeploySkillCommand = class DeploySkillCommand { + constructor(program) { + this.program = program; + } + + execute(skillName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeploySkill(%s)', profile.name, skillName); + + const catalog = new Catalog(profile.url); + catalog.deploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { + if (response.success) { + printSuccess(`Deployed Skill ${skillName}: ${response.message}`, options); + } else { + printError(`Failed to deploy Skill ${skillName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to deploy Skill ${skillName}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.InvokeSkillCommand = class InvokeSkillCommand { constructor(program) { this.program = program; diff --git a/src/commands/types.js b/src/commands/types.js index 581696cb..ce5b56a7 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -16,8 +16,11 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); +const { LISTTABLEFORMAT } = require('./utils'); + const { printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); @@ -69,13 +72,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - const tableSpec = [ - { column: 'Title', field: 'title', width: 50 }, - { column: 'Name', field: 'name', width: 50 }, - { column: 'Version', field: '_version', width: 12 }, - ]; - - printTable(tableSpec, result); + printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list types: ${response.status} ${response.message}`, options); diff --git a/src/commands/utils.js b/src/commands/utils.js index 29426018..d48cacbf 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -162,7 +162,7 @@ module.exports.getSourceFiles = (source, cb) => { } else { const results = files.filter(fpath => fs.lstatSync(fpath).isFile()).map(fpath => ({ canonical: fpath, - relative: fpath.slice(normalizedSource.length), + relative: path.relative(normalizedSource, fpath), size: fs.lstatSync(fpath).size, })); cb(null, results); @@ -171,16 +171,16 @@ module.exports.getSourceFiles = (source, cb) => { }; function round(value, precision) { - const multiplier = Math.pow(10, precision || 0); + const multiplier = 10 ** (precision || 0); return Math.floor(value * multiplier) / multiplier; } module.exports.humanReadableFileSize = (sizeInBytes) => { const ranges = { - K: Math.pow(10, 3), - M: Math.pow(10, 6), - G: Math.pow(10, 9), - T: Math.pow(10, 12), + K: 10 ** 3, + M: 10 ** 6, + G: 10 ** 9, + T: 10 ** 12, }; if (sizeInBytes < ranges.K) { return `${sizeInBytes}B`; @@ -307,3 +307,12 @@ const pkg = findPackageJson(__dirname).next().value; module.exports.getUserAgent = function getUserAgent() { return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; }; + +module.exports.LISTTABLEFORMAT = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 40 }, + { column: 'Description', field: 'description', width: 50 }, + { column: 'Modified', field: 'updatedAt', width: 26 }, + { column: 'Author', field: 'createdBy', width: 25 }, + +]; diff --git a/src/parsers.js b/src/parsers.js new file mode 100644 index 00000000..d2720195 --- /dev/null +++ b/src/parsers.js @@ -0,0 +1,40 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const _ = require('lodash'); +const program = require('./commander'); + +function nonEmptyStringParser(opts) { + const { message = 'empty string argument', variadic = false } = opts; + return function parseNonEmptyString(value, oldValue) { + if (_.isEmpty(value)) { + const error = `error: ${message}`; + console.error(error); + program._exit(1, 'cortex.invalidStringArgument', error); + } + if (variadic) { + if (!Array.isArray(oldValue)) { + return [value]; + } + return oldValue.concat(value); + } + return value; + }; +} + +module.exports = { + nonEmptyStringParser, +}; diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index 106ee0a9..c4e50868 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -75,7 +75,7 @@ describe('Human Readable File Size', () => { }); it('1MB less some', (done) => { - const sizeInBytes = Math.pow(10, 3) - 1; + const sizeInBytes = (10 ** 3) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999B'); done(); @@ -89,14 +89,14 @@ describe('Human Readable File Size', () => { }); it('1k less', (done) => { - const sizeInBytes = Math.pow(10, 6) - 1; + const sizeInBytes = (10 ** 6) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.9K'); done(); }); it('several GB', (done) => { - const sizeInBytes = 32 * Math.pow(10, 9) + 345 * Math.pow(10, 6); + const sizeInBytes = 32 * (10 ** 9) + 345 * (10 ** 6); const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('32.3G'); done(); From e153af2162d6732259dd244ad2e7cd6994027d74 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Mon, 17 May 2021 20:22:28 +0530 Subject: [PATCH 266/864] FAB-1861 Fix for showing snapshot Id in the table --- src/commands/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 8181f5d9..8edf74fb 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -290,7 +290,7 @@ module.exports.ListAgentSnapshotsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Snapshot ID', field: 'id', width: 40 }, + { column: 'Snapshot ID', field: 'snapshotId', width: 40 }, { column: 'Title', field: 'title', width: 30 }, { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Created On', field: 'createdAt', width: 26 }, From 61181d2d42153e7315ddb375ce58b513a94d3ce2 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 17 May 2021 11:47:22 -0500 Subject: [PATCH 267/864] FAB-1782 fix createdBy, add moment, remove agent version (confusing.. ) --- src/commands/agents.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 8181f5d9..f9fdcf5e 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -290,12 +290,14 @@ module.exports.ListAgentSnapshotsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Snapshot ID', field: 'id', width: 40 }, - { column: 'Title', field: 'title', width: 30 }, - { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Created On', field: 'createdAt', width: 26 }, + { column: 'Snapshot ID', field: 'snapshotId', width: 30 }, + { column: 'Title', field: 'title', width: 40 }, +// Removed as this is confusing for end users, agent version may not change +// { column: 'Agent Version', field: 'agentVersion', width: 15 }, + { column: 'Modified', field: 'updatedAt', width: 26 }, + { column: 'Author', field: 'createdBy', width: 26 }, ]; - printTable(tableSpec, result); + printTable(tableSpec, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list agent snapshots ${agentName}: ${response.message}`, options); From 8a6e77b5485782af4f651761c9748b6626badfc1 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 17 May 2021 11:50:51 -0500 Subject: [PATCH 268/864] There is no modification of snapshots use createdAt --- src/commands/agents.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index f9fdcf5e..c438816a 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -294,10 +294,10 @@ module.exports.ListAgentSnapshotsCommand = class { { column: 'Title', field: 'title', width: 40 }, // Removed as this is confusing for end users, agent version may not change // { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Modified', field: 'updatedAt', width: 26 }, + { column: 'Created', field: 'createdAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 26 }, ]; - printTable(tableSpec, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + printTable(tableSpec, result, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); } } else { printError(`Failed to list agent snapshots ${agentName}: ${response.message}`, options); From 90e540ab5305c080d1cee152d0fc2c61450fee7b Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 17 May 2021 12:11:50 -0500 Subject: [PATCH 269/864] Fix snapshot column length --- src/commands/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index c438816a..fe633201 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -290,7 +290,7 @@ module.exports.ListAgentSnapshotsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Snapshot ID', field: 'snapshotId', width: 30 }, + { column: 'Snapshot ID', field: 'snapshotId', width: 40 }, { column: 'Title', field: 'title', width: 40 }, // Removed as this is confusing for end users, agent version may not change // { column: 'Agent Version', field: 'agentVersion', width: 15 }, From 9ebc4c7e4fd37200a4334b305595f844855c785e Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 18 May 2021 09:13:08 -0500 Subject: [PATCH 270/864] Remove actionType from action delete command, removed unneeded options --- bin/cortex-actions.js | 2 -- src/client/actions.js | 9 +++------ src/commands/actions.js | 3 +-- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 229b6d18..cb3aad1e 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -82,8 +82,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--actionType [actionType]', 'Type of action') .action(withCompatibilityCheck((actionName, options) => { try { new DeleteActionCommand(program).execute(actionName, options); diff --git a/src/client/actions.js b/src/client/actions.js index 8029b946..4ac9b0d1 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -100,13 +100,10 @@ module.exports = class Actions { .catch(err => constructError(err)); } - deleteAction(projectId, token, actionName, actionType) { + deleteAction(projectId, token, actionName) { checkProject(projectId); - let endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}`; - if (actionType) { - endpoint = `${endpoint}?actionType=${actionType}`; - } - debug('deleteAction(%s, %s) => %s', actionName, actionType, endpoint); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}`; + debug('deleteAction(%s) => %s', actionName, endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/actions.js b/src/commands/actions.js index 7fa9a95f..4a849e49 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -161,9 +161,8 @@ module.exports.DeleteActionCommand = class { execute(actionName, options) { const profile = loadProfile(options.profile); debug('%s.executeDeleteAction(%s)', profile.name, actionName); - const { actionType } = options; const actions = new Actions(profile.url); - actions.deleteAction(options.project || profile.project, profile.token, actionName, actionType) + actions.deleteAction(options.project || profile.project, profile.token, actionName) .then((response) => { if (response.success) { const result = filterObject(response, options); From 0b69628d831bc40997dfed44b350a8eb5586bf3c Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 18 May 2021 09:15:28 -0500 Subject: [PATCH 271/864] Fix eslint-plugin vuln --- package-lock.json | 661 +++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 564 insertions(+), 99 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85fc6139..54db0514 100644 --- a/package-lock.json +++ b/package-lock.json @@ -241,6 +241,12 @@ "@types/node": "*" } }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, "@types/keyv": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", @@ -430,33 +436,125 @@ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" }, "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.5" }, "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } } } @@ -996,10 +1094,25 @@ } }, "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-1.0.0.tgz", + "integrity": "sha1-NFizMhhWA+ju0Y9RjUoQiIo6vJE=", + "dev": true, + "requires": { + "normalize-path": "^2.1.1", + "path-starts-with": "^1.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } }, "copy-descriptor": { "version": "0.1.1", @@ -1523,50 +1636,48 @@ } }, "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", "dev": true, "requires": { - "debug": "^2.6.9", + "debug": "^3.2.7", "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, "eslint-plugin-import": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", - "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.2.tgz", + "integrity": "sha512-LmNoRptHBxOP+nb0PIKz1y6OSzCJlB+0g0IGS3XV4KaKk2q4szqQ6s6F1utVf5ZRkxk/QOTjdxe7v4VjS99Bsg==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", + "contains-path": "^1.0.0", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", "has": "^1.0.3", + "is-core-module": "^2.4.0", "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" }, "dependencies": { "debug": { @@ -1579,13 +1690,40 @@ } }, "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "^2.0.2" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "ms": { @@ -1593,6 +1731,46 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } } } }, @@ -2321,6 +2499,12 @@ } } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2667,6 +2851,12 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -2676,6 +2866,38 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + }, + "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + } + } + }, "is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -2795,6 +3017,12 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, + "is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -2835,9 +3063,9 @@ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" }, "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", "dev": true }, "is-symbol": { @@ -2922,6 +3150,12 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2940,6 +3174,15 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -2994,14 +3237,14 @@ } }, "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "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", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" } }, @@ -3868,9 +4111,9 @@ }, "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 }, "semver": { @@ -4089,34 +4332,124 @@ } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", + "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" }, "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } } } @@ -4294,12 +4627,13 @@ } }, "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" } }, "parse-passwd": { @@ -4368,13 +4702,33 @@ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, + "path-starts-with": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-starts-with/-/path-starts-with-1.0.0.tgz", + "integrity": "sha1-soJDAV6LE43lcmgqxS2kLmRq2E4=", + "dev": true, + "requires": { + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "^3.0.0" } }, "pathval": { @@ -4398,9 +4752,9 @@ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pkg-dir": { @@ -4463,6 +4817,66 @@ } } }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, "plop": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.4.tgz", @@ -4578,24 +4992,24 @@ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^2.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "path-type": "^3.0.0" } }, "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "read-pkg": "^3.0.0" }, "dependencies": { "find-up": { @@ -4692,6 +5106,12 @@ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", @@ -5524,9 +5944,9 @@ } }, "spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz", + "integrity": "sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g==", "dev": true }, "split": { @@ -5809,6 +6229,18 @@ "is-number": "^7.0.0" } }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -5878,6 +6310,26 @@ "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", "optional": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -6045,6 +6497,19 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", diff --git a/package.json b/package.json index bffd998b..6355e239 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "chai-as-promised": "7.1.1", "eslint": "5.16.0", "eslint-config-airbnb-base": "13.1.0", - "eslint-plugin-import": "2.20.2", + "eslint-plugin-import": "2.23.2", "mocha": "7.1.1", "nock": "13.0.4", "rewire": "5.0.0" From 216e92493045944c0a6224e2045b3f137a015aec Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 19 May 2021 22:18:41 -0500 Subject: [PATCH 272/864] Add job timeout to action save, true up cli option to action file format --- bin/cortex-actions.js | 11 ++++++----- src/commands/actions.js | 18 +++++++++++++----- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index cb3aad1e..264ccdb9 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -113,19 +113,20 @@ program .alias('save') .description('Deploy an action') .storeOptionsAsProperties(false) - .option('--actionName, --name [name]', 'Action name') - .option('--actionType [actionType]', 'Type of action') + .option('--name, --actionName [name]', 'Action name') + .option('--type, --actionType [job|daemon]', 'Type of action') .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--docker [image]', 'Docker image to use as the runner') + .option('--image, --docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') + .option('--jobTimeout', 'Job Timeout in seconds, this will marked the job as FAILED') .option('--no-compat', 'Ignore API compatibility checks') .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('--port [port]', 'Docker port') // '9091' .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('--scaleCount [count]', 'Scale count, only used for daemon action types') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('-y, --yaml', 'Use YAML format') .action(withCompatibilityCheck((actionName, options) => { try { diff --git a/src/commands/actions.js b/src/commands/actions.js index 4a849e49..2c2e96cf 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -113,15 +113,16 @@ module.exports.DeployActionCommand = class { if (options.actionName) { actionInst.name = options.actionName; } - if (options.name) { - actionInst.name = options.name; - } + if (options.name) { actionInst.name = options.name; } if (options.podspec) { const paramsStr = fs.readFileSync(options.podspec); actionInst.podSpec = parseObject(paramsStr, options); } - if (options.docker) { actionInst.docker = options.docker; } - if (options.actionType) { actionInst.actionType = options.actionType; } + if (options.docker) { actionInst.image = options.docker; } + if (options.image) { actionInst.image = options.image; } + + if (options.type) { actionInst.type = options.type; } + if (options.actionType) { actionInst.type = options.actionType; } if (options.cmd) { actionInst.command = options.cmd; } if (options.port) { if (!isNumeric(options.port)) { @@ -138,6 +139,13 @@ module.exports.DeployActionCommand = class { actionInst.scaleCount = parseInt(options.scaleCount, 10); } + if (options.jobTimeout) { + if (!isNumeric(options.jobTimeout)) { + printError('--jobTimeout must be a number', options); + } + actionInst.jobTimeout = parseInt(options.jobTimeout, 10); + } + const actions = new Actions(profile.url); actions.deployAction(options.project || profile.project, profile.token, actionInst) .then((response) => { From 01d84b9d02c5d874b3e4de9ee3e11cf6c37d9621 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 27 May 2021 17:33:06 +0530 Subject: [PATCH 273/864] cli support for rest apis model catalog --- bin/cortex-models.js | 64 ++++++++++++++++++++++++++++++++ bin/cortex.js | 1 + src/client/models.js | 56 ++++++++++++++++++++++++++++ src/commands/models.js | 84 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 205 insertions(+) create mode 100755 bin/cortex-models.js create mode 100644 src/client/models.js create mode 100644 src/commands/models.js diff --git a/bin/cortex-models.js b/bin/cortex-models.js new file mode 100755 index 00000000..1716cc87 --- /dev/null +++ b/bin/cortex-models.js @@ -0,0 +1,64 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + DeleteModelCommand, + SaveModelCommand, +} = require('../src/commands/models'); + +program.description('Work with Cortex Actions'); + +// Delete Model +program + .command('delete ') + .description('Delete a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((modelName, options) => { + try { + new DeleteModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Save Model +program + .command('save ') + .description('Save a model definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .action(withCompatibilityCheck((modelDefinition, options) => { + try { + new SaveModelCommand(program).execute(modelDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 4e9fdc5d..2dc75bf6 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -36,6 +36,7 @@ program .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') .command('generate [cmd]', 'Scaffold Cortex Components') + .command('models [cmd]', 'Work with Cortex Models') .command('projects [cmd]', 'Work with Cortex Projects') .command('roles [cmd]', 'Work with a Cortex Roles') .command('secrets [cmd]', 'Work with Cortex Secrets') diff --git a/src/client/models.js b/src/client/models.js new file mode 100644 index 00000000..6bd866ce --- /dev/null +++ b/src/client/models.js @@ -0,0 +1,56 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { + constructError, checkProject, getUserAgent, +} = require('../commands/utils'); + + +module.exports = class Actions { + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/models`; + } + + saveModel(projectId, token, modelObj) { + checkProject(projectId); + const endpoint = this.endpointV4(projectId); + debug('saveModel(%s) => %s', modelObj.name, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: modelObj, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); + } + + deleteModel(projectId, token, actionName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}`; + debug('deleteAction(%s) => %s', actionName, endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(action => ({ success: true, action })) + .catch(err => constructError(err)); + } +}; diff --git a/src/commands/models.js b/src/commands/models.js new file mode 100644 index 00000000..abb23bdf --- /dev/null +++ b/src/commands/models.js @@ -0,0 +1,84 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Models = require('../client/models'); + +const { + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath +} = require('./utils'); + +module.exports.SaveModelCommand = class SaveModelCommand { + constructor(program) { + this.program = program; + } + + execute(modelDefinition, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSaveModel(%s)', profile.name, modelDefinition); + + const modelDefStr = fs.readFileSync(modelDefinition); + const model = parseObject(modelDefStr, options); + debug('%o', model); + + const models = new Models(profile.url); + models.saveModel(options.project || profile.project, profile.token, model).then((response) => { + if (response.success) { + printSuccess('Model saved', options); + } else if (response.details) { + console.log(`Failed to save model: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + }) + .catch((err) => { + printError(`Failed to save model: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeleteModelCommand = class { + constructor(program) { + this.program = program; + } + + execute(actionName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteAction(%s)', profile.name, actionName); + const models = new Models(profile.url); + models.deleteModel(options.project || profile.project, profile.token, actionName) + .then((response) => { + if (response && response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Model deletion failed: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete model: ${err.status} ${err.message}`, options); + }); + } +}; From 18e21fa579ae58c321437e90fa47690ce004eed9 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 27 May 2021 17:36:44 +0530 Subject: [PATCH 274/864] fixed typos --- src/client/models.js | 10 +++++----- src/commands/models.js | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/client/models.js b/src/client/models.js index 6bd866ce..53233838 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -20,7 +20,7 @@ const { } = require('../commands/utils'); -module.exports = class Actions { +module.exports = class Models { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/models`; @@ -40,17 +40,17 @@ module.exports = class Actions { .catch(err => constructError(err)); } - deleteModel(projectId, token, actionName) { + deleteModel(projectId, token, modelName) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}`; - debug('deleteAction(%s) => %s', actionName, endpoint); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}`; + debug('deleteAction(%s) => %s', modelName, endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }) .json() - .then(action => ({ success: true, action })) + .then(model => ({ success: true, model })) .catch(err => constructError(err)); } }; diff --git a/src/commands/models.js b/src/commands/models.js index abb23bdf..faa72e9b 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -64,11 +64,11 @@ module.exports.DeleteModelCommand = class { this.program = program; } - execute(actionName, options) { + execute(modelName, options) { const profile = loadProfile(options.profile); - debug('%s.executeDeleteAction(%s)', profile.name, actionName); + debug('%s.executeDeleteModel(%s)', profile.name, modelName); const models = new Models(profile.url); - models.deleteModel(options.project || profile.project, profile.token, actionName) + models.deleteModel(options.project || profile.project, profile.token, modelName) .then((response) => { if (response && response.success) { const result = filterObject(response, options); From 2304f159aba3caedef4fb86fc467a831822ec872 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 28 May 2021 12:02:41 +0530 Subject: [PATCH 275/864] added list models and describe model clis --- bin/cortex-models.js | 44 +++++++++++++++++++++++++- src/client/models.js | 45 ++++++++++++++++++++++++++ src/commands/models.js | 71 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 159 insertions(+), 1 deletion(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 1716cc87..b2ab831a 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -24,9 +24,51 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { DeleteModelCommand, SaveModelCommand, + DescribeModelCommand, + ListModelsCommand, } = require('../src/commands/models'); -program.description('Work with Cortex Actions'); +program.description('Work with Cortex Models'); + +// List Models +program + .command('list') + .description('List model definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((options) => { + try { + new ListModelsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Model +program + .command('describe ') + .description('Describe model') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--versions', 'To get list of versions of an model') + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((modelName, options) => { + try { + new DescribeModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + // Delete Model program diff --git a/src/client/models.js b/src/client/models.js index 53233838..703b6bcb 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -53,4 +53,49 @@ module.exports = class Models { .then(model => ({ success: true, model })) .catch(err => constructError(err)); } + + listModels(projectId, token) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}`; + debug('listModels() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(modelResp => ({ success: true, ...modelResp })) + .catch(err => constructError(err)); + } + + + describeModel(projectId, token, modelName, verbose) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}`; + + debug('describeAgent(%s) => %s', modelName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then(model => ({ success: true, model })) + .catch(err => constructError(err)); + } + + describeModelVersions(projectId, token, modelName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}/versions`; + + debug('describeAgentVersions(%s) => %s', modelName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(model => ({ success: true, model })) + .catch(err => constructError(err)); + } }; diff --git a/src/commands/models.js b/src/commands/models.js index faa72e9b..c19ad83b 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -14,9 +14,11 @@ * limitations under the License. */ const fs = require('fs'); +const moment = require('moment'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Models = require('../client/models'); +const { LISTTABLEFORMAT } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath @@ -59,6 +61,75 @@ module.exports.SaveModelCommand = class SaveModelCommand { } }; +module.exports.ListModelsCommand = class ListModelsCommand { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListModels()', profile.name); + + const models = new Models(profile.url); + models.listModels(options.project || profile.project, profile.token).then((response) => { + if (response.success) { + let result = response.models; + if (options.query) result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + } + } else { + printError(`Failed to list models: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to list models: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DescribeModelCommand = class DescribeModelCommand { + constructor(program) { + this.program = program; + } + + execute(modelName, options) { + const profile = loadProfile(options.profile); + const models = new Models(profile.url); + if (options.versions) { + debug('%s.executeDescribeModelVersions(%s)', profile.name, modelName); + models.describeModelVersions(options.project || profile.project, profile.token, modelName).then((response) => { + if (response.success) { + const result = filterObject(response.model, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe model versions ${modelName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe model versions ${modelName}: ${err.status} ${err.message}`, options); + }); + } else { + debug('%s.executeDescribeModel(%s)', profile.name, modelName); + models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { + if (response.success) { + const result = filterObject(response.model, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe model ${modelName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe model ${modelName}: ${err.status} ${err.message}`, options); + }); + } + } +}; + module.exports.DeleteModelCommand = class { constructor(program) { this.program = program; From b9fbf6cc6c5cb6c16c0147a56f14d46fa5e64afd Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 28 May 2021 12:06:33 +0530 Subject: [PATCH 276/864] fixed typos --- src/client/models.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/models.js b/src/client/models.js index 703b6bcb..25dd7316 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -73,7 +73,7 @@ module.exports = class Models { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}`; - debug('describeAgent(%s) => %s', modelName, endpoint); + debug('describeModel(%s) => %s', modelName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -88,7 +88,7 @@ module.exports = class Models { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}/versions`; - debug('describeAgentVersions(%s) => %s', modelName, endpoint); + debug('describeModelVersions(%s) => %s', modelName, endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, From 9eaefb2b5b0f36fbc2e9a5265ea3588d8ca69540 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 28 May 2021 14:58:29 -0500 Subject: [PATCH 277/864] Add env command, for setting CORTEX_TOKEN, CORTEX_URI, CORTEX_PROJECT for testing skills locally --- bin/cortex-configure.js | 12 ++++++++++-- src/commands/configure.js | 15 +++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 70a8466e..7bbebc65 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -24,6 +24,7 @@ const { ListProfilesCommand, SetProfileCommand, GetAccessToken, + PrintEnvVars, } = require('../src/commands/configure'); program @@ -45,8 +46,6 @@ program .command('token') .description('Create access token') .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .action((options) => { try { @@ -73,6 +72,15 @@ program new DescribeProfileCommand(program).execute({ profile: profileName, color: program.color }); }); +program + .command('env') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .description('Describe a configured profile') + .action((options) => { + new PrintEnvVars(program).execute(options); + }); + program .command('set-profile ') .description('Sets the current profile.') diff --git a/src/commands/configure.js b/src/commands/configure.js index b6d337cb..ecc230eb 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -168,3 +168,18 @@ module.exports.GetAccessToken = class { return printSuccess(jwt, options); } }; + +module.exports.PrintEnvVars = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const vars = []; + const profile = loadProfile(options.profile); + vars.push(`export CORTEX_TOKEN=${profile.token}`); + vars.push(`export CORTEX_URI=${profile.url}`); + vars.push(`export CORTEX_PROJECT=${options.project || profile.project}`); + return printSuccess(vars.join('\n'), options); + } +} From 8a863291d411ea43fe9ba5a41c0ce2531c047624 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 31 May 2021 13:49:30 +0530 Subject: [PATCH 278/864] gql request for models --- src/client/apiServerClient.js | 15 ++++++++++++++ src/commands/models.js | 38 +++++++++++++++++------------------ 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 27cb0714..2e9e4ddd 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -93,4 +93,19 @@ module.exports = class ApiServerClient { throw err; } } + + /** + * Query campaign using graphql + * @param projectId, offset, limit + * @return {Promise} + */ + async listModels(projectId, offset, limit, token) { + try { + const fetched = await this._client(token) + .request(gql`{ models ( project: "${projectId}", offset: "${offset}", limit: "${limit}" ) { name, title, description} }`); + return _.get(fetched, 'models', []); + } catch (err) { + throw err; + } + } }; diff --git a/src/commands/models.js b/src/commands/models.js index c19ad83b..981dae3f 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -14,11 +14,10 @@ * limitations under the License. */ const fs = require('fs'); -const moment = require('moment'); const debug = require('debug')('cortex:cli'); +const ApiServerClient = require('../client/apiServerClient'); const { loadProfile } = require('../config'); const Models = require('../client/models'); -const { LISTTABLEFORMAT } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath @@ -66,29 +65,28 @@ module.exports.ListModelsCommand = class ListModelsCommand { this.program = program; } - execute(options) { + async execute(options) { const profile = loadProfile(options.profile); debug('%s.executeListModels()', profile.name); - const models = new Models(profile.url); - models.listModels(options.project || profile.project, profile.token).then((response) => { - if (response.success) { - let result = response.models; - if (options.query) result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); - } + const cli = new ApiServerClient(profile.url); + try { + const response = await cli.listModels(options.project || profile.project, options.offset, options.limit, profile.token); + let result = response; + if (options.query) result = filterObject(result, options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); } else { - printError(`Failed to list models: ${response.status} ${response.message}`, options); + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 80 }, + ]; + printTable(tableSpec, result); } - }) - .catch((err) => { - debug(err); - printError(`Failed to list models: ${err.status} ${err.message}`, options); - }); + } catch (err) { + printError(`Failed to list models: ${err.status} ${err.message}`, options); + } } }; From a140c13e953bbfc663ab8d2d9e496829301b7500 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Mon, 31 May 2021 14:15:41 +0530 Subject: [PATCH 279/864] bug fix for offset and limit listModel --- bin/cortex-models.js | 2 ++ src/client/apiServerClient.js | 2 +- src/client/models.js | 15 --------------- 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index b2ab831a..3f87264e 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -39,6 +39,8 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--offset [offset]', 'The offset to use') + .option('--limit [limit]', 'The limit to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 2e9e4ddd..a3c84b75 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -102,7 +102,7 @@ module.exports = class ApiServerClient { async listModels(projectId, offset, limit, token) { try { const fetched = await this._client(token) - .request(gql`{ models ( project: "${projectId}", offset: "${offset}", limit: "${limit}" ) { name, title, description} }`); + .request(gql`{ models ( project: "${projectId}", offset: ${offset}, limit: ${limit} ) { name, title, description} }`); return _.get(fetched, 'models', []); } catch (err) { throw err; diff --git a/src/client/models.js b/src/client/models.js index 25dd7316..c7b51965 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -54,21 +54,6 @@ module.exports = class Models { .catch(err => constructError(err)); } - listModels(projectId, token) { - checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}`; - debug('listModels() => %s', endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) - .json() - .then(modelResp => ({ success: true, ...modelResp })) - .catch(err => constructError(err)); - } - - describeModel(projectId, token, modelName, verbose) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}`; From 403f60395f765efacf06dce021cba484d2b62e1c Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 31 May 2021 17:39:26 +0530 Subject: [PATCH 280/864] desc model cli --- src/client/apiServerClient.js | 19 +++++++++++++++-- src/client/models.js | 30 -------------------------- src/commands/models.js | 40 +++++++++++------------------------ 3 files changed, 29 insertions(+), 60 deletions(-) diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index a3c84b75..e41af813 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -95,14 +95,29 @@ module.exports = class ApiServerClient { } /** - * Query campaign using graphql + * Query model list using graphql * @param projectId, offset, limit * @return {Promise} */ async listModels(projectId, offset, limit, token) { try { const fetched = await this._client(token) - .request(gql`{ models ( project: "${projectId}", offset: ${offset}, limit: ${limit} ) { name, title, description} }`); + .request(gql`{ models ( project: "${projectId}", offset: ${offset}, limit: ${limit} ) { name, title, description } }`); + return _.get(fetched, 'models', []); + } catch (err) { + throw err; + } + } + + /** + * Query model description using graphql + * @param projectId, name + * @return {Promise} + */ + async descModels(projectId, name, token) { + try { + const fetched = await this._client(token) + .request(gql`{ modelByName ( project: "${projectId}", name: "${name}" ) { name, description, model_mode, source, status, title, type } }`); return _.get(fetched, 'models', []); } catch (err) { throw err; diff --git a/src/client/models.js b/src/client/models.js index c7b51965..53233838 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -53,34 +53,4 @@ module.exports = class Models { .then(model => ({ success: true, model })) .catch(err => constructError(err)); } - - describeModel(projectId, token, modelName, verbose) { - checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}`; - - debug('describeModel(%s) => %s', modelName, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - searchParams: { verbose }, - }).json() - .then(model => ({ success: true, model })) - .catch(err => constructError(err)); - } - - describeModelVersions(projectId, token, modelName) { - checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}/versions`; - - debug('describeModelVersions(%s) => %s', modelName, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) - .json() - .then(model => ({ success: true, model })) - .catch(err => constructError(err)); - } }; diff --git a/src/commands/models.js b/src/commands/models.js index 981dae3f..a6692fef 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -95,35 +95,19 @@ module.exports.DescribeModelCommand = class DescribeModelCommand { this.program = program; } - execute(modelName, options) { + async execute(options) { const profile = loadProfile(options.profile); - const models = new Models(profile.url); - if (options.versions) { - debug('%s.executeDescribeModelVersions(%s)', profile.name, modelName); - models.describeModelVersions(options.project || profile.project, profile.token, modelName).then((response) => { - if (response.success) { - const result = filterObject(response.model, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe model versions ${modelName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe model versions ${modelName}: ${err.status} ${err.message}`, options); - }); - } else { - debug('%s.executeDescribeModel(%s)', profile.name, modelName); - models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { - if (response.success) { - const result = filterObject(response.model, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe model ${modelName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe model ${modelName}: ${err.status} ${err.message}`, options); - }); + debug('%s.executeDescribeModels()', profile.name); + + const cli = new ApiServerClient(profile.url); + try { + const response = await cli.descModels(options.project || profile.project, options.name, profile.token); + let result = response; + if (options.query) result = filterObject(result, options); + // console.log('options.json=', options.json) + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + printError(`Failed to describe model: ${err.status} ${err.message}`, options); } } }; From 38567459f76e91fb8af4e5c9a331e22abf1100a1 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 31 May 2021 18:11:28 +0530 Subject: [PATCH 281/864] added model name --- src/commands/models.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/models.js b/src/commands/models.js index a6692fef..d8cbaf14 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -95,13 +95,13 @@ module.exports.DescribeModelCommand = class DescribeModelCommand { this.program = program; } - async execute(options) { + async execute(modelName, options) { const profile = loadProfile(options.profile); debug('%s.executeDescribeModels()', profile.name); const cli = new ApiServerClient(profile.url); try { - const response = await cli.descModels(options.project || profile.project, options.name, profile.token); + const response = await cli.descModels(options.project || profile.project, modelName, profile.token); let result = response; if (options.query) result = filterObject(result, options); // console.log('options.json=', options.json) From 71b3dee26b3f971c9b67bf804c4b011f137ce112 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 31 May 2021 18:23:30 +0530 Subject: [PATCH 282/864] fixed key name --- src/client/apiServerClient.js | 2 +- src/commands/models.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index e41af813..d4fb6c80 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -118,7 +118,7 @@ module.exports = class ApiServerClient { try { const fetched = await this._client(token) .request(gql`{ modelByName ( project: "${projectId}", name: "${name}" ) { name, description, model_mode, source, status, title, type } }`); - return _.get(fetched, 'models', []); + return _.get(fetched, 'modelByName', []); } catch (err) { throw err; } diff --git a/src/commands/models.js b/src/commands/models.js index d8cbaf14..0c241dde 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -104,7 +104,6 @@ module.exports.DescribeModelCommand = class DescribeModelCommand { const response = await cli.descModels(options.project || profile.project, modelName, profile.token); let result = response; if (options.query) result = filterObject(result, options); - // console.log('options.json=', options.json) printSuccess(JSON.stringify(result, null, 2), options); } catch (err) { printError(`Failed to describe model: ${err.status} ${err.message}`, options); From 3baafa9d05a3aeb20b49689509a10025c2193f19 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 1 Jun 2021 22:05:32 +0530 Subject: [PATCH 283/864] impact assessment CLI integration --- bin/cortex-assessments.js | 173 +++++++++++++++++++++++++++ bin/cortex.js | 1 + src/client/assessments.js | 117 ++++++++++++++++++ src/commands/assessments.js | 232 ++++++++++++++++++++++++++++++++++++ 4 files changed, 523 insertions(+) create mode 100755 bin/cortex-assessments.js create mode 100644 src/client/assessments.js create mode 100644 src/commands/assessments.js diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js new file mode 100755 index 00000000..8cbbdf0b --- /dev/null +++ b/bin/cortex-assessments.js @@ -0,0 +1,173 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const { + ListResourcesCommand, + CreateAssessmentCommand, + ListAssessmentCommand, + DescribeAssessmentCommand, + DeleteAssessmentCommand, + RunAssessmentCommand, + ListAssessmentReportCommand, + GetAssessmentReportCommand, +} = require('../src/commands/assessments') + +program.description('Work with Cortex Assessments'); + +program + .command('generate') + .description('List matching resources') + .storeOptionsAsProperties(false) + .option('--scope [projects]', 'Assessment scope projects') + .option('--name [Cortex component name]', 'Cortex component name') + .option('--type [Cortex component types]', 'Assessment scope component types') + .option('--skip [Skip records for pagination]', 'Skip records for pagination') + .option('--limit [Limit records for pagination]', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((options) => { + try { + new ListResourcesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('create [assessmentDefinition]') + .alias('save') + .description('Create an assessment') + .storeOptionsAsProperties(false) + .option('--name [name]', 'Assessment name') + .option('--title [title]', 'Assessment title') + .option('--description [description]', 'Assessment description') + .option('--scope [projects]', 'Assessment scope projects') + .option('--component [Cortex component name]', 'Cortex component name') + .option('--type [Cortex component types]', 'Assessment scope component types') + .option('--profile [profile]', 'The profile to use') + .option('-y, --yaml', 'Use YAML format') + .action(withCompatibilityCheck((assessmentDefinition, options) => { + try { + new CreateAssessmentCommand(program).execute(assessmentDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('list') + .description('List assessments') + .option('--skip [Skip records for pagination]', 'Skip records for pagination') + .option('--limit [Limit records for pagination]', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((options) => { + try { + new ListAssessmentCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('describe ') + .alias('get') + .description('Describe the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new DescribeAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('delete ') + .description('Delete the assessment and its generated reports') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new DeleteAssessmentCommand(program).execute(assessmentName, options) + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('report ') + .description('Run report generation of the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new RunAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('report-list ') + .description('Lists reports of the assessment') + .option('--skip [Skip records for pagination]', 'Skip records for pagination') + .option('--limit [Limit records for pagination]', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new ListAssessmentReportCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('report-get ') + .description('Get report of the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .action(withCompatibilityCheck((assessmentName, reportId, options) => { + try { + new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 4e9fdc5d..2fce4884 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -28,6 +28,7 @@ program .description('Cortex CLI') .command('actions [cmd]', 'Work with Cortex Actions') .command('agents [cmd]', 'Work with Cortex Agents') + .command('assessments [cmd]', 'Work with Cortex Impact Assessments') .command('campaigns [cmd]', 'Work with Cortex Campaigns') .command('configure', 'Configure the Cortex CLI') .command('connections [cmd]', 'Work with Cortex Connections') diff --git a/src/client/assessments.js b/src/client/assessments.js new file mode 100644 index 00000000..86364f2f --- /dev/null +++ b/src/client/assessments.js @@ -0,0 +1,117 @@ +/* + * Copyright 2021 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const _ = require('lodash'); +const querystring = require("querystring"); +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { + constructError, getUserAgent, +} = require('../commands/utils'); + +module.exports = class Assessments { + constructor(cortexUrl) { + this.endpointV4 = `${cortexUrl}/fabric/v4/impactassessment`; + } + queryResources(token, name, projectId, type, skip, limit) { + const url = `${this.endpointV4}/resources?${querystring.stringify({ projectId, name, type, skip, limit })}`; + debug('queryResources => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(resources => resources) + .catch(err => constructError(err)); + } + createAssessment(token, name, title, description, scope, componentName, componentTypes) { + const url = `${this.endpointV4}/assessments` + debug('createAssessment => %s', url); + return got + .post(url, { + headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, + 'user-agent': getUserAgent(), + body: JSON.stringify({name, title, description, scope, componentName, componentTypes}) + }).json() + .then(resources => resources) + .catch(err => constructError(err)); + } + listAssessment(token, skip, limit) { + const url = `${this.endpointV4}/assessments?${querystring.stringify({ skip, limit })}`; + debug('listAssessment => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(resources => resources) + .catch(err => constructError(err)); + } + getAssessment(token, name) { + const url = `${this.endpointV4}/assessments/${name}`; + debug('getAssessment => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(resources => resources) + .catch(err => constructError(err)); + } + deleteAssessment(token, name) { + const url = `${this.endpointV4}/assessments/${name}`; + debug('deleteAssessment => %s', url); + return got + .delete(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(resources => resources) + .catch(err => constructError(err)); + } + runAssessment(token, name) { + const url = `${this.endpointV4}/assessments/${name}/run`; + debug('runAssessment => %s', url); + return got + .post(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(resources => resources) + .catch(err => constructError(err)); + } + listAssessmentReports(token, name) { + const url = `${this.endpointV4}/assessments/${name}/reports`; + debug('listAssessmentReports => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(resources => resources) + .catch(err => constructError(err)); + } + getAssessmentReport(token, name, reportId) { + const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}`; + debug('getAssessmentReport => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(resources => resources) + .catch(err => constructError(err)); + } +} diff --git a/src/commands/assessments.js b/src/commands/assessments.js new file mode 100644 index 00000000..46cfc2d7 --- /dev/null +++ b/src/commands/assessments.js @@ -0,0 +1,232 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const fs = require('fs'); +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Assessments = require('../client/assessments'); + +const { + printSuccess, printError, parseObject, printTable, +} = require('./utils'); + +module.exports.ListResourcesCommand = class { + constructor(program) { + this.program = program; + } + + execute(command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.ListResourcesCommand()', profile.name); + + const client = new Assessments(profile.url); + client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit) + .then((response) => { + if (options.json) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'resourceName', width: 30 }, + { column: 'Title', field: 'resourceTitle', width: 30 }, + { column: 'Type', field: 'resourceType', width: 16 }, + { column: 'Project', field: '_projectId', width: 15 }, + ]; + printTable(tableSpec, response); + } + }) + .catch((err) => { + printError(`Failed to list actions: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.CreateAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(assessmentDef, command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.CreateAssessmentCommand()', profile.name); + const client = new Assessments(profile.url); + let assessment = {}; + if (assessmentDef) { + try { + const assessmentDefStr = fs.readFileSync(assessmentDef); + assessment = parseObject(assessmentDefStr, options); + } catch (err) { + printError(`Failed to read assessment definition ${assessmentDef}: ${err.message}`, options); + } + } + client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, + options.description || assessment.description, options.scope || assessment.scope, + options.component || assessment.component, options.type || assessment.type) + .then((response) => { + if (response.success) { + printSuccess(`Assessment ${options.name} saved successfully`, options); + } else { + printError(`Failed to save assessment: ${JSON.stringify(response)}`); + } + }) + .catch((err) => { + printError(`Failed to save assessment: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.ListAssessmentCommand()', profile.name); + + const client = new Assessments(profile.url); + client.listAssessment(profile.token, options.skip, options.limit) + .then((response) => { + if (options.json) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 30 }, + { column: 'Description', field: 'description', width: 40 }, + { column: 'Projects', field: 'scope', width: 25 }, + { column: '# Reports', field: 'reportCount', width: 12 }, + { column: 'Created At', field: 'createdAt', width: 25 }, + ]; + printTable(tableSpec, response); + } + }) + .catch((err) => { + printError(`Failed to list assessment: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DescribeAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, options) { + const profile = loadProfile(options.profile); + debug('%s.DescribeAssessmentCommand()', profile.name); + + const client = new Assessments(profile.url); + client.getAssessment(profile.token, name) + .then((response) => { + printSuccess(JSON.stringify(response, null, 2), options); + }) + .catch((err) => { + printError(`Failed to get assessment ${name}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeleteAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, options) { + const profile = loadProfile(options.profile); + debug('%s.DeleteAssessmentCommand()', profile.name); + + const client = new Assessments(profile.url); + client.deleteAssessment(profile.token, name) + .then((response) => { + printSuccess(JSON.stringify(response, null, 2), options); + }) + .catch((err) => { + printError(`Failed to delete assessment ${name}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RunAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, options) { + const profile = loadProfile(options.profile); + debug('%s.RunAssessmentCommand()', profile.name); + + const client = new Assessments(profile.url); + client.runAssessment(profile.token, name) + .then((response) => { + printSuccess(JSON.stringify(response, null, 2), options); + }) + .catch((err) => { + printError(`Failed to run assessment ${name}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListAssessmentReportCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, options) { + const profile = loadProfile(options.profile); + debug('%s.ListAssessmentReportCommand()', profile.name); + + const client = new Assessments(profile.url); + client.listAssessmentReports(profile.token, name) + .then((response) => { + if (options.json) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + const tableSpec = [ + { column: 'Assessment Name', field: 'assessmentId', width: 30 }, + { column: 'Report Id', field: 'reportId', width: 40 }, + { column: 'Impact Summary', field: 'summary', width: 60 }, + { column: 'Created At', field: 'createdAt', width: 25 }, + ]; + response.forEach(r => r.summary = JSON.stringify(r.summary)); + printTable(tableSpec, response ); + } + }) + .catch((err) => { + printError(`Failed to list assessment ${name} reports: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.GetAssessmentReportCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, reportId, options) { + const profile = loadProfile(options.profile); + debug('%s.GetAssessmentReportCommand()', profile.name); + + const client = new Assessments(profile.url); + client.getAssessmentReport(profile.token, name, reportId) + .then((response) => { + printSuccess(JSON.stringify(response, null, 2), options); + }) + .catch((err) => { + printError(`Failed to get assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); + }); + } +}; From f26a94f75fb9be5ca27f3d6343261d2cb940ba64 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 1 Jun 2021 22:30:42 +0530 Subject: [PATCH 284/864] linting fixes --- bin/cortex-assessments.js | 4 ++-- src/client/assessments.js | 17 ++++++++++++----- src/commands/assessments.js | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 8cbbdf0b..cf743792 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -29,7 +29,7 @@ const { RunAssessmentCommand, ListAssessmentReportCommand, GetAssessmentReportCommand, -} = require('../src/commands/assessments') +} = require('../src/commands/assessments'); program.description('Work with Cortex Assessments'); @@ -117,7 +117,7 @@ program .option('--profile [profile]', 'The profile to use') .action(withCompatibilityCheck((assessmentName, options) => { try { - new DeleteAssessmentCommand(program).execute(assessmentName, options) + new DeleteAssessmentCommand(program).execute(assessmentName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/client/assessments.js b/src/client/assessments.js index 86364f2f..dab43eec 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -13,8 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const _ = require('lodash'); -const querystring = require("querystring"); +const querystring = require('querystring'); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); const { @@ -25,6 +24,7 @@ module.exports = class Assessments { constructor(cortexUrl) { this.endpointV4 = `${cortexUrl}/fabric/v4/impactassessment`; } + queryResources(token, name, projectId, type, skip, limit) { const url = `${this.endpointV4}/resources?${querystring.stringify({ projectId, name, type, skip, limit })}`; debug('queryResources => %s', url); @@ -36,18 +36,20 @@ module.exports = class Assessments { .then(resources => resources) .catch(err => constructError(err)); } + createAssessment(token, name, title, description, scope, componentName, componentTypes) { - const url = `${this.endpointV4}/assessments` + const url = `${this.endpointV4}/assessments`; debug('createAssessment => %s', url); return got .post(url, { headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, 'user-agent': getUserAgent(), - body: JSON.stringify({name, title, description, scope, componentName, componentTypes}) + body: JSON.stringify({ name, title, description, scope, componentName, componentTypes }), }).json() .then(resources => resources) .catch(err => constructError(err)); } + listAssessment(token, skip, limit) { const url = `${this.endpointV4}/assessments?${querystring.stringify({ skip, limit })}`; debug('listAssessment => %s', url); @@ -59,6 +61,7 @@ module.exports = class Assessments { .then(resources => resources) .catch(err => constructError(err)); } + getAssessment(token, name) { const url = `${this.endpointV4}/assessments/${name}`; debug('getAssessment => %s', url); @@ -70,6 +73,7 @@ module.exports = class Assessments { .then(resources => resources) .catch(err => constructError(err)); } + deleteAssessment(token, name) { const url = `${this.endpointV4}/assessments/${name}`; debug('deleteAssessment => %s', url); @@ -81,6 +85,7 @@ module.exports = class Assessments { .then(resources => resources) .catch(err => constructError(err)); } + runAssessment(token, name) { const url = `${this.endpointV4}/assessments/${name}/run`; debug('runAssessment => %s', url); @@ -92,6 +97,7 @@ module.exports = class Assessments { .then(resources => resources) .catch(err => constructError(err)); } + listAssessmentReports(token, name) { const url = `${this.endpointV4}/assessments/${name}/reports`; debug('listAssessmentReports => %s', url); @@ -103,6 +109,7 @@ module.exports = class Assessments { .then(resources => resources) .catch(err => constructError(err)); } + getAssessmentReport(token, name, reportId) { const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}`; debug('getAssessmentReport => %s', url); @@ -114,4 +121,4 @@ module.exports = class Assessments { .then(resources => resources) .catch(err => constructError(err)); } -} +}; diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 46cfc2d7..d265b60d 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -202,7 +202,7 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Created At', field: 'createdAt', width: 25 }, ]; response.forEach(r => r.summary = JSON.stringify(r.summary)); - printTable(tableSpec, response ); + printTable(tableSpec, response); } }) .catch((err) => { From 33b9d4f341740b63bb976b1593627e8773dc8715 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 2 Jun 2021 21:53:08 +0530 Subject: [PATCH 285/864] report export and display formatting --- bin/cortex-assessments.js | 23 ++++++++++++++---- src/client/assessments.js | 11 +++++++++ src/commands/assessments.js | 48 +++++++++++++++++++++++++++++++++---- 3 files changed, 73 insertions(+), 9 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index cf743792..05910f25 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -29,6 +29,7 @@ const { RunAssessmentCommand, ListAssessmentReportCommand, GetAssessmentReportCommand, + ExportAssessmentReportCommand, } = require('../src/commands/assessments'); program.description('Work with Cortex Assessments'); @@ -46,7 +47,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListResourcesCommand(program).execute(options); @@ -66,6 +66,7 @@ program .option('--scope [projects]', 'Assessment scope projects') .option('--component [Cortex component name]', 'Cortex component name') .option('--type [Cortex component types]', 'Assessment scope component types') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML format') .action(withCompatibilityCheck((assessmentDefinition, options) => { @@ -85,7 +86,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListAssessmentCommand(program).execute(options); @@ -129,7 +129,6 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((assessmentName, options) => { try { new RunAssessmentCommand(program).execute(assessmentName, options); @@ -146,7 +145,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--json', 'Output results using JSON') .action(withCompatibilityCheck((assessmentName, options) => { try { new ListAssessmentReportCommand(program).execute(assessmentName, options); @@ -161,7 +160,7 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--json', 'Output results using JSON') .action(withCompatibilityCheck((assessmentName, reportId, options) => { try { new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); @@ -170,4 +169,18 @@ program } })); +program + .command('report-export ') + .description('Export report of the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, reportId, options) => { + try { + new ExportAssessmentReportCommand(program).execute(assessmentName, reportId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/assessments.js b/src/client/assessments.js index dab43eec..18abde84 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -14,6 +14,7 @@ * limitations under the License. */ const querystring = require('querystring'); +const { createWriteStream } = require("fs"); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); const { @@ -121,4 +122,14 @@ module.exports = class Assessments { .then(resources => resources) .catch(err => constructError(err)); } + + exportAssessmentReport(token, name, reportId) { + const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}/export`; + debug('exportAssessmentReport => %s', url); + got.stream(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).pipe(createWriteStream(`${reportId}.csv`), { end: true }); + return Promise.resolve({ file: `${reportId}.csv`}); + } }; diff --git a/src/commands/assessments.js b/src/commands/assessments.js index d265b60d..e919c629 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -14,7 +14,9 @@ * limitations under the License. */ const fs = require('fs'); +const _ = require('lodash'); const debug = require('debug')('cortex:cli'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Assessments = require('../client/assessments'); @@ -111,7 +113,7 @@ module.exports.ListAssessmentCommand = class { { column: '# Reports', field: 'reportCount', width: 12 }, { column: 'Created At', field: 'createdAt', width: 25 }, ]; - printTable(tableSpec, response); + printTable(tableSpec, response, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); } }) .catch((err) => { @@ -201,8 +203,8 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Impact Summary', field: 'summary', width: 60 }, { column: 'Created At', field: 'createdAt', width: 25 }, ]; - response.forEach(r => r.summary = JSON.stringify(r.summary)); - printTable(tableSpec, response); + response.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); + printTable(tableSpec, response, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); } }) .catch((err) => { @@ -223,10 +225,48 @@ module.exports.GetAssessmentReportCommand = class { const client = new Assessments(profile.url); client.getAssessmentReport(profile.token, name, reportId) .then((response) => { - printSuccess(JSON.stringify(response, null, 2), options); + if (options.json) { + const output = { + name: response.reportId, + assessment: response.assessmentId, + summary: Object.fromEntries(response.summary.map(item => [item.type, item.count])), + report: response.detail, + createdAt: response.createdAt, + } + printSuccess(JSON.stringify(output, null, 2), options); + } else { + const flattenRefs = _.uniqBy(_.flatten(response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId })))), (r) => (`${r.name}-${r.type}`)); + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 30 }, + { column: 'Type', field: 'type', width: 20 }, + { column: 'Project', field: 'projectId', width: 25 }, + ]; + printTable(tableSpec, _.sortBy(flattenRefs, 'type')); + } }) .catch((err) => { printError(`Failed to get assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); }); } }; + +module.exports.ExportAssessmentReportCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, reportId, options) { + const profile = loadProfile(options.profile); + debug('%s.ExportAssessmentReportCommand()', profile.name); + + const client = new Assessments(profile.url); + client.exportAssessmentReport(profile.token, name, reportId) + .then((response) => { + printSuccess(`Report exported to ${response.file}`, options) + }) + .catch((err) => { + printError(`Failed to export assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); + }); + } +}; From fb7651496d94cd8a4c208575c5dd4185ab16c0a3 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 3 Jun 2021 00:44:37 +0530 Subject: [PATCH 286/864] error handling and meta fields like createdBy, createdAt --- src/client/assessments.js | 19 ++++++++++--------- src/commands/assessments.js | 12 ++++++++++++ src/commands/utils.js | 6 +++--- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index 18abde84..dc8c2d24 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -33,8 +33,9 @@ module.exports = class Assessments { .get(url, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - }).json() - .then(resources => resources) + }) + .json() + .then(res => res) .catch(err => constructError(err)); } @@ -47,7 +48,7 @@ module.exports = class Assessments { 'user-agent': getUserAgent(), body: JSON.stringify({ name, title, description, scope, componentName, componentTypes }), }).json() - .then(resources => resources) + .then(res => res) .catch(err => constructError(err)); } @@ -59,7 +60,7 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(resources => resources) + .then(res => res) .catch(err => constructError(err)); } @@ -71,7 +72,7 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(resources => resources) + .then(res => res) .catch(err => constructError(err)); } @@ -83,7 +84,7 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(resources => resources) + .then(res => res) .catch(err => constructError(err)); } @@ -95,7 +96,7 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(resources => resources) + .then(res => res) .catch(err => constructError(err)); } @@ -107,7 +108,7 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(resources => resources) + .then(res => res) .catch(err => constructError(err)); } @@ -119,7 +120,7 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(resources => resources) + .then(res => res) .catch(err => constructError(err)); } diff --git a/src/commands/assessments.js b/src/commands/assessments.js index e919c629..92a7628f 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -37,6 +37,7 @@ module.exports.ListResourcesCommand = class { const client = new Assessments(profile.url); client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit) .then((response) => { + if (!response.success) throw response; if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { @@ -78,6 +79,7 @@ module.exports.CreateAssessmentCommand = class { options.description || assessment.description, options.scope || assessment.scope, options.component || assessment.component, options.type || assessment.type) .then((response) => { + if (!response.success) throw response; if (response.success) { printSuccess(`Assessment ${options.name} saved successfully`, options); } else { @@ -102,6 +104,7 @@ module.exports.ListAssessmentCommand = class { const client = new Assessments(profile.url); client.listAssessment(profile.token, options.skip, options.limit) .then((response) => { + if (!response.success) throw response; if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { @@ -112,6 +115,7 @@ module.exports.ListAssessmentCommand = class { { column: 'Projects', field: 'scope', width: 25 }, { column: '# Reports', field: 'reportCount', width: 12 }, { column: 'Created At', field: 'createdAt', width: 25 }, + { column: 'Created By', field: 'createdBy', width: 25 }, ]; printTable(tableSpec, response, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); } @@ -134,6 +138,7 @@ module.exports.DescribeAssessmentCommand = class { const client = new Assessments(profile.url); client.getAssessment(profile.token, name) .then((response) => { + if (!response.success) throw response; printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { @@ -154,6 +159,7 @@ module.exports.DeleteAssessmentCommand = class { const client = new Assessments(profile.url); client.deleteAssessment(profile.token, name) .then((response) => { + if (!response.success) throw response; printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { @@ -174,6 +180,7 @@ module.exports.RunAssessmentCommand = class { const client = new Assessments(profile.url); client.runAssessment(profile.token, name) .then((response) => { + if (!response.success) throw response; printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { @@ -194,6 +201,7 @@ module.exports.ListAssessmentReportCommand = class { const client = new Assessments(profile.url); client.listAssessmentReports(profile.token, name) .then((response) => { + if (!response.success) throw response; if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { @@ -202,6 +210,7 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Report Id', field: 'reportId', width: 40 }, { column: 'Impact Summary', field: 'summary', width: 60 }, { column: 'Created At', field: 'createdAt', width: 25 }, + { column: 'Created By', field: 'createdBy', width: 25 }, ]; response.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); printTable(tableSpec, response, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); @@ -225,6 +234,7 @@ module.exports.GetAssessmentReportCommand = class { const client = new Assessments(profile.url); client.getAssessmentReport(profile.token, name, reportId) .then((response) => { + if (!response.success) throw response; if (options.json) { const output = { name: response.reportId, @@ -232,6 +242,7 @@ module.exports.GetAssessmentReportCommand = class { summary: Object.fromEntries(response.summary.map(item => [item.type, item.count])), report: response.detail, createdAt: response.createdAt, + createdBy: response.createdBy, } printSuccess(JSON.stringify(output, null, 2), options); } else { @@ -263,6 +274,7 @@ module.exports.ExportAssessmentReportCommand = class { const client = new Assessments(profile.url); client.exportAssessmentReport(profile.token, name, reportId) .then((response) => { + if (!response.success) throw response; printSuccess(`Report exported to ${response.file}`, options) }) .catch((err) => { diff --git a/src/commands/utils.js b/src/commands/utils.js index d48cacbf..38ad6172 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -48,7 +48,7 @@ module.exports.constructError = (error) => { // Guess it wasn't JSON! } return { - success: false, message: errorText, details, status: error.status || '', + success: false, message: errorText, details, status: error.status || error.code || _.get(errResp, 'statusCode') || '', }; }; @@ -206,7 +206,7 @@ module.exports.formatAllServiceInputParameters = (allParameters) => { if (allParameters.$ref != null) { return `$ref:${allParameters.$ref}`; } - + return allParameters.map(inputParameters => formatServiceInputParameter(inputParameters)).join('\n'); }; @@ -231,7 +231,7 @@ module.exports.countLinesInFile = filePath => new Promise((resolve, reject) => { .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); }); module.exports.formatValidationPath = (p) => { - let cnt = 0; let + let cnt = 0; let res = ''; const len = p.length; p.forEach((s) => { From f2a3f62019f8104501f829c8799f6fd86f94efb9 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 3 Jun 2021 00:56:08 +0530 Subject: [PATCH 287/864] error handling --- src/commands/assessments.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 92a7628f..b575a6d3 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -37,7 +37,7 @@ module.exports.ListResourcesCommand = class { const client = new Assessments(profile.url); client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit) .then((response) => { - if (!response.success) throw response; + if (response.success === false) throw response; if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { @@ -79,7 +79,7 @@ module.exports.CreateAssessmentCommand = class { options.description || assessment.description, options.scope || assessment.scope, options.component || assessment.component, options.type || assessment.type) .then((response) => { - if (!response.success) throw response; + if (response.success === false) throw response; if (response.success) { printSuccess(`Assessment ${options.name} saved successfully`, options); } else { @@ -104,7 +104,7 @@ module.exports.ListAssessmentCommand = class { const client = new Assessments(profile.url); client.listAssessment(profile.token, options.skip, options.limit) .then((response) => { - if (!response.success) throw response; + if (response.success === false) throw response; if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { @@ -138,7 +138,7 @@ module.exports.DescribeAssessmentCommand = class { const client = new Assessments(profile.url); client.getAssessment(profile.token, name) .then((response) => { - if (!response.success) throw response; + if (response.success === false) throw response; printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { @@ -159,7 +159,7 @@ module.exports.DeleteAssessmentCommand = class { const client = new Assessments(profile.url); client.deleteAssessment(profile.token, name) .then((response) => { - if (!response.success) throw response; + if (response.success === false) throw response; printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { @@ -180,7 +180,7 @@ module.exports.RunAssessmentCommand = class { const client = new Assessments(profile.url); client.runAssessment(profile.token, name) .then((response) => { - if (!response.success) throw response; + if (response.success === false) throw response; printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { @@ -201,7 +201,7 @@ module.exports.ListAssessmentReportCommand = class { const client = new Assessments(profile.url); client.listAssessmentReports(profile.token, name) .then((response) => { - if (!response.success) throw response; + if (response.success === false) throw response; if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { @@ -234,7 +234,7 @@ module.exports.GetAssessmentReportCommand = class { const client = new Assessments(profile.url); client.getAssessmentReport(profile.token, name, reportId) .then((response) => { - if (!response.success) throw response; + if (response.success === false) throw response; if (options.json) { const output = { name: response.reportId, @@ -274,7 +274,7 @@ module.exports.ExportAssessmentReportCommand = class { const client = new Assessments(profile.url); client.exportAssessmentReport(profile.token, name, reportId) .then((response) => { - if (!response.success) throw response; + if (response.success === false) throw response; printSuccess(`Report exported to ${response.file}`, options) }) .catch((err) => { From 8b17c1ec8ab7060cc0dafd192dc0514c86767f29 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 3 Jun 2021 11:02:30 +0530 Subject: [PATCH 288/864] updated listModels and describe models cli --- src/client/models.js | 28 +++++++++++++++++++ src/commands/models.js | 63 ++++++++++++++++++++++-------------------- 2 files changed, 61 insertions(+), 30 deletions(-) diff --git a/src/client/models.js b/src/client/models.js index 53233838..c8599bb7 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -53,4 +53,32 @@ module.exports = class Models { .then(model => ({ success: true, model })) .catch(err => constructError(err)); } + + describeModel(projectId, token, modelName, verbose) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}`; + debug('describeModel(%s) => %s', modelName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then(model => ({ success: true, model })) + .catch(err => constructError(err)); + } + + listModels(projectId, offset, limit, token) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}?skip=${offset}&limit=${limit}`; + debug('listModels() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(modelsResp => ({ success: true, ...modelsResp })) + .catch(err => constructError(err)); + } }; diff --git a/src/commands/models.js b/src/commands/models.js index 0c241dde..26b93a2d 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -15,9 +15,10 @@ */ const fs = require('fs'); const debug = require('debug')('cortex:cli'); -const ApiServerClient = require('../client/apiServerClient'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Models = require('../client/models'); +const { LISTTABLEFORMAT } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath @@ -65,28 +66,28 @@ module.exports.ListModelsCommand = class ListModelsCommand { this.program = program; } - async execute(options) { + execute(options) { const profile = loadProfile(options.profile); debug('%s.executeListModels()', profile.name); + const models = new Models(profile.url); + models.listModels(options.project || profile.project, options.offset, options.limit, profile.token).then((response) => { + if (response.success) { + let result = response.models; + if (options.query) result = filterObject(result, options); - const cli = new ApiServerClient(profile.url); - try { - const response = await cli.listModels(options.project || profile.project, options.offset, options.limit, profile.token); - let result = response; - if (options.query) result = filterObject(result, options); - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + } } else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Description', field: 'description', width: 80 }, - ]; - printTable(tableSpec, result); + printError(`Failed to list models: ${response.status} ${response.message}`, options); } - } catch (err) { - printError(`Failed to list models: ${err.status} ${err.message}`, options); - } + }) + .catch((err) => { + debug(err); + printError(`Failed to list models: ${err.status} ${err.message}`, options); + }); } }; @@ -95,19 +96,21 @@ module.exports.DescribeModelCommand = class DescribeModelCommand { this.program = program; } - async execute(modelName, options) { + execute(modelName, options) { const profile = loadProfile(options.profile); - debug('%s.executeDescribeModels()', profile.name); - - const cli = new ApiServerClient(profile.url); - try { - const response = await cli.descModels(options.project || profile.project, modelName, profile.token); - let result = response; - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } catch (err) { - printError(`Failed to describe model: ${err.status} ${err.message}`, options); - } + const models = new Models(profile.url); + debug('%s.executeDescribeModel(%s)', profile.name, modelName); + models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { + if (response.success) { + const result = filterObject(response.model, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe model ${modelName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe model ${modelName}: ${err.status} ${err.message}`, options); + }); } }; From b5a4de4b6000622d4371cd884c54f7e196a72b9a Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 3 Jun 2021 11:29:26 +0530 Subject: [PATCH 289/864] reportId width --- src/commands/assessments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index b575a6d3..52a27f9e 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -207,7 +207,7 @@ module.exports.ListAssessmentReportCommand = class { } else { const tableSpec = [ { column: 'Assessment Name', field: 'assessmentId', width: 30 }, - { column: 'Report Id', field: 'reportId', width: 40 }, + { column: 'Report Id', field: 'reportId', width: 50 }, { column: 'Impact Summary', field: 'summary', width: 60 }, { column: 'Created At', field: 'createdAt', width: 25 }, { column: 'Created By', field: 'createdBy', width: 25 }, From 8a5ff859b41a4ba2abc1cd86e6ad47a79600c032 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 3 Jun 2021 15:57:15 +0530 Subject: [PATCH 290/864] updated http method --- src/client/models.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/models.js b/src/client/models.js index c8599bb7..a665e30e 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -73,7 +73,7 @@ module.exports = class Models { const endpoint = `${this.endpointV4(projectId)}?skip=${offset}&limit=${limit}`; debug('listModels() => %s', endpoint); return got - .get(endpoint, { + .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }) From 5c6bd09b0ef07590633f934ae6de8118a93200d3 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 3 Jun 2021 21:02:13 +0530 Subject: [PATCH 291/864] http method back to get --- src/client/models.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/models.js b/src/client/models.js index a665e30e..c8599bb7 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -73,7 +73,7 @@ module.exports = class Models { const endpoint = `${this.endpointV4(projectId)}?skip=${offset}&limit=${limit}`; debug('listModels() => %s', endpoint); return got - .post(endpoint, { + .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }) From ae4f2ebe1ac3f3ce149af458539ea013bbb001b4 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Sat, 5 Jun 2021 09:09:06 -0500 Subject: [PATCH 292/864] FAB-1553 Add status output to skills list, this does two api calls and merges the output on the client side --- bin/cortex-agents.js | 13 ++++++++----- bin/cortex-skills.js | 1 + src/client/agents.js | 5 ++--- src/client/catalog.js | 5 ++++- src/commands/agents.js | 18 +++++++++++------- src/commands/skills.js | 38 +++++++++++++++++++++++++++----------- 6 files changed, 53 insertions(+), 27 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 7d093451..da14c318 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -130,7 +130,7 @@ program // List activations program - .command('list-activations ') + .command('list-activations') .description('List activations for an agent') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') @@ -138,14 +138,17 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') - .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') + .option('--agentName [string]', 'Query activations by agentName') .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') + .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') + .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') + .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') + .option('--correlationId [string]', 'Query activations with same correlationId') .option('--status [status]', 'Filters activations by status [complete|error].') - .action(withCompatibilityCheck((agentName, options) => { + .action(withCompatibilityCheck((options) => { try { - new ListActivationsCommand(program).execute(agentName, options); + new ListActivationsCommand(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 0efbb91b..027c9bfe 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -93,6 +93,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') + .option('--no-status', 'skip extra call for skill status') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((options) => { try { diff --git a/src/client/agents.js b/src/client/agents.js index d9592ac7..e87fde80 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -69,10 +69,9 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listActivations(projectId, token, agentName, params) { + listActivations(projectId, token, params) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/activations`; - debug('listActivations(%s) => %s', agentName, endpoint); + const endpoint = `${this.endpointV4(projectId)}/activations`; const opts = { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), diff --git a/src/client/catalog.js b/src/client/catalog.js index 8c1b2d95..931c0681 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -49,13 +49,16 @@ module.exports = class Catalog { .catch(err => constructError(err)); } - listSkills(projectId, token) { + listSkills(projectId, token, status = false) { checkProject(projectId); debug('listSkills() => %s', this.endpoints.skills(projectId)); + const query = {}; + if (status) query.status = true; return got .get(this.endpoints.skills(projectId), { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }).json() .then(skills => ({ success: true, ...skills })) .catch(err => constructError(err)); diff --git a/src/commands/agents.js b/src/commands/agents.js index fe633201..e58490af 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -205,9 +205,8 @@ module.exports.ListActivationsCommand = class { this.program = program; } - execute(agentName, options) { + execute(options) { const profile = loadProfile(options.profile); - debug('%s.listActivations(%s)', profile.name, agentName); const agents = new Agents(profile.url); // TODO validate param types? @@ -217,7 +216,10 @@ module.exports.ListActivationsCommand = class { if (options.endBefore) queryParams.endBefore = options.endBefore; if (options.endAfter) queryParams.endAfter = options.endAfter; if (options.status) queryParams.status = options.status; - agents.listActivations(options.project || profile.project, profile.token, agentName, queryParams).then((response) => { + if (options.correlationId) queryParams.correlationId = options.correlationId; + if (options.agentName) queryParams.agentName = options.agentName; + + agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { let result = response.result.activations; if (options.query) result = filterObject(result, options); @@ -226,16 +228,18 @@ module.exports.ListActivationsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Activation Id', field: 'activationId', width: 38 }, + { column: 'Activation Id', field: 'requestId', width: 40 }, + { column: 'Status', field: 'status', width: 20 }, + { column: 'Started', field: 'start', width: 65 }, ]; - printTable(tableSpec, _.map(result, r => ({ activationId: r }))); + printTable(tableSpec, _.map(result, o => ({ ...o, start: o.start ? moment(o.start).fromNow() : '-' }))); } } else { - printError(`Failed to list activations for instance ${agentName}: ${response.message}`, options); + printError(`Failed to list activations: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list activations for instance ${agentName}: ${err.status} ${err.message}`, options); + printError(`Failed to list activations: ${err.status} ${err.message}`, options); }); } }; diff --git a/src/commands/skills.js b/src/commands/skills.js index a2e78677..1dc935fa 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -65,28 +65,44 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { this.program = program; } - execute(options) { + async execute(options) { const profile = loadProfile(options.profile); debug('%s.executeListSkills()', profile.name); const catalog = new Catalog(profile.url); - catalog.listSkills(options.project || profile.project, profile.token).then((response) => { + try { + const response = await catalog.listSkills(options.project || profile.project, profile.token); if (response.success) { let result = response.skills; + const tableFormat = LISTTABLEFORMAT; + if (!_.has(options, 'no-status')) { + const statuses = await catalog.listSkills(options.project || profile.project, profile.token, true); + result = result.map((skill) => { + const status = statuses.skills.find(s => s.name === skill.name.toLowerCase()); + let actionStatus = 'Not deployed'; + if (!_.isEmpty(status)) { + const actionStatuses = _.get(status, 'actionStatus', []); + actionStatus = _.isEmpty(actionStatuses) ? 'Deployed' : actionStatuses.map(s => `${s.name}: ${s.state}`).join(' '); + } + return { + ...skill, + actionStatus, + }; + }); + tableFormat.push({ column: 'Status', field: 'actionStatus', width: 30 }); + } if (options.query) result = filterObject(result, options); if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printTable(LISTTABLEFORMAT, _.sortBy(result, ['name']), o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + return printSuccess(JSON.stringify(result, null, 2), options); } - } else { - printError(`Failed to list skills: ${response.status} ${response.message}`, options); + return printTable(tableFormat, + _.sortBy(result, ['name']), o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } - }) - .catch((err) => { - printError(`Failed to list skills: ${err.status} ${err.message}`, options); - }); + return printError(`Failed to list skills: ${response.status} ${response.message}`, options); + } catch (err) { + return printError(`Failed to list skills: ${err.status} ${err.message}`, options); + } } }; From efe6dbbea61e35574db4e6c057de55438dc74377 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 7 Jun 2021 14:46:24 +0530 Subject: [PATCH 293/864] removed versions --- bin/cortex-models.js | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 3f87264e..93aeb86d 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -61,7 +61,6 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--versions', 'To get list of versions of an model') .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((modelName, options) => { try { From f57ce2ac6b87ed052b9339bfeaa60f89905886f0 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 7 Jun 2021 15:01:04 +0530 Subject: [PATCH 294/864] fix lint errors --- src/commands/models.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/models.js b/src/commands/models.js index 26b93a2d..5b0d068d 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -21,7 +21,7 @@ const Models = require('../client/models'); const { LISTTABLEFORMAT } = require('./utils'); const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, } = require('./utils'); module.exports.SaveModelCommand = class SaveModelCommand { From f9a7bee97d9068cd90be3f729fcc2664f3de3767 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 7 Jun 2021 23:13:30 +0530 Subject: [PATCH 295/864] list APIs refctored to return object instead of list for extensibility --- src/client/assessments.js | 4 +--- src/commands/assessments.js | 14 +++++++++----- src/commands/utils.js | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index dc8c2d24..09c8f54d 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -17,9 +17,7 @@ const querystring = require('querystring'); const { createWriteStream } = require("fs"); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); -const { - constructError, getUserAgent, -} = require('../commands/utils'); +const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Assessments { constructor(cortexUrl) { diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 52a27f9e..e34c415d 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -14,7 +14,11 @@ * limitations under the License. */ const fs = require('fs'); -const _ = require('lodash'); +const _ = { + uniqBy: require('lodash/uniqBy'), + sortBy: require('lodash/sortBy'), + flatten: require('lodash/flatten'), +}; const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); @@ -47,7 +51,7 @@ module.exports.ListResourcesCommand = class { { column: 'Type', field: 'resourceType', width: 16 }, { column: 'Project', field: '_projectId', width: 15 }, ]; - printTable(tableSpec, response); + printTable(tableSpec, response.data); } }) .catch((err) => { @@ -117,7 +121,7 @@ module.exports.ListAssessmentCommand = class { { column: 'Created At', field: 'createdAt', width: 25 }, { column: 'Created By', field: 'createdBy', width: 25 }, ]; - printTable(tableSpec, response, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); + printTable(tableSpec, response.data, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); } }) .catch((err) => { @@ -212,8 +216,8 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Created At', field: 'createdAt', width: 25 }, { column: 'Created By', field: 'createdBy', width: 25 }, ]; - response.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); - printTable(tableSpec, response, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); + response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); + printTable(tableSpec, response.data, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); } }) .catch((err) => { diff --git a/src/commands/utils.js b/src/commands/utils.js index 38ad6172..f2b74a98 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -231,8 +231,8 @@ module.exports.countLinesInFile = filePath => new Promise((resolve, reject) => { .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); }); module.exports.formatValidationPath = (p) => { - let cnt = 0; let -res = ''; + let cnt = 0; + let res = ''; const len = p.length; p.forEach((s) => { if (_.isNumber(s)) { From 1ab7a00a02e9234711b2687d187b9d67a6769f8d Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Mon, 7 Jun 2021 19:09:17 -0500 Subject: [PATCH 296/864] FAB-1699: commands for creating/listing/deleting service users (#331) * FAB-1699: added create service user command to cli * users list command * delete service user command --- bin/cortex-users.js | 42 +++++++++++++++++++++++++ src/client/users.js | 36 ++++++++++++++++++++++ src/commands/users.js | 72 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+) diff --git a/bin/cortex-users.js b/bin/cortex-users.js index d2c3d2b3..fdb5562d 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -24,6 +24,9 @@ const { UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, + UserCreateCommand, + UserListCommand, + UserDeleteCommand, } = require('../src/commands/users'); program.description('Work with Cortex User'); @@ -78,4 +81,43 @@ program.command('project ') } })); +program.command('delete ') + .description('Deletes a service user and disables any existing tokens created by the user') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((user, options) => { + try { + new UserDeleteCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('create ') + .description('Creates a service user (with no assigned roles/grants) that can authenticate with and call Fabric API\'s') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((user, options) => { + try { + new UserCreateCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('list') + .description('Lists all service users created within Cortex') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((options) => { + try { + new UserListCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/users.js b/src/client/users.js index e98c9aaa..0b77de34 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -42,6 +42,42 @@ module.exports = class Users { } } + createServiceUser(token, user) { + const endpoint = `${this.endpoint}/accounts/service/${user}`; + debug('createServiceUser => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + deleteServiceUser(token, user) { + const endpoint = `${this.endpoint}/accounts/service/${user}`; + debug('createServiceUser => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + listServiceUsers(token) { + const endpoint = `${this.endpoint}/accounts/service`; + debug('createServiceUser => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + describeUser(token) { const endpoint = `${this.usersEndpoint}/${this.flags}`; debug('describeUser => %s', endpoint); diff --git a/src/commands/users.js b/src/commands/users.js index cb50a3fc..35def9c0 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -62,6 +62,78 @@ module.exports.UserGrantCommand = class { } }; +module.exports.UserDeleteCommand = class { + constructor(program) { + this.program = program; + } + + execute(user, options) { + const profile = loadProfile(options.profile); + debug('%s.deleteServiceUser=%s', profile.name, user); + + const client = new Users(profile.url, user); + client.deleteServiceUser(profile.token, user).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to delete user ${user} : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete user : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.UserCreateCommand = class { + constructor(program) { + this.program = program; + } + + execute(user, options) { + const profile = loadProfile(options.profile); + debug('%s.createServiceUser=%s', profile.name, user); + + const client = new Users(profile.url, user); + client.createServiceUser(profile.token, user).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to create user ${user} : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to create user : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.UserListCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listServiceUsers', profile.name); + + const client = new Users(profile.url, 'self'); + client.listServiceUsers(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to list service users : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list service users : ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.UserDescribeCommand = class { constructor(program) { this.program = program; From a08f01324ccc3ac3a22ac69e532e2adb344d7daf Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 8 Jun 2021 14:51:52 +0530 Subject: [PATCH 297/864] test run --- src/commands/models.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/models.js b/src/commands/models.js index 5b0d068d..af59ff63 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -129,7 +129,7 @@ module.exports.DeleteModelCommand = class { const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); } else { - printError(`Model deletion failed: ${response.status} ${response.message}`, options); + printError(`Model deletion failed: ${response.status} ${response.message}.`, options); } }) .catch((err) => { From 42ab51e93a7d412663c7899e83cac8cf9cd72546 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 8 Jun 2021 16:22:19 +0530 Subject: [PATCH 298/864] model option support in experiment --- bin/cortex-experiments.js | 1 + src/client/experiments.js | 4 ++-- src/commands/experiments.js | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index d5c1cd91..5ef32439 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -41,6 +41,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--model [model]', 'The model to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') diff --git a/src/client/experiments.js b/src/client/experiments.js index e6ff0040..7aa9ab35 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -25,9 +25,9 @@ module.exports = class Experiments { this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; } - listExperiments(projectId, token) { + listExperiments(projectId, model, token) { checkProject(projectId); - const endpoint = `${this.endpoint(projectId)}`; + const endpoint = `${this.endpoint(projectId)}?${model ? `modelId=${model}` : ''}`; debug('listExperiments() => %s', endpoint); return got .get(endpoint, { diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 3f518ec7..55d9f896 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -33,7 +33,7 @@ class ListExperiments { debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); - exp.listExperiments(options.project || profile.project, profile.token).then((response) => { + exp.listExperiments(options.project || profile.project, options.model, profile.token).then((response) => { if (response.success) { let { result } = response; if (options.query) { From c7315bcc5cf2afd35d6f93c460482ccc3046b56a Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 8 Jun 2021 16:26:18 +0530 Subject: [PATCH 299/864] lint fix for develop --- src/commands/configure.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/configure.js b/src/commands/configure.js index ecc230eb..b2164962 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -182,4 +182,4 @@ module.exports.PrintEnvVars = class { vars.push(`export CORTEX_PROJECT=${options.project || profile.project}`); return printSuccess(vars.join('\n'), options); } -} +}; From dc3663ac9ec253076b32fd1589f0754c83e0f152 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 8 Jun 2021 17:59:34 +0530 Subject: [PATCH 300/864] response formatting as per base schema --- src/commands/assessments.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index e34c415d..d124bb99 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -118,10 +118,10 @@ module.exports.ListAssessmentCommand = class { { column: 'Description', field: 'description', width: 40 }, { column: 'Projects', field: 'scope', width: 25 }, { column: '# Reports', field: 'reportCount', width: 12 }, - { column: 'Created At', field: 'createdAt', width: 25 }, - { column: 'Created By', field: 'createdBy', width: 25 }, + { column: 'Created', field: '_createdAt', width: 25 }, + { column: 'Created By', field: '_createdBy', width: 25 }, ]; - printTable(tableSpec, response.data, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); + printTable(tableSpec, response.data, o => ({ ...o, _createdAt: o._createdAt ? moment(o._createdAt).fromNow() : '-' })); } }) .catch((err) => { @@ -213,11 +213,11 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Assessment Name', field: 'assessmentId', width: 30 }, { column: 'Report Id', field: 'reportId', width: 50 }, { column: 'Impact Summary', field: 'summary', width: 60 }, - { column: 'Created At', field: 'createdAt', width: 25 }, - { column: 'Created By', field: 'createdBy', width: 25 }, + { column: 'Created', field: '_createdAt', width: 25 }, + { column: 'Created By', field: '_createdBy', width: 25 }, ]; response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); - printTable(tableSpec, response.data, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); + printTable(tableSpec, response.data, o => ({ ...o, _createdAt: o._createdAt ? moment(o._createdAt).fromNow() : '-' })); } }) .catch((err) => { @@ -245,8 +245,8 @@ module.exports.GetAssessmentReportCommand = class { assessment: response.assessmentId, summary: Object.fromEntries(response.summary.map(item => [item.type, item.count])), report: response.detail, - createdAt: response.createdAt, - createdBy: response.createdBy, + _createdAt: response._createdAt, + _createdBy: response._createdBy, } printSuccess(JSON.stringify(output, null, 2), options); } else { From 7f1914d67d7572b8c57d6468a89ed1646b427545 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Tue, 8 Jun 2021 18:00:28 +0530 Subject: [PATCH 301/864] added create run and create experiment --- bin/cortex-experiments.js | 35 ++++++++++++++++ src/client/experiments.js | 29 ++++++++++++++ src/commands/experiments.js | 79 ++++++++++++++++++++++++++++++++++++- 3 files changed, 142 insertions(+), 1 deletion(-) diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index d5c1cd91..30ef3551 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -29,6 +29,8 @@ const { DeleteRunCommand, DeleteExperimentCommand, DownloadArtifactCommand, + SaveExperimentCommand, + CreateRunCommand, } = require('../src/commands/experiments'); program.description('Work with Cortex Experiments'); @@ -159,5 +161,38 @@ program } })); +// Save Experiment +program + .command('save ') + .description('Save an experiment definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for experiment definition format') + .action(withCompatibilityCheck((experimentDefinition, options) => { + try { + new SaveExperimentCommand(program).execute(experimentDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Save Experiment +program + .command('create-run ') + .description('Create run for experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for run definition format') + .action(withCompatibilityCheck((runDefinition, options) => { + try { + new CreateRunCommand(program).execute(runDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); program.parse(process.argv); diff --git a/src/client/experiments.js b/src/client/experiments.js index e6ff0040..c89305fc 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -126,4 +126,33 @@ module.exports = class Experiments { return constructError(err); } } + + saveExperiment(projectId, token, experimentObj) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}`; + debug('saveExperiment(%s) => %s', experimentObj.name, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: experimentObj + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); + } + + createRun(projectId, token, runObj) { + checkProject(projectId); + const experimentName = runObj.experiment_name; + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs`; + debug('createRun(%s) => %s', experimentName, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: runObj, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); + } }; diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 3f518ec7..680b3459 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -14,13 +14,14 @@ * limitations under the License. */ +const fs = require('fs'); const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { - printSuccess, printError, filterObject, printTable, + printSuccess, printError, filterObject, printTable, parseObject, } = require('./utils'); class ListExperiments { @@ -237,6 +238,80 @@ class DownloadArtifactCommand { } } +class SaveExperimentCommand { + constructor(program) { + this.program = program; + } + + execute(experimentDefinition, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSaveExperiment(%s)', profile.name, experimentDefinition); + + const experimentDefStr = fs.readFileSync(experimentDefinition); + const experiment = parseObject(experimentDefStr, options); + debug('%o', experiment); + + const experiments = new Experiments(profile.url); + experiments.saveExperiment(options.project || profile.project, profile.token, experiment).then((response) => { + if (response.success) { + printSuccess('Experiment saved', options); + } else if (response.details) { + console.log(`Failed to save experiment: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + }) + .catch((err) => { + printError(`Failed to save experiment: ${err.status} ${err.message}`, options); + }); + } +} + +class CreateRunCommand { + constructor(program) { + this.program = program; + } + + execute(runDefinition, options) { + const profile = loadProfile(options.profile); + debug('%s.executeCreateRun(%s)', profile.name, runDefinition); + + const runDefinitionStr = fs.readFileSync(runDefinition); + const run = parseObject(runDefinitionStr, options); + debug('%o', run); + + const experiments = new Experiments(profile.url); + experiments.createRun(options.project || profile.project, profile.token, run).then((response) => { + if (response.success) { + printSuccess('Run created', options); + } else if (response.details) { + console.log(`Failed to create run: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + }) + .catch((err) => { + printError(`Failed to create run: ${err.status} ${err.message}`, options); + }); + } +} + module.exports = { ListExperiments, ListRuns, @@ -245,4 +320,6 @@ module.exports = { DeleteRunCommand, DeleteExperimentCommand, DownloadArtifactCommand, + SaveExperimentCommand, + CreateRunCommand }; From ee0ea31cda1773856599dd0c81fdc243c58afa2e Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 8 Jun 2021 19:10:20 +0530 Subject: [PATCH 302/864] renamed model to modelId --- bin/cortex-experiments.js | 2 +- src/client/experiments.js | 4 ++-- src/commands/experiments.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 5ef32439..f9a46b82 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -41,7 +41,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--model [model]', 'The model to use') + .option('--modelId [modelId]', 'The model to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') diff --git a/src/client/experiments.js b/src/client/experiments.js index 7aa9ab35..dbb54ed5 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -25,9 +25,9 @@ module.exports = class Experiments { this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; } - listExperiments(projectId, model, token) { + listExperiments(projectId, modelId, token) { checkProject(projectId); - const endpoint = `${this.endpoint(projectId)}?${model ? `modelId=${model}` : ''}`; + const endpoint = `${this.endpoint(projectId)}?${modelId ? `modelId=${modelId}` : ''}`; debug('listExperiments() => %s', endpoint); return got .get(endpoint, { diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 55d9f896..c12ce1fe 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -33,7 +33,7 @@ class ListExperiments { debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); - exp.listExperiments(options.project || profile.project, options.model, profile.token).then((response) => { + exp.listExperiments(options.project || profile.project, options.modelId, profile.token).then((response) => { if (response.success) { let { result } = response; if (options.query) { From 0e8136d70a858e76c938c219551b8edf2e1d4cb1 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 8 Jun 2021 09:56:35 -0500 Subject: [PATCH 303/864] =?UTF-8?q?FAB-1775:=20validate=20secret=20key=20n?= =?UTF-8?q?ame=20before=20attempting=20to=20create=20via=20re=E2=80=A6=20(?= =?UTF-8?q?#336)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * FAB-1775: validate secret key name before attempting to create via rest call * adding test command to build script and fixing linting error --- build.sh | 1 + src/commands/secrets.js | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/build.sh b/build.sh index fa6d5539..8055110e 100755 --- a/build.sh +++ b/build.sh @@ -30,6 +30,7 @@ function docker_build(){ npm config set loglevel warn npm cache clear --force npm install -dd --verbose + npm test echo ${VERSION} > version.txt ./generate_docs.sh BRANCH=$(git symbolic-ref --short -q HEAD) diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 1542fba9..7fbaef6d 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -113,6 +113,12 @@ module.exports.WriteSecretsCommand = class { return printError('Failed to write secret : no value specified', options); } + // FAB-1775: validate secret key name + const invalidCharsRegex = /^\w+([./-]?\w+)*$/; + if (!invalidCharsRegex.test(keyName)) { + return printError(`Failed to write secret : keyName did not conform to regex ${JSON.stringify(invalidCharsRegex)}`, options); + } + const secrets = new Secrets(profile.url); return secrets.writeSecret(options.project || profile.project, profile.token, keyName, data).then((response) => { if (response.success) { From 7b737eba324d214fc1c87a7d161bc717bb3f7b0c Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 8 Jun 2021 21:08:32 +0530 Subject: [PATCH 304/864] linting fixes --- src/client/assessments.js | 4 ++-- src/commands/assessments.js | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index 09c8f54d..df4f5c44 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -14,7 +14,7 @@ * limitations under the License. */ const querystring = require('querystring'); -const { createWriteStream } = require("fs"); +const { createWriteStream } = require('fs'); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); const { constructError, getUserAgent } = require('../commands/utils'); @@ -129,6 +129,6 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).pipe(createWriteStream(`${reportId}.csv`), { end: true }); - return Promise.resolve({ file: `${reportId}.csv`}); + return Promise.resolve({ file: `${reportId}.csv` }); } }; diff --git a/src/commands/assessments.js b/src/commands/assessments.js index d124bb99..05ff7484 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -247,10 +247,11 @@ module.exports.GetAssessmentReportCommand = class { report: response.detail, _createdAt: response._createdAt, _createdBy: response._createdBy, - } + }; printSuccess(JSON.stringify(output, null, 2), options); } else { - const flattenRefs = _.uniqBy(_.flatten(response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId })))), (r) => (`${r.name}-${r.type}`)); + const flattenRefs = _.uniqBy(_.flatten( + response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId })))), (r) => (`${r.name}-${r.type}`)); const tableSpec = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Title', field: 'title', width: 30 }, @@ -279,7 +280,7 @@ module.exports.ExportAssessmentReportCommand = class { client.exportAssessmentReport(profile.token, name, reportId) .then((response) => { if (response.success === false) throw response; - printSuccess(`Report exported to ${response.file}`, options) + printSuccess(`Report exported to ${response.file}`, options); }) .catch((err) => { printError(`Failed to export assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); From c4731ecf4bf6a51ce9611dd5938e8d2732db9bb2 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 8 Jun 2021 13:56:53 -0500 Subject: [PATCH 305/864] Use status from list skills REST api Use existing verbose flag to add skill status to skill describe|get . --- bin/cortex-skills.js | 2 +- src/client/catalog.js | 7 ++++++- src/commands/skills.js | 16 +++++----------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 027c9bfe..b8d042bf 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -93,7 +93,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') - .option('--no-status', 'skip extra call for skill status') + .option('--nostatus', 'skip extra call for skill status') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((options) => { try { diff --git a/src/client/catalog.js b/src/client/catalog.js index 931c0681..210cee71 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -68,11 +68,16 @@ module.exports = class Catalog { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; debug('describeSkill(%s) => %s', skillName, endpoint); + const searchParams = {}; + if (verbose) { + searchParams.verbose = verbose; + searchParams.status = verbose; + } return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - searchParams: { verbose }, + searchParams, }).json() .then(res => ({ success: true, skill: res })) .catch(err => constructError(err)); diff --git a/src/commands/skills.js b/src/commands/skills.js index 1dc935fa..06cd12af 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -71,25 +71,19 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { const catalog = new Catalog(profile.url); try { - const response = await catalog.listSkills(options.project || profile.project, profile.token); + const response = await catalog.listSkills(options.project || profile.project, profile.token, options.nostatus === undefined); if (response.success) { let result = response.skills; const tableFormat = LISTTABLEFORMAT; - if (!_.has(options, 'no-status')) { - const statuses = await catalog.listSkills(options.project || profile.project, profile.token, true); + if (options.nostatus === undefined) { result = result.map((skill) => { - const status = statuses.skills.find(s => s.name === skill.name.toLowerCase()); - let actionStatus = 'Not deployed'; - if (!_.isEmpty(status)) { - const actionStatuses = _.get(status, 'actionStatus', []); - actionStatus = _.isEmpty(actionStatuses) ? 'Deployed' : actionStatuses.map(s => `${s.name}: ${s.state}`).join(' '); - } + const status = _.isEmpty(skill.actionStatuses) ? skill.deployStatus : skill.actionStatuses.map(s => `${s.name}: ${s.state}`).join(' '); return { ...skill, - actionStatus, + status, }; }); - tableFormat.push({ column: 'Status', field: 'actionStatus', width: 30 }); + tableFormat.push({ column: 'Status', field: 'status', width: 30 }); } if (options.query) result = filterObject(result, options); From a38350355304aaec6d5e2095dae2ca2b56c2bd9d Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 8 Jun 2021 16:29:26 -0500 Subject: [PATCH 306/864] FAB-976: adding commands to list skill action logs (#337) * FAB-976: adding commands to list skill action logs * encode actionName as well --- bin/cortex-skills.js | 18 ++++++++++++++++++ src/client/catalog.js | 14 ++++++++++++++ src/commands/skills.js | 22 ++++++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index b8d042bf..6348e27c 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -28,6 +28,7 @@ const { InvokeSkillCommand, DeploySkillCommand, UndeploySkillCommand, + SkillLogsCommand, } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); @@ -135,4 +136,21 @@ program } })); +// Get Skill/action logs +program + .command('logs ') + .description('Get logs of a skill and action') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + // TODO enable when we want to support tasks + // .option('--type [type]', 'The type of action logs to fetch [skill|task]') + .action(withCompatibilityCheck((skillName, actionName, options) => { + try { + new SkillLogsCommand(program).execute(skillName, actionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/catalog.js b/src/client/catalog.js index 210cee71..d664bbf9 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -111,6 +111,20 @@ module.exports = class Catalog { .catch(err => constructError(err)); } + skillLogs(projectId, token, skillName, actionName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/action/${encodeURIComponent(actionName)}/logs`; + debug('skillLogs(%s, %s) => %s', skillName, actionName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then(res => ({ ...res })) + .catch(err => constructError(err)); + } + listAgents(projectId, token) { checkProject(projectId); const endpoint = this.endpoints.agents(projectId); diff --git a/src/commands/skills.js b/src/commands/skills.js index 06cd12af..a8d4c563 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -146,6 +146,28 @@ module.exports.UndeploySkillCommand = class UndeploySkillCommand { } }; +module.exports.SkillLogsCommand = class SkillLogsCommand { + constructor(program) { + this.program = program; + } + + execute(skillName, actionName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSkillLogs(%s,%s)', profile.name, skillName, actionName); + const catalog = new Catalog(profile.url); + catalog.skillLogs(options.project || profile.project, profile.token, skillName, actionName, options.verbose).then((response) => { + if (response.success) { + printSuccess(JSON.stringify(response.logs), options); + } else { + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.DeploySkillCommand = class DeploySkillCommand { constructor(program) { this.program = program; From a83b8a3c9dc1693505a7c3947bb5f559fe72fd38 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 8 Jun 2021 16:44:06 -0500 Subject: [PATCH 307/864] linting fixes (#340) --- src/client/assessments.js | 17 +++++++++++++++-- src/commands/assessments.js | 8 ++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index df4f5c44..1bb7e489 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -25,7 +25,13 @@ module.exports = class Assessments { } queryResources(token, name, projectId, type, skip, limit) { - const url = `${this.endpointV4}/resources?${querystring.stringify({ projectId, name, type, skip, limit })}`; + const url = `${this.endpointV4}/resources?${querystring.stringify({ + projectId, + name, + type, + skip, + limit, + })}`; debug('queryResources => %s', url); return got .get(url, { @@ -44,7 +50,14 @@ module.exports = class Assessments { .post(url, { headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, 'user-agent': getUserAgent(), - body: JSON.stringify({ name, title, description, scope, componentName, componentTypes }), + body: JSON.stringify({ + name, + title, + description, + scope, + componentName, + componentTypes, + }), }).json() .then(res => res) .catch(err => constructError(err)); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 05ff7484..5eaff0e9 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -14,6 +14,7 @@ * limitations under the License. */ const fs = require('fs'); + const _ = { uniqBy: require('lodash/uniqBy'), sortBy: require('lodash/sortBy'), @@ -250,8 +251,11 @@ module.exports.GetAssessmentReportCommand = class { }; printSuccess(JSON.stringify(output, null, 2), options); } else { - const flattenRefs = _.uniqBy(_.flatten( - response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId })))), (r) => (`${r.name}-${r.type}`)); + const flattenRefs = _.uniqBy( + _.flatten( + response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId }))), + ), r => `${r.name}-${r.type}`, + ); const tableSpec = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Title', field: 'title', width: 30 }, From fe5cb5f014bdcf1b114f81f5b6a8130eb1df44e3 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Jun 2021 10:54:20 +0530 Subject: [PATCH 308/864] support for tag filter in model list --- bin/cortex-models.js | 1 + src/client/models.js | 4 ++-- src/commands/models.js | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 93aeb86d..5273830a 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -41,6 +41,7 @@ program .option('--project [project]', 'The project to use') .option('--offset [offset]', 'The offset to use') .option('--limit [limit]', 'The limit to use') + .option('--tags [tags]', 'The tags to use (comma separated values)') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { diff --git a/src/client/models.js b/src/client/models.js index c8599bb7..9d82ddbb 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -68,9 +68,9 @@ module.exports = class Models { .catch(err => constructError(err)); } - listModels(projectId, offset, limit, token) { + listModels(projectId, offset, limit, tags, token) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}?skip=${offset}&limit=${limit}`; + const endpoint = `${this.endpointV4(projectId)}?skip=${offset}&limit=${limit}${tags ? `&tags=${tags}` : ''}`; debug('listModels() => %s', endpoint); return got .get(endpoint, { diff --git a/src/commands/models.js b/src/commands/models.js index af59ff63..e04af15c 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -70,7 +70,7 @@ module.exports.ListModelsCommand = class ListModelsCommand { const profile = loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); - models.listModels(options.project || profile.project, options.offset, options.limit, profile.token).then((response) => { + models.listModels(options.project || profile.project, options.offset, options.limit, options.tags, profile.token).then((response) => { if (response.success) { let result = response.models; if (options.query) result = filterObject(result, options); From 6b154fbd7ac55eb7a7f5f3fec14dd12754bd7fa0 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Wed, 9 Jun 2021 15:19:28 +0530 Subject: [PATCH 309/864] draft code for register model --- bin/cortex-experiments.js | 25 +++++++-- bin/cortex-models.js | 37 +++++++++++++ src/client/experiments.js | 33 ++++++++++-- src/commands/experiments.js | 47 +++++++++++++--- src/commands/models.js | 104 ++++++++++++++++++++++++++++++++++++ 5 files changed, 232 insertions(+), 14 deletions(-) diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 30ef3551..27342bdd 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -31,6 +31,7 @@ const { DownloadArtifactCommand, SaveExperimentCommand, CreateRunCommand, + UploadArtifactCommand, } = require('../src/commands/experiments'); program.description('Work with Cortex Experiments'); @@ -180,16 +181,34 @@ program // Save Experiment program - .command('create-run ') + .command('create-run ') .description('Create run for experiment') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for run definition format') - .action(withCompatibilityCheck((runDefinition, options) => { + .action(withCompatibilityCheck((experimentName, options) => { + try { + new CreateRunCommand(program).execute(experimentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Upload Artifact +program + .command('upload-artifact ') + .description('Upload artifact for run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) + .action(withCompatibilityCheck((experimentName, runId, filePath, artifactKey, options) => { try { - new CreateRunCommand(program).execute(runDefinition, options); + new UploadArtifactCommand(program).execute(experimentName, runId, filePath, artifactKey, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 93aeb86d..0fd8b07b 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -26,6 +26,8 @@ const { SaveModelCommand, DescribeModelCommand, ListModelsCommand, + RegisterModelCommand, + PublishModelCommand, } = require('../src/commands/models'); program.description('Work with Cortex Models'); @@ -104,4 +106,39 @@ program } })); +// Register Model +program + .command('register-model ') + .description('Register a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .action(withCompatibilityCheck((modelDefinition, options) => { + try { + new RegisterModelCommand(program).execute(modelDefinition, options); + new PublishModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Publish Model +program + .command('publish ') + .description('Publish a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .action(withCompatibilityCheck((modelName, options) => { + try { + new PublishModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/experiments.js b/src/client/experiments.js index c89305fc..1be8e29d 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -19,6 +19,11 @@ const { got } = require('./apiutils'); const { constructError, getUserAgent, checkProject } = require('../commands/utils'); const Content = require('./content'); +const fs = require('fs'); +const { promisify } = require('util'); +const stream = require('stream'); +const pipeline = promisify(stream.pipeline); + module.exports = class Experiments { constructor(cortexUrl) { this.cortexUrl = cortexUrl; @@ -141,18 +146,40 @@ module.exports = class Experiments { .catch(err => constructError(err)); } - createRun(projectId, token, runObj) { + createRun(projectId, token, experimentName) { checkProject(projectId); - const experimentName = runObj.experiment_name; const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs`; debug('createRun(%s) => %s', experimentName, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - json: runObj, + json: {}, }).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); } + + async uploadArtifact(projectId, token, experimentName, runId, content, artifact, contentType = 'application/octet-stream') { + checkProject(projectId); + + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${encodeURIComponent(runId)}/artifacts/${artifact}`; + + debug('uploadArtifact(%s, %s) => %s', artifact, content, endpoint); + try { + const message = await pipeline( + fs.createReadStream(content), + got.stream.put(endpoint, { + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': contentType, + }, + 'user-agent': getUserAgent(), + }), + ); + return { success: true, message }; + } catch (err) { + return constructError(err); + } + } }; diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 680b3459..9ad7bbad 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -280,16 +280,12 @@ class CreateRunCommand { this.program = program; } - execute(runDefinition, options) { + execute(experimentName, options) { const profile = loadProfile(options.profile); - debug('%s.executeCreateRun(%s)', profile.name, runDefinition); - - const runDefinitionStr = fs.readFileSync(runDefinition); - const run = parseObject(runDefinitionStr, options); - debug('%o', run); + debug('%s.executeCreateRun(%s)', profile.name, experimentName); const experiments = new Experiments(profile.url); - experiments.createRun(options.project || profile.project, profile.token, run).then((response) => { + experiments.createRun(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { printSuccess('Run created', options); } else if (response.details) { @@ -312,6 +308,40 @@ class CreateRunCommand { } } +class UploadArtifactCommand { + constructor(program) { + this.program = program; + } + + execute(experimentName, runId, filePath, artifact, options) { + const profile = loadProfile(options.profile); + debug('%s.executeUploadArtifact()', profile.name); + + const experiments = new Experiments(profile.url); + + const chunkSize = parseInt(options.chunkSize, 10); + const upload = _.partial(UploadArtifactCommand.upload, experiments, profile, options); + + upload(filePath, artifact, experimentName, runId); + } + + static upload(experiments, profile, options, filePath, artifact, experimentName, runId) { + const contentType = _.get(options, 'contentType', 'application/octet-stream'); + return experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, filePath, artifact, contentType).then((response) => { + if (response.success) { + printSuccess('Artifact successfully uploaded.', options); + printSuccess(JSON.stringify(response, null, 2), options); + } else { + printError(`Failed to upload Artifact: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to upload Artifact: ${err.status} ${err.message}`, options); + }); + } +} + module.exports = { ListExperiments, ListRuns, @@ -321,5 +351,6 @@ module.exports = { DeleteExperimentCommand, DownloadArtifactCommand, SaveExperimentCommand, - CreateRunCommand + CreateRunCommand, + UploadArtifactCommand }; diff --git a/src/commands/models.js b/src/commands/models.js index af59ff63..98d6cbf6 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -18,6 +18,7 @@ const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); const Models = require('../client/models'); +const Experiments = require('../client/experiments'); const { LISTTABLEFORMAT } = require('./utils'); const { @@ -137,3 +138,106 @@ module.exports.DeleteModelCommand = class { }); } }; + +module.exports.PublishModelCommand = class PublishModelCommand { + constructor(program) { + this.program = program; + } + + execute(modelName, options) { + const profile = loadProfile(options.profile); + const models = new Models(profile.url); + debug('%s.executePublishModel(%s)', profile.name, modelName); + models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { + if (response.success) { + const result = filterObject(response.model, options); + printSuccess(JSON.stringify(result, null, 2), options); + result.status = 'Published' + models.saveModel(options.project || profile.project, profile.token, model).then((response) => { + if (response.success) { + printSuccess('Model saved', options); + } else if (response.details) { + console.log(`Failed to save model: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + }) + .catch((err) => { + printError(`Failed to save model: ${err.status} ${err.message}`, options); + }); + } else { + printError(`Failed to publish model ${modelName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe model ${modelName}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RegisterModelCommand = class RegisterModelCommand { + constructor(program) { + this.program = program; + } + + execute(modelDefinition, options) { + const profile = loadProfile(options.profile); + debug('%s.executeRegisterModel(%s)', profile.name, modelDefinition); + + const modelDefStr = fs.readFileSync(modelDefinition); + const model = parseObject(modelDefStr, options); + debug('%o', model); + + const models = new Models(profile.url); + const experiments = new Experiments(profile.url); + experiments.saveExperiment(options.project || profile.project, profile.token, model).then((response) => { + if (response.success) { + const experiment_name = response.result.name; + experiments.createRun(options.project || profile.project, profile.token, experiment_name).then((response_run) => { + if (response_run.success) { + //printSuccess('Run created', options); + printSuccess(JSON.stringify(response_run, null, 2), options); + const runId = response_run.result.runId; + } else if (response_run.details) { + console.log(`Failed to create run: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response_run)); + } + }).catch((err) => { + printError(`Failed to create Run: ${err.status} ${err.message}`, options); + }); + } else if (response.details) { + console.log(`Failed to save experiment: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + }) + .catch((err) => { + printError(`Failed to register model: ${err.status} ${err.message}`, options); + }); +} +}; \ No newline at end of file From 92b355af97a1294e16d60a6f12251f373762e21c Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Wed, 9 Jun 2021 15:32:05 +0530 Subject: [PATCH 310/864] fix --- bin/cortex-models.js | 1 - src/commands/models.js | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 0fd8b07b..b60ba8a1 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -118,7 +118,6 @@ program .action(withCompatibilityCheck((modelDefinition, options) => { try { new RegisterModelCommand(program).execute(modelDefinition, options); - new PublishModelCommand(program).execute(modelName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/commands/models.js b/src/commands/models.js index 98d6cbf6..5f47a0f2 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -206,6 +206,7 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { //printSuccess('Run created', options); printSuccess(JSON.stringify(response_run, null, 2), options); const runId = response_run.result.runId; + //upload artifact here.... } else if (response_run.details) { console.log(`Failed to create run: ${response.status} ${response.message}`); console.log('The following issues were found:'); From e3d4fd26d640d8428b29f3772c52de53095428d0 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Wed, 9 Jun 2021 17:46:49 +0530 Subject: [PATCH 311/864] bug fix --- bin/cortex-models.js | 1 + src/commands/models.js | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index b60ba8a1..902487f8 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -132,6 +132,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for model definition format') + .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .action(withCompatibilityCheck((modelName, options) => { try { new PublishModelCommand(program).execute(modelName, options); diff --git a/src/commands/models.js b/src/commands/models.js index 5f47a0f2..bafedb41 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -14,6 +14,7 @@ * limitations under the License. */ const fs = require('fs'); +const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); @@ -203,19 +204,29 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { const experiment_name = response.result.name; experiments.createRun(options.project || profile.project, profile.token, experiment_name).then((response_run) => { if (response_run.success) { - //printSuccess('Run created', options); - printSuccess(JSON.stringify(response_run, null, 2), options); const runId = response_run.result.runId; - //upload artifact here.... + const contentType = _.get(options, 'contentType', 'application/octet-stream'); + experiments.uploadArtifact(options.project || profile.project, profile.token, experiment_name, runId, model.filePath, model.artifact, contentType).then((response_artifact) => { + if (response_artifact.success) { + printSuccess('Artifact successfully uploaded.', options); + printSuccess(JSON.stringify(response_run.result, null, 2), options); + } else { + printError(`Failed to upload Artifact: ${response_artifact.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to upload Artifact: ${err.status} ${err.message}`, options); + }); } else if (response_run.details) { - console.log(`Failed to create run: ${response.status} ${response.message}`); + console.log(`Failed to create run: ${response_run.status} ${response_run.message}`); console.log('The following issues were found:'); const tableSpec = [ { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; response.details.map(d => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); + printTable(tableSpec, response_run.details); printError(''); // Just exit } else { printError(JSON.stringify(response_run)); From 1445288879bf786d386af30534168179f216f851 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Wed, 9 Jun 2021 18:28:40 +0530 Subject: [PATCH 312/864] bug fixes --- src/client/experiments.js | 11 +++++----- src/commands/experiments.js | 5 ++--- src/commands/models.js | 41 ++++++++++++++++++------------------- 3 files changed, 27 insertions(+), 30 deletions(-) diff --git a/src/client/experiments.js b/src/client/experiments.js index 1be8e29d..9717f495 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -13,17 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +const fs = require('fs'); +const stream = require('stream'); +const { promisify } = require('util'); +const pipeline = promisify(stream.pipeline); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); const { constructError, getUserAgent, checkProject } = require('../commands/utils'); const Content = require('./content'); -const fs = require('fs'); -const { promisify } = require('util'); -const stream = require('stream'); -const pipeline = promisify(stream.pipeline); - module.exports = class Experiments { constructor(cortexUrl) { this.cortexUrl = cortexUrl; @@ -140,7 +139,7 @@ module.exports = class Experiments { .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - json: experimentObj + json: experimentObj, }).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 9ad7bbad..ba5e7124 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -21,7 +21,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { - printSuccess, printError, filterObject, printTable, parseObject, + printSuccess, printError, filterObject, printTable, parseObject, formatValidationPath, } = require('./utils'); class ListExperiments { @@ -319,7 +319,6 @@ class UploadArtifactCommand { const experiments = new Experiments(profile.url); - const chunkSize = parseInt(options.chunkSize, 10); const upload = _.partial(UploadArtifactCommand.upload, experiments, profile, options); upload(filePath, artifact, experimentName, runId); @@ -352,5 +351,5 @@ module.exports = { DownloadArtifactCommand, SaveExperimentCommand, CreateRunCommand, - UploadArtifactCommand + UploadArtifactCommand, }; diff --git a/src/commands/models.js b/src/commands/models.js index bafedb41..0a4c188e 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -153,22 +153,22 @@ module.exports.PublishModelCommand = class PublishModelCommand { if (response.success) { const result = filterObject(response.model, options); printSuccess(JSON.stringify(result, null, 2), options); - result.status = 'Published' - models.saveModel(options.project || profile.project, profile.token, model).then((response) => { - if (response.success) { + result.status = 'Published'; + models.saveModel(options.project || profile.project, profile.token, result).then((responseModel) => { + if (responseModel.success) { printSuccess('Model saved', options); - } else if (response.details) { - console.log(`Failed to save model: ${response.status} ${response.message}`); + } else if (responseModel.details) { + console.log(`Failed to save model: ${responseModel.status} ${responseModel.message}`); console.log('The following issues were found:'); const tableSpec = [ { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; response.details.map(d => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); + printTable(tableSpec, responseModel.details); printError(''); // Just exit } else { - printError(JSON.stringify(response)); + printError(JSON.stringify(responseModel)); } }) .catch((err) => { @@ -197,39 +197,38 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { const model = parseObject(modelDefStr, options); debug('%o', model); - const models = new Models(profile.url); const experiments = new Experiments(profile.url); experiments.saveExperiment(options.project || profile.project, profile.token, model).then((response) => { if (response.success) { - const experiment_name = response.result.name; - experiments.createRun(options.project || profile.project, profile.token, experiment_name).then((response_run) => { - if (response_run.success) { - const runId = response_run.result.runId; + const experimentName = response.result.name; + experiments.createRun(options.project || profile.project, profile.token, experimentName).then((responseRun) => { + if (responseRun.success) { + const runId = _.get(responseRun, 'result.runId', ''); const contentType = _.get(options, 'contentType', 'application/octet-stream'); - experiments.uploadArtifact(options.project || profile.project, profile.token, experiment_name, runId, model.filePath, model.artifact, contentType).then((response_artifact) => { - if (response_artifact.success) { + experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, model.filePath, model.artifact, contentType).then((responseArtifact) => { + if (responseArtifact.success) { printSuccess('Artifact successfully uploaded.', options); - printSuccess(JSON.stringify(response_run.result, null, 2), options); + printSuccess(JSON.stringify(responseRun.result, null, 2), options); } else { - printError(`Failed to upload Artifact: ${response_artifact.status} ${response.message}`, options); + printError(`Failed to upload Artifact: ${responseArtifact.status} ${responseArtifact.message}`, options); } }) .catch((err) => { debug(err); printError(`Failed to upload Artifact: ${err.status} ${err.message}`, options); }); - } else if (response_run.details) { - console.log(`Failed to create run: ${response_run.status} ${response_run.message}`); + } else if (responseRun.details) { + console.log(`Failed to create run: ${responseRun.status} ${responseRun.message}`); console.log('The following issues were found:'); const tableSpec = [ { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; response.details.map(d => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response_run.details); + printTable(tableSpec, responseRun.details); printError(''); // Just exit } else { - printError(JSON.stringify(response_run)); + printError(JSON.stringify(responseRun)); } }).catch((err) => { printError(`Failed to create Run: ${err.status} ${err.message}`, options); @@ -252,4 +251,4 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { printError(`Failed to register model: ${err.status} ${err.message}`, options); }); } -}; \ No newline at end of file +}; From b8a6801c864b33e8592d0d2659ee8690219df4be Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Jun 2021 18:32:16 +0530 Subject: [PATCH 313/864] cli for list runs by model --- bin/cortex-models.js | 21 +++++++++++++++++++++ src/client/models.js | 14 ++++++++++++++ src/commands/models.js | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 93aeb86d..de19afcb 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -26,6 +26,7 @@ const { SaveModelCommand, DescribeModelCommand, ListModelsCommand, + ListModelRunsCommand, } = require('../src/commands/models'); program.description('Work with Cortex Models'); @@ -41,6 +42,7 @@ program .option('--project [project]', 'The project to use') .option('--offset [offset]', 'The offset to use') .option('--limit [limit]', 'The limit to use') + .option('--tags [tags]', 'The tags to use (comma separated values)') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { @@ -104,4 +106,23 @@ program } })); +// List model runs Model +program + .command('list-runs ') + .description('list model run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((modelName, options) => { + try { + new ListModelRunsCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + program.parse(process.argv); diff --git a/src/client/models.js b/src/client/models.js index c8599bb7..0fb031be 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -81,4 +81,18 @@ module.exports = class Models { .then(modelsResp => ({ success: true, ...modelsResp })) .catch(err => constructError(err)); } + + listModelRuns(projectId, modelName, token) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${modelName}/experiments/runs`; + debug('listModels() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(modelsResp => ({ success: true, ...modelsResp })) + .catch(err => constructError(err)); + } }; diff --git a/src/commands/models.js b/src/commands/models.js index af59ff63..cbd95d86 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -14,10 +14,12 @@ * limitations under the License. */ const fs = require('fs'); +const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); const Models = require('../client/models'); +const Experiments = require('../client/experiments'); const { LISTTABLEFORMAT } = require('./utils'); const { @@ -91,6 +93,36 @@ module.exports.ListModelsCommand = class ListModelsCommand { } }; +module.exports.ListModelRunsCommand = class ListModelsCommand { + constructor(program) { + this.program = program; + } + + execute(modelName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeListModels()', profile.name); + const models = new Models(profile.url); + models.listModelRuns(options.project || profile.project, modelName, profile.token).then((response) => { + if (response.success) { + let result = response.runs; + if (options.query) result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + } + } else { + printError(`Failed to list model runs: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to list model runs: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.DescribeModelCommand = class DescribeModelCommand { constructor(program) { this.program = program; From 6963f765244e9ef36a7e3e5c8512578ea37c69c4 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Wed, 9 Jun 2021 18:35:39 +0530 Subject: [PATCH 314/864] removed print --- src/commands/models.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/commands/models.js b/src/commands/models.js index 0a4c188e..192b9546 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -152,11 +152,10 @@ module.exports.PublishModelCommand = class PublishModelCommand { models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { if (response.success) { const result = filterObject(response.model, options); - printSuccess(JSON.stringify(result, null, 2), options); result.status = 'Published'; models.saveModel(options.project || profile.project, profile.token, result).then((responseModel) => { if (responseModel.success) { - printSuccess('Model saved', options); + printSuccess('Model published', options); } else if (responseModel.details) { console.log(`Failed to save model: ${responseModel.status} ${responseModel.message}`); console.log('The following issues were found:'); From 5d94f74978f44805ec498150eb247c891c99f491 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Jun 2021 18:55:22 +0530 Subject: [PATCH 315/864] added run table format --- src/commands/models.js | 5 ++--- src/commands/utils.js | 7 +++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/commands/models.js b/src/commands/models.js index cbd95d86..cebf3559 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -19,8 +19,7 @@ const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); const Models = require('../client/models'); -const Experiments = require('../client/experiments'); -const { LISTTABLEFORMAT } = require('./utils'); +const { LISTTABLEFORMAT, RUNTABLEFORMAT } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, @@ -110,7 +109,7 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + printTable(RUNTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list model runs: ${response.status} ${response.message}`, options); diff --git a/src/commands/utils.js b/src/commands/utils.js index f2b74a98..9c383d64 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -316,3 +316,10 @@ module.exports.LISTTABLEFORMAT = [ { column: 'Author', field: 'createdBy', width: 25 }, ]; + +module.exports.RUNTABLEFORMAT = [ + { column: 'Run ID', field: 'runId', width: 30 }, + { column: 'Experiment Name', field: 'experimentName', width: 40 }, + { column: 'Took', field: 'took', width: 50 }, + { column: 'Modified', field: '_updatedAt', width: 26 }, +]; From a6b71cb1b8bb90742d1bedbe9eead3a8d56a0145 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Jun 2021 19:02:34 +0530 Subject: [PATCH 316/864] removed conflicting code --- bin/cortex-models.js | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index de19afcb..ccdd12f1 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -42,7 +42,6 @@ program .option('--project [project]', 'The project to use') .option('--offset [offset]', 'The offset to use') .option('--limit [limit]', 'The limit to use') - .option('--tags [tags]', 'The tags to use (comma separated values)') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { From 2bf7e732e8b2b02f33197750eaa9c2e9ec3fe053 Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Wed, 9 Jun 2021 21:26:51 +0530 Subject: [PATCH 317/864] npm audit fixes (#342) --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 54db0514..7f7bc8e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2340,9 +2340,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } @@ -4131,9 +4131,9 @@ "dev": true }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "npm-package-arg": { "version": "8.1.2", From 2ac1ca1396ebe9dfa806dba5ada03cbb8e4996c2 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Thu, 10 Jun 2021 10:53:14 +0530 Subject: [PATCH 318/864] renamed command --- bin/cortex-models.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 902487f8..83c4e76d 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -108,7 +108,7 @@ program // Register Model program - .command('register-model ') + .command('register ') .description('Register a model') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') From 1c539fba57af8b309cf48da169add448666107d4 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 10 Jun 2021 12:43:32 +0530 Subject: [PATCH 319/864] code refactor --- src/commands/models.js | 144 +++++++++++++++++------------------------ 1 file changed, 61 insertions(+), 83 deletions(-) diff --git a/src/commands/models.js b/src/commands/models.js index 192b9546..377ade8c 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -145,41 +145,26 @@ module.exports.PublishModelCommand = class PublishModelCommand { this.program = program; } - execute(modelName, options) { + async execute(modelName, options) { const profile = loadProfile(options.profile); const models = new Models(profile.url); debug('%s.executePublishModel(%s)', profile.name, modelName); - models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { - if (response.success) { - const result = filterObject(response.model, options); - result.status = 'Published'; - models.saveModel(options.project || profile.project, profile.token, result).then((responseModel) => { - if (responseModel.success) { - printSuccess('Model published', options); - } else if (responseModel.details) { - console.log(`Failed to save model: ${responseModel.status} ${responseModel.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map(d => d.path = formatValidationPath(d.path)); - printTable(tableSpec, responseModel.details); - printError(''); // Just exit - } else { - printError(JSON.stringify(responseModel)); - } - }) - .catch((err) => { - printError(`Failed to save model: ${err.status} ${err.message}`, options); - }); - } else { - printError(`Failed to publish model ${modelName}: ${response.message}`, options); + try { + const getModelObj = await models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose); + if (!getModelObj.success) { + printError(JSON.stringify(getModelObj)); + return; } - }) - .catch((err) => { - printError(`Failed to describe model ${modelName}: ${err.status} ${err.message}`, options); - }); + const model = { ...getModelObj.model }; + model.status = 'Published'; + const saveModelObj = await models.saveModel(options.project || profile.project, profile.token, model); + if (!saveModelObj.success) { + printError(JSON.stringify(saveModelObj)); + } + printSuccess('Model published', options); + } catch (err) { + printError(`Failed to publish model ${modelName}: ${err.status} ${err.message}`, options); + } } }; @@ -188,7 +173,7 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { this.program = program; } - execute(modelDefinition, options) { + async execute(modelDefinition, options) { const profile = loadProfile(options.profile); debug('%s.executeRegisterModel(%s)', profile.name, modelDefinition); @@ -196,58 +181,51 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { const model = parseObject(modelDefStr, options); debug('%o', model); + function printErrorDetails(response) { + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } + const experiments = new Experiments(profile.url); - experiments.saveExperiment(options.project || profile.project, profile.token, model).then((response) => { - if (response.success) { - const experimentName = response.result.name; - experiments.createRun(options.project || profile.project, profile.token, experimentName).then((responseRun) => { - if (responseRun.success) { - const runId = _.get(responseRun, 'result.runId', ''); - const contentType = _.get(options, 'contentType', 'application/octet-stream'); - experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, model.filePath, model.artifact, contentType).then((responseArtifact) => { - if (responseArtifact.success) { - printSuccess('Artifact successfully uploaded.', options); - printSuccess(JSON.stringify(responseRun.result, null, 2), options); - } else { - printError(`Failed to upload Artifact: ${responseArtifact.status} ${responseArtifact.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to upload Artifact: ${err.status} ${err.message}`, options); - }); - } else if (responseRun.details) { - console.log(`Failed to create run: ${responseRun.status} ${responseRun.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map(d => d.path = formatValidationPath(d.path)); - printTable(tableSpec, responseRun.details); - printError(''); // Just exit - } else { - printError(JSON.stringify(responseRun)); - } - }).catch((err) => { - printError(`Failed to create Run: ${err.status} ${err.message}`, options); - }); - } else if (response.details) { - console.log(`Failed to save experiment: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map(d => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - printError(''); // Just exit - } else { - printError(JSON.stringify(response)); + try { + const saveExperimentResponse = await experiments.saveExperiment(options.project || profile.project, profile.token, model); + if (!saveExperimentResponse.success) { + if (saveExperimentResponse.details) { + printErrorDetails(saveExperimentResponse); + return; + } + printError(JSON.stringify(saveExperimentResponse)); + return; } - }) - .catch((err) => { + const experimentName = _.get(saveExperimentResponse, 'result.name', ''); + const saveRunResponse = await experiments.createRun(options.project || profile.project, profile.token, experimentName); + if (!saveRunResponse.success) { + if (saveRunResponse.details) { + printErrorDetails(saveRunResponse); + return; + } + printError(JSON.stringify(saveRunResponse)); + return; + } + const runId = _.get(saveRunResponse, 'result.runId', ''); + const contentType = _.get(options, 'contentType', 'application/octet-stream'); + const uploadArtifactResponse = experiments.uploadArtifact( + options.project || profile.project, profile.token, + experimentName, runId, model.filePath, model.artifact, contentType, + ); + if (uploadArtifactResponse.success) { + printSuccess('Artifact successfully uploaded.', options); + printSuccess(JSON.stringify(uploadArtifactResponse.result, null, 2), options); + return; + } + printError(`Failed to upload Artifact: ${uploadArtifactResponse.status} ${uploadArtifactResponse.message}`, options); + } catch (err) { printError(`Failed to register model: ${err.status} ${err.message}`, options); - }); -} + } + } }; From 6553a4204ab07667c8698d736fdc7b9991a99385 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Thu, 10 Jun 2021 13:00:47 +0530 Subject: [PATCH 320/864] bug fix --- src/commands/models.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/models.js b/src/commands/models.js index 377ade8c..b377598a 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -214,13 +214,13 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { } const runId = _.get(saveRunResponse, 'result.runId', ''); const contentType = _.get(options, 'contentType', 'application/octet-stream'); - const uploadArtifactResponse = experiments.uploadArtifact( + const uploadArtifactResponse = await experiments.uploadArtifact( options.project || profile.project, profile.token, experimentName, runId, model.filePath, model.artifact, contentType, ); if (uploadArtifactResponse.success) { printSuccess('Artifact successfully uploaded.', options); - printSuccess(JSON.stringify(uploadArtifactResponse.result, null, 2), options); + printSuccess(JSON.stringify(saveRunResponse.result, null, 2), options); return; } printError(`Failed to upload Artifact: ${uploadArtifactResponse.status} ${uploadArtifactResponse.message}`, options); From 6302eae3d62a473a2147e79835b001076c4ef1e3 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 10 Jun 2021 18:23:38 +0530 Subject: [PATCH 321/864] removed unused code --- src/commands/models.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/models.js b/src/commands/models.js index cebf3559..11ec71be 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -14,7 +14,6 @@ * limitations under the License. */ const fs = require('fs'); -const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); From cee8040a9700a9ca48bd51ecd5a366e9af7523c9 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Thu, 10 Jun 2021 19:47:07 +0530 Subject: [PATCH 322/864] review fixes --- bin/cortex-experiments.js | 2 ++ bin/cortex-models.js | 4 ++-- src/commands/experiments.js | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 27342bdd..17830cd7 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -62,6 +62,7 @@ program program .command('describe ') .description('Describe experiment') + .alias('get') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -117,6 +118,7 @@ program program .command('describe-run ') .description('Describe run') + .alias('get-run') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 83c4e76d..e788db94 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -108,8 +108,8 @@ program // Register Model program - .command('register ') - .description('Register a model') + .command('upload ') + .description('Upload a model') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/src/commands/experiments.js b/src/commands/experiments.js index ba5e7124..a086c249 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -288,6 +288,7 @@ class CreateRunCommand { experiments.createRun(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { printSuccess('Run created', options); + printSuccess(JSON.stringify(response.result, null, 2), options); } else if (response.details) { console.log(`Failed to create run: ${response.status} ${response.message}`); console.log('The following issues were found:'); From 78b50ed9cc9ebe7a7dd377ce477daa833970a240 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 10 Jun 2021 19:47:40 +0530 Subject: [PATCH 323/864] removed unwanted text --- bin/cortex-models.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index de19afcb..98f233a8 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -106,7 +106,7 @@ program } })); -// List model runs Model +// List model runs program .command('list-runs ') .description('list model run') From 0476335953573e1dbbdb516e0bcc8e6411aa5fd7 Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 11 Jun 2021 14:26:06 +0530 Subject: [PATCH 324/864] list resource types API for assessments --- bin/cortex-assessments.js | 20 ++++++++++++++++++-- src/client/assessments.js | 13 +++++++++++++ src/commands/assessments.js | 35 +++++++++++++++++++++++++++++++++-- 3 files changed, 64 insertions(+), 4 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 05910f25..a5bdd8a8 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -22,6 +22,7 @@ const program = require('../src/commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { ListResourcesCommand, + ListResourceTypesCommand, CreateAssessmentCommand, ListAssessmentCommand, DescribeAssessmentCommand, @@ -35,7 +36,22 @@ const { program.description('Work with Cortex Assessments'); program - .command('generate') + .command('list-types') + .description('List Cortex resource types') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck((options) => { + try { + new ListResourceTypesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('list-resources') .description('List matching resources') .storeOptionsAsProperties(false) .option('--scope [projects]', 'Assessment scope projects') @@ -58,7 +74,7 @@ program program .command('create [assessmentDefinition]') .alias('save') - .description('Create an assessment') + .description('Create an assessment. Do `list-resources` and `list-types` to select component and type') .storeOptionsAsProperties(false) .option('--name [name]', 'Assessment name') .option('--title [title]', 'Assessment title') diff --git a/src/client/assessments.js b/src/client/assessments.js index df4f5c44..2737cd57 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -37,6 +37,19 @@ module.exports = class Assessments { .catch(err => constructError(err)); } + listResourceTypes(token) { + const url = `${this.endpointV4}/types`; + debug('listResourceTypes => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => res) + .catch(err => constructError(err)); + } + createAssessment(token, name, title, description, scope, componentName, componentTypes) { const url = `${this.endpointV4}/assessments`; debug('createAssessment => %s', url); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 05ff7484..beb14198 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -48,14 +48,45 @@ module.exports.ListResourcesCommand = class { const tableSpec = [ { column: 'Name', field: 'resourceName', width: 30 }, { column: 'Title', field: 'resourceTitle', width: 30 }, - { column: 'Type', field: 'resourceType', width: 16 }, + { column: 'Type', field: 'resourceType', width: 25 }, { column: 'Project', field: '_projectId', width: 15 }, ]; printTable(tableSpec, response.data); } }) .catch((err) => { - printError(`Failed to list actions: ${err.status} ${err.message}`, options); + printError(`Failed to list Cortex resources: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListResourceTypesCommand = class { + constructor(program) { + this.program = program; + } + + execute(command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.ListResourceTypesCommand()', profile.name); + + const client = new Assessments(profile.url); + client.listResourceTypes(profile.token) + .then((response) => { + if (response.success === false) throw response; + if (options.json) { + printSuccess(JSON.stringify(response.data, null, 2), options); + } else { + const types = response.data.map(t => ({ type: t })); + printSuccess(JSON.stringify(types, null, 2), options); + const tableSpec = [ + { column: 'Type', field: 'type', width: 25 }, + ]; + printTable(tableSpec, types); + } + }) + .catch((err) => { + printError(`Failed to list Cortex resource types: ${err.status} ${err.message}`, options); }); } }; From ab69c1dd461b51cd684827f07b743b3d970fc95e Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 11 Jun 2021 15:21:23 +0530 Subject: [PATCH 325/864] importing only necessary lodash functions --- src/commands/models.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/commands/models.js b/src/commands/models.js index 4a040122..34f08ff9 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -14,7 +14,10 @@ * limitations under the License. */ const fs = require('fs'); -const _ = require('lodash'); + +const _ = { + get: require('lodash/get'), +}; const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); From c600147ef303991b2305130aea71fda081a8a1cc Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 11 Jun 2021 17:32:56 +0530 Subject: [PATCH 326/864] linting fixes --- src/commands/assessments.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index beb14198..6b62d0ca 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -281,8 +281,9 @@ module.exports.GetAssessmentReportCommand = class { }; printSuccess(JSON.stringify(output, null, 2), options); } else { - const flattenRefs = _.uniqBy(_.flatten( - response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId })))), (r) => (`${r.name}-${r.type}`)); + const flattenRefs = _.uniqBy( + _.flatten(response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId })))), + r => (`${r.name}-${r.type}`)); const tableSpec = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Title', field: 'title', width: 30 }, From 5c4d01850ed842e95c727e0406d81e5eee8324fe Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 11 Jun 2021 19:29:07 +0530 Subject: [PATCH 327/864] linting fixes --- src/commands/assessments.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 0e738e1a..b857c5b4 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -79,7 +79,6 @@ module.exports.ListResourceTypesCommand = class { printSuccess(JSON.stringify(response.data, null, 2), options); } else { const types = response.data.map(t => ({ type: t })); - printSuccess(JSON.stringify(types, null, 2), options); const tableSpec = [ { column: 'Type', field: 'type', width: 25 }, ]; From 8baf55e83e48958c86ffe2fec2f11197a04b6ef4 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Mon, 14 Jun 2021 19:27:41 +0530 Subject: [PATCH 328/864] bug fix --- src/commands/models.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/commands/models.js b/src/commands/models.js index 34f08ff9..7e817238 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -208,11 +208,6 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { async execute(modelDefinition, options) { const profile = loadProfile(options.profile); - debug('%s.executeRegisterModel(%s)', profile.name, modelDefinition); - - const modelDefStr = fs.readFileSync(modelDefinition); - const model = parseObject(modelDefStr, options); - debug('%o', model); function printErrorDetails(response) { const tableSpec = [ @@ -225,7 +220,14 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { } const experiments = new Experiments(profile.url); + try { + debug('%s.executeRegisterModel(%s)', profile.name, modelDefinition); + + const modelDefStr = fs.readFileSync(modelDefinition); + const model = parseObject(modelDefStr, options); + debug('%o', model); + const saveExperimentResponse = await experiments.saveExperiment(options.project || profile.project, profile.token, model); if (!saveExperimentResponse.success) { if (saveExperimentResponse.details) { @@ -258,7 +260,7 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { } printError(`Failed to upload Artifact: ${uploadArtifactResponse.status} ${uploadArtifactResponse.message}`, options); } catch (err) { - printError(`Failed to register model: ${err.status} ${err.message}`, options); + printError(`Failed to upload model: ${err.status} ${err.message}`, options); } } }; From fac85efcd3afcc83e0d61cc14112259261b2e59e Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Tue, 15 Jun 2021 10:12:05 +0530 Subject: [PATCH 329/864] renaming model id --- bin/cortex-experiments.js | 2 +- src/commands/experiments.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 707db8e1..a5bb0d07 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -44,7 +44,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--modelId [modelId]', 'The model to use') + .option('--model [model]', 'The model to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') diff --git a/src/commands/experiments.js b/src/commands/experiments.js index c0f240e1..20dcc0f2 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -34,7 +34,7 @@ class ListExperiments { debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); - exp.listExperiments(options.project || profile.project, options.modelId, profile.token).then((response) => { + exp.listExperiments(options.project || profile.project, options.model, profile.token).then((response) => { if (response.success) { let { result } = response; if (options.query) { From 22a9ca4fc1bf007c44e7f5fafb2af4d1525623df Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 16 Jun 2021 14:20:18 +0530 Subject: [PATCH 330/864] FAB-2109 help text, sort order etc formatting --- bin/cortex-assessments.js | 12 +++++++----- src/client/assessments.js | 5 +++-- src/commands/assessments.js | 15 +++++++++------ 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index a5bdd8a8..e3447e20 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -54,9 +54,9 @@ program .command('list-resources') .description('List matching resources') .storeOptionsAsProperties(false) - .option('--scope [projects]', 'Assessment scope projects') - .option('--name [Cortex component name]', 'Cortex component name') - .option('--type [Cortex component types]', 'Assessment scope component types') + .option('--scope [projects]', 'Assessment scope projects (comma separated values)') + .option('--name [Cortex component name]', 'Cortex component name (case insensitive regex/substring match)') + .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') .option('--skip [Skip records for pagination]', 'Skip records for pagination') .option('--limit [Limit records for pagination]', 'Limit records for pagination') .option('--no-compat', 'Ignore API compatibility checks') @@ -79,9 +79,9 @@ program .option('--name [name]', 'Assessment name') .option('--title [title]', 'Assessment title') .option('--description [description]', 'Assessment description') - .option('--scope [projects]', 'Assessment scope projects') + .option('--scope [projects]', 'Assessment scope projects (comma separated values)') .option('--component [Cortex component name]', 'Cortex component name') - .option('--type [Cortex component types]', 'Assessment scope component types') + .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML format') @@ -188,6 +188,8 @@ program program .command('report-export ') .description('Export report of the assessment') + .storeOptionsAsProperties(false) + .option('--type [Cortex component types]', 'Component types to export (comma separated values)') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/src/client/assessments.js b/src/client/assessments.js index 64ea1f7c..738fb21c 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -148,8 +148,9 @@ module.exports = class Assessments { .catch(err => constructError(err)); } - exportAssessmentReport(token, name, reportId) { - const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}/export`; + exportAssessmentReport(token, name, reportId, types) { + const filter = types && types.trim() ? `?components=${types.trim()}` : ''; + const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}/export${filter}`; debug('exportAssessmentReport => %s', url); got.stream(url, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/assessments.js b/src/commands/assessments.js index b857c5b4..765eb9ab 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -19,6 +19,7 @@ const _ = { uniqBy: require('lodash/uniqBy'), sortBy: require('lodash/sortBy'), flatten: require('lodash/flatten'), + compact: require('lodash/compact'), }; const debug = require('debug')('cortex:cli'); const moment = require('moment'); @@ -52,7 +53,7 @@ module.exports.ListResourcesCommand = class { { column: 'Type', field: 'resourceType', width: 25 }, { column: 'Project', field: '_projectId', width: 15 }, ]; - printTable(tableSpec, response.data); + printTable(tableSpec, _.sortBy(response.data, ['_projectId', 'resourceType'])); } }) .catch((err) => { @@ -75,10 +76,11 @@ module.exports.ListResourceTypesCommand = class { client.listResourceTypes(profile.token) .then((response) => { if (response.success === false) throw response; + const data = _.compact(response.data) if (options.json) { - printSuccess(JSON.stringify(response.data, null, 2), options); + printSuccess(JSON.stringify(data, null, 2), options); } else { - const types = response.data.map(t => ({ type: t })); + const types = data.map(t => ({ type: t })); const tableSpec = [ { column: 'Type', field: 'type', width: 25 }, ]; @@ -292,7 +294,7 @@ module.exports.GetAssessmentReportCommand = class { { column: 'Type', field: 'type', width: 20 }, { column: 'Project', field: 'projectId', width: 25 }, ]; - printTable(tableSpec, _.sortBy(flattenRefs, 'type')); + printTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type'])); } }) .catch((err) => { @@ -306,12 +308,13 @@ module.exports.ExportAssessmentReportCommand = class { this.program = program; } - execute(name, reportId, options) { + execute(name, reportId, command) { + const options = command.opts(); const profile = loadProfile(options.profile); debug('%s.ExportAssessmentReportCommand()', profile.name); const client = new Assessments(profile.url); - client.exportAssessmentReport(profile.token, name, reportId) + client.exportAssessmentReport(profile.token, name, reportId, options.type) .then((response) => { if (response.success === false) throw response; printSuccess(`Report exported to ${response.file}`, options); From e0345a5fc2e2d56851e8e01cbc1e7a92faed7b07 Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Thu, 17 Jun 2021 08:34:31 +0530 Subject: [PATCH 331/864] add missing semicolon (#349) --- src/commands/assessments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 765eb9ab..c9ed5273 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -76,7 +76,7 @@ module.exports.ListResourceTypesCommand = class { client.listResourceTypes(profile.token) .then((response) => { if (response.success === false) throw response; - const data = _.compact(response.data) + const data = _.compact(response.data); if (options.json) { printSuccess(JSON.stringify(data, null, 2), options); } else { From f2927dadafd9f3573779723c2f1f9af23c780b2b Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 17 Jun 2021 19:57:06 +0530 Subject: [PATCH 332/864] FAB-2019 mission deploy and list API --- bin/cortex-campaigns.js | 35 ++++++++++++++++++++++- src/client/catalog.js | 30 +++++++++++++++++++- src/commands/campaigns.js | 60 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 2 deletions(-) diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index a98f434d..b0f4ed81 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -26,6 +26,8 @@ const { DescribeCampaignCommand, ExportCampaignCommand, ImportCampaignCommand, + ListMissionsCommand, + DeployMissionCommand, } = require('../src/commands/campaigns'); program.description('Work with Cortex Campaigns'); @@ -90,7 +92,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--filepath [filepath]', 'Exported Campaign file path to import') .option('--deploy [boolean]', 'Set missions status Ready To Deploy', true) .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) .action(withCompatibilityCheck((campaignName, options) => { @@ -101,4 +102,36 @@ program } })); +program + .command('list-missions ') + .description('List Missions of the Campaign') + .option('--json', 'Output results using JSON') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ListMissionsCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('deploy-missions ') + .description('Deploy the selected Missions of the Campaign') + .option('--json', 'Output results using JSON') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new DeployMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/catalog.js b/src/client/catalog.js index d664bbf9..5c9e4d1b 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -267,7 +267,7 @@ module.exports = class Catalog { importCampaign(projectId, token, filepath, deploy, overwrite) { checkProject(projectId); - + const importUrl = `${this.endpoints.campaigns(projectId)}import?deployable=${deploy}&overwrite=${overwrite}`; debug('importCampaign(%s) => %s', filepath, importUrl); if (!fs.existsSync(filepath) || !fs.lstatSync(filepath).isFile()) { @@ -298,6 +298,34 @@ module.exports = class Catalog { }); } + listMissions(projectId, token, campaign) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions`; + debug('listMissions() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + + deployMissions(projectId, token, campaign, mission) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions/${mission}/deploy`; + debug('deployMissions() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + // saveProfileSchema(projectId, token, schemaObj) { // debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); // return request diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 29f5501e..705f6e0f 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -109,3 +109,63 @@ module.exports.ImportCampaignCommand = class ImportCampaignCommand { } } }; + +module.exports.ListMissionsCommand = class ListMissionsCommand { + constructor(program) { + this.program = program; + } + + execute(campaign, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeListMissionsCommand(%s)', profile.name, campaign); + const cli = new Catalog(profile.url); + + try { + cli.listMissions(options.project || profile.project, profile.token, campaign).then(response => { + if (response.success === false) throw response; + const data = Object.values(response.data); + if (options.json) { + printSuccess(JSON.stringify(data, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 50 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 80 }, + { column: 'Status', field: 'lifecycleState', width: 30 }, + ]; + printTable(tableSpec, data); + } + }); + } catch (err) { + printError(`Failed to list missions of campaign ${campaign}: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.DeployMissionCommand = class DeployMissionCommand { + constructor(program) { + this.program = program; + } + + execute(campaign, mission, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); + const cli = new Catalog(profile.url); + + cli.deployMissions(options.project || profile.project, profile.token, campaign, mission).then(response => { + if (response.success === false) throw response; + if (options.json) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 80 }, + ]; + printTable(tableSpec, result); + } + }).catch(err => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); + } +}; From 52f21aacc1d09a48c259b229fa97c9104ecf19e0 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 17 Jun 2021 22:07:42 +0530 Subject: [PATCH 333/864] FAB-2019 mission deploy, get and list command --- bin/cortex-campaigns.js | 32 ---------------- bin/cortex-missions.js | 79 +++++++++++++++++++++++++++++++++++++++ bin/cortex.js | 1 + src/client/catalog.js | 16 +++++++- src/commands/campaigns.js | 31 +++++++++------ 5 files changed, 115 insertions(+), 44 deletions(-) create mode 100755 bin/cortex-missions.js diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index b0f4ed81..2098e4b3 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -102,36 +102,4 @@ program } })); -program - .command('list-missions ') - .description('List Missions of the Campaign') - .option('--json', 'Output results using JSON') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((campaignName, options) => { - try { - new ListMissionsCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('deploy-missions ') - .description('Deploy the selected Missions of the Campaign') - .option('--json', 'Output results using JSON') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { - new DeployMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - program.parse(process.argv); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js new file mode 100755 index 00000000..74d5261e --- /dev/null +++ b/bin/cortex-missions.js @@ -0,0 +1,79 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListMissionsCommand, + DeployMissionCommand, + DescribeMissionCommand, +} = require('../src/commands/campaigns'); + +program.description('Work with Cortex Missions'); + +program + .command('list ') + .description('List Missions of the Campaign') + .option('--json', 'Output results using JSON') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ListMissionsCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('describe ') + .alias('get') + .description('Describe the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new DescribeMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('deploy ') + .description('Deploy the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new DeployMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 39eb92fe..c28bd6f6 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -37,6 +37,7 @@ program .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') .command('generate [cmd]', 'Scaffold Cortex Components') + .command('missions [cmd]', 'Work with Cortex Missions') .command('models [cmd]', 'Work with Cortex Models') .command('projects [cmd]', 'Work with Cortex Projects') .command('roles [cmd]', 'Work with a Cortex Roles') diff --git a/src/client/catalog.js b/src/client/catalog.js index 5c9e4d1b..d321938c 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -312,7 +312,7 @@ module.exports = class Catalog { .catch(err => constructError(err)); } - deployMissions(projectId, token, campaign, mission) { + deployMission(projectId, token, campaign, mission) { checkProject(projectId); const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions/${mission}/deploy`; debug('deployMissions() => %s', endpoint); @@ -326,6 +326,20 @@ module.exports = class Catalog { .catch(err => constructError(err)); } + getMission(projectId, token, campaign, mission) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions/${mission}`; + debug('getMissions() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + // saveProfileSchema(projectId, token, schemaObj) { // debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); // return request diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 705f6e0f..7b5e3510 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -154,18 +154,27 @@ module.exports.DeployMissionCommand = class DeployMissionCommand { debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.deployMissions(options.project || profile.project, profile.token, campaign, mission).then(response => { + cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then(response => { if (response.success === false) throw response; - if (options.json) { - printSuccess(JSON.stringify(response, null, 2), options); - } else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Description', field: 'description', width: 80 }, - ]; - printTable(tableSpec, result); - } + printSuccess(JSON.stringify(response.data, null, 2), options); }).catch(err => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); } }; + +module.exports.DescribeMissionCommand = class DescribeMissionCommand { + constructor(program) { + this.program = program; + } + + execute(campaign, mission, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDescribeMissionCommand(%s)', profile.name, campaign); + const cli = new Catalog(profile.url); + + cli.getMission(options.project || profile.project, profile.token, campaign, mission).then(response => { + if (response.success === false) throw response; + printSuccess(JSON.stringify(response.data, null, 2), options); + }).catch(err => printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); + } +}; From d35a4e46a065d795266fd8c2d28da10cb33cc110 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 17 Jun 2021 22:19:05 +0530 Subject: [PATCH 334/864] unused imports --- bin/cortex-campaigns.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 2098e4b3..92618bea 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -26,8 +26,6 @@ const { DescribeCampaignCommand, ExportCampaignCommand, ImportCampaignCommand, - ListMissionsCommand, - DeployMissionCommand, } = require('../src/commands/campaigns'); program.description('Work with Cortex Campaigns'); From e9988b798d616231a19c19f22243ee8c848a2718 Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 18 Jun 2021 12:57:51 +0530 Subject: [PATCH 335/864] dynamic table column width --- src/commands/assessments.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index c9ed5273..7868c426 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -17,6 +17,7 @@ const fs = require('fs'); const _ = { uniqBy: require('lodash/uniqBy'), + maxBy: require('lodash/maxBy'), sortBy: require('lodash/sortBy'), flatten: require('lodash/flatten'), compact: require('lodash/compact'), @@ -47,11 +48,12 @@ module.exports.ListResourcesCommand = class { if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { + const maxLen = _.maxBy(response.data, (r) => r.resourceName.length).resourceName.length; const tableSpec = [ - { column: 'Name', field: 'resourceName', width: 30 }, + { column: 'Name', field: 'resourceName', width: Math.min(maxLen+2, 90) }, { column: 'Title', field: 'resourceTitle', width: 30 }, { column: 'Type', field: 'resourceType', width: 25 }, - { column: 'Project', field: '_projectId', width: 15 }, + { column: 'Project', field: '_projectId', width: 25 }, ]; printTable(tableSpec, _.sortBy(response.data, ['_projectId', 'resourceType'])); } @@ -151,8 +153,8 @@ module.exports.ListAssessmentCommand = class { { column: 'Description', field: 'description', width: 40 }, { column: 'Projects', field: 'scope', width: 25 }, { column: '# Reports', field: 'reportCount', width: 12 }, - { column: 'Created', field: '_createdAt', width: 25 }, - { column: 'Created By', field: '_createdBy', width: 25 }, + { column: 'Modified', field: '_updatedAt', width: 25 }, + { column: 'Author', field: '_createdBy', width: 25 }, ]; printTable(tableSpec, response.data, o => ({ ...o, _createdAt: o._createdAt ? moment(o._createdAt).fromNow() : '-' })); } @@ -246,8 +248,8 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Assessment Name', field: 'assessmentId', width: 30 }, { column: 'Report Id', field: 'reportId', width: 50 }, { column: 'Impact Summary', field: 'summary', width: 60 }, - { column: 'Created', field: '_createdAt', width: 25 }, - { column: 'Created By', field: '_createdBy', width: 25 }, + { column: 'Modified', field: '_updatedAt', width: 25 }, + { column: 'Author', field: '_createdBy', width: 25 }, ]; response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); printTable(tableSpec, response.data, o => ({ ...o, _createdAt: o._createdAt ? moment(o._createdAt).fromNow() : '-' })); From 035bbbaa1f7552b1c7e4d49d7d79e67215c2aa5e Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 18 Jun 2021 17:14:53 +0530 Subject: [PATCH 336/864] show startTime and took only if present --- src/commands/experiments.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 20dcc0f2..c2e3d0b0 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -135,10 +135,10 @@ class ListRuns { const tableSpec = [ { alias: 'Run ID', value: 'runId', width: 25 }, { - alias: 'Start', value: 'startTime', width: 25, formatter: val => moment.unix(val).format('YYYY-MM-DD HH:mm a'), + alias: 'Start', value: 'startTime', width: 25, formatter: val => (val ? moment.unix(val).format('YYYY-MM-DD HH:mm a') : ''), }, { - alias: 'Took', value: 'took', width: 25, formatter: val => moment.duration(val, 'seconds').humanize(), + alias: 'Took', value: 'took', width: 25, formatter: val => (val ? moment.duration(val, 'seconds').humanize() : ''), }, { alias: 'Params', value: 'params', width: 45, formatter: val => _.map(val, (v, k) => `${k}: ${v}`).join('\n'), From 6cc29f7ef9cc8163369a1688e231f0c925f7d566 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 18 Jun 2021 17:18:44 +0530 Subject: [PATCH 337/864] fixing lint errors --- src/commands/campaigns.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 7b5e3510..61d7a06a 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -122,7 +122,7 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { const cli = new Catalog(profile.url); try { - cli.listMissions(options.project || profile.project, profile.token, campaign).then(response => { + cli.listMissions(options.project || profile.project, profile.token, campaign).then((response) => { if (response.success === false) throw response; const data = Object.values(response.data); if (options.json) { @@ -154,7 +154,7 @@ module.exports.DeployMissionCommand = class DeployMissionCommand { debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then(response => { + cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { if (response.success === false) throw response; printSuccess(JSON.stringify(response.data, null, 2), options); }).catch(err => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); @@ -172,7 +172,7 @@ module.exports.DescribeMissionCommand = class DescribeMissionCommand { debug('%s.executeDescribeMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.getMission(options.project || profile.project, profile.token, campaign, mission).then(response => { + cli.getMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { if (response.success === false) throw response; printSuccess(JSON.stringify(response.data, null, 2), options); }).catch(err => printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); From bc91b689d55060c7e00f6f83639bbfc59d228a5d Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Mon, 21 Jun 2021 14:05:15 +0530 Subject: [PATCH 338/864] removed upload model command and improved create-run to accept json args --- bin/cortex-experiments.js | 6 +++--- bin/cortex-models.js | 32 ++++++++++++++++---------------- src/client/experiments.js | 8 ++++---- src/commands/experiments.js | 9 ++++++--- 4 files changed, 29 insertions(+), 26 deletions(-) diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index a5bb0d07..b69e21f2 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -184,16 +184,16 @@ program // Save Experiment program - .command('create-run ') + .command('create-run ') .description('Create run for experiment') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for run definition format') - .action(withCompatibilityCheck((experimentName, options) => { + .action(withCompatibilityCheck((runDefinition, options) => { try { - new CreateRunCommand(program).execute(experimentName, options); + new CreateRunCommand(program).execute(runDefinition, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 219b6831..d18d9585 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -108,22 +108,22 @@ program } })); -// Register Model -program - .command('upload ') - .description('Upload a model') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-y, --yaml', 'Use YAML for model definition format') - .action(withCompatibilityCheck((modelDefinition, options) => { - try { - new RegisterModelCommand(program).execute(modelDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); +// Register Model - +//program +// .command('upload ') +// .description('Upload a model') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('-y, --yaml', 'Use YAML for model definition format') +// .action(withCompatibilityCheck((modelDefinition, options) => { +// try { +// new RegisterModelCommand(program).execute(modelDefinition, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); // Publish Model program diff --git a/src/client/experiments.js b/src/client/experiments.js index d3ea762e..5b4ec83c 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -145,15 +145,15 @@ module.exports = class Experiments { .catch(err => constructError(err)); } - createRun(projectId, token, experimentName) { + createRun(projectId, token, runObj) { checkProject(projectId); - const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs`; - debug('createRun(%s) => %s', experimentName, endpoint); + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(runObj.experimentName)}/runs`; + debug('createRun(%s) => %s', runObj.experimentName, endpoint); return got .post(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - json: {}, + json: runObj, }).json() .then(result => ({ success: true, result })) .catch(err => constructError(err)); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index c2e3d0b0..89c16335 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -280,12 +280,15 @@ class CreateRunCommand { this.program = program; } - execute(experimentName, options) { + execute(runDefinition, options) { const profile = loadProfile(options.profile); - debug('%s.executeCreateRun(%s)', profile.name, experimentName); + debug('%s.executeCreateRun(%s)', profile.name, runDefinition); + + const runDefinitionStr = fs.readFileSync(runDefinition); + const run = parseObject(runDefinitionStr, options); const experiments = new Experiments(profile.url); - experiments.createRun(options.project || profile.project, profile.token, experimentName).then((response) => { + experiments.createRun(options.project || profile.project, profile.token, run).then((response) => { if (response.success) { printSuccess('Run created', options); printSuccess(JSON.stringify(response.result, null, 2), options); From 972d4ede53b3057b33af7aacc133ce43b7983655 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Mon, 21 Jun 2021 15:39:34 +0530 Subject: [PATCH 339/864] fixing build failures --- bin/cortex-models.js | 4 ++-- src/commands/assessments.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index d18d9585..fc9e6fee 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -26,7 +26,7 @@ const { SaveModelCommand, DescribeModelCommand, ListModelsCommand, - RegisterModelCommand, + // RegisterModelCommand, PublishModelCommand, ListModelRunsCommand, } = require('../src/commands/models'); @@ -109,7 +109,7 @@ program })); // Register Model - -//program +// program // .command('upload ') // .description('Upload a model') // .option('--no-compat', 'Ignore API compatibility checks') diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 7868c426..22286e19 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -48,9 +48,9 @@ module.exports.ListResourcesCommand = class { if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { - const maxLen = _.maxBy(response.data, (r) => r.resourceName.length).resourceName.length; + const maxLen = _.maxBy(response.data, r => r.resourceName.length).resourceName.length; const tableSpec = [ - { column: 'Name', field: 'resourceName', width: Math.min(maxLen+2, 90) }, + { column: 'Name', field: 'resourceName', width: Math.min(maxLen + 2, 90) }, { column: 'Title', field: 'resourceTitle', width: 30 }, { column: 'Type', field: 'resourceType', width: 25 }, { column: 'Project', field: '_projectId', width: 25 }, From 84632d382d94f1028a7c5344b8dbf16b03ee2d20 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 21 Jun 2021 15:46:36 +0530 Subject: [PATCH 340/864] null check --- src/commands/assessments.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 7868c426..93ded9d0 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -48,7 +48,8 @@ module.exports.ListResourcesCommand = class { if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { - const maxLen = _.maxBy(response.data, (r) => r.resourceName.length).resourceName.length; + const maxLenRow = _.maxBy(response.data, (r) => r.resourceName.length); + const maxLen = maxLenRow ? maxLenRow.resourceName.length : 30; const tableSpec = [ { column: 'Name', field: 'resourceName', width: Math.min(maxLen+2, 90) }, { column: 'Title', field: 'resourceTitle', width: 30 }, From c56525576a3cbc10ff2a883214d61c6c7df5e175 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 21 Jun 2021 18:31:19 +0530 Subject: [PATCH 341/864] format updated timestamp as moment --- src/commands/assessments.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index a9b59908..f0b8349c 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -48,7 +48,6 @@ module.exports.ListResourcesCommand = class { if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { - const maxLenRow = _.maxBy(response.data, r => r.resourceName.length); const maxLen = maxLenRow ? maxLenRow.resourceName.length : 30; const tableSpec = [ @@ -158,7 +157,7 @@ module.exports.ListAssessmentCommand = class { { column: 'Modified', field: '_updatedAt', width: 25 }, { column: 'Author', field: '_createdBy', width: 25 }, ]; - printTable(tableSpec, response.data, o => ({ ...o, _createdAt: o._createdAt ? moment(o._createdAt).fromNow() : '-' })); + printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); } }) .catch((err) => { @@ -254,7 +253,7 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Author', field: '_createdBy', width: 25 }, ]; response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); - printTable(tableSpec, response.data, o => ({ ...o, _createdAt: o._createdAt ? moment(o._createdAt).fromNow() : '-' })); + printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); } }) .catch((err) => { From 99e50f10ce066a97c0b32be633281cbcb546f000 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 22 Jun 2021 16:06:20 +0530 Subject: [PATCH 342/864] mission invoke command added --- bin/cortex-missions.js | 19 +++++++++++++++++++ src/commands/campaigns.js | 4 +++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 74d5261e..c15152b0 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -27,6 +27,8 @@ const { DescribeMissionCommand, } = require('../src/commands/campaigns'); +const { InvokeAgentServiceCommand } = require('../src/commands/agents'); + program.description('Work with Cortex Missions'); program @@ -76,4 +78,21 @@ program } })); +program + .command('invoke ') + .description('Invoke an agent service') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--params [params]', 'JSON params to send to the action') + .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .action(withCompatibilityCheck((missionName, options) => { + try { + new InvokeAgentServiceCommand(program).execute(missionName, 'router_service', options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 7b5e3510..f84270f3 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -17,6 +17,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const Catalog = require('../client/catalog'); +const _ = { get: require('lodash/get')}; const { printSuccess, printError, filterObject, printTable, } = require('./utils'); @@ -156,7 +157,8 @@ module.exports.DeployMissionCommand = class DeployMissionCommand { cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then(response => { if (response.success === false) throw response; - printSuccess(JSON.stringify(response.data, null, 2), options); + const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); + printSuccess(output, options); }).catch(err => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); } }; From dc1358cc78bb0009c380f23ca337f8dfba060093 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 22 Jun 2021 16:16:34 +0530 Subject: [PATCH 343/864] mission invoke command added --- bin/cortex-missions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index c15152b0..7af2ffea 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -80,7 +80,7 @@ program program .command('invoke ') - .description('Invoke an agent service') + .description('Invoke the mission') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') From 7a20c65b6665a2da167449a5841f08a04d75b86a Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 22 Jun 2021 16:20:34 +0530 Subject: [PATCH 344/864] added campaign name as per docs --- bin/cortex-missions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 7af2ffea..32b0bee2 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -87,7 +87,7 @@ program .option('--project [project]', 'The project to use') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .action(withCompatibilityCheck((missionName, options) => { + .action(withCompatibilityCheck((campaignName, missionName, options) => { try { new InvokeAgentServiceCommand(program).execute(missionName, 'router_service', options); } catch (err) { From d9eaa25eb8c583074d5cad8c4af2cc48bae274a8 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 22 Jun 2021 17:51:13 +0530 Subject: [PATCH 345/864] fix for delete experiment failure --- bin/cortex-experiments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index b69e21f2..022999cd 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -85,7 +85,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((experimentName, runId, options) => { + .action(withCompatibilityCheck((experimentName, options) => { try { new DeleteExperimentCommand(program).execute(experimentName, options); } catch (err) { From 031cec70b26276e92374d19ef28dce47dad0539a Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 22 Jun 2021 18:56:59 +0530 Subject: [PATCH 346/864] linting issues fix --- src/commands/campaigns.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index f84270f3..733cf674 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -17,7 +17,8 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const Catalog = require('../client/catalog'); -const _ = { get: require('lodash/get')}; + +const _ = { get: require('lodash/get') }; const { printSuccess, printError, filterObject, printTable, } = require('./utils'); @@ -123,7 +124,7 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { const cli = new Catalog(profile.url); try { - cli.listMissions(options.project || profile.project, profile.token, campaign).then(response => { + cli.listMissions(options.project || profile.project, profile.token, campaign).then((response) => { if (response.success === false) throw response; const data = Object.values(response.data); if (options.json) { @@ -155,7 +156,7 @@ module.exports.DeployMissionCommand = class DeployMissionCommand { debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then(response => { + cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { if (response.success === false) throw response; const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); printSuccess(output, options); @@ -174,7 +175,7 @@ module.exports.DescribeMissionCommand = class DescribeMissionCommand { debug('%s.executeDescribeMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.getMission(options.project || profile.project, profile.token, campaign, mission).then(response => { + cli.getMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { if (response.success === false) throw response; printSuccess(JSON.stringify(response.data, null, 2), options); }).catch(err => printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); From e6a3d896912687064ebefc57bca5f43429460b71 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 22 Jun 2021 19:30:31 +0530 Subject: [PATCH 347/864] display version, created and modelId on model save --- src/commands/models.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/commands/models.js b/src/commands/models.js index 7e817238..1052495f 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -17,6 +17,7 @@ const fs = require('fs'); const _ = { get: require('lodash/get'), + pick: require('lodash/pick'), }; const debug = require('debug')('cortex:cli'); const moment = require('moment'); @@ -45,7 +46,8 @@ module.exports.SaveModelCommand = class SaveModelCommand { const models = new Models(profile.url); models.saveModel(options.project || profile.project, profile.token, model).then((response) => { if (response.success) { - printSuccess('Model saved', options); + printSuccess('Model saved'); + printSuccess(JSON.stringify(_.pick(response.message, ['version', 'created', 'modelId']), null, 2)); } else if (response.details) { console.log(`Failed to save model: ${response.status} ${response.message}`); console.log('The following issues were found:'); From 8355a4daa1865acb2f22199e9a74c241711569a7 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 22 Jun 2021 19:34:30 +0530 Subject: [PATCH 348/864] added options --- src/commands/models.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/models.js b/src/commands/models.js index 1052495f..8cd4007c 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -46,7 +46,7 @@ module.exports.SaveModelCommand = class SaveModelCommand { const models = new Models(profile.url); models.saveModel(options.project || profile.project, profile.token, model).then((response) => { if (response.success) { - printSuccess('Model saved'); + printSuccess('Model saved', options); printSuccess(JSON.stringify(_.pick(response.message, ['version', 'created', 'modelId']), null, 2)); } else if (response.details) { console.log(`Failed to save model: ${response.status} ${response.message}`); From 7c9ce9f0766d966d1f42599fcc195999989ce526 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 22 Jun 2021 11:11:06 -0500 Subject: [PATCH 349/864] Fix profile/profile options in env command --- bin/cortex-configure.js | 6 +++--- src/commander.js | 7 ++++--- src/commands/configure.js | 7 +++++-- src/config.js | 11 +++++++---- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 7bbebc65..3ec0ab85 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -76,9 +76,9 @@ program .command('env') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .description('Describe a configured profile') - .action((options) => { - new PrintEnvVars(program).execute(options); + .description('Print cortex environment variables') + .action(() => { + new PrintEnvVars(program).execute(); }); program diff --git a/src/commander.js b/src/commander.js index 5f993891..bbb26f20 100644 --- a/src/commander.js +++ b/src/commander.js @@ -46,9 +46,10 @@ commander.Command.prototype.parse = function (argv, options) { this._parse(argv); if (!this.wasActionTaken()) { - if (process.env.CORTEX_TOKEN) { - console.error('Using token from environment variable $CORTEX_TOKEN'); - } + // TODO this seems broken in v6 + // if (process.env.CORTEX_TOKEN) { + // console.error('Using token from environment variable $CORTEX_TOKEN'); + // } opts.noActionHandler(); } }; diff --git a/src/commands/configure.js b/src/commands/configure.js index b2164962..8c3b51ec 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -174,11 +174,14 @@ module.exports.PrintEnvVars = class { this.program = program; } - execute(options) { + execute() { const vars = []; - const profile = loadProfile(options.profile); + const options = this.program; + const profile = loadProfile(options.profile, false); vars.push(`export CORTEX_TOKEN=${profile.token}`); vars.push(`export CORTEX_URI=${profile.url}`); + // not sure why we used URI previously ?? + vars.push(`export CORTEX_URL=${profile.url}`); vars.push(`export CORTEX_PROJECT=${options.project || profile.project}`); return printSuccess(vars.join('\n'), options); } diff --git a/src/config.js b/src/config.js index 092e413e..62021428 100644 --- a/src/config.js +++ b/src/config.js @@ -96,7 +96,7 @@ class Profile { url, username, issuer, audience, jwk, project, }) { this.name = name; - this.url = process.env.CORTEX_URI || url; + this.url = url; this.username = username; this.jwk = jwk; this.account = 'cortex'; @@ -136,12 +136,15 @@ class Config { } } - getProfile(name) { + getProfile(name, useenv = true) { const profile = this.profiles[name]; if (!profile) { return undefined; } const profileType = new Profile(name, profile).validate(); + if (useenv) { + profileType.url = process.env.CORTEX_URI || profileType.url; + } profileType.token = generateJwt(profile); return profileType; } @@ -180,14 +183,14 @@ class Config { } } -module.exports.loadProfile = function (profileName) { +module.exports.loadProfile = function (profileName, useenv = true) { const config = readConfig(); if (config === undefined) { throw new Error('Please configure the Cortex CLI by running "cortex configure"'); } const name = profileName || config.currentProfile || 'default'; - const profile = config.getProfile(name); + const profile = config.getProfile(name, useenv); if (!profile) { throw new Error(`Profile with name "${name}" could not be located in your configuration. Please run "cortex configure".`); } From d209e5c4693ec80fbcad2316071cfbf199927dd0 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 22 Jun 2021 15:48:44 -0500 Subject: [PATCH 350/864] Rollback correlationId related changes --- bin/cortex-agents.js | 4 +--- src/client/agents.js | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index da14c318..6e020e36 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -130,7 +130,7 @@ program // List activations program - .command('list-activations') + .command('list-activations ') .description('List activations for an agent') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') @@ -138,13 +138,11 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--agentName [string]', 'Query activations by agentName') .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') - .option('--correlationId [string]', 'Query activations with same correlationId') .option('--status [status]', 'Filters activations by status [complete|error].') .action(withCompatibilityCheck((options) => { try { diff --git a/src/client/agents.js b/src/client/agents.js index e87fde80..d9592ac7 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -69,9 +69,10 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listActivations(projectId, token, params) { + listActivations(projectId, token, agentName, params) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/activations`; + const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/activations`; + debug('listActivations(%s) => %s', agentName, endpoint); const opts = { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), From e6c08fc8703dec5b7a8fc2c44905dec2ce04715d Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 23 Jun 2021 12:16:29 -0500 Subject: [PATCH 351/864] Rollback work for correlationId --- bin/cortex-agents.js | 4 ++-- src/client/agents.js | 6 +++--- src/commands/agents.js | 15 +++++++-------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 6e020e36..311f048c 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -144,9 +144,9 @@ program .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') .option('--status [status]', 'Filters activations by status [complete|error].') - .action(withCompatibilityCheck((options) => { + .action(withCompatibilityCheck((agentName, options) => { try { - new ListActivationsCommand(program).execute(options); + new ListActivationsCommand(program).execute(agentName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/client/agents.js b/src/client/agents.js index d9592ac7..f642c4d0 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -69,10 +69,10 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listActivations(projectId, token, agentName, params) { + listActivations(projectId, token, params) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/activations`; - debug('listActivations(%s) => %s', agentName, endpoint); + const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${params.agentName}/activations`; + debug('listActivations(%s) => %s', params.agentName, endpoint); const opts = { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), diff --git a/src/commands/agents.js b/src/commands/agents.js index e58490af..536a6206 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -205,7 +205,7 @@ module.exports.ListActivationsCommand = class { this.program = program; } - execute(options) { + execute(agentName, options) { const profile = loadProfile(options.profile); const agents = new Agents(profile.url); @@ -216,8 +216,9 @@ module.exports.ListActivationsCommand = class { if (options.endBefore) queryParams.endBefore = options.endBefore; if (options.endAfter) queryParams.endAfter = options.endAfter; if (options.status) queryParams.status = options.status; + // TODO limit + skip if (options.correlationId) queryParams.correlationId = options.correlationId; - if (options.agentName) queryParams.agentName = options.agentName; + queryParams.agentName = agentName; agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { @@ -228,18 +229,16 @@ module.exports.ListActivationsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Activation Id', field: 'requestId', width: 40 }, - { column: 'Status', field: 'status', width: 20 }, - { column: 'Started', field: 'start', width: 65 }, + { column: 'Activation Id', field: 'activationId', width: 38 }, ]; - printTable(tableSpec, _.map(result, o => ({ ...o, start: o.start ? moment(o.start).fromNow() : '-' }))); + printTable(tableSpec, _.map(result, r => ({ activationId: r }))); } } else { - printError(`Failed to list activations: ${response.message}`, options); + printError(`Failed to list activations for agent "${agentName}": ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list activations: ${err.status} ${err.message}`, options); + printError(`Failed to list activations for agent "${agentName}": ${err.status} ${err.message}`, options); }); } }; From 5c795e34dd32629195c85f7a1a03a5d3791e99d5 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 23 Jun 2021 14:32:14 -0500 Subject: [PATCH 352/864] remove tty-table and use cli-table3 --- package-lock.json | 218 +++++++++++++----------------------- package.json | 3 +- src/commands/experiments.js | 33 +++--- src/commands/utils.js | 2 +- 4 files changed, 95 insertions(+), 161 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f7bc8e5..131b836b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -578,6 +578,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -729,14 +730,6 @@ "fill-range": "^7.0.1" } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -811,6 +804,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.0" @@ -977,6 +971,24 @@ "colors": "1.0.3" } }, + "cli-table3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true + } + } + }, "cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", @@ -987,6 +999,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -996,12 +1009,14 @@ "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, "requires": { "ansi-regex": "^5.0.0" } @@ -1142,32 +1157,6 @@ "which": "^2.0.1" } }, - "csv": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", - "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", - "requires": { - "csv-generate": "^3.4.0", - "csv-parse": "^4.15.3", - "csv-stringify": "^5.6.2", - "stream-transform": "^2.1.0" - } - }, - "csv-generate": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", - "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" - }, - "csv-parse": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", - "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" - }, - "csv-stringify": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", - "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -1179,7 +1168,8 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "decode-uri-component": { "version": "0.2.0", @@ -1233,6 +1223,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -1398,6 +1389,7 @@ "version": "1.18.0-next.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -1417,6 +1409,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -2144,6 +2137,7 @@ "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": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -2295,7 +2289,8 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true }, "get-func-name": { "version": "2.0.0", @@ -2307,6 +2302,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -2438,11 +2434,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "graphql": { "version": "15.4.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.4.0.tgz", @@ -2513,7 +2504,8 @@ "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true }, "has-value": { "version": "1.0.0", @@ -2907,7 +2899,8 @@ "is-callable": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true }, "is-core-module": { "version": "2.1.0", @@ -2943,7 +2936,8 @@ "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true }, "is-descriptor": { "version": "0.1.6", @@ -3010,7 +3004,8 @@ "is-negative-zero": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true }, "is-number": { "version": "7.0.0", @@ -3045,6 +3040,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, "requires": { "has-symbols": "^1.0.1" } @@ -3072,6 +3068,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, "requires": { "has-symbols": "^1.0.1" } @@ -3206,11 +3203,6 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -3252,6 +3244,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "requires": { "p-locate": "^4.1.0" } @@ -3649,11 +3642,6 @@ } } }, - "mixme": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", - "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4178,6 +4166,11 @@ "path-key": "^3.0.0" } }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -4214,12 +4207,14 @@ "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true }, "object-visit": { "version": "1.0.1", @@ -4233,6 +4228,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -4574,6 +4570,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "requires": { "p-try": "^2.0.0" } @@ -4582,6 +4579,7 @@ "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": { "p-limit": "^2.2.0" } @@ -4597,7 +4595,8 @@ "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==" + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true }, "param-case": { "version": "2.1.1", @@ -4666,7 +4665,8 @@ "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==" + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -5125,12 +5125,14 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true }, "requires-port": { "version": "1.0.0", @@ -5632,7 +5634,8 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "set-value": { "version": "2.0.1", @@ -5720,34 +5723,6 @@ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" }, - "smartwrap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.1.tgz", - "integrity": "sha512-BoOIGADm5Q9OXGVmT899L1fx6dvOYciVUPB9yFlE1XkxRs3/6sqT/HYZoXOxNb4jj2zshtH+jhmGa6wGkNDPgA==", - "requires": { - "array.prototype.flat": "^1.2.3", - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "snake-case": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", @@ -6008,14 +5983,6 @@ "through": "~2.3.4" } }, - "stream-transform": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", - "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", - "requires": { - "mixme": "^0.5.0" - } - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -6055,6 +6022,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.1" @@ -6064,6 +6032,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.1" @@ -6246,44 +6215,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "tty-table": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.3.tgz", - "integrity": "sha512-Aireaxah5bTJkkJ7b2RI8tMZxogscWP4UCgi5dKuOqL8BWPjnnOebC7F+oFYWTLKUaiJm8h+CvsigBaaCtxqGw==", - "requires": { - "chalk": "^3.0.0", - "csv": "^5.3.2", - "kleur": "^3.0.3", - "smartwrap": "^2.0.1", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -6513,7 +6444,8 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "wide-align": { "version": "1.1.3", @@ -6582,6 +6514,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6591,12 +6524,14 @@ "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, "requires": { "ansi-regex": "^5.0.0" } @@ -6631,7 +6566,8 @@ "y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true }, "yallist": { "version": "4.0.0", @@ -6642,6 +6578,7 @@ "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, "requires": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -6660,6 +6597,7 @@ "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" diff --git a/package.json b/package.json index 6355e239..cc7e33cc 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", - "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", "commander": "6.2.0", @@ -55,7 +54,7 @@ "plop": "2.7.4", "semver": "7.1.3", "timeago.js": "4.0.2", - "tty-table": "4.1.3", + "cli-table3": "0.6.0", "url-join": "4.0.1", "url-parse": "1.5.1" }, diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 89c16335..9e8c7ba2 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -133,25 +133,22 @@ class ListRuns { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { alias: 'Run ID', value: 'runId', width: 25 }, - { - alias: 'Start', value: 'startTime', width: 25, formatter: val => (val ? moment.unix(val).format('YYYY-MM-DD HH:mm a') : ''), -}, - { - alias: 'Took', value: 'took', width: 25, formatter: val => (val ? moment.duration(val, 'seconds').humanize() : ''), -}, - { - alias: 'Params', value: 'params', width: 45, formatter: val => _.map(val, (v, k) => `${k}: ${v}`).join('\n'), -}, - { - alias: 'Metrics', value: 'metrics', width: 45, formatter: val => _.map(val, (v, k) => `${k}: ${v}`).join('\n'), -}, - { alias: 'Artifacts', value: 'artifacts', formatter: val => Object.keys(val).join(', ') }, + { column: 'Run ID', field: 'runId', width: 25 }, + { column: 'Start', field: 'startTime', width: 25 }, + { column: 'Took', field: 'took', width: 25 }, + { column: 'Params', field: 'params', width: 45 }, + { column: 'Metrics', field: 'metrics' , width: 45}, + { column: 'Artifacts', field: 'artifacts' }, ]; - - const Table = require('tty-table'); - const t = new Table(tableSpec, result.runs); - console.log(t.render()); + const trans = (o) => { + o.startTime = o.startTime ? moment.unix(o.startTime).format('YYYY-MM-DD HH:mm a') : ''; + o.took = o.took ? moment.duration(o.took, 'seconds').humanize() : ''; + o.params = _.map(o.params, (v, k) => `${k}: ${v}`).join('\n'); + o.metrics = _.map(o.metrics, (v, k) => `${k}: ${v}`).join('\n'); + o.artifacts = Object.keys(_.get(o,'artifacts',{})).join(', '); + return o; + }; + printTable(tableSpec, _.get(result, 'runs', []), trans); } } else { printError(`Failed to list runs: ${response.status} ${response.status} - ${response.message}`, options); diff --git a/src/commands/utils.js b/src/commands/utils.js index 9c383d64..715022dc 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const Table = require('cli-table'); +const Table = require('cli-table3'); const _ = require('lodash'); const chalk = require('chalk'); const debug = require('debug')('cortex:cli'); From 0c48cec63a18871483c5a905b58331d62d52cf39 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 23 Jun 2021 14:35:17 -0500 Subject: [PATCH 353/864] linting --- src/commands/experiments.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 9e8c7ba2..d726bdad 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -137,7 +137,7 @@ class ListRuns { { column: 'Start', field: 'startTime', width: 25 }, { column: 'Took', field: 'took', width: 25 }, { column: 'Params', field: 'params', width: 45 }, - { column: 'Metrics', field: 'metrics' , width: 45}, + { column: 'Metrics', field: 'metrics', width: 45 }, { column: 'Artifacts', field: 'artifacts' }, ]; const trans = (o) => { @@ -145,7 +145,7 @@ class ListRuns { o.took = o.took ? moment.duration(o.took, 'seconds').humanize() : ''; o.params = _.map(o.params, (v, k) => `${k}: ${v}`).join('\n'); o.metrics = _.map(o.metrics, (v, k) => `${k}: ${v}`).join('\n'); - o.artifacts = Object.keys(_.get(o,'artifacts',{})).join(', '); + o.artifacts = Object.keys(_.get(o, 'artifacts', {})).join(', '); return o; }; printTable(tableSpec, _.get(result, 'runs', []), trans); From 61a10bb1cbe5988c5015cdfe2102b70e35a1a66f Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 25 Jun 2021 13:03:50 +0530 Subject: [PATCH 354/864] table width adjusted automatically by updated cli-table --- src/commands/assessments.js | 49 +++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index f0b8349c..f326f307 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -17,7 +17,6 @@ const fs = require('fs'); const _ = { uniqBy: require('lodash/uniqBy'), - maxBy: require('lodash/maxBy'), sortBy: require('lodash/sortBy'), flatten: require('lodash/flatten'), compact: require('lodash/compact'), @@ -48,15 +47,13 @@ module.exports.ListResourcesCommand = class { if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { - const maxLenRow = _.maxBy(response.data, r => r.resourceName.length); - const maxLen = maxLenRow ? maxLenRow.resourceName.length : 30; const tableSpec = [ - { column: 'Name', field: 'resourceName', width: Math.min(maxLen + 2, 90) }, - { column: 'Title', field: 'resourceTitle', width: 30 }, - { column: 'Type', field: 'resourceType', width: 25 }, - { column: 'Project', field: '_projectId', width: 25 }, + { column: 'Name', field: 'resourceName' }, + { column: 'Title', field: 'resourceTitle' }, + { column: 'Type', field: 'resourceType' }, + { column: 'Project', field: '_projectId' }, ]; - printTable(tableSpec, _.sortBy(response.data, ['_projectId', 'resourceType'])); + printTable(tableSpec, response.data); } }) .catch((err) => { @@ -85,7 +82,7 @@ module.exports.ListResourceTypesCommand = class { } else { const types = data.map(t => ({ type: t })); const tableSpec = [ - { column: 'Type', field: 'type', width: 25 }, + { column: 'Type', field: 'type' }, ]; printTable(tableSpec, types); } @@ -149,13 +146,13 @@ module.exports.ListAssessmentCommand = class { printSuccess(JSON.stringify(response, null, 2), options); } else { const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Title', field: 'title', width: 30 }, - { column: 'Description', field: 'description', width: 40 }, - { column: 'Projects', field: 'scope', width: 25 }, - { column: '# Reports', field: 'reportCount', width: 12 }, - { column: 'Modified', field: '_updatedAt', width: 25 }, - { column: 'Author', field: '_createdBy', width: 25 }, + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Description', field: 'description' }, + { column: 'Projects', field: 'scope' }, + { column: '# Reports', field: 'reportCount' }, + { column: 'Modified', field: '_updatedAt' }, + { column: 'Author', field: '_createdBy' }, ]; printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); } @@ -246,11 +243,11 @@ module.exports.ListAssessmentReportCommand = class { printSuccess(JSON.stringify(response, null, 2), options); } else { const tableSpec = [ - { column: 'Assessment Name', field: 'assessmentId', width: 30 }, - { column: 'Report Id', field: 'reportId', width: 50 }, - { column: 'Impact Summary', field: 'summary', width: 60 }, - { column: 'Modified', field: '_updatedAt', width: 25 }, - { column: 'Author', field: '_createdBy', width: 25 }, + { column: 'Assessment Name', field: 'assessmentId' }, + { column: 'Report Id', field: 'reportId' }, + { column: 'Impact Summary', field: 'summary' }, + { column: 'Modified', field: '_updatedAt' }, + { column: 'Author', field: '_createdBy' }, ]; response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); @@ -289,13 +286,13 @@ module.exports.GetAssessmentReportCommand = class { const flattenRefs = _.uniqBy( _.flatten( response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId }))), - ), r => `${r.name}-${r.type}`, + ), r => `${r.name}-${r.type}-${r.projectId}`, ); const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Title', field: 'title', width: 30 }, - { column: 'Type', field: 'type', width: 20 }, - { column: 'Project', field: 'projectId', width: 25 }, + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Type', field: 'type' }, + { column: 'Project', field: 'projectId' }, ]; printTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type'])); } From 830e52f3455d423a774f718783414eef7c90516c Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 25 Jun 2021 13:08:32 +0530 Subject: [PATCH 355/864] type column rename --- src/commands/assessments.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index f326f307..24a75e5a 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -50,7 +50,7 @@ module.exports.ListResourcesCommand = class { const tableSpec = [ { column: 'Name', field: 'resourceName' }, { column: 'Title', field: 'resourceTitle' }, - { column: 'Type', field: 'resourceType' }, + { column: 'Resource Type', field: 'resourceType' }, { column: 'Project', field: '_projectId' }, ]; printTable(tableSpec, response.data); @@ -82,7 +82,7 @@ module.exports.ListResourceTypesCommand = class { } else { const types = data.map(t => ({ type: t })); const tableSpec = [ - { column: 'Type', field: 'type' }, + { column: 'Resource Type', field: 'type' }, ]; printTable(tableSpec, types); } @@ -291,7 +291,7 @@ module.exports.GetAssessmentReportCommand = class { const tableSpec = [ { column: 'Name', field: 'name' }, { column: 'Title', field: 'title' }, - { column: 'Type', field: 'type' }, + { column: 'Resource Type', field: 'type' }, { column: 'Project', field: 'projectId' }, ]; printTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type'])); From 997884cf57f7826aedaf18016a5a462c4d01af7e Mon Sep 17 00:00:00 2001 From: ljha Date: Sat, 26 Jun 2021 01:14:50 +0530 Subject: [PATCH 356/864] pipeline error handling --- src/client/assessments.js | 20 +++++++++++++++----- src/commands/assessments.js | 9 +-------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index 738fb21c..844148b6 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -14,9 +14,12 @@ * limitations under the License. */ const querystring = require('querystring'); +const { pipeline } = require('stream'); const { createWriteStream } = require('fs'); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); +const { printSuccess } = require('../commands/utils'); +const { printError } = require('../commands/utils'); const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Assessments { @@ -149,13 +152,20 @@ module.exports = class Assessments { } exportAssessmentReport(token, name, reportId, types) { + const options = { color: 'on' }; + const file = `${reportId}.csv`; const filter = types && types.trim() ? `?components=${types.trim()}` : ''; const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}/export${filter}`; debug('exportAssessmentReport => %s', url); - got.stream(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).pipe(createWriteStream(`${reportId}.csv`), { end: true }); - return Promise.resolve({ file: `${reportId}.csv` }); + + const rs = got.stream(url, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent() }); + pipeline(rs, createWriteStream(file), (e) => { + if (e) { + const err = constructError(e); + printError(`Failed to export assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); + } else { + printSuccess(`Report exported to file ${file}`, options); + } + }); } }; diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 24a75e5a..775f69d3 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -314,13 +314,6 @@ module.exports.ExportAssessmentReportCommand = class { debug('%s.ExportAssessmentReportCommand()', profile.name); const client = new Assessments(profile.url); - client.exportAssessmentReport(profile.token, name, reportId, options.type) - .then((response) => { - if (response.success === false) throw response; - printSuccess(`Report exported to ${response.file}`, options); - }) - .catch((err) => { - printError(`Failed to export assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); - }); + client.exportAssessmentReport(profile.token, name, reportId, options.type); } }; From b9de76f359a29c0adc601020d858ba6a4ef47c9b Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 28 Jun 2021 16:25:45 +0530 Subject: [PATCH 357/864] quote resource name because some resource names like campaign, goad have space --- src/client/assessments.js | 4 ++-- src/commands/assessments.js | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index 844148b6..b6820743 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -162,9 +162,9 @@ module.exports = class Assessments { pipeline(rs, createWriteStream(file), (e) => { if (e) { const err = constructError(e); - printError(`Failed to export assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); + printError(`Failed to export assessment "${name}" report "${reportId}": ${err.status} ${err.message}`, options); } else { - printSuccess(`Report exported to file ${file}`, options); + printSuccess(`Report exported to file "${file}"`, options); } }); } diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 775f69d3..74751d34 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -109,7 +109,7 @@ module.exports.CreateAssessmentCommand = class { const assessmentDefStr = fs.readFileSync(assessmentDef); assessment = parseObject(assessmentDefStr, options); } catch (err) { - printError(`Failed to read assessment definition ${assessmentDef}: ${err.message}`, options); + printError(`Failed to read assessment definition "${assessmentDef}": ${err.message}`, options); } } client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, @@ -179,7 +179,7 @@ module.exports.DescribeAssessmentCommand = class { printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { - printError(`Failed to get assessment ${name}: ${err.status} ${err.message}`, options); + printError(`Failed to get assessment "${name}": ${err.status} ${err.message}`, options); }); } }; @@ -200,7 +200,7 @@ module.exports.DeleteAssessmentCommand = class { printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { - printError(`Failed to delete assessment ${name}: ${err.status} ${err.message}`, options); + printError(`Failed to delete assessment "${name}": ${err.status} ${err.message}`, options); }); } }; @@ -221,7 +221,7 @@ module.exports.RunAssessmentCommand = class { printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { - printError(`Failed to run assessment ${name}: ${err.status} ${err.message}`, options); + printError(`Failed to run assessment "${name}": ${err.status} ${err.message}`, options); }); } }; @@ -254,7 +254,7 @@ module.exports.ListAssessmentReportCommand = class { } }) .catch((err) => { - printError(`Failed to list assessment ${name} reports: ${err.status} ${err.message}`, options); + printError(`Failed to list assessment "${name}" reports: ${err.status} ${err.message}`, options); }); } }; @@ -298,7 +298,7 @@ module.exports.GetAssessmentReportCommand = class { } }) .catch((err) => { - printError(`Failed to get assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); + printError(`Failed to get assessment "${name}" report "${reportId}": ${err.status} ${err.message}`, options); }); } }; From 80318cfc891a2b26a927f6ca5577119457311c80 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 28 Jun 2021 17:40:51 -0500 Subject: [PATCH 358/864] Fix short ttl --- bin/cortex-configure.js | 1 + src/commands/configure.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 3ec0ab85..da579a2d 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -76,6 +76,7 @@ program .command('env') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .description('Print cortex environment variables') .action(() => { new PrintEnvVars(program).execute(); diff --git a/src/commands/configure.js b/src/commands/configure.js index 8c3b51ec..8a70f078 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -178,7 +178,9 @@ module.exports.PrintEnvVars = class { const vars = []; const options = this.program; const profile = loadProfile(options.profile, false); - vars.push(`export CORTEX_TOKEN=${profile.token}`); + const ttl = options.ttl || '1d'; + const jwt = generateJwt(profile, ttl); + vars.push(`export CORTEX_TOKEN=${jwt}`); vars.push(`export CORTEX_URI=${profile.url}`); // not sure why we used URI previously ?? vars.push(`export CORTEX_URL=${profile.url}`); From f8315d85c9badcdf9d1c8049127898a79b1bd4f6 Mon Sep 17 00:00:00 2001 From: clee Date: Mon, 28 Jun 2021 18:30:58 -0500 Subject: [PATCH 359/864] bumping version to 2.0.4 --- package-lock.json | 15 +-------------- package.json | 2 +- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 131b836b..eeafcb67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.3", + "version": "2.0.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -963,14 +963,6 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" }, - "cli-table": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "requires": { - "colors": "1.0.3" - } - }, "cli-table3": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", @@ -1071,11 +1063,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", diff --git a/package.json b/package.json index cc7e33cc..39d46d38 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.3", + "version": "2.0.4", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From a5e90aea2c639afafe9a67b1a4172e7df850e778 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 29 Jun 2021 09:53:31 -0500 Subject: [PATCH 360/864] Release 2.0.4 (#365) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * action deploy return non-zero exit code * FAB-1253 adding Makefile and assets to deploy and test skills generated * re-add debug * FAB-1253 adding fabric.yaml config for deployment * FAB-1148: update list-activations command to use correct endpoint for v6 and renamed snapshotId param to agentName (#305) * Bump ssri from 8.0.0 to 8.0.1 Bumps [ssri](https://github.com/npm/ssri) from 8.0.0 to 8.0.1. - [Release notes](https://github.com/npm/ssri/releases) - [Changelog](https://github.com/npm/ssri/blob/latest/CHANGELOG.md) - [Commits](https://github.com/npm/ssri/compare/v8.0.0...v8.0.1) Signed-off-by: dependabot[bot] * liniting and name validation * linting and validation * makefile fixes * change artifactory publish url * comment out artifactory publish * Added verbose flag to get-activation * Fix vulns * typo was not resolving to correct base URL * [FAB-1508] Fix relative file paths when using cwd with content upload --recursive * Added version option for agents skills * When using the --users option of roles assign command ensure there are no empty strings * [FAB-1509] Remove --secure option from content upload/download commands * FAB-1587 Fix debug statements * fix npm test * Bump jose from 2.0.2 to 2.0.5 Bumps [jose](https://github.com/panva/jose) from 2.0.2 to 2.0.5. - [Release notes](https://github.com/panva/jose/releases) - [Changelog](https://github.com/panva/jose/blob/v2.0.5/CHANGELOG.md) - [Commits](https://github.com/panva/jose/compare/v2.0.2...v2.0.5) Signed-off-by: dependabot[bot] * FAB-1354: rework agents list-activations command to allow for filtering options by state or time (#314) * FAB-1354: rework agents list-activations command to allow for filtering options by state or time * fix list-activations command to display results correctly without --json option * linting * PR comments * Add checkProject to all project scoped apis, rename variables to secrets linting vulns bump * Add skills deploy/undeploy cli commands * review comments * Secrets save wasnot handling errors consistently * Fix message deploy/undeploy . * [FAB-1689] Previous implementation of empty string parser did not handle variadic params * Fixing docker-login command to work with fabric endpoints (#321) * Fixing docker-login command to work with fabric endpoints: - currently does a bit of string replace hackery to figure out the private-registry url, this can be fixed once the new info endpoint is available - default ttl of token created for docker login is set to 14d but can be overridden (for long lived kube secrets.. not really reliable though if the JWK changes) * add default for ttl option * add ttl option for `cortex configure token` to override default * Fix for FAB-1753 * npm test fixes * bump vulnerabilities in cortex-cli and build upgrade to node 12.22.0 (#323) * bump vulnerabilities in cortex-cli and build upgrade to node 12.22.0 * fixing dockerfile base image and adding audit-ci to run as part of the build * Make columns consistent Make dates human readable, add author Add type list * typo in table heading * Cm 563 (#326) * CM-563 message changes * CM-563 message changes * FAB-1861 Fix for showing snapshot Id in the table * FAB-1782 fix createdBy, add moment, remove agent version (confusing.. ) * There is no modification of snapshots use createdAt * Fix snapshot column length * Remove actionType from action delete command, removed unneeded options * Fix eslint-plugin vuln * Add job timeout to action save, true up cli option to action file format * cli support for rest apis model catalog * fixed typos * added list models and describe model clis * fixed typos * Add env command, for setting CORTEX_TOKEN, CORTEX_URI, CORTEX_PROJECT for testing skills locally * gql request for models * bug fix for offset and limit listModel * desc model cli * added model name * fixed key name * impact assessment CLI integration * linting fixes * report export and display formatting * error handling and meta fields like createdBy, createdAt * error handling * updated listModels and describe models cli * reportId width * updated http method * http method back to get * FAB-1553 Add status output to skills list, this does two api calls and merges the output on the client side * removed versions * fix lint errors * list APIs refctored to return object instead of list for extensibility * FAB-1699: commands for creating/listing/deleting service users (#331) * FAB-1699: added create service user command to cli * users list command * delete service user command * test run * model option support in experiment * lint fix for develop * response formatting as per base schema * added create run and create experiment * renamed model to modelId * FAB-1775: validate secret key name before attempting to create via re… (#336) * FAB-1775: validate secret key name before attempting to create via rest call * adding test command to build script and fixing linting error * linting fixes * Use status from list skills REST api Use existing verbose flag to add skill status to skill describe|get . * FAB-976: adding commands to list skill action logs (#337) * FAB-976: adding commands to list skill action logs * encode actionName as well * linting fixes (#340) * support for tag filter in model list * draft code for register model * fix * bug fix * bug fixes * cli for list runs by model * removed print * added run table format * removed conflicting code * npm audit fixes (#342) * renamed command * code refactor * bug fix * removed unused code * review fixes * removed unwanted text * list resource types API for assessments * importing only necessary lodash functions * linting fixes * linting fixes * bug fix * renaming model id * FAB-2109 help text, sort order etc formatting * add missing semicolon (#349) * FAB-2019 mission deploy and list API * FAB-2019 mission deploy, get and list command * unused imports * dynamic table column width * show startTime and took only if present * fixing lint errors * removed upload model command and improved create-run to accept json args * fixing build failures * null check * format updated timestamp as moment * mission invoke command added * mission invoke command added * added campaign name as per docs * fix for delete experiment failure * linting issues fix * Fix profile/profile options in env command * Rollback correlationId related changes * Rollback work for correlationId * remove tty-table and use cli-table3 * linting * Fix short ttl * bumping version to 2.0.4 Co-authored-by: Johan Gielstra Co-authored-by: ljha Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: yreddy-CS Co-authored-by: David Aldridge Co-authored-by: mcriscolo-cs <44506178+mcriscolo-cs@users.noreply.github.com> Co-authored-by: Akarsh Prasad Co-authored-by: dvasani-CS Co-authored-by: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Co-authored-by: dvasani-CS <31957669+dvasani-CS@users.noreply.github.com> --- bin/cortex-actions.js | 13 +- bin/cortex-assessments.js | 204 ++++++++ bin/cortex-campaigns.js | 1 - bin/cortex-configure.js | 11 + bin/cortex-experiments.js | 59 ++- bin/cortex-missions.js | 98 ++++ bin/cortex-models.js | 165 +++++++ bin/cortex-skills.js | 19 + bin/cortex-users.js | 42 ++ bin/cortex.js | 3 + build.sh | 1 + package-lock.json | 905 ++++++++++++++++++++++++---------- package.json | 7 +- src/client/actions.js | 9 +- src/client/agents.js | 6 +- src/client/apiServerClient.js | 30 ++ src/client/assessments.js | 161 ++++++ src/client/catalog.js | 69 ++- src/client/experiments.js | 59 ++- src/client/models.js | 98 ++++ src/client/users.js | 36 ++ src/commander.js | 7 +- src/commands/actions.js | 21 +- src/commands/agents.js | 22 +- src/commands/assessments.js | 329 ++++++++++++ src/commands/campaigns.js | 72 +++ src/commands/configure.js | 20 + src/commands/experiments.js | 148 +++++- src/commands/models.js | 266 ++++++++++ src/commands/secrets.js | 6 + src/commands/skills.js | 54 +- src/commands/users.js | 72 +++ src/commands/utils.js | 18 +- src/config.js | 11 +- 34 files changed, 2702 insertions(+), 340 deletions(-) create mode 100755 bin/cortex-assessments.js create mode 100755 bin/cortex-missions.js create mode 100755 bin/cortex-models.js create mode 100644 src/client/assessments.js create mode 100644 src/client/models.js create mode 100644 src/commands/assessments.js create mode 100644 src/commands/models.js diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 229b6d18..264ccdb9 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -82,8 +82,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--actionType [actionType]', 'Type of action') .action(withCompatibilityCheck((actionName, options) => { try { new DeleteActionCommand(program).execute(actionName, options); @@ -115,19 +113,20 @@ program .alias('save') .description('Deploy an action') .storeOptionsAsProperties(false) - .option('--actionName, --name [name]', 'Action name') - .option('--actionType [actionType]', 'Type of action') + .option('--name, --actionName [name]', 'Action name') + .option('--type, --actionType [job|daemon]', 'Type of action') .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--docker [image]', 'Docker image to use as the runner') + .option('--image, --docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') + .option('--jobTimeout', 'Job Timeout in seconds, this will marked the job as FAILED') .option('--no-compat', 'Ignore API compatibility checks') .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('--port [port]', 'Docker port') // '9091' .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('--scaleCount [count]', 'Scale count, only used for daemon action types') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('-y, --yaml', 'Use YAML format') .action(withCompatibilityCheck((actionName, options) => { try { diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js new file mode 100755 index 00000000..e3447e20 --- /dev/null +++ b/bin/cortex-assessments.js @@ -0,0 +1,204 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); +const { + ListResourcesCommand, + ListResourceTypesCommand, + CreateAssessmentCommand, + ListAssessmentCommand, + DescribeAssessmentCommand, + DeleteAssessmentCommand, + RunAssessmentCommand, + ListAssessmentReportCommand, + GetAssessmentReportCommand, + ExportAssessmentReportCommand, +} = require('../src/commands/assessments'); + +program.description('Work with Cortex Assessments'); + +program + .command('list-types') + .description('List Cortex resource types') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck((options) => { + try { + new ListResourceTypesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('list-resources') + .description('List matching resources') + .storeOptionsAsProperties(false) + .option('--scope [projects]', 'Assessment scope projects (comma separated values)') + .option('--name [Cortex component name]', 'Cortex component name (case insensitive regex/substring match)') + .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') + .option('--skip [Skip records for pagination]', 'Skip records for pagination') + .option('--limit [Limit records for pagination]', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck((options) => { + try { + new ListResourcesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('create [assessmentDefinition]') + .alias('save') + .description('Create an assessment. Do `list-resources` and `list-types` to select component and type') + .storeOptionsAsProperties(false) + .option('--name [name]', 'Assessment name') + .option('--title [title]', 'Assessment title') + .option('--description [description]', 'Assessment description') + .option('--scope [projects]', 'Assessment scope projects (comma separated values)') + .option('--component [Cortex component name]', 'Cortex component name') + .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('-y, --yaml', 'Use YAML format') + .action(withCompatibilityCheck((assessmentDefinition, options) => { + try { + new CreateAssessmentCommand(program).execute(assessmentDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('list') + .description('List assessments') + .option('--skip [Skip records for pagination]', 'Skip records for pagination') + .option('--limit [Limit records for pagination]', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck((options) => { + try { + new ListAssessmentCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('describe ') + .alias('get') + .description('Describe the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new DescribeAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('delete ') + .description('Delete the assessment and its generated reports') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new DeleteAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('report ') + .description('Run report generation of the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new RunAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('report-list ') + .description('Lists reports of the assessment') + .option('--skip [Skip records for pagination]', 'Skip records for pagination') + .option('--limit [Limit records for pagination]', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new ListAssessmentReportCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('report-get ') + .description('Get report of the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck((assessmentName, reportId, options) => { + try { + new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('report-export ') + .description('Export report of the assessment') + .storeOptionsAsProperties(false) + .option('--type [Cortex component types]', 'Component types to export (comma separated values)') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, reportId, options) => { + try { + new ExportAssessmentReportCommand(program).execute(assessmentName, reportId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index a98f434d..92618bea 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -90,7 +90,6 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--filepath [filepath]', 'Exported Campaign file path to import') .option('--deploy [boolean]', 'Set missions status Ready To Deploy', true) .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) .action(withCompatibilityCheck((campaignName, options) => { diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 70a8466e..ccf7ee07 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -24,6 +24,7 @@ const { ListProfilesCommand, SetProfileCommand, GetAccessToken, + PrintEnvVars, } = require('../src/commands/configure'); program @@ -73,6 +74,16 @@ program new DescribeProfileCommand(program).execute({ profile: profileName, color: program.color }); }); +program + .command('env') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') + .description('Print cortex environment variables') + .action(() => { + new PrintEnvVars(program).execute(); + }); + program .command('set-profile ') .description('Sets the current profile.') diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index d5c1cd91..022999cd 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -29,6 +29,9 @@ const { DeleteRunCommand, DeleteExperimentCommand, DownloadArtifactCommand, + SaveExperimentCommand, + CreateRunCommand, + UploadArtifactCommand, } = require('../src/commands/experiments'); program.description('Work with Cortex Experiments'); @@ -41,6 +44,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--model [model]', 'The model to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') @@ -59,6 +63,7 @@ program program .command('describe ') .description('Describe experiment') + .alias('get') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -80,7 +85,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((experimentName, runId, options) => { + .action(withCompatibilityCheck((experimentName, options) => { try { new DeleteExperimentCommand(program).execute(experimentName, options); } catch (err) { @@ -114,6 +119,7 @@ program program .command('describe-run ') .description('Describe run') + .alias('get-run') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') @@ -159,5 +165,56 @@ program } })); +// Save Experiment +program + .command('save ') + .description('Save an experiment definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for experiment definition format') + .action(withCompatibilityCheck((experimentDefinition, options) => { + try { + new SaveExperimentCommand(program).execute(experimentDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Save Experiment +program + .command('create-run ') + .description('Create run for experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for run definition format') + .action(withCompatibilityCheck((runDefinition, options) => { + try { + new CreateRunCommand(program).execute(runDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Upload Artifact +program + .command('upload-artifact ') + .description('Upload artifact for run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) + .action(withCompatibilityCheck((experimentName, runId, filePath, artifactKey, options) => { + try { + new UploadArtifactCommand(program).execute(experimentName, runId, filePath, artifactKey, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); program.parse(process.argv); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js new file mode 100755 index 00000000..32b0bee2 --- /dev/null +++ b/bin/cortex-missions.js @@ -0,0 +1,98 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListMissionsCommand, + DeployMissionCommand, + DescribeMissionCommand, +} = require('../src/commands/campaigns'); + +const { InvokeAgentServiceCommand } = require('../src/commands/agents'); + +program.description('Work with Cortex Missions'); + +program + .command('list ') + .description('List Missions of the Campaign') + .option('--json', 'Output results using JSON') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ListMissionsCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('describe ') + .alias('get') + .description('Describe the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new DescribeMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('deploy ') + .description('Deploy the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new DeployMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('invoke ') + .description('Invoke the mission') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--params [params]', 'JSON params to send to the action') + .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new InvokeAgentServiceCommand(program).execute(missionName, 'router_service', options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.parse(process.argv); diff --git a/bin/cortex-models.js b/bin/cortex-models.js new file mode 100755 index 00000000..fc9e6fee --- /dev/null +++ b/bin/cortex-models.js @@ -0,0 +1,165 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('../src/commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + DeleteModelCommand, + SaveModelCommand, + DescribeModelCommand, + ListModelsCommand, + // RegisterModelCommand, + PublishModelCommand, + ListModelRunsCommand, +} = require('../src/commands/models'); + +program.description('Work with Cortex Models'); + +// List Models +program + .command('list') + .description('List model definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--offset [offset]', 'The offset to use') + .option('--limit [limit]', 'The limit to use') + .option('--tags [tags]', 'The tags to use (comma separated values)') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((options) => { + try { + new ListModelsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Model +program + .command('describe ') + .description('Describe model') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((modelName, options) => { + try { + new DescribeModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +// Delete Model +program + .command('delete ') + .description('Delete a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((modelName, options) => { + try { + new DeleteModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Save Model +program + .command('save ') + .description('Save a model definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .action(withCompatibilityCheck((modelDefinition, options) => { + try { + new SaveModelCommand(program).execute(modelDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Register Model - +// program +// .command('upload ') +// .description('Upload a model') +// .option('--no-compat', 'Ignore API compatibility checks') +// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') +// .option('--profile [profile]', 'The profile to use') +// .option('--project [project]', 'The project to use') +// .option('-y, --yaml', 'Use YAML for model definition format') +// .action(withCompatibilityCheck((modelDefinition, options) => { +// try { +// new RegisterModelCommand(program).execute(modelDefinition, options); +// } catch (err) { +// console.error(chalk.red(err.message)); +// } +// })); + +// Publish Model +program + .command('publish ') + .description('Publish a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .action(withCompatibilityCheck((modelName, options) => { + try { + new PublishModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// List model runs +program + .command('list-runs ') + .description('list model run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((modelName, options) => { + try { + new ListModelRunsCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + +program.parse(process.argv); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 0efbb91b..6348e27c 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -28,6 +28,7 @@ const { InvokeSkillCommand, DeploySkillCommand, UndeploySkillCommand, + SkillLogsCommand, } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); @@ -93,6 +94,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') + .option('--nostatus', 'skip extra call for skill status') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((options) => { try { @@ -134,4 +136,21 @@ program } })); +// Get Skill/action logs +program + .command('logs ') + .description('Get logs of a skill and action') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + // TODO enable when we want to support tasks + // .option('--type [type]', 'The type of action logs to fetch [skill|task]') + .action(withCompatibilityCheck((skillName, actionName, options) => { + try { + new SkillLogsCommand(program).execute(skillName, actionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index d2c3d2b3..fdb5562d 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -24,6 +24,9 @@ const { UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, + UserCreateCommand, + UserListCommand, + UserDeleteCommand, } = require('../src/commands/users'); program.description('Work with Cortex User'); @@ -78,4 +81,43 @@ program.command('project ') } })); +program.command('delete ') + .description('Deletes a service user and disables any existing tokens created by the user') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((user, options) => { + try { + new UserDeleteCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('create ') + .description('Creates a service user (with no assigned roles/grants) that can authenticate with and call Fabric API\'s') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((user, options) => { + try { + new UserCreateCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program.command('list') + .description('Lists all service users created within Cortex') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((options) => { + try { + new UserListCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index 4e9fdc5d..c28bd6f6 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -28,6 +28,7 @@ program .description('Cortex CLI') .command('actions [cmd]', 'Work with Cortex Actions') .command('agents [cmd]', 'Work with Cortex Agents') + .command('assessments [cmd]', 'Work with Cortex Impact Assessments') .command('campaigns [cmd]', 'Work with Cortex Campaigns') .command('configure', 'Configure the Cortex CLI') .command('connections [cmd]', 'Work with Cortex Connections') @@ -36,6 +37,8 @@ program .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') .command('generate [cmd]', 'Scaffold Cortex Components') + .command('missions [cmd]', 'Work with Cortex Missions') + .command('models [cmd]', 'Work with Cortex Models') .command('projects [cmd]', 'Work with Cortex Projects') .command('roles [cmd]', 'Work with a Cortex Roles') .command('secrets [cmd]', 'Work with Cortex Secrets') diff --git a/build.sh b/build.sh index fa6d5539..8055110e 100755 --- a/build.sh +++ b/build.sh @@ -30,6 +30,7 @@ function docker_build(){ npm config set loglevel warn npm cache clear --force npm install -dd --verbose + npm test echo ${VERSION} > version.txt ./generate_docs.sh BRANCH=$(git symbolic-ref --short -q HEAD) diff --git a/package-lock.json b/package-lock.json index 85fc6139..116fd4fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.3", + "version": "2.0.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -241,6 +241,12 @@ "@types/node": "*" } }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, "@types/keyv": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", @@ -430,33 +436,125 @@ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" }, "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.5" }, "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } } } @@ -480,6 +578,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -631,14 +730,6 @@ "fill-range": "^7.0.1" } }, - "breakword": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.5.tgz", - "integrity": "sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==", - "requires": { - "wcwidth": "^1.0.1" - } - }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -713,6 +804,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.0" @@ -871,12 +963,22 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" }, - "cli-table": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "cli-table3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", "requires": { - "colors": "1.0.3" + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true + } } }, "cli-width": { @@ -889,6 +991,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -898,12 +1001,14 @@ "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, "requires": { "ansi-regex": "^5.0.0" } @@ -958,11 +1063,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -996,10 +1096,25 @@ } }, "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-1.0.0.tgz", + "integrity": "sha1-NFizMhhWA+ju0Y9RjUoQiIo6vJE=", + "dev": true, + "requires": { + "normalize-path": "^2.1.1", + "path-starts-with": "^1.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } }, "copy-descriptor": { "version": "0.1.1", @@ -1029,32 +1144,6 @@ "which": "^2.0.1" } }, - "csv": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.0.tgz", - "integrity": "sha512-32tcuxdb4HW3zbk8NBcVQb8/7xuJB5sv+q4BuQ6++E/K6JvHvWoCHcGzB5Au95vVikNH4ztE0XNC/Bws950cfA==", - "requires": { - "csv-generate": "^3.4.0", - "csv-parse": "^4.15.3", - "csv-stringify": "^5.6.2", - "stream-transform": "^2.1.0" - } - }, - "csv-generate": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.0.tgz", - "integrity": "sha512-D6yi7c6lL70cpTx3TQIVWKrfxuLiKa0pBizu0zi7fSRXlhmE7u674gk9k1IjCEnxKq2t6xzbXnxcOmSdBbE8vQ==" - }, - "csv-parse": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz", - "integrity": "sha512-OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==" - }, - "csv-stringify": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.2.tgz", - "integrity": "sha512-n3rIVbX6ylm1YsX2NEug9IaPV8xRnT+9/NNZbrA/bcHgOSSeqtWla6XnI/xmyu57wIw+ASCAoX1oM6EZtqJV0A==" - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -1066,7 +1155,8 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "decode-uri-component": { "version": "0.2.0", @@ -1120,6 +1210,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -1285,6 +1376,7 @@ "version": "1.18.0-next.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -1304,6 +1396,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -1523,50 +1616,48 @@ } }, "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", "dev": true, "requires": { - "debug": "^2.6.9", + "debug": "^3.2.7", "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, "eslint-plugin-import": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", - "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.2.tgz", + "integrity": "sha512-LmNoRptHBxOP+nb0PIKz1y6OSzCJlB+0g0IGS3XV4KaKk2q4szqQ6s6F1utVf5ZRkxk/QOTjdxe7v4VjS99Bsg==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", + "contains-path": "^1.0.0", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", "has": "^1.0.3", + "is-core-module": "^2.4.0", "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" }, "dependencies": { "debug": { @@ -1579,13 +1670,40 @@ } }, "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "^2.0.2" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "ms": { @@ -1593,6 +1711,46 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } } } }, @@ -1966,6 +2124,7 @@ "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": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -2117,7 +2276,8 @@ "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true }, "get-func-name": { "version": "2.0.0", @@ -2129,6 +2289,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -2162,9 +2323,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } @@ -2260,11 +2421,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "graphql": { "version": "15.4.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.4.0.tgz", @@ -2321,6 +2477,12 @@ } } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2329,7 +2491,8 @@ "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true }, "has-value": { "version": "1.0.0", @@ -2667,6 +2830,12 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -2676,6 +2845,38 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + }, + "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + } + } + }, "is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -2685,7 +2886,8 @@ "is-callable": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true }, "is-core-module": { "version": "2.1.0", @@ -2721,7 +2923,8 @@ "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true }, "is-descriptor": { "version": "0.1.6", @@ -2788,13 +2991,20 @@ "is-negative-zero": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, + "is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -2817,6 +3027,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, "requires": { "has-symbols": "^1.0.1" } @@ -2835,15 +3046,16 @@ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" }, "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", "dev": true }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, "requires": { "has-symbols": "^1.0.1" } @@ -2922,6 +3134,12 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2940,6 +3158,15 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -2963,11 +3190,6 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -2994,14 +3216,14 @@ } }, "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "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", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" } }, @@ -3009,6 +3231,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "requires": { "p-locate": "^4.1.0" } @@ -3406,11 +3629,6 @@ } } }, - "mixme": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.1.tgz", - "integrity": "sha512-NaeZIckeBFT7i0XBEpGyFcAE0/bLcQ9MHErTpnU3bLWVE5WZbxG5Y3fDsMxYGifTo5khDA42OquXCC2ngKJB+g==" - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -3868,9 +4086,9 @@ }, "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 }, "semver": { @@ -3888,9 +4106,9 @@ "dev": true }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "npm-package-arg": { "version": "8.1.2", @@ -3935,6 +4153,11 @@ "path-key": "^3.0.0" } }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -3971,12 +4194,14 @@ "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true }, "object-visit": { "version": "1.0.1", @@ -3990,6 +4215,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -4089,34 +4315,124 @@ } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", + "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" }, "dependencies": { + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "dev": true + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } } } @@ -4241,6 +4557,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "requires": { "p-try": "^2.0.0" } @@ -4249,6 +4566,7 @@ "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": { "p-limit": "^2.2.0" } @@ -4264,7 +4582,8 @@ "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==" + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true }, "param-case": { "version": "2.1.1", @@ -4294,12 +4613,13 @@ } }, "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" } }, "parse-passwd": { @@ -4332,7 +4652,8 @@ "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==" + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -4368,13 +4689,33 @@ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, + "path-starts-with": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-starts-with/-/path-starts-with-1.0.0.tgz", + "integrity": "sha1-soJDAV6LE43lcmgqxS2kLmRq2E4=", + "dev": true, + "requires": { + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "^3.0.0" } }, "pathval": { @@ -4398,9 +4739,9 @@ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pkg-dir": { @@ -4463,6 +4804,66 @@ } } }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, "plop": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.4.tgz", @@ -4578,24 +4979,24 @@ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^2.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "path-type": "^3.0.0" } }, "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "read-pkg": "^3.0.0" }, "dependencies": { "find-up": { @@ -4692,6 +5093,12 @@ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", @@ -4705,12 +5112,19 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "requires-port": { "version": "1.0.0", @@ -5212,7 +5626,8 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "set-value": { "version": "2.0.1", @@ -5300,34 +5715,6 @@ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" }, - "smartwrap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.1.tgz", - "integrity": "sha512-BoOIGADm5Q9OXGVmT899L1fx6dvOYciVUPB9yFlE1XkxRs3/6sqT/HYZoXOxNb4jj2zshtH+jhmGa6wGkNDPgA==", - "requires": { - "array.prototype.flat": "^1.2.3", - "breakword": "^1.0.5", - "grapheme-splitter": "^1.0.4", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "snake-case": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", @@ -5524,9 +5911,9 @@ } }, "spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz", + "integrity": "sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g==", "dev": true }, "split": { @@ -5588,14 +5975,6 @@ "through": "~2.3.4" } }, - "stream-transform": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.0.tgz", - "integrity": "sha512-bwQO+75rzQbug7e5OOHnOR3FgbJ0fCjHmDIdynkwUaFzleBXugGmv2dx3sX3aIHUQRLjrcisRPgN9BWl63uGgw==", - "requires": { - "mixme": "^0.5.0" - } - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -5635,6 +6014,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.1" @@ -5644,6 +6024,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.1" @@ -5809,49 +6190,23 @@ "is-number": "^7.0.0" } }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "tty-table": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.1.3.tgz", - "integrity": "sha512-Aireaxah5bTJkkJ7b2RI8tMZxogscWP4UCgi5dKuOqL8BWPjnnOebC7F+oFYWTLKUaiJm8h+CvsigBaaCtxqGw==", - "requires": { - "chalk": "^3.0.0", - "csv": "^5.3.2", - "kleur": "^3.0.3", - "smartwrap": "^2.0.1", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -5878,6 +6233,26 @@ "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", "optional": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -6045,10 +6420,24 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "wide-align": { "version": "1.1.3", @@ -6117,6 +6506,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6126,12 +6516,14 @@ "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, "requires": { "ansi-regex": "^5.0.0" } @@ -6166,7 +6558,8 @@ "y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true }, "yallist": { "version": "4.0.0", @@ -6177,6 +6570,7 @@ "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, "requires": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -6195,6 +6589,7 @@ "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" diff --git a/package.json b/package.json index bffd998b..39d46d38 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.3", + "version": "2.0.4", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -33,7 +33,6 @@ "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", - "cli-table": "0.3.1", "co": "4.6.0", "co-prompt": "1.0.0", "commander": "6.2.0", @@ -55,7 +54,7 @@ "plop": "2.7.4", "semver": "7.1.3", "timeago.js": "4.0.2", - "tty-table": "4.1.3", + "cli-table3": "0.6.0", "url-join": "4.0.1", "url-parse": "1.5.1" }, @@ -65,7 +64,7 @@ "chai-as-promised": "7.1.1", "eslint": "5.16.0", "eslint-config-airbnb-base": "13.1.0", - "eslint-plugin-import": "2.20.2", + "eslint-plugin-import": "2.23.2", "mocha": "7.1.1", "nock": "13.0.4", "rewire": "5.0.0" diff --git a/src/client/actions.js b/src/client/actions.js index 8029b946..4ac9b0d1 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -100,13 +100,10 @@ module.exports = class Actions { .catch(err => constructError(err)); } - deleteAction(projectId, token, actionName, actionType) { + deleteAction(projectId, token, actionName) { checkProject(projectId); - let endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}`; - if (actionType) { - endpoint = `${endpoint}?actionType=${actionType}`; - } - debug('deleteAction(%s, %s) => %s', actionName, actionType, endpoint); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}`; + debug('deleteAction(%s) => %s', actionName, endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/agents.js b/src/client/agents.js index d9592ac7..f642c4d0 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -69,10 +69,10 @@ module.exports = class Agents { .catch(err => constructError(err)); } - listActivations(projectId, token, agentName, params) { + listActivations(projectId, token, params) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${agentName}/activations`; - debug('listActivations(%s) => %s', agentName, endpoint); + const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${params.agentName}/activations`; + debug('listActivations(%s) => %s', params.agentName, endpoint); const opts = { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 27cb0714..d4fb6c80 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -93,4 +93,34 @@ module.exports = class ApiServerClient { throw err; } } + + /** + * Query model list using graphql + * @param projectId, offset, limit + * @return {Promise} + */ + async listModels(projectId, offset, limit, token) { + try { + const fetched = await this._client(token) + .request(gql`{ models ( project: "${projectId}", offset: ${offset}, limit: ${limit} ) { name, title, description } }`); + return _.get(fetched, 'models', []); + } catch (err) { + throw err; + } + } + + /** + * Query model description using graphql + * @param projectId, name + * @return {Promise} + */ + async descModels(projectId, name, token) { + try { + const fetched = await this._client(token) + .request(gql`{ modelByName ( project: "${projectId}", name: "${name}" ) { name, description, model_mode, source, status, title, type } }`); + return _.get(fetched, 'modelByName', []); + } catch (err) { + throw err; + } + } }; diff --git a/src/client/assessments.js b/src/client/assessments.js new file mode 100644 index 00000000..738fb21c --- /dev/null +++ b/src/client/assessments.js @@ -0,0 +1,161 @@ +/* + * Copyright 2021 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const querystring = require('querystring'); +const { createWriteStream } = require('fs'); +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); + +module.exports = class Assessments { + constructor(cortexUrl) { + this.endpointV4 = `${cortexUrl}/fabric/v4/impactassessment`; + } + + queryResources(token, name, projectId, type, skip, limit) { + const url = `${this.endpointV4}/resources?${querystring.stringify({ + projectId, + name, + type, + skip, + limit, + })}`; + debug('queryResources => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => res) + .catch(err => constructError(err)); + } + + listResourceTypes(token) { + const url = `${this.endpointV4}/types`; + debug('listResourceTypes => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => res) + .catch(err => constructError(err)); + } + + createAssessment(token, name, title, description, scope, componentName, componentTypes) { + const url = `${this.endpointV4}/assessments`; + debug('createAssessment => %s', url); + return got + .post(url, { + headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, + 'user-agent': getUserAgent(), + body: JSON.stringify({ + name, + title, + description, + scope, + componentName, + componentTypes, + }), + }).json() + .then(res => res) + .catch(err => constructError(err)); + } + + listAssessment(token, skip, limit) { + const url = `${this.endpointV4}/assessments?${querystring.stringify({ skip, limit })}`; + debug('listAssessment => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => res) + .catch(err => constructError(err)); + } + + getAssessment(token, name) { + const url = `${this.endpointV4}/assessments/${name}`; + debug('getAssessment => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => res) + .catch(err => constructError(err)); + } + + deleteAssessment(token, name) { + const url = `${this.endpointV4}/assessments/${name}`; + debug('deleteAssessment => %s', url); + return got + .delete(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => res) + .catch(err => constructError(err)); + } + + runAssessment(token, name) { + const url = `${this.endpointV4}/assessments/${name}/run`; + debug('runAssessment => %s', url); + return got + .post(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => res) + .catch(err => constructError(err)); + } + + listAssessmentReports(token, name) { + const url = `${this.endpointV4}/assessments/${name}/reports`; + debug('listAssessmentReports => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => res) + .catch(err => constructError(err)); + } + + getAssessmentReport(token, name, reportId) { + const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}`; + debug('getAssessmentReport => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => res) + .catch(err => constructError(err)); + } + + exportAssessmentReport(token, name, reportId, types) { + const filter = types && types.trim() ? `?components=${types.trim()}` : ''; + const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}/export${filter}`; + debug('exportAssessmentReport => %s', url); + got.stream(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).pipe(createWriteStream(`${reportId}.csv`), { end: true }); + return Promise.resolve({ file: `${reportId}.csv` }); + } +}; diff --git a/src/client/catalog.js b/src/client/catalog.js index 8c1b2d95..98e70026 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -49,13 +49,16 @@ module.exports = class Catalog { .catch(err => constructError(err)); } - listSkills(projectId, token) { + listSkills(projectId, token, status = false) { checkProject(projectId); debug('listSkills() => %s', this.endpoints.skills(projectId)); + const query = {}; + if (status) query.status = true; return got .get(this.endpoints.skills(projectId), { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }).json() .then(skills => ({ success: true, ...skills })) .catch(err => constructError(err)); @@ -65,11 +68,16 @@ module.exports = class Catalog { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; debug('describeSkill(%s) => %s', skillName, endpoint); + const searchParams = {}; + if (verbose) { + searchParams.verbose = verbose; + searchParams.status = verbose; + } return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), - searchParams: { verbose }, + searchParams, }).json() .then(res => ({ success: true, skill: res })) .catch(err => constructError(err)); @@ -103,6 +111,20 @@ module.exports = class Catalog { .catch(err => constructError(err)); } + skillLogs(projectId, token, skillName, actionName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/action/${encodeURIComponent(actionName)}/logs`; + debug('skillLogs(%s, %s) => %s', skillName, actionName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then(res => ({ ...res })) + .catch(err => constructError(err)); + } + listAgents(projectId, token) { checkProject(projectId); const endpoint = this.endpoints.agents(projectId); @@ -245,7 +267,6 @@ module.exports = class Catalog { importCampaign(projectId, token, filepath, deploy, overwrite) { checkProject(projectId); - const importUrl = `${this.endpoints.campaigns(projectId)}import?deployable=${deploy}&overwrite=${overwrite}`; debug('importCampaign(%s) => %s', filepath, importUrl); if (!fs.existsSync(filepath) || !fs.lstatSync(filepath).isFile()) { @@ -276,6 +297,48 @@ module.exports = class Catalog { }); } + listMissions(projectId, token, campaign) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions`; + debug('listMissions() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + + deployMission(projectId, token, campaign, mission) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions/${mission}/deploy`; + debug('deployMissions() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + + getMission(projectId, token, campaign, mission) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions/${mission}`; + debug('getMissions() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + // saveProfileSchema(projectId, token, schemaObj) { // debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); // return request diff --git a/src/client/experiments.js b/src/client/experiments.js index e6ff0040..5b4ec83c 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -13,7 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +const fs = require('fs'); +const stream = require('stream'); +const { promisify } = require('util'); +const pipeline = promisify(stream.pipeline); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); const { constructError, getUserAgent, checkProject } = require('../commands/utils'); @@ -25,9 +29,9 @@ module.exports = class Experiments { this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; } - listExperiments(projectId, token) { + listExperiments(projectId, modelId, token) { checkProject(projectId); - const endpoint = `${this.endpoint(projectId)}`; + const endpoint = `${this.endpoint(projectId)}?${modelId ? `modelId=${modelId}` : ''}`; debug('listExperiments() => %s', endpoint); return got .get(endpoint, { @@ -126,4 +130,55 @@ module.exports = class Experiments { return constructError(err); } } + + saveExperiment(projectId, token, experimentObj) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}`; + debug('saveExperiment(%s) => %s', experimentObj.name, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: experimentObj, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); + } + + createRun(projectId, token, runObj) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(runObj.experimentName)}/runs`; + debug('createRun(%s) => %s', runObj.experimentName, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: runObj, + }).json() + .then(result => ({ success: true, result })) + .catch(err => constructError(err)); + } + + async uploadArtifact(projectId, token, experimentName, runId, content, artifact, contentType = 'application/octet-stream') { + checkProject(projectId); + + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${encodeURIComponent(runId)}/artifacts/${artifact}`; + + debug('uploadArtifact(%s, %s) => %s', artifact, content, endpoint); + try { + const message = await pipeline( + fs.createReadStream(content), + got.stream.put(endpoint, { + headers: { + Authorization: `Bearer ${token}`, + 'Content-Type': contentType, + }, + 'user-agent': getUserAgent(), + }), + ); + return { success: true, message }; + } catch (err) { + return constructError(err); + } + } }; diff --git a/src/client/models.js b/src/client/models.js new file mode 100644 index 00000000..2c06effe --- /dev/null +++ b/src/client/models.js @@ -0,0 +1,98 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { + constructError, checkProject, getUserAgent, +} = require('../commands/utils'); + + +module.exports = class Models { + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/models`; + } + + saveModel(projectId, token, modelObj) { + checkProject(projectId); + const endpoint = this.endpointV4(projectId); + debug('saveModel(%s) => %s', modelObj.name, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: modelObj, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); + } + + deleteModel(projectId, token, modelName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}`; + debug('deleteAction(%s) => %s', modelName, endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(model => ({ success: true, model })) + .catch(err => constructError(err)); + } + + describeModel(projectId, token, modelName, verbose) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}`; + debug('describeModel(%s) => %s', modelName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then(model => ({ success: true, model })) + .catch(err => constructError(err)); + } + + listModels(projectId, offset, limit, tags, token) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}?skip=${offset}&limit=${limit}${tags ? `&tags=${tags}` : ''}`; + debug('listModels() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(modelsResp => ({ success: true, ...modelsResp })) + .catch(err => constructError(err)); + } + + listModelRuns(projectId, modelName, token) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${modelName}/experiments/runs`; + debug('listModels() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(modelsResp => ({ success: true, ...modelsResp })) + .catch(err => constructError(err)); + } +}; diff --git a/src/client/users.js b/src/client/users.js index e98c9aaa..0b77de34 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -42,6 +42,42 @@ module.exports = class Users { } } + createServiceUser(token, user) { + const endpoint = `${this.endpoint}/accounts/service/${user}`; + debug('createServiceUser => %s', endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + deleteServiceUser(token, user) { + const endpoint = `${this.endpoint}/accounts/service/${user}`; + debug('createServiceUser => %s', endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + + listServiceUsers(token) { + const endpoint = `${this.endpoint}/accounts/service`; + debug('createServiceUser => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then(res => ({ success: true, result: res })) + .catch(err => constructError(err)); + } + describeUser(token) { const endpoint = `${this.usersEndpoint}/${this.flags}`; debug('describeUser => %s', endpoint); diff --git a/src/commander.js b/src/commander.js index 5f993891..bbb26f20 100644 --- a/src/commander.js +++ b/src/commander.js @@ -46,9 +46,10 @@ commander.Command.prototype.parse = function (argv, options) { this._parse(argv); if (!this.wasActionTaken()) { - if (process.env.CORTEX_TOKEN) { - console.error('Using token from environment variable $CORTEX_TOKEN'); - } + // TODO this seems broken in v6 + // if (process.env.CORTEX_TOKEN) { + // console.error('Using token from environment variable $CORTEX_TOKEN'); + // } opts.noActionHandler(); } }; diff --git a/src/commands/actions.js b/src/commands/actions.js index 7fa9a95f..2c2e96cf 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -113,15 +113,16 @@ module.exports.DeployActionCommand = class { if (options.actionName) { actionInst.name = options.actionName; } - if (options.name) { - actionInst.name = options.name; - } + if (options.name) { actionInst.name = options.name; } if (options.podspec) { const paramsStr = fs.readFileSync(options.podspec); actionInst.podSpec = parseObject(paramsStr, options); } - if (options.docker) { actionInst.docker = options.docker; } - if (options.actionType) { actionInst.actionType = options.actionType; } + if (options.docker) { actionInst.image = options.docker; } + if (options.image) { actionInst.image = options.image; } + + if (options.type) { actionInst.type = options.type; } + if (options.actionType) { actionInst.type = options.actionType; } if (options.cmd) { actionInst.command = options.cmd; } if (options.port) { if (!isNumeric(options.port)) { @@ -138,6 +139,13 @@ module.exports.DeployActionCommand = class { actionInst.scaleCount = parseInt(options.scaleCount, 10); } + if (options.jobTimeout) { + if (!isNumeric(options.jobTimeout)) { + printError('--jobTimeout must be a number', options); + } + actionInst.jobTimeout = parseInt(options.jobTimeout, 10); + } + const actions = new Actions(profile.url); actions.deployAction(options.project || profile.project, profile.token, actionInst) .then((response) => { @@ -161,9 +169,8 @@ module.exports.DeleteActionCommand = class { execute(actionName, options) { const profile = loadProfile(options.profile); debug('%s.executeDeleteAction(%s)', profile.name, actionName); - const { actionType } = options; const actions = new Actions(profile.url); - actions.deleteAction(options.project || profile.project, profile.token, actionName, actionType) + actions.deleteAction(options.project || profile.project, profile.token, actionName) .then((response) => { if (response.success) { const result = filterObject(response, options); diff --git a/src/commands/agents.js b/src/commands/agents.js index 8181f5d9..571690cc 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -217,7 +217,11 @@ module.exports.ListActivationsCommand = class { if (options.endBefore) queryParams.endBefore = options.endBefore; if (options.endAfter) queryParams.endAfter = options.endAfter; if (options.status) queryParams.status = options.status; - agents.listActivations(options.project || profile.project, profile.token, agentName, queryParams).then((response) => { + // TODO limit + skip + if (options.correlationId) queryParams.correlationId = options.correlationId; + queryParams.agentName = agentName; + + agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { let result = response.result.activations; if (options.query) result = filterObject(result, options); @@ -231,11 +235,11 @@ module.exports.ListActivationsCommand = class { printTable(tableSpec, _.map(result, r => ({ activationId: r }))); } } else { - printError(`Failed to list activations for instance ${agentName}: ${response.message}`, options); + printError(`Failed to list activations for agent "${agentName}": ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list activations for instance ${agentName}: ${err.status} ${err.message}`, options); + printError(`Failed to list activations for agent "${agentName}": ${err.status} ${err.message}`, options); }); } }; @@ -290,12 +294,14 @@ module.exports.ListAgentSnapshotsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Snapshot ID', field: 'id', width: 40 }, - { column: 'Title', field: 'title', width: 30 }, - { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Created On', field: 'createdAt', width: 26 }, + { column: 'Snapshot ID', field: 'snapshotId', width: 40 }, + { column: 'Title', field: 'title', width: 40 }, +// Removed as this is confusing for end users, agent version may not change +// { column: 'Agent Version', field: 'agentVersion', width: 15 }, + { column: 'Created', field: 'createdAt', width: 26 }, + { column: 'Author', field: 'createdBy', width: 26 }, ]; - printTable(tableSpec, result); + printTable(tableSpec, result, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); } } else { printError(`Failed to list agent snapshots ${agentName}: ${response.message}`, options); diff --git a/src/commands/assessments.js b/src/commands/assessments.js new file mode 100644 index 00000000..f0b8349c --- /dev/null +++ b/src/commands/assessments.js @@ -0,0 +1,329 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const fs = require('fs'); + +const _ = { + uniqBy: require('lodash/uniqBy'), + maxBy: require('lodash/maxBy'), + sortBy: require('lodash/sortBy'), + flatten: require('lodash/flatten'), + compact: require('lodash/compact'), +}; +const debug = require('debug')('cortex:cli'); +const moment = require('moment'); +const { loadProfile } = require('../config'); +const Assessments = require('../client/assessments'); + +const { + printSuccess, printError, parseObject, printTable, +} = require('./utils'); + +module.exports.ListResourcesCommand = class { + constructor(program) { + this.program = program; + } + + execute(command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.ListResourcesCommand()', profile.name); + + const client = new Assessments(profile.url); + client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit) + .then((response) => { + if (response.success === false) throw response; + if (options.json) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + const maxLenRow = _.maxBy(response.data, r => r.resourceName.length); + const maxLen = maxLenRow ? maxLenRow.resourceName.length : 30; + const tableSpec = [ + { column: 'Name', field: 'resourceName', width: Math.min(maxLen + 2, 90) }, + { column: 'Title', field: 'resourceTitle', width: 30 }, + { column: 'Type', field: 'resourceType', width: 25 }, + { column: 'Project', field: '_projectId', width: 25 }, + ]; + printTable(tableSpec, _.sortBy(response.data, ['_projectId', 'resourceType'])); + } + }) + .catch((err) => { + printError(`Failed to list Cortex resources: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListResourceTypesCommand = class { + constructor(program) { + this.program = program; + } + + execute(command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.ListResourceTypesCommand()', profile.name); + + const client = new Assessments(profile.url); + client.listResourceTypes(profile.token) + .then((response) => { + if (response.success === false) throw response; + const data = _.compact(response.data); + if (options.json) { + printSuccess(JSON.stringify(data, null, 2), options); + } else { + const types = data.map(t => ({ type: t })); + const tableSpec = [ + { column: 'Type', field: 'type', width: 25 }, + ]; + printTable(tableSpec, types); + } + }) + .catch((err) => { + printError(`Failed to list Cortex resource types: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.CreateAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(assessmentDef, command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.CreateAssessmentCommand()', profile.name); + const client = new Assessments(profile.url); + let assessment = {}; + if (assessmentDef) { + try { + const assessmentDefStr = fs.readFileSync(assessmentDef); + assessment = parseObject(assessmentDefStr, options); + } catch (err) { + printError(`Failed to read assessment definition ${assessmentDef}: ${err.message}`, options); + } + } + client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, + options.description || assessment.description, options.scope || assessment.scope, + options.component || assessment.component, options.type || assessment.type) + .then((response) => { + if (response.success === false) throw response; + if (response.success) { + printSuccess(`Assessment ${options.name} saved successfully`, options); + } else { + printError(`Failed to save assessment: ${JSON.stringify(response)}`); + } + }) + .catch((err) => { + printError(`Failed to save assessment: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.ListAssessmentCommand()', profile.name); + + const client = new Assessments(profile.url); + client.listAssessment(profile.token, options.skip, options.limit) + .then((response) => { + if (response.success === false) throw response; + if (options.json) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 30 }, + { column: 'Description', field: 'description', width: 40 }, + { column: 'Projects', field: 'scope', width: 25 }, + { column: '# Reports', field: 'reportCount', width: 12 }, + { column: 'Modified', field: '_updatedAt', width: 25 }, + { column: 'Author', field: '_createdBy', width: 25 }, + ]; + printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); + } + }) + .catch((err) => { + printError(`Failed to list assessment: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DescribeAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, options) { + const profile = loadProfile(options.profile); + debug('%s.DescribeAssessmentCommand()', profile.name); + + const client = new Assessments(profile.url); + client.getAssessment(profile.token, name) + .then((response) => { + if (response.success === false) throw response; + printSuccess(JSON.stringify(response, null, 2), options); + }) + .catch((err) => { + printError(`Failed to get assessment ${name}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeleteAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, options) { + const profile = loadProfile(options.profile); + debug('%s.DeleteAssessmentCommand()', profile.name); + + const client = new Assessments(profile.url); + client.deleteAssessment(profile.token, name) + .then((response) => { + if (response.success === false) throw response; + printSuccess(JSON.stringify(response, null, 2), options); + }) + .catch((err) => { + printError(`Failed to delete assessment ${name}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.RunAssessmentCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, options) { + const profile = loadProfile(options.profile); + debug('%s.RunAssessmentCommand()', profile.name); + + const client = new Assessments(profile.url); + client.runAssessment(profile.token, name) + .then((response) => { + if (response.success === false) throw response; + printSuccess(JSON.stringify(response, null, 2), options); + }) + .catch((err) => { + printError(`Failed to run assessment ${name}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListAssessmentReportCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, options) { + const profile = loadProfile(options.profile); + debug('%s.ListAssessmentReportCommand()', profile.name); + + const client = new Assessments(profile.url); + client.listAssessmentReports(profile.token, name) + .then((response) => { + if (response.success === false) throw response; + if (options.json) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + const tableSpec = [ + { column: 'Assessment Name', field: 'assessmentId', width: 30 }, + { column: 'Report Id', field: 'reportId', width: 50 }, + { column: 'Impact Summary', field: 'summary', width: 60 }, + { column: 'Modified', field: '_updatedAt', width: 25 }, + { column: 'Author', field: '_createdBy', width: 25 }, + ]; + response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); + printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); + } + }) + .catch((err) => { + printError(`Failed to list assessment ${name} reports: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.GetAssessmentReportCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, reportId, options) { + const profile = loadProfile(options.profile); + debug('%s.GetAssessmentReportCommand()', profile.name); + + const client = new Assessments(profile.url); + client.getAssessmentReport(profile.token, name, reportId) + .then((response) => { + if (response.success === false) throw response; + if (options.json) { + const output = { + name: response.reportId, + assessment: response.assessmentId, + summary: Object.fromEntries(response.summary.map(item => [item.type, item.count])), + report: response.detail, + _createdAt: response._createdAt, + _createdBy: response._createdBy, + }; + printSuccess(JSON.stringify(output, null, 2), options); + } else { + const flattenRefs = _.uniqBy( + _.flatten( + response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId }))), + ), r => `${r.name}-${r.type}`, + ); + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Title', field: 'title', width: 30 }, + { column: 'Type', field: 'type', width: 20 }, + { column: 'Project', field: 'projectId', width: 25 }, + ]; + printTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type'])); + } + }) + .catch((err) => { + printError(`Failed to get assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ExportAssessmentReportCommand = class { + constructor(program) { + this.program = program; + } + + execute(name, reportId, command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.ExportAssessmentReportCommand()', profile.name); + + const client = new Assessments(profile.url); + client.exportAssessmentReport(profile.token, name, reportId, options.type) + .then((response) => { + if (response.success === false) throw response; + printSuccess(`Report exported to ${response.file}`, options); + }) + .catch((err) => { + printError(`Failed to export assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); + }); + } +}; diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 29f5501e..733cf674 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -17,6 +17,8 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const Catalog = require('../client/catalog'); + +const _ = { get: require('lodash/get') }; const { printSuccess, printError, filterObject, printTable, } = require('./utils'); @@ -109,3 +111,73 @@ module.exports.ImportCampaignCommand = class ImportCampaignCommand { } } }; + +module.exports.ListMissionsCommand = class ListMissionsCommand { + constructor(program) { + this.program = program; + } + + execute(campaign, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeListMissionsCommand(%s)', profile.name, campaign); + const cli = new Catalog(profile.url); + + try { + cli.listMissions(options.project || profile.project, profile.token, campaign).then((response) => { + if (response.success === false) throw response; + const data = Object.values(response.data); + if (options.json) { + printSuccess(JSON.stringify(data, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name', width: 50 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 80 }, + { column: 'Status', field: 'lifecycleState', width: 30 }, + ]; + printTable(tableSpec, data); + } + }); + } catch (err) { + printError(`Failed to list missions of campaign ${campaign}: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.DeployMissionCommand = class DeployMissionCommand { + constructor(program) { + this.program = program; + } + + execute(campaign, mission, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); + const cli = new Catalog(profile.url); + + cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { + if (response.success === false) throw response; + const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); + printSuccess(output, options); + }).catch(err => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); + } +}; + +module.exports.DescribeMissionCommand = class DescribeMissionCommand { + constructor(program) { + this.program = program; + } + + execute(campaign, mission, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDescribeMissionCommand(%s)', profile.name, campaign); + const cli = new Catalog(profile.url); + + cli.getMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { + if (response.success === false) throw response; + printSuccess(JSON.stringify(response.data, null, 2), options); + }).catch(err => printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); + } +}; diff --git a/src/commands/configure.js b/src/commands/configure.js index b6d337cb..8a70f078 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -168,3 +168,23 @@ module.exports.GetAccessToken = class { return printSuccess(jwt, options); } }; + +module.exports.PrintEnvVars = class { + constructor(program) { + this.program = program; + } + + execute() { + const vars = []; + const options = this.program; + const profile = loadProfile(options.profile, false); + const ttl = options.ttl || '1d'; + const jwt = generateJwt(profile, ttl); + vars.push(`export CORTEX_TOKEN=${jwt}`); + vars.push(`export CORTEX_URI=${profile.url}`); + // not sure why we used URI previously ?? + vars.push(`export CORTEX_URL=${profile.url}`); + vars.push(`export CORTEX_PROJECT=${options.project || profile.project}`); + return printSuccess(vars.join('\n'), options); + } +}; diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 3f518ec7..d726bdad 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -14,13 +14,14 @@ * limitations under the License. */ +const fs = require('fs'); const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { - printSuccess, printError, filterObject, printTable, + printSuccess, printError, filterObject, printTable, parseObject, formatValidationPath, } = require('./utils'); class ListExperiments { @@ -33,7 +34,7 @@ class ListExperiments { debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); - exp.listExperiments(options.project || profile.project, profile.token).then((response) => { + exp.listExperiments(options.project || profile.project, options.model, profile.token).then((response) => { if (response.success) { let { result } = response; if (options.query) { @@ -132,25 +133,22 @@ class ListRuns { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { alias: 'Run ID', value: 'runId', width: 25 }, - { - alias: 'Start', value: 'startTime', width: 25, formatter: val => moment.unix(val).format('YYYY-MM-DD HH:mm a'), -}, - { - alias: 'Took', value: 'took', width: 25, formatter: val => moment.duration(val, 'seconds').humanize(), -}, - { - alias: 'Params', value: 'params', width: 45, formatter: val => _.map(val, (v, k) => `${k}: ${v}`).join('\n'), -}, - { - alias: 'Metrics', value: 'metrics', width: 45, formatter: val => _.map(val, (v, k) => `${k}: ${v}`).join('\n'), -}, - { alias: 'Artifacts', value: 'artifacts', formatter: val => Object.keys(val).join(', ') }, + { column: 'Run ID', field: 'runId', width: 25 }, + { column: 'Start', field: 'startTime', width: 25 }, + { column: 'Took', field: 'took', width: 25 }, + { column: 'Params', field: 'params', width: 45 }, + { column: 'Metrics', field: 'metrics', width: 45 }, + { column: 'Artifacts', field: 'artifacts' }, ]; - - const Table = require('tty-table'); - const t = new Table(tableSpec, result.runs); - console.log(t.render()); + const trans = (o) => { + o.startTime = o.startTime ? moment.unix(o.startTime).format('YYYY-MM-DD HH:mm a') : ''; + o.took = o.took ? moment.duration(o.took, 'seconds').humanize() : ''; + o.params = _.map(o.params, (v, k) => `${k}: ${v}`).join('\n'); + o.metrics = _.map(o.metrics, (v, k) => `${k}: ${v}`).join('\n'); + o.artifacts = Object.keys(_.get(o, 'artifacts', {})).join(', '); + return o; + }; + printTable(tableSpec, _.get(result, 'runs', []), trans); } } else { printError(`Failed to list runs: ${response.status} ${response.status} - ${response.message}`, options); @@ -237,6 +235,113 @@ class DownloadArtifactCommand { } } +class SaveExperimentCommand { + constructor(program) { + this.program = program; + } + + execute(experimentDefinition, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSaveExperiment(%s)', profile.name, experimentDefinition); + + const experimentDefStr = fs.readFileSync(experimentDefinition); + const experiment = parseObject(experimentDefStr, options); + debug('%o', experiment); + + const experiments = new Experiments(profile.url); + experiments.saveExperiment(options.project || profile.project, profile.token, experiment).then((response) => { + if (response.success) { + printSuccess('Experiment saved', options); + } else if (response.details) { + console.log(`Failed to save experiment: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + }) + .catch((err) => { + printError(`Failed to save experiment: ${err.status} ${err.message}`, options); + }); + } +} + +class CreateRunCommand { + constructor(program) { + this.program = program; + } + + execute(runDefinition, options) { + const profile = loadProfile(options.profile); + debug('%s.executeCreateRun(%s)', profile.name, runDefinition); + + const runDefinitionStr = fs.readFileSync(runDefinition); + const run = parseObject(runDefinitionStr, options); + + const experiments = new Experiments(profile.url); + experiments.createRun(options.project || profile.project, profile.token, run).then((response) => { + if (response.success) { + printSuccess('Run created', options); + printSuccess(JSON.stringify(response.result, null, 2), options); + } else if (response.details) { + console.log(`Failed to create run: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + }) + .catch((err) => { + printError(`Failed to create run: ${err.status} ${err.message}`, options); + }); + } +} + +class UploadArtifactCommand { + constructor(program) { + this.program = program; + } + + execute(experimentName, runId, filePath, artifact, options) { + const profile = loadProfile(options.profile); + debug('%s.executeUploadArtifact()', profile.name); + + const experiments = new Experiments(profile.url); + + const upload = _.partial(UploadArtifactCommand.upload, experiments, profile, options); + + upload(filePath, artifact, experimentName, runId); + } + + static upload(experiments, profile, options, filePath, artifact, experimentName, runId) { + const contentType = _.get(options, 'contentType', 'application/octet-stream'); + return experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, filePath, artifact, contentType).then((response) => { + if (response.success) { + printSuccess('Artifact successfully uploaded.', options); + printSuccess(JSON.stringify(response, null, 2), options); + } else { + printError(`Failed to upload Artifact: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to upload Artifact: ${err.status} ${err.message}`, options); + }); + } +} + module.exports = { ListExperiments, ListRuns, @@ -245,4 +350,7 @@ module.exports = { DeleteRunCommand, DeleteExperimentCommand, DownloadArtifactCommand, + SaveExperimentCommand, + CreateRunCommand, + UploadArtifactCommand, }; diff --git a/src/commands/models.js b/src/commands/models.js new file mode 100644 index 00000000..7e817238 --- /dev/null +++ b/src/commands/models.js @@ -0,0 +1,266 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const fs = require('fs'); + +const _ = { + get: require('lodash/get'), +}; +const debug = require('debug')('cortex:cli'); +const moment = require('moment'); +const { loadProfile } = require('../config'); +const Models = require('../client/models'); +const Experiments = require('../client/experiments'); +const { LISTTABLEFORMAT, RUNTABLEFORMAT } = require('./utils'); + +const { + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, +} = require('./utils'); + +module.exports.SaveModelCommand = class SaveModelCommand { + constructor(program) { + this.program = program; + } + + execute(modelDefinition, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSaveModel(%s)', profile.name, modelDefinition); + + const modelDefStr = fs.readFileSync(modelDefinition); + const model = parseObject(modelDefStr, options); + debug('%o', model); + + const models = new Models(profile.url); + models.saveModel(options.project || profile.project, profile.token, model).then((response) => { + if (response.success) { + printSuccess('Model saved', options); + } else if (response.details) { + console.log(`Failed to save model: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + }) + .catch((err) => { + printError(`Failed to save model: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListModelsCommand = class ListModelsCommand { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.executeListModels()', profile.name); + const models = new Models(profile.url); + models.listModels(options.project || profile.project, options.offset, options.limit, options.tags, profile.token).then((response) => { + if (response.success) { + let result = response.models; + if (options.query) result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + } + } else { + printError(`Failed to list models: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to list models: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListModelRunsCommand = class ListModelsCommand { + constructor(program) { + this.program = program; + } + + execute(modelName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeListModels()', profile.name); + const models = new Models(profile.url); + models.listModelRuns(options.project || profile.project, modelName, profile.token).then((response) => { + if (response.success) { + let result = response.runs; + if (options.query) result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printTable(RUNTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + } + } else { + printError(`Failed to list model runs: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to list model runs: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DescribeModelCommand = class DescribeModelCommand { + constructor(program) { + this.program = program; + } + + execute(modelName, options) { + const profile = loadProfile(options.profile); + const models = new Models(profile.url); + debug('%s.executeDescribeModel(%s)', profile.name, modelName); + models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { + if (response.success) { + const result = filterObject(response.model, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe model ${modelName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe model ${modelName}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeleteModelCommand = class { + constructor(program) { + this.program = program; + } + + execute(modelName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteModel(%s)', profile.name, modelName); + const models = new Models(profile.url); + models.deleteModel(options.project || profile.project, profile.token, modelName) + .then((response) => { + if (response && response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Model deletion failed: ${response.status} ${response.message}.`, options); + } + }) + .catch((err) => { + printError(`Failed to delete model: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.PublishModelCommand = class PublishModelCommand { + constructor(program) { + this.program = program; + } + + async execute(modelName, options) { + const profile = loadProfile(options.profile); + const models = new Models(profile.url); + debug('%s.executePublishModel(%s)', profile.name, modelName); + try { + const getModelObj = await models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose); + if (!getModelObj.success) { + printError(JSON.stringify(getModelObj)); + return; + } + const model = { ...getModelObj.model }; + model.status = 'Published'; + const saveModelObj = await models.saveModel(options.project || profile.project, profile.token, model); + if (!saveModelObj.success) { + printError(JSON.stringify(saveModelObj)); + } + printSuccess('Model published', options); + } catch (err) { + printError(`Failed to publish model ${modelName}: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.RegisterModelCommand = class RegisterModelCommand { + constructor(program) { + this.program = program; + } + + async execute(modelDefinition, options) { + const profile = loadProfile(options.profile); + + function printErrorDetails(response) { + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map(d => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } + + const experiments = new Experiments(profile.url); + + try { + debug('%s.executeRegisterModel(%s)', profile.name, modelDefinition); + + const modelDefStr = fs.readFileSync(modelDefinition); + const model = parseObject(modelDefStr, options); + debug('%o', model); + + const saveExperimentResponse = await experiments.saveExperiment(options.project || profile.project, profile.token, model); + if (!saveExperimentResponse.success) { + if (saveExperimentResponse.details) { + printErrorDetails(saveExperimentResponse); + return; + } + printError(JSON.stringify(saveExperimentResponse)); + return; + } + const experimentName = _.get(saveExperimentResponse, 'result.name', ''); + const saveRunResponse = await experiments.createRun(options.project || profile.project, profile.token, experimentName); + if (!saveRunResponse.success) { + if (saveRunResponse.details) { + printErrorDetails(saveRunResponse); + return; + } + printError(JSON.stringify(saveRunResponse)); + return; + } + const runId = _.get(saveRunResponse, 'result.runId', ''); + const contentType = _.get(options, 'contentType', 'application/octet-stream'); + const uploadArtifactResponse = await experiments.uploadArtifact( + options.project || profile.project, profile.token, + experimentName, runId, model.filePath, model.artifact, contentType, + ); + if (uploadArtifactResponse.success) { + printSuccess('Artifact successfully uploaded.', options); + printSuccess(JSON.stringify(saveRunResponse.result, null, 2), options); + return; + } + printError(`Failed to upload Artifact: ${uploadArtifactResponse.status} ${uploadArtifactResponse.message}`, options); + } catch (err) { + printError(`Failed to upload model: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 1542fba9..7fbaef6d 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -113,6 +113,12 @@ module.exports.WriteSecretsCommand = class { return printError('Failed to write secret : no value specified', options); } + // FAB-1775: validate secret key name + const invalidCharsRegex = /^\w+([./-]?\w+)*$/; + if (!invalidCharsRegex.test(keyName)) { + return printError(`Failed to write secret : keyName did not conform to regex ${JSON.stringify(invalidCharsRegex)}`, options); + } + const secrets = new Secrets(profile.url); return secrets.writeSecret(options.project || profile.project, profile.token, keyName, data).then((response) => { if (response.success) { diff --git a/src/commands/skills.js b/src/commands/skills.js index a2e78677..a8d4c563 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -65,28 +65,38 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { this.program = program; } - execute(options) { + async execute(options) { const profile = loadProfile(options.profile); debug('%s.executeListSkills()', profile.name); const catalog = new Catalog(profile.url); - catalog.listSkills(options.project || profile.project, profile.token).then((response) => { + try { + const response = await catalog.listSkills(options.project || profile.project, profile.token, options.nostatus === undefined); if (response.success) { let result = response.skills; + const tableFormat = LISTTABLEFORMAT; + if (options.nostatus === undefined) { + result = result.map((skill) => { + const status = _.isEmpty(skill.actionStatuses) ? skill.deployStatus : skill.actionStatuses.map(s => `${s.name}: ${s.state}`).join(' '); + return { + ...skill, + status, + }; + }); + tableFormat.push({ column: 'Status', field: 'status', width: 30 }); + } if (options.query) result = filterObject(result, options); if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printTable(LISTTABLEFORMAT, _.sortBy(result, ['name']), o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + return printSuccess(JSON.stringify(result, null, 2), options); } - } else { - printError(`Failed to list skills: ${response.status} ${response.message}`, options); + return printTable(tableFormat, + _.sortBy(result, ['name']), o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } - }) - .catch((err) => { - printError(`Failed to list skills: ${err.status} ${err.message}`, options); - }); + return printError(`Failed to list skills: ${response.status} ${response.message}`, options); + } catch (err) { + return printError(`Failed to list skills: ${err.status} ${err.message}`, options); + } } }; @@ -136,6 +146,28 @@ module.exports.UndeploySkillCommand = class UndeploySkillCommand { } }; +module.exports.SkillLogsCommand = class SkillLogsCommand { + constructor(program) { + this.program = program; + } + + execute(skillName, actionName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeSkillLogs(%s,%s)', profile.name, skillName, actionName); + const catalog = new Catalog(profile.url); + catalog.skillLogs(options.project || profile.project, profile.token, skillName, actionName, options.verbose).then((response) => { + if (response.success) { + printSuccess(JSON.stringify(response.logs), options); + } else { + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.DeploySkillCommand = class DeploySkillCommand { constructor(program) { this.program = program; diff --git a/src/commands/users.js b/src/commands/users.js index cb50a3fc..35def9c0 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -62,6 +62,78 @@ module.exports.UserGrantCommand = class { } }; +module.exports.UserDeleteCommand = class { + constructor(program) { + this.program = program; + } + + execute(user, options) { + const profile = loadProfile(options.profile); + debug('%s.deleteServiceUser=%s', profile.name, user); + + const client = new Users(profile.url, user); + client.deleteServiceUser(profile.token, user).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to delete user ${user} : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to delete user : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.UserCreateCommand = class { + constructor(program) { + this.program = program; + } + + execute(user, options) { + const profile = loadProfile(options.profile); + debug('%s.createServiceUser=%s', profile.name, user); + + const client = new Users(profile.url, user); + client.createServiceUser(profile.token, user).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to create user ${user} : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to create user : ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.UserListCommand = class { + constructor(program) { + this.program = program; + } + + execute(options) { + const profile = loadProfile(options.profile); + debug('%s.listServiceUsers', profile.name); + + const client = new Users(profile.url, 'self'); + client.listServiceUsers(profile.token).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to list service users : ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to list service users : ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.UserDescribeCommand = class { constructor(program) { this.program = program; diff --git a/src/commands/utils.js b/src/commands/utils.js index d48cacbf..889c9c9a 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -14,7 +14,7 @@ * limitations under the License. */ -const Table = require('cli-table'); +const Table = require('cli-table3'); const _ = require('lodash'); const chalk = require('chalk'); const debug = require('debug')('cortex:cli'); @@ -48,7 +48,7 @@ module.exports.constructError = (error) => { // Guess it wasn't JSON! } return { - success: false, message: errorText, details, status: error.status || '', + success: false, message: errorText, details, status: error.status || error.code || _.get(errResp, 'statusCode') || '', }; }; @@ -206,7 +206,7 @@ module.exports.formatAllServiceInputParameters = (allParameters) => { if (allParameters.$ref != null) { return `$ref:${allParameters.$ref}`; } - + return allParameters.map(inputParameters => formatServiceInputParameter(inputParameters)).join('\n'); }; @@ -231,8 +231,8 @@ module.exports.countLinesInFile = filePath => new Promise((resolve, reject) => { .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); }); module.exports.formatValidationPath = (p) => { - let cnt = 0; let -res = ''; + let cnt = 0; + let res = ''; const len = p.length; p.forEach((s) => { if (_.isNumber(s)) { @@ -316,3 +316,11 @@ module.exports.LISTTABLEFORMAT = [ { column: 'Author', field: 'createdBy', width: 25 }, ]; + +module.exports.RUNTABLEFORMAT = [ + { column: 'Run ID', field: 'runId', width: 30 }, + { column: 'Experiment Name', field: 'experimentName', width: 40 }, + { column: 'Took', field: 'took', width: 50 }, + { column: 'Modified', field: '_updatedAt', width: 26 }, +]; + diff --git a/src/config.js b/src/config.js index 092e413e..62021428 100644 --- a/src/config.js +++ b/src/config.js @@ -96,7 +96,7 @@ class Profile { url, username, issuer, audience, jwk, project, }) { this.name = name; - this.url = process.env.CORTEX_URI || url; + this.url = url; this.username = username; this.jwk = jwk; this.account = 'cortex'; @@ -136,12 +136,15 @@ class Config { } } - getProfile(name) { + getProfile(name, useenv = true) { const profile = this.profiles[name]; if (!profile) { return undefined; } const profileType = new Profile(name, profile).validate(); + if (useenv) { + profileType.url = process.env.CORTEX_URI || profileType.url; + } profileType.token = generateJwt(profile); return profileType; } @@ -180,14 +183,14 @@ class Config { } } -module.exports.loadProfile = function (profileName) { +module.exports.loadProfile = function (profileName, useenv = true) { const config = readConfig(); if (config === undefined) { throw new Error('Please configure the Cortex CLI by running "cortex configure"'); } const name = profileName || config.currentProfile || 'default'; - const profile = config.getProfile(name); + const profile = config.getProfile(name, useenv); if (!profile) { throw new Error(`Profile with name "${name}" could not be located in your configuration. Please run "cortex configure".`); } From 0c399926d7fbd5cd350a5e1050e0b2f5b40b4a0b Mon Sep 17 00:00:00 2001 From: clee Date: Tue, 29 Jun 2021 15:46:09 -0500 Subject: [PATCH 361/864] fix registry publish url --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 8055110e..0cf608cd 100755 --- a/build.sh +++ b/build.sh @@ -37,7 +37,7 @@ function docker_build(){ if [[ ${BRANCH} = "master" ]]; then rm -rf node_modules npm install --silent --only=production - npm publish --registry=https://registry.npmjs.com/ + npm publish --registry=https://registry.npmjs.org/ elif [[ ${BRANCH} = "develop" ]]; then npm config set always-auth true # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ From 58917684665ae8171e2169384b8fa434f58a23c6 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 1 Jul 2021 21:04:54 +0530 Subject: [PATCH 362/864] show campaign import warnings --- src/client/catalog.js | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/client/catalog.js b/src/client/catalog.js index bef9e324..d12fd203 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -20,7 +20,7 @@ const http = require('https'); const fs = require('fs'); const { got } = require('./apiutils'); const { - constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError, + constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError, printTable, } = require('../commands/utils'); const createEndpoints = baseUri => ({ @@ -285,17 +285,25 @@ module.exports = class Catalog { method: 'POST', headers, }); - - form.pipe(req) - .on('response', (response) => { - if (response.statusCode === 200 || response.statusCode === 201) { - printSuccess('Campaign imported successfully'); - } else { - printError(`Campaign file ${filepath} import failed with error: [${response.statusCode}] ${response.statusMessage}`); - } - }).on('error', (err) => { - printError(err); - }); + form.pipe(req); + req.on('response', (response) => { + if (response.statusCode === 200 || response.statusCode === 201) { + response.setEncoding('utf-8'); + response.on('data', (data) => { + const importReport = JSON.parse(data); + if (!importReport.warnings || importReport.warnings.length === 0) { + printSuccess('Campaign imported successfully'); + } else { + printSuccess('Campaign imported with warnings'); + printTable([{ column: 'Warnings', field: 'message' }], importReport.warnings.map(w => ({ message: w }))); + } + }); + } else { + printError(`Campaign file ${filepath} import failed with error: [${response.statusCode}] ${response.statusMessage}`); + } + }).on('error', (err) => { + printError(err); + }); } listMissions(projectId, token, campaign) { From 586809ace981455fef64e9e64acb2eb5647b1fa4 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 30 Jun 2021 15:42:46 -0500 Subject: [PATCH 363/864] FAB-2308 Add updated list actionation API supports: correlationId, status, sort, limit, skip,... --- bin/cortex-agents.js | 9 +++++++-- src/client/agents.js | 2 +- src/commands/agents.js | 23 +++++++++++++++-------- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 7d093451..fd8f3dd6 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -130,7 +130,7 @@ program // List activations program - .command('list-activations ') + .command('list-activations') .description('List activations for an agent') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') @@ -138,14 +138,19 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--agentName [string]', 'Query activations by agentName') .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') + .option('--correlationId [string]', 'Query activations with same correlationId') .option('--status [status]', 'Filters activations by status [complete|error].') + .option('--limit [limit]', 'Limit number of records', '100') + .option('--offset [offset]', 'Skip number of records', '0') + .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') .action(withCompatibilityCheck((agentName, options) => { try { - new ListActivationsCommand(program).execute(agentName, options); + new ListActivationsCommand(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/client/agents.js b/src/client/agents.js index f642c4d0..da5cb7ba 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -71,7 +71,7 @@ module.exports = class Agents { listActivations(projectId, token, params) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${params.agentName}/activations`; + const endpoint = `${this.endpointV4(projectId)}/activations`; debug('listActivations(%s) => %s', params.agentName, endpoint); const opts = { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/agents.js b/src/commands/agents.js index 571690cc..274eba86 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -205,7 +205,10 @@ module.exports.ListActivationsCommand = class { this.program = program; } - execute(agentName, options) { + execute(options) { + if (_.isEmpty(options.agentName) && _.isEmpty(options.correlationId) && _.isEmpty(options.status)) { + printError('Either --agentName, --correlationId, or --status must be provided', options); + } const profile = loadProfile(options.profile); debug('%s.listActivations(%s)', profile.name, agentName); @@ -216,10 +219,12 @@ module.exports.ListActivationsCommand = class { if (options.startAfter) queryParams.startAfter = options.startAfter; if (options.endBefore) queryParams.endBefore = options.endBefore; if (options.endAfter) queryParams.endAfter = options.endAfter; - if (options.status) queryParams.status = options.status; - // TODO limit + skip + if (options.status) queryParams.status = _.toUpper(options.status); if (options.correlationId) queryParams.correlationId = options.correlationId; - queryParams.agentName = agentName; + if (options.agentName) queryParams.agentName = options.agentName; + if (options.limit) queryParams.limit = options.limit; + if (options.offset) queryParams.offset = options.offset; + if (options.sort) queryParams.sort = _.toLower(options.sort); agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { @@ -230,16 +235,18 @@ module.exports.ListActivationsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Activation Id', field: 'activationId', width: 38 }, + { column: 'Activation Id', field: 'activationId', width: 40 }, + { column: 'Status', field: 'status', width: 20 }, + { column: 'Started', field: 'start', width: 65 }, ]; - printTable(tableSpec, _.map(result, r => ({ activationId: r }))); + printTable(tableSpec, _.map(result, o => ({ ...o, start: o.start ? moment(o.start).fromNow() : '-' }))); } } else { - printError(`Failed to list activations for agent "${agentName}": ${response.message}`, options); + printError(`Failed to list activations: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list activations for agent "${agentName}": ${err.status} ${err.message}`, options); + printError(`Failed to list activations: ${err.status} ${err.message}`, options); }); } }; From bcd8a7714a6380044b414d57682b4ec9b3c2fad9 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 6 Jul 2021 13:25:32 -0500 Subject: [PATCH 364/864] Fix merge issue.. --- bin/cortex-agents.js | 2 +- src/commands/agents.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index fd8f3dd6..f45f6f39 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -148,7 +148,7 @@ program .option('--limit [limit]', 'Limit number of records', '100') .option('--offset [offset]', 'Skip number of records', '0') .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') - .action(withCompatibilityCheck((agentName, options) => { + .action(withCompatibilityCheck((options) => { try { new ListActivationsCommand(program).execute(options); } catch (err) { diff --git a/src/commands/agents.js b/src/commands/agents.js index 274eba86..ae91bb45 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -210,7 +210,7 @@ module.exports.ListActivationsCommand = class { printError('Either --agentName, --correlationId, or --status must be provided', options); } const profile = loadProfile(options.profile); - debug('%s.listActivations(%s)', profile.name, agentName); + debug('%s.listActivations(%s)', profile.name); const agents = new Agents(profile.url); // TODO validate param types? From 6a6d843de30b8b899f167def97ffe96aa79edf27 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Wed, 7 Jul 2021 19:35:27 +0530 Subject: [PATCH 365/864] remove empty lines --- src/commands/utils.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 889c9c9a..715022dc 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -323,4 +323,3 @@ module.exports.RUNTABLEFORMAT = [ { column: 'Took', field: 'took', width: 50 }, { column: 'Modified', field: '_updatedAt', width: 26 }, ]; - From e16b0bddad36bf59ab6f2a00beb1553b8b827130 Mon Sep 17 00:00:00 2001 From: "nagarjuna.j" Date: Tue, 13 Jul 2021 18:48:02 +0530 Subject: [PATCH 366/864] Content changes --- src/commands/content.js | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/commands/content.js b/src/commands/content.js index f8a67984..b9f25067 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -162,16 +162,9 @@ module.exports.DownloadContent = class DownloadContent { const content = new Content(profile.url); const showProgress = !!options.progress; - content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).then((response) => { - if (response.success) { - // messages need to be on stderr as content is streamed to stdout - console.error(response.message); - } else { - printError(`Failed to download content: ${response.status} ${response.message}`, options); - } - }).catch((err) => { + content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).catch((err) => { debug(err); printError(`Failed to download content: ${err.status} ${err.message}`, options); }); } -}; +}; \ No newline at end of file From 6dfeeb1996825262039206ca23e2a5b35a8396ee Mon Sep 17 00:00:00 2001 From: "nagarjuna.j" Date: Tue, 13 Jul 2021 18:54:42 +0530 Subject: [PATCH 367/864] Adding New Line At the End - Suggestion from npm test --- src/commands/content.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/content.js b/src/commands/content.js index b9f25067..e267a8e0 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -167,4 +167,4 @@ module.exports.DownloadContent = class DownloadContent { printError(`Failed to download content: ${err.status} ${err.message}`, options); }); } -}; \ No newline at end of file +}; From 5d66d168e58c53d55f5daa77d65d4b5e65cb3afa Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 14 Jul 2021 17:16:22 +0530 Subject: [PATCH 368/864] deploy campaign and connection command --- bin/cortex-deploy.js | 37 ++++++++- package-lock.json | 99 ++++++++++++++++++----- package.json | 2 + src/client/assessments.js | 13 +++ src/client/catalog.js | 30 ++++--- src/commands/deploy.js | 164 ++++++++++++++++++++++++++++++++------ 6 files changed, 289 insertions(+), 56 deletions(-) diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index 95f9e9b7..9a1b23da 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -23,6 +23,8 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { DeploySnapshotCommand, + DeployCampaignCommand, + DeployConnectionCommand, } = require('../src/commands/deploy'); program.description('Export Cortex artifacts for deployment'); @@ -37,9 +39,40 @@ program .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for snapshot export format') .option('-f, --force', 'Force delete existing exported files') - .action(withCompatibilityCheck((skillDefinition, options) => { + .action(withCompatibilityCheck((snapshotIds, options) => { try { - new DeploySnapshotCommand(program).execute(skillDefinition, options); + new DeploySnapshotCommand(program).execute(snapshotIds, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('campaign ') + .description('Export Campaigns for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--deployable', 'Export only ready to deploy Campaigns') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('connection ') + .description('Export Connection for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DeployConnectionCommand(program).execute(campaignName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/package-lock.json b/package-lock.json index 23865c7f..3e239f3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -291,6 +291,15 @@ "@types/node": "*" } }, + "@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "optional": true, + "requires": { + "@types/node": "*" + } + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -736,6 +745,11 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, "builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", @@ -798,6 +812,16 @@ "lowercase-keys": "^2.0.0", "normalize-url": "^4.1.0", "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } } }, "call-bind": { @@ -1876,6 +1900,16 @@ "onetime": "^5.1.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } } }, "expand-brackets": { @@ -2039,6 +2073,27 @@ "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2089,6 +2144,14 @@ "reusify": "^1.0.4" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -2297,12 +2360,9 @@ } }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "get-value": { "version": "2.0.6", @@ -2836,12 +2896,6 @@ "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", "dev": true }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -2996,7 +3050,7 @@ }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", "dev": true }, @@ -4739,6 +4793,11 @@ "through": "~2.3" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", @@ -5132,11 +5191,6 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, "resolve": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", @@ -6732,6 +6786,15 @@ } } } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } } } } diff --git a/package.json b/package.json index 39d46d38..5cefe101 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,8 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "@hapi/joi": "17.1.1", + "yauzl": "2.10.0", + "get-stream": "6.0.1", "boxen": "4.2.0", "chalk": "4.0.0", "co": "4.6.0", diff --git a/src/client/assessments.js b/src/client/assessments.js index b6820743..5ef952d5 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -27,6 +27,19 @@ module.exports = class Assessments { this.endpointV4 = `${cortexUrl}/fabric/v4/impactassessment`; } + getDependenciesOfResource(token, project, type, name) { + const url = `${this.endpointV4}/dependencies/${project}/${type}/${name}`; + debug('queryResources => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => res) + .catch(err => constructError(err)); + } + queryResources(token, name, projectId, type, skip, limit) { const url = `${this.endpointV4}/resources?${querystring.stringify({ projectId, diff --git a/src/client/catalog.js b/src/client/catalog.js index d12fd203..12e3d705 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -249,19 +249,23 @@ module.exports = class Catalog { const url = `${this.endpoints.campaigns(projectId)}${campaignName}/export?deployable=${deployable}`; debug('exportCampaign(%s) => %s', campaignName, url); - return http.get(url, - { headers: { Authorization: `Bearer ${token}` } }, - (response) => { - if (response.statusCode === 200 || response.statusCode === 201) { - const path = `./${outputFileName || `${campaignName}.amp`}`; - const file = fs.createWriteStream(path); - response.pipe(file); - printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`); - } else { - printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`); - } - }).on('error', (e) => { - printError(e); + return new Promise((resolve, reject) => { + http.get(url, + { headers: { Authorization: `Bearer ${token}` } }, + (response) => { + if (response.statusCode === 200 || response.statusCode === 201) { + const path = `./${outputFileName || `${campaignName}.amp`}`; + const file = fs.createWriteStream(path); + response.pipe(file); + resolve(path); + printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`); + } else { + printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`); + } + }).on('error', (e) => { + reject(e); + printError(e); + }); }); } diff --git a/src/commands/deploy.js b/src/commands/deploy.js index bb7dd3ef..cd35717f 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -15,12 +15,53 @@ */ const debug = require('debug')('cortex:cli'); const path = require('path'); +const fs = require('fs'); +const getStream = require('get-stream'); +const yauzl = require('yauzl'); +const yaml = require('js-yaml'); const { loadProfile } = require('../config'); const Agents = require('../client/agents'); +const Catalog = require('../client/catalog'); +const Assessments = require('../client/assessments'); +const Connections = require('../client/connections'); + +const _ = { + get: require('lodash/get'), + set: require('lodash/set'), + uniq: require('lodash/uniq'), +}; const { - printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, + printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, filterObject, } = require('./utils'); +const artifactsDir = '.fabric'; +const manifestFile = 'fabric.yaml'; +const manifestMeta = { + version: 1, + kind: 'deployment-manifest', + cortex: {}, +}; + +function updateManifest(filepaths) { + const manifest = fileExists(manifestFile) ? yaml.safeLoad(fs.readFileSync(manifestFile).toString()) : manifestMeta; + Object.keys(filepaths).forEach((type) => { + const kind = type.toLowerCase(); + const entries = [..._.get(manifest, `cortex.${kind}`, []), ...filepaths[type]]; + _.set(manifest, `cortex.${kind}`, _.uniq(entries)); + }); + return manifest; +} + +async function addDependencies(url, token, project, resourceType, resourceName) { + const assessments = new Assessments(url); + const dependencies = await assessments.getDependenciesOfResource(token, project, resourceType, resourceName); + const depsFilePath = path.join(artifactsDir, resourceName, '_dependencies.json'); + writeToFile(JSON.stringify(dependencies), depsFilePath); + const depsManifest = {}; + depsManifest[`_dependencies.${resourceType}.${resourceName}`] = [depsFilePath]; + const manifest = updateManifest(depsManifest); + writeToFile(jsonToYaml(manifest), manifestFile); +} /** * Cortex deploy command is to export Cortex artifacts (agent, snapshot, skill, action etc) for CI/CD deployment. This command: @@ -49,33 +90,22 @@ module.exports.DeploySnapshotCommand = class { } execute(snapshotIds, options) { - const exportPath = '.fabric'; - const manifestFile = 'fabric.yaml'; - - if (fileExists(exportPath) || fileExists(manifestFile)) { - if (options.force) { - deleteFile(exportPath); - deleteFile(manifestFile); - printSuccess(`Deleted ${exportPath} and ${manifestFile}`); - } else { - printError(`Aborting, because export path ${exportPath} or manifest file ${manifestFile} exists. Use -f option to force delete.`); - } - } const profile = loadProfile(options.profile); + const project = options.project || profile.project; debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); const agents = new Agents(profile.url); const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { - promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((result) => { - result = JSON.parse(result); + promises.push(agents.describeAgentSnapshot(project, profile.token, snapshotId).then((response) => { + let result = JSON.parse(response); result = cleanInternalFields(result); let filename = `${snapshotId}.json`; if (options.yaml) { result = jsonToYaml(result); filename = `${snapshotId}.yaml`; } - const filepath = path.join(exportPath, 'snapshots', filename); + const filepath = path.join(artifactsDir, 'snapshots', filename); writeToFile(result, filepath); printSuccess(`Successfully exported agent snapshot ${filepath}`); return filepath; @@ -85,15 +115,103 @@ module.exports.DeploySnapshotCommand = class { }); Promise.all(promises).then((result) => { - const manifest = { - version: 1, - kind: 'deployment-manifest', - cortex: { - snapshots: result, - }, - }; + const manifest = updateManifest('snapshots', result); writeToFile(jsonToYaml(manifest), manifestFile); printSuccess(`Successfully generated manifest file ${manifestFile}`); }); } }; + +module.exports.DeployCampaignCommand = class { + constructor(program) { + this.program = program; + } + + processResource(project, campaign, stream, filename, entries) { + return new Promise((resolve, reject) => { + getStream.buffer(stream).then((content) => { + let type; + let filepath; + if (filename.endsWith('.yml') || filename.endsWith('.yaml')) { + const resource = yaml.safeLoad(content); + type = resource.kind; + filepath = path.join(artifactsDir, campaign, filename); + writeToFile(yaml.safeDump(resource), filepath); + } else { + type = path.extname(filename).replace(/\./g, ''); + filepath = path.join(artifactsDir, campaign, filename); + writeToFile(content, filepath); + } + const files = entries[type] || []; + files.push(filepath); + entries[type] = files; + resolve(filepath); + }).catch(e => reject(e)); + }); + } + + async execute(campaignName, options) { + const profile = loadProfile(options.profile); + const project = options.project || profile.project; + debug('%s.exportDeploymentCampaigns(%s)', profile.name, campaignName); + + const catalog = new Catalog(profile.url); + await catalog.exportCampaign(project, profile.token, campaignName, options.deployable, `${campaignName}.zip`); + const filepaths = {}; + const promises = []; + + yauzl.open('x.zip', { lazyEntries: true }, (err, zipfile) => { + if (err) { + throw err; + } + zipfile.readEntry(); + zipfile.on('entry', (entry) => { + zipfile.openReadStream(entry, (e, readStream) => { + if (e) { + printError(e); + } + promises.push(this.processResource(project, campaignName, readStream, entry.fileName, filepaths)); + zipfile.readEntry(); + }); + }); + zipfile.on('error', e => printError(e)); + zipfile.once('end', async () => { + await addDependencies(profile.url, profile.token, project, 'Campaign', campaignName); + Promise.all(promises).then(() => { + const manifest = updateManifest(filepaths); + writeToFile(jsonToYaml(manifest), manifestFile); + printSuccess(`Successfully updated manifest file ${manifestFile}`); + }); + deleteFile(`${campaignName}.zip`); + }); + }); + } +}; + +module.exports.DeployConnectionCommand = class { + constructor(program) { + this.program = program; + } + + execute(connectionName, options) { + const profile = loadProfile(options.profile); + const project = options.project || profile.project; + debug('%s.exportDeploymentConnection%s)', profile.name, connectionName); + + const connection = new Connections(profile.url); + connection.describeConnection(project, profile.token, connectionName).then(async (response) => { + if (response.success) { + const result = filterObject(response.result, options); + const connectionDesc = JSON.stringify(result, null, 2); + const filepath = path.join(artifactsDir, 'connections', `${connectionName}.json`); + writeToFile(connectionDesc, filepath); + updateManifest({ connection: [filepath] }); + await addDependencies(profile.url, profile.token, project, 'Connection', connectionName); + } else { + printError(`Failed to export connection ${connectionName}: ${response.message}`, options); + } + }).catch((err) => { + printError(`Failed to export connection ${connectionName}: ${err.status} ${err.message}`, options); + }); + } +}; From c8d009f9a76e9dd3b46c74494cfda8de3e6af440 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 14 Jul 2021 19:05:22 +0530 Subject: [PATCH 369/864] overwrite option in create assessment --- bin/cortex-assessments.js | 1 + src/client/assessments.js | 3 ++- src/commands/assessments.js | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index e3447e20..ed0bc1e5 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -82,6 +82,7 @@ program .option('--scope [projects]', 'Assessment scope projects (comma separated values)') .option('--component [Cortex component name]', 'Cortex component name') .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') + .option('--overwrite [boolean]', 'Overwrite existing assessment, if exists') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML format') diff --git a/src/client/assessments.js b/src/client/assessments.js index b6820743..4081483e 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -59,7 +59,7 @@ module.exports = class Assessments { .catch(err => constructError(err)); } - createAssessment(token, name, title, description, scope, componentName, componentTypes) { + createAssessment(token, name, title, description, scope, componentName, componentTypes, overwrite) { const url = `${this.endpointV4}/assessments`; debug('createAssessment => %s', url); return got @@ -73,6 +73,7 @@ module.exports = class Assessments { scope, componentName, componentTypes, + overwrite, }), }).json() .then(res => res) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 74751d34..59edcf86 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -114,7 +114,8 @@ module.exports.CreateAssessmentCommand = class { } client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, options.description || assessment.description, options.scope || assessment.scope, - options.component || assessment.component, options.type || assessment.type) + options.component || assessment.component, options.type || assessment.type, + options.overwrite || assessment.overwrite) .then((response) => { if (response.success === false) throw response; if (response.success) { From 275b1103d6dc7a6b03be482142d4e96ae5604551 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 19 Jul 2021 18:44:11 +0530 Subject: [PATCH 370/864] dependency tree command in assessments --- bin/cortex-assessments.js | 20 ++++++++++++++++++++ src/commands/assessments.js | 31 +++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index e3447e20..52879b8f 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -31,6 +31,7 @@ const { ListAssessmentReportCommand, GetAssessmentReportCommand, ExportAssessmentReportCommand, + DependencyTreeCommand, } = require('../src/commands/assessments'); program.description('Work with Cortex Assessments'); @@ -50,6 +51,25 @@ program } })); +program + .command('dependency-tree') + .description('Dependencies of a resource') + .storeOptionsAsProperties(false) + .requiredOption('--scope [project]', 'project name of the resource') + .requiredOption('--name [Cortex component name]', 'Cortex component name') + .requiredOption('--type [Cortex component types]', 'Cortex resource type') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck((options) => { + try { + new DependencyTreeCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program .command('list-resources') .description('List matching resources') diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 74751d34..daa12018 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -93,6 +93,37 @@ module.exports.ListResourceTypesCommand = class { } }; +module.exports.DependencyTreeCommand = class { + constructor(program) { + this.program = program; + } + + execute(command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.DependencyTreeCommand()', profile.name); + + const client = new Assessments(profile.url); + client.getDependenciesOfResource(profile.token, options.scope, options.type, options.name) + .then((response) => { + if (response.success === false) throw response; + if (options.json) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'resourceName' }, + { column: 'Title', field: 'resourceTitle' }, + { column: 'Resource Type', field: 'resourceType' }, + ]; + printTable(tableSpec, response.data); + } + }) + .catch((err) => { + printError(`Failed to list dependency Cortex resource: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.CreateAssessmentCommand = class { constructor(program) { this.program = program; From f6f2b9f8f8aaf73e1d3bfda257165131228f2077 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 20 Jul 2021 12:03:38 +0530 Subject: [PATCH 371/864] PR review comments --- bin/cortex-deploy.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index 9a1b23da..e3bb723e 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -70,9 +70,9 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((campaignName, options) => { + .action(withCompatibilityCheck((connectionName, options) => { try { - new DeployConnectionCommand(program).execute(campaignName, options); + new DeployConnectionCommand(program).execute(connectionName, options); } catch (err) { console.error(chalk.red(err.message)); } From 3246e90d6d47dea66f42f827235e75e258b5b77c Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 20 Jul 2021 18:09:23 +0530 Subject: [PATCH 372/864] encode names to handle / --- src/client/assessments.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index 05376a24..80f8fea3 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -28,7 +28,7 @@ module.exports = class Assessments { } getDependenciesOfResource(token, project, type, name) { - const url = `${this.endpointV4}/dependencies/${project}/${type}/${name}`; + const url = `${this.endpointV4}/dependencies/${encodeURIComponent(project)}/${encodeURIComponent(type)}/${encodeURIComponent(name)}`; debug('queryResources => %s', url); return got .get(url, { @@ -43,7 +43,7 @@ module.exports = class Assessments { queryResources(token, name, projectId, type, skip, limit) { const url = `${this.endpointV4}/resources?${querystring.stringify({ projectId, - name, + name: encodeURIComponent(name), type, skip, limit, @@ -80,11 +80,11 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, 'user-agent': getUserAgent(), body: JSON.stringify({ - name, + name: encodeURIComponent(name), title, description, - scope, - componentName, + scope: encodeURIComponent(scope), + componentName: encodeURIComponent(componentName), componentTypes, overwrite, }), @@ -106,7 +106,7 @@ module.exports = class Assessments { } getAssessment(token, name) { - const url = `${this.endpointV4}/assessments/${name}`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}`; debug('getAssessment => %s', url); return got .get(url, { @@ -118,7 +118,7 @@ module.exports = class Assessments { } deleteAssessment(token, name) { - const url = `${this.endpointV4}/assessments/${name}`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}`; debug('deleteAssessment => %s', url); return got .delete(url, { @@ -130,7 +130,7 @@ module.exports = class Assessments { } runAssessment(token, name) { - const url = `${this.endpointV4}/assessments/${name}/run`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/run`; debug('runAssessment => %s', url); return got .post(url, { @@ -142,7 +142,7 @@ module.exports = class Assessments { } listAssessmentReports(token, name) { - const url = `${this.endpointV4}/assessments/${name}/reports`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/reports`; debug('listAssessmentReports => %s', url); return got .get(url, { @@ -154,7 +154,7 @@ module.exports = class Assessments { } getAssessmentReport(token, name, reportId) { - const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/reports/${encodeURIComponent(reportId)}`; debug('getAssessmentReport => %s', url); return got .get(url, { @@ -167,9 +167,9 @@ module.exports = class Assessments { exportAssessmentReport(token, name, reportId, types) { const options = { color: 'on' }; - const file = `${reportId}.csv`; + const file = `${reportId.split('/').pop()}.csv`; const filter = types && types.trim() ? `?components=${types.trim()}` : ''; - const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}/export${filter}`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/reports/${encodeURIComponent(reportId)}/export${filter}`; debug('exportAssessmentReport => %s', url); const rs = got.stream(url, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent() }); From 02e830907c5dbed21ae1e084b443b6569dcdb1ce Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 22 Jul 2021 15:20:29 +0530 Subject: [PATCH 373/864] encode only names to handle / --- src/client/assessments.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index 80f8fea3..3eb59b7d 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -28,7 +28,7 @@ module.exports = class Assessments { } getDependenciesOfResource(token, project, type, name) { - const url = `${this.endpointV4}/dependencies/${encodeURIComponent(project)}/${encodeURIComponent(type)}/${encodeURIComponent(name)}`; + const url = `${this.endpointV4}/dependencies/${project}/${type}/${encodeURIComponent(name)}`; debug('queryResources => %s', url); return got .get(url, { @@ -83,7 +83,7 @@ module.exports = class Assessments { name: encodeURIComponent(name), title, description, - scope: encodeURIComponent(scope), + scope, componentName: encodeURIComponent(componentName), componentTypes, overwrite, From adc228418d0f02d1d072c7db2e16ae9c39098a5c Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 22 Jul 2021 16:46:25 +0530 Subject: [PATCH 374/864] undeploy campaign and mission commands --- bin/cortex-campaigns.js | 16 +++++++++++++ bin/cortex-missions.js | 16 +++++++++++++ src/client/catalog.js | 28 ++++++++++++++++++++++ src/commands/campaigns.js | 50 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 110 insertions(+) diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 92618bea..7ab6f1c4 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -26,6 +26,7 @@ const { DescribeCampaignCommand, ExportCampaignCommand, ImportCampaignCommand, + UndeployCampaignCommand, } = require('../src/commands/campaigns'); program.description('Work with Cortex Campaigns'); @@ -100,4 +101,19 @@ program } })); +program + .command('undeploy ') + .description('Undeploy Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new UndeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 32b0bee2..9bdee54a 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -25,6 +25,7 @@ const { ListMissionsCommand, DeployMissionCommand, DescribeMissionCommand, + UndeployMissionCommand, } = require('../src/commands/campaigns'); const { InvokeAgentServiceCommand } = require('../src/commands/agents'); @@ -95,4 +96,19 @@ program } })); +program + .command('undeploy ') + .description('Undeploy the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new UndeployMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/catalog.js b/src/client/catalog.js index 12e3d705..9747e189 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -310,6 +310,34 @@ module.exports = class Catalog { }); } + undeployCampaign(projectId, token, campaign) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/undeploy`; + debug('undeployCampaign() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + + undeployMission(projectId, token, campaign, mission) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions/${mission}/undeploy`; + debug('undeployMissions() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + listMissions(projectId, token, campaign) { checkProject(projectId); const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions`; diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 733cf674..6cffef6b 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -112,6 +112,56 @@ module.exports.ImportCampaignCommand = class ImportCampaignCommand { } }; +module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { + constructor(program) { + this.program = program; + } + + execute(campaignName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeUndeployCampaignCommand(%s)', profile.name, campaignName); + const cli = new Catalog(profile.url); + + try { + cli.undeployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { + if (response.success === false) throw response; + const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); + printSuccess(output, options); + }).catch((e) => { + printError(`Failed to undeploy campaign: ${e.status} ${e.message}`, options); + }); + } catch (err) { + printError(`Failed to undeploy campaign: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.UndeployMissionCommand = class UndeployMissionCommand { + constructor(program) { + this.program = program; + } + + execute(campaignName, missionName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeUndeployMissionCommand(%s)', profile.name, missionName); + const cli = new Catalog(profile.url); + + try { + cli.undeployMission(options.project || profile.project, profile.token, campaignName, missionName).then((response) => { + if (response.success === false) throw response; + const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); + printSuccess(output, options); + }).catch((e) => { + printError(`Failed to undeploy mission: ${e.status} ${e.message}`, options); + }); + } catch (err) { + printError(`Failed to undeploy mission: ${err.status} ${err.message}`, options); + } + } +}; + module.exports.ListMissionsCommand = class ListMissionsCommand { constructor(program) { this.program = program; From f663a11e3cfb2eec8bcf866b65ac8f2094aebda8 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 22 Jul 2021 19:47:26 +0530 Subject: [PATCH 375/864] campaign deploy --- bin/cortex-campaigns.js | 16 ++++++++++++++++ src/client/catalog.js | 14 ++++++++++++++ src/commands/campaigns.js | 25 +++++++++++++++++++++++++ 3 files changed, 55 insertions(+) diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 7ab6f1c4..052e50ae 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -26,6 +26,7 @@ const { DescribeCampaignCommand, ExportCampaignCommand, ImportCampaignCommand, + DeployCampaignCommand, UndeployCampaignCommand, } = require('../src/commands/campaigns'); @@ -101,6 +102,21 @@ program } })); +program + .command('deploy ') + .description('Deploy Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program .command('undeploy ') .description('Undeploy Campaign') diff --git a/src/client/catalog.js b/src/client/catalog.js index 9747e189..54137ab8 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -324,6 +324,20 @@ module.exports = class Catalog { .catch(err => constructError(err)); } + deployCampaign(projectId, token, campaign) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/deploy`; + debug('deployCampaign() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + undeployMission(projectId, token, campaign, mission) { checkProject(projectId); const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions/${mission}/undeploy`; diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 6cffef6b..3b5376ea 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -112,6 +112,31 @@ module.exports.ImportCampaignCommand = class ImportCampaignCommand { } }; +module.exports.DeployCampaignCommand = class DeployCampaignCommand { + constructor(program) { + this.program = program; + } + + execute(campaignName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDeployCampaignCommand(%s)', profile.name, campaignName); + const cli = new Catalog(profile.url); + + try { + cli.deployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { + if (response.success === false) throw response; + const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); + printSuccess(output, options); + }).catch((e) => { + printError(`Failed to deploy campaign: ${e.status} ${e.message}`, options); + }); + } catch (err) { + printError(`Failed to deploy campaign: ${err.status} ${err.message}`, options); + } + } +}; + module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { constructor(program) { this.program = program; From ee5e838789add282a4d1f40889eed2e320bef74d Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 23 Jul 2021 15:15:49 +0530 Subject: [PATCH 376/864] uri encoding fix --- src/client/assessments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index 3eb59b7d..b5863d7a 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -43,7 +43,7 @@ module.exports = class Assessments { queryResources(token, name, projectId, type, skip, limit) { const url = `${this.endpointV4}/resources?${querystring.stringify({ projectId, - name: encodeURIComponent(name), + name, type, skip, limit, From 8227bbc0a356480900c31d2312641ba1312fc29b Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 26 Jul 2021 15:43:51 +0530 Subject: [PATCH 377/864] help text update --- bin/cortex-assessments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 132da1b1..0ac298e3 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -100,7 +100,7 @@ program .option('--title [title]', 'Assessment title') .option('--description [description]', 'Assessment description') .option('--scope [projects]', 'Assessment scope projects (comma separated values)') - .option('--component [Cortex component name]', 'Cortex component name') + .option('--component [Cortex component name]', 'Cortex component name (case insensitive regex/substring match)') .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') .option('--overwrite [boolean]', 'Overwrite existing assessment, if exists') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') From 09a7d15c2f738466bf5cb97efedefb01250601b6 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 26 Jul 2021 20:55:20 +0530 Subject: [PATCH 378/864] warnings response formatting --- src/commands/campaigns.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 3b5376ea..8f09fe18 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -127,7 +127,12 @@ module.exports.DeployCampaignCommand = class DeployCampaignCommand { cli.deployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { if (response.success === false) throw response; const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); - printSuccess(output, options); + if (!response.data.warnings || response.data.warnings.length === 0) { + printSuccess(output, options); + } else { + printError('Campaign deployed with warnings', options, false); + printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map(w => ({ message: w }))); + } }).catch((e) => { printError(`Failed to deploy campaign: ${e.status} ${e.message}`, options); }); @@ -152,7 +157,12 @@ module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { cli.undeployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { if (response.success === false) throw response; const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); - printSuccess(output, options); + if (!response.data.warnings || response.data.warnings.length === 0) { + printSuccess(output, options); + } else { + printError('Campaign undeployed with warnings', options, false); + printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map(w => ({ message: w }))); + } }).catch((e) => { printError(`Failed to undeploy campaign: ${e.status} ${e.message}`, options); }); From b2df6f8564e4ed3960f757be4511540535113078 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 27 Jul 2021 17:49:11 +0530 Subject: [PATCH 379/864] type fix --- src/commands/deploy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index cd35717f..af4f457b 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -160,7 +160,7 @@ module.exports.DeployCampaignCommand = class { const filepaths = {}; const promises = []; - yauzl.open('x.zip', { lazyEntries: true }, (err, zipfile) => { + yauzl.open(`${campaignName}.zip`, { lazyEntries: true }, (err, zipfile) => { if (err) { throw err; } From 100cda0a4268727bfcedcf61a97166f6da3675df Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 27 Jul 2021 18:39:22 +0530 Subject: [PATCH 380/864] typo fixes --- bin/cortex-assessments.js | 2 +- src/client/assessments.js | 2 +- src/commands/assessments.js | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 0ac298e3..6f29fa11 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -57,7 +57,7 @@ program .storeOptionsAsProperties(false) .requiredOption('--scope [project]', 'project name of the resource') .requiredOption('--name [Cortex component name]', 'Cortex component name') - .requiredOption('--type [Cortex component types]', 'Cortex resource type') + .requiredOption('--type [Cortex component type]', 'Cortex resource type') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/src/client/assessments.js b/src/client/assessments.js index b5863d7a..26f32364 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -29,7 +29,7 @@ module.exports = class Assessments { getDependenciesOfResource(token, project, type, name) { const url = `${this.endpointV4}/dependencies/${project}/${type}/${encodeURIComponent(name)}`; - debug('queryResources => %s', url); + debug('dependencyTree => %s', url); return got .get(url, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 5357beda..732e9c7f 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -111,9 +111,9 @@ module.exports.DependencyTreeCommand = class { printSuccess(JSON.stringify(response, null, 2), options); } else { const tableSpec = [ - { column: 'Name', field: 'resourceName' }, - { column: 'Title', field: 'resourceTitle' }, - { column: 'Resource Type', field: 'resourceType' }, + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Resource Type', field: 'type' }, ]; printTable(tableSpec, response.data); } From e7056c4d7ab8a7f6624182f86caf5776170da7c4 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 28 Jul 2021 12:10:28 +0530 Subject: [PATCH 381/864] encoding not required for request body params and null values will be converted to "undefined" cause them so save as valid value for required fields --- src/client/assessments.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index 26f32364..25ac9028 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -80,11 +80,11 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, 'user-agent': getUserAgent(), body: JSON.stringify({ - name: encodeURIComponent(name), + name, title, description, scope, - componentName: encodeURIComponent(componentName), + componentName, componentTypes, overwrite, }), From 6d7b3e9ba1c48976df2e594643554bc7f9036174 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 28 Jul 2021 19:32:21 +0530 Subject: [PATCH 382/864] export manifest fixes --- bin/cortex-missions.js | 2 +- src/commands/deploy.js | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 32b0bee2..27801132 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -89,7 +89,7 @@ program .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { - new InvokeAgentServiceCommand(program).execute(missionName, 'router_service', options); + new InvokeAgentServiceCommand(program).execute(missionName, 'cohort_manager_service', options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/commands/deploy.js b/src/commands/deploy.js index cd35717f..c84f92af 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -49,7 +49,7 @@ function updateManifest(filepaths) { const entries = [..._.get(manifest, `cortex.${kind}`, []), ...filepaths[type]]; _.set(manifest, `cortex.${kind}`, _.uniq(entries)); }); - return manifest; + writeToFile(jsonToYaml(manifest), manifestFile); } async function addDependencies(url, token, project, resourceType, resourceName) { @@ -59,8 +59,7 @@ async function addDependencies(url, token, project, resourceType, resourceName) writeToFile(JSON.stringify(dependencies), depsFilePath); const depsManifest = {}; depsManifest[`_dependencies.${resourceType}.${resourceName}`] = [depsFilePath]; - const manifest = updateManifest(depsManifest); - writeToFile(jsonToYaml(manifest), manifestFile); + updateManifest(depsManifest); } /** @@ -115,8 +114,7 @@ module.exports.DeploySnapshotCommand = class { }); Promise.all(promises).then((result) => { - const manifest = updateManifest('snapshots', result); - writeToFile(jsonToYaml(manifest), manifestFile); + updateManifest('snapshots', result); printSuccess(`Successfully generated manifest file ${manifestFile}`); }); } @@ -178,8 +176,7 @@ module.exports.DeployCampaignCommand = class { zipfile.once('end', async () => { await addDependencies(profile.url, profile.token, project, 'Campaign', campaignName); Promise.all(promises).then(() => { - const manifest = updateManifest(filepaths); - writeToFile(jsonToYaml(manifest), manifestFile); + updateManifest(filepaths); printSuccess(`Successfully updated manifest file ${manifestFile}`); }); deleteFile(`${campaignName}.zip`); @@ -202,11 +199,12 @@ module.exports.DeployConnectionCommand = class { connection.describeConnection(project, profile.token, connectionName).then(async (response) => { if (response.success) { const result = filterObject(response.result, options); - const connectionDesc = JSON.stringify(result, null, 2); + const connectionDesc = cleanInternalFields(result); const filepath = path.join(artifactsDir, 'connections', `${connectionName}.json`); writeToFile(connectionDesc, filepath); updateManifest({ connection: [filepath] }); await addDependencies(profile.url, profile.token, project, 'Connection', connectionName); + printSuccess(`Connection ${connectionName} exported successfully`); } else { printError(`Failed to export connection ${connectionName}: ${response.message}`, options); } From 1183a2dc98bd43bfee9528453186bc14d2230042 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 28 Jul 2021 19:42:27 +0530 Subject: [PATCH 383/864] export manifest fixes --- src/commands/deploy.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index c84f92af..d3310bb5 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -114,7 +114,7 @@ module.exports.DeploySnapshotCommand = class { }); Promise.all(promises).then((result) => { - updateManifest('snapshots', result); + updateManifest({ snapshots: result }); printSuccess(`Successfully generated manifest file ${manifestFile}`); }); } @@ -158,7 +158,7 @@ module.exports.DeployCampaignCommand = class { const filepaths = {}; const promises = []; - yauzl.open('x.zip', { lazyEntries: true }, (err, zipfile) => { + yauzl.open(`${campaignName}.zip`, { lazyEntries: true }, (err, zipfile) => { if (err) { throw err; } From 8f7ca2058a9b0de1162aadf0743af6f8f81f440b Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 28 Jul 2021 22:34:41 +0530 Subject: [PATCH 384/864] exclude system fields from exported artifacts --- src/commands/utils.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 715022dc..69342394 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -245,8 +245,10 @@ module.exports.formatValidationPath = (p) => { return res; }; +// connections get returns createdAt (not prefixed by _) field that cause saving exported connection to fail. Hence removing them manually +const systemFields = ['createdAt', 'updatedAt', 'createdBy', 'updatedBy']; module.exports.cleanInternalFields = jsobj => JSON.stringify(jsobj, (a, obj) => { - if (a.startsWith('_')) { + if (a.startsWith('_') || systemFields.includes(a)) { return undefined; } return obj; From fd1b6cb2255277c5840f8c969c4994211e846222 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 29 Jul 2021 14:05:27 +0530 Subject: [PATCH 385/864] url pattern conflict in catalog and phoenix --- src/client/assessments.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/client/assessments.js b/src/client/assessments.js index 25ac9028..ac2670ee 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -25,10 +25,11 @@ const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Assessments { constructor(cortexUrl) { this.endpointV4 = `${cortexUrl}/fabric/v4/impactassessment`; + this.endpointApiV4 = `${cortexUrl}/fabric/v4/dependencies`; } getDependenciesOfResource(token, project, type, name) { - const url = `${this.endpointV4}/dependencies/${project}/${type}/${encodeURIComponent(name)}`; + const url = `${this.endpointApiV4}/tree/${project}/${type}/${encodeURIComponent(name)}`; debug('dependencyTree => %s', url); return got .get(url, { From 7788422be5980806a69fd4bf37b377fb44052034 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Fri, 30 Jul 2021 14:30:45 -0500 Subject: [PATCH 386/864] =?UTF-8?q?Added=20`--report`=20option=20to=20get-?= =?UTF-8?q?activations=20command=20for=20more=20human=20rea=E2=80=A6=20(#3?= =?UTF-8?q?83)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added `--report` option to get-activations command for more human readable reporting * Make report output prettier Co-authored-by: Johan Gielstra --- bin/cortex-agents.js | 2 ++ src/client/agents.js | 5 ++++- src/commands/agents.js | 18 +++++++++++++++--- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index f45f6f39..9c9a5f94 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -116,9 +116,11 @@ program .description('Get dataset or service activation') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--json', 'Output results as JSON') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--verbose', 'Get debugging info in activation response') + .option('--report', 'Get additional debugging info in activation response') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { diff --git a/src/client/agents.js b/src/client/agents.js index da5cb7ba..f063b42f 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -52,7 +52,7 @@ module.exports = class Agents { .catch(err => constructError(err)); } - getActivation(projectId, token, activationId, verbose) { + getActivation(projectId, token, activationId, verbose, report) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); @@ -63,6 +63,9 @@ module.exports = class Agents { if (verbose) { opts.searchParams = { verbose: true }; } + if (report) { + opts.searchParams = { report: true }; + } return got .get(endpoint, opts).json() .then(result => ({ success: true, result })) diff --git a/src/commands/agents.js b/src/commands/agents.js index ae91bb45..4981cb74 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -184,12 +184,24 @@ module.exports.GetActivationCommand = class { execute(activationId, options) { const profile = loadProfile(options.profile); debug('%s.getActivation(%s)', profile.name, activationId); - const { verbose, project } = options; + const { report, verbose, project } = options; const agents = new Agents(profile.url); - agents.getActivation(project || profile.project, profile.token, activationId, verbose).then((response) => { + agents.getActivation(project || profile.project, profile.token, activationId, verbose, report).then((response) => { if (response.success) { const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + if (options.report && !options.json) { + const tableSpec = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Type', field: 'type', width: 20 }, + { column: 'Status', field: 'status', width: 20 }, + { column: 'Elapsed (ms)', field: 'elapsed', width: 30 }, + ]; + printSuccess(`Status: ${result.status}`); + printSuccess(`Elapsed Time (ms): ${result.elapsed}`); + printTable(tableSpec, result.transits); + } else { + return printSuccess(JSON.stringify(result, null, 2), options); + } } else { printError(`Failed to get activation ${activationId}: ${response.message}`, options); } From ae507f10840329eaccafbb66ee5c1c35d7492997 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 2 Aug 2021 15:07:19 +0530 Subject: [PATCH 387/864] response binary data events handling improvement --- src/client/catalog.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/catalog.js b/src/client/catalog.js index 54137ab8..c0397de1 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -256,11 +256,11 @@ module.exports = class Catalog { if (response.statusCode === 200 || response.statusCode === 201) { const path = `./${outputFileName || `${campaignName}.amp`}`; const file = fs.createWriteStream(path); - response.pipe(file); - resolve(path); + response.pipe(file).on('close', resolve).on('error', reject); printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`); } else { printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`); + reject({ status: response.statusCode }); } }).on('error', (e) => { reject(e); From 4be79f18351c7a6d75da077267e725ce75e93201 Mon Sep 17 00:00:00 2001 From: ljha-CS Date: Tue, 3 Aug 2021 12:34:35 +0530 Subject: [PATCH 388/864] fixing build pipeline ``` /work/pipelines/cortex5-cli/src/commands/agents.js 54:39 warning Assignment to property of function parameter 'd' no-param-reassign 189:120 error Expected to return a value at the end of arrow function consistent-return ``` --- src/commands/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 4981cb74..528f7dd2 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -200,7 +200,7 @@ module.exports.GetActivationCommand = class { printSuccess(`Elapsed Time (ms): ${result.elapsed}`); printTable(tableSpec, result.transits); } else { - return printSuccess(JSON.stringify(result, null, 2), options); + printSuccess(JSON.stringify(result, null, 2), options); } } else { printError(`Failed to get activation ${activationId}: ${response.message}`, options); From add2648b735a5d97b5a363b316bd967cc963f6e4 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 3 Aug 2021 23:16:50 -0500 Subject: [PATCH 389/864] Add title to get-activation report fix vulns --- package-lock.json | 38 ++++---------------------------------- src/commands/agents.js | 1 + 2 files changed, 5 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e239f3e..2a33ecd9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -291,15 +291,6 @@ "@types/node": "*" } }, - "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "optional": true, - "requires": { - "@types/node": "*" - } - }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -2073,27 +2064,6 @@ "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3050,7 +3020,7 @@ }, "is-negative-zero": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", "dev": true }, @@ -6158,9 +6128,9 @@ } }, "tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.5.tgz", + "integrity": "sha512-FiK6MQyyaqd5vHuUjbg/NpO8BuEGeSXcmlH7Pt/JkugWS8s0w8nKybWjHDJiwzCAIKZ66uof4ghm4tBADjcqRA==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", diff --git a/src/commands/agents.js b/src/commands/agents.js index 528f7dd2..75b8290f 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -192,6 +192,7 @@ module.exports.GetActivationCommand = class { if (options.report && !options.json) { const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, + { column: 'Title', field: 'title', width: 40 }, { column: 'Type', field: 'type', width: 20 }, { column: 'Status', field: 'status', width: 20 }, { column: 'Elapsed (ms)', field: 'elapsed', width: 30 }, From a6c74e1ff7efc6e8511571f968cfab2dee4106c1 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 11 Aug 2021 15:55:27 +0530 Subject: [PATCH 390/864] message formatting --- src/client/catalog.js | 4 +--- src/commands/assessments.js | 20 ++++++++++++++------ src/commands/campaigns.js | 9 ++++++--- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/client/catalog.js b/src/client/catalog.js index c0397de1..d3974840 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -243,7 +243,7 @@ module.exports = class Catalog { .catch(err => constructError(err)); } - exportCampaign(projectId, token, campaignName, deployable, outputFileName) { + exportCampaign(projectId, token, campaignName, deployable, path) { checkProject(projectId); const url = `${this.endpoints.campaigns(projectId)}${campaignName}/export?deployable=${deployable}`; @@ -254,10 +254,8 @@ module.exports = class Catalog { { headers: { Authorization: `Bearer ${token}` } }, (response) => { if (response.statusCode === 200 || response.statusCode === 201) { - const path = `./${outputFileName || `${campaignName}.amp`}`; const file = fs.createWriteStream(path); response.pipe(file).on('close', resolve).on('error', reject); - printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`); } else { printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`); reject({ status: response.statusCode }); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 732e9c7f..261c3924 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -30,6 +30,14 @@ const { printSuccess, printError, parseObject, printTable, } = require('./utils'); +const handleTable = (spec, data, noDataMessage) => { + if (data.length === 0) { + printSuccess(noDataMessage); + } else { + printTable(spec, data); + } +}; + module.exports.ListResourcesCommand = class { constructor(program) { this.program = program; @@ -53,7 +61,7 @@ module.exports.ListResourcesCommand = class { { column: 'Resource Type', field: 'resourceType' }, { column: 'Project', field: '_projectId' }, ]; - printTable(tableSpec, response.data); + handleTable(tableSpec, response.data, 'No matching resources found'); } }) .catch((err) => { @@ -84,7 +92,7 @@ module.exports.ListResourceTypesCommand = class { const tableSpec = [ { column: 'Resource Type', field: 'type' }, ]; - printTable(tableSpec, types); + handleTable(tableSpec, types, 'Resource Types not available'); } }) .catch((err) => { @@ -115,7 +123,7 @@ module.exports.DependencyTreeCommand = class { { column: 'Title', field: 'title' }, { column: 'Resource Type', field: 'type' }, ]; - printTable(tableSpec, response.data); + handleTable(tableSpec, response.data, 'No downstream dependency found'); } }) .catch((err) => { @@ -186,7 +194,7 @@ module.exports.ListAssessmentCommand = class { { column: 'Modified', field: '_updatedAt' }, { column: 'Author', field: '_createdBy' }, ]; - printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); + handleTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); } }) .catch((err) => { @@ -282,7 +290,7 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Author', field: '_createdBy' }, ]; response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); - printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); + handleTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), 'No report found for Assessment'); } }) .catch((err) => { @@ -326,7 +334,7 @@ module.exports.GetAssessmentReportCommand = class { { column: 'Resource Type', field: 'type' }, { column: 'Project', field: 'projectId' }, ]; - printTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type'])); + handleTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type']), 'No upstream dependencies found'); } }) .catch((err) => { diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 8f09fe18..42c54d66 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -65,7 +65,7 @@ module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { const cli = new ApiServerClient(profile.url); try { - const response = await cli.getCampaign(options.project || profile.project, profile.token, campaignName); + const response = await cli.getCampaign(options.project || profile.project, profile.token, campaignName); const result = filterObject(response, options); printSuccess(JSON.stringify(result, null, 2), options); } catch (err) { @@ -84,9 +84,12 @@ module.exports.ExportCampaignCommand = class ExportCampaignCommand { const profile = loadProfile(options.profile); debug('%s.executeExportCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); - + const project = options.project || profile.project; + const path = `./${options.o || `${campaignName}.amp`}`; try { - cli.exportCampaign(options.project || profile.project, profile.token, campaignName, options.deployable, options.o); + cli.exportCampaign(project, profile.token, campaignName, options.deployable, path) + .then(() => printSuccess(`Successfully exported Campaign ${campaignName} from project ${project} to file ${path}`)) + .catch(e => printError(`Failed to export Campaign ${campaignName} from project ${project}. Error: ${e}`)); } catch (err) { printError(`Failed to export campaign: ${err.status} ${err.message}`, options); } From 64e5473f90930b8c96774cd5b9ed07ce8cd4c5f5 Mon Sep 17 00:00:00 2001 From: ljha Date: Wed, 11 Aug 2021 17:31:59 +0530 Subject: [PATCH 391/864] message formatting --- src/commands/assessments.js | 16 ++++++++-------- src/commands/deploy.js | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 261c3924..be1200f0 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -30,11 +30,11 @@ const { printSuccess, printError, parseObject, printTable, } = require('./utils'); -const handleTable = (spec, data, noDataMessage) => { - if (data.length === 0) { +const handleTable = (spec, data, transformer, noDataMessage) => { + if (!data || data.length === 0) { printSuccess(noDataMessage); } else { - printTable(spec, data); + printTable(spec, data, transformer); } }; @@ -61,7 +61,7 @@ module.exports.ListResourcesCommand = class { { column: 'Resource Type', field: 'resourceType' }, { column: 'Project', field: '_projectId' }, ]; - handleTable(tableSpec, response.data, 'No matching resources found'); + handleTable(tableSpec, response.data, null, 'No matching resources found'); } }) .catch((err) => { @@ -92,7 +92,7 @@ module.exports.ListResourceTypesCommand = class { const tableSpec = [ { column: 'Resource Type', field: 'type' }, ]; - handleTable(tableSpec, types, 'Resource Types not available'); + handleTable(tableSpec, types, null, 'Resource Types not available'); } }) .catch((err) => { @@ -123,7 +123,7 @@ module.exports.DependencyTreeCommand = class { { column: 'Title', field: 'title' }, { column: 'Resource Type', field: 'type' }, ]; - handleTable(tableSpec, response.data, 'No downstream dependency found'); + handleTable(tableSpec, response.data, null, 'No downstream dependency found'); } }) .catch((err) => { @@ -290,7 +290,7 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Author', field: '_createdBy' }, ]; response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); - handleTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), 'No report found for Assessment'); + handleTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), `No report found for the Assessment ${name}`); } }) .catch((err) => { @@ -334,7 +334,7 @@ module.exports.GetAssessmentReportCommand = class { { column: 'Resource Type', field: 'type' }, { column: 'Project', field: 'projectId' }, ]; - handleTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type']), 'No upstream dependencies found'); + handleTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type']), null, 'No upstream dependencies found'); } }) .catch((err) => { diff --git a/src/commands/deploy.js b/src/commands/deploy.js index d3310bb5..6ae730f5 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -115,7 +115,7 @@ module.exports.DeploySnapshotCommand = class { Promise.all(promises).then((result) => { updateManifest({ snapshots: result }); - printSuccess(`Successfully generated manifest file ${manifestFile}`); + printSuccess(`Successfully updated manifest file ${manifestFile}`); }); } }; @@ -177,7 +177,7 @@ module.exports.DeployCampaignCommand = class { await addDependencies(profile.url, profile.token, project, 'Campaign', campaignName); Promise.all(promises).then(() => { updateManifest(filepaths); - printSuccess(`Successfully updated manifest file ${manifestFile}`); + printSuccess(`Successfully exported Campaign ${campaignName} in ${artifactsDir} and updated manifest file ${manifestFile}`); }); deleteFile(`${campaignName}.zip`); }); @@ -204,7 +204,7 @@ module.exports.DeployConnectionCommand = class { writeToFile(connectionDesc, filepath); updateManifest({ connection: [filepath] }); await addDependencies(profile.url, profile.token, project, 'Connection', connectionName); - printSuccess(`Connection ${connectionName} exported successfully`); + printSuccess(`Successfully exported Connection ${connectionName} in ${artifactsDir} and updated manifest file ${manifestFile}`); } else { printError(`Failed to export connection ${connectionName}: ${response.message}`, options); } From a52e66a3e6c79cda577522b4ed5f8e100fb1d3b5 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Fri, 13 Aug 2021 15:55:33 -0500 Subject: [PATCH 392/864] bump version to 2.0.5 for release and fix audit issues (#391) --- package-lock.json | 14 +++++++------- package.json | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2a33ecd9..dbe21bf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.4", + "version": "2.0.5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -4702,9 +4702,9 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "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==" }, "path-root": { "version": "0.1.1", @@ -6384,9 +6384,9 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" diff --git a/package.json b/package.json index 5cefe101..8cee711c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.4", + "version": "2.0.5", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -31,16 +31,16 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "@hapi/joi": "17.1.1", - "yauzl": "2.10.0", - "get-stream": "6.0.1", "boxen": "4.2.0", "chalk": "4.0.0", + "cli-table3": "0.6.0", "co": "4.6.0", "co-prompt": "1.0.0", "commander": "6.2.0", "debug": "4.1.1", "find-package-json": "1.2.0", "form-data": "3.0.0", + "get-stream": "6.0.1", "glob": "7.1.6", "got": "11.7.0", "graphql": "15.4.0", @@ -56,9 +56,9 @@ "plop": "2.7.4", "semver": "7.1.3", "timeago.js": "4.0.2", - "cli-table3": "0.6.0", "url-join": "4.0.1", - "url-parse": "1.5.1" + "url-parse": "1.5.3", + "yauzl": "2.10.0" }, "devDependencies": { "audit-ci": "3.0.0", From 8a4fdbf985c71c91f143097bb91b238150bb6179 Mon Sep 17 00:00:00 2001 From: vkarumuri-cs <44650979+vkarumuri-cs@users.noreply.github.com> Date: Sat, 14 Aug 2021 07:33:58 -0500 Subject: [PATCH 393/864] CM-581 and Cortex Cli 2.0.5 (#390) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * display version, created and modelId on model save * added options * table width adjusted automatically by updated cli-table * type column rename * pipeline error handling * quote resource name because some resource names like campaign, goad have space * show campaign import warnings * FAB-2308 Add updated list actionation API supports: correlationId, status, sort, limit, skip,... * Fix merge issue.. * remove empty lines * Content changes * Adding New Line At the End - Suggestion from npm test * deploy campaign and connection command * overwrite option in create assessment * dependency tree command in assessments * PR review comments * encode names to handle / * encode only names to handle / * undeploy campaign and mission commands * campaign deploy * uri encoding fix * help text update * warnings response formatting * type fix * typo fixes * encoding not required for request body params and null values will be converted to "undefined" cause them so save as valid value for required fields * export manifest fixes * export manifest fixes * exclude system fields from exported artifacts * url pattern conflict in catalog and phoenix * Added `--report` option to get-activations command for more human rea… (#383) * Added `--report` option to get-activations command for more human readable reporting * Make report output prettier Co-authored-by: Johan Gielstra * response binary data events handling improvement * fixing build pipeline ``` /work/pipelines/cortex5-cli/src/commands/agents.js 54:39 warning Assignment to property of function parameter 'd' no-param-reassign 189:120 error Expected to return a value at the end of arrow function consistent-return ``` * Add title to get-activation report fix vulns * bump version to 2.0.5 for release and fix audit issues (#391) Co-authored-by: Akarsh Prasad Co-authored-by: ljha Co-authored-by: Colton Lee Co-authored-by: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Co-authored-by: yreddy-CS Co-authored-by: Johan Gielstra Co-authored-by: nagarjuna.j Co-authored-by: njanapati-CS <84022262+njanapati-CS@users.noreply.github.com> Co-authored-by: rdatla-CS --- bin/cortex-agents.js | 13 ++- bin/cortex-assessments.js | 23 ++++- bin/cortex-campaigns.js | 32 +++++++ bin/cortex-deploy.js | 37 +++++++- bin/cortex-missions.js | 18 +++- package-lock.json | 82 +++++++++++++----- package.json | 8 +- src/client/agents.js | 7 +- src/client/assessments.js | 49 ++++++++--- src/client/catalog.js | 102 ++++++++++++++++------ src/commands/agents.js | 44 +++++++--- src/commands/assessments.js | 104 ++++++++++++++--------- src/commands/campaigns.js | 85 +++++++++++++++++++ src/commands/content.js | 9 +- src/commands/deploy.js | 164 ++++++++++++++++++++++++++++++------ src/commands/models.js | 2 + src/commands/utils.js | 4 +- 17 files changed, 627 insertions(+), 156 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 7d093451..9c9a5f94 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -116,9 +116,11 @@ program .description('Get dataset or service activation') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--json', 'Output results as JSON') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--verbose', 'Get debugging info in activation response') + .option('--report', 'Get additional debugging info in activation response') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { @@ -130,7 +132,7 @@ program // List activations program - .command('list-activations ') + .command('list-activations') .description('List activations for an agent') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') @@ -138,14 +140,19 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--agentName [string]', 'Query activations by agentName') .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') + .option('--correlationId [string]', 'Query activations with same correlationId') .option('--status [status]', 'Filters activations by status [complete|error].') - .action(withCompatibilityCheck((agentName, options) => { + .option('--limit [limit]', 'Limit number of records', '100') + .option('--offset [offset]', 'Skip number of records', '0') + .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') + .action(withCompatibilityCheck((options) => { try { - new ListActivationsCommand(program).execute(agentName, options); + new ListActivationsCommand(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index e3447e20..6f29fa11 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -31,6 +31,7 @@ const { ListAssessmentReportCommand, GetAssessmentReportCommand, ExportAssessmentReportCommand, + DependencyTreeCommand, } = require('../src/commands/assessments'); program.description('Work with Cortex Assessments'); @@ -50,6 +51,25 @@ program } })); +program + .command('dependency-tree') + .description('Dependencies of a resource') + .storeOptionsAsProperties(false) + .requiredOption('--scope [project]', 'project name of the resource') + .requiredOption('--name [Cortex component name]', 'Cortex component name') + .requiredOption('--type [Cortex component type]', 'Cortex resource type') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--json', 'Output results using JSON') + .action(withCompatibilityCheck((options) => { + try { + new DependencyTreeCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program .command('list-resources') .description('List matching resources') @@ -80,8 +100,9 @@ program .option('--title [title]', 'Assessment title') .option('--description [description]', 'Assessment description') .option('--scope [projects]', 'Assessment scope projects (comma separated values)') - .option('--component [Cortex component name]', 'Cortex component name') + .option('--component [Cortex component name]', 'Cortex component name (case insensitive regex/substring match)') .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') + .option('--overwrite [boolean]', 'Overwrite existing assessment, if exists') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('-y, --yaml', 'Use YAML format') diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 92618bea..052e50ae 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -26,6 +26,8 @@ const { DescribeCampaignCommand, ExportCampaignCommand, ImportCampaignCommand, + DeployCampaignCommand, + UndeployCampaignCommand, } = require('../src/commands/campaigns'); program.description('Work with Cortex Campaigns'); @@ -100,4 +102,34 @@ program } })); +program + .command('deploy ') + .description('Deploy Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('undeploy ') + .description('Undeploy Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new UndeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index 95f9e9b7..e3bb723e 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -23,6 +23,8 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { DeploySnapshotCommand, + DeployCampaignCommand, + DeployConnectionCommand, } = require('../src/commands/deploy'); program.description('Export Cortex artifacts for deployment'); @@ -37,9 +39,40 @@ program .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for snapshot export format') .option('-f, --force', 'Force delete existing exported files') - .action(withCompatibilityCheck((skillDefinition, options) => { + .action(withCompatibilityCheck((snapshotIds, options) => { try { - new DeploySnapshotCommand(program).execute(skillDefinition, options); + new DeploySnapshotCommand(program).execute(snapshotIds, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('campaign ') + .description('Export Campaigns for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--deployable', 'Export only ready to deploy Campaigns') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('connection ') + .description('Export Connection for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DeployConnectionCommand(program).execute(connectionName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 32b0bee2..f74298a6 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -25,6 +25,7 @@ const { ListMissionsCommand, DeployMissionCommand, DescribeMissionCommand, + UndeployMissionCommand, } = require('../src/commands/campaigns'); const { InvokeAgentServiceCommand } = require('../src/commands/agents'); @@ -89,7 +90,22 @@ program .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { - new InvokeAgentServiceCommand(program).execute(missionName, 'router_service', options); + new InvokeAgentServiceCommand(program).execute(missionName, 'cohort_manager_service', options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('undeploy ') + .description('Undeploy the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new UndeployMissionCommand(program).execute(campaignName, missionName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/package-lock.json b/package-lock.json index f65934e3..dbe21bf6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.4", + "version": "2.0.5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -736,6 +736,11 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, "builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", @@ -798,6 +803,16 @@ "lowercase-keys": "^2.0.0", "normalize-url": "^4.1.0", "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } } }, "call-bind": { @@ -1876,6 +1891,16 @@ "onetime": "^5.1.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } } }, "expand-brackets": { @@ -2089,6 +2114,14 @@ "reusify": "^1.0.4" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -2297,12 +2330,9 @@ } }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "get-value": { "version": "2.0.6", @@ -2836,12 +2866,6 @@ "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", "dev": true }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -4678,9 +4702,9 @@ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "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==" }, "path-root": { "version": "0.1.1", @@ -4739,6 +4763,11 @@ "through": "~2.3" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", @@ -6099,9 +6128,9 @@ } }, "tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.5.tgz", + "integrity": "sha512-FiK6MQyyaqd5vHuUjbg/NpO8BuEGeSXcmlH7Pt/JkugWS8s0w8nKybWjHDJiwzCAIKZ66uof4ghm4tBADjcqRA==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -6355,9 +6384,9 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -6727,6 +6756,15 @@ } } } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } } } } diff --git a/package.json b/package.json index 39d46d38..8cee711c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.4", + "version": "2.0.5", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { @@ -33,12 +33,14 @@ "@hapi/joi": "17.1.1", "boxen": "4.2.0", "chalk": "4.0.0", + "cli-table3": "0.6.0", "co": "4.6.0", "co-prompt": "1.0.0", "commander": "6.2.0", "debug": "4.1.1", "find-package-json": "1.2.0", "form-data": "3.0.0", + "get-stream": "6.0.1", "glob": "7.1.6", "got": "11.7.0", "graphql": "15.4.0", @@ -54,9 +56,9 @@ "plop": "2.7.4", "semver": "7.1.3", "timeago.js": "4.0.2", - "cli-table3": "0.6.0", "url-join": "4.0.1", - "url-parse": "1.5.1" + "url-parse": "1.5.3", + "yauzl": "2.10.0" }, "devDependencies": { "audit-ci": "3.0.0", diff --git a/src/client/agents.js b/src/client/agents.js index f642c4d0..f063b42f 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -52,7 +52,7 @@ module.exports = class Agents { .catch(err => constructError(err)); } - getActivation(projectId, token, activationId, verbose) { + getActivation(projectId, token, activationId, verbose, report) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); @@ -63,6 +63,9 @@ module.exports = class Agents { if (verbose) { opts.searchParams = { verbose: true }; } + if (report) { + opts.searchParams = { report: true }; + } return got .get(endpoint, opts).json() .then(result => ({ success: true, result })) @@ -71,7 +74,7 @@ module.exports = class Agents { listActivations(projectId, token, params) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${params.agentName}/activations`; + const endpoint = `${this.endpointV4(projectId)}/activations`; debug('listActivations(%s) => %s', params.agentName, endpoint); const opts = { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/client/assessments.js b/src/client/assessments.js index 738fb21c..ac2670ee 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -14,14 +14,31 @@ * limitations under the License. */ const querystring = require('querystring'); +const { pipeline } = require('stream'); const { createWriteStream } = require('fs'); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); +const { printSuccess } = require('../commands/utils'); +const { printError } = require('../commands/utils'); const { constructError, getUserAgent } = require('../commands/utils'); module.exports = class Assessments { constructor(cortexUrl) { this.endpointV4 = `${cortexUrl}/fabric/v4/impactassessment`; + this.endpointApiV4 = `${cortexUrl}/fabric/v4/dependencies`; + } + + getDependenciesOfResource(token, project, type, name) { + const url = `${this.endpointApiV4}/tree/${project}/${type}/${encodeURIComponent(name)}`; + debug('dependencyTree => %s', url); + return got + .get(url, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => res) + .catch(err => constructError(err)); } queryResources(token, name, projectId, type, skip, limit) { @@ -56,7 +73,7 @@ module.exports = class Assessments { .catch(err => constructError(err)); } - createAssessment(token, name, title, description, scope, componentName, componentTypes) { + createAssessment(token, name, title, description, scope, componentName, componentTypes, overwrite) { const url = `${this.endpointV4}/assessments`; debug('createAssessment => %s', url); return got @@ -70,6 +87,7 @@ module.exports = class Assessments { scope, componentName, componentTypes, + overwrite, }), }).json() .then(res => res) @@ -89,7 +107,7 @@ module.exports = class Assessments { } getAssessment(token, name) { - const url = `${this.endpointV4}/assessments/${name}`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}`; debug('getAssessment => %s', url); return got .get(url, { @@ -101,7 +119,7 @@ module.exports = class Assessments { } deleteAssessment(token, name) { - const url = `${this.endpointV4}/assessments/${name}`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}`; debug('deleteAssessment => %s', url); return got .delete(url, { @@ -113,7 +131,7 @@ module.exports = class Assessments { } runAssessment(token, name) { - const url = `${this.endpointV4}/assessments/${name}/run`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/run`; debug('runAssessment => %s', url); return got .post(url, { @@ -125,7 +143,7 @@ module.exports = class Assessments { } listAssessmentReports(token, name) { - const url = `${this.endpointV4}/assessments/${name}/reports`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/reports`; debug('listAssessmentReports => %s', url); return got .get(url, { @@ -137,7 +155,7 @@ module.exports = class Assessments { } getAssessmentReport(token, name, reportId) { - const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/reports/${encodeURIComponent(reportId)}`; debug('getAssessmentReport => %s', url); return got .get(url, { @@ -149,13 +167,20 @@ module.exports = class Assessments { } exportAssessmentReport(token, name, reportId, types) { + const options = { color: 'on' }; + const file = `${reportId.split('/').pop()}.csv`; const filter = types && types.trim() ? `?components=${types.trim()}` : ''; - const url = `${this.endpointV4}/assessments/${name}/reports/${reportId}/export${filter}`; + const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/reports/${encodeURIComponent(reportId)}/export${filter}`; debug('exportAssessmentReport => %s', url); - got.stream(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).pipe(createWriteStream(`${reportId}.csv`), { end: true }); - return Promise.resolve({ file: `${reportId}.csv` }); + + const rs = got.stream(url, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent() }); + pipeline(rs, createWriteStream(file), (e) => { + if (e) { + const err = constructError(e); + printError(`Failed to export assessment "${name}" report "${reportId}": ${err.status} ${err.message}`, options); + } else { + printSuccess(`Report exported to file "${file}"`, options); + } + }); } }; diff --git a/src/client/catalog.js b/src/client/catalog.js index bef9e324..c0397de1 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -20,7 +20,7 @@ const http = require('https'); const fs = require('fs'); const { got } = require('./apiutils'); const { - constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError, + constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError, printTable, } = require('../commands/utils'); const createEndpoints = baseUri => ({ @@ -249,19 +249,23 @@ module.exports = class Catalog { const url = `${this.endpoints.campaigns(projectId)}${campaignName}/export?deployable=${deployable}`; debug('exportCampaign(%s) => %s', campaignName, url); - return http.get(url, - { headers: { Authorization: `Bearer ${token}` } }, - (response) => { - if (response.statusCode === 200 || response.statusCode === 201) { - const path = `./${outputFileName || `${campaignName}.amp`}`; - const file = fs.createWriteStream(path); - response.pipe(file); - printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`); - } else { - printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`); - } - }).on('error', (e) => { - printError(e); + return new Promise((resolve, reject) => { + http.get(url, + { headers: { Authorization: `Bearer ${token}` } }, + (response) => { + if (response.statusCode === 200 || response.statusCode === 201) { + const path = `./${outputFileName || `${campaignName}.amp`}`; + const file = fs.createWriteStream(path); + response.pipe(file).on('close', resolve).on('error', reject); + printSuccess(`Successfully exported Campaign ${campaignName} from project ${projectId} to file ${path}`); + } else { + printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`); + reject({ status: response.statusCode }); + } + }).on('error', (e) => { + reject(e); + printError(e); + }); }); } @@ -285,17 +289,67 @@ module.exports = class Catalog { method: 'POST', headers, }); + form.pipe(req); + req.on('response', (response) => { + if (response.statusCode === 200 || response.statusCode === 201) { + response.setEncoding('utf-8'); + response.on('data', (data) => { + const importReport = JSON.parse(data); + if (!importReport.warnings || importReport.warnings.length === 0) { + printSuccess('Campaign imported successfully'); + } else { + printSuccess('Campaign imported with warnings'); + printTable([{ column: 'Warnings', field: 'message' }], importReport.warnings.map(w => ({ message: w }))); + } + }); + } else { + printError(`Campaign file ${filepath} import failed with error: [${response.statusCode}] ${response.statusMessage}`); + } + }).on('error', (err) => { + printError(err); + }); + } + + undeployCampaign(projectId, token, campaign) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/undeploy`; + debug('undeployCampaign() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } - form.pipe(req) - .on('response', (response) => { - if (response.statusCode === 200 || response.statusCode === 201) { - printSuccess('Campaign imported successfully'); - } else { - printError(`Campaign file ${filepath} import failed with error: [${response.statusCode}] ${response.statusMessage}`); - } - }).on('error', (err) => { - printError(err); - }); + deployCampaign(projectId, token, campaign) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/deploy`; + debug('deployCampaign() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); + } + + undeployMission(projectId, token, campaign, mission) { + checkProject(projectId); + const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions/${mission}/undeploy`; + debug('undeployMissions() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then(res => ({ success: true, data: res })) + .catch(err => constructError(err)); } listMissions(projectId, token, campaign) { diff --git a/src/commands/agents.js b/src/commands/agents.js index 571690cc..75b8290f 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -184,12 +184,25 @@ module.exports.GetActivationCommand = class { execute(activationId, options) { const profile = loadProfile(options.profile); debug('%s.getActivation(%s)', profile.name, activationId); - const { verbose, project } = options; + const { report, verbose, project } = options; const agents = new Agents(profile.url); - agents.getActivation(project || profile.project, profile.token, activationId, verbose).then((response) => { + agents.getActivation(project || profile.project, profile.token, activationId, verbose, report).then((response) => { if (response.success) { const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + if (options.report && !options.json) { + const tableSpec = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Title', field: 'title', width: 40 }, + { column: 'Type', field: 'type', width: 20 }, + { column: 'Status', field: 'status', width: 20 }, + { column: 'Elapsed (ms)', field: 'elapsed', width: 30 }, + ]; + printSuccess(`Status: ${result.status}`); + printSuccess(`Elapsed Time (ms): ${result.elapsed}`); + printTable(tableSpec, result.transits); + } else { + printSuccess(JSON.stringify(result, null, 2), options); + } } else { printError(`Failed to get activation ${activationId}: ${response.message}`, options); } @@ -205,9 +218,12 @@ module.exports.ListActivationsCommand = class { this.program = program; } - execute(agentName, options) { + execute(options) { + if (_.isEmpty(options.agentName) && _.isEmpty(options.correlationId) && _.isEmpty(options.status)) { + printError('Either --agentName, --correlationId, or --status must be provided', options); + } const profile = loadProfile(options.profile); - debug('%s.listActivations(%s)', profile.name, agentName); + debug('%s.listActivations(%s)', profile.name); const agents = new Agents(profile.url); // TODO validate param types? @@ -216,10 +232,12 @@ module.exports.ListActivationsCommand = class { if (options.startAfter) queryParams.startAfter = options.startAfter; if (options.endBefore) queryParams.endBefore = options.endBefore; if (options.endAfter) queryParams.endAfter = options.endAfter; - if (options.status) queryParams.status = options.status; - // TODO limit + skip + if (options.status) queryParams.status = _.toUpper(options.status); if (options.correlationId) queryParams.correlationId = options.correlationId; - queryParams.agentName = agentName; + if (options.agentName) queryParams.agentName = options.agentName; + if (options.limit) queryParams.limit = options.limit; + if (options.offset) queryParams.offset = options.offset; + if (options.sort) queryParams.sort = _.toLower(options.sort); agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { @@ -230,16 +248,18 @@ module.exports.ListActivationsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ - { column: 'Activation Id', field: 'activationId', width: 38 }, + { column: 'Activation Id', field: 'activationId', width: 40 }, + { column: 'Status', field: 'status', width: 20 }, + { column: 'Started', field: 'start', width: 65 }, ]; - printTable(tableSpec, _.map(result, r => ({ activationId: r }))); + printTable(tableSpec, _.map(result, o => ({ ...o, start: o.start ? moment(o.start).fromNow() : '-' }))); } } else { - printError(`Failed to list activations for agent "${agentName}": ${response.message}`, options); + printError(`Failed to list activations: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to list activations for agent "${agentName}": ${err.status} ${err.message}`, options); + printError(`Failed to list activations: ${err.status} ${err.message}`, options); }); } }; diff --git a/src/commands/assessments.js b/src/commands/assessments.js index f0b8349c..732e9c7f 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -17,7 +17,6 @@ const fs = require('fs'); const _ = { uniqBy: require('lodash/uniqBy'), - maxBy: require('lodash/maxBy'), sortBy: require('lodash/sortBy'), flatten: require('lodash/flatten'), compact: require('lodash/compact'), @@ -48,15 +47,13 @@ module.exports.ListResourcesCommand = class { if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { - const maxLenRow = _.maxBy(response.data, r => r.resourceName.length); - const maxLen = maxLenRow ? maxLenRow.resourceName.length : 30; const tableSpec = [ - { column: 'Name', field: 'resourceName', width: Math.min(maxLen + 2, 90) }, - { column: 'Title', field: 'resourceTitle', width: 30 }, - { column: 'Type', field: 'resourceType', width: 25 }, - { column: 'Project', field: '_projectId', width: 25 }, + { column: 'Name', field: 'resourceName' }, + { column: 'Title', field: 'resourceTitle' }, + { column: 'Resource Type', field: 'resourceType' }, + { column: 'Project', field: '_projectId' }, ]; - printTable(tableSpec, _.sortBy(response.data, ['_projectId', 'resourceType'])); + printTable(tableSpec, response.data); } }) .catch((err) => { @@ -85,7 +82,7 @@ module.exports.ListResourceTypesCommand = class { } else { const types = data.map(t => ({ type: t })); const tableSpec = [ - { column: 'Type', field: 'type', width: 25 }, + { column: 'Resource Type', field: 'type' }, ]; printTable(tableSpec, types); } @@ -96,6 +93,37 @@ module.exports.ListResourceTypesCommand = class { } }; +module.exports.DependencyTreeCommand = class { + constructor(program) { + this.program = program; + } + + execute(command) { + const options = command.opts(); + const profile = loadProfile(options.profile); + debug('%s.DependencyTreeCommand()', profile.name); + + const client = new Assessments(profile.url); + client.getDependenciesOfResource(profile.token, options.scope, options.type, options.name) + .then((response) => { + if (response.success === false) throw response; + if (options.json) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Resource Type', field: 'type' }, + ]; + printTable(tableSpec, response.data); + } + }) + .catch((err) => { + printError(`Failed to list dependency Cortex resource: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.CreateAssessmentCommand = class { constructor(program) { this.program = program; @@ -112,12 +140,13 @@ module.exports.CreateAssessmentCommand = class { const assessmentDefStr = fs.readFileSync(assessmentDef); assessment = parseObject(assessmentDefStr, options); } catch (err) { - printError(`Failed to read assessment definition ${assessmentDef}: ${err.message}`, options); + printError(`Failed to read assessment definition "${assessmentDef}": ${err.message}`, options); } } client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, options.description || assessment.description, options.scope || assessment.scope, - options.component || assessment.component, options.type || assessment.type) + options.component || assessment.component, options.type || assessment.type, + options.overwrite || assessment.overwrite) .then((response) => { if (response.success === false) throw response; if (response.success) { @@ -149,13 +178,13 @@ module.exports.ListAssessmentCommand = class { printSuccess(JSON.stringify(response, null, 2), options); } else { const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Title', field: 'title', width: 30 }, - { column: 'Description', field: 'description', width: 40 }, - { column: 'Projects', field: 'scope', width: 25 }, - { column: '# Reports', field: 'reportCount', width: 12 }, - { column: 'Modified', field: '_updatedAt', width: 25 }, - { column: 'Author', field: '_createdBy', width: 25 }, + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Description', field: 'description' }, + { column: 'Projects', field: 'scope' }, + { column: '# Reports', field: 'reportCount' }, + { column: 'Modified', field: '_updatedAt' }, + { column: 'Author', field: '_createdBy' }, ]; printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); } @@ -182,7 +211,7 @@ module.exports.DescribeAssessmentCommand = class { printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { - printError(`Failed to get assessment ${name}: ${err.status} ${err.message}`, options); + printError(`Failed to get assessment "${name}": ${err.status} ${err.message}`, options); }); } }; @@ -203,7 +232,7 @@ module.exports.DeleteAssessmentCommand = class { printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { - printError(`Failed to delete assessment ${name}: ${err.status} ${err.message}`, options); + printError(`Failed to delete assessment "${name}": ${err.status} ${err.message}`, options); }); } }; @@ -224,7 +253,7 @@ module.exports.RunAssessmentCommand = class { printSuccess(JSON.stringify(response, null, 2), options); }) .catch((err) => { - printError(`Failed to run assessment ${name}: ${err.status} ${err.message}`, options); + printError(`Failed to run assessment "${name}": ${err.status} ${err.message}`, options); }); } }; @@ -246,18 +275,18 @@ module.exports.ListAssessmentReportCommand = class { printSuccess(JSON.stringify(response, null, 2), options); } else { const tableSpec = [ - { column: 'Assessment Name', field: 'assessmentId', width: 30 }, - { column: 'Report Id', field: 'reportId', width: 50 }, - { column: 'Impact Summary', field: 'summary', width: 60 }, - { column: 'Modified', field: '_updatedAt', width: 25 }, - { column: 'Author', field: '_createdBy', width: 25 }, + { column: 'Assessment Name', field: 'assessmentId' }, + { column: 'Report Id', field: 'reportId' }, + { column: 'Impact Summary', field: 'summary' }, + { column: 'Modified', field: '_updatedAt' }, + { column: 'Author', field: '_createdBy' }, ]; response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); printTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' })); } }) .catch((err) => { - printError(`Failed to list assessment ${name} reports: ${err.status} ${err.message}`, options); + printError(`Failed to list assessment "${name}" reports: ${err.status} ${err.message}`, options); }); } }; @@ -289,19 +318,19 @@ module.exports.GetAssessmentReportCommand = class { const flattenRefs = _.uniqBy( _.flatten( response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId }))), - ), r => `${r.name}-${r.type}`, + ), r => `${r.name}-${r.type}-${r.projectId}`, ); const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Title', field: 'title', width: 30 }, - { column: 'Type', field: 'type', width: 20 }, - { column: 'Project', field: 'projectId', width: 25 }, + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Resource Type', field: 'type' }, + { column: 'Project', field: 'projectId' }, ]; printTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type'])); } }) .catch((err) => { - printError(`Failed to get assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); + printError(`Failed to get assessment "${name}" report "${reportId}": ${err.status} ${err.message}`, options); }); } }; @@ -317,13 +346,6 @@ module.exports.ExportAssessmentReportCommand = class { debug('%s.ExportAssessmentReportCommand()', profile.name); const client = new Assessments(profile.url); - client.exportAssessmentReport(profile.token, name, reportId, options.type) - .then((response) => { - if (response.success === false) throw response; - printSuccess(`Report exported to ${response.file}`, options); - }) - .catch((err) => { - printError(`Failed to export assessment ${name} report ${reportId}: ${err.status} ${err.message}`, options); - }); + client.exportAssessmentReport(profile.token, name, reportId, options.type); } }; diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 733cf674..8f09fe18 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -112,6 +112,91 @@ module.exports.ImportCampaignCommand = class ImportCampaignCommand { } }; +module.exports.DeployCampaignCommand = class DeployCampaignCommand { + constructor(program) { + this.program = program; + } + + execute(campaignName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeDeployCampaignCommand(%s)', profile.name, campaignName); + const cli = new Catalog(profile.url); + + try { + cli.deployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { + if (response.success === false) throw response; + const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); + if (!response.data.warnings || response.data.warnings.length === 0) { + printSuccess(output, options); + } else { + printError('Campaign deployed with warnings', options, false); + printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map(w => ({ message: w }))); + } + }).catch((e) => { + printError(`Failed to deploy campaign: ${e.status} ${e.message}`, options); + }); + } catch (err) { + printError(`Failed to deploy campaign: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { + constructor(program) { + this.program = program; + } + + execute(campaignName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeUndeployCampaignCommand(%s)', profile.name, campaignName); + const cli = new Catalog(profile.url); + + try { + cli.undeployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { + if (response.success === false) throw response; + const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); + if (!response.data.warnings || response.data.warnings.length === 0) { + printSuccess(output, options); + } else { + printError('Campaign undeployed with warnings', options, false); + printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map(w => ({ message: w }))); + } + }).catch((e) => { + printError(`Failed to undeploy campaign: ${e.status} ${e.message}`, options); + }); + } catch (err) { + printError(`Failed to undeploy campaign: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.UndeployMissionCommand = class UndeployMissionCommand { + constructor(program) { + this.program = program; + } + + execute(campaignName, missionName, cmd) { + const options = cmd.opts(); + const profile = loadProfile(options.profile); + debug('%s.executeUndeployMissionCommand(%s)', profile.name, missionName); + const cli = new Catalog(profile.url); + + try { + cli.undeployMission(options.project || profile.project, profile.token, campaignName, missionName).then((response) => { + if (response.success === false) throw response; + const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); + printSuccess(output, options); + }).catch((e) => { + printError(`Failed to undeploy mission: ${e.status} ${e.message}`, options); + }); + } catch (err) { + printError(`Failed to undeploy mission: ${err.status} ${err.message}`, options); + } + } +}; + module.exports.ListMissionsCommand = class ListMissionsCommand { constructor(program) { this.program = program; diff --git a/src/commands/content.js b/src/commands/content.js index f8a67984..e267a8e0 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -162,14 +162,7 @@ module.exports.DownloadContent = class DownloadContent { const content = new Content(profile.url); const showProgress = !!options.progress; - content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).then((response) => { - if (response.success) { - // messages need to be on stderr as content is streamed to stdout - console.error(response.message); - } else { - printError(`Failed to download content: ${response.status} ${response.message}`, options); - } - }).catch((err) => { + content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).catch((err) => { debug(err); printError(`Failed to download content: ${err.status} ${err.message}`, options); }); diff --git a/src/commands/deploy.js b/src/commands/deploy.js index bb7dd3ef..d3310bb5 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -15,12 +15,52 @@ */ const debug = require('debug')('cortex:cli'); const path = require('path'); +const fs = require('fs'); +const getStream = require('get-stream'); +const yauzl = require('yauzl'); +const yaml = require('js-yaml'); const { loadProfile } = require('../config'); const Agents = require('../client/agents'); +const Catalog = require('../client/catalog'); +const Assessments = require('../client/assessments'); +const Connections = require('../client/connections'); + +const _ = { + get: require('lodash/get'), + set: require('lodash/set'), + uniq: require('lodash/uniq'), +}; const { - printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, + printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, filterObject, } = require('./utils'); +const artifactsDir = '.fabric'; +const manifestFile = 'fabric.yaml'; +const manifestMeta = { + version: 1, + kind: 'deployment-manifest', + cortex: {}, +}; + +function updateManifest(filepaths) { + const manifest = fileExists(manifestFile) ? yaml.safeLoad(fs.readFileSync(manifestFile).toString()) : manifestMeta; + Object.keys(filepaths).forEach((type) => { + const kind = type.toLowerCase(); + const entries = [..._.get(manifest, `cortex.${kind}`, []), ...filepaths[type]]; + _.set(manifest, `cortex.${kind}`, _.uniq(entries)); + }); + writeToFile(jsonToYaml(manifest), manifestFile); +} + +async function addDependencies(url, token, project, resourceType, resourceName) { + const assessments = new Assessments(url); + const dependencies = await assessments.getDependenciesOfResource(token, project, resourceType, resourceName); + const depsFilePath = path.join(artifactsDir, resourceName, '_dependencies.json'); + writeToFile(JSON.stringify(dependencies), depsFilePath); + const depsManifest = {}; + depsManifest[`_dependencies.${resourceType}.${resourceName}`] = [depsFilePath]; + updateManifest(depsManifest); +} /** * Cortex deploy command is to export Cortex artifacts (agent, snapshot, skill, action etc) for CI/CD deployment. This command: @@ -49,33 +89,22 @@ module.exports.DeploySnapshotCommand = class { } execute(snapshotIds, options) { - const exportPath = '.fabric'; - const manifestFile = 'fabric.yaml'; - - if (fileExists(exportPath) || fileExists(manifestFile)) { - if (options.force) { - deleteFile(exportPath); - deleteFile(manifestFile); - printSuccess(`Deleted ${exportPath} and ${manifestFile}`); - } else { - printError(`Aborting, because export path ${exportPath} or manifest file ${manifestFile} exists. Use -f option to force delete.`); - } - } const profile = loadProfile(options.profile); + const project = options.project || profile.project; debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); const agents = new Agents(profile.url); const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { - promises.push(agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId).then((result) => { - result = JSON.parse(result); + promises.push(agents.describeAgentSnapshot(project, profile.token, snapshotId).then((response) => { + let result = JSON.parse(response); result = cleanInternalFields(result); let filename = `${snapshotId}.json`; if (options.yaml) { result = jsonToYaml(result); filename = `${snapshotId}.yaml`; } - const filepath = path.join(exportPath, 'snapshots', filename); + const filepath = path.join(artifactsDir, 'snapshots', filename); writeToFile(result, filepath); printSuccess(`Successfully exported agent snapshot ${filepath}`); return filepath; @@ -85,15 +114,102 @@ module.exports.DeploySnapshotCommand = class { }); Promise.all(promises).then((result) => { - const manifest = { - version: 1, - kind: 'deployment-manifest', - cortex: { - snapshots: result, - }, - }; - writeToFile(jsonToYaml(manifest), manifestFile); + updateManifest({ snapshots: result }); printSuccess(`Successfully generated manifest file ${manifestFile}`); }); } }; + +module.exports.DeployCampaignCommand = class { + constructor(program) { + this.program = program; + } + + processResource(project, campaign, stream, filename, entries) { + return new Promise((resolve, reject) => { + getStream.buffer(stream).then((content) => { + let type; + let filepath; + if (filename.endsWith('.yml') || filename.endsWith('.yaml')) { + const resource = yaml.safeLoad(content); + type = resource.kind; + filepath = path.join(artifactsDir, campaign, filename); + writeToFile(yaml.safeDump(resource), filepath); + } else { + type = path.extname(filename).replace(/\./g, ''); + filepath = path.join(artifactsDir, campaign, filename); + writeToFile(content, filepath); + } + const files = entries[type] || []; + files.push(filepath); + entries[type] = files; + resolve(filepath); + }).catch(e => reject(e)); + }); + } + + async execute(campaignName, options) { + const profile = loadProfile(options.profile); + const project = options.project || profile.project; + debug('%s.exportDeploymentCampaigns(%s)', profile.name, campaignName); + + const catalog = new Catalog(profile.url); + await catalog.exportCampaign(project, profile.token, campaignName, options.deployable, `${campaignName}.zip`); + const filepaths = {}; + const promises = []; + + yauzl.open(`${campaignName}.zip`, { lazyEntries: true }, (err, zipfile) => { + if (err) { + throw err; + } + zipfile.readEntry(); + zipfile.on('entry', (entry) => { + zipfile.openReadStream(entry, (e, readStream) => { + if (e) { + printError(e); + } + promises.push(this.processResource(project, campaignName, readStream, entry.fileName, filepaths)); + zipfile.readEntry(); + }); + }); + zipfile.on('error', e => printError(e)); + zipfile.once('end', async () => { + await addDependencies(profile.url, profile.token, project, 'Campaign', campaignName); + Promise.all(promises).then(() => { + updateManifest(filepaths); + printSuccess(`Successfully updated manifest file ${manifestFile}`); + }); + deleteFile(`${campaignName}.zip`); + }); + }); + } +}; + +module.exports.DeployConnectionCommand = class { + constructor(program) { + this.program = program; + } + + execute(connectionName, options) { + const profile = loadProfile(options.profile); + const project = options.project || profile.project; + debug('%s.exportDeploymentConnection%s)', profile.name, connectionName); + + const connection = new Connections(profile.url); + connection.describeConnection(project, profile.token, connectionName).then(async (response) => { + if (response.success) { + const result = filterObject(response.result, options); + const connectionDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, 'connections', `${connectionName}.json`); + writeToFile(connectionDesc, filepath); + updateManifest({ connection: [filepath] }); + await addDependencies(profile.url, profile.token, project, 'Connection', connectionName); + printSuccess(`Connection ${connectionName} exported successfully`); + } else { + printError(`Failed to export connection ${connectionName}: ${response.message}`, options); + } + }).catch((err) => { + printError(`Failed to export connection ${connectionName}: ${err.status} ${err.message}`, options); + }); + } +}; diff --git a/src/commands/models.js b/src/commands/models.js index 7e817238..8cd4007c 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -17,6 +17,7 @@ const fs = require('fs'); const _ = { get: require('lodash/get'), + pick: require('lodash/pick'), }; const debug = require('debug')('cortex:cli'); const moment = require('moment'); @@ -46,6 +47,7 @@ module.exports.SaveModelCommand = class SaveModelCommand { models.saveModel(options.project || profile.project, profile.token, model).then((response) => { if (response.success) { printSuccess('Model saved', options); + printSuccess(JSON.stringify(_.pick(response.message, ['version', 'created', 'modelId']), null, 2)); } else if (response.details) { console.log(`Failed to save model: ${response.status} ${response.message}`); console.log('The following issues were found:'); diff --git a/src/commands/utils.js b/src/commands/utils.js index 715022dc..69342394 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -245,8 +245,10 @@ module.exports.formatValidationPath = (p) => { return res; }; +// connections get returns createdAt (not prefixed by _) field that cause saving exported connection to fail. Hence removing them manually +const systemFields = ['createdAt', 'updatedAt', 'createdBy', 'updatedBy']; module.exports.cleanInternalFields = jsobj => JSON.stringify(jsobj, (a, obj) => { - if (a.startsWith('_')) { + if (a.startsWith('_') || systemFields.includes(a)) { return undefined; } return obj; From 96e76c82a4940d3289a0f3b50f0cf2df936b95c5 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 16 Aug 2021 15:33:18 -0500 Subject: [PATCH 394/864] FAB-2661 Fix --jobTimeout option --- bin/cortex-actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 264ccdb9..c0afafc9 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -118,7 +118,7 @@ program .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' .option('--image, --docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') - .option('--jobTimeout', 'Job Timeout in seconds, this will marked the job as FAILED') + .option('--jobTimeout [jobTimeout]', 'Job Timeout in seconds, this will marked the job as FAILED (default: no timeout)') .option('--no-compat', 'Ignore API compatibility checks') .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('--port [port]', 'Docker port') // '9091' From 8f16f4849cab9b133f8a236417b2c1a156f2c675 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 19 Aug 2021 12:04:32 -0500 Subject: [PATCH 395/864] FAB-2640 add name to activation list output --- bin/cortex-agents.js | 1 + src/commands/agents.js | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 9c9a5f94..b4ffafab 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -141,6 +141,7 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--agentName [string]', 'Query activations by agentName') + .option('--skillName [string]', 'Query activations by skillName') .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') diff --git a/src/commands/agents.js b/src/commands/agents.js index 75b8290f..f7fd66db 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -219,8 +219,11 @@ module.exports.ListActivationsCommand = class { } execute(options) { - if (_.isEmpty(options.agentName) && _.isEmpty(options.correlationId) && _.isEmpty(options.status)) { - printError('Either --agentName, --correlationId, or --status must be provided', options); + if (_.isEmpty(options.agentName) + && _.isEmpty(options.skillName) + && _.isEmpty(options.correlationId) + && _.isEmpty(options.status)) { + printError('Either --agentName, --skillName, --correlationId, or --status must be provided', options); } const profile = loadProfile(options.profile); debug('%s.listActivations(%s)', profile.name); @@ -235,6 +238,7 @@ module.exports.ListActivationsCommand = class { if (options.status) queryParams.status = _.toUpper(options.status); if (options.correlationId) queryParams.correlationId = options.correlationId; if (options.agentName) queryParams.agentName = options.agentName; + if (options.skillName) queryParams.skillName = options.skillName; if (options.limit) queryParams.limit = options.limit; if (options.offset) queryParams.offset = options.offset; if (options.sort) queryParams.sort = _.toLower(options.sort); @@ -248,11 +252,16 @@ module.exports.ListActivationsCommand = class { printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, { column: 'Activation Id', field: 'activationId', width: 40 }, { column: 'Status', field: 'status', width: 20 }, { column: 'Started', field: 'start', width: 65 }, ]; - printTable(tableSpec, _.map(result, o => ({ ...o, start: o.start ? moment(o.start).fromNow() : '-' }))); + printTable(tableSpec, _.map(result, o => ({ + ...o, + name: o.agentName ? `${o.agentName} (Agent)` : o.skillName ? `${o.skillName} (Skill)` : '-', + start: o.start ? moment(o.start).fromNow() : '-', + }))); } } else { printError(`Failed to list activations: ${response.message}`, options); From 622f603aba559c0e5ff7d130c1bed284e1b21fd9 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 24 Aug 2021 14:38:52 -0500 Subject: [PATCH 396/864] Cannot nest unary ops, yeah an anonymous function looks better --- src/commands/agents.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index f7fd66db..3ee22327 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -257,9 +257,20 @@ module.exports.ListActivationsCommand = class { { column: 'Status', field: 'status', width: 20 }, { column: 'Started', field: 'start', width: 65 }, ]; + + const genName = (o) => { + if (o.agentName) { + return `${o.agentName} (Agent)`; + } + if (o.skillName) { + return `${o.skillName} (Skill)`; + } + return '-'; + }; + printTable(tableSpec, _.map(result, o => ({ ...o, - name: o.agentName ? `${o.agentName} (Agent)` : o.skillName ? `${o.skillName} (Skill)` : '-', + name: genName(o), start: o.start ? moment(o.start).fromNow() : '-', }))); } From 15ccb90a0a1e49c512fd1d507a6e6fa08ff2bed0 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 25 Aug 2021 15:25:18 -0500 Subject: [PATCH 397/864] Sort transit so the report is a bit more understandable --- src/commands/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 3ee22327..6791562f 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -199,7 +199,7 @@ module.exports.GetActivationCommand = class { ]; printSuccess(`Status: ${result.status}`); printSuccess(`Elapsed Time (ms): ${result.elapsed}`); - printTable(tableSpec, result.transits); + printTable(tableSpec, _.sortBy(result.transits, ['start', 'end'])); } else { printSuccess(JSON.stringify(result, null, 2), options); } From a3d8317f6a394ed046036e5914e0f51eef1f8ca5 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 26 Aug 2021 17:45:43 +0530 Subject: [PATCH 398/864] FAB-2629 export skill and experiment --- bin/cortex-deploy.js | 33 +++++++++++ src/client/assessments.js | 2 +- src/client/content.js | 10 +++- src/commands/deploy.js | 120 ++++++++++++++++++++++++++++++++++++-- src/commands/utils.js | 8 +++ 5 files changed, 165 insertions(+), 8 deletions(-) diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index e3bb723e..30bdb8e3 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -25,6 +25,8 @@ const { DeploySnapshotCommand, DeployCampaignCommand, DeployConnectionCommand, + DeployExperimentCommand, + DeploySkillCommand, } = require('../src/commands/deploy'); program.description('Export Cortex artifacts for deployment'); @@ -78,4 +80,35 @@ program } })); +program + .command('skill ') + .description('Export Skill for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((skillName, options) => { + try { + new DeploySkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('experiment [modelName] [runId]') + .description('Export Experiment with Model and Run for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--latestRun [boolean]', 'Export latest run of experiment') + .action(withCompatibilityCheck((modelName, experimentName, runId, options) => { + try { + new DeployExperimentCommand(program).execute(modelName, experimentName, runId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/assessments.js b/src/client/assessments.js index ac2670ee..6d8298a9 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -32,7 +32,7 @@ module.exports = class Assessments { const url = `${this.endpointApiV4}/tree/${project}/${type}/${encodeURIComponent(name)}`; debug('dependencyTree => %s', url); return got - .get(url, { + .post(url, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }) diff --git a/src/client/content.js b/src/client/content.js index 1820ddb9..a3fd9686 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -20,6 +20,7 @@ const stream = require('stream'); const { promisify } = require('util'); const debug = require('debug')('cortex:cli'); const { got } = require('./apiutils'); +const { createFileStream } = require('../commands/utils'); const { constructError, getUserAgent, checkProject } = require('../commands/utils'); const pipeline = promisify(stream.pipeline); @@ -87,18 +88,23 @@ module.exports = class Content { // TODO progress // eslint-disable-next-line no-unused-vars - async downloadContent(projectId, token, key, showProgress = false) { + async downloadContent(projectId, token, key, showProgress = false, toFile = null) { checkProject(projectId); const contentKey = this._sanitizeKey(key); const endpoint = `${this.endpoint(projectId)}/${contentKey}`; debug('downloadContent() => %s', endpoint); try { + if (toFile) { + toFile = createFileStream(toFile); + } else { + toFile = process.stdout; + } return pipeline( got.stream(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }), - process.stdout, + toFile, ); } catch (err) { return constructError(err); diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 6ae730f5..851cd1eb 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -24,6 +24,10 @@ const Agents = require('../client/agents'); const Catalog = require('../client/catalog'); const Assessments = require('../client/assessments'); const Connections = require('../client/connections'); +const Experiments = require('../client/experiments'); +const Models = require('../client/models'); +const Actions = require('../client/actions'); +const Content = require('../client/content'); const _ = { get: require('lodash/get'), @@ -55,11 +59,15 @@ function updateManifest(filepaths) { async function addDependencies(url, token, project, resourceType, resourceName) { const assessments = new Assessments(url); const dependencies = await assessments.getDependenciesOfResource(token, project, resourceType, resourceName); - const depsFilePath = path.join(artifactsDir, resourceName, '_dependencies.json'); - writeToFile(JSON.stringify(dependencies), depsFilePath); - const depsManifest = {}; - depsManifest[`_dependencies.${resourceType}.${resourceName}`] = [depsFilePath]; - updateManifest(depsManifest); + if (dependencies.success) { + const depsFilePath = path.join(artifactsDir, resourceName, '_dependencies.json'); + writeToFile(JSON.stringify(dependencies), depsFilePath); + const depsManifest = {}; + depsManifest[`_dependencies.${resourceType}.${resourceName}`] = [depsFilePath]; + updateManifest(depsManifest); + } else { + printError(`Failed to get dependencies of ${resourceName} of type ${resourceType} in project ${project}: ${dependencies.status} ${dependencies.message}`); + } } /** @@ -213,3 +221,105 @@ module.exports.DeployConnectionCommand = class { }); } }; + +module.exports.DeploySkillCommand = class { + constructor(program) { + this.program = program; + } + + execute(skillName, options) { + const profile = loadProfile(options.profile); + const project = options.project || profile.project; + debug('%s.exportDeploySkillCommand%s)', profile.name, skillName); + + const catalog = new Catalog(profile.url); + catalog.describeSkill(project, profile.token, skillName, false).then(async (response) => { + if (response.success) { + const result = filterObject(response.skill, options); + const skillDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, 'skills', `${skillName}.json`); + writeToFile(skillDesc, filepath); + updateManifest({ skill: [filepath] }); + await addDependencies(profile.url, profile.token, project, 'Skill', skillName); + printSuccess(`Successfully exported Skill ${skillName} in ${artifactsDir} and updated manifest file ${manifestFile}`); + } else { + printError(`Failed to export skill ${skillName}: ${response.message}`, options); + } + }).catch((err) => { + printError(`Failed to export skill ${skillName}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeployExperimentCommand = class { + constructor(program) { + this.program = program; + } + + async execute(modelName, experimentName, runId, options) { + const profile = loadProfile(options.profile); + const project = options.project || profile.project; + debug('%s.exportDeployExperimentCommand%s)', profile.name, experimentName); + + const manifest = {}; + const exports = {}; + const experiments = new Experiments(profile.url); + const model = new Models(profile.url); + const content = new Content(profile.url); + + let response; + // export model if provided + if (modelName) { + response = await model.describeModel(project, profile.token, modelName, true); + if (response.success) { + const result = filterObject(response.model, options); + const modelDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, 'models', `${modelName}.json`); + writeToFile(modelDesc, filepath); + manifest.model = [filepath]; + exports.model = modelName; + } else { + printError(`Failed to export model ${modelName}: ${response.message}`, options); + } + } + response = await experiments.describeExperiment(project, profile.token, experimentName); + if (response.success) { + const result = filterObject(response.result, options); + const expDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, 'experiments', `${experimentName}.json`); + writeToFile(expDesc, filepath); + manifest.experiment = [filepath]; + exports.experiment = experimentName; + } else { + printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); + } + let exportRun = runId; + if (!runId && options.latestRun) { + response = await experiments.listRuns(project, profile.token, experimentName, null, 1, JSON.stringify({ startTime: -1 })); + if (response.success) { + exportRun = response.result.runs.pop().runId; + } + } + if (exportRun) { + response = await experiments.describeRun(project, profile.token, experimentName, exportRun); + if (response.success) { + const result = filterObject(response.result, options); + const runDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, `experiments/${experimentName}/runs`, `${exportRun}.json`); + writeToFile(runDesc, filepath); + if (result.artifacts) { + await Promise.all(Object.values(result.artifacts) + .map((value) => content.downloadContent(project, profile.token, value, false, path.join(artifactsDir, value)))); + } + manifest.run = [filepath]; + exports.run = exportRun; + } else { + printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); + } + } else { + printError('Provide runId or `--latestRun` option to export last run ', options); + } + printSuccess(`Successfully exported ${JSON.stringify(exports)} in ${artifactsDir} and updated manifest file ${manifestFile}`); + updateManifest(manifest); + } +}; diff --git a/src/commands/utils.js b/src/commands/utils.js index 69342394..5b33c1ba 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -262,6 +262,14 @@ module.exports.jsonToYaml = (json) => { return yaml.dump(json); }; +module.exports.createFileStream = (filepath) => { + const dir = path.dirname(filepath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } + return fs.createWriteStream(filepath); +}; + module.exports.writeToFile = (content, filepath) => { const dir = path.dirname(filepath); if (!fs.existsSync(dir)) { From f7aa9999578892551e4233bee04d0437bceb7ac0 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 26 Aug 2021 22:42:20 +0530 Subject: [PATCH 399/864] check model status before exporting --- src/commands/deploy.js | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 851cd1eb..c02612c7 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -268,20 +268,6 @@ module.exports.DeployExperimentCommand = class { const content = new Content(profile.url); let response; - // export model if provided - if (modelName) { - response = await model.describeModel(project, profile.token, modelName, true); - if (response.success) { - const result = filterObject(response.model, options); - const modelDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, 'models', `${modelName}.json`); - writeToFile(modelDesc, filepath); - manifest.model = [filepath]; - exports.model = modelName; - } else { - printError(`Failed to export model ${modelName}: ${response.message}`, options); - } - } response = await experiments.describeExperiment(project, profile.token, experimentName); if (response.success) { const result = filterObject(response.result, options); @@ -290,9 +276,28 @@ module.exports.DeployExperimentCommand = class { writeToFile(expDesc, filepath); manifest.experiment = [filepath]; exports.experiment = experimentName; + modelName = modelName || result.modelId; } else { printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); } + // export model if provided or pick from experiment + if (modelName) { + response = await model.describeModel(project, profile.token, modelName, true); + if (response.success) { + const result = filterObject(response.model, options); + const modelDesc = cleanInternalFields(result); + if (result.status && result.status === 'Published') { + const filepath = path.join(artifactsDir, 'models', `${modelName}.json`); + writeToFile(modelDesc, filepath); + manifest.model = [filepath]; + exports.model = modelName; + } else { + printError(`Only Published models can be exported. Model ${modelName} is in ${result.status}`); + } + } else { + printError(`Failed to export model ${modelName}: ${response.message}`, options); + } + } let exportRun = runId; if (!runId && options.latestRun) { response = await experiments.listRuns(project, profile.token, experimentName, null, 1, JSON.stringify({ startTime: -1 })); From 4fa391f6f724cd3647c575575540df7e33ec730e Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 26 Aug 2021 23:31:51 +0530 Subject: [PATCH 400/864] export skill dependencies --- src/commands/deploy.js | 86 +++++++++++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 31 deletions(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index c02612c7..069ec5c6 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -68,6 +68,7 @@ async function addDependencies(url, token, project, resourceType, resourceName) } else { printError(`Failed to get dependencies of ${resourceName} of type ${resourceType} in project ${project}: ${dependencies.status} ${dependencies.message}`); } + return dependencies; } /** @@ -222,36 +223,7 @@ module.exports.DeployConnectionCommand = class { } }; -module.exports.DeploySkillCommand = class { - constructor(program) { - this.program = program; - } - - execute(skillName, options) { - const profile = loadProfile(options.profile); - const project = options.project || profile.project; - debug('%s.exportDeploySkillCommand%s)', profile.name, skillName); - - const catalog = new Catalog(profile.url); - catalog.describeSkill(project, profile.token, skillName, false).then(async (response) => { - if (response.success) { - const result = filterObject(response.skill, options); - const skillDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, 'skills', `${skillName}.json`); - writeToFile(skillDesc, filepath); - updateManifest({ skill: [filepath] }); - await addDependencies(profile.url, profile.token, project, 'Skill', skillName); - printSuccess(`Successfully exported Skill ${skillName} in ${artifactsDir} and updated manifest file ${manifestFile}`); - } else { - printError(`Failed to export skill ${skillName}: ${response.message}`, options); - } - }).catch((err) => { - printError(`Failed to export skill ${skillName}: ${err.status} ${err.message}`, options); - }); - } -}; - -module.exports.DeployExperimentCommand = class { +const DeployExperimentCommand = class { constructor(program) { this.program = program; } @@ -314,7 +286,7 @@ module.exports.DeployExperimentCommand = class { writeToFile(runDesc, filepath); if (result.artifacts) { await Promise.all(Object.values(result.artifacts) - .map((value) => content.downloadContent(project, profile.token, value, false, path.join(artifactsDir, value)))); + .map(value => content.downloadContent(project, profile.token, value, false, path.join(artifactsDir, value)))); } manifest.run = [filepath]; exports.run = exportRun; @@ -328,3 +300,55 @@ module.exports.DeployExperimentCommand = class { updateManifest(manifest); } }; + +module.exports.DeployExperimentCommand = DeployExperimentCommand; + +module.exports.DeploySkillCommand = class { + constructor(program) { + this.program = program; + } + + execute(skillName, options) { + const profile = loadProfile(options.profile); + const project = options.project || profile.project; + debug('%s.exportDeploySkillCommand%s)', profile.name, skillName); + + const manifest = {}; + const exports = {}; + const catalog = new Catalog(profile.url); + catalog.describeSkill(project, profile.token, skillName, false).then(async (response) => { + if (response.success) { + const result = filterObject(response.skill, options); + const skillDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, 'skills', `${skillName}.json`); + writeToFile(skillDesc, filepath); + manifest.skill = [filepath]; + exports.skill = skillName; + const dependencies = await addDependencies(profile.url, profile.token, project, 'Skill', skillName); + const mlOps = Object.fromEntries(dependencies.data.filter(d => ['Model', 'Experiment', 'ExperimentRun'].includes(d.type)).map(d => [d.type, d.name])); + if (mlOps && mlOps.Experiment) { + await new DeployExperimentCommand(this.program).execute(mlOps.Model, mlOps.ExperimentRun, mlOps.Experiment); + } + const existingActions = result.actions.map(a => a.name); + const actions = dependencies.data.filter(d => d.type === 'Action' && !existingActions.includes(d.name)).map(d => d.name); + if (actions.length > 0) { + const actionsClient = new Actions(profile.url); + actions.forEach((a) => { + response = actionsClient.describeAction(project, profile.token, a); + if (response.success) { + const actionDesc = cleanInternalFields(filterObject(response.action, options)); + writeToFile(actionDesc, path.join(artifactsDir, 'actions', `${a}.json`)); + } + }); + manifest.action = actions.map(a => path.join(artifactsDir, 'actions', `${a}.json`)); + exports.action = actions; + } + printSuccess(`Successfully exported ${JSON.stringify(Object.assign(exports, mlOps))} in ${artifactsDir} and updated manifest file ${manifestFile}`); + } else { + printError(`Failed to export skill ${skillName}: ${response.message}`, options); + } + }).catch((err) => { + printError(`Failed to export skill ${skillName}: ${err.status} ${err.message}`, options); + }); + } +}; From 34871dfdb7c7fb9a1a5bce9e0caa49ed5bed7e9f Mon Sep 17 00:00:00 2001 From: sdevarakonda-CS Date: Fri, 27 Aug 2021 18:37:55 +0530 Subject: [PATCH 401/864] Updated mission invoke command --- bin/cortex-missions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index f74298a6..c355e8bc 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -90,7 +90,7 @@ program .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { - new InvokeAgentServiceCommand(program).execute(missionName, 'cohort_manager_service', options); + new InvokeAgentServiceCommand(program).execute('online-learner-agent', 'online_learner_service', options); } catch (err) { console.error(chalk.red(err.message)); } From 43bba3ef74b9d23d3880915c6d9e049ef80e4e3b Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 30 Aug 2021 21:45:38 +0530 Subject: [PATCH 402/864] missing dependencies and skill/agent ML export --- bin/cortex-assessments.js | 13 +-- bin/cortex-deploy.js | 10 +- src/client/assessments.js | 16 +-- src/commands/assessments.js | 8 +- src/commands/deploy.js | 202 +++++++++++++++++++++--------------- 5 files changed, 145 insertions(+), 104 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 6f29fa11..5912ce10 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -52,19 +52,20 @@ program })); program - .command('dependency-tree') - .description('Dependencies of a resource') + .command('dependency-tree [dependencyFile]') + .description('Dependencies of a resource or find missing ones from dependencyFile') .storeOptionsAsProperties(false) .requiredOption('--scope [project]', 'project name of the resource') - .requiredOption('--name [Cortex component name]', 'Cortex component name') - .requiredOption('--type [Cortex component type]', 'Cortex resource type') + .option('--name [Cortex component name]', 'Cortex component name') + .option('--type [Cortex component type]', 'Cortex resource type') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .action(withCompatibilityCheck((options) => { + .option('--missing [boolean]', 'Filter only missing dependencies') + .action(withCompatibilityCheck((dependencyFile, options) => { try { - new DependencyTreeCommand(program).execute(options); + new DependencyTreeCommand(program).execute(dependencyFile, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index 30bdb8e3..0954c5d7 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -41,6 +41,7 @@ program .option('--project [project]', 'The project to use') .option('-y, --yaml', 'Use YAML for snapshot export format') .option('-f, --force', 'Force delete existing exported files') + .option('--latestRun [boolean]', 'Export latest run of Experiment(s) if not specified') .action(withCompatibilityCheck((snapshotIds, options) => { try { new DeploySnapshotCommand(program).execute(snapshotIds, options); @@ -87,6 +88,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') .action(withCompatibilityCheck((skillName, options) => { try { new DeploySkillCommand(program).execute(skillName, options); @@ -96,16 +98,16 @@ program })); program - .command('experiment [modelName] [runId]') + .command('experiment [runId]') .description('Export Experiment with Model and Run for deployment') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--latestRun [boolean]', 'Export latest run of experiment') - .action(withCompatibilityCheck((modelName, experimentName, runId, options) => { + .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') + .action(withCompatibilityCheck((experimentName, runId, options) => { try { - new DeployExperimentCommand(program).execute(modelName, experimentName, runId, options); + new DeployExperimentCommand(program).execute(experimentName, runId, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/client/assessments.js b/src/client/assessments.js index 6d8298a9..835a04b8 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -28,14 +28,18 @@ module.exports = class Assessments { this.endpointApiV4 = `${cortexUrl}/fabric/v4/dependencies`; } - getDependenciesOfResource(token, project, type, name) { - const url = `${this.endpointApiV4}/tree/${project}/${type}/${encodeURIComponent(name)}`; + getDependenciesOfResource(token, project, type, name, json = null, missing = false) { + const url = `${this.endpointApiV4}/tree/${project}/${type}/${encodeURIComponent(name)}?${querystring.stringify({ missing })}`; debug('dependencyTree => %s', url); + const body = { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }; + if (json) { + body.json = json; + } return got - .post(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) + .post(url, body) .json() .then(res => res) .catch(err => constructError(err)); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index be1200f0..d633084a 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -106,13 +106,17 @@ module.exports.DependencyTreeCommand = class { this.program = program; } - execute(command) { + execute(dependencyFile, command) { const options = command.opts(); const profile = loadProfile(options.profile); debug('%s.DependencyTreeCommand()', profile.name); const client = new Assessments(profile.url); - client.getDependenciesOfResource(profile.token, options.scope, options.type, options.name) + let body; + if (dependencyFile) { + body = JSON.parse(fs.readFileSync(dependencyFile).toString()); + } + client.getDependenciesOfResource(profile.token, options.scope, options.type, options.name, body, options.missing) .then((response) => { if (response.success === false) throw response; if (options.json) { diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 069ec5c6..2e9c8c1d 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -33,6 +33,7 @@ const _ = { get: require('lodash/get'), set: require('lodash/set'), uniq: require('lodash/uniq'), + size: require('lodash/size'), }; const { printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, filterObject, @@ -59,7 +60,7 @@ function updateManifest(filepaths) { async function addDependencies(url, token, project, resourceType, resourceName) { const assessments = new Assessments(url); const dependencies = await assessments.getDependenciesOfResource(token, project, resourceType, resourceName); - if (dependencies.success) { + if (dependencies.data) { const depsFilePath = path.join(artifactsDir, resourceName, '_dependencies.json'); writeToFile(JSON.stringify(dependencies), depsFilePath); const depsManifest = {}; @@ -71,6 +72,87 @@ async function addDependencies(url, token, project, resourceType, resourceName) return dependencies; } +const DeployExperimentCommand = class { + constructor(program) { + this.program = program; + } + + async execute(experimentName, runId, options) { + const profile = loadProfile(options.profile); + const project = options.project || profile.project; + debug('%s.exportDeployExperimentCommand%s)', profile.name, experimentName); + + const manifest = {}; + const exports = {}; + const experiments = new Experiments(profile.url); + const model = new Models(profile.url); + const content = new Content(profile.url); + + let modelName; + let response; + response = await experiments.describeExperiment(project, profile.token, experimentName); + if (response.success) { + const result = filterObject(response.result, options); + const expDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, 'experiments', `${experimentName}.json`); + writeToFile(expDesc, filepath); + manifest.experiment = [filepath]; + exports.experiment = experimentName; + modelName = result.modelId; + } else { + printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); + } + // export model if provided in experiment + if (modelName) { + response = await model.describeModel(project, profile.token, modelName, true); + if (response.success) { + const result = filterObject(response.model, options); + const modelDesc = cleanInternalFields(result); + if (result.status && result.status === 'Published') { + const filepath = path.join(artifactsDir, 'models', `${modelName}.json`); + writeToFile(modelDesc, filepath); + manifest.model = [filepath]; + exports.model = modelName; + } else { + printError(`Only Published models can be exported. Model ${modelName} is in ${result.status}`); + } + } else { + printError(`Failed to export model ${modelName}: ${response.message}`, options); + } + } + let exportRun = runId; + if (!runId && options.latestRun) { + response = await experiments.listRuns(project, profile.token, experimentName, null, 1, JSON.stringify({ startTime: -1 })); + if (response.success) { + exportRun = response.result.runs.pop().runId; + } + } + if (exportRun) { + response = await experiments.describeRun(project, profile.token, experimentName, exportRun); + if (response.success) { + const result = filterObject(response.result, options); + const runDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, `experiments/${experimentName}/runs`, `${exportRun}.json`); + writeToFile(runDesc, filepath); + if (result.artifacts) { + await Promise.all(Object.values(result.artifacts) + .map(value => content.downloadContent(project, profile.token, value, false, path.join(artifactsDir, value)))); + } + manifest.run = [filepath]; + exports.run = exportRun; + } else { + printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); + } + } else { + printError('Provide runId or `--latestRun` option to export last run ', options); + } + updateManifest(manifest); + printSuccess(`Successfully exported ${JSON.stringify(exports)} in ${artifactsDir} and updated manifest file ${manifestFile}`); + } +}; + +module.exports.DeployExperimentCommand = DeployExperimentCommand; + /** * Cortex deploy command is to export Cortex artifacts (agent, snapshot, skill, action etc) for CI/CD deployment. This command: * 1. Exports cortex artifacts @@ -105,8 +187,16 @@ module.exports.DeploySnapshotCommand = class { const agents = new Agents(profile.url); const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { - promises.push(agents.describeAgentSnapshot(project, profile.token, snapshotId).then((response) => { + promises.push(agents.describeAgentSnapshot(project, profile.token, snapshotId).then(async (response) => { let result = JSON.parse(response); + // export dependant NLOps artifacts + if (_.size(result.dependencies.mlOps)) { + await Promise.all(result.dependencies.mlOps.map(async (ml) => { + if (_.size(ml.experiments)) { + await new DeployExperimentCommand(this.program).execute(ml.experiments[0], _.size(ml.runs) ? ml.runs[0] : null, options); + } + })); + } result = cleanInternalFields(result); let filename = `${snapshotId}.json`; if (options.yaml) { @@ -223,86 +313,6 @@ module.exports.DeployConnectionCommand = class { } }; -const DeployExperimentCommand = class { - constructor(program) { - this.program = program; - } - - async execute(modelName, experimentName, runId, options) { - const profile = loadProfile(options.profile); - const project = options.project || profile.project; - debug('%s.exportDeployExperimentCommand%s)', profile.name, experimentName); - - const manifest = {}; - const exports = {}; - const experiments = new Experiments(profile.url); - const model = new Models(profile.url); - const content = new Content(profile.url); - - let response; - response = await experiments.describeExperiment(project, profile.token, experimentName); - if (response.success) { - const result = filterObject(response.result, options); - const expDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, 'experiments', `${experimentName}.json`); - writeToFile(expDesc, filepath); - manifest.experiment = [filepath]; - exports.experiment = experimentName; - modelName = modelName || result.modelId; - } else { - printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); - } - // export model if provided or pick from experiment - if (modelName) { - response = await model.describeModel(project, profile.token, modelName, true); - if (response.success) { - const result = filterObject(response.model, options); - const modelDesc = cleanInternalFields(result); - if (result.status && result.status === 'Published') { - const filepath = path.join(artifactsDir, 'models', `${modelName}.json`); - writeToFile(modelDesc, filepath); - manifest.model = [filepath]; - exports.model = modelName; - } else { - printError(`Only Published models can be exported. Model ${modelName} is in ${result.status}`); - } - } else { - printError(`Failed to export model ${modelName}: ${response.message}`, options); - } - } - let exportRun = runId; - if (!runId && options.latestRun) { - response = await experiments.listRuns(project, profile.token, experimentName, null, 1, JSON.stringify({ startTime: -1 })); - if (response.success) { - exportRun = response.result.runs.pop().runId; - } - } - if (exportRun) { - response = await experiments.describeRun(project, profile.token, experimentName, exportRun); - if (response.success) { - const result = filterObject(response.result, options); - const runDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, `experiments/${experimentName}/runs`, `${exportRun}.json`); - writeToFile(runDesc, filepath); - if (result.artifacts) { - await Promise.all(Object.values(result.artifacts) - .map(value => content.downloadContent(project, profile.token, value, false, path.join(artifactsDir, value)))); - } - manifest.run = [filepath]; - exports.run = exportRun; - } else { - printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); - } - } else { - printError('Provide runId or `--latestRun` option to export last run ', options); - } - printSuccess(`Successfully exported ${JSON.stringify(exports)} in ${artifactsDir} and updated manifest file ${manifestFile}`); - updateManifest(manifest); - } -}; - -module.exports.DeployExperimentCommand = DeployExperimentCommand; - module.exports.DeploySkillCommand = class { constructor(program) { this.program = program; @@ -325,24 +335,44 @@ module.exports.DeploySkillCommand = class { manifest.skill = [filepath]; exports.skill = skillName; const dependencies = await addDependencies(profile.url, profile.token, project, 'Skill', skillName); + // export linked model/experiment of skill const mlOps = Object.fromEntries(dependencies.data.filter(d => ['Model', 'Experiment', 'ExperimentRun'].includes(d.type)).map(d => [d.type, d.name])); if (mlOps && mlOps.Experiment) { - await new DeployExperimentCommand(this.program).execute(mlOps.Model, mlOps.ExperimentRun, mlOps.Experiment); + await new DeployExperimentCommand(this.program).execute(mlOps.Experiment, (mlOps.ExperimentRun || '').split('-').pop(), options); } + // export actions of the skill const existingActions = result.actions.map(a => a.name); const actions = dependencies.data.filter(d => d.type === 'Action' && !existingActions.includes(d.name)).map(d => d.name); if (actions.length > 0) { const actionsClient = new Actions(profile.url); - actions.forEach((a) => { - response = actionsClient.describeAction(project, profile.token, a); + await Promise.all(actions.map(async (a) => { + response = await actionsClient.describeAction(project, profile.token, a); if (response.success) { const actionDesc = cleanInternalFields(filterObject(response.action, options)); writeToFile(actionDesc, path.join(artifactsDir, 'actions', `${a}.json`)); + } else { + printError(`Failed to export action ${a}: ${response.message}`, options); } - }); + })); manifest.action = actions.map(a => path.join(artifactsDir, 'actions', `${a}.json`)); exports.action = actions; } + // export types of skill + const types = dependencies.data.filter(d => d.type === 'Type').map(d => d.name); + if (types.length > 0) { + await Promise.all(types.map(async (type) => { + response = await catalog.describeType(project, profile.token, type); + if (response.success) { + const typeDesc = cleanInternalFields(filterObject(response.type, options)); + writeToFile(typeDesc, path.join(artifactsDir, 'types', `${type}.json`)); + } else { + printError(`Failed to export type ${type}: ${JSON.stringify(response)}`, options); + } + })); + manifest.type = types.map(a => path.join(artifactsDir, 'types', `${a}.json`)); + exports.type = types; + } + updateManifest(manifest); printSuccess(`Successfully exported ${JSON.stringify(Object.assign(exports, mlOps))} in ${artifactsDir} and updated manifest file ${manifestFile}`); } else { printError(`Failed to export skill ${skillName}: ${response.message}`, options); From 4a99c89cef9b5f18ca77d93d175236e68e51d782 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 31 Aug 2021 13:18:28 +0530 Subject: [PATCH 403/864] indent dependencies export json --- src/commands/deploy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 2e9c8c1d..8862d3ec 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -62,7 +62,7 @@ async function addDependencies(url, token, project, resourceType, resourceName) const dependencies = await assessments.getDependenciesOfResource(token, project, resourceType, resourceName); if (dependencies.data) { const depsFilePath = path.join(artifactsDir, resourceName, '_dependencies.json'); - writeToFile(JSON.stringify(dependencies), depsFilePath); + writeToFile(JSON.stringify(dependencies, null, 2), depsFilePath); const depsManifest = {}; depsManifest[`_dependencies.${resourceType}.${resourceName}`] = [depsFilePath]; updateManifest(depsManifest); From 4a23c598952104e13f01e5756bba651cdf7272e2 Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 31 Aug 2021 14:45:17 +0530 Subject: [PATCH 404/864] fixed review comments --- src/commands/deploy.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 8862d3ec..3bce0dc7 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -124,7 +124,10 @@ const DeployExperimentCommand = class { if (!runId && options.latestRun) { response = await experiments.listRuns(project, profile.token, experimentName, null, 1, JSON.stringify({ startTime: -1 })); if (response.success) { - exportRun = response.result.runs.pop().runId; + const { runs } = response.result; + if (_.size(runs)) { + exportRun = runs[0].runId; + } } } if (exportRun) { From 1c8d2580b5ff8d9272a730cc82d8c51fa40ba2eb Mon Sep 17 00:00:00 2001 From: sdevarakonda-CS Date: Wed, 1 Sep 2021 15:31:08 +0530 Subject: [PATCH 405/864] updated mission invoke agentname --- bin/cortex-missions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index c355e8bc..490a5647 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -90,7 +90,7 @@ program .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { - new InvokeAgentServiceCommand(program).execute('online-learner-agent', 'online_learner_service', options); + new InvokeAgentServiceCommand(program).execute(missionName+'-online-learner-agent', 'online_learner_service', options); } catch (err) { console.error(chalk.red(err.message)); } From f6ffec0f4214a197c9f2aa9dbd93508904072c0f Mon Sep 17 00:00:00 2001 From: clee Date: Wed, 1 Sep 2021 18:38:07 -0500 Subject: [PATCH 406/864] new gocd pipeline config --- cortex-cli.gocd.yaml | 58 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 cortex-cli.gocd.yaml diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml new file mode 100644 index 00000000..4cbe2fd5 --- /dev/null +++ b/cortex-cli.gocd.yaml @@ -0,0 +1,58 @@ +format_version: 10 +pipelines: + cortex-cli: + group: fabric6 + materials: + cortex-cli: + git: git@github.com:CognitiveScale/cortex-cli.git + branch: develop + stages: + - build: + clean_workspace: yes + jobs: + Build: + elastic_profile_id: gocd-test-agent-dind + artifacts: + - build: + source: cruise-output/buildReport*.json + - build: + source: devBranchRevision.json + tasks: + - script: | + set -eux + git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git + ./gocd-pipeline-scripts/common/c12e-common.sh dev + ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli + cortex-cli-master: + group: fabric6 + environment_variables: + DOCKER_SECRET_FLAG: "id=npmrc,src=~/.npmrc" + materials: + cortex-cli: + git: git@github.com:CognitiveScale/cortex-cli.git + branch: master + cortex-cli-develop: + type: dependency + pipeline: cortex-cli + stage: build + stages: + - build: + clean_workspace: yes + jobs: + Build: + elastic_profile_id: gocd-test-agent-dind + artifacts: + - build: + source: masterBranchRevision.json + tasks: + - fetch: + pipeline: cortex-cli + stage: build + job: Build + source: devBranchRevision.json + is_file: yes + - script: | + mv devBranchRevision.json masterBranchRevision.json + git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git + ./gocd-pipeline-scripts/common/c12e-common.sh master + ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli From 7cc2dcda0820cf3f5135e28f319d1a5999fa3545 Mon Sep 17 00:00:00 2001 From: clee Date: Wed, 1 Sep 2021 22:34:44 -0500 Subject: [PATCH 407/864] linting --- bin/cortex-missions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 490a5647..f8c6d75d 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -90,7 +90,7 @@ program .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { - new InvokeAgentServiceCommand(program).execute(missionName+'-online-learner-agent', 'online_learner_service', options); + new InvokeAgentServiceCommand(program).execute(`${missionName}-online-learner-agent`, 'online_learner_service', options); } catch (err) { console.error(chalk.red(err.message)); } From d66cd731abcbc208a89224317a624f3503a383b1 Mon Sep 17 00:00:00 2001 From: clee Date: Wed, 1 Sep 2021 22:39:51 -0500 Subject: [PATCH 408/864] audit fixes --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index dbe21bf6..2db95c27 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6128,9 +6128,9 @@ } }, "tar": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.5.tgz", - "integrity": "sha512-FiK6MQyyaqd5vHuUjbg/NpO8BuEGeSXcmlH7Pt/JkugWS8s0w8nKybWjHDJiwzCAIKZ66uof4ghm4tBADjcqRA==", + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", From 598a02639f69eff81a001b6aa33abbf882f406fb Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 2 Sep 2021 15:49:00 -0500 Subject: [PATCH 409/864] FAB-2518 fix vulns, fix linting Use newer js-yaml that is YAML 1.2 complaint, add -k for k8s resources Add better error is config file is invalid --- .eslintrc.json | 1 + bin/cortex-actions.js | 1 + bin/cortex-agents.js | 2 - bin/cortex-connections.js | 1 - bin/cortex-content.js | 2 - bin/cortex-models.js | 2 - bin/cortex-roles.js | 1 - bin/cortex-users.js | 1 - bin/cortex.js | 2 +- generate_docs.js | 45 +- package-lock.json | 2380 ++++++++++++++------------------- package.json | 43 +- src/client/actions.js | 46 +- src/client/agents.js | 28 +- src/client/apiServerClient.js | 93 +- src/client/assessments.js | 40 +- src/client/catalog.js | 96 +- src/client/connections.js | 14 +- src/client/content.js | 10 +- src/client/experiments.js | 34 +- src/client/models.js | 23 +- src/client/roles.js | 62 +- src/client/secrets.js | 14 +- src/client/users.js | 32 +- src/commands/actions.js | 11 +- src/commands/agents.js | 8 +- src/commands/assessments.js | 14 +- src/commands/campaigns.js | 10 +- src/commands/connections.js | 4 +- src/commands/content.js | 3 +- src/commands/deploy.js | 18 +- src/commands/docker.js | 2 +- src/commands/experiments.js | 4 +- src/commands/models.js | 8 +- src/commands/plopfile.js | 2 +- src/commands/secrets.js | 2 +- src/commands/skills.js | 6 +- src/commands/types.js | 2 +- src/commands/utils.js | 43 +- src/compatibility.js | 12 +- src/config.js | 55 +- test/docker-registry.js | 1 - 42 files changed, 1367 insertions(+), 1811 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 218b9a0d..284b9fca 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -4,6 +4,7 @@ "no-underscore-dangle": [ 0 ], + "max-classes-per-file": "off", "no-console": "off", // This is a cli app.. "indent": 0, "global-require":"off", diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index c0afafc9..64662bdf 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -119,6 +119,7 @@ program .option('--image, --docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') .option('--jobTimeout [jobTimeout]', 'Job Timeout in seconds, this will marked the job as FAILED (default: no timeout)') + .option('-k --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill') .option('--no-compat', 'Ignore API compatibility checks') .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('--port [port]', 'Docker port') // '9091' diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index b4ffafab..fa4c7b3f 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -110,7 +110,6 @@ program } })); - program .command('get-activation ') .description('Get dataset or service activation') @@ -159,7 +158,6 @@ program } })); - program .command('list-services ') .description('List agent service endpoints') diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index e29f7e52..2fc903b7 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -30,7 +30,6 @@ const { program.description('Work with Cortex Connections'); - // List Connections program .command('list') diff --git a/bin/cortex-content.js b/bin/cortex-content.js index a43cab2b..d1a61afb 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -30,7 +30,6 @@ const { program.description('Work with Cortex Contents'); - // List Content program .command('list') @@ -104,5 +103,4 @@ program } })); - program.parse(process.argv); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index fc9e6fee..ac33f6fc 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -74,7 +74,6 @@ program } })); - // Delete Model program .command('delete ') @@ -161,5 +160,4 @@ program } })); - program.parse(process.argv); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 25929434..c5e9ec7c 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -67,7 +67,6 @@ program.command('describe ') } })); - program.command('delete ') .description('Delete a role and remove grants/assignments') .option('--no-compat', 'Ignore API compatibility checks') diff --git a/bin/cortex-users.js b/bin/cortex-users.js index fdb5562d..42da863e 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -47,7 +47,6 @@ program.command('describe') } })); - program.command('grant ') .description('Manage user grants') .option('--no-compat', 'Ignore API compatibility checks') diff --git a/bin/cortex.js b/bin/cortex.js index c28bd6f6..b81cfb6c 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -47,7 +47,7 @@ program .command('users [cmd]', 'Work with a Cortex Users'); program.parse(process.argv, { noActionHandler: () => {} }); -if (!program.commands.map(cmd => cmd._name).includes(program.args[0])) { +if (!program.commands.map((cmd) => cmd._name).includes(program.args[0])) { program.outputHelp(identity); process.exit(1); } diff --git a/generate_docs.js b/generate_docs.js index ddcb9bd3..7620d609 100644 --- a/generate_docs.js +++ b/generate_docs.js @@ -5,33 +5,33 @@ const _ = require('lodash'); const fs = require('fs'); // read command args if passed -const sourcedir = _.get(process.argv,'[2]','.') -const outfile = _.get(process.argv,'[3]'); +const sourcedir = _.get(process.argv, '[2]', '.'); +const outfile = _.get(process.argv, '[3]'); // use top level commands as driver -const rootJson = require(`${sourcedir}/cortex.json`) +const rootJson = require(`${sourcedir}/cortex.json`); // replace /n/t with HTML equivs const cleanString = (s) => s .replace(/\n/g, '') .replace(/\t/g, '') - .replace(//g,'>`') + .replace(//g, '>`'); // print sub-command flags as string const optionRow = (opts) => _.join( - _.sortBy(opts,['flags']).map( - (opt) => `\`${opt.flags}\`${ _.isEmpty(opt.defaultValue) ? '' : ` (*default:* \`${opt.defaultValue }\`)`} - ${cleanString(opt.description)}` + _.sortBy(opts, ['flags']).map( + (opt) => `\`${opt.flags}\`${_.isEmpty(opt.defaultValue) ? '' : ` (*default:* \`${opt.defaultValue}\`)`} - ${cleanString(opt.description)}`, ), - '
' -) + '
', +); const subcmdTable = (subcmd) => `| Command | Description | Options | -| ------- | ----------- | ------- |\n` + +| ------- | ----------- | ------- |\n${ _.join( - _.sortBy(subcmd, ['name']).map((cmd) => `| \`${cmd.name} ${cmd.usage }\` | ${cmd.description } | ${optionRow(cmd.options)} |`), - '\n' -) + _.sortBy(subcmd, ['name']).map((cmd) => `| \`${cmd.name} ${cmd.usage}\` | ${cmd.description} | ${optionRow(cmd.options)} |`), + '\n', +)}`; const cmdHeading = (cmd) => ` ## ${_.capitalize(cmd.name)} @@ -73,18 +73,19 @@ cortex [command] [options] \`--query\` option to [filter the results](/getting-started/use-cli.md). * The output results for \`describe\` commands display in the format of the document it is describing. This can include YAML, JSON, or other formats. -` +`; const body = _.join( - _.sortBy(rootJson, ["name"]).map( - (cmd) =>`${cmdHeading(cmd)}\n`+ - `${subcmdTable(require(`${sourcedir}/cortex-${cmd.name}.json`))}` + _.sortBy(rootJson, ['name']).map( + (cmd) => `${cmdHeading(cmd)}\n` + + `${subcmdTable(require(`${sourcedir}/cortex-${cmd.name}.json`))}`, ), -''); -const output = header + body +'', +); +const output = header + body; // if outfile write to file ... if (_.isEmpty(outfile)) { - console.log(output) + console.log(output); } else { - fs.writeFileSync(outfile, output) -} \ No newline at end of file + fs.writeFileSync(outfile, output); +} diff --git a/package-lock.json b/package-lock.json index 2db95c27..6d4be3b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -91,6 +91,49 @@ "regenerator-runtime": "^0.13.4" } }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "@gar/promisify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + }, "@hapi/address": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", @@ -134,6 +177,23 @@ "@hapi/hoek": "^9.0.0" } }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, "@nodelib/fs.scandir": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", @@ -157,10 +217,14 @@ "fastq": "^1.6.0" } }, - "@npmcli/ci-detect": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", - "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==" + "@npmcli/fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", + "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } }, "@npmcli/move-file": { "version": "1.1.2", @@ -177,14 +241,14 @@ "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" }, "@sindresorhus/is": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz", - "integrity": "sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", + "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" }, "@szmarczak/http-timer": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", - "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "requires": { "defer-to-connect": "^2.0.0" } @@ -195,9 +259,9 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/cacheable-request": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", - "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", "requires": { "@types/http-cache-semantics": "*", "@types/keyv": "*", @@ -220,9 +284,9 @@ } }, "@types/http-cache-semantics": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", - "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/inquirer": { "version": "6.5.0", @@ -248,9 +312,9 @@ "dev": true }, "@types/keyv": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", - "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz", + "integrity": "sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg==", "requires": { "@types/node": "*" } @@ -291,6 +355,12 @@ "@types/node": "*" } }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", @@ -302,9 +372,9 @@ } }, "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "acorn-jsx": { @@ -373,15 +443,9 @@ } }, "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-regex": { @@ -398,9 +462,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", @@ -408,12 +472,9 @@ } }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "arr-diff": { "version": "4.0.0", @@ -446,117 +507,6 @@ "es-abstract": "^1.18.0-next.2", "get-intrinsic": "^1.1.1", "is-string": "^1.0.5" - }, - "dependencies": { - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } - } - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } } }, "array-slice": { @@ -613,13 +563,13 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "audit-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-3.0.0.tgz", - "integrity": "sha512-VK2C2lY+I3I78fKgYtYxOdhl57DOINDqgx2IYwFpLydYxmwIf76XSU+bHyk2l/Ab7Nbx5QhA8Z11jk9phf/ShA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-4.1.0.tgz", + "integrity": "sha512-UNmf/2diiuqA7HmegyD1n2vIZ+TPMbXO6ud2nb1MOdnoeFuecaBq3fcUo0ZLISWQx2yxgIz76JaEEbRlRZhRpA==", "dev": true, "requires": { "JSONStream": "^1.3.5", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.3", "event-stream": "4.0.1", "readline-transform": "1.0.0", "semver": "^7.0.0", @@ -682,33 +632,57 @@ } }, "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", + "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", "requires": { "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.0", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-regex": "^5.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } @@ -747,10 +721,11 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "cacache": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz", - "integrity": "sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "requires": { + "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -787,21 +762,21 @@ } }, "cacheable-lookup": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz", - "integrity": "sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==" + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" }, "cacheable-request": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", - "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", "keyv": "^4.0.0", "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", + "normalize-url": "^6.0.1", "responselike": "^2.0.0" }, "dependencies": { @@ -816,13 +791,13 @@ } }, "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "get-intrinsic": "^1.0.2" } }, "callsites": { @@ -843,19 +818,20 @@ "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true }, "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.1.0", + "pathval": "^1.1.1", "type-detect": "^4.0.5" } }, @@ -869,9 +845,9 @@ } }, "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -914,19 +890,19 @@ "dev": true }, "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.1.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "readdirp": "~3.6.0" } }, "chownr": { @@ -996,12 +972,6 @@ } } }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -1087,9 +1057,9 @@ } }, "commander": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", - "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==" + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", + "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==" }, "component-emitter": { "version": "1.3.0", @@ -1101,6 +1071,12 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "confusing-browser-globals": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", + "dev": true + }, "constant-case": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", @@ -1110,27 +1086,6 @@ "upper-case": "^1.1.1" } }, - "contains-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-1.0.0.tgz", - "integrity": "sha1-NFizMhhWA+ju0Y9RjUoQiIo6vJE=", - "dev": true, - "requires": { - "normalize-path": "^2.1.1", - "path-starts-with": "^1.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -1142,9 +1097,9 @@ "integrity": "sha512-fRjhg3NeouotRoIV0L1FdchA6CK7ZD+lyINyMoz19SyV+ROpC4noS1xItWHFtwZdlqfMfVPJEyEGdfri2bD1pA==" }, "cross-fetch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", - "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", "requires": { "node-fetch": "2.6.1" } @@ -1153,6 +1108,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1160,11 +1116,11 @@ } }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "decamelize": { @@ -1217,9 +1173,9 @@ } }, "defer-to-connect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", - "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-properties": { "version": "1.1.3", @@ -1308,9 +1264,9 @@ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, "dir-glob": { @@ -1373,6 +1329,15 @@ "once": "^1.4.0" } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, "err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", @@ -1388,23 +1353,28 @@ } }, "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" } }, "es-to-primitive": { @@ -1418,222 +1388,336 @@ "is-symbol": "^1.0.2" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "sprintf-js": "~1.0.2" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { - "color-name": "1.1.3" + "estraverse": "^5.1.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "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" + "flat-cache": "^3.0.4" } }, - "has-flag": { + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { - "minimist": "^1.2.5" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "strip-ansi": { + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "ansi-regex": "^5.0.0" } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "table": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", "dev": true, "requires": { - "isexe": "^2.0.0" + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + } + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" } } } }, "eslint-config-airbnb-base": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz", - "integrity": "sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", + "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", "dev": true, "requires": { - "eslint-restricted-globals": "^0.1.1", - "object.assign": "^4.1.0", - "object.entries": "^1.0.4" + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.2" } }, "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "debug": "^3.2.7", + "resolve": "^1.20.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "is-core-module": { + "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" + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } } } }, "eslint-module-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", - "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", + "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", "dev": true, "requires": { "debug": "^3.2.7", @@ -1652,27 +1736,26 @@ } }, "eslint-plugin-import": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.2.tgz", - "integrity": "sha512-LmNoRptHBxOP+nb0PIKz1y6OSzCJlB+0g0IGS3XV4KaKk2q4szqQ6s6F1utVf5ZRkxk/QOTjdxe7v4VjS99Bsg==", + "version": "2.24.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", + "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", "dev": true, "requires": { "array-includes": "^3.1.3", "array.prototype.flat": "^1.2.4", - "contains-path": "^1.0.0", "debug": "^2.6.9", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.1", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.6.2", "find-up": "^2.0.0", "has": "^1.0.3", - "is-core-module": "^2.4.0", + "is-core-module": "^2.6.0", "minimatch": "^3.0.4", - "object.values": "^1.1.3", + "object.values": "^1.1.4", "pkg-up": "^2.0.0", "read-pkg-up": "^3.0.0", "resolve": "^1.20.0", - "tsconfig-paths": "^3.9.0" + "tsconfig-paths": "^3.11.0" }, "dependencies": { "debug": { @@ -1703,9 +1786,9 @@ } }, "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "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" @@ -1769,19 +1852,13 @@ } } }, - "eslint-restricted-globals": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", - "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=", - "dev": true - }, "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, @@ -1801,20 +1878,21 @@ "dev": true }, "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" } }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true }, "esquery": { "version": "1.3.1", @@ -1877,32 +1955,6 @@ "through": "^2.3.8" } }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -2122,15 +2174,6 @@ "pend": "~1.2.0" } }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "file-entry-cache": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", @@ -2202,13 +2245,10 @@ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" }, "flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true }, "flat-cache": { "version": "2.0.1", @@ -2252,9 +2292,9 @@ } }, "form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -2289,9 +2329,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, @@ -2319,9 +2359,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", - "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -2340,9 +2380,9 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "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", @@ -2361,11 +2401,18 @@ } }, "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "requires": { - "ini": "^1.3.5" + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + } } }, "global-modules": { @@ -2401,10 +2448,21 @@ } }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + }, + "dependencies": { + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } }, "globby": { "version": "10.0.2", @@ -2429,11 +2487,11 @@ } }, "got": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/got/-/got-11.7.0.tgz", - "integrity": "sha512-7en2XwH2MEqOsrK0xaKhbWibBoZqy+f1RSUoIeF1BLcnf+pyQdDsljWMfmOh+QKJwuvDIiKx38GtPh5wFdGGjg==", + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", "requires": { - "@sindresorhus/is": "^3.1.1", + "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", @@ -2452,18 +2510,30 @@ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "graphql": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.4.0.tgz", - "integrity": "sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA==" + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.2.tgz", + "integrity": "sha512-dZjLPWNQqYv0dqV2RNbiFed0LtSp6yd4jchsDGnuhDKa9OQHJYCfovaOEvY91w9gqbYO7Se9LKDTl3xxYva/3w==" }, "graphql-request": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.3.0.tgz", - "integrity": "sha512-NHj65WSIUh8j7TBYgzWU0fqvLfxrqFDrLG8nZUh+IREZw50ljR6JXlXRkr52/fL/46wpItiQNLDrG+UZI+KmzA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.5.0.tgz", + "integrity": "sha512-Io89QpfU4rqiMbqM/KwMBzKaDLOppi8FU8sEccCE4JqCgz95W9Q8bvxQ4NfPALLSMvg9nafgg8AkYRmgKSlukA==", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } } }, "growl": { @@ -2519,11 +2589,20 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -2623,9 +2702,9 @@ } }, "http2-wrapper": { - "version": "1.0.0-beta.5.2", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", - "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "requires": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -2640,11 +2719,6 @@ "debug": "4" } }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" - }, "humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", @@ -2654,9 +2728,9 @@ } }, "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -2712,104 +2786,15 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" } }, "interpret": { @@ -2861,10 +2846,13 @@ "dev": true }, "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } }, "is-binary-path": { "version": "2.1.0", @@ -2876,47 +2864,19 @@ } }, "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { - "call-bind": "^1.0.2" - }, - "dependencies": { - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - }, "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-core-module": { @@ -2951,10 +2911,13 @@ } }, "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-descriptor": { "version": "0.1.6", @@ -2997,12 +2960,12 @@ } }, "is-installed-globally": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", - "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" } }, "is-lambda": { @@ -3019,9 +2982,9 @@ } }, "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "dev": true }, "is-number": { @@ -3030,10 +2993,13 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-path-cwd": { "version": "2.2.0", @@ -3045,6 +3011,12 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -3054,12 +3026,13 @@ } }, "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-relative": { @@ -3070,24 +3043,22 @@ "is-unc-path": "^1.0.0" } }, - "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==" - }, "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" } }, "is-unc-path": { @@ -3098,6 +3069,12 @@ "unc-path-regex": "^0.1.2" } }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, "is-upper-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", @@ -3151,12 +3128,11 @@ "dev": true }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "json-buffer": { @@ -3271,76 +3247,43 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { - "chalk": "^2.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" } }, "lower-case": { @@ -3369,18 +3312,13 @@ "yallist": "^4.0.0" } }, - "macos-release": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", - "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==" - }, "make-fetch-happen": { - "version": "8.0.14", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "requires": { "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", + "cacache": "^15.2.0", "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", @@ -3391,8 +3329,9 @@ "minipass-fetch": "^1.3.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", + "socks-proxy-agent": "^6.0.0", "ssri": "^8.0.0" } }, @@ -3423,11 +3362,6 @@ "object-visit": "^1.0.0" } }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3536,16 +3470,16 @@ } }, "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" }, "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "requires": { - "mime-db": "1.44.0" + "mime-db": "1.49.0" } }, "mimic-fn": { @@ -3588,9 +3522,9 @@ } }, "minipass-fetch": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", - "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -3665,246 +3599,193 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mocha": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.1.tgz", - "integrity": "sha512-3qQsu3ijNS3GkWcccT5Zw0hf/rWvu1fTN9sPvEd81hlwsr30GX2GcDSSoBxo24IR8FelmrAydGC6/1J5QQP4WA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==", "dev": true, "requires": { - "ansi-colors": "3.2.3", + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", + "chokidar": "3.5.2", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.7", "growl": "1.10.5", "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", "minimatch": "3.0.4", - "mkdirp": "0.5.3", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", + "ms": "2.1.3", + "nanoid": "3.1.23", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" + "workerpool": "6.1.5", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true }, "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "ms": "2.1.2" + }, + "dependencies": { + "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 + } } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "p-locate": "^5.0.0" } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "p-limit": "^3.0.2" } }, - "supports-color": { + "strip-ansi": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "ansi-regex": "^5.0.0" } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { - "isexe": "^2.0.0" + "has-flag": "^4.0.0" } }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", "dev": true }, "nanomatch": { @@ -3931,6 +3812,11 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -3951,9 +3837,9 @@ } }, "nock": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.0.4.tgz", - "integrity": "sha512-alqTV8Qt7TUbc74x1pKRLSENzfjp4nywovcJgi/1aXDiUxXdt7TkruSTF5MDWPP7UoPVgea4F9ghVdmX0xxnSA==", + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.3.tgz", + "integrity": "sha512-YKj0rKQWMGiiIO+Y65Ut8OEgYM3PplLU2+GAhnPmqZdBd6z5IskgdBqWmjzA6lH3RF0S2a3wiAlrMOF5Iv2Jeg==", "dev": true, "requires": { "debug": "^4.1.0", @@ -3962,24 +3848,6 @@ "propagate": "^2.0.0" } }, - "node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -4136,38 +4004,26 @@ "dev": true }, "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, "npm-package-arg": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.2.tgz", - "integrity": "sha512-6Eem455JsSMJY6Kpd3EyWE+n5hC+g9bSyHr9K9U2zqZb7+02+hObQ2c0+8iDk/mNF+8r1MhY44WypKJAkySIYA==", + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "requires": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "npm-registry-fetch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", - "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "requires": { - "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^6.0.0", - "make-fetch-happen": "^8.0.9", + "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", "minipass-fetch": "^1.3.0", "minipass-json-stream": "^1.0.1", @@ -4175,14 +4031,6 @@ "npm-package-arg": "^8.0.0" } }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -4222,9 +4070,9 @@ } }, "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", "dev": true }, "object-keys": { @@ -4253,78 +4101,26 @@ "object-keys": "^1.1.1" } }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.entries": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", - "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "has": "^1.0.3" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" } }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "object.entries": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "es-abstract": "^1.18.2" } }, "object.map": { @@ -4345,126 +4141,14 @@ } }, "object.values": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", - "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - }, - "dependencies": { - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } - } - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } - } - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } + "es-abstract": "^1.18.2" } }, "once": { @@ -4564,24 +4248,15 @@ } } }, - "os-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.0.tgz", - "integrity": "sha512-caABzDdJMbtykt7GmSogEat3faTKQhmZf0BS5l/pZGmP0vPWQjXWqOhbLyK+b6j2/DQPmEvYdzLXJXXLJNVDNg==", - "requires": { - "macos-release": "^2.2.0", - "windows-release": "^4.0.0" - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", - "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-limit": { "version": "2.3.0", @@ -4690,16 +4365,11 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true }, "path-parse": { "version": "1.0.7", @@ -4719,26 +4389,6 @@ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, - "path-starts-with": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-starts-with/-/path-starts-with-1.0.0.tgz", - "integrity": "sha1-soJDAV6LE43lcmgqxS2kLmRq2E4=", - "dev": true, - "requires": { - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -4749,9 +4399,9 @@ } }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "pause-stream": { @@ -5013,6 +4663,15 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -5086,12 +4745,12 @@ } }, "readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "picomatch": "^2.0.4" + "picomatch": "^2.2.1" } }, "readline-transform": { @@ -5128,12 +4787,6 @@ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", @@ -5150,6 +4803,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -5171,9 +4830,9 @@ } }, "resolve-alpn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", - "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, "resolve-dir": { "version": "1.0.1", @@ -5289,6 +4948,15 @@ "color-convert": "^1.9.0" } }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -5394,6 +5062,18 @@ "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } } }, "eslint-scope": { @@ -5626,6 +5306,12 @@ "tslib": "^1.9.0" } }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", @@ -5640,9 +5326,12 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", - "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } }, "sentence-case": { "version": "2.1.1", @@ -5653,6 +5342,15 @@ "upper-case-first": "^1.1.2" } }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -5684,6 +5382,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -5691,7 +5390,19 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } }, "signal-exit": { "version": "3.0.3", @@ -5741,9 +5452,9 @@ } }, "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "snake-case": { "version": "2.1.0", @@ -5883,13 +5594,13 @@ } }, "socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz", + "integrity": "sha512-FIgZbQWlnjVEQvMkylz64/rUggGtrKstPnx8OZyYFG0tAFR8CSBtpXxSwbFLHyeXFn/cunFL7MpuSOvDSOPo9g==", "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" } }, "source-map": { @@ -5941,9 +5652,9 @@ } }, "spdx-license-ids": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz", - "integrity": "sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g==", + "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": { @@ -5966,7 +5677,8 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "ssri": { "version": "8.0.1", @@ -6041,23 +5753,23 @@ } }, "string.prototype.trimend": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", - "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", - "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "strip-ansi": { @@ -6074,15 +5786,10 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { @@ -6140,11 +5847,6 @@ "yallist": "^4.0.0" } }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -6221,9 +5923,9 @@ } }, "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -6255,7 +5957,8 @@ "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true }, "uglify-js": { "version": "3.13.5", @@ -6273,14 +5976,6 @@ "has-bigints": "^1.0.1", "has-symbols": "^1.0.2", "which-boxed-primitive": "^1.0.2" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } } }, "unc-path-regex": { @@ -6446,6 +6141,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -6513,14 +6209,6 @@ "string-width": "^4.0.0" } }, - "windows-release": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", - "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", - "requires": { - "execa": "^4.0.2" - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -6532,6 +6220,12 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, + "workerpool": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", + "dev": true + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -6586,9 +6280,9 @@ } }, "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": { @@ -6626,134 +6320,28 @@ } }, "yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -6765,6 +6353,12 @@ "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index 8cee711c..1b6ce8d4 100644 --- a/package.json +++ b/package.json @@ -31,44 +31,43 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "@hapi/joi": "17.1.1", - "boxen": "4.2.0", - "chalk": "4.0.0", + "boxen": "5.0.1", + "chalk": "4.1.2", "cli-table3": "0.6.0", "co": "4.6.0", "co-prompt": "1.0.0", - "commander": "6.2.0", - "debug": "4.1.1", + "commander": "8.1.0", + "debug": "4.3.2", "find-package-json": "1.2.0", - "form-data": "3.0.0", + "form-data": "4.0.0", "get-stream": "6.0.1", - "glob": "7.1.6", - "got": "11.7.0", - "graphql": "15.4.0", - "graphql-request": "3.3.0", - "is-installed-globally": "0.3.1", + "glob": "7.1.7", + "got": "11.8.2", + "graphql": "15.5.2", + "graphql-request": "3.5.0", + "is-installed-globally": "0.4.0", "jmespath": "0.15.0", "jose": "2.0.5", - "js-yaml": "3.13.1", + "js-yaml": "4.1.0", "lodash": "4.17.21", - "moment": "2.24.0", - "npm-registry-fetch": "9.0.0", - "os-name": "4.0.0", + "moment": "2.29.1", + "npm-registry-fetch": "11.0.0", "plop": "2.7.4", - "semver": "7.1.3", + "semver": "7.3.5", "timeago.js": "4.0.2", "url-join": "4.0.1", "url-parse": "1.5.3", "yauzl": "2.10.0" }, "devDependencies": { - "audit-ci": "3.0.0", - "chai": "4.2.0", + "audit-ci": "4.1.0", + "chai": "4.3.4", "chai-as-promised": "7.1.1", - "eslint": "5.16.0", - "eslint-config-airbnb-base": "13.1.0", - "eslint-plugin-import": "2.23.2", - "mocha": "7.1.1", - "nock": "13.0.4", + "eslint": "7.32.0", + "eslint-config-airbnb-base": "14.2.1", + "eslint-plugin-import": "2.24.2", + "mocha": "9.1.1", + "nock": "13.1.3", "rewire": "5.0.0" } } diff --git a/src/client/actions.js b/src/client/actions.js index 4ac9b0d1..22e395b2 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -24,7 +24,7 @@ const { module.exports = class Actions { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/actions`; + this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/actions`; } async deployAction(projectId, token, actionInst) { @@ -53,8 +53,8 @@ module.exports = class Actions { 'user-agent': getUserAgent(), json: body, }).json() - .then(res => ({ success: true, message: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, message: res })) + .catch((err) => constructError(err)); } listActions(projectId, token) { @@ -65,8 +65,8 @@ module.exports = class Actions { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(actions => actions) - .catch(err => constructError(err)); + .then((actions) => actions) + .catch((err) => constructError(err)); } describeAction(projectId, token, actionName) { @@ -76,8 +76,8 @@ module.exports = class Actions { return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` } }) .json() - .then(action => action) - .catch(err => constructError(err)); + .then((action) => action) + .catch((err) => constructError(err)); } getLogsAction(projectId, token, actionName) { @@ -97,7 +97,7 @@ module.exports = class Actions { } return logs; }) - .catch(err => constructError(err)); + .catch((err) => constructError(err)); } deleteAction(projectId, token, actionName) { @@ -110,8 +110,8 @@ module.exports = class Actions { 'user-agent': getUserAgent(), }) .json() - .then(action => ({ success: true, action })) - .catch(err => constructError(err)); + .then((action) => ({ success: true, action })) + .catch((err) => constructError(err)); } taskLogs(projectId, token, jobId, taskId) { @@ -125,8 +125,8 @@ module.exports = class Actions { 'user-agent': getUserAgent(), }) .json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } taskCancel(projectId, token, jobId, taskId) { @@ -140,8 +140,8 @@ module.exports = class Actions { 'user-agent': getUserAgent(), }) .json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } taskStatus(projectId, token, jobId, taskId) { @@ -159,7 +159,7 @@ module.exports = class Actions { debug('resBody (with provider status as well): %s', res); return _.omit(res, '_providerStatus'); }) - .catch(err => constructError(err)); + .catch((err) => constructError(err)); } jobListTasks(projectId, token, jobId) { @@ -173,8 +173,8 @@ module.exports = class Actions { 'user-agent': getUserAgent(), }) .json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } taskStats(projectId, token, jobId) { @@ -188,8 +188,8 @@ module.exports = class Actions { 'user-agent': getUserAgent(), }) .json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } listTasksByActivation(projectId, token, activationId) { @@ -202,8 +202,8 @@ module.exports = class Actions { 'user-agent': getUserAgent(), }) .json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } getConfig(projectId, token) { @@ -216,8 +216,8 @@ module.exports = class Actions { 'user-agent': getUserAgent(), }) .json() - .then(config => ({ success: true, config })) - .catch(err => constructError(err)); + .then((config) => ({ success: true, config })) + .catch((err) => constructError(err)); } static getCanonicalJobId(jobId) { diff --git a/src/client/agents.js b/src/client/agents.js index f063b42f..6b958845 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -21,7 +21,7 @@ const { constructError, getUserAgent, checkProject } = require('../commands/util module.exports = class Agents { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}`; + this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}`; } invokeAgentService(projectId, token, agentName, serviceName, params) { @@ -34,8 +34,8 @@ module.exports = class Agents { 'user-agent': getUserAgent(), json: params, }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } invokeSkill(projectId, token, skillName, inputName, params) { @@ -48,8 +48,8 @@ module.exports = class Agents { 'user-agent': getUserAgent(), json: params, }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } getActivation(projectId, token, activationId, verbose, report) { @@ -68,8 +68,8 @@ module.exports = class Agents { } return got .get(endpoint, opts).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } listActivations(projectId, token, params) { @@ -85,8 +85,8 @@ module.exports = class Agents { } return got .get(endpoint, opts).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } listAgentSnapshots(projectId, token, agentName) { @@ -98,8 +98,8 @@ module.exports = class Agents { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } describeAgentSnapshot(projectId, token, snapshotId, output) { @@ -112,7 +112,7 @@ module.exports = class Agents { 'user-agent': getUserAgent(), searchParams: { output, deps: true }, }).text() - .catch(err => constructError(err)); + .catch((err) => constructError(err)); } createAgentSnapshot(projectId, token, snapshot) { @@ -125,7 +125,7 @@ module.exports = class Agents { 'user-agent': getUserAgent(), json: snapshot, }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } }; diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index d4fb6c80..56036e39 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -18,109 +18,88 @@ module.exports = class ApiServerClient { /** * Query project using graphql + * @param token * @param projectId * @return {Promise} */ async getProject(token, projectId) { - try { - const fetched = await this._client(token) - .request(gql`query { projectByName( name: "${projectId}" ){name, title, description}}`); - return _.get(fetched, 'projectByName'); - } catch (err) { - throw err; - } + const fetched = await this._client(token) + .request(gql`query { projectByName( name: "${projectId}" ){name, title, description}}`); + return _.get(fetched, 'projectByName'); } - /** * Query project using graphql - * @param projectId + * @param token * @return {Promise} */ async listProjects(token) { - try { - const fetched = await this._client(token) - .request(gql`{ projects { name, title, description} }`); - return _.get(fetched, 'projects', []); - } catch (err) { - throw err; - } + const fetched = await this._client(token) + .request(gql`{ projects { name, title, description} }`); + return _.get(fetched, 'projects', []); } /** * Query project using graphql - * @param projectId + * @param token + * @param projDef * @return {Promise} */ async createProject(token, projDef) { - try { - const fetched = await this._client(token) - .request(gql`mutation NewProject($input: CreateProjectInput!) { createProject(input: $input){name}}`, { input: projDef }); - return _.get(fetched, 'createProject', {}); - } catch (err) { - throw err; - } + const fetched = await this._client(token) + .request(gql`mutation NewProject($input: CreateProjectInput!) { createProject(input: $input){name}}`, { input: projDef }); + return _.get(fetched, 'createProject', {}); } /** * Fetch campaign using graphql - * @paa + * @param projectId + * @param token * @param campaignId * @return {Promise} */ async getCampaign(projectId, token, campaignId) { - try { - const fetched = await this._client(token) - .request(gql`query { campaignByName( project: "${projectId}", name: "${campaignId}" ){name, title, description}}`); - return _.get(fetched, 'campaignByName'); - } catch (err) { - throw err; - } + const fetched = await this._client(token) + .request(gql`query { campaignByName( project: "${projectId}", name: "${campaignId}" ){name, title, description}}`); + return _.get(fetched, 'campaignByName'); } - /** * Query campaign using graphql - * @param campaignId + * @param projectId + * @param token * @return {Promise} */ async listCampaigns(projectId, token) { - try { - const fetched = await this._client(token) - .request(gql`{ campaigns ( project: "${projectId}" ) { name, title, description} }`); - return _.get(fetched, 'campaigns', []); - } catch (err) { - throw err; - } + const fetched = await this._client(token) + .request(gql`{ campaigns ( project: "${projectId}" ) { name, title, description} }`); + return _.get(fetched, 'campaigns', []); } /** * Query model list using graphql - * @param projectId, offset, limit + * @param projectId + * @param offset + * @param limit + * @param token * @return {Promise} */ async listModels(projectId, offset, limit, token) { - try { - const fetched = await this._client(token) - .request(gql`{ models ( project: "${projectId}", offset: ${offset}, limit: ${limit} ) { name, title, description } }`); - return _.get(fetched, 'models', []); - } catch (err) { - throw err; - } + const fetched = await this._client(token) + .request(gql`{ models ( project: "${projectId}", offset: ${offset}, limit: ${limit} ) { name, title, description } }`); + return _.get(fetched, 'models', []); } /** * Query model description using graphql - * @param projectId, name + * @param projectId + * @param name + * @param token * @return {Promise} */ async descModels(projectId, name, token) { - try { - const fetched = await this._client(token) - .request(gql`{ modelByName ( project: "${projectId}", name: "${name}" ) { name, description, model_mode, source, status, title, type } }`); - return _.get(fetched, 'modelByName', []); - } catch (err) { - throw err; - } + const fetched = await this._client(token) + .request(gql`{ modelByName ( project: "${projectId}", name: "${name}" ) { name, description, model_mode, source, status, title, type } }`); + return _.get(fetched, 'modelByName', []); } }; diff --git a/src/client/assessments.js b/src/client/assessments.js index 835a04b8..6c292f19 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -41,8 +41,8 @@ module.exports = class Assessments { return got .post(url, body) .json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } queryResources(token, name, projectId, type, skip, limit) { @@ -60,8 +60,8 @@ module.exports = class Assessments { 'user-agent': getUserAgent(), }) .json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } listResourceTypes(token) { @@ -73,8 +73,8 @@ module.exports = class Assessments { 'user-agent': getUserAgent(), }) .json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } createAssessment(token, name, title, description, scope, componentName, componentTypes, overwrite) { @@ -94,8 +94,8 @@ module.exports = class Assessments { overwrite, }), }).json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } listAssessment(token, skip, limit) { @@ -106,8 +106,8 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } getAssessment(token, name) { @@ -118,8 +118,8 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } deleteAssessment(token, name) { @@ -130,8 +130,8 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } runAssessment(token, name) { @@ -142,8 +142,8 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } listAssessmentReports(token, name) { @@ -154,8 +154,8 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } getAssessmentReport(token, name, reportId) { @@ -166,8 +166,8 @@ module.exports = class Assessments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => res) - .catch(err => constructError(err)); + .then((res) => res) + .catch((err) => constructError(err)); } exportAssessmentReport(token, name, reportId, types) { diff --git a/src/client/catalog.js b/src/client/catalog.js index d3974840..e86e9c02 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -23,11 +23,11 @@ const { constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError, printTable, } = require('../commands/utils'); -const createEndpoints = baseUri => ({ - skills: projectId => `${baseUri}/fabric/v4/projects/${projectId}/skills`, - agents: projectId => `${baseUri}/fabric/v4/projects/${projectId}/agents`, - types: projectId => `${baseUri}/fabric/v4/projects/${projectId}/types`, - campaigns: projectId => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, +const createEndpoints = (baseUri) => ({ + skills: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/skills`, + agents: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agents`, + types: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/types`, + campaigns: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, }); module.exports = class Catalog { @@ -45,8 +45,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), json: skillObj, }).json() - .then(res => ({ success: true, message: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, message: res })) + .catch((err) => constructError(err)); } listSkills(projectId, token, status = false) { @@ -60,8 +60,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), searchParams: query, }).json() - .then(skills => ({ success: true, ...skills })) - .catch(err => constructError(err)); + .then((skills) => ({ success: true, ...skills })) + .catch((err) => constructError(err)); } describeSkill(projectId, token, skillName, verbose = false) { @@ -79,8 +79,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), searchParams, }).json() - .then(res => ({ success: true, skill: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, skill: res })) + .catch((err) => constructError(err)); } deploySkill(projectId, token, skillName, verbose = false) { @@ -93,8 +93,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), searchParams: { verbose }, }).json() - .then(res => ({ ...res })) - .catch(err => constructError(err)); + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); } unDeploySkill(projectId, token, skillName, verbose = false) { @@ -107,8 +107,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), searchParams: { verbose }, }).json() - .then(res => ({ ...res })) - .catch(err => constructError(err)); + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); } skillLogs(projectId, token, skillName, actionName, verbose = false) { @@ -121,8 +121,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), searchParams: { verbose }, }).json() - .then(res => ({ ...res })) - .catch(err => constructError(err)); + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); } listAgents(projectId, token) { @@ -135,8 +135,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(agentResp => ({ success: true, ...agentResp })) - .catch(err => constructError(err)); + .then((agentResp) => ({ success: true, ...agentResp })) + .catch((err) => constructError(err)); } listServices(projectId, token, agentName) { @@ -148,9 +148,9 @@ module.exports = class Catalog { const urlBase = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/services`; debug('listServices(%s) => %s', agentName, urlBase); const servicesList = response.agent.inputs - .filter(i => i.signalType === 'Service') - .map(i => ({ ...i, url: `${urlBase}/${i.name}` })) - .map(i => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); + .filter((i) => i.signalType === 'Service') + .map((i) => ({ ...i, url: `${urlBase}/${i.name}` })) + .map((i) => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); return { success: true, services: servicesList }; } return response; @@ -167,8 +167,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), json: agentObj, }).json() - .then(res => ({ success: true, message: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, message: res })) + .catch((err) => constructError(err)); } describeAgent(projectId, token, agentName, verbose) { @@ -181,8 +181,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), searchParams: { verbose }, }).json() - .then(agent => ({ success: true, agent })) - .catch(err => constructError(err)); + .then((agent) => ({ success: true, agent })) + .catch((err) => constructError(err)); } describeAgentVersions(projectId, token, agentName) { @@ -195,14 +195,14 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(agent => ({ success: true, agent })) - .catch(err => constructError(err)); + .then((agent) => ({ success: true, agent })) + .catch((err) => constructError(err)); } saveType(projectId, token, types) { checkProject(projectId); const endpoint = `${this.endpoints.types(projectId)}`; - const names = types.types.map(t => t.name); + const names = types.types.map((t) => t.name); debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types(projectId)); return got .post(endpoint, { @@ -211,8 +211,8 @@ module.exports = class Catalog { json: types, }) .json() - .then(message => ({ success: true, message })) - .catch(err => constructError(err)); + .then((message) => ({ success: true, message })) + .catch((err) => constructError(err)); } describeType(projectId, token, typeName) { @@ -225,8 +225,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(type => ({ success: true, type })) - .catch(err => constructError(err)); + .then((type) => ({ success: true, type })) + .catch((err) => constructError(err)); } listTypes(projectId, token) { @@ -239,8 +239,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(types => ({ success: true, ...types })) - .catch(err => constructError(err)); + .then((types) => ({ success: true, ...types })) + .catch((err) => constructError(err)); } exportCampaign(projectId, token, campaignName, deployable, path) { @@ -297,7 +297,7 @@ module.exports = class Catalog { printSuccess('Campaign imported successfully'); } else { printSuccess('Campaign imported with warnings'); - printTable([{ column: 'Warnings', field: 'message' }], importReport.warnings.map(w => ({ message: w }))); + printTable([{ column: 'Warnings', field: 'message' }], importReport.warnings.map((w) => ({ message: w }))); } }); } else { @@ -318,8 +318,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(res => ({ success: true, data: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, data: res })) + .catch((err) => constructError(err)); } deployCampaign(projectId, token, campaign) { @@ -332,8 +332,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(res => ({ success: true, data: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, data: res })) + .catch((err) => constructError(err)); } undeployMission(projectId, token, campaign, mission) { @@ -346,8 +346,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(res => ({ success: true, data: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, data: res })) + .catch((err) => constructError(err)); } listMissions(projectId, token, campaign) { @@ -360,8 +360,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(res => ({ success: true, data: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, data: res })) + .catch((err) => constructError(err)); } deployMission(projectId, token, campaign, mission) { @@ -374,8 +374,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(res => ({ success: true, data: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, data: res })) + .catch((err) => constructError(err)); } getMission(projectId, token, campaign, mission) { @@ -388,8 +388,8 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then(res => ({ success: true, data: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, data: res })) + .catch((err) => constructError(err)); } // saveProfileSchema(projectId, token, schemaObj) { diff --git a/src/client/connections.js b/src/client/connections.js index d344c5a3..49e89031 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -20,7 +20,7 @@ const { constructError, getUserAgent, checkProject } = require('../commands/util module.exports = class Connections { constructor(cortexUrl) { - this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/connections`; + this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/connections`; this.cortexUrl = cortexUrl; } @@ -33,8 +33,8 @@ module.exports = class Connections { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } async saveConnection(projectId, token, connObj) { @@ -63,8 +63,8 @@ module.exports = class Connections { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } listConnectionsTypes(token) { @@ -75,7 +75,7 @@ module.exports = class Connections { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } }; diff --git a/src/client/content.js b/src/client/content.js index a3fd9686..92bfcb7e 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -28,7 +28,7 @@ const pipeline = promisify(stream.pipeline); module.exports = class Content { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/content`; + this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/content`; } _sanitizeKey(key) { @@ -45,8 +45,8 @@ module.exports = class Content { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(message => ({ success: true, message })) - .catch(err => constructError(err)); + .then((message) => ({ success: true, message })) + .catch((err) => constructError(err)); } // eslint-disable-next-line no-unused-vars @@ -82,8 +82,8 @@ module.exports = class Content { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(message => ({ success: true, message })) - .catch(err => constructError(err)); + .then((message) => ({ success: true, message })) + .catch((err) => constructError(err)); } // TODO progress diff --git a/src/client/experiments.js b/src/client/experiments.js index 5b4ec83c..73fe43a8 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -26,7 +26,7 @@ const Content = require('./content'); module.exports = class Experiments { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; + this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; } listExperiments(projectId, modelId, token) { @@ -38,8 +38,8 @@ module.exports = class Experiments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } describeExperiment(projectId, token, name) { @@ -51,8 +51,8 @@ module.exports = class Experiments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } deleteExperiment(projectId, token, name) { @@ -64,8 +64,8 @@ module.exports = class Experiments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } listRuns(projectId, token, experimentName, filter, limit, sort) { @@ -82,8 +82,8 @@ module.exports = class Experiments { 'user-agent': getUserAgent(), searchParams: query, }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } describeRun(projectId, token, experimentName, runId) { @@ -95,8 +95,8 @@ module.exports = class Experiments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } deleteRun(projectId, token, experimentName, runId) { @@ -108,8 +108,8 @@ module.exports = class Experiments { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } _artifactKey(experimentName, runId, artifact) { @@ -141,8 +141,8 @@ module.exports = class Experiments { 'user-agent': getUserAgent(), json: experimentObj, }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } createRun(projectId, token, runObj) { @@ -155,8 +155,8 @@ module.exports = class Experiments { 'user-agent': getUserAgent(), json: runObj, }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } async uploadArtifact(projectId, token, experimentName, runId, content, artifact, contentType = 'application/octet-stream') { diff --git a/src/client/models.js b/src/client/models.js index 2c06effe..6ebd6224 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -19,11 +19,10 @@ const { constructError, checkProject, getUserAgent, } = require('../commands/utils'); - module.exports = class Models { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpointV4 = projectId => `${cortexUrl}/fabric/v4/projects/${projectId}/models`; + this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/models`; } saveModel(projectId, token, modelObj) { @@ -36,8 +35,8 @@ module.exports = class Models { 'user-agent': getUserAgent(), json: modelObj, }).json() - .then(res => ({ success: true, message: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, message: res })) + .catch((err) => constructError(err)); } deleteModel(projectId, token, modelName) { @@ -50,8 +49,8 @@ module.exports = class Models { 'user-agent': getUserAgent(), }) .json() - .then(model => ({ success: true, model })) - .catch(err => constructError(err)); + .then((model) => ({ success: true, model })) + .catch((err) => constructError(err)); } describeModel(projectId, token, modelName, verbose) { @@ -64,8 +63,8 @@ module.exports = class Models { 'user-agent': getUserAgent(), searchParams: { verbose }, }).json() - .then(model => ({ success: true, model })) - .catch(err => constructError(err)); + .then((model) => ({ success: true, model })) + .catch((err) => constructError(err)); } listModels(projectId, offset, limit, tags, token) { @@ -78,8 +77,8 @@ module.exports = class Models { 'user-agent': getUserAgent(), }) .json() - .then(modelsResp => ({ success: true, ...modelsResp })) - .catch(err => constructError(err)); + .then((modelsResp) => ({ success: true, ...modelsResp })) + .catch((err) => constructError(err)); } listModelRuns(projectId, modelName, token) { @@ -92,7 +91,7 @@ module.exports = class Models { 'user-agent': getUserAgent(), }) .json() - .then(modelsResp => ({ success: true, ...modelsResp })) - .catch(err => constructError(err)); + .then((modelsResp) => ({ success: true, ...modelsResp })) + .catch((err) => constructError(err)); } }; diff --git a/src/client/roles.js b/src/client/roles.js index dc85907a..5c4af6a5 100644 --- a/src/client/roles.js +++ b/src/client/roles.js @@ -54,11 +54,10 @@ module.exports = class Roles { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } - deleteRole(token) { const endpoint = this.rolesEndpoint; debug('deleteRole => %s', endpoint); @@ -67,8 +66,8 @@ module.exports = class Roles { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } createRole(token, body) { @@ -80,11 +79,10 @@ module.exports = class Roles { 'user-agent': getUserAgent(), json: body, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } - addUsersToRole(token, users) { const endpoint = `${this.rolesUsersEndpoint}`; debug('addUsersToRole => %s', endpoint); @@ -94,8 +92,8 @@ module.exports = class Roles { 'user-agent': getUserAgent(), json: { users }, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } removeUsersFromRole(token, users) { @@ -107,8 +105,8 @@ module.exports = class Roles { 'user-agent': getUserAgent(), json: { users }, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } createGrantForRole(token, body) { @@ -120,8 +118,8 @@ module.exports = class Roles { 'user-agent': getUserAgent(), json: body, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } removeGrantFromRole(token, body) { @@ -133,8 +131,8 @@ module.exports = class Roles { 'user-agent': getUserAgent(), json: body, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } listRoles(token, project) { @@ -148,8 +146,8 @@ module.exports = class Roles { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } addRolesToProject(token, project, roles) { @@ -161,8 +159,8 @@ module.exports = class Roles { 'user-agent': getUserAgent(), json: { project, roles }, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } removeRolesFromProject(token, project, roles) { @@ -174,8 +172,8 @@ module.exports = class Roles { 'user-agent': getUserAgent(), json: { project, roles }, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } listExternalGroups(token) { @@ -186,8 +184,8 @@ module.exports = class Roles { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } describeExternalGroup(token, externalGroup) { @@ -198,8 +196,8 @@ module.exports = class Roles { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } deleteExternalGroup(token, externalGroup) { @@ -210,8 +208,8 @@ module.exports = class Roles { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } addExternalGroupToRole(token, externalGroup) { @@ -223,8 +221,8 @@ module.exports = class Roles { 'user-agent': getUserAgent(), json: { externalGroup }, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } removeExternalGroupFromRole(token, externalGroup) { @@ -235,7 +233,7 @@ module.exports = class Roles { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } }; diff --git a/src/client/secrets.js b/src/client/secrets.js index 0883434f..b380582c 100644 --- a/src/client/secrets.js +++ b/src/client/secrets.js @@ -22,7 +22,7 @@ const { constructError, getUserAgent, checkProject } = require('../commands/util module.exports = class Secrets { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpoint = projectId => urljoin(cortexUrl, 'fabric/v4/projects', projectId, 'secrets'); + this.endpoint = (projectId) => urljoin(cortexUrl, 'fabric/v4/projects', projectId, 'secrets'); } listSecrets(projectId, token) { @@ -34,8 +34,8 @@ module.exports = class Secrets { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } readSecret(projectId, token, keyName) { @@ -47,8 +47,8 @@ module.exports = class Secrets { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(result => ({ success: true, result })) - .catch(err => constructError(err)); + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); } writeSecret(projectId, token, keyName, value) { @@ -62,7 +62,7 @@ module.exports = class Secrets { 'user-agent': getUserAgent(), json: body, }).json() - .then(result => ({ ...result })) - .catch(err => constructError(err)); + .then((result) => ({ ...result })) + .catch((err) => constructError(err)); } }; diff --git a/src/client/users.js b/src/client/users.js index 0b77de34..96e1f2dd 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -50,8 +50,8 @@ module.exports = class Users { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } deleteServiceUser(token, user) { @@ -62,8 +62,8 @@ module.exports = class Users { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } listServiceUsers(token) { @@ -74,8 +74,8 @@ module.exports = class Users { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } describeUser(token) { @@ -86,8 +86,8 @@ module.exports = class Users { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } createGrantForUser(token, body) { @@ -99,8 +99,8 @@ module.exports = class Users { 'user-agent': getUserAgent(), json: body, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } removeGrantFromUser(token, body) { @@ -112,8 +112,8 @@ module.exports = class Users { 'user-agent': getUserAgent(), json: body, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } addUsersToProject(token, project, users) { @@ -125,8 +125,8 @@ module.exports = class Users { 'user-agent': getUserAgent(), json: { project, users }, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } removeUsersFromProject(token, project, users) { @@ -138,7 +138,7 @@ module.exports = class Users { 'user-agent': getUserAgent(), json: { project, users }, }).json() - .then(res => ({ success: true, result: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); } }; diff --git a/src/commands/actions.js b/src/commands/actions.js index 2c2e96cf..c2078488 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -50,7 +50,7 @@ module.exports.ListActionsCommand = class { { column: 'Modified', field: 'updatedAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 26 }, ]; - printTable(tableSpec, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + printTable(tableSpec, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list actions: ${response.status} ${response.message}`, options); @@ -96,8 +96,7 @@ module.exports.DeployActionCommand = class { this.program = program; } - execute(actionDefinition, command) { - const options = command.opts(); + execute(actionDefinition, options) { const profile = loadProfile(options.profile); let actionInst = {}; @@ -118,6 +117,10 @@ module.exports.DeployActionCommand = class { const paramsStr = fs.readFileSync(options.podspec); actionInst.podSpec = parseObject(paramsStr, options); } + if (!_.isEmpty(options.k8sResource)) { + const k8sResources = options.k8sResource.map((f) => parseObject(fs.readFileSync(f), options)); + actionInst.k8sResources = k8sResources; + } if (options.docker) { actionInst.image = options.docker; } if (options.image) { actionInst.image = options.image; } @@ -269,7 +272,6 @@ module.exports.JobTaskListActionCommand = class { } }; - module.exports.TaskStatsActionCommand = class { constructor(program) { this.program = program; @@ -291,7 +293,6 @@ module.exports.TaskStatsActionCommand = class { } }; - module.exports.ListTaskByActivation = class { constructor(program) { this.program = program; diff --git a/src/commands/agents.js b/src/commands/agents.js index 6791562f..ed0a5329 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -51,7 +51,7 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; - response.details.map(d => d.path = formatValidationPath(d.path)); + response.details.map((d) => d.path = formatValidationPath(d.path)); printTable(tableSpec, response.details); printError(''); // Just exit } else { @@ -82,7 +82,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list agents: ${response.status} ${response.message}`, options); @@ -268,7 +268,7 @@ module.exports.ListActivationsCommand = class { return '-'; }; - printTable(tableSpec, _.map(result, o => ({ + printTable(tableSpec, _.map(result, (o) => ({ ...o, name: genName(o), start: o.start ? moment(o.start).fromNow() : '-', @@ -341,7 +341,7 @@ module.exports.ListAgentSnapshotsCommand = class { { column: 'Created', field: 'createdAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 26 }, ]; - printTable(tableSpec, result, o => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); + printTable(tableSpec, result, (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); } } else { printError(`Failed to list agent snapshots ${agentName}: ${response.message}`, options); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index d633084a..d6824113 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -88,7 +88,7 @@ module.exports.ListResourceTypesCommand = class { if (options.json) { printSuccess(JSON.stringify(data, null, 2), options); } else { - const types = data.map(t => ({ type: t })); + const types = data.map((t) => ({ type: t })); const tableSpec = [ { column: 'Resource Type', field: 'type' }, ]; @@ -198,7 +198,7 @@ module.exports.ListAssessmentCommand = class { { column: 'Modified', field: '_updatedAt' }, { column: 'Author', field: '_createdBy' }, ]; - handleTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); + handleTable(tableSpec, response.data, (o) => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); } }) .catch((err) => { @@ -293,8 +293,8 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Modified', field: '_updatedAt' }, { column: 'Author', field: '_createdBy' }, ]; - response.data.forEach(r => r.summary = JSON.stringify(Object.fromEntries(r.summary.map(item => [item.type, item.count])))); - handleTable(tableSpec, response.data, o => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), `No report found for the Assessment ${name}`); + response.data.forEach((r) => r.summary = JSON.stringify(Object.fromEntries(r.summary.map((item) => [item.type, item.count])))); + handleTable(tableSpec, response.data, (o) => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), `No report found for the Assessment ${name}`); } }) .catch((err) => { @@ -320,7 +320,7 @@ module.exports.GetAssessmentReportCommand = class { const output = { name: response.reportId, assessment: response.assessmentId, - summary: Object.fromEntries(response.summary.map(item => [item.type, item.count])), + summary: Object.fromEntries(response.summary.map((item) => [item.type, item.count])), report: response.detail, _createdAt: response._createdAt, _createdBy: response._createdBy, @@ -329,8 +329,8 @@ module.exports.GetAssessmentReportCommand = class { } else { const flattenRefs = _.uniqBy( _.flatten( - response.detail.map(ref => ref.sourcePath.map(s => ({ ...s, projectId: ref._projectId }))), - ), r => `${r.name}-${r.type}-${r.projectId}`, + response.detail.map((ref) => ref.sourcePath.map((s) => ({ ...s, projectId: ref._projectId }))), + ), (r) => `${r.name}-${r.type}-${r.projectId}`, ); const tableSpec = [ { column: 'Name', field: 'name' }, diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 42c54d66..55a3220e 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -89,7 +89,7 @@ module.exports.ExportCampaignCommand = class ExportCampaignCommand { try { cli.exportCampaign(project, profile.token, campaignName, options.deployable, path) .then(() => printSuccess(`Successfully exported Campaign ${campaignName} from project ${project} to file ${path}`)) - .catch(e => printError(`Failed to export Campaign ${campaignName} from project ${project}. Error: ${e}`)); + .catch((e) => printError(`Failed to export Campaign ${campaignName} from project ${project}. Error: ${e}`)); } catch (err) { printError(`Failed to export campaign: ${err.status} ${err.message}`, options); } @@ -134,7 +134,7 @@ module.exports.DeployCampaignCommand = class DeployCampaignCommand { printSuccess(output, options); } else { printError('Campaign deployed with warnings', options, false); - printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map(w => ({ message: w }))); + printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map((w) => ({ message: w }))); } }).catch((e) => { printError(`Failed to deploy campaign: ${e.status} ${e.message}`, options); @@ -164,7 +164,7 @@ module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { printSuccess(output, options); } else { printError('Campaign undeployed with warnings', options, false); - printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map(w => ({ message: w }))); + printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map((w) => ({ message: w }))); } }).catch((e) => { printError(`Failed to undeploy campaign: ${e.status} ${e.message}`, options); @@ -248,7 +248,7 @@ module.exports.DeployMissionCommand = class DeployMissionCommand { if (response.success === false) throw response; const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); printSuccess(output, options); - }).catch(err => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); + }).catch((err) => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); } }; @@ -266,6 +266,6 @@ module.exports.DescribeMissionCommand = class DescribeMissionCommand { cli.getMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { if (response.success === false) throw response; printSuccess(JSON.stringify(response.data, null, 2), options); - }).catch(err => printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); + }).catch((err) => printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); } }; diff --git a/src/commands/connections.js b/src/commands/connections.js index bfaa8e20..207f4601 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -69,7 +69,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { } getParamsValue(connectionDefinition, paramName) { - const results = _.filter(_.get(connectionDefinition, 'params', []), item => item.name === paramName); + const results = _.filter(_.get(connectionDefinition, 'params', []), (item) => item.name === paramName); if (results && results.length) { return results[0].value; } @@ -77,7 +77,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { } stripJarPathFromParams(params) { - return params.filter(item => item.name !== 'jdbc_jar_file'); + return params.filter((item) => item.name !== 'jdbc_jar_file'); } execute(connectionDefinition, options) { diff --git a/src/commands/content.js b/src/commands/content.js index e267a8e0..80e78252 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -44,7 +44,6 @@ module.exports.ListContent = class ListContent { { column: 'Size (bytes)', field: 'Size', width: 20 }, ]; - printTable(tableSpec, response.message); } } else { @@ -92,7 +91,7 @@ module.exports.UploadContent = class UploadContent { .reduce((promise, currentChunk) => promise .then(() => { debug(`working on chunk of files: ${JSON.stringify(currentChunk)}`); - const promises = currentChunk.map(item => upload(`${contentKey}/${item.relative}`, item.canonical)); + const promises = currentChunk.map((item) => upload(`${contentKey}/${item.relative}`, item.canonical)); return Promise.all(promises); }), Promise.resolve()); } else { diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 3bce0dc7..08269294 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -139,7 +139,7 @@ const DeployExperimentCommand = class { writeToFile(runDesc, filepath); if (result.artifacts) { await Promise.all(Object.values(result.artifacts) - .map(value => content.downloadContent(project, profile.token, value, false, path.join(artifactsDir, value)))); + .map((value) => content.downloadContent(project, profile.token, value, false, path.join(artifactsDir, value)))); } manifest.run = [filepath]; exports.run = exportRun; @@ -246,7 +246,7 @@ module.exports.DeployCampaignCommand = class { files.push(filepath); entries[type] = files; resolve(filepath); - }).catch(e => reject(e)); + }).catch((e) => reject(e)); }); } @@ -274,7 +274,7 @@ module.exports.DeployCampaignCommand = class { zipfile.readEntry(); }); }); - zipfile.on('error', e => printError(e)); + zipfile.on('error', (e) => printError(e)); zipfile.once('end', async () => { await addDependencies(profile.url, profile.token, project, 'Campaign', campaignName); Promise.all(promises).then(() => { @@ -339,13 +339,13 @@ module.exports.DeploySkillCommand = class { exports.skill = skillName; const dependencies = await addDependencies(profile.url, profile.token, project, 'Skill', skillName); // export linked model/experiment of skill - const mlOps = Object.fromEntries(dependencies.data.filter(d => ['Model', 'Experiment', 'ExperimentRun'].includes(d.type)).map(d => [d.type, d.name])); + const mlOps = Object.fromEntries(dependencies.data.filter((d) => ['Model', 'Experiment', 'ExperimentRun'].includes(d.type)).map((d) => [d.type, d.name])); if (mlOps && mlOps.Experiment) { await new DeployExperimentCommand(this.program).execute(mlOps.Experiment, (mlOps.ExperimentRun || '').split('-').pop(), options); } // export actions of the skill - const existingActions = result.actions.map(a => a.name); - const actions = dependencies.data.filter(d => d.type === 'Action' && !existingActions.includes(d.name)).map(d => d.name); + const existingActions = result.actions.map((a) => a.name); + const actions = dependencies.data.filter((d) => d.type === 'Action' && !existingActions.includes(d.name)).map((d) => d.name); if (actions.length > 0) { const actionsClient = new Actions(profile.url); await Promise.all(actions.map(async (a) => { @@ -357,11 +357,11 @@ module.exports.DeploySkillCommand = class { printError(`Failed to export action ${a}: ${response.message}`, options); } })); - manifest.action = actions.map(a => path.join(artifactsDir, 'actions', `${a}.json`)); + manifest.action = actions.map((a) => path.join(artifactsDir, 'actions', `${a}.json`)); exports.action = actions; } // export types of skill - const types = dependencies.data.filter(d => d.type === 'Type').map(d => d.name); + const types = dependencies.data.filter((d) => d.type === 'Type').map((d) => d.name); if (types.length > 0) { await Promise.all(types.map(async (type) => { response = await catalog.describeType(project, profile.token, type); @@ -372,7 +372,7 @@ module.exports.DeploySkillCommand = class { printError(`Failed to export type ${type}: ${JSON.stringify(response)}`, options); } })); - manifest.type = types.map(a => path.join(artifactsDir, 'types', `${a}.json`)); + manifest.type = types.map((a) => path.join(artifactsDir, 'types', `${a}.json`)); exports.type = types; } updateManifest(manifest); diff --git a/src/commands/docker.js b/src/commands/docker.js index e535f156..df782df0 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -17,7 +17,7 @@ const debug = require('debug')('cortex:cli'); const URL = require('url-parse'); const { printSuccess, printError } = require('./utils'); -const { callMe } = require('../commands/utils'); +const { callMe } = require('./utils'); const { generateJwt, loadProfile, diff --git a/src/commands/experiments.js b/src/commands/experiments.js index d726bdad..e6371a52 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -259,7 +259,7 @@ class SaveExperimentCommand { { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; - response.details.map(d => d.path = formatValidationPath(d.path)); + response.details.map((d) => d.path = formatValidationPath(d.path)); printTable(tableSpec, response.details); printError(''); // Just exit } else { @@ -296,7 +296,7 @@ class CreateRunCommand { { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; - response.details.map(d => d.path = formatValidationPath(d.path)); + response.details.map((d) => d.path = formatValidationPath(d.path)); printTable(tableSpec, response.details); printError(''); // Just exit } else { diff --git a/src/commands/models.js b/src/commands/models.js index 8cd4007c..ac2109c2 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -55,7 +55,7 @@ module.exports.SaveModelCommand = class SaveModelCommand { { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; - response.details.map(d => d.path = formatValidationPath(d.path)); + response.details.map((d) => d.path = formatValidationPath(d.path)); printTable(tableSpec, response.details); printError(''); // Just exit } else { @@ -85,7 +85,7 @@ module.exports.ListModelsCommand = class ListModelsCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list models: ${response.status} ${response.message}`, options); @@ -115,7 +115,7 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(RUNTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + printTable(RUNTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list model runs: ${response.status} ${response.message}`, options); @@ -216,7 +216,7 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; - response.details.map(d => d.path = formatValidationPath(d.path)); + response.details.map((d) => d.path = formatValidationPath(d.path)); printTable(tableSpec, response.details); printError(''); // Just exit } diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index 99d4800b..d11ebc62 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -8,7 +8,7 @@ module.exports = (plop) => { type: 'input', name: 'name', message: 'Skill Name? (Skill name must be alphanumeric, beginning with a letter. Hyphen and underscore allowed internally.)', - validate: value => /^[0-9a-zA-Z][0-9a-zA-Z_\- ]{0,18}[0-9a-zA-Z]$/.test(value), + validate: (value) => /^[0-9a-zA-Z][0-9a-zA-Z_\- ]{0,18}[0-9a-zA-Z]$/.test(value), }, { type: 'list', diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 7fbaef6d..5011bc19 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -45,7 +45,7 @@ module.exports.ListSecretsCommand = class { const tableSpec = [ { column: 'Secret Key Name', field: 'keyName', width: 50 }, ]; - printTable(tableSpec, map(x => ({ keyName: x }), result)); + printTable(tableSpec, map((x) => ({ keyName: x }), result)); } } else { printError(`Failed to list secrets: ${response.message}`, options); diff --git a/src/commands/skills.js b/src/commands/skills.js index a8d4c563..19f762f6 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -49,7 +49,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { { column: 'Path', field: 'path', width: 50 }, { column: 'Message', field: 'message', width: 100 }, ]; - response.details.map(d => d.path = formatValidationPath(d.path)); + response.details.map((d) => d.path = formatValidationPath(d.path)); printTable(tableSpec, response.details); } printError(''); // Just exit @@ -77,7 +77,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { const tableFormat = LISTTABLEFORMAT; if (options.nostatus === undefined) { result = result.map((skill) => { - const status = _.isEmpty(skill.actionStatuses) ? skill.deployStatus : skill.actionStatuses.map(s => `${s.name}: ${s.state}`).join(' '); + const status = _.isEmpty(skill.actionStatuses) ? skill.deployStatus : skill.actionStatuses.map((s) => `${s.name}: ${s.state}`).join(' '); return { ...skill, status, @@ -91,7 +91,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { return printSuccess(JSON.stringify(result, null, 2), options); } return printTable(tableFormat, - _.sortBy(result, ['name']), o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + _.sortBy(result, ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } return printError(`Failed to list skills: ${response.status} ${response.message}`, options); } catch (err) { diff --git a/src/commands/types.js b/src/commands/types.js index ce5b56a7..9760ad26 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -72,7 +72,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(LISTTABLEFORMAT, result, o => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } } else { printError(`Failed to list types: ${response.status} ${response.message}`, options); diff --git a/src/commands/utils.js b/src/commands/utils.js index 5b33c1ba..1acb317d 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -23,12 +23,10 @@ const fs = require('fs'); const glob = require('glob'); const jmsepath = require('jmespath'); const os = require('os'); -const osName = require('os-name'); const path = require('path'); const yaml = require('js-yaml'); const { exec } = require('child_process'); - module.exports.constructError = (error) => { // fallback to text in message or standard error message const errResp = error.response; @@ -87,41 +85,36 @@ module.exports.filterObject = (obj, options) => { return obj; }; -module.exports.parseObject = (str, options) => { - if (options.yaml) { - return yaml.safeLoad(str); - } - - return JSON.parse(str); -}; +// YAML 1.2 parses both yaml & json +module.exports.parseObject = (str) => yaml.load(str); function _extractValues(fields, obj) { const rv = []; - fields.forEach(f => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null) ? obj[f].toString() : '-')); + fields.forEach((f) => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null) ? obj[f].toString() : '-')); return rv; } module.exports.printTable = (spec, objects, transform) => { transform = transform || function (obj) { return obj; }; - const head = spec.map(s => s.column); - const colWidths = spec.map(s => s.width); - const fields = spec.map(s => s.field); - const values = objects.map(obj => _extractValues(fields, transform(obj))); + const head = spec.map((s) => s.column); + const colWidths = spec.map((s) => s.width); + const fields = spec.map((s) => s.field); + const values = objects.map((obj) => _extractValues(fields, transform(obj))); debug('printing fields: %o', fields); const table = new Table({ head, colWidths, style: { head: ['cyan'] } }); - values.forEach(v => table.push(v)); + values.forEach((v) => table.push(v)); console.log(table.toString()); }; module.exports.exportDoc = (program) => { - console.log(JSON.stringify(program.commands.map(c => ({ + console.log(JSON.stringify(program.commands.map((c) => ({ name: c._name, description: c._description, usage: c.usage(), - options: c.options.map(o => ({ + options: c.options.map((o) => ({ flags: o.flags, defaultValue: o.defaultValue, description: o.description, @@ -160,7 +153,7 @@ module.exports.getSourceFiles = (source, cb) => { if (err) { cb(err, null); } else { - const results = files.filter(fpath => fs.lstatSync(fpath).isFile()).map(fpath => ({ + const results = files.filter((fpath) => fs.lstatSync(fpath).isFile()).map((fpath) => ({ canonical: fpath, relative: path.relative(normalizedSource, fpath), size: fs.lstatSync(fpath).size, @@ -207,17 +200,16 @@ module.exports.formatAllServiceInputParameters = (allParameters) => { return `$ref:${allParameters.$ref}`; } - return allParameters.map(inputParameters => formatServiceInputParameter(inputParameters)).join('\n'); + return allParameters.map((inputParameters) => formatServiceInputParameter(inputParameters)).join('\n'); }; - -module.exports.countLinesInFile = filePath => new Promise((resolve, reject) => { +module.exports.countLinesInFile = (filePath) => new Promise((resolve, reject) => { // Bug ... this code ignores the final line that does not end with a new line ... thats why leftovers was added // eslint-disable-next-line implicit-arrow-linebreak let count = 0; let leftovers = true; fs.createReadStream(filePath) - .on('error', e => reject(e)) + .on('error', (e) => reject(e)) .on('data', (chunk) => { for (let i = 0; i < chunk.length; i += 1) { if (chunk[i] === 10) { @@ -247,14 +239,13 @@ module.exports.formatValidationPath = (p) => { // connections get returns createdAt (not prefixed by _) field that cause saving exported connection to fail. Hence removing them manually const systemFields = ['createdAt', 'updatedAt', 'createdBy', 'updatedBy']; -module.exports.cleanInternalFields = jsobj => JSON.stringify(jsobj, (a, obj) => { +module.exports.cleanInternalFields = (jsobj) => JSON.stringify(jsobj, (a, obj) => { if (a.startsWith('_') || systemFields.includes(a)) { return undefined; } return obj; }, 2); - module.exports.jsonToYaml = (json) => { if (typeof json === 'string') { json = JSON.parse(json); @@ -279,7 +270,7 @@ module.exports.writeToFile = (content, filepath) => { fs.writeFileSync(filepath, content); }; -module.exports.fileExists = filepath => fs.existsSync(filepath); +module.exports.fileExists = (filepath) => fs.existsSync(filepath); // Alternatively, we can use fs.rmdirSync(, {recursive: true}), but that requires node v12+ const deleteFolderRecursive = (filepath) => { @@ -315,7 +306,7 @@ module.exports.checkProject = (projectId) => { const pkg = findPackageJson(__dirname).next().value; module.exports.getUserAgent = function getUserAgent() { - return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${osName()})`; + return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${os.platform()})`; }; module.exports.LISTTABLEFORMAT = [ diff --git a/src/compatibility.js b/src/compatibility.js index c47887d3..45cc3d37 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -30,7 +30,7 @@ const Semver = require('semver'); const uniq = require('lodash/fp/uniq'); const { got } = require('./client/apiutils'); const { loadProfile } = require('./config'); -const { printError, printWarning, getUserAgent } = require('../src/commands/utils'); +const { printError, printWarning, getUserAgent } = require('./commands/utils'); const pkg = findPackageJson(__dirname).next().value; @@ -38,9 +38,9 @@ function getAvailableVersions(name) { debug('getAvailableVersions => %s', name); return npmFetch .json(pkg.name) - .then(manifest => keys(getOr({}, 'versions', manifest))) - .then(versions => uniq(concat(versions, pkg.version))) - .then(versions => versions.sort(Semver.compare)) + .then((manifest) => keys(getOr({}, 'versions', manifest))) + .then((versions) => uniq(concat(versions, pkg.version))) + .then((versions) => versions.sort(Semver.compare)) .catch(() => { throw new Error('Unable to determine CLI available versions'); }); @@ -106,7 +106,7 @@ async function getCompatibility(profile) { // warn user but don't fail const versions = await getAvailableVersions(pkg.name); debug('getCompatibility => versions: %s, requirements: %s', versions, requirements); - const compatibleVersions = filter(v => Semver.satisfies(v, requirements), versions); + const compatibleVersions = filter((v) => Semver.satisfies(v, requirements), versions); debug('getCompatibility => compatible versions: %s', compatibleVersions); const { version: current } = pkg; const latest = last(compatibleVersions); @@ -123,7 +123,7 @@ async function getCompatibility(profile) { function withCompatibilityCheck(fn) { return (...args) => { - const command = args.find(a => a !== undefined && typeof a.opts === 'function'); + const command = args.find((a) => a !== undefined && typeof a.opts === 'function'); const options = command.opts(); if (options.compat && !_.toLower(process.env.CORTEX_NO_COMPAT) === 'true') { const { profile: profileName } = options; diff --git a/src/config.js b/src/config.js index 62021428..e149cede 100644 --- a/src/config.js +++ b/src/config.js @@ -23,7 +23,7 @@ const debug = require('debug')('cortex:config'); const { JWT, JWK } = require('jose'); const { printError } = require('./commands/utils'); -module.exports.generateJwt = generateJwt = function(profile, expiresIn = '2m') { +module.exports.generateJwt = generateJwt = function (profile, expiresIn = '2m') { const { username, issuer, audience, jwk, } = profile; @@ -36,46 +36,48 @@ module.exports.generateJwt = generateJwt = function(profile, expiresIn = '2m') { subject: username, expiresIn, }); -} +}; module.exports.defaultConfig = defaultConfig = function () { return new Config({}); }; module.exports.readConfig = readConfig = function () { - const configDir = process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); - if (!fs.existsSync(configDir)) { - fs.mkdirSync(configDir); - } - - debug(`Reading config from ${configDir}`); + try { + const configDir = process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); + if (!fs.existsSync(configDir)) { + fs.mkdirSync(configDir); + } - const configFile = path.join(configDir, 'config'); - if (fs.existsSync(configFile)) { - // deal with config versions - const configObj = JSON.parse(fs.readFileSync(configFile)); + debug(`Reading config from ${configDir}`); - if (configObj.version && configObj.version === '3') { - // version 3 - // debug('loaded v3 config: %o', configObj); - return new Config(configObj); - } + const configFile = path.join(configDir, 'config'); + if (fs.existsSync(configFile)) { + // deal with config versions + const configObj = JSON.parse(fs.readFileSync(configFile)); + + if (configObj.version && configObj.version === '3') { + // version 3 + // debug('loaded v3 config: %o', configObj); + return new Config(configObj); + } fs.copyFileSync(configFile, path.join(configDir, 'config_v2')); defaultConfig().save(); printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); + if (configObj.version && configObj.version === '2') { + // version 2 + // debug('loaded v2 config: %o', configObj); + return new Config(configObj); + } - if (configObj.version && configObj.version === '2') { - // version 2 - // debug('loaded v2 config: %o', configObj); - return new Config(configObj); + // version 1 + // debug('loaded v1 config: %o', configObj); + return new Config({profiles: configObj}); } - - // version 1 - // debug('loaded v1 config: %o', configObj); - return new Config({ profiles: configObj }); + } catch (err) { + throw new Error(`Unable to load config: ${err.message}`); } - return undefined; }; @@ -113,6 +115,7 @@ class Profile { } return this; } + toJSON() { return { url: this.url, diff --git a/test/docker-registry.js b/test/docker-registry.js index 1e7cf6c9..be5e13e3 100644 --- a/test/docker-registry.js +++ b/test/docker-registry.js @@ -3,7 +3,6 @@ const Actions = require('../src/client/actions'); const action = new Actions('https://api.cortex-dev.insights.ai'); - describe('_cortexRegistryImagePath()', () => { it('returns the full URL of the image in the private registry', () => { const registryUrl = 'private-registry.cortex.insights.ai'; From 6763b47a22de005570e8887bf58765cc2f868d91 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 10 Sep 2021 09:15:06 -0500 Subject: [PATCH 410/864] add comma --- bin/cortex-actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 64662bdf..0434a2d8 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -119,7 +119,7 @@ program .option('--image, --docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') .option('--jobTimeout [jobTimeout]', 'Job Timeout in seconds, this will marked the job as FAILED (default: no timeout)') - .option('-k --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill') + .option('-k, --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill') .option('--no-compat', 'Ignore API compatibility checks') .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('--port [port]', 'Docker port') // '9091' From 9bef1f270b441bca4dc82f3dd7fbbb91ece5f3b8 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Mon, 13 Sep 2021 14:15:59 +0530 Subject: [PATCH 411/864] cli changes to consume publish/unpublish rest api --- bin/cortex-models.js | 24 +++++++++++++++++++++--- src/client/models.js | 14 ++++++++++++++ src/commands/models.js | 21 +++++++-------------- 3 files changed, 42 insertions(+), 17 deletions(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index ac33f6fc..983faa04 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -27,7 +27,7 @@ const { DescribeModelCommand, ListModelsCommand, // RegisterModelCommand, - PublishModelCommand, + UpdateModelStatusCommand, ListModelRunsCommand, } = require('../src/commands/models'); @@ -124,7 +124,7 @@ program // } // })); -// Publish Model +// Publish a Model program .command('publish ') .description('Publish a model') @@ -136,7 +136,25 @@ program .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .action(withCompatibilityCheck((modelName, options) => { try { - new PublishModelCommand(program).execute(modelName, options); + new UpdateModelStatusCommand(program).execute(modelName, options, 'publish'); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Unpublish a Model +program + .command('unpublish ') + .description('Unpublish a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .action(withCompatibilityCheck((modelName, options) => { + try { + new UpdateModelStatusCommand(program).execute(modelName, options, 'unpublish'); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/client/models.js b/src/client/models.js index 6ebd6224..2bbc8087 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -39,6 +39,20 @@ module.exports = class Models { .catch((err) => constructError(err)); } + updateModelStatus(projectId, token, modelName, status) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${modelName}/${status}`; + debug('updateModelStatus(%s) => %s', modelName, status, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: {}, + }).json() + .then(res => ({ success: true, message: res })) + .catch(err => constructError(err)); + } + deleteModel(projectId, token, modelName) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(modelName)}`; diff --git a/src/commands/models.js b/src/commands/models.js index ac2109c2..6113f115 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -175,28 +175,21 @@ module.exports.DeleteModelCommand = class { } }; -module.exports.PublishModelCommand = class PublishModelCommand { +module.exports.UpdateModelStatusCommand = class UpdateModelStatusCommand { constructor(program) { this.program = program; } - async execute(modelName, options) { + async execute(modelName, options, status) { const profile = loadProfile(options.profile); const models = new Models(profile.url); - debug('%s.executePublishModel(%s)', profile.name, modelName); + debug('%s.executeUpdateModelStatus(%s)', profile.name, modelName, status); try { - const getModelObj = await models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose); - if (!getModelObj.success) { - printError(JSON.stringify(getModelObj)); - return; - } - const model = { ...getModelObj.model }; - model.status = 'Published'; - const saveModelObj = await models.saveModel(options.project || profile.project, profile.token, model); - if (!saveModelObj.success) { - printError(JSON.stringify(saveModelObj)); + const updateModelStatusObj = await models.updateModelStatus(options.project || profile.project, profile.token, modelName, status); + if (!updateModelStatusObj.success) { + printError(JSON.stringify(updateModelStatusObj)); } - printSuccess('Model published', options); + printSuccess(`Model ${status}ed`, options); } catch (err) { printError(`Failed to publish model ${modelName}: ${err.status} ${err.message}`, options); } From 7c872254a08188a5fb117717913e302ba50ce957 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Mon, 13 Sep 2021 11:33:50 -0500 Subject: [PATCH 412/864] =?UTF-8?q?set=20the=20default=20profile=20name=20?= =?UTF-8?q?in=20the=20configure=20commands=20options=20and=20pa=E2=80=A6?= =?UTF-8?q?=20(#402)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * set the default profile name in the configure commands options and pass an options object to the `ConfigureCommand` also inside of configure.js, use the option for the patfile instead of `this.program` (how did this ever work??) * trying to add a unit test to make sure we can create/configure profiles but there seems to be other underlying issues with the unit tests that need to be worked out * Added some configure unit tests.. * removed sanity use --> configure * Fix npm test Co-authored-by: Johan Gielstra --- bin/cortex-configure.js | 21 ++++--- package-lock.json | 115 ++++++++++++++++++++++++++++++++++ package.json | 6 +- src/commands/configure.js | 16 ++--- src/config.js | 126 ++++++++++++++++++++------------------ test/configure.js | 82 +++++++++++++++++++++++++ test/cortex/config | 14 +++++ test/cortex/pat-file.json | 1 + test/files/pat.json | 13 ++++ test/sanity.js | 27 -------- test/uploadDirectory.js | 28 ++++++--- 11 files changed, 336 insertions(+), 113 deletions(-) create mode 100644 test/configure.js create mode 100644 test/cortex/pat-file.json create mode 100644 test/files/pat.json delete mode 100644 test/sanity.js diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index ccf7ee07..78e7c1ce 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -1,5 +1,3 @@ -#!/usr/bin/env node - /* * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * @@ -29,17 +27,22 @@ const { program .option('--file [file]', 'Personal access config file location') - .option('--profile [profile]', 'The profile to configure') + .option('--profile [profile]', 'The profile to configure', 'default') .option('--project [project]', 'The default project to use') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .description('Configure the Cortex CLI'); program.command('create', { isDefault: true }) .description('Authenticate to cortex (default command)') .option('--file [file]', 'Personal access config file location') - .option('--profile [profile]', 'The profile to configure') + .option('--profile [profile]', 'The profile to configure', 'default') .option('--project [project]', 'The default project') .action(() => { - new ConfigureCommand(program).execute({ profile: program.profile, color: program.color }); + try { + new ConfigureCommand(program).execute(); + } catch (err) { + console.error(chalk.red(err.message)); + } }); program @@ -57,9 +60,6 @@ program } }); -program - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on'); - program .command('list') .description('List configured profiles') @@ -91,4 +91,7 @@ program new SetProfileCommand(program).execute(profileName, { color: program.color }); }); -program.parse(process.argv); +if (process.env.NODE_ENV !== 'test') { + program.parse(process.argv); +} +module.exports = program; diff --git a/package-lock.json b/package-lock.json index 6d4be3b7..7a0a1967 100644 --- a/package-lock.json +++ b/package-lock.json @@ -245,6 +245,41 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" }, + "@sinonjs/commons": { + "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" + } + }, + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@sinonjs/samsam": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, "@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -889,6 +924,12 @@ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true + }, "chokidar": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", @@ -3178,6 +3219,12 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, + "just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, "keypress": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", @@ -3196,6 +3243,12 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", @@ -3772,6 +3825,18 @@ } } }, + "mocked-env": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", + "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", + "dev": true, + "requires": { + "check-more-types": "2.24.0", + "debug": "4.3.2", + "lazy-ass": "1.6.0", + "ramda": "0.27.1" + } + }, "moment": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", @@ -3828,6 +3893,19 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "nise": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -4389,6 +4467,23 @@ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -4663,6 +4758,12 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, + "ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "dev": true + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5409,6 +5510,20 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, + "sinon": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + } + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", diff --git a/package.json b/package.json index 1b6ce8d4..69d799da 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "preinstall": "npx check-node-version -p --package", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", - "test": "CORTEX_CONFIG_DIR=./test/cortex mocha --recursive" + "test": "NODE_ENV=test mocha --exit" }, "engines": { "node": ">=12.0.0" @@ -67,7 +67,9 @@ "eslint-config-airbnb-base": "14.2.1", "eslint-plugin-import": "2.24.2", "mocha": "9.1.1", + "mocked-env": "1.3.5", "nock": "13.1.3", - "rewire": "5.0.0" + "rewire": "5.0.0", + "sinon": "11.1.2" } } diff --git a/src/commands/configure.js b/src/commands/configure.js index 8a70f078..2224b27a 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -41,10 +41,10 @@ module.exports.ConfigureCommand = class { this.program = program; } - execute(options) { + execute() { + const { profile, file, project } = this.program.opts(); const config = readConfig(); - const profileName = options.profile || _.get(config, 'currentProfile', 'default'); - const patFile = this.program.file; + const profileName = profile || _.get(config, 'currentProfile', 'default'); debug('configuring profile: %s', profileName); console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); @@ -53,14 +53,13 @@ module.exports.ConfigureCommand = class { co(function* () { try { let patData = null; - if (patFile) { - patData = _validatePatFile(patFile); + if (file) { + patData = _validatePatFile(file); } else { patData = JSON.parse(yield prompt('Cortex Personal Access Config: ')); } - cmd.saveConfig(config, profileName, patData, cmd.program.project); + cmd.saveConfig(config, profileName, patData, project); console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); - process.exit(1); } catch (err) { printError(err); } @@ -133,7 +132,8 @@ module.exports.ListProfilesCommand = class { this.program = program; } - execute(options) { + execute() { + const options = this.program.opts(); const config = readConfig(); if (config === undefined) { printError('Configuration not found. Please run "cortex configure".', options); diff --git a/src/config.js b/src/config.js index e149cede..c8122da1 100644 --- a/src/config.js +++ b/src/config.js @@ -23,9 +23,13 @@ const debug = require('debug')('cortex:config'); const { JWT, JWK } = require('jose'); const { printError } = require('./commands/utils'); -module.exports.generateJwt = generateJwt = function (profile, expiresIn = '2m') { +function configDir() { + return process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); +} + +function generateJwt(profile, expiresIn = '2m') { const { - username, issuer, audience, jwk, + username, issuer, audience, jwk, } = profile; const jwtSigner = JWK.asKey(jwk); const payload = { @@ -36,56 +40,14 @@ module.exports.generateJwt = generateJwt = function (profile, expiresIn = '2m') subject: username, expiresIn, }); -}; - -module.exports.defaultConfig = defaultConfig = function () { - return new Config({}); -}; - -module.exports.readConfig = readConfig = function () { - try { - const configDir = process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); - if (!fs.existsSync(configDir)) { - fs.mkdirSync(configDir); - } - - debug(`Reading config from ${configDir}`); - - const configFile = path.join(configDir, 'config'); - if (fs.existsSync(configFile)) { - // deal with config versions - const configObj = JSON.parse(fs.readFileSync(configFile)); - - if (configObj.version && configObj.version === '3') { - // version 3 - // debug('loaded v3 config: %o', configObj); - return new Config(configObj); - } - fs.copyFileSync(configFile, path.join(configDir, 'config_v2')); - defaultConfig().save(); - printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); - - if (configObj.version && configObj.version === '2') { - // version 2 - // debug('loaded v2 config: %o', configObj); - return new Config(configObj); - } - - // version 1 - // debug('loaded v1 config: %o', configObj); - return new Config({profiles: configObj}); - } - } catch (err) { - throw new Error(`Unable to load config: ${err.message}`); - } - return undefined; -}; +} const ProfileSchema = Joi.object().keys({ name: Joi.string().optional(), url: Joi.string().uri().required(), username: Joi.string().required(), - account: Joi.string().required(), + // deprecated + account: Joi.string().optional(), jwk: Joi.any().required(), issuer: Joi.string().required(), audience: Joi.string().required(), @@ -101,14 +63,13 @@ class Profile { this.url = url; this.username = username; this.jwk = jwk; - this.account = 'cortex'; this.issuer = issuer; this.audience = audience; this.project = project; } validate() { - const { error, value } = ProfileSchema.validate(this, { abortEarly: false }); + const { error } = ProfileSchema.validate(this, { abortEarly: false }); if (error) { throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. ` + 'Please get your Personal Access Token from the Cortex Console and run "cortex configure".'); @@ -133,10 +94,9 @@ class Config { this.version = version || '3'; this.profiles = profiles || {}; this.currentProfile = currentProfile; - - for (const name of Object.keys(this.profiles)) { + Object.keys(this.profiles).forEach((name) => { this.profiles[name] = new Profile(name, this.profiles[name]); - } + }); } getProfile(name, useenv = true) { @@ -164,29 +124,68 @@ class Config { toJSON() { const profiles = {}; - for (const name of Object.keys(this.profiles)) { + Object.keys(this.profiles).forEach((name) => { profiles[name] = this.profiles[name].toJSON(); - } - + }); return { version: this.version, profiles, currentProfile: this.currentProfile }; } save() { - const configDir = path.join(os.homedir(), '.cortex'); - if (!fs.existsSync(configDir)) { - fs.mkdirSync(configDir); + const dir = configDir(); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); } _.forEach(this.profiles, (profile) => { delete profile.token; }); - const configFile = path.join(configDir, 'config'); + const configFile = path.join(dir, 'config'); fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); } } -module.exports.loadProfile = function (profileName, useenv = true) { +function defaultConfig() { + return new Config({}); +} + +function readConfig() { + try { + const dir = configDir(); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + + debug(`Reading config from ${dir}`); + + const configFile = path.join(dir, 'config'); + if (fs.existsSync(configFile)) { + // deal with config versions + const configObj = JSON.parse(fs.readFileSync(configFile)); + + if (configObj.version && configObj.version === '3') { + // version 3 + return new Config(configObj); + } + fs.copyFileSync(configFile, path.join(dir, 'config_v2')); + defaultConfig().save(); + printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); + + if (configObj.version && configObj.version === '2') { + // version 2 + return new Config(configObj); + } + + // version 1 + return new Config({ profiles: configObj }); + } + } catch (err) { + throw new Error(`Unable to load config: ${err.message}`); + } + return undefined; +} + +function loadProfile(profileName, useenv = true) { const config = readConfig(); if (config === undefined) { throw new Error('Please configure the Cortex CLI by running "cortex configure"'); @@ -198,4 +197,11 @@ module.exports.loadProfile = function (profileName, useenv = true) { throw new Error(`Profile with name "${name}" could not be located in your configuration. Please run "cortex configure".`); } return profile; +} + +module.exports = { + loadProfile, + generateJwt, + defaultConfig, + readConfig, }; diff --git a/test/configure.js b/test/configure.js new file mode 100644 index 00000000..25dc4c5e --- /dev/null +++ b/test/configure.js @@ -0,0 +1,82 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const mockedEnv = require('mocked-env'); +const _ = require('lodash'); +const os = require('os'); +const path = require('path'); +const fs = require('fs'); +const sinon = require('sinon'); +const { expect } = require('chai'); +const yaml = require('js-yaml'); +const program = require('../bin/cortex-configure'); + +let restore; +describe('configure', () => { + const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cortex-cli')); + let printSpy; + before(() => { + restore = mockedEnv({ + CORTEX_CONFIG_DIR: tmpDir, + }); + }); + + beforeEach(() => { + printSpy = sinon.spy(console, 'log'); + fs.copyFileSync('./test/cortex/config', path.join(tmpDir, 'config')); + }); + + afterEach(() => { + printSpy.restore(); + }); + + after(() => { + restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args); + } + + it('lists profiles', (done) => { + program.parse(['node', 'configure', 'list']); + sinon.assert.calledTwice(printSpy); + // default is set at default... + expect(getPrintedLines()).to.eql(['\u001b[32m\u001b[1mdefault\u001b[22m\u001b[39m', 'other']); + done(); + }); + + it('get profile other', (done) => { + program.parse(['node', 'configure', 'describe', 'other']); + const output = getPrintedLines(); + expect(output).to.length(5); + expect(output[4]).to.eql('Project: otherProj'); + done(); + }); + + it('create profile pat file', (done) => { + program.parse(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); + const output = getPrintedLines(); + expect(output).to.length(2); + expect(output[1]).to.eql('Configuration for profile conftest saved.'); + const conf = yaml.load(fs.readFileSync(path.join(tmpDir, 'config'))); + expect(conf.profiles.conftest).to.haveOwnProperty('project', 'test'); + printSpy.resetHistory(); + program.parse(['node', 'configure', 'list']); + expect(getPrintedLines()).to.eql(['default', 'other', '\u001b[32m\u001b[1mconftest\u001b[22m\u001b[39m']); + done(); + }); +}); diff --git a/test/cortex/config b/test/cortex/config index 5f629a3b..48597174 100644 --- a/test/cortex/config +++ b/test/cortex/config @@ -13,6 +13,20 @@ "kty": "OKP", "kid": "X4u2Hv4VxL77bE8N9dT4ltVBoJsSLTH4bY1a5WL6wNY" } + }, + "other": { + "url": "http://other:8000", + "username": "other_user", + "issuer": "cognitivescale.com", + "audience": "cortex", + "project": "otherProj", + "jwk": { + "crv": "Ed25519", + "x": "yA1XUDSEoKWa28bCMFljlXwlEFbSVmQQ7ftIMNtB69U", + "d": "bRujm6B2EFaPTp56cU3z3K1w_5oFleLeL3hsLgqCVLc", + "kty": "OKP", + "kid": "X4u2Hv4VxL77bE8N9dT4ltVBoJsSLTH4bY1a5WL6wNY" + } } }, "currentProfile": "default" diff --git a/test/cortex/pat-file.json b/test/cortex/pat-file.json new file mode 100644 index 00000000..5f7c07be --- /dev/null +++ b/test/cortex/pat-file.json @@ -0,0 +1 @@ +{"jwk":{"crv":"Ed25519","x":"aTytuuFfEP0QJROVh0Z2WhfkHzzoway1rBkcvsdujAs","d":"JyTqz_bmfU1Ebd2DNlKxBV8p0VrXK75vhu8BNSUZXzI","kty":"OKP","kid":"kxlCpYJAKipLWu0piXvLhed5ZBiStv-_xFn2H0Kregs"},"issuer":"cognitivescale.com","audience":"cortex","username":"3bacf7bb-7732-4210-910c-07829e2330fa","url":"https://192.168.39.129:30581"} \ No newline at end of file diff --git a/test/files/pat.json b/test/files/pat.json new file mode 100644 index 00000000..2393b8a4 --- /dev/null +++ b/test/files/pat.json @@ -0,0 +1,13 @@ +{ + "url": "http://localhost:8000", + "username": "test_user", + "issuer": "cognitivescale.com", + "audience": "cortex", + "jwk": { + "crv": "Ed25519", + "x": "yA1XUDSEoKWa28bCMFljlXwlEFbSVmQQ7ftIMNtB69U", + "d": "bRujm6B2EFaPTp56cU3z3K1w_5oFleLeL3hsLgqCVLc", + "kty": "OKP", + "kid": "X4u2Hv4VxL77bE8N9dT4ltVBoJsSLTH4bY1a5WL6wNY" + } +} diff --git a/test/sanity.js b/test/sanity.js deleted file mode 100644 index 723a5128..00000000 --- a/test/sanity.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const commander = require('commander'); -const { ListProfilesCommand } = require('../src/commands/configure'); - -describe('sanity check', () => { - it('lists profiles', (done) => { - const program = new commander.Command(); - const command = new ListProfilesCommand(program); - command.execute({ color: 'on' }); - done(); - }); -}); diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index c4e50868..013c35a5 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -16,12 +16,21 @@ const commander = require('commander'); const chai = require('chai'); +const mockedEnv = require('mocked-env'); const { UploadContent } = require('../src/commands/content'); const { humanReadableFileSize } = require('../src/commands/utils'); const { expect } = chai; - +let restoreEnv; describe('Upload Directory', () => { + before(() => { + restoreEnv = mockedEnv({ + CORTEX_CONFIG_DIR: './test/cortex', + }); + }); + after(() => { + restoreEnv(); + }); it('test upload', (done) => { const program = new commander.Command(); const command = new UploadContent(program); @@ -35,14 +44,19 @@ describe('Upload Directory', () => { const expectedFileDicts = [ { - canonical: `${__dirname}/cortex/config`, - relative: 'config', - size: 483, + canonical: '/home/jgielstra/projects/cortex6/cortex-cli/test/cortex/config', + relative: 'config', + size: 919, + }, + { + canonical: '/home/jgielstra/projects/cortex6/cortex-cli/test/cortex/pat-file.json', + relative: 'pat-file.json', + size: 326, }, { - canonical: `${__dirname}/cortex/sample/upload/config`, - relative: 'sample/upload/config', - size: 483, + canonical: '/home/jgielstra/projects/cortex6/cortex-cli/test/cortex/sample/upload/config', + relative: 'sample/upload/config', + size: 483, }, ]; From f7d994cf7916128687683537b539dbdc198f6ccb Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 13 Sep 2021 12:42:24 -0500 Subject: [PATCH 413/864] Fix bad directory name in uploadDirectory test --- test/uploadDirectory.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index 013c35a5..fc74287b 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -44,17 +44,17 @@ describe('Upload Directory', () => { const expectedFileDicts = [ { - canonical: '/home/jgielstra/projects/cortex6/cortex-cli/test/cortex/config', + canonical: `${__dirname}/cortex/config`, relative: 'config', size: 919, }, { - canonical: '/home/jgielstra/projects/cortex6/cortex-cli/test/cortex/pat-file.json', + canonical: `${__dirname}/cortex/pat-file.json`, relative: 'pat-file.json', size: 326, }, { - canonical: '/home/jgielstra/projects/cortex6/cortex-cli/test/cortex/sample/upload/config', + canonical: `${__dirname}/cortex/sample/upload/config`, relative: 'sample/upload/config', size: 483, }, From 0839759891e6608b630c2d2318d777daa1c78742 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 13 Sep 2021 16:05:05 -0500 Subject: [PATCH 414/864] Strip ansi chars from test results... --- package-lock.json | 76 ++++++++++++++++++++++++++++++++++++++++++----- package.json | 1 - test/configure.js | 11 +++---- test/utils.js | 13 ++++++++ 4 files changed, 88 insertions(+), 13 deletions(-) create mode 100644 test/utils.js diff --git a/package-lock.json b/package-lock.json index 7a0a1967..7bb52422 100644 --- a/package-lock.json +++ b/package-lock.json @@ -465,6 +465,11 @@ "string-width": "^3.0.0" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -473,6 +478,16 @@ "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } } } } @@ -484,9 +499,10 @@ "dev": true }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true }, "ansi-styles": { "version": "4.3.0", @@ -4272,6 +4288,11 @@ "wcwidth": "^1.0.1" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -4316,6 +4337,14 @@ "chalk": "^2.0.1" } }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5165,6 +5194,12 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -5174,6 +5209,15 @@ "argparse": "^1.0.7", "esprima": "^4.0.0" } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, @@ -5888,11 +5932,12 @@ } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^6.0.1" } }, "strip-bom": { @@ -5936,6 +5981,12 @@ "string-width": "^3.0.0" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -5945,6 +5996,17 @@ "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } } } diff --git a/package.json b/package.json index 69d799da..d174cfa3 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,6 @@ "npm-registry-fetch": "11.0.0", "plop": "2.7.4", "semver": "7.3.5", - "timeago.js": "4.0.2", "url-join": "4.0.1", "url-parse": "1.5.3", "yauzl": "2.10.0" diff --git a/test/configure.js b/test/configure.js index 25dc4c5e..f563c888 100644 --- a/test/configure.js +++ b/test/configure.js @@ -22,7 +22,8 @@ const fs = require('fs'); const sinon = require('sinon'); const { expect } = require('chai'); const yaml = require('js-yaml'); -const program = require('../bin/cortex-configure'); +const { stripAnsi } = require('./utils'); + const program = require('../bin/cortex-configure'); let restore; describe('configure', () => { @@ -48,14 +49,14 @@ describe('configure', () => { }); function getPrintedLines() { - return _.flatten(printSpy.args); + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } it('lists profiles', (done) => { program.parse(['node', 'configure', 'list']); sinon.assert.calledTwice(printSpy); // default is set at default... - expect(getPrintedLines()).to.eql(['\u001b[32m\u001b[1mdefault\u001b[22m\u001b[39m', 'other']); + expect(getPrintedLines()).to.eql(['default', 'other']); done(); }); @@ -71,12 +72,12 @@ describe('configure', () => { program.parse(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); const output = getPrintedLines(); expect(output).to.length(2); - expect(output[1]).to.eql('Configuration for profile conftest saved.'); + expect(output[1]).to.eql('Configuration for profile conftest saved.'); const conf = yaml.load(fs.readFileSync(path.join(tmpDir, 'config'))); expect(conf.profiles.conftest).to.haveOwnProperty('project', 'test'); printSpy.resetHistory(); program.parse(['node', 'configure', 'list']); - expect(getPrintedLines()).to.eql(['default', 'other', '\u001b[32m\u001b[1mconftest\u001b[22m\u001b[39m']); + expect(getPrintedLines()).to.eql(['default', 'other', 'conftest']); done(); }); }); diff --git a/test/utils.js b/test/utils.js new file mode 100644 index 00000000..6af908d2 --- /dev/null +++ b/test/utils.js @@ -0,0 +1,13 @@ +// COPIED from https://github.com/chalk/ansi-regex ( esm not cjs :( ) +function ansiRegex({ onlyFirst = false } = {}) { + const pattern = [ + '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))', + ].join('|'); + return new RegExp(pattern, onlyFirst ? undefined : 'g'); +} + +function stripAnsi(s) { + return s.replace(ansiRegex(), ''); +} +module.exports = { ansiRegex, stripAnsi }; From f20d76145f4bd5edd99c6fa6fa8bde6b64bc037c Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 14 Sep 2021 11:14:28 +0530 Subject: [PATCH 415/864] commands options parsing fix --- src/commands/assessments.js | 10 +++++----- src/commands/campaigns.js | 18 +++++++++--------- src/commands/projects.js | 6 +++--- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index d6824113..718beed9 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -44,7 +44,7 @@ module.exports.ListResourcesCommand = class { } execute(command) { - const options = command.opts(); + const options = command; const profile = loadProfile(options.profile); debug('%s.ListResourcesCommand()', profile.name); @@ -76,7 +76,7 @@ module.exports.ListResourceTypesCommand = class { } execute(command) { - const options = command.opts(); + const options = command; const profile = loadProfile(options.profile); debug('%s.ListResourceTypesCommand()', profile.name); @@ -107,7 +107,7 @@ module.exports.DependencyTreeCommand = class { } execute(dependencyFile, command) { - const options = command.opts(); + const options = command; const profile = loadProfile(options.profile); debug('%s.DependencyTreeCommand()', profile.name); @@ -142,7 +142,7 @@ module.exports.CreateAssessmentCommand = class { } execute(assessmentDef, command) { - const options = command.opts(); + const options = command; const profile = loadProfile(options.profile); debug('%s.CreateAssessmentCommand()', profile.name); const client = new Assessments(profile.url); @@ -353,7 +353,7 @@ module.exports.ExportAssessmentReportCommand = class { } execute(name, reportId, command) { - const options = command.opts(); + const options = command; const profile = loadProfile(options.profile); debug('%s.ExportAssessmentReportCommand()', profile.name); diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 55a3220e..6ac301f4 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -59,7 +59,7 @@ module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { } async execute(campaignName, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeDescribeCampaign(%s)', profile.name, campaignName); const cli = new ApiServerClient(profile.url); @@ -80,7 +80,7 @@ module.exports.ExportCampaignCommand = class ExportCampaignCommand { } execute(campaignName, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeExportCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); @@ -102,7 +102,7 @@ module.exports.ImportCampaignCommand = class ImportCampaignCommand { } execute(campaignFilepath, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeImportCampaignCommand(%s)', profile.name, campaignFilepath); const cli = new Catalog(profile.url); @@ -121,7 +121,7 @@ module.exports.DeployCampaignCommand = class DeployCampaignCommand { } execute(campaignName, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeDeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); @@ -151,7 +151,7 @@ module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { } execute(campaignName, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeUndeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); @@ -181,7 +181,7 @@ module.exports.UndeployMissionCommand = class UndeployMissionCommand { } execute(campaignName, missionName, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeUndeployMissionCommand(%s)', profile.name, missionName); const cli = new Catalog(profile.url); @@ -206,7 +206,7 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { } execute(campaign, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeListMissionsCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); @@ -239,7 +239,7 @@ module.exports.DeployMissionCommand = class DeployMissionCommand { } execute(campaign, mission, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); @@ -258,7 +258,7 @@ module.exports.DescribeMissionCommand = class DescribeMissionCommand { } execute(campaign, mission, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeDescribeMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); diff --git a/src/commands/projects.js b/src/commands/projects.js index 61f5e0cf..2e7154c4 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); module.exports.CreateProjectCommand = class CreateProjectCommand { @@ -28,7 +28,7 @@ module.exports.CreateProjectCommand = class CreateProjectCommand { } async execute(projectDefinition, command) { - const options = command.opts(); + const options = command; const profile = loadProfile(options.profile); debug('%s.executeSaveProject(%s)', profile.name, projectDefinition); let project = {}; @@ -89,7 +89,7 @@ module.exports.DescribeProjectCommand = class DescribeProjectCommand { } async execute(projectName, cmd) { - const options = cmd.opts(); + const options = cmd; const profile = loadProfile(options.profile); debug('%s.executeDescribeProject(%s)', profile.name, projectName); const cli = new ApiServerClient(profile.url); From f409aef94eed2591ac7ffba81d71e6f0cff6ddf2 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Tue, 14 Sep 2021 17:59:39 +0530 Subject: [PATCH 416/864] added cli to delete a skill --- bin/cortex-skills.js | 17 +++++++++++++++++ src/client/catalog.js | 14 ++++++++++++++ src/commands/skills.js | 30 +++++++++++++++++++++++++++++- src/commands/utils.js | 4 ++++ 4 files changed, 64 insertions(+), 1 deletion(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 6348e27c..b6180d5b 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -29,6 +29,7 @@ const { DeploySkillCommand, UndeploySkillCommand, SkillLogsCommand, + DeleteSkillCommand, } = require('../src/commands/skills'); program.description('Work with Cortex Skills'); @@ -104,6 +105,22 @@ program } })); +// Delete Skill +program + .command('delete ') + .description('Delete a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((skillName, options) => { + try { + new DeleteSkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + // Save Skill program .command('save ') diff --git a/src/client/catalog.js b/src/client/catalog.js index e86e9c02..9564f418 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -480,4 +480,18 @@ module.exports = class Catalog { // return constructError(err); // }); // } + + deleteSkill(projectId, token, skillName) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; + debug('deleteSkill(%s) => %s', skillName, endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then((skill) => ({ success: true, skill })) + .catch((err) => constructError(err)); + } }; diff --git a/src/commands/skills.js b/src/commands/skills.js index 19f762f6..551f6839 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -20,7 +20,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agent = require('../client/agents'); -const { LISTTABLEFORMAT } = require('./utils'); +const { LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, @@ -231,3 +231,31 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { }); } }; + +module.exports.DeleteSkillCommand = class DeleteSkillCommand { + constructor(program) { + this.program = program; + } + + execute(skillName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteSkill(%s)', profile.name, skillName); + const catalog = new Catalog(profile.url); + catalog.deleteSkill(options.project || profile.project, profile.token, skillName) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + if (response.status === 403) { // has dependencies + const tableFormat = DEPENDENCYTABLEFORMAT; + printError(`Skill deletion failed: ${response.status} ${response.message}.`, options, false); + return printTable(tableFormat, response.details); + } + return printError(`Skill deletion failed: ${response.status} ${response.message}.`, options); + }) + .catch((err) => { + printError(`Failed to delete skill: ${err.status} ${err.message}`, options); + }); + } +}; diff --git a/src/commands/utils.js b/src/commands/utils.js index 1acb317d..f0a7770a 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -315,7 +315,11 @@ module.exports.LISTTABLEFORMAT = [ { column: 'Description', field: 'description', width: 50 }, { column: 'Modified', field: 'updatedAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 25 }, +]; +module.exports.DEPENDENCYTABLEFORMAT = [ + { column: 'Dependency Name', field: 'name', width: 60 }, + { column: 'Dependency Type', field: 'type', width: 40 }, ]; module.exports.RUNTABLEFORMAT = [ From 8a6379239e48ae75384c5895b64d11abdb07dafe Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 14 Sep 2021 13:02:19 -0500 Subject: [PATCH 417/864] Fix configure prompt, use async/await fiendly prompt over co-prompt --- package-lock.json | 123 ++++++++++++++++++++++++++------------ package.json | 3 +- src/commands/configure.js | 20 +++++-- 3 files changed, 100 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7bb52422..8be58b22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -498,12 +498,6 @@ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -603,6 +597,11 @@ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1070,19 +1069,6 @@ "mimic-response": "^1.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "co-prompt": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/co-prompt/-/co-prompt-1.0.0.tgz", - "integrity": "sha1-+zcOntrEhXayenMv5dfyHZ/G5vY=", - "requires": { - "keypress": "~0.2.1" - } - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -1105,6 +1091,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1172,6 +1163,11 @@ "which": "^2.0.1" } }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" + }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -2173,6 +2169,11 @@ "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3165,6 +3166,11 @@ "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=" + }, "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", @@ -3241,11 +3247,6 @@ "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, - "keypress": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.2.1.tgz", - "integrity": "sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc=" - }, "keyv": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", @@ -3863,6 +3864,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, "nanoid": { "version": "3.1.23", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", @@ -4756,6 +4762,18 @@ "retry": "^0.12.0" } }, + "prompt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.0.tgz", + "integrity": "sha512-iGerYRpRUg5ZyC+FJ/25G5PUKuWAGRjW1uOlhX7Pi3O5YygdK6R+KEaBjRbHSkU5vfS5PZCltSPZdDtUYwRCZA==", + "requires": { + "async": "~0.9.0", + "colors": "^1.1.2", + "read": "1.0.x", + "revalidator": "0.1.x", + "winston": "2.x" + } + }, "propagate": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", @@ -4802,6 +4820,14 @@ "safe-buffer": "^5.1.0" } }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "requires": { + "mute-stream": "~0.0.4" + } + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -5031,6 +5057,11 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, + "revalidator": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" + }, "rewire": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", @@ -5847,6 +5878,11 @@ "minipass": "^3.1.1" } }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -5931,15 +5967,6 @@ "define-properties": "^1.1.3" } }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -6035,11 +6062,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "timeago.js": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/timeago.js/-/timeago.js-4.0.2.tgz", - "integrity": "sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==" - }, "title-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", @@ -6386,6 +6408,31 @@ "string-width": "^4.0.0" } }, + "winston": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", + "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "requires": { + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" + }, + "dependencies": { + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + } + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", diff --git a/package.json b/package.json index d174cfa3..da4794e3 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,6 @@ "boxen": "5.0.1", "chalk": "4.1.2", "cli-table3": "0.6.0", - "co": "4.6.0", - "co-prompt": "1.0.0", "commander": "8.1.0", "debug": "4.3.2", "find-package-json": "1.2.0", @@ -53,6 +51,7 @@ "moment": "2.29.1", "npm-registry-fetch": "11.0.0", "plop": "2.7.4", + "prompt": "1.2.0", "semver": "7.3.5", "url-join": "4.0.1", "url-parse": "1.5.3", diff --git a/src/commands/configure.js b/src/commands/configure.js index 2224b27a..5d9fe38c 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -15,9 +15,8 @@ */ const debug = require('debug')('cortex:cli'); -const co = require('co'); const _ = require('lodash'); -const prompt = require('co-prompt'); +const prompt = require('prompt'); const chalk = require('chalk'); const fs = require('fs'); @@ -36,12 +35,15 @@ function _validatePatFile(patFile) { return JSON.parse(fs.readFileSync(patFile)); } +prompt.message = ''; +prompt.delimeter = ''; +prompt.colors = false; module.exports.ConfigureCommand = class { constructor(program) { this.program = program; } - execute() { + async execute() { const { profile, file, project } = this.program.opts(); const config = readConfig(); const profileName = profile || _.get(config, 'currentProfile', 'default'); @@ -50,20 +52,26 @@ module.exports.ConfigureCommand = class { console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); const cmd = this; - co(function* () { +// co(function* () { try { let patData = null; if (file) { patData = _validatePatFile(file); } else { - patData = JSON.parse(yield prompt('Cortex Personal Access Config: ')); + const { patjson } = await prompt.get([{ + name: 'patjson', + required: true, + description: 'Cortex Personal Access Config', + }]); + patData = JSON.parse(patjson); } cmd.saveConfig(config, profileName, patData, project); console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); + process.exit(0); // } catch (err) { printError(err); } - }); + // }); } saveConfig(config, profileName, { From bdaa368fa9ba0d9b785d872ba103e987ea6c7182 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Wed, 15 Sep 2021 19:36:22 +0530 Subject: [PATCH 418/864] added dependency table error for delete action --- src/commands/actions.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index c2078488..c32b7113 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -21,7 +21,7 @@ const { loadProfile } = require('../config'); const Actions = require('../client/actions'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -177,10 +177,14 @@ module.exports.DeleteActionCommand = class { .then((response) => { if (response.success) { const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Action deletion failed: ${response.status} ${response.message}`, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + if (response.status === 403) { // has dependencies + const tableFormat = DEPENDENCYTABLEFORMAT; + printError(`Action deletion failed: ${response.status} ${response.message}.`, options, false); + return printTable(tableFormat, response.details); } + return printError(`Action deletion failed: ${response.status} ${response.message}`, options); }) .catch((err) => { printError(`Failed to delete action: ${err.status} ${err.message}`, options); From 6031644d39471905fd8347c15fcf6ddb0af62e57 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Wed, 15 Sep 2021 13:32:46 -0500 Subject: [PATCH 419/864] no longer run script to commit to cortex-docs repo and add a pull request builder pipeline (#410) --- cortex-cli-pr.gocd.yaml | 30 ++++++++++++++++++++++++++++++ cortex-cli.gocd.yaml | 4 ++-- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 cortex-cli-pr.gocd.yaml diff --git a/cortex-cli-pr.gocd.yaml b/cortex-cli-pr.gocd.yaml new file mode 100644 index 00000000..31c3fa26 --- /dev/null +++ b/cortex-cli-pr.gocd.yaml @@ -0,0 +1,30 @@ +format_version: 10 +pipelines: + cortex-cli-pr: + group: pull-requests + label_template: ${COUNT} + materials: + cortex-cli: + plugin_configuration: + id: github.pr + version: 1 + options: + url: git@github.com:CognitiveScale/cortex-cli.git + defaultBranch: develop + stages: + - build: + fetch_materials: true + clean_workspace: true + approval: + type: success + allow_only_on_success: false + jobs: + Build: + elastic_profile_id: gocd-test-agent-dind + timeout: 0 + tasks: + - script: | + set -eux + git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git + ./gocd-pipeline-scripts/common/c12e-common.sh dev + diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 4cbe2fd5..1a0d7ae4 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -22,7 +22,7 @@ pipelines: set -eux git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git ./gocd-pipeline-scripts/common/c12e-common.sh dev - ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli + echo ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli cortex-cli-master: group: fabric6 environment_variables: @@ -55,4 +55,4 @@ pipelines: mv devBranchRevision.json masterBranchRevision.json git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git ./gocd-pipeline-scripts/common/c12e-common.sh master - ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli + echo ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli From df4f40451c3740ce9536491adb12d1b58445b453 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Thu, 16 Sep 2021 13:05:24 +0530 Subject: [PATCH 420/864] added cli to delete an agent --- bin/cortex-agents.js | 18 ++++++++++++++++++ src/client/catalog.js | 14 ++++++++++++++ src/commands/agents.js | 30 +++++++++++++++++++++++++++++- 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index fa4c7b3f..5e245052 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -32,6 +32,7 @@ const { ListAgentSnapshotsCommand, DescribeAgentSnapshotCommand, CreateAgentSnapshotCommand, + DeleteAgentCommand, } = require('../src/commands/agents'); program.description('Work with Cortex Agents'); @@ -227,4 +228,21 @@ program } })); +// Delete Agent +program + .command('delete ') + .description('Delete an agent') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((agentName, options) => { + try { + new DeleteAgentCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + + program.parse(process.argv); diff --git a/src/client/catalog.js b/src/client/catalog.js index 9564f418..53ffaa7a 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -494,4 +494,18 @@ module.exports = class Catalog { .then((skill) => ({ success: true, skill })) .catch((err) => constructError(err)); } + + deleteAgent(projectId, token, agentName) { + checkProject(projectId); + const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; + debug('deleteAgent(%s) => %s', agentName, endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then((agent) => ({ success: true, agent })) + .catch((err) => constructError(err)); + } }; diff --git a/src/commands/agents.js b/src/commands/agents.js index ed0a5329..114b93f5 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,7 +21,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); -const { LISTTABLEFORMAT } = require('./utils'); +const { LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT} = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, @@ -414,3 +414,31 @@ module.exports.CreateAgentSnapshotCommand = class { }); } }; + +module.exports.DeleteAgentCommand = class DeleteAgentCommand { + constructor(program) { + this.program = program; + } + + execute(agentName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteAgent(%s)', profile.name, agentName); + const catalog = new Catalog(profile.url); + catalog.deleteAgent(options.project || profile.project, profile.token, agentName) + .then((response) => { + if (response.success) { + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + if (response.status === 403) { // has dependencies + const tableFormat = DEPENDENCYTABLEFORMAT; + printError(`Agent deletion failed: ${response.status} ${response.message}.`, options, false); + return printTable(tableFormat, response.details); + } + return printError(`Agent deletion failed: ${response.status} ${response.message}.`, options); + }) + .catch((err) => { + printError(`Failed to delete agent: ${err.status} ${err.message}`, options); + }); + } +}; From f856c9bd6626403fe4e9c57a06cc7e1cf6294b7c Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 17 Sep 2021 15:24:11 +0530 Subject: [PATCH 421/864] updated js-yaml doesn't have safeLoad and safeDump function. Fixing as per updated js-yaml lib --- src/commands/deploy.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 08269294..b5fb0bab 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -48,7 +48,7 @@ const manifestMeta = { }; function updateManifest(filepaths) { - const manifest = fileExists(manifestFile) ? yaml.safeLoad(fs.readFileSync(manifestFile).toString()) : manifestMeta; + const manifest = fileExists(manifestFile) ? yaml.load(fs.readFileSync(manifestFile).toString()) : manifestMeta; Object.keys(filepaths).forEach((type) => { const kind = type.toLowerCase(); const entries = [..._.get(manifest, `cortex.${kind}`, []), ...filepaths[type]]; @@ -192,7 +192,7 @@ module.exports.DeploySnapshotCommand = class { snapshotIds.split(' ').forEach((snapshotId) => { promises.push(agents.describeAgentSnapshot(project, profile.token, snapshotId).then(async (response) => { let result = JSON.parse(response); - // export dependant NLOps artifacts + // export dependant MLOps artifacts if (_.size(result.dependencies.mlOps)) { await Promise.all(result.dependencies.mlOps.map(async (ml) => { if (_.size(ml.experiments)) { @@ -233,10 +233,10 @@ module.exports.DeployCampaignCommand = class { let type; let filepath; if (filename.endsWith('.yml') || filename.endsWith('.yaml')) { - const resource = yaml.safeLoad(content); + const resource = yaml.load(content.toString()); type = resource.kind; filepath = path.join(artifactsDir, campaign, filename); - writeToFile(yaml.safeDump(resource), filepath); + writeToFile(yaml.dump(resource), filepath); } else { type = path.extname(filename).replace(/\./g, ''); filepath = path.join(artifactsDir, campaign, filename); From 35b9082b5d45dca75ab6efc6d5e94ccce98f974c Mon Sep 17 00:00:00 2001 From: clee Date: Fri, 17 Sep 2021 13:30:10 -0500 Subject: [PATCH 422/864] publish cortex-cli-docs.md as a build artifact to be committed into the fabric repo --- cortex-cli.gocd.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 1a0d7ae4..07d4fa31 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -17,6 +17,8 @@ pipelines: source: cruise-output/buildReport*.json - build: source: devBranchRevision.json + - build: + source: cortex-cli-docs.md tasks: - script: | set -eux @@ -44,6 +46,8 @@ pipelines: artifacts: - build: source: masterBranchRevision.json + - build: + source: cortex-cli-docs.md tasks: - fetch: pipeline: cortex-cli From 5bdc48b320b8d6cf90827ee05225a66c5ffbed26 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Fri, 17 Sep 2021 14:07:41 -0500 Subject: [PATCH 423/864] add new stage to cli master pipeline to commit docs markdown into cortex-fabric repo (#414) --- cortex-cli.gocd.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 07d4fa31..4253750e 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -60,3 +60,20 @@ pipelines: git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git ./gocd-pipeline-scripts/common/c12e-common.sh master echo ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli + - publishDocs: + clean_workspace: yes + jobs: + commitDocs: + elastic_profile_id: gocd-test-agent-dind + tasks: + - fetch: + stage: build + job: Build + source: cortex-cli-docs.md + is_file: yes + - script: | + git clone --branch master --single-branch git@github.com:CognitiveScale/cortex-fabric.git + mv cortex-cli-docs.md cortex-fabric/docs/docs/reference-guides/cortex-cli.md + cd cortex-fabric + git commit -a -m "Publishing New CLI Docs" + git push origin master From 837c04c8fb2ad0ba1b0f697d4095460616be033f Mon Sep 17 00:00:00 2001 From: Akarsh Date: Mon, 20 Sep 2021 17:50:22 +0530 Subject: [PATCH 424/864] added cli command to delete a connection --- bin/cortex-connections.js | 17 +++++++++++++++++ src/client/connections.js | 13 +++++++++++++ src/commands/connections.js | 30 +++++++++++++++++++++++++++++- 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 2fc903b7..1fafc4b4 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -26,6 +26,7 @@ const { SaveConnectionCommand, DescribeConnectionCommand, ListConnectionsTypes, + DeleteConnectionCommand, } = require('../src/commands/connections'); program.description('Work with Cortex Connections'); @@ -101,4 +102,20 @@ program } })); +// Delete Connection +program + .command('delete ') + .description('Delete a connection') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DeleteConnectionCommand(program).execute(connectionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/connections.js b/src/client/connections.js index 49e89031..092af11d 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -67,6 +67,19 @@ module.exports = class Connections { .catch((err) => constructError(err)); } + deleteConnection(projectId, token, connectionName) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(connectionName)}`; + debug('deleteConnection(%s) => %s', connectionName, endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); + } + listConnectionsTypes(token) { const endpoint = `${this.cortexUrl}/fabric/v4/connectiontypes`; debug('listConnectionsTypes() => %s', endpoint); diff --git a/src/commands/connections.js b/src/commands/connections.js index 207f4601..f7319cb0 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -20,7 +20,7 @@ const { loadProfile } = require('../config'); const Connections = require('../client/connections'); const Content = require('../client/content'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -154,6 +154,34 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { } }; +module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { + constructor(program) { + this.program = program; + } + + execute(connectionName, options) { + const profile = loadProfile(options.profile); + debug('%s.executeDeleteConnection(%s)', profile.name, connectionName); + + const connection = new Connections(profile.url); + connection.deleteConnection(options.project || profile.project, profile.token, connectionName).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + if (response.status === 403) { // has dependencies + const tableFormat = DEPENDENCYTABLEFORMAT; + printError(`Connection deletion failed: ${response.status} ${response.message}.`, options, false); + return printTable(tableFormat, response.details); + } + return printError(`Failed to delete connection ${connectionName}: ${response.message}`, options); + }) + .catch((err) => { + printError(`Failed to delete connection ${connectionName}: ${err.status} ${err.message}`, options); + }); + } +}; + module.exports.ListConnectionsTypes = class ListConnectionsTypes { constructor(program) { this.program = program; From d12fc5ce7ec934b71ef4fd1320ab23fd4614d227 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Mon, 20 Sep 2021 17:54:51 +0530 Subject: [PATCH 425/864] lint fixes --- bin/cortex-agents.js | 1 - src/client/models.js | 4 ++-- src/commands/agents.js | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 5e245052..b27c7489 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -244,5 +244,4 @@ program } })); - program.parse(process.argv); diff --git a/src/client/models.js b/src/client/models.js index 2bbc8087..153e0910 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -49,8 +49,8 @@ module.exports = class Models { 'user-agent': getUserAgent(), json: {}, }).json() - .then(res => ({ success: true, message: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, message: res })) + .catch((err) => constructError(err)); } deleteModel(projectId, token, modelName) { diff --git a/src/commands/agents.js b/src/commands/agents.js index 114b93f5..7f402b6a 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,7 +21,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); -const { LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT} = require('./utils'); +const { LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, From f6362b2bebbd98e6c9998e75d525b2d23b8f4d5a Mon Sep 17 00:00:00 2001 From: Akarsh Date: Mon, 20 Sep 2021 18:05:26 +0530 Subject: [PATCH 426/864] removed status from cli skill delete --- src/commands/skills.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index 551f6839..9d0785d3 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -249,7 +249,7 @@ module.exports.DeleteSkillCommand = class DeleteSkillCommand { } if (response.status === 403) { // has dependencies const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Skill deletion failed: ${response.status} ${response.message}.`, options, false); + printError(`Skill deletion failed: ${response.message}.`, options, false); return printTable(tableFormat, response.details); } return printError(`Skill deletion failed: ${response.status} ${response.message}.`, options); From 2e8e204c4fa6e0de738df428fa4cd11190410107 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Mon, 20 Sep 2021 18:06:18 +0530 Subject: [PATCH 427/864] removed status code --- src/commands/actions.js | 2 +- src/commands/agents.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index c32b7113..b73051cc 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -181,7 +181,7 @@ module.exports.DeleteActionCommand = class { } if (response.status === 403) { // has dependencies const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Action deletion failed: ${response.status} ${response.message}.`, options, false); + printError(`Action deletion failed: ${response.message}.`, options, false); return printTable(tableFormat, response.details); } return printError(`Action deletion failed: ${response.status} ${response.message}`, options); diff --git a/src/commands/agents.js b/src/commands/agents.js index 7f402b6a..fc002ee7 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -432,7 +432,7 @@ module.exports.DeleteAgentCommand = class DeleteAgentCommand { } if (response.status === 403) { // has dependencies const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Agent deletion failed: ${response.status} ${response.message}.`, options, false); + printError(`Agent deletion failed: ${response.message}.`, options, false); return printTable(tableFormat, response.details); } return printError(`Agent deletion failed: ${response.status} ${response.message}.`, options); From 585b53f0e972349bbfbeff628bd1e48aa5348203 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Mon, 20 Sep 2021 18:07:05 +0530 Subject: [PATCH 428/864] removed error status --- src/commands/connections.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/connections.js b/src/commands/connections.js index f7319cb0..5ef86293 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -171,7 +171,7 @@ module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { } if (response.status === 403) { // has dependencies const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Connection deletion failed: ${response.status} ${response.message}.`, options, false); + printError(`Connection deletion failed: ${response.message}.`, options, false); return printTable(tableFormat, response.details); } return printError(`Failed to delete connection ${connectionName}: ${response.message}`, options); From 0f492625e7764579afc331b07c508f8a3c04653e Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 20 Sep 2021 08:53:42 -0500 Subject: [PATCH 429/864] Add option to get skill as kubernetes resource to aid in debugging --- bin/cortex-skills.js | 1 + src/client/catalog.js | 17 ++++++++++------- src/commands/skills.js | 18 +++++++----------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 6348e27c..636e6dcb 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -57,6 +57,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('-o, --output ', 'Format output as yaml or k8s resource') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((skillName, options) => { diff --git a/src/client/catalog.js b/src/client/catalog.js index e86e9c02..f30554b0 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -64,23 +64,26 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - describeSkill(projectId, token, skillName, verbose = false) { + async describeSkill(projectId, token, skillName, verbose = false, output = 'json') { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; debug('describeSkill(%s) => %s', skillName, endpoint); - const searchParams = {}; + const searchParams = { output }; if (verbose) { searchParams.verbose = verbose; searchParams.status = verbose; } - return got - .get(endpoint, { + try { + const res = got.get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), searchParams, - }).json() - .then((res) => ({ success: true, skill: res })) - .catch((err) => constructError(err)); + }); + if (output === 'json') return res.json(); + return res.text(); + } catch (err) { + return constructError(err); + } } deploySkill(projectId, token, skillName, verbose = false) { diff --git a/src/commands/skills.js b/src/commands/skills.js index 19f762f6..75be5ef6 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -105,22 +105,18 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { this.program = program; } - execute(skillName, options) { + async execute(skillName, options) { const profile = loadProfile(options.profile); debug('%s.executeDescribeSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); - catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { - if (response.success) { - const result = filterObject(response.skill, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe skill ${skillName}: ${response.message}`, options); - } - }) - .catch((err) => { + try { + let response = await catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose, options.output); + if (options.output === 'json') response = JSON.stringify(filterObject(response, options), null, 2); + printSuccess(response, options); + } catch (err) { printError(`Failed to describe skill ${skillName}: ${err.status} ${err.message}`, options); - }); + } } }; From d01dd0ad6e41a805675e5f3e009f35e1d6157953 Mon Sep 17 00:00:00 2001 From: clee Date: Mon, 20 Sep 2021 10:31:37 -0500 Subject: [PATCH 430/864] remove dependency of develop pipeline --- cortex-cli.gocd.yaml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 4253750e..588babd4 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -33,10 +33,6 @@ pipelines: cortex-cli: git: git@github.com:CognitiveScale/cortex-cli.git branch: master - cortex-cli-develop: - type: dependency - pipeline: cortex-cli - stage: build stages: - build: clean_workspace: yes @@ -49,12 +45,6 @@ pipelines: - build: source: cortex-cli-docs.md tasks: - - fetch: - pipeline: cortex-cli - stage: build - job: Build - source: devBranchRevision.json - is_file: yes - script: | mv devBranchRevision.json masterBranchRevision.json git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git From fa11d5152ff8008a1ea01756b352fe854368c82c Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 20 Sep 2021 10:51:26 -0500 Subject: [PATCH 431/864] fix skill output default --- src/commands/skills.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index 75be5ef6..d139a743 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -112,7 +112,7 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { const catalog = new Catalog(profile.url); try { let response = await catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose, options.output); - if (options.output === 'json') response = JSON.stringify(filterObject(response, options), null, 2); + if (_.get(options, 'output', 'json').toLowerCase() === 'json') response = JSON.stringify(filterObject(response, options), null, 2); printSuccess(response, options); } catch (err) { printError(`Failed to describe skill ${skillName}: ${err.status} ${err.message}`, options); From 77c397f7c0ff18a2e313cba91d6c7ce344adeafb Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 21 Sep 2021 17:24:29 +0530 Subject: [PATCH 432/864] fix as per changes in get skill response --- src/commands/deploy.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index b5fb0bab..f67d8317 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -330,8 +330,11 @@ module.exports.DeploySkillCommand = class { const exports = {}; const catalog = new Catalog(profile.url); catalog.describeSkill(project, profile.token, skillName, false).then(async (response) => { - if (response.success) { - const result = filterObject(response.skill, options); + // check if response is valid skill and not error. + if (response.success === false) { + printError(`Failed to export skill ${skillName}: ${response.message}`, options); + } else { + const result = filterObject(response, options); const skillDesc = cleanInternalFields(result); const filepath = path.join(artifactsDir, 'skills', `${skillName}.json`); writeToFile(skillDesc, filepath); @@ -377,8 +380,6 @@ module.exports.DeploySkillCommand = class { } updateManifest(manifest); printSuccess(`Successfully exported ${JSON.stringify(Object.assign(exports, mlOps))} in ${artifactsDir} and updated manifest file ${manifestFile}`); - } else { - printError(`Failed to export skill ${skillName}: ${response.message}`, options); } }).catch((err) => { printError(`Failed to export skill ${skillName}: ${err.status} ${err.message}`, options); From f388c0d44858835cde5977ccf35964c1b338295e Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Tue, 21 Sep 2021 19:45:16 +0530 Subject: [PATCH 433/864] error handling --- src/commands/experiments.js | 24 +++++++++++++++++------- src/commands/models.js | 13 +++++++++---- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/commands/experiments.js b/src/commands/experiments.js index e6371a52..eb6ac816 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -21,7 +21,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { - printSuccess, printError, filterObject, printTable, parseObject, formatValidationPath, + printSuccess, printError, filterObject, printTable, parseObject, formatValidationPath, DEPENDENCYTABLEFORMAT, } = require('./utils'); class ListExperiments { @@ -100,10 +100,15 @@ class DeleteExperimentCommand { exp.deleteExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to delete experiment ${experimentName}: ${response.status} - ${response.message}`, options); + return printSuccess(JSON.stringify(result, null, 2), options); } + if (response.status === 403) { // has dependencies + const tableFormat = DEPENDENCYTABLEFORMAT; + printError(`Experiment deletion failed: ${response.message}.`, options, false); + return printTable(tableFormat, response.details); + } + return printError(`Failed to delete experiment ${experimentName}: ${response.status} - ${response.message}`, options); + }) .catch((err) => { printError(`Failed to delete experiment ${experimentName}: ${err.status} - ${err.message}`, options); @@ -197,10 +202,15 @@ class DeleteRunCommand { const exp = new Experiments(profile.url); exp.deleteRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { - printSuccess(`Run ${runId} in experiment ${experimentName} deleted`, options); - } else { - printError(`Failed to delete run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); + return printSuccess(`Run ${runId} in experiment ${experimentName} deleted`, options); + } + if (response.status === 403) { // has dependencies + const tableFormat = DEPENDENCYTABLEFORMAT; + printError(`Run deletion failed: ${response.message}.`, options, false); + return printTable(tableFormat, response.details); } + return printError(`Failed to delete run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); + }) .catch((err) => { printError(`Failed to delete run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); diff --git a/src/commands/models.js b/src/commands/models.js index ac2109c2..e5c911c1 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -24,7 +24,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Models = require('../client/models'); const Experiments = require('../client/experiments'); -const { LISTTABLEFORMAT, RUNTABLEFORMAT } = require('./utils'); +const { LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, @@ -164,10 +164,15 @@ module.exports.DeleteModelCommand = class { .then((response) => { if (response && response.success) { const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Model deletion failed: ${response.status} ${response.message}.`, options); + return printSuccess(JSON.stringify(result, null, 2), options); } + if (response.status === 403) { // has dependencies + const tableFormat = DEPENDENCYTABLEFORMAT; + printError(`Model deletion failed: ${response.message}.`, options, false); + return printTable(tableFormat, response.details); + } + return printError(`Model deletion failed: ${response.status} ${response.message}.`, options); + }) .catch((err) => { printError(`Failed to delete model: ${err.status} ${err.message}`, options); From 5c97a946503c6bb1c49a7dd870429021dd26bb86 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Tue, 21 Sep 2021 19:51:43 +0530 Subject: [PATCH 434/864] removed blank lines --- src/commands/experiments.js | 2 -- src/commands/models.js | 1 - 2 files changed, 3 deletions(-) diff --git a/src/commands/experiments.js b/src/commands/experiments.js index eb6ac816..d7b4e508 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -108,7 +108,6 @@ class DeleteExperimentCommand { return printTable(tableFormat, response.details); } return printError(`Failed to delete experiment ${experimentName}: ${response.status} - ${response.message}`, options); - }) .catch((err) => { printError(`Failed to delete experiment ${experimentName}: ${err.status} - ${err.message}`, options); @@ -210,7 +209,6 @@ class DeleteRunCommand { return printTable(tableFormat, response.details); } return printError(`Failed to delete run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); - }) .catch((err) => { printError(`Failed to delete run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); diff --git a/src/commands/models.js b/src/commands/models.js index e5c911c1..3c1ae440 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -172,7 +172,6 @@ module.exports.DeleteModelCommand = class { return printTable(tableFormat, response.details); } return printError(`Model deletion failed: ${response.status} ${response.message}.`, options); - }) .catch((err) => { printError(`Failed to delete model: ${err.status} ${err.message}`, options); From 2c950470b1cade91499093063f6c4e3105cc05b3 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Thu, 23 Sep 2021 13:55:00 +0530 Subject: [PATCH 435/864] added cli command to delete a secret --- bin/cortex-secrets.js | 18 ++++++++++++++++++ src/client/secrets.js | 13 +++++++++++++ src/commands/secrets.js | 30 +++++++++++++++++++++++++++++- 3 files changed, 60 insertions(+), 1 deletion(-) diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 0029d611..c8f734b7 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -25,7 +25,9 @@ const { ListSecretsCommand, ReadSecretsCommand, WriteSecretsCommand, + DeleteSecretCommand, } = require('../src/commands/secrets'); +const {DeleteConnectionCommand} = require("../src/commands/connections"); program.description('Work with Cortex Secrets'); @@ -82,4 +84,20 @@ program } })); +// Delete Secret +program + .command('delete ') + .description('Delete a secret') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((keyName, options) => { + try { + new DeleteSecretCommand(program).execute(keyName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.parse(process.argv); diff --git a/src/client/secrets.js b/src/client/secrets.js index b380582c..814eb1a6 100644 --- a/src/client/secrets.js +++ b/src/client/secrets.js @@ -51,6 +51,19 @@ module.exports = class Secrets { .catch((err) => constructError(err)); } + deleteSecret(projectId, token, keyName) { + checkProject(projectId); + const endpoint = urljoin(this.endpoint(projectId), keyName); + debug('deleteSecret(%s) => %s', keyName, endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }).json() + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); + } + writeSecret(projectId, token, keyName, value) { checkProject(projectId); const endpoint = urljoin(this.endpoint(projectId), keyName); diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 5011bc19..de4671e1 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -23,7 +23,7 @@ const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); const Secrets = require('../client/secrets'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, } = require('./utils'); module.exports.ListSecretsCommand = class { @@ -131,3 +131,31 @@ module.exports.WriteSecretsCommand = class { }); } }; + +module.exports.DeleteSecretCommand = class { + constructor(program) { + this.program = program; + } + + execute(keyName, options) { + const profile = loadProfile(options.profile); + debug('%s.deleteSecret(%s)', profile.name, keyName); + + const secrets = new Secrets(profile.url); + secrets.deleteSecret(options.project || profile.project, profile.token, keyName).then((response) => { + if (response.success) { + const result = filterObject(response.result, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + if (response.status === 403) { // has dependencies + const tableFormat = DEPENDENCYTABLEFORMAT; + printError(`Secret deletion failed: ${response.message}.`, options, false); + return printTable(tableFormat, response.details); + } + return printError(`Failed to read secure secret : ${response.message}`, options); + }) + .catch((err) => { + printError(`Failed to read secure secret : ${err.status} ${err.message}`, options); + }); + } +}; From d7f482079c0eca8f164665bff227ee2070274ad8 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Thu, 23 Sep 2021 16:46:27 +0530 Subject: [PATCH 436/864] updated error message --- src/commands/secrets.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/secrets.js b/src/commands/secrets.js index de4671e1..5478000c 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -152,10 +152,10 @@ module.exports.DeleteSecretCommand = class { printError(`Secret deletion failed: ${response.message}.`, options, false); return printTable(tableFormat, response.details); } - return printError(`Failed to read secure secret : ${response.message}`, options); + return printError(`Failed to delete secure secret : ${response.message}`, options); }) .catch((err) => { - printError(`Failed to read secure secret : ${err.status} ${err.message}`, options); + printError(`Failed to delete secure secret : ${err.status} ${err.message}`, options); }); } }; From 0fa76956c282c79bf69c539284886bde79dbb8fc Mon Sep 17 00:00:00 2001 From: Akarsh Date: Thu, 23 Sep 2021 19:22:43 +0530 Subject: [PATCH 437/864] removed unneeded line --- bin/cortex-secrets.js | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index c8f734b7..b2087d7e 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -27,7 +27,6 @@ const { WriteSecretsCommand, DeleteSecretCommand, } = require('../src/commands/secrets'); -const {DeleteConnectionCommand} = require("../src/commands/connections"); program.description('Work with Cortex Secrets'); From 932e5719cd0457c6b8a47885363d13ff7bcf709e Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Thu, 30 Sep 2021 14:02:10 +0530 Subject: [PATCH 438/864] add cortex docker login --- src/commands/assets/templates/skill/daemon/Makefile | 1 + src/commands/assets/templates/skill/job/Makefile | 1 + 2 files changed, 2 insertions(+) diff --git a/src/commands/assets/templates/skill/daemon/Makefile b/src/commands/assets/templates/skill/daemon/Makefile index bf8698cf..c19f55ec 100644 --- a/src/commands/assets/templates/skill/daemon/Makefile +++ b/src/commands/assets/templates/skill/daemon/Makefile @@ -6,6 +6,7 @@ build: check-env docker build -t ${DOCKER_IMAGE_URL} . push: check-env + cortex docker login docker push ${DOCKER_IMAGE_URL} deploy: check-env diff --git a/src/commands/assets/templates/skill/job/Makefile b/src/commands/assets/templates/skill/job/Makefile index 94221c13..8d425d14 100644 --- a/src/commands/assets/templates/skill/job/Makefile +++ b/src/commands/assets/templates/skill/job/Makefile @@ -6,6 +6,7 @@ build: check-env docker build -t ${DOCKER_IMAGE_URL} . push: check-env + cortex docker login docker push ${DOCKER_IMAGE_URL} deploy: check-env From 5621b1db51bd3f3de03f46ee5a93e475c9da2417 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Thu, 30 Sep 2021 16:21:04 +0530 Subject: [PATCH 439/864] updated generate skill command --- bin/cortex-generate.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index b21d9425..e64313de 100755 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -26,12 +26,12 @@ const { program.description('Scaffolding Cortex Components'); program - .command('skill') + .command('skill ') .description('Generates the structure and top level build script for a skill in current directory') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { // deliberately not using withCompatibilityCheck() + .action((skillName, type, options) => { // deliberately not using withCompatibilityCheck() try { - new GenerateSkillCommand(program).execute(options); + new GenerateSkillCommand(program).execute(skillName, type, options); } catch (err) { console.error(chalk.red(err.message)); } From db0418b4f3a86af3185ce8625e6fac3f4ad325c4 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Thu, 30 Sep 2021 19:28:41 +0530 Subject: [PATCH 440/864] Fix docker override --- src/client/actions.js | 4 ++-- src/commands/actions.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/client/actions.js b/src/client/actions.js index 22e395b2..650215b7 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -34,7 +34,7 @@ module.exports = class Actions { endpoint = `${endpoint}?actionType=${actionInst.actionType}`; } debug('deployAction(%s, docker=%s, ttl=%s) => %s', - actionInst.name, actionInst.dockerImage, actionInst.ttl, endpoint); + actionInst.name, actionInst.image, actionInst.ttl, endpoint); const body = { ...actionInst }; // image & docker floating around fixup just in case.. if (body.docker) { @@ -42,7 +42,7 @@ module.exports = class Actions { delete body.docker; } try { - body.docker = await this._maybePushDockerImage(actionInst.dockerImage, token, actionInst.pushDocker); + body.docker = await this._maybePushDockerImage(actionInst.image, token, actionInst.pushDocker); } catch (error) { return { success: false, status: 400, message: error.message || error }; } diff --git a/src/commands/actions.js b/src/commands/actions.js index c2078488..a26c27a9 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -101,7 +101,7 @@ module.exports.DeployActionCommand = class { let actionInst = {}; if (actionDefinition) { - debug('%s.createAgentSnapshot(%s)', profile.name, actionDefinition); + debug('%s.deployActionCommand(%s)', profile.name, actionDefinition); try { const actionDefStr = fs.readFileSync(actionDefinition); actionInst = parseObject(actionDefStr, options); @@ -121,9 +121,9 @@ module.exports.DeployActionCommand = class { const k8sResources = options.k8sResource.map((f) => parseObject(fs.readFileSync(f), options)); actionInst.k8sResources = k8sResources; } - if (options.docker) { actionInst.image = options.docker; } + if (options.image) { actionInst.image = options.image; } - + if (options.docker) { actionInst.image = options.docker; } if (options.type) { actionInst.type = options.type; } if (options.actionType) { actionInst.type = options.actionType; } if (options.cmd) { actionInst.command = options.cmd; } From b98888dd1a25cbd9365d5003562be8a40c90e84f Mon Sep 17 00:00:00 2001 From: ljha Date: Tue, 5 Oct 2021 00:33:26 +0530 Subject: [PATCH 441/864] export connections from dependencies --- src/commands/deploy.js | 73 +++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 29 deletions(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index f67d8317..09025e97 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -156,6 +156,37 @@ const DeployExperimentCommand = class { module.exports.DeployExperimentCommand = DeployExperimentCommand; +const DeployConnectionCommand = class { + constructor(program) { + this.program = program; + } + + execute(connectionName, options) { + const profile = loadProfile(options.profile); + const project = options.project || profile.project; + debug('%s.exportDeploymentConnection%s)', profile.name, connectionName); + + const connection = new Connections(profile.url); + connection.describeConnection(project, profile.token, connectionName).then(async (response) => { + if (response.success) { + const result = filterObject(response.result, options); + const connectionDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, 'connections', `${connectionName}.json`); + writeToFile(connectionDesc, filepath); + updateManifest({ connection: [filepath] }); + await addDependencies(profile.url, profile.token, project, 'Connection', connectionName); + printSuccess(`Successfully exported Connection ${connectionName} in ${artifactsDir} and updated manifest file ${manifestFile}`); + } else { + printError(`Failed to export connection ${connectionName}: ${response.message}`, options); + } + }).catch((err) => { + printError(`Failed to export connection ${connectionName}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeployConnectionCommand = DeployConnectionCommand; + /** * Cortex deploy command is to export Cortex artifacts (agent, snapshot, skill, action etc) for CI/CD deployment. This command: * 1. Exports cortex artifacts @@ -193,6 +224,14 @@ module.exports.DeploySnapshotCommand = class { promises.push(agents.describeAgentSnapshot(project, profile.token, snapshotId).then(async (response) => { let result = JSON.parse(response); // export dependant MLOps artifacts + if (_.size(result.dependencies.connections)) { + await Promise.all(result.dependencies.connections.map(async (con) => { + if (_.size(con.connections)) { + await Promise.all(con.connections.map((c) => new DeployConnectionCommand(this.program).execute(c, options))); + } + })); + } + // export dependant MLOps artifacts if (_.size(result.dependencies.mlOps)) { await Promise.all(result.dependencies.mlOps.map(async (ml) => { if (_.size(ml.experiments)) { @@ -287,35 +326,6 @@ module.exports.DeployCampaignCommand = class { } }; -module.exports.DeployConnectionCommand = class { - constructor(program) { - this.program = program; - } - - execute(connectionName, options) { - const profile = loadProfile(options.profile); - const project = options.project || profile.project; - debug('%s.exportDeploymentConnection%s)', profile.name, connectionName); - - const connection = new Connections(profile.url); - connection.describeConnection(project, profile.token, connectionName).then(async (response) => { - if (response.success) { - const result = filterObject(response.result, options); - const connectionDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, 'connections', `${connectionName}.json`); - writeToFile(connectionDesc, filepath); - updateManifest({ connection: [filepath] }); - await addDependencies(profile.url, profile.token, project, 'Connection', connectionName); - printSuccess(`Successfully exported Connection ${connectionName} in ${artifactsDir} and updated manifest file ${manifestFile}`); - } else { - printError(`Failed to export connection ${connectionName}: ${response.message}`, options); - } - }).catch((err) => { - printError(`Failed to export connection ${connectionName}: ${err.status} ${err.message}`, options); - }); - } -}; - module.exports.DeploySkillCommand = class { constructor(program) { this.program = program; @@ -341,6 +351,11 @@ module.exports.DeploySkillCommand = class { manifest.skill = [filepath]; exports.skill = skillName; const dependencies = await addDependencies(profile.url, profile.token, project, 'Skill', skillName); + // export linked connections of skill + const connections = dependencies.data.filter((d) => d.type === 'Connection').map((d) => d.name); + if (connections) { + await Promise.all(connections.map((connection) => new DeployConnectionCommand(this.program).execute(connection, options))); + } // export linked model/experiment of skill const mlOps = Object.fromEntries(dependencies.data.filter((d) => ['Model', 'Experiment', 'ExperimentRun'].includes(d.type)).map((d) => [d.type, d.name])); if (mlOps && mlOps.Experiment) { From 3f16af19d65c9c2a2377a399a8b23f9cab282d68 Mon Sep 17 00:00:00 2001 From: clee Date: Wed, 6 Oct 2021 14:47:53 -0500 Subject: [PATCH 442/864] bumping version in package.json for release to 2.0.6 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8be58b22..68e8a44e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.5", + "version": "2.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index da4794e3..8669ec8b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.5", + "version": "2.0.6", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 77e279a49807c35dab0342b6d83c453f769ffced Mon Sep 17 00:00:00 2001 From: bpandey-CS Date: Thu, 7 Oct 2021 13:46:32 +0530 Subject: [PATCH 443/864] initial commit --- bin/cortex-missions.js | 19 + package-lock.json | 13343 ++++++++++++++++++++++++++++++++------- package.json | 1 + 3 files changed, 10908 insertions(+), 2455 deletions(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index f8c6d75d..b453bc33 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -18,6 +18,7 @@ const chalk = require('chalk'); const program = require('../src/commander'); +const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -90,6 +91,24 @@ program .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { + // if (options.params) { + // try { + // params = parseObject(options.params, options); + // } catch (e) { + // printError(`Failed to parse params: ${options.params} Error: ${e}`, options); + // } + // } else if (options.paramsFile) { + // const paramsStr = fs.readFileSync(options.paramsFile); + // params = parseObject(paramsStr, options); + // } + // if (params.payload) { + // // apply validations + // // batch size can't be empty, can't be negative + // if (!params.payload.batch_size || params.payload.batch_size <= 0){ + // printError(`batch_size cannot be "${params.payload.batch_size}"`) + // throw "Inappropriate Batch Size passed in params" + // } + // } new InvokeAgentServiceCommand(program).execute(`${missionName}-online-learner-agent`, 'online_learner_service', options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/package-lock.json b/package-lock.json index 68e8a44e..58469752 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,39 +1,8870 @@ { "name": "cortex-cli", - "version": "2.0.6", - "lockfileVersion": 1, + "version": "2.0.5", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "cortex-cli", + "version": "2.0.5", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@hapi/joi": "17.1.1", + "boxen": "5.0.1", + "chalk": "4.1.2", + "check-node-version": "4.1.0", + "cli-table3": "0.6.0", + "commander": "8.1.0", + "debug": "4.3.2", + "find-package-json": "1.2.0", + "form-data": "4.0.0", + "get-stream": "6.0.1", + "glob": "7.1.7", + "got": "11.8.2", + "graphql": "15.5.2", + "graphql-request": "3.5.0", + "is-installed-globally": "0.4.0", + "jmespath": "0.15.0", + "jose": "2.0.5", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "moment": "2.29.1", + "npm-registry-fetch": "11.0.0", + "plop": "2.7.4", + "prompt": "1.2.0", + "semver": "7.3.5", + "url-join": "4.0.1", + "url-parse": "1.5.3", + "yauzl": "2.10.0" + }, + "bin": { + "cortex": "bin/cortex.js" + }, + "devDependencies": { + "audit-ci": "4.1.0", + "chai": "4.3.4", + "chai-as-promised": "7.1.1", + "eslint": "7.32.0", + "eslint-config-airbnb-base": "14.2.1", + "eslint-plugin-import": "2.24.2", + "mocha": "9.1.1", + "mocked-env": "1.3.5", + "nock": "13.1.3", + "rewire": "5.0.0", + "sinon": "11.1.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.14.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk=", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.15.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", + "integrity": "sha1-QDE5ryYrmm6Pm6BKb9zr+N5pK/E=", + "license": "MIT", + "dependencies": { + "core-js-pure": "^3.16.0", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha1-MKqCXxHUOGcdWFvUTn/VZFNfwhA=", + "license": "MIT" + }, + "node_modules/@hapi/address": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha1-1gxcDZMOd0Vv3N4lmOdzAuKVXh0=", + "deprecated": "Moved to 'npm install @sideway/address'", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@hapi/formula": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha1-7a3gYZ7VjI5PFk8jPNpwIR54cSg=", + "deprecated": "Moved to 'npm install @sideway/formula'", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/hoek": { + "version": "9.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.2.0.tgz", + "integrity": "sha1-85M6RONlhk9NrV25QVgQbVEegTE=", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/joi": { + "version": "17.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha1-nMjX4sIhPR5GcIxiYBhLRHxmE1A=", + "deprecated": "Switch to 'npm install joi'", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/address": "^4.0.1", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" + } + }, + "node_modules/@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha1-gFtA1NvsBPwRanMIlJTgDwc96N8=", + "deprecated": "Moved to 'npm install @sideway/pinpoint'", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha1-3ESOMyxsbjek3AL9hLqNRLmvsBI=", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha1-h956+cIxgm/daKxyWPd8Qp4OX88=", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.0.0.tgz", + "integrity": "sha1-WJYSz606bqD+r8uQHSnGP9UtsJ8=", + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@panva/asn1.js": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha1-3VWue4Ep4CBJ8AlAi5fGHM+QMvY=", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha1-Znv8YYaufJ4LRaCJYMVRQ3F24co=", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha1-OALd0hpQqUm2ch3dcto25n5/Gy0=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha1-JSTq5wxJEO3M+ZsvTm78WJSv97U=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha1-oBF9gjJg8oLAS/9fhwS9wqxpELs=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU=", + "dev": true, + "license": "(Unlicense OR Apache-2.0)" + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha1-tKkUu2LnwnLU5Zif5EQPgSqx2Ac=", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha1-wyTaAZfeCpiiMSFWU2riYkKf9rk=", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/fined": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/fined/-/fined-1.1.3.tgz", + "integrity": "sha1-g/A+jwqNNnPfyvsY/ONXH2JQ4bw=", + "license": "MIT" + }, + "node_modules/@types/glob": { + "version": "7.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha1-6lniHS7lxReRTLS8jkFTuZ5WZnI=", + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha1-Dqe2FJaQK5WJDcTDoRa2DLja6BI=", + "license": "MIT" + }, + "node_modules/@types/inquirer": { + "version": "6.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha1-uDsL8wuIuL5yRtQOUdMv6dEOCb4=", + "license": "MIT", + "dependencies": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "node_modules/@types/interpret": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha1-sb+FsEIOJBS5ic4jdlitINwDcZs=", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha1-HJquMocuwfINza7omp87qI9GXkE=", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/liftoff": { + "version": "2.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/liftoff/-/liftoff-2.5.1.tgz", + "integrity": "sha1-LrTB+G6dXuhVceVtsAhLJq8SnO0=", + "license": "MIT", + "dependencies": { + "@types/fined": "*", + "@types/interpret": "*", + "@types/node": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "16.9.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-16.9.6.tgz", + "integrity": "sha1-BApk1/r55dnpQDVxJfCWMBLmbwQ=", + "license": "MIT" + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha1-JR9P59FU0rrRJavhtCmyOv0mLik=", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/through": { + "version": "0.0.30", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/through/-/through-0.0.30.tgz", + "integrity": "sha1-4OQs536Je9aurW9upirrE1uKOJU=", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=", + "dev": true, + "license": "ISC" + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha1-2SgCikhiyxFxjlUieHLoQqRMlFs=", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", + "license": "ISC", + "dependencies": { + "string-width": "^3.0.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", + "license": "Python-2.0" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha1-x/YZs4KtKvr1Mmzd/cCvxhr3aQo=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha1-bvY4tDMSvUAbTGGZ/ex+LcnpoSM=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "0.9.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "license": "MIT" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/audit-ci": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-4.1.0.tgz", + "integrity": "sha1-GV0TPqzNLaJzxS3zdfi0I6TKZNQ=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.3", + "event-stream": "4.0.1", + "JSONStream": "^1.3.5", + "readline-transform": "1.0.0", + "semver": "^7.0.0", + "yargs": "^15.0.0" + }, + "bin": { + "audit-ci": "lib/audit-ci.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-5.0.1.tgz", + "integrity": "sha1-ZXUovdP1mncrgnm4MfJ+wsdEZks=", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.0", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "dev": true, + "license": "ISC" + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "license": "MIT" + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha1-3IU4D7L1Vv492kxxm/oOyHWn8es=", + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha1-WmuGWyxENXvj1evCpGewMnGacAU=", + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha1-6g0LiJNkolhUdXMByhKy2nf5HSc=", + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chai": { + "version": "4.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.3.4.tgz", + "integrity": "sha1-tV5lWzHh6scJm+TAjCGWT84ubEk=", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", + "dev": true, + "license": "WTFPL", + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/change-case": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha1-DmEbftyZUt8uhROye0LecmR90X4=", + "license": "MIT", + "dependencies": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "license": "MIT" + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/check-node-version": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-node-version/-/check-node-version-4.1.0.tgz", + "integrity": "sha1-Ev9Fv+uN1ZFwCgq4SMIbLYzu65Q=", + "license": "Unlicense", + "dependencies": { + "chalk": "^3.0.0", + "map-values": "^1.0.1", + "minimist": "^1.2.0", + "object-filter": "^1.0.2", + "run-parallel": "^1.1.4", + "semver": "^6.3.0" + }, + "bin": { + "check-node-version": "bin.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/check-node-version/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/check-node-version/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha1-NsfcmPtqmna9YjjsP3fiQlYn6Tk=", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha1-t7G8ZcqOe1zvkSThPcKyHizk+u4=", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", + "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-8.1.0.tgz", + "integrity": "sha1-2zbj5m7fJP9ZHWOYYsarLFJmQ2I=", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha1-MNHn89G4grJexJM9HRraw1PSClk=", + "dev": true, + "license": "MIT" + }, + "node_modules/constant-case": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "license": "MIT", + "dependencies": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js-pure": { + "version": "3.18.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-js-pure/-/core-js-pure-3.18.0.tgz", + "integrity": "sha1-5RhzR7rmZEjJ4tZ8AcNMTfMmHcU=", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha1-lyPzo6JHv4uJA586OAqSROj6Lzk=", + "license": "MIT", + "dependencies": { + "node-fetch": "2.6.1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cycle": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", + "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha1-yjh2Et234QS9FthaqwDV7PCcZvw=", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "dev": true, + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", + "dev": true, + "license": "MIT" + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha1-gBa9tBQ+RjK3ejRJxiNid95SBYc=", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "dev": true, + "license": "MIT", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/del/-/del-5.1.0.tgz", + "integrity": "sha1-2Uh8lONnQQ5u/ykl7ljAyEp1s6c=", + "license": "MIT", + "dependencies": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-5.0.0.tgz", + "integrity": "sha1-ftatdthZ0DB4fsNYVfWx2vMdhSs=", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=", + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.18.6.tgz", + "integrity": "sha1-LETj6npiVQORZNJlWXd6bZeMtFY=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-string": "^1.0.7", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "14.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", + "integrity": "sha1-ii6zhFXcWjElUBk7MZza7vBCzR4=", + "dev": true, + "license": "MIT", + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.2" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0", + "eslint-plugin-import": "^2.22.1" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", + "integrity": "sha1-lOVUDdFf4VIuj/o+yNs7f6fnpTQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.24.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", + "integrity": "sha1-LIzS40HziFkY7ifRhHmRCt57tNo=", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.6.2", + "find-up": "^2.0.0", + "has": "^1.0.3", + "is-core-module": "^2.6.0", + "minimatch": "^3.0.4", + "object.values": "^1.1.4", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", + "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-stream": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "license": "MIT" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-files": { + "version": "9.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha1-indE8kN/gfXtMlDtnxVQ3pAv5Uo=", + "license": "MIT", + "engines": { + "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + } + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", + "license": "MIT", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-package-json": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fined/-/fined-1.2.0.tgz", + "integrity": "sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E=", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-5.0.2.tgz", + "integrity": "sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha1-ZL/tXLaP48p4s+shStl7Y77c5WE=", + "dev": true, + "license": "ISC" + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "license": "MIT" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true, + "license": "MIT" + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.7.tgz", + "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha1-cKdv6E6jFas3sfVXbL3n1I73JoY=", + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", + "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=", + "license": "ISC" + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.11.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.11.0.tgz", + "integrity": "sha1-QO9njaEX/nvS4o8fqySVG9AlW+c=", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "10.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-10.0.2.tgz", + "integrity": "sha1-J3WT50WsqkZGw6tBEonsR6A5JUM=", + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/got": { + "version": "11.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.2.tgz", + "integrity": "sha1-ers5Weoowx81dvFXbB7/ziPzNZk=", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=", + "license": "ISC" + }, + "node_modules/graphql": { + "version": "15.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.5.2.tgz", + "integrity": "sha1-76GfjyvxpI631chb8X4US6i7BIA=", + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-request": { + "version": "3.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.5.0.tgz", + "integrity": "sha1-fmlXThWHX7P2YKS0vjmW7NC7yLc=", + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x" + } + }, + "node_modules/graphql-request/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha1-nOM0FqrQLb1sj6+oJA1dmABJRaE=", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-case": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha1-XkJVB+7eT+qEa3Ji8IOEVsQgmWE=", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=", + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha1-uPVeDB8l1OvQizsMLAeflZCACz0=", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "license": "ISC" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", + "integrity": "sha1-5f1Vbs3VcmvpePoQAYYurLCpS8U=", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "license": "MIT" + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha1-11U7JSb+Wbkro+QMjfdX7Ipwnhk=", + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha1-mg/UB5ScMPhutpWe8beZTtC3tSA=", + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "license": "MIT" + }, + "node_modules/is-lower-case": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "license": "MIT", + "dependencies": { + "lower-case": "^1.1.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-upper-case": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "license": "MIT", + "dependencies": { + "upper-case": "^1.1.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true, + "license": "MIT" + }, + "node_modules/isbinaryfile": { + "version": "4.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha1-XTS5SGW9SUZjPsx4oCb8dsWxH88=", + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "license": "MIT" + }, + "node_modules/jmespath": { + "version": "0.15.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/jose": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose/-/jose-2.0.5.tgz", + "integrity": "sha1-KXRqGNn/99z51dKm9iywx80nq9M=", + "license": "MIT", + "dependencies": { + "@panva/asn1.js": "^1.0.0" + }, + "engines": { + "node": ">=10.13.0 < 13 || >=13.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=", + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha1-715Ymvth5dZrJOynSUCaiTmox0Q=", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha1-TzqpjeJUgDyvzSiWc0EI2qNeQlQ=", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true, + "license": "MIT", + "engines": { + "node": "> 0.8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", + "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/liftoff": { + "version": "2.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=", + "license": "MIT" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha1-P727lbRoOsn8eFER55LlWNSr1QM=", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "license": "MIT" + }, + "node_modules/lower-case-first": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "license": "MIT", + "dependencies": { + "lower-case": "^1.1.2" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha1-UwhaCeeXFDPmdl95cb9j9OBcuWg=", + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true, + "license": "MIT" + }, + "node_modules/map-values": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-values/-/map-values-1.0.1.tgz", + "integrity": "sha1-douOecAJvytk/ugG4ip7HEGQyZA=", + "license": "Public Domain" + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime-db": { + "version": "1.49.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha1-89/eYMmenPO8lwHWh3ePU3ABy+0=", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.32", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha1-HQDonn3n/gIAjbYQAdngKFJnD9U=", + "license": "MIT", + "dependencies": { + "mime-db": "1.49.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", + "license": "MIT" + }, + "node_modules/minipass": { + "version": "3.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha1-cfYlGwozpJwBs8+X/3ftoDDf9zI=", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha1-114AkdqsGw/9fp1BYp+v99DB8bY=", + "license": "MIT", + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha": { + "version": "9.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha1-M98uucYmJDRjBRDF9Cg7Nu/am2E=", + "dev": true, + "license": "MIT", + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.2", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.7", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "3.0.4", + "ms": "2.1.3", + "nanoid": "3.1.23", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.1.5", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocked-env": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocked-env/-/mocked-env-1.3.5.tgz", + "integrity": "sha1-JE6r3B7ZKo9vVaL67cQIFZ6xk7M=", + "dev": true, + "license": "MIT", + "dependencies": { + "check-more-types": "2.24.0", + "debug": "4.3.2", + "lazy-ass": "1.6.0", + "ramda": "0.27.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.1.tgz", + "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", + "license": "ISC" + }, + "node_modules/nanoid": { + "version": "3.1.23", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=", + "dev": true, + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true, + "license": "MIT" + }, + "node_modules/nise": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.0.tgz", + "integrity": "sha1-cT7z7ROCUtrvIOwDWrYreii+ZFw=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "license": "MIT", + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/nock": { + "version": "13.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.1.3.tgz", + "integrity": "sha1-EQsAWWVlSo/7eY6HutGLRnv/Ffk=", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash.set": "^4.3.2", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=", + "license": "MIT", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-plop": { + "version": "0.26.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-plop/-/node-plop-0.26.2.tgz", + "integrity": "sha1-wlI1ltq04oNg5hW3aLEbTWDVsbk=", + "license": "MIT", + "dependencies": { + "@babel/runtime-corejs3": "^7.9.2", + "@types/inquirer": "^6.5.0", + "change-case": "^3.1.0", + "del": "^5.1.0", + "globby": "^10.0.1", + "handlebars": "^4.4.3", + "inquirer": "^7.1.0", + "isbinaryfile": "^4.0.2", + "lodash.get": "^4.4.2", + "mkdirp": "^0.5.1", + "resolve": "^1.12.0" + }, + "engines": { + "node": ">=8.9.4" + } + }, + "node_modules/node-plop/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", + "dev": true, + "license": "ISC" + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha1-M2my1f6P3GdLqn8XhlFN3BVGbkQ=", + "license": "ISC", + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha1-aMG7gQxGVCdg1ipqll+FpwLUOnY=", + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-filter": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-filter/-/object-filter-1.0.2.tgz", + "integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g=", + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha1-nc6xRs7dQUig2eUauI00z1CZIrE=", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "license": "MIT", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.entries": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha1-Q8z5pQvF/VtknUWrGlefJOCIyv0=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-3.4.0.tgz", + "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "license": "MIT", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "license": "MIT" + }, + "node_modules/ora/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ora/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "license": "MIT", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "license": "MIT", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha1-qrf71BZYL6MqPbSYWcEiSHxe0s8=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascal-case": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "license": "MIT", + "dependencies": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", + "license": "MIT" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha1-hTTnenfOesWiUS6iHg/bj89sPY0=", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "license": [ + "MIT", + "Apache2" + ], + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/plop": { + "version": "2.7.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/plop/-/plop-2.7.4.tgz", + "integrity": "sha1-g1KArvNUEQIGO3WPURbM6Jnhxys=", + "license": "MIT", + "dependencies": { + "@types/liftoff": "^2.5.0", + "chalk": "^1.1.3", + "interpret": "^1.2.0", + "liftoff": "^2.5.0", + "minimist": "^1.2.0", + "node-plop": "~0.26.2", + "ora": "^3.4.0", + "v8flags": "^2.0.10" + }, + "bin": { + "plop": "bin/plop.js" + }, + "engines": { + "node": ">=8.9.4" + } + }, + "node_modules/plop/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/plop/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=", + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prompt": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompt/-/prompt-1.2.0.tgz", + "integrity": "sha1-XY8dkBF2a6wHq95RDb9DONh7TwI=", + "license": "MIT", + "dependencies": { + "async": "~0.9.0", + "colors": "^1.1.2", + "read": "1.0.x", + "revalidator": "0.1.x", + "winston": "2.x" + }, + "engines": { + "node": ">= 0.6.6" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha1-QM3tqxgIXHkjNOZPCsFyVtOPmkU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha1-Zvwt8++HOHT/wtpqqJhGWKus9ck=", + "dev": true, + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readline-transform": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha1-MVf5dCisrsDwWlwf8sMSD05tkEs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=", + "license": "MIT" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true, + "license": "ISC" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha1-t629rDVGqq7CC0Xn2CZZJwcnJvk=", + "license": "MIT" + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "license": "MIT" + }, + "node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha1-JjkbzDF091D5p56sxAoSpcQtdyM=", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/revalidator": { + "version": "0.1.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/revalidator/-/revalidator-0.1.8.tgz", + "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", + "license": "Apache 2.0", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/rewire": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint": "^6.8.0" + } + }, + "node_modules/rewire/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/rewire/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/rewire/node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/rewire/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true, + "license": "MIT" + }, + "node_modules/rewire/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/rewire/node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/rewire/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true, + "license": "MIT" + }, + "node_modules/rewire/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/rewire/node_modules/eslint": { + "version": "6.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/rewire/node_modules/eslint-utils": { + "version": "1.4.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/rewire/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/espree": { + "version": "6.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-6.2.1.tgz", + "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/rewire/node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", + "dev": true, + "license": "ISC" + }, + "node_modules/rewire/node_modules/globals": { + "version": "12.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-12.4.0.tgz", + "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rewire/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/rewire/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/rewire/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/regexpp": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.5.0" + } + }, + "node_modules/rewire/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rewire/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/rewire/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rewire/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rewire/node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/rewire/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/rewire/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/rewire/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/table": { + "version": "5.4.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-5.4.6.tgz", + "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/rewire/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/rewire/node_modules/which": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.5.tgz", + "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sentence-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha1-765diPRdeSQUHai1w6en5mP+/rg=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true, + "license": "ISC" + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.4.tgz", + "integrity": "sha1-NmpGhNF1ucqyCB42gf2jdHtsUdc=", + "license": "ISC" + }, + "node_modules/sinon": { + "version": "11.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha1-nniFDHRyQdXFnRYU2PnL6IQOhnQ=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-3.0.0.tgz", + "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snake-case": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socks": { + "version": "2.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.1.tgz", + "integrity": "sha1-mJ5lNKB88zfesbHJSqpEKWUg0w4=", + "license": "MIT", + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz", + "integrity": "sha1-hpzy170Q/qlsetMRHoFyaFXihcM=", + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=", + "license": "MIT" + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha1-DZvszN5wA9bGWNSH3UijLwvzAUs=", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", + "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/swap-case": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "license": "MIT", + "dependencies": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, + "node_modules/table": { + "version": "6.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.7.1.tgz", + "integrity": "sha1-7gVZK3FDgxqMlPPO5qrkwczvM+I=", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.6.3.tgz", + "integrity": "sha1-EaZlJ3Ydw+mjhF6nddLTwEFOh2Q=", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=", + "dev": true, + "license": "MIT" + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", + "integrity": "sha1-Z2CjjwA6+hsv/Q/+npq70Oqz1iE=", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "license": "MIT" + }, + "node_modules/title-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex-range/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.11.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha1-lUwf6XPaYznHjgawPOLkiBC2XzY=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/uglify-js": { + "version": "3.14.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uglify-js/-/uglify-js-3.14.2.tgz", + "integrity": "sha1-191qRspXIU9UotCkPK0PNduCrJk=", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "license": "MIT" + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "license": "MIT" + }, + "node_modules/upper-case-first": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "license": "MIT", + "dependencies": { + "upper-case": "^1.1.1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "license": "MIT" + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=", + "license": "MIT" + }, + "node_modules/url-parse": { + "version": "1.5.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/user-home": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "license": "MIT", + "bin": { + "user-home": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", + "dev": true, + "license": "MIT" + }, + "node_modules/v8flags": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dependencies": { + "user-home": "^1.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true, + "license": "ISC" + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/winston": { + "version": "2.4.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/winston/-/winston-2.4.5.tgz", + "integrity": "sha1-8uQx1WFUxOp2VUX8EAO9NAyVtZo=", + "license": "MIT", + "dependencies": { + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/winston/node_modules/async": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", + "license": "MIT" + }, + "node_modules/winston/node_modules/colors": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "license": "MIT" + }, + "node_modules/workerpool": { + "version": "6.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha1-D3zwdrYhX9fh2pA/9vIt3RiGtYE=", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "license": "ISC" + }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write/-/write-1.0.3.tgz", + "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=", + "dev": true, + "license": "ISC" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "license": "ISC" + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.15.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=", "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.14.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -41,8 +8872,8 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -52,8 +8883,8 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "dev": true, "requires": { "color-name": "1.1.3" @@ -61,20 +8892,26 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -83,18 +8920,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", - "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", + "version": "7.15.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", + "integrity": "sha1-QDE5ryYrmm6Pm6BKb9zr+N5pK/E=", "requires": { - "core-js-pure": "^3.0.0", + "core-js-pure": "^3.16.0", "regenerator-runtime": "^0.13.4" } }, "@eslint/eslintrc": { "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", "dev": true, "requires": { "ajv": "^6.12.4", @@ -110,8 +8947,8 @@ "dependencies": { "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "dev": true, "requires": { "sprintf-js": "~1.0.2" @@ -119,8 +8956,8 @@ }, "js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", "dev": true, "requires": { "argparse": "^1.0.7", @@ -131,31 +8968,31 @@ }, "@gar/promisify": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha1-MKqCXxHUOGcdWFvUTn/VZFNfwhA=" }, "@hapi/address": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha1-1gxcDZMOd0Vv3N4lmOdzAuKVXh0=", "requires": { "@hapi/hoek": "^9.0.0" } }, "@hapi/formula": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha1-7a3gYZ7VjI5PFk8jPNpwIR54cSg=" }, "@hapi/hoek": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", - "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + "version": "9.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.2.0.tgz", + "integrity": "sha1-85M6RONlhk9NrV25QVgQbVEegTE=" }, "@hapi/joi": { "version": "17.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha1-nMjX4sIhPR5GcIxiYBhLRHxmE1A=", "requires": { "@hapi/address": "^4.0.1", "@hapi/formula": "^2.0.0", @@ -166,21 +9003,21 @@ }, "@hapi/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha1-gFtA1NvsBPwRanMIlJTgDwc96N8=" }, "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha1-3ESOMyxsbjek3AL9hLqNRLmvsBI=", "requires": { "@hapi/hoek": "^9.0.0" } }, "@humanwhocodes/config-array": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", @@ -190,37 +9027,37 @@ }, "@humanwhocodes/object-schema": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha1-h956+cIxgm/daKxyWPd8Qp4OX88=", "dev": true }, "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "version": "2.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", "requires": { - "@nodelib/fs.stat": "2.0.3", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=" }, "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "version": "1.2.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", "requires": { - "@nodelib/fs.scandir": "2.1.3", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "@npmcli/fs": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", - "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.0.0.tgz", + "integrity": "sha1-WJYSz606bqD+r8uQHSnGP9UtsJ8=", "requires": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -228,8 +9065,8 @@ }, "@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -237,18 +9074,18 @@ }, "@panva/asn1.js": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", - "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha1-3VWue4Ep4CBJ8AlAi5fGHM+QMvY=" }, "@sindresorhus/is": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", - "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha1-Znv8YYaufJ4LRaCJYMVRQ3F24co=" }, "@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha1-OALd0hpQqUm2ch3dcto25n5/Gy0=", "dev": true, "requires": { "type-detect": "4.0.8" @@ -256,8 +9093,8 @@ }, "@sinonjs/fake-timers": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha1-JSTq5wxJEO3M+ZsvTm78WJSv97U=", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" @@ -265,8 +9102,8 @@ }, "@sinonjs/samsam": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha1-oBF9gjJg8oLAS/9fhwS9wqxpELs=", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -276,27 +9113,27 @@ }, "@sinonjs/text-encoding": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU=", "dev": true }, "@szmarczak/http-timer": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha1-tKkUu2LnwnLU5Zif5EQPgSqx2Ac=", "requires": { "defer-to-connect": "^2.0.0" } }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=" }, "@types/cacheable-request": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha1-wyTaAZfeCpiiMSFWU2riYkKf9rk=", "requires": { "@types/http-cache-semantics": "*", "@types/keyv": "*", @@ -305,14 +9142,14 @@ } }, "@types/fined": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.2.tgz", - "integrity": "sha512-hzzTS+X9EqDhx4vwdch/DOZci/bfh5J6Nyz8lqvyfBg2ROx2fPafX+LpDfpVgSvQKj0EYkwTYpBO3z2etwbkOw==" + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/fined/-/fined-1.1.3.tgz", + "integrity": "sha1-g/A+jwqNNnPfyvsY/ONXH2JQ4bw=" }, "@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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha1-6lniHS7lxReRTLS8jkFTuZ5WZnI=", "requires": { "@types/minimatch": "*", "@types/node": "*" @@ -320,13 +9157,13 @@ }, "@types/http-cache-semantics": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha1-Dqe2FJaQK5WJDcTDoRa2DLja6BI=" }, "@types/inquirer": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha1-uDsL8wuIuL5yRtQOUdMv6dEOCb4=", "requires": { "@types/through": "*", "rxjs": "^6.4.0" @@ -334,30 +9171,30 @@ }, "@types/interpret": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha1-sb+FsEIOJBS5ic4jdlitINwDcZs=", "requires": { "@types/node": "*" } }, "@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/keyv": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz", - "integrity": "sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg==", + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha1-HJquMocuwfINza7omp87qI9GXkE=", "requires": { "@types/node": "*" } }, "@types/liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha512-1jsThE//wKDK+hYM+NJqswI+K9lfR0YNMctteOxAzk/aemI0rQsVDk6Dia0zkPfBWFTh+hiDmrGQXqP1tyM+eg==", + "version": "2.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/liftoff/-/liftoff-2.5.1.tgz", + "integrity": "sha1-LrTB+G6dXuhVceVtsAhLJq8SnO0=", "requires": { "@types/fined": "*", "@types/interpret": "*", @@ -365,71 +9202,62 @@ } }, "@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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=" }, "@types/node": { - "version": "14.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", - "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" + "version": "16.9.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-16.9.6.tgz", + "integrity": "sha1-BApk1/r55dnpQDVxJfCWMBLmbwQ=" }, "@types/responselike": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha1-JR9P59FU0rrRJavhtCmyOv0mLik=", "requires": { "@types/node": "*" } }, "@types/through": { "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/through/-/through-0.0.30.tgz", + "integrity": "sha1-4OQs536Je9aurW9upirrE1uKOJU=", "requires": { "@types/node": "*" } }, "@ungap/promise-all-settled": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "acorn": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "dev": true }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "version": "5.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", + "dev": true, + "requires": {} }, "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", "requires": { "debug": "4" } }, "agentkeepalive": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha1-2SgCikhiyxFxjlUieHLoQqRMlFs=", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -438,8 +9266,8 @@ }, "aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -447,8 +9275,8 @@ }, "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -459,57 +9287,85 @@ }, "ansi-align": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", "requires": { "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=" } } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=" }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", "requires": { "color-convert": "^2.0.1" } }, "anymatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -518,33 +9374,33 @@ }, "argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=" }, "arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" }, "arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-each": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-each/-/array-each-1.0.1.tgz", "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" }, "array-includes": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha1-x/YZs4KtKvr1Mmzd/cCvxhr3aQo=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -556,23 +9412,23 @@ }, "array-slice": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=" }, "array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=" }, "array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha1-bvY4tDMSvUAbTGGZ/ex+LcnpoSM=", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -582,59 +9438,59 @@ }, "assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", "dev": true }, "async": { "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" }, "audit-ci": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-4.1.0.tgz", - "integrity": "sha512-UNmf/2diiuqA7HmegyD1n2vIZ+TPMbXO6ud2nb1MOdnoeFuecaBq3fcUo0ZLISWQx2yxgIz76JaEEbRlRZhRpA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-4.1.0.tgz", + "integrity": "sha1-GV0TPqzNLaJzxS3zdfi0I6TKZNQ=", "dev": true, "requires": { - "JSONStream": "^1.3.5", "cross-spawn": "^7.0.3", "event-stream": "4.0.1", + "JSONStream": "^1.3.5", "readline-transform": "1.0.0", "semver": "^7.0.0", "yargs": "^15.0.0" } }, "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" }, "base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -647,50 +9503,24 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } } } }, "binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", "dev": true }, "boxen": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-5.0.1.tgz", + "integrity": "sha1-ZXUovdP1mncrgnm4MfJ+wsdEZks=", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -700,47 +9530,12 @@ "type-fest": "^0.20.2", "widest-line": "^3.1.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -748,32 +9543,32 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", "requires": { "fill-range": "^7.0.1" } }, "browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", "dev": true }, "buffer-crc32": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "cacache": { "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha1-3IU4D7L1Vv492kxxm/oOyHWn8es=", "requires": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -797,8 +9592,8 @@ }, "cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -813,13 +9608,13 @@ }, "cacheable-lookup": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha1-WmuGWyxENXvj1evCpGewMnGacAU=" }, "cacheable-request": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha1-6g0LiJNkolhUdXMByhKy2nf5HSc=", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -832,8 +9627,8 @@ "dependencies": { "get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", "requires": { "pump": "^3.0.0" } @@ -842,8 +9637,8 @@ }, "call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -852,13 +9647,13 @@ }, "callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", "dev": true }, "camel-case": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { "no-case": "^2.2.0", @@ -866,15 +9661,14 @@ } }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=" }, "chai": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.3.4.tgz", + "integrity": "sha1-tV5lWzHh6scJm+TAjCGWT84ubEk=", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -887,8 +9681,8 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", "dev": true, "requires": { "check-error": "^1.0.2" @@ -896,8 +9690,8 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -905,8 +9699,8 @@ }, "change-case": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha1-DmEbftyZUt8uhROye0LecmR90X4=", "requires": { "camel-case": "^3.0.0", "constant-case": "^2.0.0", @@ -930,25 +9724,54 @@ }, "chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=" }, "check-error": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "check-more-types": { "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-more-types/-/check-more-types-2.24.0.tgz", "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", "dev": true }, + "check-node-version": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-node-version/-/check-node-version-4.1.0.tgz", + "integrity": "sha1-Ev9Fv+uN1ZFwCgq4SMIbLYzu65Q=", + "requires": { + "chalk": "^3.0.0", + "map-values": "^1.0.1", + "minimist": "^1.2.0", + "object-filter": "^1.0.2", + "run-parallel": "^1.1.4", + "semver": "^6.3.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" + } + } + }, "chokidar": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", "dev": true, "requires": { "anymatch": "~3.1.2", @@ -963,13 +9786,13 @@ }, "chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" }, "class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -979,59 +9802,107 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" } } }, "clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" }, "cli-boxes": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=" }, "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "^3.1.0" } }, "cli-spinners": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", - "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" + "version": "2.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha1-NsfcmPtqmna9YjjsP3fiQlYn6Tk=" }, "cli-table3": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha1-t7G8ZcqOe1zvkSThPcKyHizk+u4=", "requires": { "colors": "^1.1.2", "object-assign": "^4.1.0", "string-width": "^4.2.0" - }, - "dependencies": { - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true - } } }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=" + }, "cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", "dev": true, "requires": { "string-width": "^4.2.0", @@ -1039,31 +9910,27 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } }, "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-response": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { "mimic-response": "^1.0.0" @@ -1071,7 +9938,7 @@ }, "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "^1.0.0", @@ -1080,54 +9947,54 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" }, "colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", + "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=" }, "combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", "requires": { "delayed-stream": "~1.0.0" } }, "commander": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-8.1.0.tgz", + "integrity": "sha1-2zbj5m7fJP9ZHWOYYsarLFJmQ2I=" }, "component-emitter": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "confusing-browser-globals": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha1-MNHn89G4grJexJM9HRraw1PSClk=", "dev": true }, "constant-case": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/constant-case/-/constant-case-2.0.0.tgz", "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", "requires": { "snake-case": "^2.1.0", @@ -1136,26 +10003,26 @@ }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js-pure": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.0.tgz", - "integrity": "sha512-fRjhg3NeouotRoIV0L1FdchA6CK7ZD+lyINyMoz19SyV+ROpC4noS1xItWHFtwZdlqfMfVPJEyEGdfri2bD1pA==" + "version": "3.18.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-js-pure/-/core-js-pure-3.18.0.tgz", + "integrity": "sha1-5RhzR7rmZEjJ4tZ8AcNMTfMmHcU=" }, "cross-fetch": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha1-lyPzo6JHv4uJA586OAqSROj6Lzk=", "requires": { "node-fetch": "2.6.1" } }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", "dev": true, "requires": { "path-key": "^3.1.0", @@ -1165,61 +10032,61 @@ }, "cycle": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cycle/-/cycle-1.0.3.tgz", "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" }, "debug": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", + "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", "requires": { "ms": "2.1.2" } }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha1-yjh2Et234QS9FthaqwDV7PCcZvw=", "requires": { "mimic-response": "^3.1.0" }, "dependencies": { "mimic-response": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=" } } }, "deep-eql": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", "dev": true, "requires": { "type-detect": "^4.0.0" } }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", "dev": true }, "defaults": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -1227,13 +10094,13 @@ }, "defer-to-connect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha1-gBa9tBQ+RjK3ejRJxiNid95SBYc=" }, "define-properties": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", "dev": true, "requires": { "object-keys": "^1.0.12" @@ -1241,45 +10108,17 @@ }, "define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } } }, "del": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/del/-/del-5.1.0.tgz", + "integrity": "sha1-2Uh8lONnQQ5u/ykl7ljAyEp1s6c=", "requires": { "globby": "^10.0.1", "graceful-fs": "^4.2.2", @@ -1293,8 +10132,8 @@ "dependencies": { "p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", "requires": { "aggregate-error": "^3.0.0" } @@ -1303,7 +10142,7 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { @@ -1313,34 +10152,27 @@ }, "detect-file": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-file/-/detect-file-1.0.0.tgz", "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, "diff": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-5.0.0.tgz", + "integrity": "sha1-ftatdthZ0DB4fsNYVfWx2vMdhSs=", "dev": true }, "dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", "requires": { "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - } } }, "doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", "dev": true, "requires": { "esutils": "^2.0.2" @@ -1348,7 +10180,7 @@ }, "dot-case": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dot-case/-/dot-case-2.1.1.tgz", "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", "requires": { "no-case": "^2.2.0" @@ -1356,19 +10188,19 @@ }, "duplexer": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", "dev": true }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" }, "encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", "optional": true, "requires": { "iconv-lite": "^0.6.2" @@ -1376,16 +10208,16 @@ }, "end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", "requires": { "once": "^1.4.0" } }, "enquirer": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", "dev": true, "requires": { "ansi-colors": "^4.1.1" @@ -1393,35 +10225,36 @@ }, "err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=" }, "error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "version": "1.18.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.18.6.tgz", + "integrity": "sha1-LETj6npiVQORZNJlWXd6bZeMtFY=", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-string": "^1.0.7", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -1432,8 +10265,8 @@ }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -1443,19 +10276,20 @@ }, "escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", "dev": true }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "dev": true }, "eslint": { "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -1500,226 +10334,31 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "dev": true, "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - } + "sprintf-js": "~1.0.2" } }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "js-yaml": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", "dev": true, "requires": { - "prelude-ls": "^1.2.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } } } }, "eslint-config-airbnb-base": { "version": "14.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", - "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", + "integrity": "sha1-ii6zhFXcWjElUBk7MZza7vBCzR4=", "dev": true, "requires": { "confusing-browser-globals": "^1.0.10", @@ -1729,8 +10368,8 @@ }, "eslint-import-resolver-node": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", "dev": true, "requires": { "debug": "^3.2.7", @@ -1739,38 +10378,19 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" } - }, - "is-core-module": { - "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" - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } } } }, "eslint-module-utils": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", + "integrity": "sha1-lOVUDdFf4VIuj/o+yNs7f6fnpTQ=", "dev": true, "requires": { "debug": "^3.2.7", @@ -1779,8 +10399,8 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" @@ -1790,8 +10410,8 @@ }, "eslint-plugin-import": { "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", + "integrity": "sha1-LIzS40HziFkY7ifRhHmRCt57tNo=", "dev": true, "requires": { "array-includes": "^3.1.3", @@ -1813,8 +10433,8 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" @@ -1822,93 +10442,25 @@ }, "doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", "dev": true, "requires": { "esutils": "^2.0.2" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "is-core-module": { - "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" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } } } }, "eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -1916,41 +10468,57 @@ } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", "dev": true }, "espree": { "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", + "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", "dev": true, "requires": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true + } } }, "esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -1958,16 +10526,16 @@ "dependencies": { "estraverse": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", "dev": true } } }, "esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", "dev": true, "requires": { "estraverse": "^5.2.0" @@ -1975,28 +10543,28 @@ "dependencies": { "estraverse": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", "dev": true } } }, "estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", "dev": true }, "esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", "dev": true }, "event-stream": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", "dev": true, "requires": { "duplexer": "^0.1.1", @@ -2010,7 +10578,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "^2.3.3", @@ -2024,15 +10592,15 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -2040,22 +10608,78 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "expand-tilde": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "requires": { "homedir-polyfill": "^1.0.1" @@ -2063,32 +10687,22 @@ }, "extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } } }, "external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -2097,8 +10711,8 @@ "dependencies": { "iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -2107,8 +10721,8 @@ }, "extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -2122,7 +10736,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -2130,143 +10744,135 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, "extract-files": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha1-indE8kN/gfXtMlDtnxVQ3pAv5Uo=" }, "eyes": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", "dev": true }, "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "version": "3.2.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=", "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" }, "dependencies": { "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } } } }, "fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", "dev": true }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "version": "1.13.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=", "requires": { "reusify": "^1.0.4" } }, "fd-slicer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "requires": { "pend": "~1.2.0" } }, + "figures": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "requires": { + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } + } + }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", "requires": { "to-regex-range": "^5.0.1" } }, "find-package-json": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" } }, "findup-sync": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/findup-sync/-/findup-sync-2.0.0.tgz", "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "requires": { "detect-file": "^1.0.0", @@ -2277,7 +10883,7 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { "is-extglob": "^2.1.0" @@ -2287,8 +10893,8 @@ }, "fined": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fined/-/fined-1.2.0.tgz", + "integrity": "sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=", "requires": { "expand-tilde": "^2.0.2", "is-plain-object": "^2.0.3", @@ -2299,51 +10905,39 @@ }, "flagged-respawn": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E=" }, "flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-5.0.2.tgz", + "integrity": "sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=", "dev": true }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha1-ZL/tXLaP48p4s+shStl7Y77c5WE=", "dev": true }, "for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-own/-/for-own-1.0.0.tgz", "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "requires": { "for-in": "^1.0.1" @@ -2351,8 +10945,8 @@ }, "form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -2361,7 +10955,7 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "^0.2.2" @@ -2369,57 +10963,57 @@ }, "from": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", "requires": { "minipass": "^3.0.0" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", "dev": true }, "get-func-name": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-intrinsic": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -2429,18 +11023,28 @@ }, "get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } }, "get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "glob": { "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.7.tgz", + "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2452,31 +11056,24 @@ }, "glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", "requires": { "is-glob": "^4.0.1" } }, "global-dirs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha1-cKdv6E6jFas3sfVXbL3n1I73JoY=", "requires": { "ini": "2.0.0" - }, - "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - } } }, "global-modules": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", "requires": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -2485,7 +11082,7 @@ }, "global-prefix": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "requires": { "expand-tilde": "^2.0.2", @@ -2495,10 +11092,15 @@ "which": "^1.2.14" }, "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", + "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=" + }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "requires": { "isexe": "^2.0.0" } @@ -2507,25 +11109,17 @@ }, "globals": { "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.11.0.tgz", + "integrity": "sha1-QO9njaEX/nvS4o8fqySVG9AlW+c=", "dev": true, "requires": { "type-fest": "^0.20.2" - }, - "dependencies": { - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } } }, "globby": { "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-10.0.2.tgz", + "integrity": "sha1-J3WT50WsqkZGw6tBEonsR6A5JUM=", "requires": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", @@ -2539,15 +11133,15 @@ "dependencies": { "ignore": { "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=" } } }, "got": { "version": "11.8.2", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", - "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.2.tgz", + "integrity": "sha1-ers5Weoowx81dvFXbB7/ziPzNZk=", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -2563,19 +11157,19 @@ } }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + "version": "4.2.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=" }, "graphql": { "version": "15.5.2", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.2.tgz", - "integrity": "sha512-dZjLPWNQqYv0dqV2RNbiFed0LtSp6yd4jchsDGnuhDKa9OQHJYCfovaOEvY91w9gqbYO7Se9LKDTl3xxYva/3w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.5.2.tgz", + "integrity": "sha1-76GfjyvxpI631chb8X4US6i7BIA=" }, "graphql-request": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.5.0.tgz", - "integrity": "sha512-Io89QpfU4rqiMbqM/KwMBzKaDLOppi8FU8sEccCE4JqCgz95W9Q8bvxQ4NfPALLSMvg9nafgg8AkYRmgKSlukA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.5.0.tgz", + "integrity": "sha1-fmlXThWHX7P2YKS0vjmW7NC7yLc=", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -2584,8 +11178,8 @@ "dependencies": { "form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -2596,14 +11190,14 @@ }, "growl": { "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", "dev": true }, "handlebars": { "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha1-nOM0FqrQLb1sj6+oJA1dmABJRaE=", "requires": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -2614,15 +11208,15 @@ }, "has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", "requires": { "function-bind": "^1.1.1" } }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "^2.0.0" @@ -2630,32 +11224,32 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "has-bigints": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" }, "has-symbols": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", "dev": true }, "has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=", "dev": true, "requires": { "has-symbols": "^1.0.2" @@ -2663,7 +11257,7 @@ }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "^2.0.6", @@ -2673,39 +11267,16 @@ }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "^1.1.5" @@ -2715,13 +11286,13 @@ }, "he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", "dev": true }, "header-case": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/header-case/-/header-case-1.0.1.tgz", "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", "requires": { "no-case": "^2.2.0", @@ -2730,29 +11301,29 @@ }, "homedir-polyfill": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", "requires": { "parse-passwd": "^1.0.0" } }, "hosted-git-info": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha1-XkJVB+7eT+qEa3Ji8IOEVsQgmWE=", "requires": { "lru-cache": "^6.0.0" } }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" }, "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", "requires": { "@tootallnate/once": "1", "agent-base": "6", @@ -2761,8 +11332,8 @@ }, "http2-wrapper": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha1-uPVeDB8l1OvQizsMLAeflZCACz0=", "requires": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -2770,8 +11341,8 @@ }, "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", "requires": { "agent-base": "6", "debug": "4" @@ -2779,7 +11350,7 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "^2.0.0" @@ -2787,8 +11358,8 @@ }, "iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -2796,14 +11367,14 @@ }, "ignore": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2812,22 +11383,22 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" }, "infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -2836,18 +11407,38 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" }, "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", + "integrity": "sha1-5f1Vbs3VcmvpePoQAYYurLCpS8U=" + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } }, "internal-slot": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", "dev": true, "requires": { "get-intrinsic": "^1.1.0", @@ -2857,56 +11448,41 @@ }, "interpret": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=" }, "ip": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "is-absolute": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", "requires": { "is-relative": "^1.0.0", "is-windows": "^1.0.1" } }, "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "kind-of": "^6.0.0" } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=", "dev": true, "requires": { "has-bigints": "^1.0.1" @@ -2914,8 +11490,8 @@ }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "dev": true, "requires": { "binary-extensions": "^2.0.0" @@ -2923,104 +11499,90 @@ }, "is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=", "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, "is-callable": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=", "dev": true }, "is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "version": "2.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha1-11U7JSb+Wbkro+QMjfdX7Ipwnhk=", "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "kind-of": "^6.0.0" } }, "is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=", "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "is-glob": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha1-mg/UB5ScMPhutpWe8beZTtC3tSA=", "requires": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -3028,12 +11590,12 @@ }, "is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, "is-lower-case": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lower-case/-/is-lower-case-1.1.3.tgz", "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", "requires": { "lower-case": "^1.1.0" @@ -3041,19 +11603,32 @@ }, "is-negative-zero": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", "dev": true }, "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, "is-number-object": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -3061,32 +11636,32 @@ }, "is-path-cwd": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=" }, "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=" }, "is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=", "dev": true }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "requires": { "isobject": "^3.0.1" } }, "is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -3095,16 +11670,16 @@ }, "is-relative": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", "requires": { "is-unc-path": "^1.0.0" } }, "is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -3112,8 +11687,8 @@ }, "is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", "dev": true, "requires": { "has-symbols": "^1.0.2" @@ -3121,21 +11696,21 @@ }, "is-unc-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", "requires": { "unc-path-regex": "^0.1.2" } }, "is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=", "dev": true }, "is-upper-case": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-upper-case/-/is-upper-case-1.1.2.tgz", "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", "requires": { "upper-case": "^1.1.0" @@ -3143,94 +11718,95 @@ }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==" + "version": "4.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha1-XTS5SGW9SUZjPsx4oCb8dsWxH88=" }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "jmespath": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "jose": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.5.tgz", - "integrity": "sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose/-/jose-2.0.5.tgz", + "integrity": "sha1-KXRqGNn/99z51dKm9iywx80nq9M=", "requires": { "@panva/asn1.js": "^1.0.0" } }, "js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", "dev": true }, "js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", "requires": { "argparse": "^2.0.1" } }, "json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=" }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", "dev": true }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json5": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", "dev": true, "requires": { "minimist": "^1.2.0" @@ -3238,47 +11814,57 @@ }, "jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "just-extend": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha1-715Ymvth5dZrJOynSUCaiTmox0Q=", "dev": true }, "keyv": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha1-TzqpjeJUgDyvzSiWc0EI2qNeQlQ=", "requires": { "json-buffer": "3.0.1" } }, "kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" }, "lazy-ass": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true }, "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", + "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, "liftoff": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/liftoff/-/liftoff-2.5.0.tgz", "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", "requires": { "extend": "^3.0.0", @@ -3293,7 +11879,7 @@ }, "load-json-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { @@ -3304,52 +11890,53 @@ } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=" }, "lodash.clonedeep": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, "lodash.get": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", "dev": true }, "lodash.set": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.set/-/lodash.set-4.3.2.tgz", "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, "lodash.truncate": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha1-P727lbRoOsn8eFER55LlWNSr1QM=", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3358,12 +11945,12 @@ }, "lower-case": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" }, "lower-case-first": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case-first/-/lower-case-first-1.0.2.tgz", "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", "requires": { "lower-case": "^1.1.2" @@ -3371,21 +11958,21 @@ }, "lowercase-keys": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=" }, "lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", "requires": { "yallist": "^4.0.0" } }, "make-fetch-happen": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha1-UwhaCeeXFDPmdl95cb9j9OBcuWg=", "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -3407,26 +11994,31 @@ }, "make-iterator": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=", "requires": { "kind-of": "^6.0.2" } }, "map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, + "map-values": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-values/-/map-values-1.0.1.tgz", + "integrity": "sha1-douOecAJvytk/ugG4ip7HEGQyZA=" + }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "^1.0.0" @@ -3434,13 +12026,13 @@ }, "merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=" }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -3459,8 +12051,8 @@ "dependencies": { "braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -3476,7 +12068,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -3486,7 +12078,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "^2.0.1", @@ -3497,7 +12089,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -3505,32 +12097,14 @@ } } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "^3.0.0", @@ -3541,60 +12115,60 @@ }, "mime-db": { "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha1-89/eYMmenPO8lwHWh3ePU3ABy+0=" }, "mime-types": { "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha1-HQDonn3n/gIAjbYQAdngKFJnD9U=", "requires": { "mime-db": "1.49.0" } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" }, "mimic-response": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" }, "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha1-cfYlGwozpJwBs8+X/3ftoDDf9zI=", "requires": { "yallist": "^4.0.0" } }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", "requires": { "minipass": "^3.0.0" } }, "minipass-fetch": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha1-114AkdqsGw/9fp1BYp+v99DB8bY=", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -3604,16 +12178,16 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", "requires": { "minipass": "^3.0.0" } }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" @@ -3621,24 +12195,24 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", "requires": { "minipass": "^3.0.0" } }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", "requires": { "minipass": "^3.0.0" } }, "minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -3646,32 +12220,22 @@ }, "mixin-deep": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } } }, "mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" }, "mocha": { "version": "9.1.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha1-M98uucYmJDRjBRDF9Cg7Nu/am2E=", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -3701,16 +12265,10 @@ "yargs-unparser": "2.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, "cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", "dev": true, "requires": { "string-width": "^4.2.0", @@ -3720,8 +12278,8 @@ }, "debug": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", "dev": true, "requires": { "ms": "2.1.2" @@ -3729,22 +12287,16 @@ "dependencies": { "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", "dev": true } } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, "find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", "dev": true, "requires": { "locate-path": "^6.0.0", @@ -3753,8 +12305,8 @@ }, "locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", "dev": true, "requires": { "p-locate": "^5.0.0" @@ -3762,14 +12314,14 @@ }, "ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", "dev": true }, "p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", "dev": true, "requires": { "yocto-queue": "^0.1.0" @@ -3777,52 +12329,38 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", "dev": true, "requires": { "p-limit": "^3.0.2" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true }, "supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", "dev": true, "requires": { "has-flag": "^4.0.0" } }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, "y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", "dev": true }, "yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", "dev": true, "requires": { "cliui": "^7.0.2", @@ -3833,19 +12371,13 @@ "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true } } }, "mocked-env": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocked-env/-/mocked-env-1.3.5.tgz", + "integrity": "sha1-JE6r3B7ZKo9vVaL67cQIFZ6xk7M=", "dev": true, "requires": { "check-more-types": "2.24.0", @@ -3856,29 +12388,29 @@ }, "moment": { "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.1.tgz", + "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" }, "mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=" }, "nanoid": { "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=", "dev": true }, "nanomatch": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -3895,30 +12427,30 @@ }, "natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "negotiator": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" }, "neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" }, "nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", "dev": true }, "nise": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", - "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.0.tgz", + "integrity": "sha1-cT7z7ROCUtrvIOwDWrYreii+ZFw=", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0", @@ -3930,16 +12462,16 @@ }, "no-case": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", "requires": { "lower-case": "^1.1.1" } }, "nock": { "version": "13.1.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.3.tgz", - "integrity": "sha512-YKj0rKQWMGiiIO+Y65Ut8OEgYM3PplLU2+GAhnPmqZdBd6z5IskgdBqWmjzA6lH3RF0S2a3wiAlrMOF5Iv2Jeg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.1.3.tgz", + "integrity": "sha1-EQsAWWVlSo/7eY6HutGLRnv/Ffk=", "dev": true, "requires": { "debug": "^4.1.0", @@ -3950,13 +12482,13 @@ }, "node-fetch": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=" }, "node-plop": { "version": "0.26.2", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.2.tgz", - "integrity": "sha512-q444beWkMvZwAiYC3BRGJUHgRlpOItQHy+xdy6egXg8KjxDY/Ro309spQTNvH01qK9A8XF6pc0xLKbrHDpxW7w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-plop/-/node-plop-0.26.2.tgz", + "integrity": "sha1-wlI1ltq04oNg5hW3aLEbTWDVsbk=", "requires": { "@babel/runtime-corejs3": "^7.9.2", "@types/inquirer": "^6.5.0", @@ -3971,110 +12503,20 @@ "resolve": "^1.12.0" }, "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==", - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - } - }, "mkdirp": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", "requires": { "minimist": "^1.2.5" } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" } } }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -4085,33 +12527,33 @@ "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", "dev": true }, "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } }, "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", "dev": true }, "normalize-url": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=" }, "npm-package-arg": { "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha1-M2my1f6P3GdLqn8XhlFN3BVGbkQ=", "requires": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", @@ -4120,8 +12562,8 @@ }, "npm-registry-fetch": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha1-aMG7gQxGVCdg1ipqll+FpwLUOnY=", "requires": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", @@ -4133,12 +12575,12 @@ }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "^0.1.0", @@ -4148,20 +12590,48 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + } + } }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -4169,21 +12639,26 @@ } } }, + "object-filter": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-filter/-/object-filter-1.0.2.tgz", + "integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g=" + }, "object-inspect": { "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha1-nc6xRs7dQUig2eUauI00z1CZIrE=", "dev": true }, "object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", "dev": true }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" @@ -4191,8 +12666,8 @@ }, "object.assign": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -4203,7 +12678,7 @@ }, "object.defaults": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.defaults/-/object.defaults-1.1.0.tgz", "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", "requires": { "array-each": "^1.0.1", @@ -4214,8 +12689,8 @@ }, "object.entries": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha1-Q8z5pQvF/VtknUWrGlefJOCIyv0=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -4225,7 +12700,7 @@ }, "object.map": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.map/-/object.map-1.0.1.tgz", "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", "requires": { "for-own": "^1.0.0", @@ -4234,7 +12709,7 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" @@ -4242,8 +12717,8 @@ }, "object.values": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -4253,7 +12728,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -4261,30 +12736,30 @@ }, "onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", "requires": { "mimic-fn": "^2.1.0" } }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, "ora": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-3.4.0.tgz", + "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", "requires": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", @@ -4296,65 +12771,100 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "requires": { "color-convert": "^1.9.0" } }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "log-symbols": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", "requires": { "chalk": "^2.0.1" } }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", "requires": { "ansi-regex": "^4.1.0" } }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "requires": { "has-flag": "^3.0.0" } @@ -4363,49 +12873,49 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha1-qrf71BZYL6MqPbSYWcEiSHxe0s8=" }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" } }, "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==", + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^1.1.0" } }, "p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", "requires": { "aggregate-error": "^3.0.0" } }, "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==", + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "param-case": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { "no-case": "^2.2.0" @@ -4413,8 +12923,8 @@ }, "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", "dev": true, "requires": { "callsites": "^3.0.0" @@ -4422,7 +12932,7 @@ }, "parse-filepath": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-filepath/-/parse-filepath-1.0.2.tgz", "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", "requires": { "is-absolute": "^1.0.0", @@ -4432,7 +12942,7 @@ }, "parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { @@ -4442,12 +12952,12 @@ }, "parse-passwd": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "pascal-case": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascal-case/-/pascal-case-2.0.1.tgz", "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", "requires": { "camel-case": "^3.0.0", @@ -4456,42 +12966,42 @@ }, "pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-case": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-case/-/path-case-2.1.1.tgz", "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", "requires": { "no-case": "^2.2.0" } }, "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==", + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", "dev": true }, "path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=" }, "path-root": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root/-/path-root-0.1.1.tgz", "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "requires": { "path-root-regex": "^0.1.0" @@ -4499,44 +13009,32 @@ }, "path-root-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root-regex/-/path-root-regex-0.1.2.tgz", "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, "path-to-regexp": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=", "dev": true, "requires": { "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } } }, "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=" }, "pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha1-hTTnenfOesWiUS6iHg/bj89sPY0=", "dev": true }, "pause-stream": { "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { @@ -4545,144 +13043,42 @@ }, "pend": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=" }, "pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pkg-dir": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" } }, "pkg-up": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-up/-/pkg-up-2.0.0.tgz", "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "dev": true, "requires": { "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } } }, "plop": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.4.tgz", - "integrity": "sha512-SaqN3mwug/Ur2RE/ryo05oLTLy+8qZGwosNt9JnrFWca+dLCsPJR1j2ZXwjrccmNu6LA7eB56lRyk/G0fKf9HA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/plop/-/plop-2.7.4.tgz", + "integrity": "sha1-g1KArvNUEQIGO3WPURbM6Jnhxys=", "requires": { "@types/liftoff": "^2.5.0", "chalk": "^1.1.3", @@ -4696,17 +13092,17 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "^2.2.1", @@ -4716,9 +13112,14 @@ "supports-color": "^2.0.0" } }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -4726,37 +13127,37 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", "dev": true }, "progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", "dev": true }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=", "requires": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -4764,8 +13165,8 @@ }, "prompt": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.0.tgz", - "integrity": "sha512-iGerYRpRUg5ZyC+FJ/25G5PUKuWAGRjW1uOlhX7Pi3O5YygdK6R+KEaBjRbHSkU5vfS5PZCltSPZdDtUYwRCZA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompt/-/prompt-1.2.0.tgz", + "integrity": "sha1-XY8dkBF2a6wHq95RDb9DONh7TwI=", "requires": { "async": "~0.9.0", "colors": "^1.1.2", @@ -4776,14 +13177,14 @@ }, "propagate": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha1-QM3tqxgIXHkjNOZPCsFyVtOPmkU=", "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -4791,30 +13192,35 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", "dev": true }, "querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=" }, "quick-lru": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=" }, "ramda": { "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha1-Zvwt8++HOHT/wtpqqJhGWKus9ck=", "dev": true }, "randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", "dev": true, "requires": { "safe-buffer": "^5.1.0" @@ -4822,7 +13228,7 @@ }, "read": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read/-/read-1.0.7.tgz", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { "mute-stream": "~0.0.4" @@ -4830,80 +13236,40 @@ }, "read-pkg": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } } }, "read-pkg-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-3.0.0.tgz", "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } } }, "readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -4911,88 +13277,88 @@ }, "readline-transform": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha1-MVf5dCisrsDwWlwf8sMSD05tkEs=", "dev": true }, "rechoir": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { "resolve": "^1.1.6" } }, "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + "version": "0.13.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=" }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", "dev": true }, "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=" }, "repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", "dev": true }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", "dev": true }, "requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.20.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", "requires": { - "is-core-module": "^2.1.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, "resolve-alpn": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha1-t629rDVGqq7CC0Xn2CZZJwcnJvk=" }, "resolve-dir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "requires": { "expand-tilde": "^2.0.0", @@ -5001,109 +13367,71 @@ }, "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "responselike": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha1-JjkbzDF091D5p56sxAoSpcQtdyM=", "requires": { "lowercase-keys": "^2.0.0" } }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" - }, - "dependencies": { - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - } } }, "ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" }, "retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, "reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=" }, "revalidator": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/revalidator/-/revalidator-0.1.8.tgz", "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" }, "rewire": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", "dev": true, "requires": { "eslint": "^6.8.0" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "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==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", "dev": true }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -5111,17 +13439,23 @@ }, "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=", + "dev": true + }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5129,25 +13463,10 @@ "supports-color": "^5.3.0" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "dev": true, "requires": { "color-name": "1.1.3" @@ -5155,14 +13474,14 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "cross-spawn": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", "dev": true, "requires": { "nice-try": "^1.0.4", @@ -5174,16 +13493,28 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", "dev": true } } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, "eslint": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -5223,49 +13554,27 @@ "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", "dev": true, "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "eslint-visitor-keys": "^1.1.0" } }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true + }, "espree": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-6.2.1.tgz", + "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", "dev": true, "requires": { "acorn": "^7.1.1", @@ -5273,19 +13582,36 @@ "eslint-visitor-keys": "^1.1.0" } }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" } }, + "flatted": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", + "dev": true + }, "globals": { "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-12.4.0.tgz", + "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", "dev": true, "requires": { "type-fest": "^0.8.1" @@ -5293,131 +13619,95 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "mkdirp": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", "dev": true, "requires": { "minimist": "^1.2.5" } }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "optionator": { + "version": "0.8.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", "dev": true, "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "glob": "^7.1.3" } }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { @@ -5426,29 +13716,81 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "dev": true, "requires": { "has-flag": "^3.0.0" } }, + "table": { + "version": "5.4.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-5.4.6.tgz", + "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", + "dev": true + }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "dev": true, "requires": { "isexe": "^2.0.0" @@ -5458,39 +13800,42 @@ }, "rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", "requires": { "glob": "^7.1.3" } }, "run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=" }, "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", + "requires": { + "queue-microtask": "^1.2.2" + } }, "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "version": "6.6.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=", "requires": { "tslib": "^1.9.0" } }, "safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", "dev": true }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "~0.1.10" @@ -5498,20 +13843,20 @@ }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" }, "semver": { "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.5.tgz", + "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", "requires": { "lru-cache": "^6.0.0" } }, "sentence-case": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sentence-case/-/sentence-case-2.1.1.tgz", "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", "requires": { "no-case": "^2.2.0", @@ -5520,8 +13865,8 @@ }, "serialize-javascript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha1-765diPRdeSQUHai1w6en5mP+/rg=", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -5529,14 +13874,14 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -5546,18 +13891,23 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", "dev": true, "requires": { "shebang-regex": "^3.0.0" @@ -5565,14 +13915,14 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", "dev": true }, "side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -5581,14 +13931,14 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.4.tgz", + "integrity": "sha1-NmpGhNF1ucqyCB42gf2jdHtsUdc=" }, "sinon": { "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha1-nniFDHRyQdXFnRYU2PnL6IQOhnQ=", "dev": true, "requires": { "@sinonjs/commons": "^1.8.3", @@ -5601,54 +13951,28 @@ }, "slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-3.0.0.tgz", + "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=" }, "snake-case": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snake-case/-/snake-case-2.1.0.tgz", "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", "requires": { "no-case": "^2.2.0" @@ -5656,8 +13980,8 @@ }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -5671,15 +13995,15 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -5687,28 +14011,84 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -5717,56 +14097,25 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "requires": { "kind-of": "^3.2.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -5776,17 +14125,17 @@ }, "socks": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.1.tgz", + "integrity": "sha1-mJ5lNKB88zfesbHJSqpEKWUg0w4=", "requires": { "ip": "^1.1.5", "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz", - "integrity": "sha512-FIgZbQWlnjVEQvMkylz64/rUggGtrKstPnx8OZyYFG0tAFR8CSBtpXxSwbFLHyeXFn/cunFL7MpuSOvDSOPo9g==", + "version": "6.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz", + "integrity": "sha1-hpzy170Q/qlsetMRHoFyaFXihcM=", "requires": { "agent-base": "^6.0.2", "debug": "^4.3.1", @@ -5795,13 +14144,13 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" }, "source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -5811,14 +14160,14 @@ } }, "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=" }, "spdx-correct": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -5827,14 +14176,14 @@ }, "spdx-exceptions": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", "dev": true }, "spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -5843,14 +14192,14 @@ }, "spdx-license-ids": { "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha1-DZvszN5wA9bGWNSH3UijLwvzAUs=", "dev": true }, "split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", + "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", "dev": true, "requires": { "through": "2" @@ -5858,34 +14207,34 @@ }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "ssri": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", "requires": { "minipass": "^3.1.1" } }, "stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "^0.2.5", @@ -5894,17 +14243,68 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" } } }, "stream-combiner": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "dev": true, "requires": { @@ -5913,44 +14313,19 @@ } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "string.prototype.trimend": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -5959,37 +14334,45 @@ }, "string.prototype.trimstart": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "requires": { + "ansi-regex": "^5.0.0" + } + }, "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "requires": { "has-flag": "^4.0.0" } }, "swap-case": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/swap-case/-/swap-case-1.1.2.tgz", "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", "requires": { "lower-case": "^1.1.1", @@ -5997,51 +14380,43 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.7.1.tgz", + "integrity": "sha1-7gVZK3FDgxqMlPPO5qrkwczvM+I=", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "ajv": { + "version": "8.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.6.3.tgz", + "integrity": "sha1-EaZlJ3Ydw+mjhF6nddLTwEFOh2Q=", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=", + "dev": true } } }, "tar": { "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", + "integrity": "sha1-Z2CjjwA6+hsv/Q/+npq70Oqz1iE=", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -6053,18 +14428,18 @@ }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "title-case": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/title-case/-/title-case-2.1.1.tgz", "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", "requires": { "no-case": "^2.2.0", @@ -6073,28 +14448,23 @@ }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", "requires": { "os-tmpdir": "~1.0.2" } }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "^3.0.2" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -6104,8 +14474,8 @@ }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -6115,16 +14485,23 @@ }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", "requires": { "is-number": "^7.0.0" + }, + "dependencies": { + "is-number": { + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=" + } } }, "tsconfig-paths": { "version": "3.11.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha1-lUwf6XPaYznHjgawPOLkiBC2XzY=", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -6135,40 +14512,39 @@ }, "tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", "dev": true }, "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 + "version": "0.20.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=" }, "uglify-js": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz", - "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", + "version": "3.14.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uglify-js/-/uglify-js-3.14.2.tgz", + "integrity": "sha1-191qRspXIU9UotCkPK0PNduCrJk=", "optional": true }, "unbox-primitive": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -6179,39 +14555,46 @@ }, "unc-path-regex": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, "union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } } }, "unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", "requires": { "imurmurhash": "^0.1.4" } }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "^0.3.1", @@ -6220,7 +14603,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "^2.0.3", @@ -6230,7 +14613,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" @@ -6240,28 +14623,33 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, "upper-case": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" }, "upper-case-first": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case-first/-/upper-case-first-1.1.2.tgz", "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", "requires": { "upper-case": "^1.1.1" } }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", "dev": true, "requires": { "punycode": "^2.1.0" @@ -6269,18 +14657,18 @@ }, "urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "url-join": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=" }, "url-parse": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -6288,23 +14676,23 @@ }, "use": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" }, "user-home": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", "dev": true }, "v8flags": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { "user-home": "^1.1.1" @@ -6312,8 +14700,8 @@ }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -6322,7 +14710,7 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "^1.0.3" @@ -6330,7 +14718,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -6338,8 +14726,8 @@ }, "which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", "dev": true, "requires": { "isexe": "^2.0.0" @@ -6347,8 +14735,8 @@ }, "which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", "dev": true, "requires": { "is-bigint": "^1.0.1", @@ -6360,14 +14748,14 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wide-align": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", "dev": true, "requires": { "string-width": "^1.0.2 || 2" @@ -6375,14 +14763,20 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -6391,7 +14785,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { @@ -6402,16 +14796,16 @@ }, "widest-line": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", "requires": { "string-width": "^4.0.0" } }, "winston": { "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/winston/-/winston-2.4.5.tgz", + "integrity": "sha1-8uQx1WFUxOp2VUX8EAO9NAyVtZo=", "requires": { "async": "~1.0.0", "colors": "1.0.x", @@ -6423,70 +14817,52 @@ "dependencies": { "async": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-1.0.0.tgz", "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" }, "colors": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" } } }, "word-wrap": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", "dev": true }, "wordwrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "workerpool": { "version": "6.1.5", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha1-D3zwdrYhX9fh2pA/9vIt3RiGtYE=", "dev": true }, "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write/-/write-1.0.3.tgz", + "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", "dev": true, "requires": { "mkdirp": "^0.5.1" @@ -6494,8 +14870,8 @@ "dependencies": { "mkdirp": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", "dev": true, "requires": { "minimist": "^1.2.5" @@ -6505,19 +14881,19 @@ }, "y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=", "dev": true }, "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" }, "yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", "dev": true, "requires": { "cliui": "^6.0.0", @@ -6531,22 +14907,85 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } } }, "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" - } + "version": "20.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=", + "dev": true }, "yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=", "dev": true, "requires": { "camelcase": "^6.0.0", @@ -6555,23 +14994,17 @@ "is-plain-obj": "^2.1.0" }, "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, "decamelize": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=", "dev": true } } }, "yauzl": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "requires": { "buffer-crc32": "~0.2.3", @@ -6580,8 +15013,8 @@ }, "yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", "dev": true } } diff --git a/package.json b/package.json index 8669ec8b..e06c88c2 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "@hapi/joi": "17.1.1", "boxen": "5.0.1", "chalk": "4.1.2", + "check-node-version": "4.1.0", "cli-table3": "0.6.0", "commander": "8.1.0", "debug": "4.3.2", From 346568e53a7b0ab2294081a0dfff9f1c7b3a4b81 Mon Sep 17 00:00:00 2001 From: bpandey-CS Date: Thu, 7 Oct 2021 16:29:56 +0530 Subject: [PATCH 444/864] making changes to reflect validation --- bin/cortex-missions.js | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index b453bc33..011ac526 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -17,6 +17,7 @@ */ const chalk = require('chalk'); +const fs = require('fs'); const program = require('../src/commander'); const { parseObject, printError } = require('../src/commands/utils'); @@ -91,24 +92,24 @@ program .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { - // if (options.params) { - // try { - // params = parseObject(options.params, options); - // } catch (e) { - // printError(`Failed to parse params: ${options.params} Error: ${e}`, options); - // } - // } else if (options.paramsFile) { - // const paramsStr = fs.readFileSync(options.paramsFile); - // params = parseObject(paramsStr, options); - // } - // if (params.payload) { - // // apply validations - // // batch size can't be empty, can't be negative - // if (!params.payload.batch_size || params.payload.batch_size <= 0){ - // printError(`batch_size cannot be "${params.payload.batch_size}"`) - // throw "Inappropriate Batch Size passed in params" - // } - // } + if (options.params) { + try { + params = parseObject(options.params, options); + } catch (e) { + printError(`Failed to parse params: ${options.params} Error: ${e}`, options); + } + } else if (options.paramsFile) { + const paramsStr = fs.readFileSync(options.paramsFile); + params = parseObject(paramsStr, options); + } + if (params.payload) { + // apply validations + // batch size can't be empty, can't be negative + if (!params.payload.batch_size || params.payload.batch_size <= 0){ + printError(`batch_size cannot be "${params.payload.batch_size}"`) + throw "Inappropriate Batch Size passed in params" + } + } new InvokeAgentServiceCommand(program).execute(`${missionName}-online-learner-agent`, 'online_learner_service', options); } catch (err) { console.error(chalk.red(err.message)); From a41de642441c0007128e288e991c8ac1aba4c682 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 7 Oct 2021 19:14:38 +0530 Subject: [PATCH 445/864] dont allow underscores in skill name while cortex generate skill --- src/commands/plopfile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index d11ebc62..8555b4a1 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -7,8 +7,8 @@ module.exports = (plop) => { { type: 'input', name: 'name', - message: 'Skill Name? (Skill name must be alphanumeric, beginning with a letter. Hyphen and underscore allowed internally.)', - validate: (value) => /^[0-9a-zA-Z][0-9a-zA-Z_\- ]{0,18}[0-9a-zA-Z]$/.test(value), + message: 'Skill Name? (Skill name must be alphanumeric, beginning with a letter. Hyphen allowed internally.)', + validate: (value) => /^[0-9a-zA-Z][0-9a-zA-Z\- ]{0,18}[0-9a-zA-Z]$/.test(value), }, { type: 'list', From 455d9d39556cc2c51a86aa49b7bcc0267d9a6958 Mon Sep 17 00:00:00 2001 From: bpandey-CS Date: Thu, 7 Oct 2021 23:18:59 +0530 Subject: [PATCH 446/864] formatting and updating according to > cortex-cli@2.0.6 pretest > eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /Users/bpandey/Desktop/documents/git/cortex-cli/bin/cortex-actions.js 124:1 warning This line has a length of 283. Maximum allowed is 180 max-len /Users/bpandey/Desktop/documents/git/cortex-cli/src/client/catalog.js 264:25 warning Expected the Promise rejection reason to be an Error prefer-promise-reject-errors /Users/bpandey/Desktop/documents/git/cortex-cli/src/client/content.js 98:17 warning Assignment to function parameter 'toFile' no-param-reassign 100:17 warning Assignment to function parameter 'toFile' no-param-reassign /Users/bpandey/Desktop/documents/git/cortex-cli/src/client/roles.js 40:21 warning Assignment to function parameter 'flagString' no-param-reassign 42:21 warning Assignment to function parameter 'flagString' no-param-reassign /Users/bpandey/Desktop/documents/git/cortex-cli/src/client/users.js 36:21 warning Assignment to function parameter 'flagString' no-param-reassign 38:21 warning Assignment to function parameter 'flagString' no-param-reassign /Users/bpandey/Desktop/documents/git/cortex-cli/src/commands/agents.js 54:41 warning Assignment to property of function parameter 'd' no-param-reassign /Users/bpandey/Desktop/documents/git/cortex-cli/src/commands/assessments.js 296:50 warning Assignment to property of function parameter 'r' no-param-reassign 297:1 warning This line has a length of 188. Maximum allowed is 180 max-len /Users/bpandey/Desktop/documents/git/cortex-cli/src/commands/configure.js 80:22 warning Assignment to function parameter 'config' no-param-reassign 84:9 warning Assignment to property of function parameter 'config' no-param-reassign /Users/bpandey/Desktop/documents/git/cortex-cli/src/commands/deploy.js 247:17 warning Assignment to property of function parameter 'entries' no-param-reassign 355:25 warning Assignment to function parameter 'response' no-param-reassign 370:25 warning Assignment to function parameter 'response' no-param-reassign /Users/bpandey/Desktop/documents/git/cortex-cli/src/commands/experiments.js 144:25 warning Assignment to property of function parameter 'o' no-param-reassign 145:25 warning Assignment to property of function parameter 'o' no-param-reassign 146:25 warning Assignment to property of function parameter 'o' no-param-reassign 147:25 warning Assignment to property of function parameter 'o' no-param-reassign 148:25 warning Assignment to property of function parameter 'o' no-param-reassign 262:45 warning Assignment to property of function parameter 'd' no-param-reassign 299:45 warning Assignment to property of function parameter 'd' no-param-reassign /Users/bpandey/Desktop/documents/git/cortex-cli/src/commands/models.js 58:45 warning Assignment to property of function parameter 'd' no-param-reassign 219:41 warning Assignment to property of function parameter 'd' no-param-reassign /Users/bpandey/Desktop/documents/git/cortex-cli/src/commands/skills.js 52:53 warning Assignment to property of function parameter 'd' no-param-reassign /Users/bpandey/Desktop/documents/git/cortex-cli/src/commands/utils.js 98:5 warning Assignment to function parameter 'transform' no-param-reassign 98:30 warning Unexpected unnamed function func-names 135:17 warning Expected the Promise rejection reason to be an Error prefer-promise-reject-errors 251:9 warning Assignment to function parameter 'json' no-param-reassign ✖ 30 problems (0 errors, 30 warnings) audit-ci version: 4.1.0 NPM audit report results: { "advisories": { "union-value": { "name": "union-value", "severity": "high", "via": [ "set-value" ], "effects": [ "cache-base" ], "range": "*", "nodes": [ "node_modules/union-value" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } }, "table": { "name": "table", "severity": "critical", "via": [ "lodash", "string-width" ], "effects": [ "eslint" ], "range": "1.0.0 - 6.0.7", "nodes": [ "node_modules/table" ], "fixAvailable": { "name": "rewire", "version": "3.0.2", "isSemVerMajor": true } }, "snapdragon": { "name": "snapdragon", "severity": "high", "via": [ "base" ], "effects": [ "braces", "expand-brackets", "extglob", "micromatch", "nanomatch" ], "range": "0.6.0 - 0.10.1", "nodes": [ "node_modules/snapdragon" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } }, "set-value": { "name": "set-value", "severity": "high", "via": [ { "source": 1002475, "name": "set-value", "dependency": "set-value", "title": "Prototype Pollution in set-value", "url": "https://github.com/advisories/GHSA-4jqc-8m5r-9rpr", "severity": "high", "range": "<4.0.1" } ], "effects": [ "cache-base", "union-value" ], "range": "<4.0.1", "nodes": [ "node_modules/set-value" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } }, "rewire": { "name": "rewire", "severity": "critical", "via": [ "eslint" ], "effects": [], "range": ">=4.0.0", "nodes": [ "node_modules/rewire" ], "fixAvailable": { "name": "rewire", "version": "3.0.2", "isSemVerMajor": true } }, "plop": { "name": "plop", "severity": "critical", "via": [ "liftoff", "node-plop", "ora" ], "effects": [], "range": ">=1.6.0", "nodes": [ "node_modules/plop" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } }, "node-plop": { "name": "node-plop", "severity": "critical", "via": [ "inquirer" ], "effects": [ "plop" ], "range": "*", "nodes": [ "node_modules/node-plop" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } }, "nanomatch": { "name": "nanomatch", "severity": "high", "via": [ "snapdragon" ], "effects": [], "range": ">=0.1.1", "nodes": [ "node_modules/nanomatch" ], "fixAvailable": true }, "micromatch": { "name": "micromatch", "severity": "high", "via": [ "snapdragon" ], "effects": [ "findup-sync" ], "range": "3.0.0 - 3.1.10", "nodes": [ "node_modules/micromatch" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } }, "lodash": { "name": "lodash", "severity": "critical", "via": [ { "source": 1002373, "name": "lodash", "dependency": "lodash", "title": "Arbitrary code execution in lodash", "url": "https://github.com/advisories/GHSA-8p5q-j9m2-g8wr", "severity": "critical", "range": "<=4.17.21" } ], "effects": [ "eslint", "inquirer", "table" ], "range": "*", "nodes": [ "node_modules/lodash" ], "fixAvailable": { "name": "rewire", "version": "3.0.2", "isSemVerMajor": true } }, "liftoff": { "name": "liftoff", "severity": "high", "via": [ "findup-sync" ], "effects": [ "plop" ], "range": ">=2.4.0", "nodes": [ "node_modules/liftoff" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } }, "inquirer": { "name": "inquirer", "severity": "critical", "via": [ "lodash" ], "effects": [ "eslint", "node-plop" ], "range": "*", "nodes": [ "node_modules/node-plop/node_modules/inquirer", "node_modules/rewire/node_modules/inquirer" ], "fixAvailable": { "name": "rewire", "version": "3.0.2", "isSemVerMajor": true } }, "findup-sync": { "name": "findup-sync", "severity": "high", "via": [ "micromatch" ], "effects": [ "liftoff" ], "range": "2.0.0 - 3.0.0", "nodes": [ "node_modules/findup-sync" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } }, "extglob": { "name": "extglob", "severity": "high", "via": [ "snapdragon" ], "effects": [], "range": "1.0.0 - 2.0.4", "nodes": [ "node_modules/extglob" ], "fixAvailable": true }, "expand-brackets": { "name": "expand-brackets", "severity": "high", "via": [ "snapdragon" ], "effects": [], "range": "1.0.0 - 2.1.4", "nodes": [ "node_modules/expand-brackets" ], "fixAvailable": true }, "eslint": { "name": "eslint", "severity": "critical", "via": [ "inquirer", "lodash", "strip-ansi", "table" ], "effects": [ "rewire" ], "range": "0.21.0 - 7.26.0", "nodes": [ "node_modules/rewire/node_modules/eslint" ], "fixAvailable": { "name": "rewire", "version": "3.0.2", "isSemVerMajor": true } }, "cache-base": { "name": "cache-base", "severity": "high", "via": [ "set-value", "union-value" ], "effects": [ "base" ], "range": ">=0.7.0", "nodes": [ "node_modules/cache-base" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } }, "braces": { "name": "braces", "severity": "high", "via": [ "snapdragon" ], "effects": [], "range": "2.0.0 - 2.3.2", "nodes": [ "node_modules/micromatch/node_modules/braces" ], "fixAvailable": true }, "base": { "name": "base", "severity": "high", "via": [ "cache-base" ], "effects": [ "snapdragon" ], "range": ">=0.7.0", "nodes": [ "node_modules/base" ], "fixAvailable": { "name": "plop", "version": "1.5.0", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 5, "high": 12, "critical": 7, "total": 24 }, "dependencies": { "prod": 447, "dev": 348, "optional": 5, "peer": 0, "peerOptional": 0, "total": 798 } } } --- bin/cortex-missions.js | 9 +- package-lock.json | 13329 +++++++-------------------------------- package.json | 1 - 3 files changed, 2453 insertions(+), 10886 deletions(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 011ac526..053f5d32 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -19,7 +19,7 @@ const chalk = require('chalk'); const fs = require('fs'); const program = require('../src/commander'); -const { parseObject, printError } = require('../src/commands/utils'); +const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -92,6 +92,7 @@ program .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { + let params = {}; if (options.params) { try { params = parseObject(options.params, options); @@ -105,9 +106,9 @@ program if (params.payload) { // apply validations // batch size can't be empty, can't be negative - if (!params.payload.batch_size || params.payload.batch_size <= 0){ - printError(`batch_size cannot be "${params.payload.batch_size}"`) - throw "Inappropriate Batch Size passed in params" + if (!params.payload.batch_size || params.payload.batch_size <= 0) { + printError(`batch_size cannot be "${params.payload.batch_size}"`); + throw new Error('Inappropriate Batch Size passed in params'); } } new InvokeAgentServiceCommand(program).execute(`${missionName}-online-learner-agent`, 'online_learner_service', options); diff --git a/package-lock.json b/package-lock.json index 58469752..68e8a44e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8870 +1,39 @@ { "name": "cortex-cli", - "version": "2.0.5", - "lockfileVersion": 2, + "version": "2.0.6", + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "cortex-cli", - "version": "2.0.5", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@hapi/joi": "17.1.1", - "boxen": "5.0.1", - "chalk": "4.1.2", - "check-node-version": "4.1.0", - "cli-table3": "0.6.0", - "commander": "8.1.0", - "debug": "4.3.2", - "find-package-json": "1.2.0", - "form-data": "4.0.0", - "get-stream": "6.0.1", - "glob": "7.1.7", - "got": "11.8.2", - "graphql": "15.5.2", - "graphql-request": "3.5.0", - "is-installed-globally": "0.4.0", - "jmespath": "0.15.0", - "jose": "2.0.5", - "js-yaml": "4.1.0", - "lodash": "4.17.21", - "moment": "2.29.1", - "npm-registry-fetch": "11.0.0", - "plop": "2.7.4", - "prompt": "1.2.0", - "semver": "7.3.5", - "url-join": "4.0.1", - "url-parse": "1.5.3", - "yauzl": "2.10.0" - }, - "bin": { - "cortex": "bin/cortex.js" - }, - "devDependencies": { - "audit-ci": "4.1.0", - "chai": "4.3.4", - "chai-as-promised": "7.1.1", - "eslint": "7.32.0", - "eslint-config-airbnb-base": "14.2.1", - "eslint-plugin-import": "2.24.2", - "mocha": "9.1.1", - "mocked-env": "1.3.5", - "nock": "13.1.3", - "rewire": "5.0.0", - "sinon": "11.1.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk=", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha1-QDE5ryYrmm6Pm6BKb9zr+N5pK/E=", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.16.0", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha1-MKqCXxHUOGcdWFvUTn/VZFNfwhA=", - "license": "MIT" - }, - "node_modules/@hapi/address": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha1-1gxcDZMOd0Vv3N4lmOdzAuKVXh0=", - "deprecated": "Moved to 'npm install @sideway/address'", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@hapi/formula": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha1-7a3gYZ7VjI5PFk8jPNpwIR54cSg=", - "deprecated": "Moved to 'npm install @sideway/formula'", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha1-85M6RONlhk9NrV25QVgQbVEegTE=", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/joi": { - "version": "17.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha1-nMjX4sIhPR5GcIxiYBhLRHxmE1A=", - "deprecated": "Switch to 'npm install joi'", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/address": "^4.0.1", - "@hapi/formula": "^2.0.0", - "@hapi/hoek": "^9.0.0", - "@hapi/pinpoint": "^2.0.0", - "@hapi/topo": "^5.0.0" - } - }, - "node_modules/@hapi/pinpoint": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha1-gFtA1NvsBPwRanMIlJTgDwc96N8=", - "deprecated": "Moved to 'npm install @sideway/pinpoint'", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha1-3ESOMyxsbjek3AL9hLqNRLmvsBI=", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha1-h956+cIxgm/daKxyWPd8Qp4OX88=", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.0.0.tgz", - "integrity": "sha1-WJYSz606bqD+r8uQHSnGP9UtsJ8=", - "license": "ISC", - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@panva/asn1.js": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@panva/asn1.js/-/asn1.js-1.0.0.tgz", - "integrity": "sha1-3VWue4Ep4CBJ8AlAi5fGHM+QMvY=", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha1-Znv8YYaufJ4LRaCJYMVRQ3F24co=", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha1-OALd0hpQqUm2ch3dcto25n5/Gy0=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha1-JSTq5wxJEO3M+ZsvTm78WJSv97U=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha1-oBF9gjJg8oLAS/9fhwS9wqxpELs=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU=", - "dev": true, - "license": "(Unlicense OR Apache-2.0)" - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha1-tKkUu2LnwnLU5Zif5EQPgSqx2Ac=", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha1-wyTaAZfeCpiiMSFWU2riYkKf9rk=", - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/fined": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/fined/-/fined-1.1.3.tgz", - "integrity": "sha1-g/A+jwqNNnPfyvsY/ONXH2JQ4bw=", - "license": "MIT" - }, - "node_modules/@types/glob": { - "version": "7.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha1-6lniHS7lxReRTLS8jkFTuZ5WZnI=", - "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha1-Dqe2FJaQK5WJDcTDoRa2DLja6BI=", - "license": "MIT" - }, - "node_modules/@types/inquirer": { - "version": "6.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha1-uDsL8wuIuL5yRtQOUdMv6dEOCb4=", - "license": "MIT", - "dependencies": { - "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "node_modules/@types/interpret": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha1-sb+FsEIOJBS5ic4jdlitINwDcZs=", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/keyv": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha1-HJquMocuwfINza7omp87qI9GXkE=", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/liftoff": { - "version": "2.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/liftoff/-/liftoff-2.5.1.tgz", - "integrity": "sha1-LrTB+G6dXuhVceVtsAhLJq8SnO0=", - "license": "MIT", - "dependencies": { - "@types/fined": "*", - "@types/interpret": "*", - "@types/node": "*" - } - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "16.9.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-16.9.6.tgz", - "integrity": "sha1-BApk1/r55dnpQDVxJfCWMBLmbwQ=", - "license": "MIT" - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha1-JR9P59FU0rrRJavhtCmyOv0mLik=", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/through": { - "version": "0.0.30", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/through/-/through-0.0.30.tgz", - "integrity": "sha1-4OQs536Je9aurW9upirrE1uKOJU=", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=", - "dev": true, - "license": "ISC" - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha1-2SgCikhiyxFxjlUieHLoQqRMlFs=", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", - "license": "ISC", - "dependencies": { - "string-width": "^3.0.0" - } - }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "license": "MIT" - }, - "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "license": "MIT", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", - "license": "Python-2.0" - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-includes": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha1-x/YZs4KtKvr1Mmzd/cCvxhr3aQo=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha1-bvY4tDMSvUAbTGGZ/ex+LcnpoSM=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "0.9.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "license": "MIT" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "license": "MIT" - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", - "license": "(MIT OR Apache-2.0)", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/audit-ci": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-4.1.0.tgz", - "integrity": "sha1-GV0TPqzNLaJzxS3zdfi0I6TKZNQ=", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "cross-spawn": "^7.0.3", - "event-stream": "4.0.1", - "JSONStream": "^1.3.5", - "readline-transform": "1.0.0", - "semver": "^7.0.0", - "yargs": "^15.0.0" - }, - "bin": { - "audit-ci": "lib/audit-ci.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", - "license": "MIT" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "license": "MIT", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha1-ZXUovdP1mncrgnm4MfJ+wsdEZks=", - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.0", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", - "dev": true, - "license": "ISC" - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "license": "MIT" - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha1-3IU4D7L1Vv492kxxm/oOyHWn8es=", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "license": "MIT", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha1-WmuGWyxENXvj1evCpGewMnGacAU=", - "license": "MIT", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha1-6g0LiJNkolhUdXMByhKy2nf5HSc=", - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "license": "MIT", - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chai": { - "version": "4.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.3.4.tgz", - "integrity": "sha1-tV5lWzHh6scJm+TAjCGWT84ubEk=", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", - "dev": true, - "license": "WTFPL", - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha1-DmEbftyZUt8uhROye0LecmR90X4=", - "license": "MIT", - "dependencies": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", - "license": "MIT" - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/check-more-types": { - "version": "2.24.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/check-node-version": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-node-version/-/check-node-version-4.1.0.tgz", - "integrity": "sha1-Ev9Fv+uN1ZFwCgq4SMIbLYzu65Q=", - "license": "Unlicense", - "dependencies": { - "chalk": "^3.0.0", - "map-values": "^1.0.1", - "minimist": "^1.2.0", - "object-filter": "^1.0.2", - "run-parallel": "^1.1.4", - "semver": "^6.3.0" - }, - "bin": { - "check-node-version": "bin.js" - }, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/check-node-version/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/check-node-version/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha1-NsfcmPtqmna9YjjsP3fiQlYn6Tk=", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha1-t7G8ZcqOe1zvkSThPcKyHizk+u4=", - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", - "license": "ISC", - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "license": "MIT", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "license": "MIT" - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", - "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=", - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-8.1.0.tgz", - "integrity": "sha1-2zbj5m7fJP9ZHWOYYsarLFJmQ2I=", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "license": "MIT" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha1-MNHn89G4grJexJM9HRraw1PSClk=", - "dev": true, - "license": "MIT" - }, - "node_modules/constant-case": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "license": "MIT", - "dependencies": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js-pure": { - "version": "3.18.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-js-pure/-/core-js-pure-3.18.0.tgz", - "integrity": "sha1-5RhzR7rmZEjJ4tZ8AcNMTfMmHcU=", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha1-lyPzo6JHv4uJA586OAqSROj6Lzk=", - "license": "MIT", - "dependencies": { - "node-fetch": "2.6.1" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cycle": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", - "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha1-yjh2Et234QS9FthaqwDV7PCcZvw=", - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", - "dev": true, - "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", - "dev": true, - "license": "MIT" - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha1-gBa9tBQ+RjK3ejRJxiNid95SBYc=", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", - "dev": true, - "license": "MIT", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/del/-/del-5.1.0.tgz", - "integrity": "sha1-2Uh8lONnQQ5u/ykl7ljAyEp1s6c=", - "license": "MIT", - "dependencies": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-5.0.0.tgz", - "integrity": "sha1-ftatdthZ0DB4fsNYVfWx2vMdhSs=", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dot-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "license": "MIT", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", - "license": "MIT" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=", - "license": "MIT" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha1-LETj6npiVQORZNJlWXd6bZeMtFY=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-string": "^1.0.7", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "14.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", - "integrity": "sha1-ii6zhFXcWjElUBk7MZza7vBCzR4=", - "dev": true, - "license": "MIT", - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.2" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0", - "eslint-plugin-import": "^2.22.1" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha1-lOVUDdFf4VIuj/o+yNs7f6fnpTQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha1-LIzS40HziFkY7ifRhHmRCt57tNo=", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.6.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", - "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-stream": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", - "dev": true, - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "license": "MIT", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "license": "MIT" - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "license": "MIT", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-files": { - "version": "9.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha1-indE8kN/gfXtMlDtnxVQ3pAv5Uo=", - "license": "MIT", - "engines": { - "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" - } - }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "engines": { - "node": "> 0.1.90" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", - "license": "MIT", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", - "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-package-json": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "license": "MIT", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fined/-/fined-1.2.0.tgz", - "integrity": "sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=", - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E=", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-5.0.2.tgz", - "integrity": "sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha1-ZL/tXLaP48p4s+shStl7Y77c5WE=", - "dev": true, - "license": "ISC" - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "license": "MIT", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "license": "MIT", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true, - "license": "MIT" - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "license": "MIT" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true, - "license": "MIT" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.7.tgz", - "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha1-cKdv6E6jFas3sfVXbL3n1I73JoY=", - "license": "MIT", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", - "license": "MIT", - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", - "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=", - "license": "ISC" - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.11.0.tgz", - "integrity": "sha1-QO9njaEX/nvS4o8fqySVG9AlW+c=", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-10.0.2.tgz", - "integrity": "sha1-J3WT50WsqkZGw6tBEonsR6A5JUM=", - "license": "MIT", - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/got": { - "version": "11.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.2.tgz", - "integrity": "sha1-ers5Weoowx81dvFXbB7/ziPzNZk=", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=", - "license": "ISC" - }, - "node_modules/graphql": { - "version": "15.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.5.2.tgz", - "integrity": "sha1-76GfjyvxpI631chb8X4US6i7BIA=", - "license": "MIT", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-request": { - "version": "3.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.5.0.tgz", - "integrity": "sha1-fmlXThWHX7P2YKS0vjmW7NC7yLc=", - "license": "MIT", - "dependencies": { - "cross-fetch": "^3.0.6", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x" - } - }, - "node_modules/graphql-request/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", - "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.x" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha1-nOM0FqrQLb1sj6+oJA1dmABJRaE=", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "license": "MIT", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/header-case": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "license": "MIT", - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", - "license": "MIT", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha1-XkJVB+7eT+qEa3Ji8IOEVsQgmWE=", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=", - "license": "BSD-2-Clause" - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha1-uPVeDB8l1OvQizsMLAeflZCACz0=", - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", - "license": "ISC" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "license": "ISC" - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", - "integrity": "sha1-5f1Vbs3VcmvpePoQAYYurLCpS8U=", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "license": "MIT" - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", - "license": "MIT", - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true, - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "license": "MIT" - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha1-11U7JSb+Wbkro+QMjfdX7Ipwnhk=", - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha1-mg/UB5ScMPhutpWe8beZTtC3tSA=", - "license": "MIT", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "license": "MIT" - }, - "node_modules/is-lower-case": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "license": "MIT", - "dependencies": { - "lower-case": "^1.1.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", - "license": "MIT", - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", - "license": "MIT", - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-upper-case": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "license": "MIT", - "dependencies": { - "upper-case": "^1.1.0" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true, - "license": "MIT" - }, - "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha1-XTS5SGW9SUZjPsx4oCb8dsWxH88=", - "license": "MIT", - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "license": "MIT" - }, - "node_modules/jmespath": { - "version": "0.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/jose": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose/-/jose-2.0.5.tgz", - "integrity": "sha1-KXRqGNn/99z51dKm9iywx80nq9M=", - "license": "MIT", - "dependencies": { - "@panva/asn1.js": "^1.0.0" - }, - "engines": { - "node": ">=10.13.0 < 13 || >=13.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=", - "license": "MIT" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "license": "ISC" - }, - "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha1-715Ymvth5dZrJOynSUCaiTmox0Q=", - "dev": true, - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha1-TzqpjeJUgDyvzSiWc0EI2qNeQlQ=", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lazy-ass": { - "version": "1.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", - "dev": true, - "license": "MIT", - "engines": { - "node": "> 0.8" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", - "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/liftoff": { - "version": "2.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "license": "MIT", - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=", - "license": "MIT" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha1-P727lbRoOsn8eFER55LlWNSr1QM=", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "license": "MIT" - }, - "node_modules/lower-case-first": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "license": "MIT", - "dependencies": { - "lower-case": "^1.1.2" - } - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha1-UwhaCeeXFDPmdl95cb9j9OBcuWg=", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-stream": { - "version": "0.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", - "dev": true, - "license": "MIT" - }, - "node_modules/map-values": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-values/-/map-values-1.0.1.tgz", - "integrity": "sha1-douOecAJvytk/ugG4ip7HEGQyZA=", - "license": "Public Domain" - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "license": "MIT", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "license": "MIT", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha1-89/eYMmenPO8lwHWh3ePU3ABy+0=", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha1-HQDonn3n/gIAjbYQAdngKFJnD9U=", - "license": "MIT", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", - "license": "MIT" - }, - "node_modules/minipass": { - "version": "3.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha1-cfYlGwozpJwBs8+X/3ftoDDf9zI=", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha1-114AkdqsGw/9fp1BYp+v99DB8bY=", - "license": "MIT", - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", - "license": "MIT", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", - "license": "MIT", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha": { - "version": "9.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha1-M98uucYmJDRjBRDF9Cg7Nu/am2E=", - "dev": true, - "license": "MIT", - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.2", - "debug": "4.3.1", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.7", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.23", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.1.5", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocked-env": { - "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha1-JE6r3B7ZKo9vVaL67cQIFZ6xk7M=", - "dev": true, - "license": "MIT", - "dependencies": { - "check-more-types": "2.24.0", - "debug": "4.3.2", - "lazy-ass": "1.6.0", - "ramda": "0.27.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.1.tgz", - "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "license": "MIT" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", - "license": "ISC" - }, - "node_modules/nanoid": { - "version": "3.1.23", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", - "license": "MIT" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", - "dev": true, - "license": "MIT" - }, - "node_modules/nise": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.0.tgz", - "integrity": "sha1-cT7z7ROCUtrvIOwDWrYreii+ZFw=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^7.0.4", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", - "license": "MIT", - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/nock": { - "version": "13.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.1.3.tgz", - "integrity": "sha1-EQsAWWVlSo/7eY6HutGLRnv/Ffk=", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash.set": "^4.3.2", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=", - "license": "MIT", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-plop": { - "version": "0.26.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-plop/-/node-plop-0.26.2.tgz", - "integrity": "sha1-wlI1ltq04oNg5hW3aLEbTWDVsbk=", - "license": "MIT", - "dependencies": { - "@babel/runtime-corejs3": "^7.9.2", - "@types/inquirer": "^6.5.0", - "change-case": "^3.1.0", - "del": "^5.1.0", - "globby": "^10.0.1", - "handlebars": "^4.4.3", - "inquirer": "^7.1.0", - "isbinaryfile": "^4.0.2", - "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=8.9.4" - } - }, - "node_modules/node-plop/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", - "dev": true, - "license": "ISC" - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha1-M2my1f6P3GdLqn8XhlFN3BVGbkQ=", - "license": "ISC", - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha1-aMG7gQxGVCdg1ipqll+FpwLUOnY=", - "license": "ISC", - "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "license": "MIT", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-filter": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-filter/-/object-filter-1.0.2.tgz", - "integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g=", - "license": "MIT" - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha1-nc6xRs7dQUig2eUauI00z1CZIrE=", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "license": "MIT", - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.entries": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha1-Q8z5pQvF/VtknUWrGlefJOCIyv0=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "license": "MIT", - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "3.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-3.4.0.tgz", - "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", - "license": "MIT", - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "license": "MIT", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "license": "MIT" - }, - "node_modules/ora/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ora/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", - "license": "MIT", - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "license": "MIT", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "license": "MIT", - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha1-qrf71BZYL6MqPbSYWcEiSHxe0s8=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "license": "MIT", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "license": "MIT", - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pascal-case": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "license": "MIT", - "dependencies": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", - "license": "MIT", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", - "license": "MIT" - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "license": "MIT", - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha1-hTTnenfOesWiUS6iHg/bj89sPY0=", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "license": [ - "MIT", - "Apache2" - ], - "dependencies": { - "through": "~2.3" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "license": "MIT" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-up": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/plop": { - "version": "2.7.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/plop/-/plop-2.7.4.tgz", - "integrity": "sha1-g1KArvNUEQIGO3WPURbM6Jnhxys=", - "license": "MIT", - "dependencies": { - "@types/liftoff": "^2.5.0", - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", - "minimist": "^1.2.0", - "node-plop": "~0.26.2", - "ora": "^3.4.0", - "v8flags": "^2.0.10" - }, - "bin": { - "plop": "bin/plop.js" - }, - "engines": { - "node": ">=8.9.4" - } - }, - "node_modules/plop/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/plop/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "license": "ISC" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=", - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prompt": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompt/-/prompt-1.2.0.tgz", - "integrity": "sha1-XY8dkBF2a6wHq95RDb9DONh7TwI=", - "license": "MIT", - "dependencies": { - "async": "~0.9.0", - "colors": "^1.1.2", - "read": "1.0.x", - "revalidator": "0.1.x", - "winston": "2.x" - }, - "engines": { - "node": ">= 0.6.6" - } - }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha1-QM3tqxgIXHkjNOZPCsFyVtOPmkU=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ramda": { - "version": "0.27.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha1-Zvwt8++HOHT/wtpqqJhGWKus9ck=", - "dev": true, - "license": "MIT" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "license": "ISC", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readline-transform": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha1-MVf5dCisrsDwWlwf8sMSD05tkEs=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=", - "license": "MIT" - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", - "dev": true, - "license": "ISC" - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha1-t629rDVGqq7CC0Xn2CZZJwcnJvk=", - "license": "MIT" - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "license": "MIT" - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha1-JjkbzDF091D5p56sxAoSpcQtdyM=", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", - "license": "MIT", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/revalidator": { - "version": "0.1.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", - "license": "Apache 2.0", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/rewire": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint": "^6.8.0" - } - }, - "node_modules/rewire/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/rewire/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/rewire/node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/rewire/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "license": "MIT" - }, - "node_modules/rewire/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/rewire/node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/rewire/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "dev": true, - "license": "MIT" - }, - "node_modules/rewire/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/rewire/node_modules/eslint": { - "version": "6.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/rewire/node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/rewire/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/espree": { - "version": "6.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-6.2.1.tgz", - "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/rewire/node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", - "dev": true, - "license": "ISC" - }, - "node_modules/rewire/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-12.4.0.tgz", - "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rewire/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/rewire/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rewire/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/rewire/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rewire/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rewire/node_modules/regexpp": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.5.0" - } - }, - "node_modules/rewire/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rewire/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/rewire/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rewire/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rewire/node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/rewire/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/rewire/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/rewire/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/table": { - "version": "5.4.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-5.4.6.tgz", - "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/rewire/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rewire/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/rewire/node_modules/which": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "license": "MIT", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sentence-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", - "license": "MIT", - "dependencies": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha1-765diPRdeSQUHai1w6en5mP+/rg=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "license": "ISC" - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.4.tgz", - "integrity": "sha1-NmpGhNF1ucqyCB42gf2jdHtsUdc=", - "license": "ISC" - }, - "node_modules/sinon": { - "version": "11.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha1-nniFDHRyQdXFnRYU2PnL6IQOhnQ=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/samsam": "^6.0.2", - "diff": "^5.0.0", - "nise": "^5.1.0", - "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-3.0.0.tgz", - "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snake-case": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "license": "MIT", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "license": "MIT", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "license": "MIT", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "license": "MIT" - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/socks": { - "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.1.tgz", - "integrity": "sha1-mJ5lNKB88zfesbHJSqpEKWUg0w4=", - "license": "MIT", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz", - "integrity": "sha1-hpzy170Q/qlsetMRHoFyaFXihcM=", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", - "license": "MIT", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=", - "license": "MIT" - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha1-DZvszN5wA9bGWNSH3UijLwvzAUs=", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", - "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", - "dev": true, - "license": "MIT", - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "license": "MIT", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "license": "MIT", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "license": "MIT", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-combiner": { - "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "dev": true, - "license": "MIT", - "dependencies": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/swap-case": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "license": "MIT", - "dependencies": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "node_modules/table": { - "version": "6.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.7.1.tgz", - "integrity": "sha1-7gVZK3FDgxqMlPPO5qrkwczvM+I=", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha1-EaZlJ3Ydw+mjhF6nddLTwEFOh2Q=", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=", - "dev": true, - "license": "MIT" - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", - "integrity": "sha1-Z2CjjwA6+hsv/Q/+npq70Oqz1iE=", - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true, - "license": "MIT" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "license": "MIT" - }, - "node_modules/title-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "license": "MIT", - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "license": "MIT", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "license": "MIT", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-regex-range/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha1-lUwf6XPaYznHjgawPOLkiBC2XzY=", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uglify-js": { - "version": "3.14.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha1-191qRspXIU9UotCkPK0PNduCrJk=", - "license": "BSD-2-Clause", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", - "license": "ISC", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "license": "MIT", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "license": "MIT", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "license": "MIT" - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "license": "MIT" - }, - "node_modules/upper-case-first": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "license": "MIT", - "dependencies": { - "upper-case": "^1.1.1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "license": "MIT" - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=", - "license": "MIT" - }, - "node_modules/url-parse": { - "version": "1.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/user-home": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "license": "MIT", - "bin": { - "user-home": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", - "dev": true, - "license": "MIT" - }, - "node_modules/v8flags": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dependencies": { - "user-home": "^1.1.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "license": "ISC", - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true, - "license": "ISC" - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", - "license": "MIT", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/winston": { - "version": "2.4.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/winston/-/winston-2.4.5.tgz", - "integrity": "sha1-8uQx1WFUxOp2VUX8EAO9NAyVtZo=", - "license": "MIT", - "dependencies": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "stack-trace": "0.0.x" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/winston/node_modules/async": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", - "license": "MIT" - }, - "node_modules/winston/node_modules/colors": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "license": "MIT" - }, - "node_modules/workerpool": { - "version": "6.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha1-D3zwdrYhX9fh2pA/9vIt3RiGtYE=", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "license": "ISC" - }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write/-/write-1.0.3.tgz", - "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", - "dev": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/write/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=", - "dev": true, - "license": "ISC" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "license": "ISC" - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -8872,8 +41,8 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -8883,8 +52,8 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" @@ -8892,26 +61,20 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -8920,18 +83,18 @@ } }, "@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha1-QDE5ryYrmm6Pm6BKb9zr+N5pK/E=", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", + "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", "requires": { - "core-js-pure": "^3.16.0", + "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@eslint/eslintrc": { "version": "0.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -8947,8 +110,8 @@ "dependencies": { "argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" @@ -8956,8 +119,8 @@ }, "js-yaml": { "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -8968,31 +131,31 @@ }, "@gar/promisify": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha1-MKqCXxHUOGcdWFvUTn/VZFNfwhA=" + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" }, "@hapi/address": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha1-1gxcDZMOd0Vv3N4lmOdzAuKVXh0=", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", "requires": { "@hapi/hoek": "^9.0.0" } }, "@hapi/formula": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha1-7a3gYZ7VjI5PFk8jPNpwIR54cSg=" + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" }, "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha1-85M6RONlhk9NrV25QVgQbVEegTE=" + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" }, "@hapi/joi": { "version": "17.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha1-nMjX4sIhPR5GcIxiYBhLRHxmE1A=", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", "requires": { "@hapi/address": "^4.0.1", "@hapi/formula": "^2.0.0", @@ -9003,21 +166,21 @@ }, "@hapi/pinpoint": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha1-gFtA1NvsBPwRanMIlJTgDwc96N8=" + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" }, "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha1-3ESOMyxsbjek3AL9hLqNRLmvsBI=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "requires": { "@hapi/hoek": "^9.0.0" } }, "@humanwhocodes/config-array": { "version": "0.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", @@ -9027,37 +190,37 @@ }, "@humanwhocodes/object-schema": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha1-h956+cIxgm/daKxyWPd8Qp4OX88=", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", "dev": true }, "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", "requires": { - "@nodelib/fs.stat": "2.0.5", + "@nodelib/fs.stat": "2.0.3", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" }, "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", "requires": { - "@nodelib/fs.scandir": "2.1.5", + "@nodelib/fs.scandir": "2.1.3", "fastq": "^1.6.0" } }, "@npmcli/fs": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.0.0.tgz", - "integrity": "sha1-WJYSz606bqD+r8uQHSnGP9UtsJ8=", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", + "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", "requires": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -9065,8 +228,8 @@ }, "@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -9074,18 +237,18 @@ }, "@panva/asn1.js": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@panva/asn1.js/-/asn1.js-1.0.0.tgz", - "integrity": "sha1-3VWue4Ep4CBJ8AlAi5fGHM+QMvY=" + "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" }, "@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha1-Znv8YYaufJ4LRaCJYMVRQ3F24co=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", + "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" }, "@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha1-OALd0hpQqUm2ch3dcto25n5/Gy0=", + "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" @@ -9093,8 +256,8 @@ }, "@sinonjs/fake-timers": { "version": "7.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha1-JSTq5wxJEO3M+ZsvTm78WJSv97U=", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" @@ -9102,8 +265,8 @@ }, "@sinonjs/samsam": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha1-oBF9gjJg8oLAS/9fhwS9wqxpELs=", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -9113,27 +276,27 @@ }, "@sinonjs/text-encoding": { "version": "0.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU=", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, "@szmarczak/http-timer": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha1-tKkUu2LnwnLU5Zif5EQPgSqx2Ac=", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "requires": { "defer-to-connect": "^2.0.0" } }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=" + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/cacheable-request": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha1-wyTaAZfeCpiiMSFWU2riYkKf9rk=", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", "requires": { "@types/http-cache-semantics": "*", "@types/keyv": "*", @@ -9142,14 +305,14 @@ } }, "@types/fined": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/fined/-/fined-1.1.3.tgz", - "integrity": "sha1-g/A+jwqNNnPfyvsY/ONXH2JQ4bw=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.2.tgz", + "integrity": "sha512-hzzTS+X9EqDhx4vwdch/DOZci/bfh5J6Nyz8lqvyfBg2ROx2fPafX+LpDfpVgSvQKj0EYkwTYpBO3z2etwbkOw==" }, "@types/glob": { - "version": "7.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha1-6lniHS7lxReRTLS8jkFTuZ5WZnI=", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "requires": { "@types/minimatch": "*", "@types/node": "*" @@ -9157,13 +320,13 @@ }, "@types/http-cache-semantics": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha1-Dqe2FJaQK5WJDcTDoRa2DLja6BI=" + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/inquirer": { "version": "6.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha1-uDsL8wuIuL5yRtQOUdMv6dEOCb4=", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", "requires": { "@types/through": "*", "rxjs": "^6.4.0" @@ -9171,30 +334,30 @@ }, "@types/interpret": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha1-sb+FsEIOJBS5ic4jdlitINwDcZs=", + "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", "requires": { "@types/node": "*" } }, "@types/json5": { "version": "0.0.29", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/keyv": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha1-HJquMocuwfINza7omp87qI9GXkE=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz", + "integrity": "sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg==", "requires": { "@types/node": "*" } }, "@types/liftoff": { - "version": "2.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/liftoff/-/liftoff-2.5.1.tgz", - "integrity": "sha1-LrTB+G6dXuhVceVtsAhLJq8SnO0=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha512-1jsThE//wKDK+hYM+NJqswI+K9lfR0YNMctteOxAzk/aemI0rQsVDk6Dia0zkPfBWFTh+hiDmrGQXqP1tyM+eg==", "requires": { "@types/fined": "*", "@types/interpret": "*", @@ -9202,62 +365,71 @@ } }, "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { - "version": "16.9.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-16.9.6.tgz", - "integrity": "sha1-BApk1/r55dnpQDVxJfCWMBLmbwQ=" + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, "@types/responselike": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha1-JR9P59FU0rrRJavhtCmyOv0mLik=", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", "requires": { "@types/node": "*" } }, "@types/through": { "version": "0.0.30", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/through/-/through-0.0.30.tgz", - "integrity": "sha1-4OQs536Je9aurW9upirrE1uKOJU=", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", + "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", "requires": { "@types/node": "*" } }, "@ungap/promise-all-settled": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "acorn": { "version": "7.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", - "dev": true, - "requires": {} + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true }, "agent-base": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "requires": { "debug": "4" } }, "agentkeepalive": { "version": "4.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha1-2SgCikhiyxFxjlUieHLoQqRMlFs=", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -9266,8 +438,8 @@ }, "aggregate-error": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -9275,8 +447,8 @@ }, "ajv": { "version": "6.12.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "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", @@ -9287,85 +459,57 @@ }, "ansi-align": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "ansi-regex": "^4.1.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } } } } }, "ansi-colors": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=" - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=" - }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { "color-convert": "^2.0.1" } }, "anymatch": { "version": "3.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -9374,33 +518,33 @@ }, "argparse": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "arr-diff": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-each": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-each/-/array-each-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" }, "array-includes": { "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha1-x/YZs4KtKvr1Mmzd/cCvxhr3aQo=", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -9412,23 +556,23 @@ }, "array-slice": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=" + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" }, "array-union": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=" + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, "array-unique": { "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha1-bvY4tDMSvUAbTGGZ/ex+LcnpoSM=", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -9438,59 +582,59 @@ }, "assertion-error": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "astral-regex": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, "async": { "version": "0.9.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-0.9.2.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" }, "asynckit": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "audit-ci": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-4.1.0.tgz", - "integrity": "sha1-GV0TPqzNLaJzxS3zdfi0I6TKZNQ=", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-4.1.0.tgz", + "integrity": "sha512-UNmf/2diiuqA7HmegyD1n2vIZ+TPMbXO6ud2nb1MOdnoeFuecaBq3fcUo0ZLISWQx2yxgIz76JaEEbRlRZhRpA==", "dev": true, "requires": { + "JSONStream": "^1.3.5", "cross-spawn": "^7.0.3", "event-stream": "4.0.1", - "JSONStream": "^1.3.5", "readline-transform": "1.0.0", "semver": "^7.0.0", "yargs": "^15.0.0" } }, "balanced-match": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -9503,24 +647,50 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, "binary-extensions": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "boxen": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha1-ZXUovdP1mncrgnm4MfJ+wsdEZks=", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", + "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -9530,12 +700,47 @@ "type-fest": "^0.20.2", "widest-line": "^3.1.0", "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9543,32 +748,32 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { "fill-range": "^7.0.1" } }, "browser-stdout": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "buffer-crc32": { "version": "0.2.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "builtins": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "cacache": { "version": "15.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha1-3IU4D7L1Vv492kxxm/oOyHWn8es=", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "requires": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -9592,8 +797,8 @@ }, "cache-base": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -9608,13 +813,13 @@ }, "cacheable-lookup": { "version": "5.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha1-WmuGWyxENXvj1evCpGewMnGacAU=" + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" }, "cacheable-request": { "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha1-6g0LiJNkolhUdXMByhKy2nf5HSc=", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -9627,8 +832,8 @@ "dependencies": { "get-stream": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { "pump": "^3.0.0" } @@ -9637,8 +842,8 @@ }, "call-bind": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -9647,13 +852,13 @@ }, "callsites": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camel-case": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camel-case/-/camel-case-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { "no-case": "^2.2.0", @@ -9661,14 +866,15 @@ } }, "camelcase": { - "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true }, "chai": { "version": "4.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.3.4.tgz", - "integrity": "sha1-tV5lWzHh6scJm+TAjCGWT84ubEk=", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -9681,8 +887,8 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { "check-error": "^1.0.2" @@ -9690,8 +896,8 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9699,8 +905,8 @@ }, "change-case": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha1-DmEbftyZUt8uhROye0LecmR90X4=", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", "requires": { "camel-case": "^3.0.0", "constant-case": "^2.0.0", @@ -9724,54 +930,25 @@ }, "chardet": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=" + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "check-error": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "check-more-types": { "version": "2.24.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-more-types/-/check-more-types-2.24.0.tgz", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", "dev": true }, - "check-node-version": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-node-version/-/check-node-version-4.1.0.tgz", - "integrity": "sha1-Ev9Fv+uN1ZFwCgq4SMIbLYzu65Q=", - "requires": { - "chalk": "^3.0.0", - "map-values": "^1.0.1", - "minimist": "^1.2.0", - "object-filter": "^1.0.2", - "run-parallel": "^1.1.4", - "semver": "^6.3.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" - } - } - }, "chokidar": { "version": "3.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "requires": { "anymatch": "~3.1.2", @@ -9786,13 +963,13 @@ }, "chownr": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "class-utils": { "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -9802,107 +979,59 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" } } }, "clean-stack": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-boxes": { "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=" + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { - "version": "2.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha1-NsfcmPtqmna9YjjsP3fiQlYn6Tk=" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" }, "cli-table3": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha1-t7G8ZcqOe1zvkSThPcKyHizk+u4=", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", "requires": { "colors": "^1.1.2", "object-assign": "^4.1.0", "string-width": "^4.2.0" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true + } } }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=" - }, "cliui": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", @@ -9910,27 +1039,31 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-regex": "^5.0.0" } } } }, "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-response": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-response/-/clone-response-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { "mimic-response": "^1.0.0" @@ -9938,7 +1071,7 @@ }, "collection-visit": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "^1.0.0", @@ -9947,54 +1080,54 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colors": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", - "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=" + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "combined-stream": { "version": "1.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } }, "commander": { "version": "8.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-8.1.0.tgz", - "integrity": "sha1-2zbj5m7fJP9ZHWOYYsarLFJmQ2I=" + "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", + "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==" }, "component-emitter": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "concat-map": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "confusing-browser-globals": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha1-MNHn89G4grJexJM9HRraw1PSClk=", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", "dev": true }, "constant-case": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/constant-case/-/constant-case-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", "requires": { "snake-case": "^2.1.0", @@ -10003,26 +1136,26 @@ }, "copy-descriptor": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js-pure": { - "version": "3.18.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-js-pure/-/core-js-pure-3.18.0.tgz", - "integrity": "sha1-5RhzR7rmZEjJ4tZ8AcNMTfMmHcU=" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.0.tgz", + "integrity": "sha512-fRjhg3NeouotRoIV0L1FdchA6CK7ZD+lyINyMoz19SyV+ROpC4noS1xItWHFtwZdlqfMfVPJEyEGdfri2bD1pA==" }, "cross-fetch": { "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha1-lyPzo6JHv4uJA586OAqSROj6Lzk=", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", "requires": { "node-fetch": "2.6.1" } }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -10032,61 +1165,61 @@ }, "cycle": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cycle/-/cycle-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" }, "debug": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", - "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { "ms": "2.1.2" } }, "decamelize": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha1-yjh2Et234QS9FthaqwDV7PCcZvw=", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { "mimic-response": "^3.1.0" }, "dependencies": { "mimic-response": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=" + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" } } }, "deep-eql": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { "type-detect": "^4.0.0" } }, "deep-is": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "defaults": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -10094,13 +1227,13 @@ }, "defer-to-connect": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha1-gBa9tBQ+RjK3ejRJxiNid95SBYc=" + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-properties": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { "object-keys": "^1.0.12" @@ -10108,17 +1241,45 @@ }, "define-property": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "del": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/del/-/del-5.1.0.tgz", - "integrity": "sha1-2Uh8lONnQQ5u/ykl7ljAyEp1s6c=", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", "requires": { "globby": "^10.0.1", "graceful-fs": "^4.2.2", @@ -10132,8 +1293,8 @@ "dependencies": { "p-map": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { "aggregate-error": "^3.0.0" } @@ -10142,7 +1303,7 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { @@ -10152,27 +1313,34 @@ }, "detect-file": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-file/-/detect-file-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, "diff": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-5.0.0.tgz", - "integrity": "sha1-ftatdthZ0DB4fsNYVfWx2vMdhSs=", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, "dir-glob": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "requires": { "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + } } }, "doctrine": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" @@ -10180,7 +1348,7 @@ }, "dot-case": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dot-case/-/dot-case-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", "requires": { "no-case": "^2.2.0" @@ -10188,19 +1356,19 @@ }, "duplexer": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, "emoji-regex": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "encoding": { "version": "0.1.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "optional": true, "requires": { "iconv-lite": "^0.6.2" @@ -10208,16 +1376,16 @@ }, "end-of-stream": { "version": "1.4.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" } }, "enquirer": { "version": "2.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { "ansi-colors": "^4.1.1" @@ -10225,36 +1393,35 @@ }, "err-code": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=" + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "error-ex": { "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.18.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.18.6.tgz", - "integrity": "sha1-LETj6npiVQORZNJlWXd6bZeMtFY=", + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-string": "^1.0.7", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -10265,8 +1432,8 @@ }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -10276,20 +1443,19 @@ }, "escalade": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { "version": "7.32.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -10334,31 +1500,226 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "ansi-regex": "^5.0.0" + } + }, + "table": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + } + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" } } } }, "eslint-config-airbnb-base": { "version": "14.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", - "integrity": "sha1-ii6zhFXcWjElUBk7MZza7vBCzR4=", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", + "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", "dev": true, "requires": { "confusing-browser-globals": "^1.0.10", @@ -10368,8 +1729,8 @@ }, "eslint-import-resolver-node": { "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { "debug": "^3.2.7", @@ -10378,19 +1739,38 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } + }, + "is-core-module": { + "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" + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } } } }, "eslint-module-utils": { "version": "2.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha1-lOVUDdFf4VIuj/o+yNs7f6fnpTQ=", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", + "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", "dev": true, "requires": { "debug": "^3.2.7", @@ -10399,8 +1779,8 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -10410,8 +1790,8 @@ }, "eslint-plugin-import": { "version": "2.24.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha1-LIzS40HziFkY7ifRhHmRCt57tNo=", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", + "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", "dev": true, "requires": { "array-includes": "^3.1.3", @@ -10433,8 +1813,8 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -10442,25 +1822,93 @@ }, "doctrine": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { "esutils": "^2.0.2" } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "is-core-module": { + "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" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, "ms": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } } } }, "eslint-scope": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -10468,57 +1916,41 @@ } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "dev": true - } } }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { "version": "7.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", - "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "dev": true - } } }, "esprima": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { - "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -10526,16 +1958,16 @@ "dependencies": { "estraverse": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "esrecurse": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { "estraverse": "^5.2.0" @@ -10543,28 +1975,28 @@ "dependencies": { "estraverse": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "estraverse": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "event-stream": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "dev": true, "requires": { "duplexer": "^0.1.1", @@ -10578,7 +2010,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "^2.3.3", @@ -10592,15 +2024,15 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -10608,78 +2040,22 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - }, "ms": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "expand-tilde": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-tilde/-/expand-tilde-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "requires": { "homedir-polyfill": "^1.0.1" @@ -10687,22 +2063,32 @@ }, "extend": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "external-editor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -10711,8 +2097,8 @@ "dependencies": { "iconv-lite": { "version": "0.4.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -10721,8 +2107,8 @@ }, "extglob": { "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -10736,7 +2122,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -10744,135 +2130,143 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, "extract-files": { "version": "9.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha1-indE8kN/gfXtMlDtnxVQ3pAv5Uo=" + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, "eyes": { "version": "0.1.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eyes/-/eyes-0.1.8.tgz", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", + "glob-parent": "^5.1.0", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" }, "dependencies": { "micromatch": { - "version": "4.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "requires": { "braces": "^3.0.1", - "picomatch": "^2.2.3" + "picomatch": "^2.0.5" } } } }, "fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", "requires": { "reusify": "^1.0.4" } }, "fd-slicer": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "requires": { "pend": "~1.2.0" } }, - "figures": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", - "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "^3.0.4" + "flat-cache": "^2.0.1" } }, "fill-range": { "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { "to-regex-range": "^5.0.1" } }, "find-package-json": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "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": { - "locate-path": "^2.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "findup-sync": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/findup-sync/-/findup-sync-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "requires": { "detect-file": "^1.0.0", @@ -10883,7 +2277,7 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { "is-extglob": "^2.1.0" @@ -10893,8 +2287,8 @@ }, "fined": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fined/-/fined-1.2.0.tgz", - "integrity": "sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "requires": { "expand-tilde": "^2.0.2", "is-plain-object": "^2.0.3", @@ -10905,39 +2299,51 @@ }, "flagged-respawn": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E=" + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" }, "flat": { "version": "5.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-5.0.2.tgz", - "integrity": "sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, "flat-cache": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "flatted": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha1-ZL/tXLaP48p4s+shStl7Y77c5WE=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "for-in": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-own/-/for-own-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "requires": { "for-in": "^1.0.1" @@ -10945,8 +2351,8 @@ }, "form-data": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -10955,7 +2361,7 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "^0.2.2" @@ -10963,57 +2369,57 @@ }, "from": { "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { "minipass": "^3.0.0" } }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-func-name": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-intrinsic": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -11023,28 +2429,18 @@ }, "get-stream": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=" - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "get-value": { "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "glob": { "version": "7.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.1.7.tgz", - "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=", + "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", @@ -11056,24 +2452,31 @@ }, "glob-parent": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } }, "global-dirs": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha1-cKdv6E6jFas3sfVXbL3n1I73JoY=", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "requires": { "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + } } }, "global-modules": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "requires": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -11082,7 +2485,7 @@ }, "global-prefix": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-prefix/-/global-prefix-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "requires": { "expand-tilde": "^2.0.2", @@ -11092,15 +2495,10 @@ "which": "^1.2.14" }, "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", - "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=" - }, "which": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { "isexe": "^2.0.0" } @@ -11109,17 +2507,25 @@ }, "globals": { "version": "13.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.11.0.tgz", - "integrity": "sha1-QO9njaEX/nvS4o8fqySVG9AlW+c=", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" + }, + "dependencies": { + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } } }, "globby": { "version": "10.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-10.0.2.tgz", - "integrity": "sha1-J3WT50WsqkZGw6tBEonsR6A5JUM=", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "requires": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", @@ -11133,15 +2539,15 @@ "dependencies": { "ignore": { "version": "5.1.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=" + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" } } }, "got": { "version": "11.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.2.tgz", - "integrity": "sha1-ers5Weoowx81dvFXbB7/ziPzNZk=", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -11157,19 +2563,19 @@ } }, "graceful-fs": { - "version": "4.2.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=" + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "graphql": { "version": "15.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.5.2.tgz", - "integrity": "sha1-76GfjyvxpI631chb8X4US6i7BIA=" + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.2.tgz", + "integrity": "sha512-dZjLPWNQqYv0dqV2RNbiFed0LtSp6yd4jchsDGnuhDKa9OQHJYCfovaOEvY91w9gqbYO7Se9LKDTl3xxYva/3w==" }, "graphql-request": { "version": "3.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.5.0.tgz", - "integrity": "sha1-fmlXThWHX7P2YKS0vjmW7NC7yLc=", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.5.0.tgz", + "integrity": "sha512-Io89QpfU4rqiMbqM/KwMBzKaDLOppi8FU8sEccCE4JqCgz95W9Q8bvxQ4NfPALLSMvg9nafgg8AkYRmgKSlukA==", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -11178,8 +2584,8 @@ "dependencies": { "form-data": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -11190,14 +2596,14 @@ }, "growl": { "version": "1.10.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", - "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "handlebars": { "version": "4.7.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha1-nOM0FqrQLb1sj6+oJA1dmABJRaE=", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "requires": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -11208,15 +2614,15 @@ }, "has": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { "function-bind": "^1.1.1" } }, "has-ansi": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-ansi/-/has-ansi-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "^2.0.0" @@ -11224,32 +2630,32 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, "has-bigints": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-symbols": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, "has-tostringtag": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "requires": { "has-symbols": "^1.0.2" @@ -11257,7 +2663,7 @@ }, "has-value": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "^2.0.6", @@ -11267,16 +2673,39 @@ }, "has-values": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "kind-of": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "^1.1.5" @@ -11286,13 +2715,13 @@ }, "he": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "header-case": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/header-case/-/header-case-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", "requires": { "no-case": "^2.2.0", @@ -11301,29 +2730,29 @@ }, "homedir-polyfill": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "requires": { "parse-passwd": "^1.0.0" } }, "hosted-git-info": { "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha1-XkJVB+7eT+qEa3Ji8IOEVsQgmWE=", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "requires": { "lru-cache": "^6.0.0" } }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-proxy-agent": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "requires": { "@tootallnate/once": "1", "agent-base": "6", @@ -11332,8 +2761,8 @@ }, "http2-wrapper": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha1-uPVeDB8l1OvQizsMLAeflZCACz0=", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "requires": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -11341,8 +2770,8 @@ }, "https-proxy-agent": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { "agent-base": "6", "debug": "4" @@ -11350,7 +2779,7 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "^2.0.0" @@ -11358,8 +2787,8 @@ }, "iconv-lite": { "version": "0.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -11367,14 +2796,14 @@ }, "ignore": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -11383,22 +2812,22 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "infer-owner": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "inflight": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -11407,38 +2836,18 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", - "integrity": "sha1-5f1Vbs3VcmvpePoQAYYurLCpS8U=" - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - } + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "internal-slot": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { "get-intrinsic": "^1.1.0", @@ -11448,41 +2857,56 @@ }, "interpret": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=" + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "ip": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "is-absolute": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "requires": { "is-relative": "^1.0.0", "is-windows": "^1.0.1" } }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-arrayish/-/is-arrayish-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-bigint": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "requires": { "has-bigints": "^1.0.1" @@ -11490,8 +2914,8 @@ }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" @@ -11499,90 +2923,104 @@ }, "is-boolean-object": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" - }, "is-callable": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha1-11U7JSb+Wbkro+QMjfdX7Ipwnhk=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-date-object": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } } }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha1-mg/UB5ScMPhutpWe8beZTtC3tSA=", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "requires": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -11590,12 +3028,12 @@ }, "is-lambda": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, "is-lower-case": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lower-case/-/is-lower-case-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", "requires": { "lower-case": "^1.1.0" @@ -11603,32 +3041,19 @@ }, "is-negative-zero": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "dev": true }, "is-number": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -11636,32 +3061,32 @@ }, "is-path-cwd": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=" + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" }, "is-path-inside": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, "is-plain-obj": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" } }, "is-regex": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -11670,16 +3095,16 @@ }, "is-relative": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "requires": { "is-unc-path": "^1.0.0" } }, "is-string": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -11687,8 +3112,8 @@ }, "is-symbol": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { "has-symbols": "^1.0.2" @@ -11696,21 +3121,21 @@ }, "is-unc-path": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "requires": { "unc-path-regex": "^0.1.2" } }, "is-unicode-supported": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, "is-upper-case": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-upper-case/-/is-upper-case-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", "requires": { "upper-case": "^1.1.0" @@ -11718,95 +3143,94 @@ }, "is-windows": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "isarray": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha1-XTS5SGW9SUZjPsx4oCb8dsWxH88=" + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==" }, "isexe": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isstream": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "jmespath": { "version": "0.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "jose": { "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose/-/jose-2.0.5.tgz", - "integrity": "sha1-KXRqGNn/99z51dKm9iywx80nq9M=", + "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.5.tgz", + "integrity": "sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA==", "requires": { "@panva/asn1.js": "^1.0.0" } }, "js-tokens": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { "argparse": "^2.0.1" } }, "json-buffer": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=" + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json5": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -11814,57 +3238,47 @@ }, "jsonparse": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "just-extend": { "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha1-715Ymvth5dZrJOynSUCaiTmox0Q=", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, "keyv": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha1-TzqpjeJUgDyvzSiWc0EI2qNeQlQ=", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", "requires": { "json-buffer": "3.0.1" } }, "kind-of": { "version": "6.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, "lazy-ass": { "version": "1.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-ass/-/lazy-ass-1.6.0.tgz", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true }, "levn": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", - "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "liftoff": { "version": "2.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/liftoff/-/liftoff-2.5.0.tgz", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", "requires": { "extend": "^3.0.0", @@ -11879,7 +3293,7 @@ }, "load-json-file": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/load-json-file/-/load-json-file-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { @@ -11890,53 +3304,52 @@ } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { "version": "4.17.21", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.clonedeep": { "version": "4.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, "lodash.get": { "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lodash.set": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.set/-/lodash.set-4.3.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, "lodash.truncate": { "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "log-symbols": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha1-P727lbRoOsn8eFER55LlWNSr1QM=", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -11945,12 +3358,12 @@ }, "lower-case": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case/-/lower-case-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" }, "lower-case-first": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case-first/-/lower-case-first-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", "requires": { "lower-case": "^1.1.2" @@ -11958,21 +3371,21 @@ }, "lowercase-keys": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=" + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { "yallist": "^4.0.0" } }, "make-fetch-happen": { "version": "9.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha1-UwhaCeeXFDPmdl95cb9j9OBcuWg=", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -11994,31 +3407,26 @@ }, "make-iterator": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", "requires": { "kind-of": "^6.0.2" } }, "map-cache": { "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-stream": { "version": "0.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, - "map-values": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-values/-/map-values-1.0.1.tgz", - "integrity": "sha1-douOecAJvytk/ugG4ip7HEGQyZA=" - }, "map-visit": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "^1.0.0" @@ -12026,13 +3434,13 @@ }, "merge2": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=" + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { "version": "3.1.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -12051,8 +3459,8 @@ "dependencies": { "braces": { "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -12068,7 +3476,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -12078,7 +3486,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "^2.0.1", @@ -12089,7 +3497,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -12097,14 +3505,32 @@ } } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "^3.0.0", @@ -12115,60 +3541,60 @@ }, "mime-db": { "version": "1.49.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha1-89/eYMmenPO8lwHWh3ePU3ABy+0=" + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" }, "mime-types": { "version": "2.1.32", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha1-HQDonn3n/gIAjbYQAdngKFJnD9U=", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "requires": { "mime-db": "1.49.0" } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { - "version": "3.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha1-cfYlGwozpJwBs8+X/3ftoDDf9zI=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "requires": { "yallist": "^4.0.0" } }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { "minipass": "^3.0.0" } }, "minipass-fetch": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha1-114AkdqsGw/9fp1BYp+v99DB8bY=", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -12178,16 +3604,16 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { "minipass": "^3.0.0" } }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" @@ -12195,24 +3621,24 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "requires": { "minipass": "^3.0.0" } }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "requires": { "minipass": "^3.0.0" } }, "minizlib": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -12220,22 +3646,32 @@ }, "mixin-deep": { "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mocha": { "version": "9.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha1-M98uucYmJDRjBRDF9Cg7Nu/am2E=", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -12265,10 +3701,16 @@ "yargs-unparser": "2.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "cliui": { "version": "7.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", @@ -12278,8 +3720,8 @@ }, "debug": { "version": "4.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -12287,16 +3729,22 @@ "dependencies": { "ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, "find-up": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { "locate-path": "^6.0.0", @@ -12305,8 +3753,8 @@ }, "locate-path": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { "p-locate": "^5.0.0" @@ -12314,14 +3762,14 @@ }, "ms": { "version": "2.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "p-limit": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { "yocto-queue": "^0.1.0" @@ -12329,38 +3777,52 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { "p-limit": "^3.0.2" } }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } }, "supports-color": { "version": "8.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "y18n": { "version": "5.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yargs": { "version": "16.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { "cliui": "^7.0.2", @@ -12371,13 +3833,19 @@ "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "mocked-env": { "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha1-JE6r3B7ZKo9vVaL67cQIFZ6xk7M=", + "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", + "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", "dev": true, "requires": { "check-more-types": "2.24.0", @@ -12388,29 +3856,29 @@ }, "moment": { "version": "2.29.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.1.tgz", - "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, "ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "0.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=" + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nanoid": { "version": "3.1.23", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", "dev": true }, "nanomatch": { "version": "1.2.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -12427,30 +3895,30 @@ }, "natural-compare": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "negotiator": { "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "neo-async": { "version": "2.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "nice-try": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "nise": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.0.tgz", - "integrity": "sha1-cT7z7ROCUtrvIOwDWrYreii+ZFw=", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0", @@ -12462,16 +3930,16 @@ }, "no-case": { "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "requires": { "lower-case": "^1.1.1" } }, "nock": { "version": "13.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.1.3.tgz", - "integrity": "sha1-EQsAWWVlSo/7eY6HutGLRnv/Ffk=", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.3.tgz", + "integrity": "sha512-YKj0rKQWMGiiIO+Y65Ut8OEgYM3PplLU2+GAhnPmqZdBd6z5IskgdBqWmjzA6lH3RF0S2a3wiAlrMOF5Iv2Jeg==", "dev": true, "requires": { "debug": "^4.1.0", @@ -12482,13 +3950,13 @@ }, "node-fetch": { "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=" + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-plop": { "version": "0.26.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-plop/-/node-plop-0.26.2.tgz", - "integrity": "sha1-wlI1ltq04oNg5hW3aLEbTWDVsbk=", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.2.tgz", + "integrity": "sha512-q444beWkMvZwAiYC3BRGJUHgRlpOItQHy+xdy6egXg8KjxDY/Ro309spQTNvH01qK9A8XF6pc0xLKbrHDpxW7w==", "requires": { "@babel/runtime-corejs3": "^7.9.2", "@types/inquirer": "^6.5.0", @@ -12503,20 +3971,110 @@ "resolve": "^1.12.0" }, "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==", + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } + }, "mkdirp": { "version": "0.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { "minimist": "^1.2.5" } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" } } }, "normalize-package-data": { "version": "2.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -12527,33 +4085,33 @@ "dependencies": { "hosted-git-info": { "version": "2.8.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "semver": { "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "normalize-path": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "normalize-url": { "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=" + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, "npm-package-arg": { "version": "8.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha1-M2my1f6P3GdLqn8XhlFN3BVGbkQ=", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "requires": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", @@ -12562,8 +4120,8 @@ }, "npm-registry-fetch": { "version": "11.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha1-aMG7gQxGVCdg1ipqll+FpwLUOnY=", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "requires": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", @@ -12575,12 +4133,12 @@ }, "object-assign": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "^0.1.0", @@ -12590,48 +4148,20 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - } - } + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -12639,26 +4169,21 @@ } } }, - "object-filter": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-filter/-/object-filter-1.0.2.tgz", - "integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g=" - }, "object-inspect": { "version": "1.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha1-nc6xRs7dQUig2eUauI00z1CZIrE=", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", "dev": true }, "object-keys": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object-visit": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" @@ -12666,8 +4191,8 @@ }, "object.assign": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -12678,7 +4203,7 @@ }, "object.defaults": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.defaults/-/object.defaults-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", "requires": { "array-each": "^1.0.1", @@ -12689,8 +4214,8 @@ }, "object.entries": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha1-Q8z5pQvF/VtknUWrGlefJOCIyv0=", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -12700,7 +4225,7 @@ }, "object.map": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.map/-/object.map-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", "requires": { "for-own": "^1.0.0", @@ -12709,7 +4234,7 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" @@ -12717,8 +4242,8 @@ }, "object.values": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha1-DSc3YoM+gWtpOmN9MAc+cFFTWzA=", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -12728,7 +4253,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -12736,30 +4261,30 @@ }, "onetime": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { "mimic-fn": "^2.1.0" } }, "optionator": { - "version": "0.9.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" } }, "ora": { "version": "3.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-3.4.0.tgz", - "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", "requires": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", @@ -12771,100 +4296,65 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "^1.9.0" } }, "chalk": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, "color-convert": { "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "log-symbols": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { "chalk": "^2.0.1" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { "ansi-regex": "^4.1.0" } }, "supports-color": { "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } @@ -12873,49 +4363,49 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha1-qrf71BZYL6MqPbSYWcEiSHxe0s8=" + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-limit": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "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": { - "p-limit": "^1.1.0" + "p-limit": "^2.2.0" } }, "p-map": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { "aggregate-error": "^3.0.0" } }, "p-try": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "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 }, "param-case": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/param-case/-/param-case-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { "no-case": "^2.2.0" @@ -12923,8 +4413,8 @@ }, "parent-module": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" @@ -12932,7 +4422,7 @@ }, "parse-filepath": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-filepath/-/parse-filepath-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", "requires": { "is-absolute": "^1.0.0", @@ -12942,7 +4432,7 @@ }, "parse-json": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-json/-/parse-json-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { @@ -12952,12 +4442,12 @@ }, "parse-passwd": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-passwd/-/parse-passwd-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "pascal-case": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascal-case/-/pascal-case-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", "requires": { "camel-case": "^3.0.0", @@ -12966,42 +4456,42 @@ }, "pascalcase": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-case": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-case/-/path-case-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", "requires": { "no-case": "^2.2.0" } }, "path-exists": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "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 }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=" + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-root": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root/-/path-root-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "requires": { "path-root-regex": "^0.1.0" @@ -13009,32 +4499,44 @@ }, "path-root-regex": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root-regex/-/path-root-regex-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, "path-to-regexp": { "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "requires": { "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } } }, "path-type": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } }, "pathval": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha1-hTTnenfOesWiUS6iHg/bj89sPY0=", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "pause-stream": { "version": "0.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { @@ -13043,42 +4545,144 @@ }, "pend": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pend/-/pend-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "picomatch": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pify/-/pify-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pkg-dir": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-dir/-/pkg-dir-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } } }, "pkg-up": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-up/-/pkg-up-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "dev": true, "requires": { "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } } }, "plop": { "version": "2.7.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/plop/-/plop-2.7.4.tgz", - "integrity": "sha1-g1KArvNUEQIGO3WPURbM6Jnhxys=", + "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.4.tgz", + "integrity": "sha512-SaqN3mwug/Ur2RE/ryo05oLTLy+8qZGwosNt9JnrFWca+dLCsPJR1j2ZXwjrccmNu6LA7eB56lRyk/G0fKf9HA==", "requires": { "@types/liftoff": "^2.5.0", "chalk": "^1.1.3", @@ -13092,17 +4696,17 @@ "dependencies": { "ansi-regex": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "chalk": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "^2.2.1", @@ -13112,14 +4716,9 @@ "supports-color": "^2.0.0" } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -13127,37 +4726,37 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "progress": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "requires": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -13165,8 +4764,8 @@ }, "prompt": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompt/-/prompt-1.2.0.tgz", - "integrity": "sha1-XY8dkBF2a6wHq95RDb9DONh7TwI=", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.0.tgz", + "integrity": "sha512-iGerYRpRUg5ZyC+FJ/25G5PUKuWAGRjW1uOlhX7Pi3O5YygdK6R+KEaBjRbHSkU5vfS5PZCltSPZdDtUYwRCZA==", "requires": { "async": "~0.9.0", "colors": "^1.1.2", @@ -13177,14 +4776,14 @@ }, "propagate": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha1-QM3tqxgIXHkjNOZPCsFyVtOPmkU=", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -13192,35 +4791,30 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "querystringify": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=" + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "quick-lru": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=" + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, "ramda": { "version": "0.27.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha1-Zvwt8++HOHT/wtpqqJhGWKus9ck=", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", "dev": true }, "randombytes": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" @@ -13228,7 +4822,7 @@ }, "read": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read/-/read-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { "mute-stream": "~0.0.4" @@ -13236,40 +4830,80 @@ }, "read-pkg": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg/-/read-pkg-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - } } }, "read-pkg-up": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } } }, "readdirp": { "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -13277,88 +4911,88 @@ }, "readline-transform": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha1-MVf5dCisrsDwWlwf8sMSD05tkEs=", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", "dev": true }, "rechoir": { "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { "resolve": "^1.1.6" } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=" + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" }, "regex-not": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, "regexpp": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, "repeat-element": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" }, "repeat-string": { "version": "1.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "require-directory": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-from-string": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "requires-port": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.20.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "requires": { - "is-core-module": "^2.2.0", + "is-core-module": "^2.1.0", "path-parse": "^1.0.6" } }, "resolve-alpn": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha1-t629rDVGqq7CC0Xn2CZZJwcnJvk=" + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, "resolve-dir": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-dir/-/resolve-dir-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "requires": { "expand-tilde": "^2.0.0", @@ -13367,71 +5001,109 @@ }, "resolve-from": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "resolve-url": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "responselike": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha1-JjkbzDF091D5p56sxAoSpcQtdyM=", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { "lowercase-keys": "^2.0.0" } }, "restore-cursor": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^5.1.0", + "onetime": "^2.0.0", "signal-exit": "^3.0.2" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + } } }, "ret": { "version": "0.1.15", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "retry": { "version": "0.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, "reusify": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=" + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "revalidator": { "version": "0.1.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/revalidator/-/revalidator-0.1.8.tgz", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" }, "rewire": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha1-xOZVggaGN1j2I02PETIXk62i2/8=", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", "dev": true, "requires": { "eslint": "^6.8.0" }, "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "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==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -13439,23 +5111,17 @@ }, "argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=", - "dev": true - }, "chalk": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -13463,10 +5129,25 @@ "supports-color": "^5.3.0" } }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, "color-convert": { "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" @@ -13474,14 +5155,14 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "cross-spawn": { "version": "6.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "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", @@ -13493,28 +5174,16 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, "eslint": { "version": "6.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -13554,27 +5223,49 @@ "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "dev": true - }, "espree": { "version": "6.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-6.2.1.tgz", - "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { "acorn": "^7.1.1", @@ -13582,36 +5273,19 @@ "eslint-visitor-keys": "^1.1.0" } }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "escape-string-regexp": "^1.0.5" } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", - "dev": true - }, "globals": { "version": "12.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-12.4.0.tgz", - "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { "type-fest": "^0.8.1" @@ -13619,95 +5293,131 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "mkdirp": { "version": "0.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "glob": "^7.1.3" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, "semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "shebang-command": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { @@ -13716,81 +5426,29 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, - "table": { - "version": "5.4.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-5.4.6.tgz", - "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - } - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", - "dev": true - }, "which": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -13800,42 +5458,39 @@ }, "rimraf": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } }, "run-async": { "version": "2.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=" + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, "run-parallel": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", - "requires": { - "queue-microtask": "^1.2.2" - } + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" }, "rxjs": { - "version": "6.6.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "requires": { "tslib": "^1.9.0" } }, "safe-buffer": { "version": "5.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-regex": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "~0.1.10" @@ -13843,20 +5498,20 @@ }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { "version": "7.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" } }, "sentence-case": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sentence-case/-/sentence-case-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", "requires": { "no-case": "^2.2.0", @@ -13865,8 +5520,8 @@ }, "serialize-javascript": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha1-765diPRdeSQUHai1w6en5mP+/rg=", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -13874,14 +5529,14 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -13891,23 +5546,18 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, "shebang-command": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" @@ -13915,14 +5565,14 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "side-channel": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -13931,14 +5581,14 @@ } }, "signal-exit": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.4.tgz", - "integrity": "sha1-NmpGhNF1ucqyCB42gf2jdHtsUdc=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "sinon": { "version": "11.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha1-nniFDHRyQdXFnRYU2PnL6IQOhnQ=", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", "dev": true, "requires": { "@sinonjs/commons": "^1.8.3", @@ -13951,28 +5601,54 @@ }, "slash": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-3.0.0.tgz", - "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=" + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "slice-ansi": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } } }, "smart-buffer": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=" + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "snake-case": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snake-case/-/snake-case-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", "requires": { "no-case": "^2.2.0" @@ -13980,8 +5656,8 @@ }, "snapdragon": { "version": "0.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -13995,15 +5671,15 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -14011,84 +5687,28 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - }, "ms": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "source-map": { "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -14097,25 +5717,56 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { "kind-of": "^3.2.0" }, "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -14125,17 +5776,17 @@ }, "socks": { "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.1.tgz", - "integrity": "sha1-mJ5lNKB88zfesbHJSqpEKWUg0w4=", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", "requires": { "ip": "^1.1.5", "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { - "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz", - "integrity": "sha1-hpzy170Q/qlsetMRHoFyaFXihcM=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz", + "integrity": "sha512-FIgZbQWlnjVEQvMkylz64/rUggGtrKstPnx8OZyYFG0tAFR8CSBtpXxSwbFLHyeXFn/cunFL7MpuSOvDSOPo9g==", "requires": { "agent-base": "^6.0.2", "debug": "^4.3.1", @@ -14144,13 +5795,13 @@ }, "source-map": { "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-resolve": { "version": "0.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -14160,14 +5811,14 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -14176,14 +5827,14 @@ }, "spdx-exceptions": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -14192,14 +5843,14 @@ }, "spdx-license-ids": { "version": "3.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha1-DZvszN5wA9bGWNSH3UijLwvzAUs=", + "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": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", - "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { "through": "2" @@ -14207,34 +5858,34 @@ }, "split-string": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "ssri": { "version": "8.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "requires": { "minipass": "^3.1.1" } }, "stack-trace": { "version": "0.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stack-trace/-/stack-trace-0.0.10.tgz", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, "static-extend": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "^0.2.5", @@ -14243,68 +5894,17 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" } } }, "stream-combiner": { "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "dev": true, "requires": { @@ -14313,19 +5913,44 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "string.prototype.trimend": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -14334,45 +5959,37 @@ }, "string.prototype.trimstart": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "requires": { - "ansi-regex": "^5.0.0" - } - }, "strip-bom": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-json-comments": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { "has-flag": "^4.0.0" } }, "swap-case": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/swap-case/-/swap-case-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", "requires": { "lower-case": "^1.1.1", @@ -14380,43 +5997,51 @@ } }, "table": { - "version": "6.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.7.1.tgz", - "integrity": "sha1-7gVZK3FDgxqMlPPO5qrkwczvM+I=", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "8.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha1-EaZlJ3Ydw+mjhF6nddLTwEFOh2Q=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=", - "dev": true } } }, "tar": { "version": "6.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", - "integrity": "sha1-Z2CjjwA6+hsv/Q/+npq70Oqz1iE=", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -14428,18 +6053,18 @@ }, "text-table": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "through": { "version": "2.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "title-case": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/title-case/-/title-case-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", "requires": { "no-case": "^2.2.0", @@ -14448,23 +6073,28 @@ }, "tmp": { "version": "0.0.33", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { "os-tmpdir": "~1.0.2" } }, "to-object-path": { "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "^3.0.2" }, "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "kind-of": { "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -14474,8 +6104,8 @@ }, "to-regex": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -14485,23 +6115,16 @@ }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "requires": { "is-number": "^7.0.0" - }, - "dependencies": { - "is-number": { - "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=" - } } }, "tsconfig-paths": { "version": "3.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha1-lUwf6XPaYznHjgawPOLkiBC2XzY=", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -14512,39 +6135,40 @@ }, "tslib": { "version": "1.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "type-check": { - "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "^1.2.1" + "prelude-ls": "~1.1.2" } }, "type-detect": { "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "type-fest": { - "version": "0.20.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true }, "uglify-js": { - "version": "3.14.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha1-191qRspXIU9UotCkPK0PNduCrJk=", + "version": "3.13.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz", + "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", "optional": true }, "unbox-primitive": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -14555,46 +6179,39 @@ }, "unc-path-regex": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, "union-value": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } } }, "unique-filename": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { "imurmurhash": "^0.1.4" } }, "unset-value": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "^0.3.1", @@ -14603,7 +6220,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "^2.0.3", @@ -14613,7 +6230,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" @@ -14623,33 +6240,28 @@ }, "has-values": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, "upper-case": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case/-/upper-case-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" }, "upper-case-first": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case-first/-/upper-case-first-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", "requires": { "upper-case": "^1.1.1" } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -14657,18 +6269,18 @@ }, "urix": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "url-join": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=" + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { "version": "1.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -14676,23 +6288,23 @@ }, "use": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, "user-home": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/user-home/-/user-home-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, "v8flags": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8flags/-/v8flags-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { "user-home": "^1.1.1" @@ -14700,8 +6312,8 @@ }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -14710,7 +6322,7 @@ }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "^1.0.3" @@ -14718,7 +6330,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -14726,8 +6338,8 @@ }, "which": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -14735,8 +6347,8 @@ }, "which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "requires": { "is-bigint": "^1.0.1", @@ -14748,14 +6360,14 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wide-align": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { "string-width": "^1.0.2 || 2" @@ -14763,20 +6375,14 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, "string-width": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -14785,7 +6391,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { @@ -14796,16 +6402,16 @@ }, "widest-line": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { "string-width": "^4.0.0" } }, "winston": { "version": "2.4.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/winston/-/winston-2.4.5.tgz", - "integrity": "sha1-8uQx1WFUxOp2VUX8EAO9NAyVtZo=", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", + "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", "requires": { "async": "~1.0.0", "colors": "1.0.x", @@ -14817,52 +6423,70 @@ "dependencies": { "async": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" }, "colors": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" } } }, "word-wrap": { "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wordwrap": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "workerpool": { "version": "6.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha1-D3zwdrYhX9fh2pA/9vIt3RiGtYE=", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", "dev": true }, "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write/-/write-1.0.3.tgz", - "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" @@ -14870,8 +6494,8 @@ "dependencies": { "mkdirp": { "version": "0.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -14881,19 +6505,19 @@ }, "y18n": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "15.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { "cliui": "^6.0.0", @@ -14907,85 +6531,22 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=", - "dev": true + "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" + } }, "yargs-unparser": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { "camelcase": "^6.0.0", @@ -14994,17 +6555,23 @@ "is-plain-obj": "^2.1.0" }, "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, "decamelize": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true } } }, "yauzl": { "version": "2.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yauzl/-/yauzl-2.10.0.tgz", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "requires": { "buffer-crc32": "~0.2.3", @@ -15013,8 +6580,8 @@ }, "yocto-queue": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } } diff --git a/package.json b/package.json index e06c88c2..8669ec8b 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "@hapi/joi": "17.1.1", "boxen": "5.0.1", "chalk": "4.1.2", - "check-node-version": "4.1.0", "cli-table3": "0.6.0", "commander": "8.1.0", "debug": "4.3.2", From 9b21d48cd762d9c82c36ae3fee657f08d135f54b Mon Sep 17 00:00:00 2001 From: bpandey-CS Date: Fri, 8 Oct 2021 00:28:41 +0530 Subject: [PATCH 447/864] adding more validations --- bin/cortex-missions.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 053f5d32..86e0d9d3 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -105,11 +105,18 @@ program } if (params.payload) { // apply validations + if (!params.payload.campaign_name || !params.payload.mission_name || !params.payload.profile_schema) { + printError('payload must contain campaign_name, mission_name and profile_schema'); + throw new Error('Payload must contain campaign_name, mission_name and profile_schema'); + } // batch size can't be empty, can't be negative if (!params.payload.batch_size || params.payload.batch_size <= 0) { printError(`batch_size cannot be "${params.payload.batch_size}"`); throw new Error('Inappropriate Batch Size passed in params'); } + } else { + printError('payload cannot be empty'); + throw new Error('Empty payload received in params'); } new InvokeAgentServiceCommand(program).execute(`${missionName}-online-learner-agent`, 'online_learner_service', options); } catch (err) { From a22fb9779220549bfeb77e45ca01b71b4dd97f98 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 11 Oct 2021 15:50:16 +0530 Subject: [PATCH 448/864] added an error message --- src/commands/plopfile.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js index 8555b4a1..67ef4f7d 100644 --- a/src/commands/plopfile.js +++ b/src/commands/plopfile.js @@ -8,7 +8,11 @@ module.exports = (plop) => { type: 'input', name: 'name', message: 'Skill Name? (Skill name must be alphanumeric, beginning with a letter. Hyphen allowed internally.)', - validate: (value) => /^[0-9a-zA-Z][0-9a-zA-Z\- ]{0,18}[0-9a-zA-Z]$/.test(value), + validate: (value) => { + // can return a boolean or a string + const isValidSkill = /^[0-9a-zA-Z][0-9a-zA-Z\- ]{0,18}[0-9a-zA-Z]$/.test(value); + return isValidSkill ? true : 'Invalid skill name. Should follow pattern: ^[0-9a-zA-Z][0-9a-zA-Z\\- ]{0,18}[0-9a-zA-Z]$'; + }, }, { type: 'list', From 85e73a6b9ef7891a743f6e6ca4ac00e7436c4b60 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 12 Oct 2021 11:30:25 +0530 Subject: [PATCH 449/864] whitelisted plop vulnerabilities --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8669ec8b..7e715a04 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "./bin/cortex.js", "scripts": { "preinstall": "npx check-node-version -p --package", - "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", + "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", "test": "NODE_ENV=test mocha --exit" }, "engines": { From f63ca4d22a8a6e7525a83ccfdff709ee26c57c11 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 12 Oct 2021 18:16:40 -0500 Subject: [PATCH 450/864] replacing table delimiter with slash to fix doc generation (#433) --- bin/cortex-actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 0434a2d8..baa6a8ed 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -114,7 +114,7 @@ program .description('Deploy an action') .storeOptionsAsProperties(false) .option('--name, --actionName [name]', 'Action name') - .option('--type, --actionType [job|daemon]', 'Type of action') + .option('--type, --actionType [job/daemon]', 'Type of action') .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' .option('--image, --docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') From 0d055fbe2a04afaadcb84d44f395b54654bf5de4 Mon Sep 17 00:00:00 2001 From: clee Date: Wed, 13 Oct 2021 17:23:47 -0500 Subject: [PATCH 451/864] fetch revision file to promote --- cortex-cli.gocd.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 588babd4..efe3edc6 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -45,6 +45,12 @@ pipelines: - build: source: cortex-cli-docs.md tasks: + - fetch: + pipeline: cortex-cli + stage: build + job: Build + source: devBranchRevision.json + is_file: yes - script: | mv devBranchRevision.json masterBranchRevision.json git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git From 97f55b42052cc61941fd8cacbd873688abce5d3b Mon Sep 17 00:00:00 2001 From: clee Date: Wed, 13 Oct 2021 17:25:08 -0500 Subject: [PATCH 452/864] remove fetch altogether --- cortex-cli.gocd.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index efe3edc6..7cabd780 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -45,14 +45,7 @@ pipelines: - build: source: cortex-cli-docs.md tasks: - - fetch: - pipeline: cortex-cli - stage: build - job: Build - source: devBranchRevision.json - is_file: yes - script: | - mv devBranchRevision.json masterBranchRevision.json git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git ./gocd-pipeline-scripts/common/c12e-common.sh master echo ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli From a9000ac20e7129eab3b95ca4563155aa1d37cbc7 Mon Sep 17 00:00:00 2001 From: clee Date: Wed, 13 Oct 2021 17:29:50 -0500 Subject: [PATCH 453/864] forgot to remove artifact --- cortex-cli.gocd.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 7cabd780..b5eb734b 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -40,8 +40,6 @@ pipelines: Build: elastic_profile_id: gocd-test-agent-dind artifacts: - - build: - source: masterBranchRevision.json - build: source: cortex-cli-docs.md tasks: From 80adfc75a848126f4cb5bb56069a216f362b9a1f Mon Sep 17 00:00:00 2001 From: yreddy-CS Date: Sun, 17 Oct 2021 00:33:51 +0530 Subject: [PATCH 454/864] Update cortex-models.js --- bin/cortex-models.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index ac33f6fc..a283acad 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -145,7 +145,7 @@ program // List model runs program .command('list-runs ') - .description('list model run') + .description('List model run') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') From 654a7b3a4ca3e20f5dcfa8c1a6216b0e4597399c Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Mon, 18 Oct 2021 15:48:47 +0530 Subject: [PATCH 455/864] added optional args --- bin/cortex-generate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index e64313de..d70a4331 100755 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -26,7 +26,7 @@ const { program.description('Scaffolding Cortex Components'); program - .command('skill ') + .command('skill [skillName] [type]') .description('Generates the structure and top level build script for a skill in current directory') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .action((skillName, type, options) => { // deliberately not using withCompatibilityCheck() From e76fffac9309f6e82dfef2c67601c921a7974ed2 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 15 Sep 2021 16:35:56 -0500 Subject: [PATCH 456/864] Bump jose 2.x -> 3.x Use async await as JOSE now requires it --- .eslintrc.json | 1 + bin/cortex-actions.js | 4 +- bin/cortex-agents.js | 4 +- bin/cortex-assessments.js | 4 +- bin/cortex-campaigns.js | 4 +- bin/cortex-configure.js | 10 ++-- bin/cortex-connections.js | 4 +- bin/cortex-content.js | 4 +- bin/cortex-deploy.js | 4 +- bin/cortex-docker.js | 4 +- bin/cortex-experiments.js | 4 +- bin/cortex-generate.js | 4 +- bin/cortex-missions.js | 4 +- bin/cortex-models.js | 4 +- bin/cortex-projects.js | 4 +- bin/cortex-roles.js | 4 +- bin/cortex-secrets.js | 4 +- bin/cortex-skills.js | 4 +- bin/cortex-types.js | 4 +- bin/cortex-users.js | 4 +- bin/cortex.js | 14 ++--- package-lock.json | 110 ++++++++++++++++++++++-------------- package.json | 10 ++-- src/client/actions.js | 6 +- src/client/catalog.js | 2 +- src/client/content.js | 2 +- src/commander.js | 6 +- src/commands/actions.js | 44 +++++++-------- src/commands/agents.js | 38 ++++++------- src/commands/assessments.js | 44 +++++++-------- src/commands/campaigns.js | 36 ++++++------ src/commands/configure.js | 22 ++++---- src/commands/connections.js | 16 +++--- src/commands/content.js | 16 +++--- src/commands/deploy.js | 16 +++--- src/commands/docker.js | 4 +- src/commands/experiments.js | 40 ++++++------- src/commands/models.js | 24 ++++---- src/commands/projects.js | 6 +- src/commands/roles.js | 44 +++++++-------- src/commands/secrets.js | 12 ++-- src/commands/skills.js | 22 ++++---- src/commands/types.js | 10 ++-- src/commands/users.js | 24 ++++---- src/commands/utils.js | 1 + src/config.js | 31 +++++----- test/configure.js | 17 +++--- 47 files changed, 360 insertions(+), 340 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 284b9fca..155402ea 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -4,6 +4,7 @@ "no-underscore-dangle": [ 0 ], + "require-await": "error", "max-classes-per-file": "off", "no-console": "off", // This is a cli app.. "indent": 0, diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index baa6a8ed..b548a810 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -223,4 +223,4 @@ program // } // })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index fa4c7b3f..614f55e6 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -227,4 +227,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 5912ce10..c05d873e 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { @@ -223,4 +223,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 052e50ae..fc3fc74f 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -132,4 +132,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 78e7c1ce..a4eb687a 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -14,7 +14,8 @@ * limitations under the License. */ const chalk = require('chalk'); -const program = require('../src/commander'); +// const program = require('commander'); +const program = require('commander'); const { ConfigureCommand, @@ -69,10 +70,9 @@ program program .command('describe ') + .alias('get') .description('Describe a configured profile') - .action((profileName) => { - new DescribeProfileCommand(program).execute({ profile: profileName, color: program.color }); - }); + .action((profileName) => new DescribeProfileCommand(program).execute({ profile: profileName, color: program.color })); program .command('env') @@ -92,6 +92,6 @@ program }); if (process.env.NODE_ENV !== 'test') { - program.parse(process.argv); + program.showHelpAfterError().parseAsync(process.argv); } module.exports = program; diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 2fc903b7..acb74b10 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -101,4 +101,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index d1a61afb..1e3ef808 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -103,4 +103,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index 0954c5d7..8c5fde65 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -113,4 +113,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 0be53f5c..f87d4306 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -44,4 +44,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 022999cd..96e6b595 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -217,4 +217,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index d70a4331..48bad651 100755 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { GenerateSkillCommand, @@ -37,4 +37,4 @@ program } }); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 86e0d9d3..62353d94 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -18,7 +18,7 @@ const chalk = require('chalk'); const fs = require('fs'); -const program = require('../src/commander'); +const program = require('commander'); const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -139,4 +139,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index a283acad..de6f42fd 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -160,4 +160,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index c898fdf6..142a279b 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -83,4 +83,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index c5e9ec7c..5cd97544 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -16,7 +16,7 @@ * limitations under the License. */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { nonEmptyStringParser } = require('../src/parsers'); @@ -202,4 +202,4 @@ program.command('assign-external') console.error(chalk.red(err.message)); } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 0029d611..6b490209 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -82,4 +82,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 636e6dcb..b3f0c5eb 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -154,4 +154,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index cafd8e57..2b1b5f87 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -82,4 +82,4 @@ program } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 42da863e..a37671b1 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -16,7 +16,7 @@ * limitations under the License. */ const chalk = require('chalk'); -const program = require('../src/commander'); +const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); @@ -119,4 +119,4 @@ program.command('list') } })); -program.parse(process.argv); +program.showHelpAfterError().parseAsync(process.argv); diff --git a/bin/cortex.js b/bin/cortex.js index b81cfb6c..6d1bc3f7 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -17,9 +17,7 @@ */ const findPackageJson = require('find-package-json'); -const identity = require('lodash/fp/identity'); - -const program = require('../src/commander'); +const program = require('commander'); const pkg = findPackageJson(__dirname).next().value; @@ -46,8 +44,8 @@ program .command('types [cmd]', 'Work with Cortex Types') .command('users [cmd]', 'Work with a Cortex Users'); -program.parse(process.argv, { noActionHandler: () => {} }); -if (!program.commands.map((cmd) => cmd._name).includes(program.args[0])) { - program.outputHelp(identity); - process.exit(1); -} +program.showHelpAfterError().parseAsync(process.argv); +// if (!program.commands.map((cmd) => cmd._name).includes(program.args[0])) { +// program.outputHelp(identity); +// process.exit(1); +// } diff --git a/package-lock.json b/package-lock.json index 68e8a44e..2272f1b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -235,11 +235,6 @@ "rimraf": "^3.0.2" } }, - "@panva/asn1.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", - "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" - }, "@sindresorhus/is": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", @@ -465,11 +460,6 @@ "string-width": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -478,16 +468,6 @@ "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } } } } @@ -498,6 +478,11 @@ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -688,30 +673,50 @@ "dev": true }, "boxen": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", "chalk": "^4.1.0", "cli-boxes": "^2.2.1", - "string-width": "^4.2.0", + "string-width": "^4.2.2", "type-fest": "^0.20.2", "widest-line": "^3.1.0", "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "camelcase": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -1105,9 +1110,9 @@ } }, "commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==" + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==" }, "component-emitter": { "version": "1.3.0", @@ -2438,9 +2443,9 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2568,9 +2573,9 @@ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "graphql": { - "version": "15.5.2", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.2.tgz", - "integrity": "sha512-dZjLPWNQqYv0dqV2RNbiFed0LtSp6yd4jchsDGnuhDKa9OQHJYCfovaOEvY91w9gqbYO7Se9LKDTl3xxYva/3w==" + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.0.tgz", + "integrity": "sha512-WJR872Zlc9hckiEPhXgyUftXH48jp2EjO5tgBBOyNMRJZ9fviL2mJBD6CAysk6N5S0r9BTs09Qk39nnJBkvOXQ==" }, "graphql-request": { "version": "3.5.0", @@ -3176,13 +3181,10 @@ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, - "jose": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.5.tgz", - "integrity": "sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA==", - "requires": { - "@panva/asn1.js": "^1.0.0" - } + "jose-node-cjs-runtime": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-3.18.0.tgz", + "integrity": "sha512-8KLgEQlf1rhxYaqMJyqEpTFEYJxjAtwPjgP34+1X0O8YSXxx5TNxT0Ezd4glmFZ2RXEpwdCVa2YcxOpGO1/8HQ==" }, "js-tokens": { "version": "4.0.0", @@ -3751,6 +3753,20 @@ "path-exists": "^4.0.0" } }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5967,6 +5983,14 @@ "define-properties": "^1.1.3" } }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", diff --git a/package.json b/package.json index 7e715a04..df03da0f 100644 --- a/package.json +++ b/package.json @@ -31,21 +31,21 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "@hapi/joi": "17.1.1", - "boxen": "5.0.1", + "boxen": "5.1.2", "chalk": "4.1.2", "cli-table3": "0.6.0", - "commander": "8.1.0", + "commander": "8.2.0", "debug": "4.3.2", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", - "glob": "7.1.7", + "glob": "7.2.0", "got": "11.8.2", - "graphql": "15.5.2", + "graphql": "15.6.0", "graphql-request": "3.5.0", "is-installed-globally": "0.4.0", "jmespath": "0.15.0", - "jose": "2.0.5", + "jose-node-cjs-runtime": "3.18.0", "js-yaml": "4.1.0", "lodash": "4.17.21", "moment": "2.29.1", diff --git a/src/client/actions.js b/src/client/actions.js index 650215b7..86cfbf42 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -15,7 +15,8 @@ */ const _ = require('lodash'); const debug = require('debug')('cortex:cli'); -const jose = require('jose'); +// eslint-disable-next-line import/no-unresolved +const { jwtVerify } = require('jose-node-cjs-runtime/jwt/verify'); const { got } = require('./apiutils'); const { constructError, callMe, checkProject, getUserAgent, @@ -246,7 +247,8 @@ module.exports = class Actions { } const registryUrl = await this._cortexRegistryUrl(token); const imageName = image.replace(/.+\..+\//, ''); - const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, jose.JWT.decode(token).tenant); + const { payload } = jwtVerify(token); + const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, payload.tenant); await callMe(`docker login -u cli --password ${token} ${registryUrl}`); await callMe(`docker pull ${image} || echo "Docker pull failed using local image"`); await callMe(`docker tag ${image} ${cortexImageUrl}`); diff --git a/src/client/catalog.js b/src/client/catalog.js index f30554b0..10ce5938 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -64,7 +64,7 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - async describeSkill(projectId, token, skillName, verbose = false, output = 'json') { + describeSkill(projectId, token, skillName, verbose = false, output = 'json') { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; debug('describeSkill(%s) => %s', skillName, endpoint); diff --git a/src/client/content.js b/src/client/content.js index 92bfcb7e..c68b987e 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -88,7 +88,7 @@ module.exports = class Content { // TODO progress // eslint-disable-next-line no-unused-vars - async downloadContent(projectId, token, key, showProgress = false, toFile = null) { + downloadContent(projectId, token, key, showProgress = false, toFile = null) { checkProject(projectId); const contentKey = this._sanitizeKey(key); const endpoint = `${this.endpoint(projectId)}/${contentKey}`; diff --git a/src/commander.js b/src/commander.js index bbb26f20..f7870611 100644 --- a/src/commander.js +++ b/src/commander.js @@ -23,7 +23,7 @@ const { exportDoc } = require('./commands/utils.js'); // Monkey-patch `commander` library to keep track of when an action executes commander.Command.prototype._action = commander.Command.prototype.action; commander.Command.prototype.action = function (fn) { - return this._action(function wrapped(...args) { + return this._action(async function wrapped(...args) { (this.parent || this)._actionTaken = true; fn(...args); }); @@ -46,10 +46,6 @@ commander.Command.prototype.parse = function (argv, options) { this._parse(argv); if (!this.wasActionTaken()) { - // TODO this seems broken in v6 - // if (process.env.CORTEX_TOKEN) { - // console.error('Using token from environment variable $CORTEX_TOKEN'); - // } opts.noActionHandler(); } }; diff --git a/src/commands/actions.js b/src/commands/actions.js index a26c27a9..f9eef18a 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -29,8 +29,8 @@ module.exports.ListActionsCommand = class { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.executeListActions()', profile.name); const actions = new Actions(profile.url); @@ -67,8 +67,8 @@ module.exports.DescribeActionCommand = class { this.program = program; } - execute(actionName, options) { - const profile = loadProfile(options.profile); + async execute(actionName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDescribeAction(%s)', profile.name, actionName); const actions = new Actions(profile.url); @@ -96,8 +96,8 @@ module.exports.DeployActionCommand = class { this.program = program; } - execute(actionDefinition, options) { - const profile = loadProfile(options.profile); + async execute(actionDefinition, options) { + const profile = await loadProfile(options.profile); let actionInst = {}; if (actionDefinition) { @@ -169,8 +169,8 @@ module.exports.DeleteActionCommand = class { this.program = program; } - execute(actionName, options) { - const profile = loadProfile(options.profile); + async execute(actionName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDeleteAction(%s)', profile.name, actionName); const actions = new Actions(profile.url); actions.deleteAction(options.project || profile.project, profile.token, actionName) @@ -193,8 +193,8 @@ module.exports.TaskLogsActionCommand = class { this.program = program; } - execute(jobId, taskId, options) { - const profile = loadProfile(options.profile); + async execute(jobId, taskId, options) { + const profile = await loadProfile(options.profile); debug('%s.taskLogsActions (%s, %s)', profile.name, jobId, taskId); const actions = new Actions(profile.url); actions.taskLogs(options.project || profile.project, profile.token, jobId, taskId) @@ -214,8 +214,8 @@ module.exports.TaskCancelActionCommand = class { this.program = program; } - execute(jobId, taskId, options) { - const profile = loadProfile(options.profile); + async execute(jobId, taskId, options) { + const profile = await loadProfile(options.profile); debug('%s.taskCancelActions (%s, %s)', profile.name, jobId, taskId); const actions = new Actions(profile.url); actions.taskCancel(options.project || profile.project, profile.token, jobId, taskId) @@ -235,8 +235,8 @@ module.exports.TaskStatusActionCommand = class { this.program = program; } - execute(jobId, taskId, options) { - const profile = loadProfile(options.profile); + async execute(jobId, taskId, options) { + const profile = await loadProfile(options.profile); debug('%s.taskStatusActions (%s, %s)', profile.name, jobId, taskId); const actions = new Actions(profile.url); actions.taskStatus(options.project || profile.project, profile.token, jobId, taskId) @@ -256,8 +256,8 @@ module.exports.JobTaskListActionCommand = class { this.program = program; } - execute(jobId, options) { - const profile = loadProfile(options.profile); + async execute(jobId, options) { + const profile = await loadProfile(options.profile); debug('%s.jobTaskListActions (%s, %s)', profile.name, jobId); const actions = new Actions(profile.url); actions.jobListTasks(options.project || profile.project, profile.token, jobId) @@ -277,8 +277,8 @@ module.exports.TaskStatsActionCommand = class { this.program = program; } - execute(jobId, options) { - const profile = loadProfile(options.profile); + async execute(jobId, options) { + const profile = await loadProfile(options.profile); debug('%s.taskStatsActions (%s, %s)', profile.name, jobId); const actions = new Actions(profile.url); actions.taskStats(options.project || profile.project, profile.token, jobId) @@ -298,8 +298,8 @@ module.exports.ListTaskByActivation = class { this.program = program; } - execute(activationId, options) { - const profile = loadProfile(options.profile); + async execute(activationId, options) { + const profile = await loadProfile(options.profile); debug('%s.listTasksByActivation (%s, %s)', profile.name, activationId); const actions = new Actions(profile.url); actions.listTasksByActivation(options.project || profile.project, profile.token, activationId) @@ -319,8 +319,8 @@ module.exports.GetLogsCommand = class { this.program = program; } - execute(jobId, options) { - const profile = loadProfile(options.profile); + async execute(jobId, options) { + const profile = await loadProfile(options.profile); debug('%s.getLogsActions (%s, %s)', profile.name, jobId); const actions = new Actions(profile.url); actions.getLogsAction(options.project || profile.project, profile.token, jobId) diff --git a/src/commands/agents.js b/src/commands/agents.js index ed0a5329..7abe8368 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -32,8 +32,8 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { this.program = program; } - execute(agentDefinition, options) { - const profile = loadProfile(options.profile); + async execute(agentDefinition, options) { + const profile = await loadProfile(options.profile); debug('%s.executeSaveAgent(%s)', profile.name, agentDefinition); const agentDefStr = fs.readFileSync(agentDefinition); @@ -69,8 +69,8 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.executeListAgents()', profile.name); const catalog = new Catalog(profile.url); @@ -100,8 +100,8 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { this.program = program; } - execute(agentName, options) { - const profile = loadProfile(options.profile); + async execute(agentName, options) { + const profile = await loadProfile(options.profile); const catalog = new Catalog(profile.url); if (options.versions) { debug('%s.executeDescribeAgentVersions(%s)', profile.name, agentName); @@ -138,8 +138,8 @@ module.exports.InvokeAgentServiceCommand = class { this.program = program; } - execute(agentName, serviceName, options) { - const profile = loadProfile(options.profile); + async execute(agentName, serviceName, options) { + const profile = await loadProfile(options.profile); debug('%s.invokeAgentService(%s, %s)', profile.name, agentName, serviceName); let params = {}; @@ -181,8 +181,8 @@ module.exports.GetActivationCommand = class { this.program = program; } - execute(activationId, options) { - const profile = loadProfile(options.profile); + async execute(activationId, options) { + const profile = await loadProfile(options.profile); debug('%s.getActivation(%s)', profile.name, activationId); const { report, verbose, project } = options; const agents = new Agents(profile.url); @@ -218,14 +218,14 @@ module.exports.ListActivationsCommand = class { this.program = program; } - execute(options) { + async execute(options) { if (_.isEmpty(options.agentName) && _.isEmpty(options.skillName) && _.isEmpty(options.correlationId) && _.isEmpty(options.status)) { printError('Either --agentName, --skillName, --correlationId, or --status must be provided', options); } - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.listActivations(%s)', profile.name); const agents = new Agents(profile.url); @@ -289,8 +289,8 @@ module.exports.ListServicesCommand = class ListServicesCommand { this.program = program; } - execute(agentName, options) { - const profile = loadProfile(options.profile); + async execute(agentName, options) { + const profile = await loadProfile(options.profile); debug('%s.listServices(%s)', profile.name, agentName); const catalog = new Catalog(profile.url); @@ -321,8 +321,8 @@ module.exports.ListAgentSnapshotsCommand = class { this.program = program; } - execute(agentName, options) { - const profile = loadProfile(options.profile); + async execute(agentName, options) { + const profile = await loadProfile(options.profile); debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); @@ -360,7 +360,7 @@ module.exports.DescribeAgentSnapshotCommand = class { } async execute(snapshotId, options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); const agents = new Agents(profile.url); @@ -386,8 +386,8 @@ module.exports.CreateAgentSnapshotCommand = class { this.program = program; } - execute(snapshotDefinition, options) { - const profile = loadProfile(options.profile); + async execute(snapshotDefinition, options) { + const profile = await loadProfile(options.profile); let snapshot; if (snapshotDefinition) { debug('%s.createAgentSnapshot(%s)', profile.name, snapshotDefinition); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 718beed9..a9fe4e1c 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -43,9 +43,9 @@ module.exports.ListResourcesCommand = class { this.program = program; } - execute(command) { + async execute(command) { const options = command; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.ListResourcesCommand()', profile.name); const client = new Assessments(profile.url); @@ -75,9 +75,9 @@ module.exports.ListResourceTypesCommand = class { this.program = program; } - execute(command) { + async execute(command) { const options = command; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.ListResourceTypesCommand()', profile.name); const client = new Assessments(profile.url); @@ -106,9 +106,9 @@ module.exports.DependencyTreeCommand = class { this.program = program; } - execute(dependencyFile, command) { + async execute(dependencyFile, command) { const options = command; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.DependencyTreeCommand()', profile.name); const client = new Assessments(profile.url); @@ -141,9 +141,9 @@ module.exports.CreateAssessmentCommand = class { this.program = program; } - execute(assessmentDef, command) { + async execute(assessmentDef, command) { const options = command; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.CreateAssessmentCommand()', profile.name); const client = new Assessments(profile.url); let assessment = {}; @@ -178,8 +178,8 @@ module.exports.ListAssessmentCommand = class { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.ListAssessmentCommand()', profile.name); const client = new Assessments(profile.url); @@ -212,8 +212,8 @@ module.exports.DescribeAssessmentCommand = class { this.program = program; } - execute(name, options) { - const profile = loadProfile(options.profile); + async execute(name, options) { + const profile = await loadProfile(options.profile); debug('%s.DescribeAssessmentCommand()', profile.name); const client = new Assessments(profile.url); @@ -233,8 +233,8 @@ module.exports.DeleteAssessmentCommand = class { this.program = program; } - execute(name, options) { - const profile = loadProfile(options.profile); + async execute(name, options) { + const profile = await loadProfile(options.profile); debug('%s.DeleteAssessmentCommand()', profile.name); const client = new Assessments(profile.url); @@ -254,8 +254,8 @@ module.exports.RunAssessmentCommand = class { this.program = program; } - execute(name, options) { - const profile = loadProfile(options.profile); + async execute(name, options) { + const profile = await loadProfile(options.profile); debug('%s.RunAssessmentCommand()', profile.name); const client = new Assessments(profile.url); @@ -275,8 +275,8 @@ module.exports.ListAssessmentReportCommand = class { this.program = program; } - execute(name, options) { - const profile = loadProfile(options.profile); + async execute(name, options) { + const profile = await loadProfile(options.profile); debug('%s.ListAssessmentReportCommand()', profile.name); const client = new Assessments(profile.url); @@ -308,8 +308,8 @@ module.exports.GetAssessmentReportCommand = class { this.program = program; } - execute(name, reportId, options) { - const profile = loadProfile(options.profile); + async execute(name, reportId, options) { + const profile = await loadProfile(options.profile); debug('%s.GetAssessmentReportCommand()', profile.name); const client = new Assessments(profile.url); @@ -352,9 +352,9 @@ module.exports.ExportAssessmentReportCommand = class { this.program = program; } - execute(name, reportId, command) { + async execute(name, reportId, command) { const options = command; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.ExportAssessmentReportCommand()', profile.name); const client = new Assessments(profile.url); diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 6ac301f4..e43fa739 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -29,7 +29,7 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { } async execute(options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeListCampaigns()', profile.name); const cli = new ApiServerClient(profile.url); @@ -60,7 +60,7 @@ module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { async execute(campaignName, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeDescribeCampaign(%s)', profile.name, campaignName); const cli = new ApiServerClient(profile.url); @@ -79,9 +79,9 @@ module.exports.ExportCampaignCommand = class ExportCampaignCommand { this.program = program; } - execute(campaignName, cmd) { + async execute(campaignName, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeExportCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); const project = options.project || profile.project; @@ -101,9 +101,9 @@ module.exports.ImportCampaignCommand = class ImportCampaignCommand { this.program = program; } - execute(campaignFilepath, cmd) { + async execute(campaignFilepath, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeImportCampaignCommand(%s)', profile.name, campaignFilepath); const cli = new Catalog(profile.url); @@ -120,9 +120,9 @@ module.exports.DeployCampaignCommand = class DeployCampaignCommand { this.program = program; } - execute(campaignName, cmd) { + async execute(campaignName, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeDeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); @@ -150,9 +150,9 @@ module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { this.program = program; } - execute(campaignName, cmd) { + async execute(campaignName, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeUndeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); @@ -180,9 +180,9 @@ module.exports.UndeployMissionCommand = class UndeployMissionCommand { this.program = program; } - execute(campaignName, missionName, cmd) { + async execute(campaignName, missionName, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeUndeployMissionCommand(%s)', profile.name, missionName); const cli = new Catalog(profile.url); @@ -205,9 +205,9 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { this.program = program; } - execute(campaign, cmd) { + async execute(campaign, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeListMissionsCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); @@ -238,9 +238,9 @@ module.exports.DeployMissionCommand = class DeployMissionCommand { this.program = program; } - execute(campaign, mission, cmd) { + async execute(campaign, mission, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); @@ -257,9 +257,9 @@ module.exports.DescribeMissionCommand = class DescribeMissionCommand { this.program = program; } - execute(campaign, mission, cmd) { + async execute(campaign, mission, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeDescribeMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); diff --git a/src/commands/configure.js b/src/commands/configure.js index 5d9fe38c..a2dc4fd2 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -91,9 +91,9 @@ module.exports.SetProfileCommand = class { this.program = program; } - execute(profileName, options) { + async execute(profileName, options) { const config = readConfig(); - const profile = config.getProfile(profileName); + const profile = await config.getProfile(profileName); if (profile === undefined) { printError(`No profile named ${profileName}. Run cortex configure --profile ${profileName} to create it.`, options); return; @@ -111,7 +111,7 @@ module.exports.DescribeProfileCommand = class { this.program = program; } - execute(options) { + async execute(options) { const config = readConfig(); if (config === undefined) { printError('Configuration not found. Please run "cortex configure".'); @@ -121,7 +121,7 @@ module.exports.DescribeProfileCommand = class { const profileName = options.profile || config.currentProfile; debug('describing profile: %s', profileName); - const profile = config.getProfile(profileName); + const profile = await config.getProfile(profileName); if (profile === undefined) { printError(`No profile named ${profileName}. Run cortex configure --profile ${profileName} to create it.`, options); return; @@ -168,11 +168,11 @@ module.exports.GetAccessToken = class { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); const ttl = options.ttl || '1d'; debug('%s.getAccesToken', profile.name); - const jwt = generateJwt(profile, ttl); + const jwt = await generateJwt(profile, ttl); return printSuccess(jwt, options); } }; @@ -182,12 +182,12 @@ module.exports.PrintEnvVars = class { this.program = program; } - execute() { + async execute() { const vars = []; - const options = this.program; - const profile = loadProfile(options.profile, false); + const options = this.program.opts(); + const profile = await loadProfile(options.profile, false); const ttl = options.ttl || '1d'; - const jwt = generateJwt(profile, ttl); + const jwt = await generateJwt(profile, ttl); vars.push(`export CORTEX_TOKEN=${jwt}`); vars.push(`export CORTEX_URI=${profile.url}`); // not sure why we used URI previously ?? diff --git a/src/commands/connections.js b/src/commands/connections.js index 207f4601..68dd95e6 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -28,8 +28,8 @@ module.exports.ListConnections = class ListConnections { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.listConnections()', profile.name); const conns = new Connections(profile.url); @@ -80,8 +80,8 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { return params.filter((item) => item.name !== 'jdbc_jar_file'); } - execute(connectionDefinition, options) { - const profile = loadProfile(options.profile); + async execute(connectionDefinition, options) { + const profile = await loadProfile(options.profile); debug('%s.executeSaveDefinition(%s)', profile.name, connectionDefinition); const connDefStr = fs.readFileSync(connectionDefinition); @@ -135,8 +135,8 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { this.program = program; } - execute(connectionName, options) { - const profile = loadProfile(options.profile); + async execute(connectionName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDescribeConnection(%s)', profile.name, connectionName); const connection = new Connections(profile.url); @@ -159,8 +159,8 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.listConnectionsTypes()', profile.name); const conns = new Connections(profile.url); diff --git a/src/commands/content.js b/src/commands/content.js index 80e78252..914a772a 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -26,8 +26,8 @@ module.exports.ListContent = class ListContent { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.listContent()', profile.name); const content = new Content(profile.url); @@ -62,8 +62,8 @@ module.exports.UploadContent = class UploadContent { this.program = program; } - execute(contentKey, filePath, options, cbTest) { - const profile = loadProfile(options.profile); + async execute(contentKey, filePath, options, cbTest) { + const profile = await loadProfile(options.profile); debug('%s.uploadContent()', profile.name); const contentClient = new Content(profile.url); @@ -130,8 +130,8 @@ module.exports.DeleteContent = class DeleteContent { this.program = program; } - execute(contentKey, options) { - const profile = loadProfile(options.profile); + async execute(contentKey, options) { + const profile = await loadProfile(options.profile); debug('%s.deleteContent()', profile.name); const content = new Content(profile.url); @@ -154,8 +154,8 @@ module.exports.DownloadContent = class DownloadContent { this.program = program; } - execute(contentKey, options) { - const profile = loadProfile(options.profile); + async execute(contentKey, options) { + const profile = await loadProfile(options.profile); debug('%s.DownloadContent()', profile.name); const content = new Content(profile.url); diff --git a/src/commands/deploy.js b/src/commands/deploy.js index f67d8317..8f5ddd2c 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -78,7 +78,7 @@ const DeployExperimentCommand = class { } async execute(experimentName, runId, options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeployExperimentCommand%s)', profile.name, experimentName); @@ -182,8 +182,8 @@ module.exports.DeploySnapshotCommand = class { this.program = program; } - execute(snapshotIds, options) { - const profile = loadProfile(options.profile); + async execute(snapshotIds, options) { + const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); @@ -251,7 +251,7 @@ module.exports.DeployCampaignCommand = class { } async execute(campaignName, options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploymentCampaigns(%s)', profile.name, campaignName); @@ -292,8 +292,8 @@ module.exports.DeployConnectionCommand = class { this.program = program; } - execute(connectionName, options) { - const profile = loadProfile(options.profile); + async execute(connectionName, options) { + const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploymentConnection%s)', profile.name, connectionName); @@ -321,8 +321,8 @@ module.exports.DeploySkillCommand = class { this.program = program; } - execute(skillName, options) { - const profile = loadProfile(options.profile); + async execute(skillName, options) { + const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploySkillCommand%s)', profile.name, skillName); diff --git a/src/commands/docker.js b/src/commands/docker.js index df782df0..20124143 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -29,13 +29,13 @@ module.exports.DockerLoginCommand = class { } async execute(options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); const ttl = options.ttl || '14d'; try { // TODO fetch this from new endpoint or maybe store this in the profile?? const registryUrl = (new URL(profile.url)).hostname.replace('api', 'private-registry'); - const jwt = generateJwt(profile, ttl); + const jwt = await generateJwt(profile, ttl); const command = `docker login -u cli --password ${jwt} ${registryUrl}`; debug('%s.executeDockerLogin(%s)', profile.name, command); await callMe(command); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index e6371a52..e3c629da 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -29,8 +29,8 @@ class ListExperiments { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); @@ -68,8 +68,8 @@ class DescribeExperimentCommand { this.program = program; } - execute(experimentName, options) { - const profile = loadProfile(options.profile); + async execute(experimentName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDescribeExperiment(%s)', profile.name, experimentName); const exp = new Experiments(profile.url); @@ -92,8 +92,8 @@ class DeleteExperimentCommand { this.program = program; } - execute(experimentName, options) { - const profile = loadProfile(options.profile); + async execute(experimentName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDeleteExperiment(%s)', profile.name, experimentName); const exp = new Experiments(profile.url); @@ -116,8 +116,8 @@ class ListRuns { this.program = program; } - execute(experimentName, options) { - const profile = loadProfile(options.profile); + async execute(experimentName, options) { + const profile = await loadProfile(options.profile); debug('%s.listRuns()', profile.name); const exp = new Experiments(profile.url); @@ -166,8 +166,8 @@ class DescribeRunCommand { this.program = program; } - execute(experimentName, runId, options) { - const profile = loadProfile(options.profile); + async execute(experimentName, runId, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDescribeRun(%s)', profile.name, runId); const exp = new Experiments(profile.url); @@ -190,8 +190,8 @@ class DeleteRunCommand { this.program = program; } - execute(experimentName, runId, options) { - const profile = loadProfile(options.profile); + async execute(experimentName, runId, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDeleteRun(%s)', profile.name, runId); const exp = new Experiments(profile.url); @@ -213,8 +213,8 @@ class DownloadArtifactCommand { this.program = program; } - execute(experimentName, runId, artifactName, options) { - const profile = loadProfile(options.profile); + async execute(experimentName, runId, artifactName, options) { + const profile = await loadProfile(options.profile); debug('%s.downloadArtifact(%s)', profile.name, artifactName); const exp = new Experiments(profile.url); @@ -240,8 +240,8 @@ class SaveExperimentCommand { this.program = program; } - execute(experimentDefinition, options) { - const profile = loadProfile(options.profile); + async execute(experimentDefinition, options) { + const profile = await loadProfile(options.profile); debug('%s.executeSaveExperiment(%s)', profile.name, experimentDefinition); const experimentDefStr = fs.readFileSync(experimentDefinition); @@ -277,8 +277,8 @@ class CreateRunCommand { this.program = program; } - execute(runDefinition, options) { - const profile = loadProfile(options.profile); + async execute(runDefinition, options) { + const profile = await loadProfile(options.profile); debug('%s.executeCreateRun(%s)', profile.name, runDefinition); const runDefinitionStr = fs.readFileSync(runDefinition); @@ -314,8 +314,8 @@ class UploadArtifactCommand { this.program = program; } - execute(experimentName, runId, filePath, artifact, options) { - const profile = loadProfile(options.profile); + async execute(experimentName, runId, filePath, artifact, options) { + const profile = await loadProfile(options.profile); debug('%s.executeUploadArtifact()', profile.name); const experiments = new Experiments(profile.url); diff --git a/src/commands/models.js b/src/commands/models.js index ac2109c2..590ce981 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -35,8 +35,8 @@ module.exports.SaveModelCommand = class SaveModelCommand { this.program = program; } - execute(modelDefinition, options) { - const profile = loadProfile(options.profile); + async execute(modelDefinition, options) { + const profile = await loadProfile(options.profile); debug('%s.executeSaveModel(%s)', profile.name, modelDefinition); const modelDefStr = fs.readFileSync(modelDefinition); @@ -73,8 +73,8 @@ module.exports.ListModelsCommand = class ListModelsCommand { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); models.listModels(options.project || profile.project, options.offset, options.limit, options.tags, profile.token).then((response) => { @@ -103,8 +103,8 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { this.program = program; } - execute(modelName, options) { - const profile = loadProfile(options.profile); + async execute(modelName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); models.listModelRuns(options.project || profile.project, modelName, profile.token).then((response) => { @@ -133,8 +133,8 @@ module.exports.DescribeModelCommand = class DescribeModelCommand { this.program = program; } - execute(modelName, options) { - const profile = loadProfile(options.profile); + async execute(modelName, options) { + const profile = await loadProfile(options.profile); const models = new Models(profile.url); debug('%s.executeDescribeModel(%s)', profile.name, modelName); models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { @@ -156,8 +156,8 @@ module.exports.DeleteModelCommand = class { this.program = program; } - execute(modelName, options) { - const profile = loadProfile(options.profile); + async execute(modelName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDeleteModel(%s)', profile.name, modelName); const models = new Models(profile.url); models.deleteModel(options.project || profile.project, profile.token, modelName) @@ -181,7 +181,7 @@ module.exports.PublishModelCommand = class PublishModelCommand { } async execute(modelName, options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); const models = new Models(profile.url); debug('%s.executePublishModel(%s)', profile.name, modelName); try { @@ -209,7 +209,7 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { } async execute(modelDefinition, options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); function printErrorDetails(response) { const tableSpec = [ diff --git a/src/commands/projects.js b/src/commands/projects.js index 2e7154c4..1d4b2e78 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -29,7 +29,7 @@ module.exports.CreateProjectCommand = class CreateProjectCommand { async execute(projectDefinition, command) { const options = command; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeSaveProject(%s)', profile.name, projectDefinition); let project = {}; try { @@ -59,7 +59,7 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { } async execute(options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeListProjects()', profile.name); const cli = new ApiServerClient(profile.url); @@ -90,7 +90,7 @@ module.exports.DescribeProjectCommand = class DescribeProjectCommand { async execute(projectName, cmd) { const options = cmd; - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeDescribeProject(%s)', profile.name, projectName); const cli = new ApiServerClient(profile.url); diff --git a/src/commands/roles.js b/src/commands/roles.js index c38daae2..dd71240e 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -34,8 +34,8 @@ module.exports.RoleDeleteCommand = class { this.program = program; } - execute(role, options) { - const profile = loadProfile(options.profile); + async execute(role, options) { + const profile = await loadProfile(options.profile); debug('%s.deleteRole=%s', profile.name, role); const client = new Roles(profile.url, role); @@ -59,8 +59,8 @@ module.exports.RoleCreateCommand = class { this.program = program; } - execute(role, options) { - const profile = loadProfile(options.profile); + async execute(role, options) { + const profile = await loadProfile(options.profile); const form = createGrant(options); form.role = role; debug('%s.createRole=%s', profile.name); @@ -86,8 +86,8 @@ module.exports.RoleAssignCommand = class { this.program = program; } - execute(role, options) { - const profile = loadProfile(options.profile); + async execute(role, options) { + const profile = await loadProfile(options.profile); debug('%s.grantRoler=%s', profile.name, role); const client = new Roles(profile.url, role); @@ -119,8 +119,8 @@ module.exports.RoleGrantCommand = class { this.program = program; } - execute(role, options) { - const profile = loadProfile(options.profile); + async execute(role, options) { + const profile = await loadProfile(options.profile); const form = createGrant(options); debug('%s.grantRoler=%s', profile.name, role); @@ -153,8 +153,8 @@ module.exports.RoleDescribeCommand = class { this.program = program; } - execute(role, options) { - const profile = loadProfile(options.profile); + async execute(role, options) { + const profile = await loadProfile(options.profile); debug('%s.describeForRole=%s', profile.name, role); const flags = []; @@ -185,8 +185,8 @@ module.exports.RoleListCommand = class { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.listRole=%s', profile.name); const flags = []; @@ -211,8 +211,8 @@ module.exports.RoleProjectAssignCommand = class { this.program = program; } - execute(project, options) { - const profile = loadProfile(options.profile); + async execute(project, options) { + const profile = await loadProfile(options.profile); debug('%s.assignRoleProject=%s', profile.name, project); const client = new Roles(profile.url, null); @@ -244,8 +244,8 @@ module.exports.ExternalGroupListCommand = class { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.listExternalGroup=%s', profile.name); const client = new Roles(profile.url, null); @@ -268,8 +268,8 @@ module.exports.ExternalGroupDescribeCommand = class { this.program = program; } - execute(externalGroup, options) { - const profile = loadProfile(options.profile); + async execute(externalGroup, options) { + const profile = await loadProfile(options.profile); debug('%s.describeExternalGroup=%s', profile.name, externalGroup); const flags = []; @@ -300,8 +300,8 @@ module.exports.ExternalGroupDeleteCommand = class { this.program = program; } - execute(externalGroup, options) { - const profile = loadProfile(options.profile); + async execute(externalGroup, options) { + const profile = await loadProfile(options.profile); debug('%s.deleteExternalGroup=%s', profile.name, externalGroup); const client = new Roles(profile.url, null); @@ -325,8 +325,8 @@ module.exports.ExternalGroupAssignCommand = class { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.externalGroupAssign=%s', profile.name, options.role); const client = new Roles(profile.url, options.role); diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 5011bc19..a15c224f 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -31,8 +31,8 @@ module.exports.ListSecretsCommand = class { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.listsecrets(%s)', profile.name); const secrets = new Secrets(profile.url); @@ -62,8 +62,8 @@ module.exports.ReadSecretsCommand = class { this.program = program; } - execute(keyName, options) { - const profile = loadProfile(options.profile); + async execute(keyName, options) { + const profile = await loadProfile(options.profile); debug('%s.readsecret(%s)', profile.name, keyName); const secrets = new Secrets(profile.url); @@ -93,8 +93,8 @@ module.exports.WriteSecretsCommand = class { this.program = program; } - execute(keyName, value, options) { - const profile = loadProfile(options.profile); + async execute(keyName, value, options) { + const profile = await loadProfile(options.profile); debug('%s.writeSecret(%s)', profile.name, keyName); let data = value; diff --git a/src/commands/skills.js b/src/commands/skills.js index d139a743..d047bdd7 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -32,7 +32,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { } async execute(skillDefinition, options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeSaveSkill(%s)', profile.name, skillDefinition); try { const skillDefStr = fs.readFileSync(skillDefinition); @@ -66,7 +66,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { } async execute(options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeListSkills()', profile.name); const catalog = new Catalog(profile.url); @@ -106,7 +106,7 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { } async execute(skillName, options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeDescribeSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); @@ -125,8 +125,8 @@ module.exports.UndeploySkillCommand = class UndeploySkillCommand { this.program = program; } - execute(skillName, options) { - const profile = loadProfile(options.profile); + async execute(skillName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeUndeploySkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); catalog.unDeploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { @@ -147,8 +147,8 @@ module.exports.SkillLogsCommand = class SkillLogsCommand { this.program = program; } - execute(skillName, actionName, options) { - const profile = loadProfile(options.profile); + async execute(skillName, actionName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeSkillLogs(%s,%s)', profile.name, skillName, actionName); const catalog = new Catalog(profile.url); catalog.skillLogs(options.project || profile.project, profile.token, skillName, actionName, options.verbose).then((response) => { @@ -169,8 +169,8 @@ module.exports.DeploySkillCommand = class DeploySkillCommand { this.program = program; } - execute(skillName, options) { - const profile = loadProfile(options.profile); + async execute(skillName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDeploySkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); @@ -192,8 +192,8 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { this.program = program; } - execute(skillName, inputName, options) { - const profile = loadProfile(options.profile); + async execute(skillName, inputName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeInvokeSkill(%s/%s)', profile.name, skillName, inputName); let params = {}; diff --git a/src/commands/types.js b/src/commands/types.js index 9760ad26..53fcafe2 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -31,7 +31,7 @@ module.exports.SaveTypeCommand = class SaveTypeCommand { } async execute(typeDefinition, options) { - const profile = loadProfile(options.profile); + const profile = await loadProfile(options.profile); debug('%s.executeSaveType(%s)', profile.name, typeDefinition); try { const typeDefStr = fs.readFileSync(typeDefinition); @@ -59,8 +59,8 @@ module.exports.ListTypesCommand = class ListTypesCommand { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.executeListTypes()', profile.name); const catalog = new Catalog(profile.url); @@ -89,8 +89,8 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { this.program = program; } - execute(typeName, options) { - const profile = loadProfile(options.profile); + async execute(typeName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDescribeType(%s)', profile.name, typeName); const catalog = new Catalog(profile.url); diff --git a/src/commands/users.js b/src/commands/users.js index 35def9c0..c86f6101 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -34,8 +34,8 @@ module.exports.UserGrantCommand = class { this.program = program; } - execute(user, options) { - const profile = loadProfile(options.profile); + async execute(user, options) { + const profile = await loadProfile(options.profile); const form = createGrant(options); debug('%s.grantUser=%s', profile.name, user || 'self'); const client = new Users(profile.url, user); @@ -67,8 +67,8 @@ module.exports.UserDeleteCommand = class { this.program = program; } - execute(user, options) { - const profile = loadProfile(options.profile); + async execute(user, options) { + const profile = await loadProfile(options.profile); debug('%s.deleteServiceUser=%s', profile.name, user); const client = new Users(profile.url, user); @@ -91,8 +91,8 @@ module.exports.UserCreateCommand = class { this.program = program; } - execute(user, options) { - const profile = loadProfile(options.profile); + async execute(user, options) { + const profile = await loadProfile(options.profile); debug('%s.createServiceUser=%s', profile.name, user); const client = new Users(profile.url, user); @@ -115,8 +115,8 @@ module.exports.UserListCommand = class { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.listServiceUsers', profile.name); const client = new Users(profile.url, 'self'); @@ -139,8 +139,8 @@ module.exports.UserDescribeCommand = class { this.program = program; } - execute(options) { - const profile = loadProfile(options.profile); + async execute(options) { + const profile = await loadProfile(options.profile); debug('%s.describeForUser=%s', profile.name, options.user || 'self'); const flags = []; @@ -171,8 +171,8 @@ module.exports.UserProjectAssignCommand = class { this.program = program; } - execute(project, options) { - const profile = loadProfile(options.profile); + async execute(project, options) { + const profile = await loadProfile(options.profile); debug('%s.assignUserProject=%s', profile.name, project); const client = new Users(profile.url, null); diff --git a/src/commands/utils.js b/src/commands/utils.js index 1acb317d..4db4d4d1 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -128,6 +128,7 @@ module.exports.exportDoc = (program) => { * @param commandStr * @returns {Promise<*>} */ +// eslint-disable-next-line require-await async function callMe(commandStr) { return new Promise((resolve, reject) => { const proc = exec(commandStr, (err, stdout) => { diff --git a/src/config.js b/src/config.js index c8122da1..72c41b05 100644 --- a/src/config.js +++ b/src/config.js @@ -20,26 +20,27 @@ const fs = require('fs'); const path = require('path'); const Joi = require('@hapi/joi'); const debug = require('debug')('cortex:config'); -const { JWT, JWK } = require('jose'); +const { parseJwk } = require('jose-node-cjs-runtime/jwk/parse'); +const { SignJWT } = require('jose-node-cjs-runtime/jwt/sign'); const { printError } = require('./commands/utils'); function configDir() { return process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); } -function generateJwt(profile, expiresIn = '2m') { +async function generateJwt(profile, expiresIn = '2m') { const { username, issuer, audience, jwk, } = profile; - const jwtSigner = JWK.asKey(jwk); - const payload = { - }; - return JWT.sign(payload, jwtSigner, { - issuer, - audience, - subject: username, - expiresIn, - }); + const jwtSigner = await parseJwk(jwk, 'Ed25519'); + return new SignJWT({}) + .setProtectedHeader({ alg: 'EdDSA', kid: jwk.kid }) + .setSubject(username) + .setAudience(audience) + .setIssuer(issuer) + .setIssuedAt() + .setExpirationTime(expiresIn) + .sign(jwtSigner, { kid: jwk.kid }); } const ProfileSchema = Joi.object().keys({ @@ -99,7 +100,7 @@ class Config { }); } - getProfile(name, useenv = true) { + async getProfile(name, useenv = true) { const profile = this.profiles[name]; if (!profile) { return undefined; @@ -108,7 +109,7 @@ class Config { if (useenv) { profileType.url = process.env.CORTEX_URI || profileType.url; } - profileType.token = generateJwt(profile); + profileType.token = await generateJwt(profile); return profileType; } @@ -185,14 +186,14 @@ function readConfig() { return undefined; } -function loadProfile(profileName, useenv = true) { +async function loadProfile(profileName, useenv = true) { const config = readConfig(); if (config === undefined) { throw new Error('Please configure the Cortex CLI by running "cortex configure"'); } const name = profileName || config.currentProfile || 'default'; - const profile = config.getProfile(name, useenv); + const profile = await config.getProfile(name, useenv); if (!profile) { throw new Error(`Profile with name "${name}" could not be located in your configuration. Please run "cortex configure".`); } diff --git a/test/configure.js b/test/configure.js index f563c888..144a8bff 100644 --- a/test/configure.js +++ b/test/configure.js @@ -23,7 +23,7 @@ const sinon = require('sinon'); const { expect } = require('chai'); const yaml = require('js-yaml'); const { stripAnsi } = require('./utils'); - const program = require('../bin/cortex-configure'); +const program = require('../bin/cortex-configure'); let restore; describe('configure', () => { @@ -52,24 +52,22 @@ describe('configure', () => { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - it('lists profiles', (done) => { - program.parse(['node', 'configure', 'list']); + it('lists profiles', async () => { + await program.parseAsync(['node', 'configure', 'list']); sinon.assert.calledTwice(printSpy); // default is set at default... expect(getPrintedLines()).to.eql(['default', 'other']); - done(); }); - it('get profile other', (done) => { - program.parse(['node', 'configure', 'describe', 'other']); + it('get profile other', async () => { + await program.parseAsync(['node', 'configure', 'describe', 'other']); const output = getPrintedLines(); expect(output).to.length(5); expect(output[4]).to.eql('Project: otherProj'); - done(); }); - it('create profile pat file', (done) => { - program.parse(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); + it('create profile pat file', async () => { + await program.parseAsync(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); const output = getPrintedLines(); expect(output).to.length(2); expect(output[1]).to.eql('Configuration for profile conftest saved.'); @@ -78,6 +76,5 @@ describe('configure', () => { printSpy.resetHistory(); program.parse(['node', 'configure', 'list']); expect(getPrintedLines()).to.eql(['default', 'other', 'conftest']); - done(); }); }); From 8dc666501642cc69a790754cfdf65cb32c2af6e1 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 24 Sep 2021 08:23:16 -0500 Subject: [PATCH 457/864] Fix action save errors --- src/commands/actions.js | 107 +++++++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 45 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index f9eef18a..ab7baf83 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -97,57 +97,74 @@ module.exports.DeployActionCommand = class { } async execute(actionDefinition, options) { - const profile = await loadProfile(options.profile); + try { + const profile = await loadProfile(options.profile); - let actionInst = {}; - if (actionDefinition) { - debug('%s.deployActionCommand(%s)', profile.name, actionDefinition); - try { - const actionDefStr = fs.readFileSync(actionDefinition); - actionInst = parseObject(actionDefStr, options); - } catch (err) { - printError(`Failed to deploy action: ${err.message}`, options); + let actionInst = {}; + if (actionDefinition) { + debug('%s.deployActionCommand(%s)', profile.name, actionDefinition); + try { + const actionDefStr = fs.readFileSync(actionDefinition); + actionInst = parseObject(actionDefStr, options); + } catch (err) { + printError(`Failed to deploy action: ${err.message}`, options); + } + } + if (options.actionName) { + actionInst.name = options.actionName; + } + if (options.name) { + actionInst.name = options.name; + } + if (options.podspec) { + const paramsStr = fs.readFileSync(options.podspec); + actionInst.podSpec = parseObject(paramsStr, options); } - } - if (options.actionName) { - actionInst.name = options.actionName; - } - if (options.name) { actionInst.name = options.name; } - if (options.podspec) { - const paramsStr = fs.readFileSync(options.podspec); - actionInst.podSpec = parseObject(paramsStr, options); - } - if (!_.isEmpty(options.k8sResource)) { - const k8sResources = options.k8sResource.map((f) => parseObject(fs.readFileSync(f), options)); - actionInst.k8sResources = k8sResources; - } - - if (options.image) { actionInst.image = options.image; } - if (options.docker) { actionInst.image = options.docker; } - if (options.type) { actionInst.type = options.type; } - if (options.actionType) { actionInst.type = options.actionType; } - if (options.cmd) { actionInst.command = options.cmd; } - if (options.port) { - if (!isNumeric(options.port)) { - printError('--port must be a number', options); + if (!_.isEmpty(options.k8sResource)) { + const k8sResources = options.k8sResource.map((f) => parseObject(fs.readFileSync(f), options)); + actionInst.k8sResources = k8sResources; } - actionInst.port = options.port; - } - if (options.environmentVariables) { actionInst.environmentVariables = options.environmentVariables; } - if (options.pushDocker) { actionInst.pushDocker = options.pushDocker; } - if (options.scaleCount) { - if (!isNumeric(options.scaleCount)) { - printError('--scaleCount must be a number', options); + if (options.docker) { + actionInst.image = options.docker; + } + if (options.image) { + actionInst.image = options.image; } - actionInst.scaleCount = parseInt(options.scaleCount, 10); - } - if (options.jobTimeout) { - if (!isNumeric(options.jobTimeout)) { - printError('--jobTimeout must be a number', options); + if (options.type) { + actionInst.type = options.type; + } + if (options.actionType) { + actionInst.type = options.actionType; + } + if (options.cmd) { + actionInst.command = options.cmd; + } + if (options.port) { + if (!isNumeric(options.port)) { + printError('--port must be a number', options); + } + actionInst.port = options.port; + } + if (options.environmentVariables) { + actionInst.environmentVariables = options.environmentVariables; + } + if (options.pushDocker) { + actionInst.pushDocker = options.pushDocker; + } + if (options.scaleCount) { + if (!isNumeric(options.scaleCount)) { + printError('--scaleCount must be a number', options); + } + actionInst.scaleCount = parseInt(options.scaleCount, 10); + } + + if (options.jobTimeout) { + if (!isNumeric(options.jobTimeout)) { + printError('--jobTimeout must be a number', options); + } + actionInst.jobTimeout = parseInt(options.jobTimeout, 10); } - actionInst.jobTimeout = parseInt(options.jobTimeout, 10); - } const actions = new Actions(profile.url); actions.deployAction(options.project || profile.project, profile.token, actionInst) From 69dd8c74c34e76567859c75a35d5e38a0d370f73 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 24 Sep 2021 09:52:51 -0500 Subject: [PATCH 458/864] Tweak k8soption help --- bin/cortex-actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index b548a810..3dfe4443 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -119,7 +119,7 @@ program .option('--image, --docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') .option('--jobTimeout [jobTimeout]', 'Job Timeout in seconds, this will marked the job as FAILED (default: no timeout)') - .option('-k, --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill') + .option('-k, --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill, provide as last option specified or end list of files with "--"') .option('--no-compat', 'Ignore API compatibility checks') .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('--port [port]', 'Docker port') // '9091' From 7a1a0988be6bc6ca5566b1cf31aa6ae929fb1c99 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 24 Sep 2021 14:02:39 -0500 Subject: [PATCH 459/864] fix docs --- bin/cortex-actions.js | 6 ++++- bin/cortex-agents.js | 6 ++++- bin/cortex-assessments.js | 6 ++++- bin/cortex-campaigns.js | 6 ++++- bin/cortex-configure.js | 3 +++ bin/cortex-connections.js | 6 ++++- bin/cortex-content.js | 8 ++++-- bin/cortex-deploy.js | 6 ++++- bin/cortex-docker.js | 6 ++++- bin/cortex-experiments.js | 6 ++++- bin/cortex-generate.js | 6 ++++- bin/cortex-missions.js | 6 ++++- bin/cortex-models.js | 6 ++++- bin/cortex-projects.js | 6 ++++- bin/cortex-roles.js | 6 ++++- bin/cortex-secrets.js | 6 ++++- bin/cortex-skills.js | 6 ++++- bin/cortex-types.js | 6 ++++- bin/cortex-users.js | 6 ++++- bin/cortex.js | 10 ++++---- generate_docs.js | 44 +++++++++++++++++++++----------- generate_docs.sh | 14 ++--------- src/commander.js | 53 --------------------------------------- src/commands/configure.js | 2 +- src/commands/utils.js | 14 ----------- src/parsers.js | 2 +- 26 files changed, 132 insertions(+), 120 deletions(-) delete mode 100644 src/commander.js diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 3dfe4443..6403699a 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -35,6 +35,7 @@ const { // TaskStatusActionCommand, } = require('../src/commands/actions'); +program.name('cortex actions'); program.description('Work with Cortex Actions'); // List Actions @@ -223,4 +224,7 @@ program // } // })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 614f55e6..e77732e6 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -34,6 +34,7 @@ const { CreateAgentSnapshotCommand, } = require('../src/commands/agents'); +program.name('cortex agents'); program.description('Work with Cortex Agents'); // Save Agent @@ -227,4 +228,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index c05d873e..f97826e0 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -34,6 +34,7 @@ const { DependencyTreeCommand, } = require('../src/commands/assessments'); +program.name('cortex assessments'); program.description('Work with Cortex Assessments'); program @@ -223,4 +224,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index fc3fc74f..5dd377b4 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -30,6 +30,7 @@ const { UndeployCampaignCommand, } = require('../src/commands/campaigns'); +program.name('cortex campaigns'); program.description('Work with Cortex Campaigns'); // List Campaigns @@ -132,4 +133,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index a4eb687a..86db6e46 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -26,6 +26,9 @@ const { PrintEnvVars, } = require('../src/commands/configure'); +program.name('cortex configure'); +program.description('Configure cortex connection profiles'); + program .option('--file [file]', 'Personal access config file location') .option('--profile [profile]', 'The profile to configure', 'default') diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index acb74b10..6a40cf4a 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -28,6 +28,7 @@ const { ListConnectionsTypes, } = require('../src/commands/connections'); +program.name('cortex connections'); program.description('Work with Cortex Connections'); // List Connections @@ -101,4 +102,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 1e3ef808..a381200a 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -28,7 +28,8 @@ const { DownloadContent, } = require('../src/commands/content'); -program.description('Work with Cortex Contents'); +program.name('cortex content'); +program.description('Work with Cortex Managed Content'); // List Content program @@ -103,4 +104,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index 8c5fde65..cc1a1f4d 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -29,6 +29,7 @@ const { DeploySkillCommand, } = require('../src/commands/deploy'); +program.name('cortex deploy'); program.description('Export Cortex artifacts for deployment'); // Export Agent Snapshot. Provide snapshotIds in quotes separated by space like "snapshotId1 snapshotId2". This is to support multiple agents in one deployment manifest file. @@ -113,4 +114,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index f87d4306..478516f4 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -25,6 +25,7 @@ const { DockerLoginCommand, } = require('../src/commands/docker'); +program.name('cortex docker'); program.description('Work with Docker'); // Login @@ -44,4 +45,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 96e6b595..d13b544e 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -34,6 +34,7 @@ const { UploadArtifactCommand, } = require('../src/commands/experiments'); +program.name('cortex experiments'); program.description('Work with Cortex Experiments'); // List Experiments @@ -217,4 +218,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index 48bad651..dc80eb2d 100755 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -23,6 +23,7 @@ const { GenerateSkillCommand, } = require('../src/commands/generate'); +program.name('cortex generate'); program.description('Scaffolding Cortex Components'); program @@ -37,4 +38,7 @@ program } }); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 62353d94..300acdac 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -32,6 +32,7 @@ const { const { InvokeAgentServiceCommand } = require('../src/commands/agents'); +program.name('cortex missions'); program.description('Work with Cortex Missions'); program @@ -139,4 +140,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-models.js b/bin/cortex-models.js index de6f42fd..d1e7916e 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -31,6 +31,7 @@ const { ListModelRunsCommand, } = require('../src/commands/models'); +program.name('cortex models'); program.description('Work with Cortex Models'); // List Models @@ -160,4 +161,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 142a279b..85a13c35 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -27,6 +27,7 @@ const { DescribeProjectCommand, } = require('../src/commands/projects'); +program.name('cortex projects'); program.description('Work with Cortex Projects'); // Create Project @@ -83,4 +84,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 5cd97544..c97ba85d 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -35,6 +35,7 @@ const { RoleListCommand, } = require('../src/commands/roles'); +program.name('cortex roles'); program.description('Work with Cortex Roles'); program.command('list') @@ -202,4 +203,7 @@ program.command('assign-external') console.error(chalk.red(err.message)); } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 6b490209..d43e4745 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -27,6 +27,7 @@ const { WriteSecretsCommand, } = require('../src/commands/secrets'); +program.name('cortex secrets'); program.description('Work with Cortex Secrets'); // List Secure Keys @@ -82,4 +83,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index b3f0c5eb..b54a0950 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -31,6 +31,7 @@ const { SkillLogsCommand, } = require('../src/commands/skills'); +program.name('cortex skills'); program.description('Work with Cortex Skills'); // Deploy Skill @@ -154,4 +155,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 2b1b5f87..29a2974d 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -27,6 +27,7 @@ const { DescribeTypeCommand, } = require('../src/commands/types'); +program.name('cortex types'); program.description('Work with Cortex Types'); // Save Type @@ -82,4 +83,7 @@ program } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex-users.js b/bin/cortex-users.js index a37671b1..588f4d3d 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -29,6 +29,7 @@ const { UserDeleteCommand, } = require('../src/commands/users'); +program.name('cortex users'); program.description('Work with Cortex User'); program.command('describe') @@ -119,4 +120,7 @@ program.command('list') } })); -program.showHelpAfterError().parseAsync(process.argv); +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex.js b/bin/cortex.js index 6d1bc3f7..d49c65b5 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -21,6 +21,7 @@ const program = require('commander'); const pkg = findPackageJson(__dirname).next().value; +program.name('cortex'); program .version(pkg.version, '-v, --version') .description('Cortex CLI') @@ -44,8 +45,7 @@ program .command('types [cmd]', 'Work with Cortex Types') .command('users [cmd]', 'Work with a Cortex Users'); -program.showHelpAfterError().parseAsync(process.argv); -// if (!program.commands.map((cmd) => cmd._name).includes(program.args[0])) { -// program.outputHelp(identity); -// process.exit(1); -// } +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/generate_docs.js b/generate_docs.js index 7620d609..b8514609 100644 --- a/generate_docs.js +++ b/generate_docs.js @@ -3,13 +3,24 @@ */ const _ = require('lodash'); const fs = require('fs'); +const glob = require('glob'); -// read command args if passed -const sourcedir = _.get(process.argv, '[2]', '.'); -const outfile = _.get(process.argv, '[3]'); +const outfile = _.get(process.argv, '[2]'); -// use top level commands as driver -const rootJson = require(`${sourcedir}/cortex.json`); +const cmd_files = ['./bin/cortex-agents.js', './bin/cortex-agents.js']; // glob.sync('./bin/cortex-*.js'); + +function genDocs(program) { + return program.commands.map((c) => ({ + name: c._name, + description: c._description, + usage: c.usage(), + options: c.options.map((o) => ({ + flags: o.flags, + defaultValue: o.defaultValue, + description: o.description, + })), + })); +} // replace /n/t with HTML equivs const cleanString = (s) => s @@ -34,11 +45,11 @@ _.join( )}`; const cmdHeading = (cmd) => ` -## ${_.capitalize(cmd.name)} +## ${_.capitalize(cmd.name())} \`\`\` -cortex ${cmd.name} ${cmd.usage} +${cmd.name()} ${cmd.usage()} \`\`\` -${cmd.description} +${cmd.description()} `; const header = `--- @@ -75,13 +86,16 @@ cortex [command] [options] it is describing. This can include YAML, JSON, or other formats. `; -const body = _.join( - _.sortBy(rootJson, ['name']).map( - (cmd) => `${cmdHeading(cmd)}\n` - + `${subcmdTable(require(`${sourcedir}/cortex-${cmd.name}.json`))}`, - ), -'', -); +const body = cmd_files.sort().map((cmdFile) => { + // eslint-disable-next-line import/no-dynamic-require + const cacheName = require.resolve(cmdFile); + const prog = require(cmdFile); + const docObj = genDocs(prog); + const res = `${cmdHeading(prog)}\n${subcmdTable(docObj)}`; + delete require.cache(cacheName); + return res; +}); + const output = header + body; // if outfile write to file ... if (_.isEmpty(outfile)) { diff --git a/generate_docs.sh b/generate_docs.sh index 99b44565..5a99c60a 100755 --- a/generate_docs.sh +++ b/generate_docs.sh @@ -1,16 +1,6 @@ -#!/bin/bash -export DOC=true +#!/bin/bash -eux OUTFILE=cortex-cli-docs.md -OUTDIR=$(mktemp -d) -# generating meta from commands. -echo "Generating metadata from commands" -for F in bin/*.js; do - echo -n '.' - NAME=$(basename $F .js) - node $F > "${OUTDIR}/${NAME}.json" -done # generating markdown -node generate_docs.js "${OUTDIR}" ${OUTFILE} +node generate_docs.js ${OUTFILE} echo echo "Done -> ${OUTFILE}" -rm -r ${OUTDIR} \ No newline at end of file diff --git a/src/commander.js b/src/commander.js deleted file mode 100644 index f7870611..00000000 --- a/src/commander.js +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const commander = require('commander'); -const identity = require('lodash/fp/identity'); -const merge = require('lodash/fp/merge'); - -const { exportDoc } = require('./commands/utils.js'); - -// Monkey-patch `commander` library to keep track of when an action executes -commander.Command.prototype._action = commander.Command.prototype.action; -commander.Command.prototype.action = function (fn) { - return this._action(async function wrapped(...args) { - (this.parent || this)._actionTaken = true; - fn(...args); - }); -}; - -commander.Command.prototype.wasActionTaken = function () { - return (this.parent || this)._actionTaken || false; -}; - -commander.Command.prototype.helpAndExit = function () { - this.outputHelp(identity); - process.exit(1); -}; - -commander.Command.prototype._parse = commander.Command.prototype.parse; -commander.Command.prototype.parse = function (argv, options) { - const defaultOpts = { noActionHandler: this.helpAndExit.bind(this) }; - const opts = merge(defaultOpts, options || {}); - process.env.DOC && exportDoc(this); - - this._parse(argv); - if (!this.wasActionTaken()) { - opts.noActionHandler(); - } -}; - -module.exports = commander; diff --git a/src/commands/configure.js b/src/commands/configure.js index a2dc4fd2..a87350b1 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -67,7 +67,7 @@ module.exports.ConfigureCommand = class { } cmd.saveConfig(config, profileName, patData, project); console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); - process.exit(0); // + // process.exit(0); // } catch (err) { printError(err); } diff --git a/src/commands/utils.js b/src/commands/utils.js index 4db4d4d1..ed06b240 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -109,20 +109,6 @@ module.exports.printTable = (spec, objects, transform) => { console.log(table.toString()); }; -module.exports.exportDoc = (program) => { - console.log(JSON.stringify(program.commands.map((c) => ({ - name: c._name, - description: c._description, - usage: c.usage(), - options: c.options.map((o) => ({ - flags: o.flags, - defaultValue: o.defaultValue, - description: o.description, - })), - })))); - process.exit(0); -}; - /** * Execute a sub command, return stdout on success, return stderr on failure * @param commandStr diff --git a/src/parsers.js b/src/parsers.js index d2720195..f72c297a 100644 --- a/src/parsers.js +++ b/src/parsers.js @@ -15,7 +15,7 @@ */ const _ = require('lodash'); -const program = require('./commander'); +const program = require('commander'); function nonEmptyStringParser(opts) { const { message = 'empty string argument', variadic = false } = opts; From a7fafbaf4c93cdbe6b9b131effc7b26b428ba917 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 27 Sep 2021 11:45:43 -0500 Subject: [PATCH 460/864] Fix-docs --- generate_docs.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/generate_docs.js b/generate_docs.js index b8514609..6a208382 100644 --- a/generate_docs.js +++ b/generate_docs.js @@ -7,9 +7,9 @@ const glob = require('glob'); const outfile = _.get(process.argv, '[2]'); -const cmd_files = ['./bin/cortex-agents.js', './bin/cortex-agents.js']; // glob.sync('./bin/cortex-*.js'); +const cmd_files = ['./bin/cortex-agents.js', './bin/cortex-actions.js']; // glob.sync('./bin/cortex-*.js'); -function genDocs(program) { +function docObject(program) { return program.commands.map((c) => ({ name: c._name, description: c._description, @@ -86,14 +86,16 @@ cortex [command] [options] it is describing. This can include YAML, JSON, or other formats. `; +function markdownForCmd(program) { + const docObj = docObject(program); + return `${cmdHeading(program)}\n${subcmdTable(docObj)}`; +} + +const vm = require('vm'); const body = cmd_files.sort().map((cmdFile) => { - // eslint-disable-next-line import/no-dynamic-require - const cacheName = require.resolve(cmdFile); - const prog = require(cmdFile); - const docObj = genDocs(prog); - const res = `${cmdHeading(prog)}\n${subcmdTable(docObj)}`; - delete require.cache(cacheName); - return res; + vm.runInNewContext(`const prog = require("${cmdFile}"); result = markdownForCmd(prog);`, + { markdownForCmd } + ); }); const output = header + body; From 6964b11bc369de05b5612fcd0b2cc268e45dead4 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 27 Sep 2021 21:53:43 -0500 Subject: [PATCH 461/864] add -k to skill save command --- bin/cortex-skills.js | 1 + src/commands/skills.js | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index b54a0950..0e4ba735 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -114,6 +114,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('-k, --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill') .option('-y, --yaml', 'Use YAML for skill definition format') .action(withCompatibilityCheck((skillDefinition, options) => { try { diff --git a/src/commands/skills.js b/src/commands/skills.js index d047bdd7..bfbab3bd 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -20,10 +20,8 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agent = require('../client/agents'); -const { LISTTABLEFORMAT } = require('./utils'); - const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, + printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { @@ -32,12 +30,21 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { } async execute(skillDefinition, options) { - const profile = await loadProfile(options.profile); - debug('%s.executeSaveSkill(%s)', profile.name, skillDefinition); try { + const profile = await loadProfile(options.profile); const skillDefStr = fs.readFileSync(skillDefinition); const skill = parseObject(skillDefStr, options); const catalog = new Catalog(profile.url); + if (!_.isEmpty(options.k8sResource)) { + const k8sResources = options.k8sResource.map((f) => parseObject(fs.readFileSync(f), options)); + if (_.isEmpty(_.get(skill, 'actions', []))) { + printError('Skill must contain an action to apply kubernetes resources', options, true); + } + if (skill.actions.length > 1) { + printWarning('Applying kubernetes resources to all actions'); + } + skill.actions.map((a) => a.k8sResources = k8sResources); + } const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); if (response.success) { printSuccess('Skill saved', options); From f54b5e105878c471a4970c96be6005205dda0ec1 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 29 Sep 2021 13:31:06 -0500 Subject: [PATCH 462/864] Fix docgen --- bin/cortex-configure.js | 4 ++-- generate_docs.js | 49 ++------------------------------------- generate_docs.sh | 49 +++++++++++++++++++++++++++++++++++---- src/commands/configure.js | 26 ++++++++++++--------- src/commands/skills.js | 2 +- 5 files changed, 65 insertions(+), 65 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 86db6e46..35bb4096 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -31,7 +31,7 @@ program.description('Configure cortex connection profiles'); program .option('--file [file]', 'Personal access config file location') - .option('--profile [profile]', 'The profile to configure', 'default') + .option('--profile [profile]', 'The profile to configure') .option('--project [project]', 'The default project to use') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .description('Configure the Cortex CLI'); @@ -94,7 +94,7 @@ program new SetProfileCommand(program).execute(profileName, { color: program.color }); }); -if (process.env.NODE_ENV !== 'test') { +if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } module.exports = program; diff --git a/generate_docs.js b/generate_docs.js index 6a208382..7abe6047 100644 --- a/generate_docs.js +++ b/generate_docs.js @@ -52,56 +52,11 @@ ${cmd.name()} ${cmd.usage()} ${cmd.description()} `; -const header = `--- -title: "Cortex CLI" -linkTitle: "Cortex CLI" -description: > - Provides a list of all commands available in the Cortex Command Line Interface. ---- -This reference guide provides a list of all commands available in the Cortex Command Line -Interface (Cortex CLI). See [CLI](getting-started/use-cli.md) for -help getting started using the CLI. -## Notation -The following table describes the common notation used in this reference guide. - -| Notation | Description | Example | -| -------- | ----------- | ------- | -| \`< >\` | Required | \`\` denotes a required value. | -| \`[ ]\` | Optional | \`[options]\` denotes an optional value. | -## Syntax -\`\`\`cli -cortex [command] [options] -\`\`\` -## Global options -| Option | Description | -| --------- | --------- | -| \`-v\`, \`--version\` | Outputs the version number. | -| \`-h\`, \`--help\` | Outputs usage information. | -| \`--profile [profile]\` | Run the CLI using the specified profile instead of the default config. | -## General notes -* The output results for most \`list\` commands display as a table. Add the -\`--json\` option to output results as JSON. When \`--json\` is used, you can use the -\`--query\` option to [filter the results](/getting-started/use-cli.md). -* The output results for \`describe\` commands display in the format of the document -it is describing. This can include YAML, JSON, or other formats. -`; function markdownForCmd(program) { const docObj = docObject(program); return `${cmdHeading(program)}\n${subcmdTable(docObj)}`; } -const vm = require('vm'); -const body = cmd_files.sort().map((cmdFile) => { - vm.runInNewContext(`const prog = require("${cmdFile}"); result = markdownForCmd(prog);`, - { markdownForCmd } - ); -}); - -const output = header + body; -// if outfile write to file ... -if (_.isEmpty(outfile)) { - console.log(output); -} else { - fs.writeFileSync(outfile, output); -} +const cmd = require(process.argv[2]); +console.log(markdownForCmd(cmd)); diff --git a/generate_docs.sh b/generate_docs.sh index 5a99c60a..5e7df1a8 100755 --- a/generate_docs.sh +++ b/generate_docs.sh @@ -1,6 +1,47 @@ -#!/bin/bash -eux +#!/bin/bash -eu OUTFILE=cortex-cli-docs.md + +header() { +cat << 'EOF' +--- +title: "Cortex CLI" +linkTitle: "Cortex CLI" +description: > + Provides a list of all commands available in the Cortex Command Line Interface. +--- +This reference guide provides a list of all commands available in the Cortex Command Line +Interface (Cortex CLI). See [CLI](getting-started/use-cli.md) for +help getting started using the CLI. +## Notation +The following table describes the common notation used in this reference guide. + +| Notation | Description | Example | +| -------- | ----------- | ------- | +| `\< \>` | Required | `` denotes a required value. | +| `[ ]` | Optional | `[options]` denotes an optional value. | +## Syntax +```cli +cortex [command] [options] +``` +## Global options +| Option | Description | +| --------- | --------- | +| `-v`, `--version` | Outputs the version number. | +| `-h`, `--help` | Outputs usage information. | +| `--profile [profile]` | Run the CLI using the specified profile instead of the default config. | +## General notes +* The output results for most `list` commands display as a table. Add the +`--json` option to output results as JSON. When `--json` is used, you can use the +`--query` option to [filter the results](/getting-started/use-cli.md). +* The output results for `describe` commands display in the format of the document +it is describing. This can include YAML, JSON, or other formats. +EOF +} # generating markdown -node generate_docs.js ${OUTFILE} -echo -echo "Done -> ${OUTFILE}" +#node generate_docs.js ${OUTFILE} +#echo +#echo "Done -> ${OUTFILE}" +echo "$(header)" > ${OUTFILE} +for CMD in $(ls -1 ./bin/cortex-*.js| sort); do + node generate_docs.js $CMD >> $OUTFILE +done diff --git a/src/commands/configure.js b/src/commands/configure.js index a87350b1..fd983e78 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -183,16 +183,20 @@ module.exports.PrintEnvVars = class { } async execute() { - const vars = []; - const options = this.program.opts(); - const profile = await loadProfile(options.profile, false); - const ttl = options.ttl || '1d'; - const jwt = await generateJwt(profile, ttl); - vars.push(`export CORTEX_TOKEN=${jwt}`); - vars.push(`export CORTEX_URI=${profile.url}`); - // not sure why we used URI previously ?? - vars.push(`export CORTEX_URL=${profile.url}`); - vars.push(`export CORTEX_PROJECT=${options.project || profile.project}`); - return printSuccess(vars.join('\n'), options); + try { + const vars = []; + const options = this.program.opts(); + const profile = await loadProfile(options.profile, false); + const ttl = options.ttl || '1d'; + const jwt = await generateJwt(profile, ttl); + vars.push(`export CORTEX_TOKEN=${jwt}`); + vars.push(`export CORTEX_URI=${profile.url}`); + // not sure why we used URI previously ?? + vars.push(`export CORTEX_URL=${profile.url}`); + vars.push(`export CORTEX_PROJECT=${options.project || profile.project}`); + return printSuccess(vars.join('\n'), { color: 'off' }); + } catch (err) { + return printError(err.message, {}, true); + } } }; diff --git a/src/commands/skills.js b/src/commands/skills.js index bfbab3bd..5981a729 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -36,7 +36,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const skill = parseObject(skillDefStr, options); const catalog = new Catalog(profile.url); if (!_.isEmpty(options.k8sResource)) { - const k8sResources = options.k8sResource.map((f) => parseObject(fs.readFileSync(f), options)); + const k8sResources = options.k8sResource.map((f) => JSON.stringify(parseObject(fs.readFileSync(f), options))); if (_.isEmpty(_.get(skill, 'actions', []))) { printError('Skill must contain an action to apply kubernetes resources', options, true); } From 43b7bad26349ff6b91604faaca9f9649961d9b97 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 29 Sep 2021 13:48:09 -0500 Subject: [PATCH 463/864] cleanup --- generate_docs.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/generate_docs.js b/generate_docs.js index 7abe6047..bf799ffe 100644 --- a/generate_docs.js +++ b/generate_docs.js @@ -2,12 +2,6 @@ * Opted to use pure JS versus adding handlebars as a dep, as handlebars always has vulns.. */ const _ = require('lodash'); -const fs = require('fs'); -const glob = require('glob'); - -const outfile = _.get(process.argv, '[2]'); - -const cmd_files = ['./bin/cortex-agents.js', './bin/cortex-actions.js']; // glob.sync('./bin/cortex-*.js'); function docObject(program) { return program.commands.map((c) => ({ @@ -52,11 +46,11 @@ ${cmd.name()} ${cmd.usage()} ${cmd.description()} `; - function markdownForCmd(program) { const docObj = docObject(program); return `${cmdHeading(program)}\n${subcmdTable(docObj)}`; } +// eslint-disable-next-line import/no-dynamic-require const cmd = require(process.argv[2]); console.log(markdownForCmd(cmd)); From 5f5a139aa2f8a601ec98d0c078fdbf541b27b6ca Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 20 Oct 2021 11:38:27 -0500 Subject: [PATCH 464/864] . --- package-lock.json | 153 +++++++++++----------------------------------- package.json | 2 +- 2 files changed, 38 insertions(+), 117 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2272f1b7..e5fb817b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -453,23 +453,11 @@ } }, "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } + "string-width": "^4.1.0" } }, "ansi-colors": { @@ -478,11 +466,6 @@ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1045,9 +1028,9 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "strip-ansi": { @@ -1368,7 +1351,8 @@ "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true }, "encoding": { "version": "0.1.13", @@ -1515,9 +1499,9 @@ } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "argparse": { @@ -3012,7 +2996,8 @@ "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { "version": "4.0.1", @@ -3671,16 +3656,16 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.2.tgz", + "integrity": "sha512-ta3LtJ+63RIBP03VBjMGtSqbe6cWXRejF9SyM9Zyli1CKZJZ+vfCTj3oW24V7wAphMJdpOFLoMI3hjJ1LWbs0w==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.2", - "debug": "4.3.1", + "debug": "4.3.2", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", @@ -3691,12 +3676,11 @@ "log-symbols": "4.1.0", "minimatch": "3.0.4", "ms": "2.1.3", - "nanoid": "3.1.23", + "nanoid": "3.1.25", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "wide-align": "1.1.3", "workerpool": "6.1.5", "yargs": "16.2.0", "yargs-parser": "20.2.4", @@ -3704,9 +3688,9 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "cliui": { @@ -3720,23 +3704,6 @@ "wrap-ansi": "^7.0.0" } }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "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 - } - } - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -3801,12 +3768,12 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "supports-color": { @@ -3886,9 +3853,9 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, "nanomatch": { @@ -3997,8 +3964,7 @@ }, "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "resolved": "" }, "chalk": { "version": "4.1.0", @@ -5112,8 +5078,7 @@ }, "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "resolved": "", "dev": true }, "ansi-styles": { @@ -5939,9 +5904,9 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "emoji-regex": { "version": "8.0.0", @@ -5983,14 +5948,6 @@ "define-properties": "^1.1.3" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -6388,42 +6345,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -6486,9 +6407,9 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "strip-ansi": { diff --git a/package.json b/package.json index df03da0f..02e0820e 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "eslint": "7.32.0", "eslint-config-airbnb-base": "14.2.1", "eslint-plugin-import": "2.24.2", - "mocha": "9.1.1", + "mocha": "9.1.2", "mocked-env": "1.3.5", "nock": "13.1.3", "rewire": "5.0.0", From 2d9afd835762204832b2b25113737222a5500d9f Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 21 Oct 2021 11:15:34 -0500 Subject: [PATCH 465/864] Bump vulns, fix linting --- build.sh | 5 +- c12e-ci.yml | 2 +- package-lock.json | 493 +++++++++++++++++++--------------------- package.json | 10 +- src/commands/actions.js | 20 +- 5 files changed, 246 insertions(+), 284 deletions(-) diff --git a/build.sh b/build.sh index 0cf608cd..c7ee8875 100755 --- a/build.sh +++ b/build.sh @@ -26,10 +26,7 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ - npm -v - npm config set loglevel warn - npm cache clear --force - npm install -dd --verbose + npm install npm test echo ${VERSION} > version.txt ./generate_docs.sh diff --git a/c12e-ci.yml b/c12e-ci.yml index 05cc4fcf..7430f793 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: c12e/nodejs:dev-12.22.0 + image: node:14-bullseye command: "./build.sh CI" diff --git a/package-lock.json b/package-lock.json index e5fb817b..d579ccc6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -83,11 +83,11 @@ } }, "@babel/runtime-corejs3": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", - "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", + "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", "requires": { - "core-js-pure": "^3.0.0", + "core-js-pure": "^3.16.0", "regenerator-runtime": "^0.13.4" } }, @@ -195,25 +195,25 @@ "dev": true }, "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "requires": { - "@nodelib/fs.stat": "2.0.3", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" }, "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "requires": { - "@nodelib/fs.scandir": "2.1.3", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, @@ -300,14 +300,14 @@ } }, "@types/fined": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.2.tgz", - "integrity": "sha512-hzzTS+X9EqDhx4vwdch/DOZci/bfh5J6Nyz8lqvyfBg2ROx2fPafX+LpDfpVgSvQKj0EYkwTYpBO3z2etwbkOw==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", + "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" }, "@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.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "requires": { "@types/minimatch": "*", "@types/node": "*" @@ -350,9 +350,9 @@ } }, "@types/liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha512-1jsThE//wKDK+hYM+NJqswI+K9lfR0YNMctteOxAzk/aemI0rQsVDk6Dia0zkPfBWFTh+hiDmrGQXqP1tyM+eg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", + "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", "requires": { "@types/fined": "*", "@types/interpret": "*", @@ -360,9 +360,9 @@ } }, "@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==" }, "@types/node": { "version": "14.14.8", @@ -466,6 +466,26 @@ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -986,17 +1006,17 @@ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "^3.1.0" } }, "cli-spinners": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", - "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" }, "cli-table3": { "version": "0.6.0", @@ -1016,6 +1036,11 @@ } } }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -1128,9 +1153,9 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js-pure": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.0.tgz", - "integrity": "sha512-fRjhg3NeouotRoIV0L1FdchA6CK7ZD+lyINyMoz19SyV+ROpC4noS1xItWHFtwZdlqfMfVPJEyEGdfri2bD1pA==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", + "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "cross-fetch": { "version": "3.1.4", @@ -2170,26 +2195,30 @@ "dev": true }, "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "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" }, "dependencies": { "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==", "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" } } }, @@ -2206,9 +2235,9 @@ "dev": true }, "fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "requires": { "reusify": "^1.0.4" } @@ -2221,6 +2250,14 @@ "pend": "~1.2.0" } }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, "file-entry-cache": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", @@ -2557,14 +2594,14 @@ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "graphql": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.0.tgz", - "integrity": "sha512-WJR872Zlc9hckiEPhXgyUftXH48jp2EjO5tgBBOyNMRJZ9fviL2mJBD6CAysk6N5S0r9BTs09Qk39nnJBkvOXQ==" + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-request": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.5.0.tgz", - "integrity": "sha512-Io89QpfU4rqiMbqM/KwMBzKaDLOppi8FU8sEccCE4JqCgz95W9Q8bvxQ4NfPALLSMvg9nafgg8AkYRmgKSlukA==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.6.1.tgz", + "integrity": "sha512-Nm1EasrAQVZllyNTlHDLnLZjlhC6eRWnWP6KH//ytnAL08pjlLkdI2K+s6OV92p45hn5b/kUlLbDwACmRoLwrQ==", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -2599,6 +2636,13 @@ "source-map": "^0.6.1", "uglify-js": "^3.1.4", "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==" + } } }, "has": { @@ -2615,13 +2659,6 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } } }, "has-bigints": { @@ -2669,11 +2706,6 @@ "kind-of": "^4.0.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -2833,6 +2865,41 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", @@ -2871,11 +2938,6 @@ "kind-of": "^3.0.2" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -2920,6 +2982,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -2942,11 +3009,6 @@ "kind-of": "^3.0.2" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3142,9 +3204,9 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==" + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==" }, "isexe": { "version": "2.0.0", @@ -3492,11 +3554,6 @@ } } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -3656,9 +3713,9 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mocha": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.2.tgz", - "integrity": "sha512-ta3LtJ+63RIBP03VBjMGtSqbe6cWXRejF9SyM9Zyli1CKZJZ+vfCTj3oW24V7wAphMJdpOFLoMI3hjJ1LWbs0w==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", + "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -3920,9 +3977,9 @@ } }, "nock": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.3.tgz", - "integrity": "sha512-YKj0rKQWMGiiIO+Y65Ut8OEgYM3PplLU2+GAhnPmqZdBd6z5IskgdBqWmjzA6lH3RF0S2a3wiAlrMOF5Iv2Jeg==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", + "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", "dev": true, "requires": { "debug": "^4.1.0", @@ -3937,9 +3994,9 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-plop": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.2.tgz", - "integrity": "sha512-q444beWkMvZwAiYC3BRGJUHgRlpOItQHy+xdy6egXg8KjxDY/Ro309spQTNvH01qK9A8XF6pc0xLKbrHDpxW7w==", + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", + "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", "requires": { "@babel/runtime-corejs3": "^7.9.2", "@types/inquirer": "^6.5.0", @@ -3954,68 +4011,6 @@ "resolve": "^1.12.0" }, "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==", - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "" - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - } - }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -4023,33 +4018,6 @@ "requires": { "minimist": "^1.2.5" } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" } } }, @@ -4136,11 +4104,6 @@ "is-descriptor": "^0.1.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -4299,6 +4262,14 @@ "supports-color": "^5.3.0" } }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -4325,6 +4296,28 @@ "chalk": "^2.0.1" } }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -4531,9 +4524,10 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "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": { "version": "3.0.0", @@ -4662,25 +4656,20 @@ } }, "plop": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.4.tgz", - "integrity": "sha512-SaqN3mwug/Ur2RE/ryo05oLTLy+8qZGwosNt9JnrFWca+dLCsPJR1j2ZXwjrccmNu6LA7eB56lRyk/G0fKf9HA==", + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", + "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", "requires": { - "@types/liftoff": "^2.5.0", + "@types/liftoff": "^2.5.1", "chalk": "^1.1.3", "interpret": "^1.2.0", "liftoff": "^2.5.0", - "minimist": "^1.2.0", - "node-plop": "~0.26.2", + "minimist": "^1.2.5", + "node-plop": "^0.26.3", "ora": "^3.4.0", "v8flags": "^2.0.10" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", @@ -4698,14 +4687,6 @@ "supports-color": "^2.0.0" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -4782,6 +4763,11 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -4906,9 +4892,9 @@ } }, "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "regex-not": { "version": "1.0.2", @@ -4926,9 +4912,9 @@ "dev": true }, "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", @@ -5001,27 +4987,12 @@ } }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" - }, - "dependencies": { - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - } } }, "ret": { @@ -5451,9 +5422,12 @@ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } }, "rxjs": { "version": "6.6.3", @@ -5678,11 +5652,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, @@ -5740,11 +5709,6 @@ "kind-of": "^3.2.0" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -5775,9 +5739,9 @@ } }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.3", @@ -5792,9 +5756,9 @@ } }, "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, "spdx-correct": { "version": "3.1.1", @@ -5948,6 +5912,14 @@ "define-properties": "^1.1.3" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -6068,11 +6040,6 @@ "kind-of": "^3.0.2" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -6141,9 +6108,9 @@ "dev": true }, "uglify-js": { - "version": "3.13.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz", - "integrity": "sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", + "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", "optional": true }, "unbox-primitive": { diff --git a/package.json b/package.json index 02e0820e..99405ccf 100644 --- a/package.json +++ b/package.json @@ -41,8 +41,8 @@ "get-stream": "6.0.1", "glob": "7.2.0", "got": "11.8.2", - "graphql": "15.6.0", - "graphql-request": "3.5.0", + "graphql": "15.6.1", + "graphql-request": "3.6.1", "is-installed-globally": "0.4.0", "jmespath": "0.15.0", "jose-node-cjs-runtime": "3.18.0", @@ -50,7 +50,7 @@ "lodash": "4.17.21", "moment": "2.29.1", "npm-registry-fetch": "11.0.0", - "plop": "2.7.4", + "plop": "2.7.6", "prompt": "1.2.0", "semver": "7.3.5", "url-join": "4.0.1", @@ -64,9 +64,9 @@ "eslint": "7.32.0", "eslint-config-airbnb-base": "14.2.1", "eslint-plugin-import": "2.24.2", - "mocha": "9.1.2", + "mocha": "9.1.3", "mocked-env": "1.3.5", - "nock": "13.1.3", + "nock": "13.1.4", "rewire": "5.0.0", "sinon": "11.1.2" } diff --git a/src/commands/actions.js b/src/commands/actions.js index ab7baf83..a84e64ab 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -166,18 +166,16 @@ module.exports.DeployActionCommand = class { actionInst.jobTimeout = parseInt(options.jobTimeout, 10); } - const actions = new Actions(profile.url); - actions.deployAction(options.project || profile.project, profile.token, actionInst) - .then((response) => { - if (response.success) { - printSuccess(JSON.stringify(response.message, null, 2), options); - } else { - printError(`Action deployment failed: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { + const actions = new Actions(profile.url); + const response = actions.deployAction(options.project || profile.project, profile.token, actionInst); + if (response.success) { + printSuccess(JSON.stringify(response.message, null, 2), options); + } else { + printError(`Action deployment failed: ${response.status} ${response.message}`, options); + } + } catch (err) { printError(`Failed to deploy action: ${err.status} ${err.message}`, options); - }); + } } }; From 64c955d25a56baa21b05fc8eace4a2bebf2b6d06 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Sat, 9 Oct 2021 23:26:16 +0530 Subject: [PATCH 466/864] fix typos --- src/commands/configure.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/configure.js b/src/commands/configure.js index fd983e78..640e06ce 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -36,7 +36,7 @@ function _validatePatFile(patFile) { } prompt.message = ''; -prompt.delimeter = ''; +prompt.delimiter = ''; prompt.colors = false; module.exports.ConfigureCommand = class { constructor(program) { From d62759a55914b9b945cdd2411e0a3b7c23bc4765 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Sat, 9 Oct 2021 23:28:39 +0530 Subject: [PATCH 467/864] fix for -project, -profile override for configure --- bin/cortex-configure.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 35bb4096..a6800643 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -83,8 +83,9 @@ program .option('--project [project]', 'The project to use') .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .description('Print cortex environment variables') - .action(() => { - new PrintEnvVars(program).execute(); + .action((options) => { + console.log(options); + new PrintEnvVars(program).execute(options); }); program From c51c709e75496fabcb9867a3f1418919b93889f3 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 12 Oct 2021 02:43:48 +0530 Subject: [PATCH 468/864] removed debug statements --- bin/cortex-configure.js | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index a6800643..58d9a048 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -84,7 +84,6 @@ program .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .description('Print cortex environment variables') .action((options) => { - console.log(options); new PrintEnvVars(program).execute(options); }); From d9ad55ce270f003a055d038507556ef615da986a Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Thu, 21 Oct 2021 15:18:23 -0500 Subject: [PATCH 469/864] missed an await on the actions save command (#436) --- src/commands/actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index a84e64ab..a33cf1e2 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -167,7 +167,7 @@ module.exports.DeployActionCommand = class { } const actions = new Actions(profile.url); - const response = actions.deployAction(options.project || profile.project, profile.token, actionInst); + const response = await actions.deployAction(options.project || profile.project, profile.token, actionInst); if (response.success) { printSuccess(JSON.stringify(response.message, null, 2), options); } else { From 80ecbc1280c4a091d85dabcbf5ffed40284a8128 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 25 Oct 2021 12:20:48 +0530 Subject: [PATCH 470/864] backward compatible with GET API --- bin/cortex-assessments.js | 4 ++-- src/client/assessments.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index f97826e0..02e983bb 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -57,8 +57,8 @@ program .description('Dependencies of a resource or find missing ones from dependencyFile') .storeOptionsAsProperties(false) .requiredOption('--scope [project]', 'project name of the resource') - .option('--name [Cortex component name]', 'Cortex component name') - .option('--type [Cortex component type]', 'Cortex resource type') + .option('--name [Cortex component name]', 'Cortex component name', '') + .option('--type [Cortex component type]', 'Cortex resource type', '') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/src/client/assessments.js b/src/client/assessments.js index 6c292f19..c2852708 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -32,7 +32,7 @@ module.exports = class Assessments { const url = `${this.endpointApiV4}/tree/${project}/${type}/${encodeURIComponent(name)}?${querystring.stringify({ missing })}`; debug('dependencyTree => %s', url); const body = { - headers: { Authorization: `Bearer ${token}` }, + headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, 'user-agent': getUserAgent(), }; if (json) { From 3309dde15c90e6b2dbeea07f6ef5a5c1b7c6d723 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 25 Oct 2021 13:16:42 +0530 Subject: [PATCH 471/864] backward compatible with GET API --- bin/cortex-assessments.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 02e983bb..4c22b76c 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -57,8 +57,8 @@ program .description('Dependencies of a resource or find missing ones from dependencyFile') .storeOptionsAsProperties(false) .requiredOption('--scope [project]', 'project name of the resource') - .option('--name [Cortex component name]', 'Cortex component name', '') - .option('--type [Cortex component type]', 'Cortex resource type', '') + .option('--name [Cortex component name]', 'Cortex component name', ' ') + .option('--type [Cortex component type]', 'Cortex resource type', ' ') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') From 63b5654a00cd0446a2cc7ffebc071dcf607cb199 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 26 Oct 2021 18:43:35 +0530 Subject: [PATCH 472/864] cli commands for list, save, get and delete sessions --- bin/cortex-sessions.js | 108 +++++++++++++++++++++++++++++ bin/cortex.js | 1 + src/client/sessions.js | 83 ++++++++++++++++++++++ src/commands/sessions.js | 144 +++++++++++++++++++++++++++++++++++++++ src/commands/utils.js | 7 +- 5 files changed, 342 insertions(+), 1 deletion(-) create mode 100755 bin/cortex-sessions.js create mode 100644 src/client/sessions.js create mode 100644 src/commands/sessions.js diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js new file mode 100755 index 00000000..eb8e9559 --- /dev/null +++ b/bin/cortex-sessions.js @@ -0,0 +1,108 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + DeleteSessionCommand, + SaveSessionCommand, + DescribeSessionCommand, + ListSessionsCommand, +} = require('../src/commands/sessions'); + +program.name('cortex sessions'); +program.description('Work with Cortex Sessions'); + +// List Sessions +program + .command('list') + .description('List session definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--json', 'Output results using JSON') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .action(withCompatibilityCheck((options) => { + try { + new ListSessionsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Describe Session +program + .command('describe ') + .description('Describe session') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((sessionName, options) => { + try { + new DescribeSessionCommand(program).execute(sessionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete Session +program + .command('delete ') + .description('Delete a session') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((sessionName, options) => { + try { + new DeleteSessionCommand(program).execute(sessionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Save Session +program + .command('save ') + .description('Save a session definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('-y, --yaml', 'Use YAML for session definition format') + .action(withCompatibilityCheck((sessionDefinition, options) => { + try { + new SaveSessionCommand(program).execute(sessionDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex.js b/bin/cortex.js index d49c65b5..1329b3b8 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -41,6 +41,7 @@ program .command('projects [cmd]', 'Work with Cortex Projects') .command('roles [cmd]', 'Work with a Cortex Roles') .command('secrets [cmd]', 'Work with Cortex Secrets') + .command('sessions [cmd]', 'Work with Cortex Sessions') .command('skills [cmd]', 'Work with Cortex Skills') .command('types [cmd]', 'Work with Cortex Types') .command('users [cmd]', 'Work with a Cortex Users'); diff --git a/src/client/sessions.js b/src/client/sessions.js new file mode 100644 index 00000000..5d3b78ef --- /dev/null +++ b/src/client/sessions.js @@ -0,0 +1,83 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { + constructError, checkProject, getUserAgent, +} = require('../commands/utils'); + +module.exports = class Sessions { + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/sessions`; + } + + saveSession(projectId, token, sessionObj) { + checkProject(projectId); + const endpoint = this.endpointV4(projectId); + debug('saveSession(%s) => %s', sessionObj.name, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: sessionObj, + }).json() + .then((res) => ({ success: true, message: res })) + .catch((err) => constructError(err)); + } + + deleteSession(projectId, token, sessionName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(sessionName)}`; + debug('deleteSession(%s) => %s', sessionName, endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then((session) => ({ success: true, session })) + .catch((err) => constructError(err)); + } + + describeSession(projectId, token, sessionName, verbose) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(sessionName)}`; + debug('describeSession(%s) => %s', sessionName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then((session) => ({ success: true, session })) + .catch((err) => constructError(err)); + } + + listSessions(projectId, token) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}`; + debug('listSessions() => %s', endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then((sessionsResp) => ({ success: true, ...sessionsResp })) + .catch((err) => constructError(err)); + } +}; diff --git a/src/commands/sessions.js b/src/commands/sessions.js new file mode 100644 index 00000000..39714c49 --- /dev/null +++ b/src/commands/sessions.js @@ -0,0 +1,144 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const fs = require('fs'); + +const _ = { + get: require('lodash/get'), + pick: require('lodash/pick'), +}; +const debug = require('debug')('cortex:cli'); +const { loadProfile } = require('../config'); +const Sessions = require('../client/sessions'); +const { SESSIONTABLEFORMAT } = require('./utils'); + +const { + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, +} = require('./utils'); + +module.exports.SaveSessionCommand = class SaveSessionCommand { + constructor(program) { + this.program = program; + } + + async execute(sessionDefinition, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeSaveSession(%s)', profile.name, sessionDefinition); + + const sessionDefStr = fs.readFileSync(sessionDefinition); + const session = parseObject(sessionDefStr, options); + debug('%o', session); + + const sessions = new Sessions(profile.url); + sessions.saveSession(options.project || profile.project, profile.token, session).then((response) => { + if (response.success) { + printSuccess('Session saved', options); + printSuccess(JSON.stringify(_.pick(response.message, ['sessionId']), null, 2)); + } else if (response.details) { + console.log(`Failed to save session: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map((d) => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + }) + .catch((err) => { + printError(`Failed to save session: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.ListSessionsCommand = class ListSessionsCommand { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = await loadProfile(options.profile); + debug('%s.executeListSessions()', profile.name); + const sessions = new Sessions(profile.url); + sessions.listSessions(options.project || profile.project, profile.token).then((response) => { + if (response.success) { + let result = response.sessions; + if (options.query) result = filterObject(result, options); + + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printTable(SESSIONTABLEFORMAT, result); + } + } else { + printError(`Failed to list sessions: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + debug(err); + printError(`Failed to list sessions: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DescribeSessionCommand = class DescribeSessionCommand { + constructor(program) { + this.program = program; + } + + async execute(sessionName, options) { + const profile = await loadProfile(options.profile); + const sessions = new Sessions(profile.url); + debug('%s.executeDescribeSession(%s)', profile.name, sessionName); + sessions.describeSession(options.project || profile.project, profile.token, sessionName, options.verbose).then((response) => { + if (response.success) { + const result = filterObject(response.session, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe session ${sessionName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe session ${sessionName}: ${err.status} ${err.message}`, options); + }); + } +}; + +module.exports.DeleteSessionCommand = class DeleteSessionCommand { + constructor(program) { + this.program = program; + } + + async execute(sessionName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeDeleteSession(%s)', profile.name, sessionName); + const sessions = new Sessions(profile.url); + sessions.deleteSession(options.project || profile.project, profile.token, sessionName) + .then((response) => { + if (response && response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Session deletion failed: ${response.status} ${response.message}.`, options); + } + }) + .catch((err) => { + printError(`Failed to delete session: ${err.status} ${err.message}`, options); + }); + } +}; diff --git a/src/commands/utils.js b/src/commands/utils.js index ed06b240..e4fe2406 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -302,7 +302,6 @@ module.exports.LISTTABLEFORMAT = [ { column: 'Description', field: 'description', width: 50 }, { column: 'Modified', field: 'updatedAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 25 }, - ]; module.exports.RUNTABLEFORMAT = [ @@ -311,3 +310,9 @@ module.exports.RUNTABLEFORMAT = [ { column: 'Took', field: 'took', width: 50 }, { column: 'Modified', field: '_updatedAt', width: 26 }, ]; + +module.exports.SESSIONTABLEFORMAT = [ + { column: 'Session ID', field: 'sessionId', width: 45 }, + { column: 'TTL', field: 'ttl', width: 15 }, + { column: 'Description', field: 'description', width: 70 }, +]; From 52c53d95d412bf76dec27caf364753d351f6d830 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 26 Oct 2021 18:56:28 +0530 Subject: [PATCH 473/864] display the error message --- src/commands/sessions.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 39714c49..9c34604f 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -48,14 +48,6 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { printSuccess(JSON.stringify(_.pick(response.message, ['sessionId']), null, 2)); } else if (response.details) { console.log(`Failed to save session: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - printError(''); // Just exit } else { printError(JSON.stringify(response)); } From 68bc206c561d5025c84d3fa0a95c2e9b163b6154 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 26 Oct 2021 19:32:44 +0530 Subject: [PATCH 474/864] removed table view till path is added in the api response --- src/commands/sessions.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 9c34604f..ea9ece99 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -46,8 +46,6 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { if (response.success) { printSuccess('Session saved', options); printSuccess(JSON.stringify(_.pick(response.message, ['sessionId']), null, 2)); - } else if (response.details) { - console.log(`Failed to save session: ${response.status} ${response.message}`); } else { printError(JSON.stringify(response)); } From d5818e09340a692f48f52f82bda5376187a8bd70 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 26 Oct 2021 19:41:27 +0530 Subject: [PATCH 475/864] lint fix --- src/commands/sessions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/sessions.js b/src/commands/sessions.js index ea9ece99..12f8c713 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -25,7 +25,7 @@ const Sessions = require('../client/sessions'); const { SESSIONTABLEFORMAT } = require('./utils'); const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, + printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); module.exports.SaveSessionCommand = class SaveSessionCommand { From 0603753a07e5afd66d4bc382ca21e465f8acf706 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 28 Oct 2021 18:12:44 +0530 Subject: [PATCH 476/864] added tabular error for consistency --- src/commands/sessions.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 12f8c713..66273915 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -22,7 +22,7 @@ const _ = { const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Sessions = require('../client/sessions'); -const { SESSIONTABLEFORMAT } = require('./utils'); +const { SESSIONTABLEFORMAT, formatValidationPath} = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, @@ -45,7 +45,16 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { sessions.saveSession(options.project || profile.project, profile.token, session).then((response) => { if (response.success) { printSuccess('Session saved', options); - printSuccess(JSON.stringify(_.pick(response.message, ['sessionId']), null, 2)); + } else if (response.details) { + console.log(`Failed to save session: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map((d) => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit } else { printError(JSON.stringify(response)); } From fbda57eacead3db4c9c1eec041a4592f8e99f098 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 2 Nov 2021 14:19:13 +0530 Subject: [PATCH 477/864] removed unused code --- src/commands/sessions.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 66273915..c823e4a3 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -15,10 +15,6 @@ */ const fs = require('fs'); -const _ = { - get: require('lodash/get'), - pick: require('lodash/pick'), -}; const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Sessions = require('../client/sessions'); From 0e1a5276bf6edab3ee2c70bce9592f7e82733563 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 2 Nov 2021 14:24:46 +0530 Subject: [PATCH 478/864] lint fix --- src/commands/sessions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/sessions.js b/src/commands/sessions.js index c823e4a3..94ed9810 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -18,7 +18,7 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Sessions = require('../client/sessions'); -const { SESSIONTABLEFORMAT, formatValidationPath} = require('./utils'); +const { SESSIONTABLEFORMAT, formatValidationPath } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, From 417be000ceb6df4dd1e8d61837668b7eb5844693 Mon Sep 17 00:00:00 2001 From: ljha Date: Mon, 8 Nov 2021 21:38:39 +0530 Subject: [PATCH 479/864] export connections from dependencies --- src/commands/deploy.js | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index dad94cf1..b2f68266 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -326,35 +326,6 @@ module.exports.DeployCampaignCommand = class { } }; -module.exports.DeployConnectionCommand = class { - constructor(program) { - this.program = program; - } - - async execute(connectionName, options) { - const profile = await loadProfile(options.profile); - const project = options.project || profile.project; - debug('%s.exportDeploymentConnection%s)', profile.name, connectionName); - - const connection = new Connections(profile.url); - connection.describeConnection(project, profile.token, connectionName).then(async (response) => { - if (response.success) { - const result = filterObject(response.result, options); - const connectionDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, 'connections', `${connectionName}.json`); - writeToFile(connectionDesc, filepath); - updateManifest({ connection: [filepath] }); - await addDependencies(profile.url, profile.token, project, 'Connection', connectionName); - printSuccess(`Successfully exported Connection ${connectionName} in ${artifactsDir} and updated manifest file ${manifestFile}`); - } else { - printError(`Failed to export connection ${connectionName}: ${response.message}`, options); - } - }).catch((err) => { - printError(`Failed to export connection ${connectionName}: ${err.status} ${err.message}`, options); - }); - } -}; - module.exports.DeploySkillCommand = class { constructor(program) { this.program = program; From 09dda26fbd87273c8cff855e7a3fe4abf131b122 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 10 Nov 2021 18:52:13 +0530 Subject: [PATCH 480/864] lint fix --- src/client/models.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/models.js b/src/client/models.js index 2bbc8087..153e0910 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -49,8 +49,8 @@ module.exports = class Models { 'user-agent': getUserAgent(), json: {}, }).json() - .then(res => ({ success: true, message: res })) - .catch(err => constructError(err)); + .then((res) => ({ success: true, message: res })) + .catch((err) => constructError(err)); } deleteModel(projectId, token, modelName) { From 804f559b49a8dab135b71333c068069f2bf02e0e Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 11 Nov 2021 17:05:09 +0530 Subject: [PATCH 481/864] code refactor --- src/commands/skills.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index 3032ff67..f5d2a21f 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -20,10 +20,9 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agent = require('../client/agents'); -const { LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT } = require('./utils'); const { - printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, + printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { From ae8cb615a654d9f3953b2e787b959241453184a7 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 11 Nov 2021 18:06:06 +0530 Subject: [PATCH 482/864] removed unwanted variable --- src/commands/skills.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index 19ffc567..f5d2a21f 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -20,7 +20,6 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agent = require('../client/agents'); -const { LISTTABLEFORMAT } = require('./utils'); const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, From fac673a8b3da01e8fa632c51484c0f4661ae1440 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 12 Nov 2021 16:36:19 +0530 Subject: [PATCH 483/864] added limit support to list sessions cli --- bin/cortex-sessions.js | 1 + package-lock.json | 3 ++- src/client/sessions.js | 4 ++-- src/commands/sessions.js | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index eb8e9559..68a9773a 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -37,6 +37,7 @@ program .description('List session definitions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') + .option('--limit [limit]', 'Number of sessions to list') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') diff --git a/package-lock.json b/package-lock.json index d579ccc6..b5984532 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5049,7 +5049,8 @@ }, "ansi-regex": { "version": "5.0.0", - "resolved": "", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { diff --git a/src/client/sessions.js b/src/client/sessions.js index 5d3b78ef..40fc5c59 100644 --- a/src/client/sessions.js +++ b/src/client/sessions.js @@ -67,9 +67,9 @@ module.exports = class Sessions { .catch((err) => constructError(err)); } - listSessions(projectId, token) { + listSessions(projectId, token, limit) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}`; + const endpoint = `${this.endpointV4(projectId)}?limit=${limit}`; debug('listSessions() => %s', endpoint); return got .get(endpoint, { diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 94ed9810..51e26c95 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -70,7 +70,7 @@ module.exports.ListSessionsCommand = class ListSessionsCommand { const profile = await loadProfile(options.profile); debug('%s.executeListSessions()', profile.name); const sessions = new Sessions(profile.url); - sessions.listSessions(options.project || profile.project, profile.token).then((response) => { + sessions.listSessions(options.project || profile.project, profile.token, options.limit).then((response) => { if (response.success) { let result = response.sessions; if (options.query) result = filterObject(result, options); From 900dc719c1f04cd2ba0c0c99e6140b1b6354aec5 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Thu, 18 Nov 2021 14:47:57 +0530 Subject: [PATCH 484/864] fixed delete agents and skills --- src/commands/agents.js | 4 ++-- src/commands/skills.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 32f62011..74cb26e8 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -420,8 +420,8 @@ module.exports.DeleteAgentCommand = class DeleteAgentCommand { this.program = program; } - execute(agentName, options) { - const profile = loadProfile(options.profile); + async execute(agentName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDeleteAgent(%s)', profile.name, agentName); const catalog = new Catalog(profile.url); catalog.deleteAgent(options.project || profile.project, profile.token, agentName) diff --git a/src/commands/skills.js b/src/commands/skills.js index 2a49cbe0..b5743a16 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -241,8 +241,8 @@ module.exports.DeleteSkillCommand = class DeleteSkillCommand { this.program = program; } - execute(skillName, options) { - const profile = loadProfile(options.profile); + async execute(skillName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDeleteSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); catalog.deleteSkill(options.project || profile.project, profile.token, skillName) From 610fab94b91dccbd751d72029b43fa1a13a02d7b Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Wed, 24 Nov 2021 15:52:04 +0530 Subject: [PATCH 485/864] added scalecount to skill save --- bin/cortex-skills.js | 1 + src/commands/skills.js | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 806361dc..3dd25542 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -133,6 +133,7 @@ program .option('--project [project]', 'The project to use') .option('-k, --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill') .option('-y, --yaml', 'Use YAML for skill definition format') + .option('--scaleCount [count]', 'Scale count, only used for daemon action types') .action(withCompatibilityCheck((skillDefinition, options) => { try { new SaveSkillCommand(program).execute(skillDefinition, options); diff --git a/src/commands/skills.js b/src/commands/skills.js index b5743a16..0a822394 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -25,6 +25,10 @@ const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, } = require('./utils'); +function isNumeric(value) { + return /^-?\d+$/.test(value); +} + module.exports.SaveSkillCommand = class SaveSkillCommand { constructor(program) { this.program = program; @@ -46,6 +50,15 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { } skill.actions.map((a) => a.k8sResources = k8sResources); } + if (options.scaleCount) { + if (!isNumeric(options.scaleCount)) { + printError('--scaleCount must be a number', options); + } + if (skill.actions.length > 1) { + printWarning('Applying kubernetes resources to all actions'); + } + skill.actions.map((a) => a.scaleCount = parseInt(options.scaleCount, 10)); + } const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); if (response.success) { printSuccess('Skill saved', options); From b40efd2df2a65f85619bb0ccdf4dd3c243e968c2 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Thu, 25 Nov 2021 12:35:06 +0530 Subject: [PATCH 486/864] resolving review comments --- src/commands/actions.js | 6 +----- src/commands/skills.js | 10 ++++------ src/commands/utils.js | 2 ++ 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index a921b406..26f4127c 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -21,7 +21,7 @@ const { loadProfile } = require('../config'); const Actions = require('../client/actions'); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -87,10 +87,6 @@ module.exports.DescribeActionCommand = class { } }; -function isNumeric(value) { - return /^-?\d+$/.test(value); -} - module.exports.DeployActionCommand = class { constructor(program) { this.program = program; diff --git a/src/commands/skills.js b/src/commands/skills.js index 0a822394..bb255f56 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -22,13 +22,10 @@ const Catalog = require('../client/catalog'); const Agent = require('../client/agents'); const { - printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, + printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, } = require('./utils'); -function isNumeric(value) { - return /^-?\d+$/.test(value); -} - module.exports.SaveSkillCommand = class SaveSkillCommand { constructor(program) { this.program = program; @@ -57,7 +54,8 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { if (skill.actions.length > 1) { printWarning('Applying kubernetes resources to all actions'); } - skill.actions.map((a) => a.scaleCount = parseInt(options.scaleCount, 10)); + const scaleCount = parseInt(options.scaleCount, 10); + skill.actions.map((a) => a.scaleCount = scaleCount); } const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); if (response.success) { diff --git a/src/commands/utils.js b/src/commands/utils.js index 42841e93..b35047f8 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -321,3 +321,5 @@ module.exports.SESSIONTABLEFORMAT = [ { column: 'TTL', field: 'ttl', width: 15 }, { column: 'Description', field: 'description', width: 70 }, ]; + +module.exports.isNumeric = (value) => /^-?\d+$/.test(value); From 9c1ed4c22a3e4489758fa018f40c3ae6acb08e79 Mon Sep 17 00:00:00 2001 From: clee Date: Mon, 29 Nov 2021 13:55:25 -0600 Subject: [PATCH 487/864] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 99405ccf..261a1237 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.6", + "version": "2.0.7", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 106885032eb983f5cd7c3d328c15d42ccd988579 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 30 Nov 2021 10:55:20 +0530 Subject: [PATCH 488/864] added husky pre-push validation hook --- .husky/pre-push | 4 ++++ package-lock.json | 6 ++++++ package.json | 1 + 3 files changed, 11 insertions(+) create mode 100755 .husky/pre-push diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100755 index 00000000..449fcdee --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npm test diff --git a/package-lock.json b/package-lock.json index b5984532..8224a22b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2806,6 +2806,12 @@ "ms": "^2.0.0" } }, + "husky": { + "version": "7.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/husky/-/husky-7.0.4.tgz", + "integrity": "sha1-JCBIJF3EnI+xvwzHz7mN1yJTFTU=", + "dev": true + }, "iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", diff --git a/package.json b/package.json index 99405ccf..965f4a97 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ "eslint": "7.32.0", "eslint-config-airbnb-base": "14.2.1", "eslint-plugin-import": "2.24.2", + "husky": "7.0.4", "mocha": "9.1.3", "mocked-env": "1.3.5", "nock": "13.1.4", From 0f67014cedeb9807fc3ce6321dcb7f2d2559ef76 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 30 Nov 2021 20:01:35 +0530 Subject: [PATCH 489/864] change response message --- src/commands/sessions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 51e26c95..13b60fe4 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -40,7 +40,7 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { const sessions = new Sessions(profile.url); sessions.saveSession(options.project || profile.project, profile.token, session).then((response) => { if (response.success) { - printSuccess('Session saved', options); + printSuccess(response.message.message, options); } else if (response.details) { console.log(`Failed to save session: ${response.status} ${response.message}`); console.log('The following issues were found:'); From f5fb36e600b69066971b5a14a82d8bb31191df4d Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 30 Nov 2021 22:42:49 +0530 Subject: [PATCH 490/864] Review comments --- src/commands/sessions.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 13b60fe4..ead6c0be 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -14,6 +14,7 @@ * limitations under the License. */ const fs = require('fs'); +const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); @@ -40,7 +41,7 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { const sessions = new Sessions(profile.url); sessions.saveSession(options.project || profile.project, profile.token, session).then((response) => { if (response.success) { - printSuccess(response.message.message, options); + printSuccess(_.get(response, 'message.message', 'Session saved'), options); } else if (response.details) { console.log(`Failed to save session: ${response.status} ${response.message}`); console.log('The following issues were found:'); From 9ee0c4a6d5b76c076c38b66f3fd5841a6665664c Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 1 Dec 2021 11:10:50 -0600 Subject: [PATCH 491/864] Add agent deploy/undeploy --- bin/cortex-agents.js | 46 +++++++++++++++++++++++++++++++++++------- src/client/catalog.js | 28 +++++++++++++++++++++++++ src/commands/agents.js | 46 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+), 7 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 8bee5bee..04a0efae 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -22,17 +22,19 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - SaveAgentCommand, - ListAgentsCommand, + CreateAgentSnapshotCommand, + DeleteAgentCommand, + DeployAgentCommand, DescribeAgentCommand, - InvokeAgentServiceCommand, + DescribeAgentSnapshotCommand, GetActivationCommand, + InvokeAgentServiceCommand, ListActivationsCommand, - ListServicesCommand, ListAgentSnapshotsCommand, - DescribeAgentSnapshotCommand, - CreateAgentSnapshotCommand, - DeleteAgentCommand, + ListAgentsCommand, + ListServicesCommand, + SaveAgentCommand, + UndeployAgentCommand, } = require('../src/commands/agents'); program.name('cortex agents'); @@ -74,6 +76,21 @@ program } })); +// Deploy agent +program + .command('deploy ') + .description('Deploy the agent resource to the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((agentName, options) => { + try { + new DeployAgentCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + // Describe Agent program .command('describe ') @@ -177,6 +194,21 @@ program } })); +// Undeploy agent +program + .command('undeploy ') + .description('Undeploy the agent resource from the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((agentName, options) => { + try { + new UndeployAgentCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program .command('list-snapshots ') .description('List agent snapshots') diff --git a/src/client/catalog.js b/src/client/catalog.js index d3725c13..2b039b38 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -202,6 +202,34 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } + deployAgent(projectId, token, agentName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/deploy`; + debug('deployAgent(%s) => %s', agentName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); + } + + unDeployAgent(projectId, token, agentName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/undeploy`; + debug('undeployAgent(%s) => %s', agentName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); + } + saveType(projectId, token, types) { checkProject(projectId); const endpoint = `${this.endpoints.types(projectId)}`; diff --git a/src/commands/agents.js b/src/commands/agents.js index 74cb26e8..caf5bb30 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -442,3 +442,49 @@ module.exports.DeleteAgentCommand = class DeleteAgentCommand { }); } }; + +module.exports.DeployAgentCommand = class DeployAgentCommand { + constructor(program) { + this.program = program; + } + + async execute(agentName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeDeployAgent(%s)', profile.name, agentName); + + const catalog = new Catalog(profile.url); + catalog.deployAgent(options.project || profile.project, profile.token, agentName, options.verbose).then((response) => { + if (response.success) { + printSuccess(`Deployed Agent ${agentName}: ${response.message}`, options); + } else { + printError(`Failed to deploy Agent ${agentName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to deploy Agent ${agentName}: ${err.status} ${err.message}`, options); + }); + } +}; + + +module.exports.UndeployAgentCommand = class UndeployAgentCommand { + constructor(program) { + this.program = program; + } + + async execute(agentName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeUndeployAgent(%s)', profile.name, agentName); + const catalog = new Catalog(profile.url); + catalog.unDeployAgent(options.project || profile.project, profile.token, agentName, options.verbose).then((response) => { + if (response.success) { + printSuccess(`Undeploy agent ${agentName}: ${response.message}`, options); + } else { + printError(`Failed to Undeploy agent ${agentName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to Undeploy agent ${agentName}: ${err.status} ${err.message}`, options); + }); + } +}; From 6f9e83ed7dab9e809368b25553de092545be2854 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Thu, 2 Dec 2021 14:01:15 +0530 Subject: [PATCH 492/864] added podspec --- bin/cortex-skills.js | 1 + src/commands/skills.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 806361dc..837b2803 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -132,6 +132,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('-k, --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill') + .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('-y, --yaml', 'Use YAML for skill definition format') .action(withCompatibilityCheck((skillDefinition, options) => { try { diff --git a/src/commands/skills.js b/src/commands/skills.js index b5743a16..3c9281f6 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -46,6 +46,11 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { } skill.actions.map((a) => a.k8sResources = k8sResources); } + if (options.podspec) { + const paramsStr = fs.readFileSync(options.podspec); + const podSpec = parseObject(paramsStr, options); + skill.actions.map((a) => a.podSpec = podSpec); + } const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); if (response.success) { printSuccess('Skill saved', options); From ae79410a6684a5863f2eb330e93ad32ec1a7fde1 Mon Sep 17 00:00:00 2001 From: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Date: Thu, 2 Dec 2021 19:42:23 +0530 Subject: [PATCH 493/864] Update package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 965f4a97..bcbe560b 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "main": "./bin/cortex.js", "scripts": { "preinstall": "npx check-node-version -p --package", + "prepare": "husky install", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", "test": "NODE_ENV=test mocha --exit" }, From c2857bca01c02b1cbac49921fd655520709ca5a8 Mon Sep 17 00:00:00 2001 From: dvasani-CS Date: Thu, 2 Dec 2021 20:25:16 +0530 Subject: [PATCH 494/864] returning just config --- src/commands/users.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/users.js b/src/commands/users.js index c86f6101..6aed7ab3 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -99,7 +99,7 @@ module.exports.UserCreateCommand = class { client.createServiceUser(profile.token, user).then((response) => { if (response.success) { const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + printSuccess(JSON.stringify(result.config, null, 2), options); } else { printError(`Failed to create user ${user} : ${response.message}`, options); } From 35ede4810e69842d369146fca0138f25f99c9231 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Fri, 3 Dec 2021 00:12:39 +0530 Subject: [PATCH 495/864] Error handling --- src/commands/agents.js | 7 ++++++- src/commands/connections.js | 4 +++- src/commands/experiments.js | 7 ++++++- src/commands/models.js | 4 +++- src/commands/sessions.js | 4 +++- src/commands/skills.js | 3 +++ 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 74cb26e8..63da6fcd 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -35,7 +35,9 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { async execute(agentDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveAgent(%s)', profile.name, agentDefinition); - + if (!fs.existsSync(agentDefinition)) { + printError(`File does not exist at: ${agentDefinition}`); + } const agentDefStr = fs.readFileSync(agentDefinition); const agent = parseObject(agentDefStr, options); debug('%o', agent); @@ -150,6 +152,9 @@ module.exports.InvokeAgentServiceCommand = class { printError(`Failed to parse params: ${options.params} Error: ${e}`, options); } } else if (options.paramsFile) { + if (!fs.existsSync(options.paramsFile)) { + printError(`File does not exist at: ${options.paramsFile}`); + } const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); } diff --git a/src/commands/connections.js b/src/commands/connections.js index 68dd95e6..4198a99f 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -83,7 +83,9 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { async execute(connectionDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveDefinition(%s)', profile.name, connectionDefinition); - + if (!fs.existsSync(connectionDefinition)) { + printError(`File does not exist at: ${connectionDefinition}`); + } const connDefStr = fs.readFileSync(connectionDefinition); const connObj = parseObject(connDefStr, options); debug('%o', connObj); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 92ad6cb8..e97c8465 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -252,6 +252,9 @@ class SaveExperimentCommand { const profile = await loadProfile(options.profile); debug('%s.executeSaveExperiment(%s)', profile.name, experimentDefinition); + if (!fs.existsSync(experimentDefinition)) { + printError(`File does not exist at: ${experimentDefinition}`); + } const experimentDefStr = fs.readFileSync(experimentDefinition); const experiment = parseObject(experimentDefStr, options); debug('%o', experiment); @@ -288,7 +291,9 @@ class CreateRunCommand { async execute(runDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeCreateRun(%s)', profile.name, runDefinition); - + if (!fs.existsSync(runDefinition)) { + printError(`File does not exist at: ${runDefinition}`); + } const runDefinitionStr = fs.readFileSync(runDefinition); const run = parseObject(runDefinitionStr, options); diff --git a/src/commands/models.js b/src/commands/models.js index 214fdb42..b0fb5d35 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -38,7 +38,9 @@ module.exports.SaveModelCommand = class SaveModelCommand { async execute(modelDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveModel(%s)', profile.name, modelDefinition); - + if (!fs.existsSync(modelDefinition)) { + printError(`File does not exist at: ${modelDefinition}`); + } const modelDefStr = fs.readFileSync(modelDefinition); const model = parseObject(modelDefStr, options); debug('%o', model); diff --git a/src/commands/sessions.js b/src/commands/sessions.js index ead6c0be..fb623f44 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -33,7 +33,9 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { async execute(sessionDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveSession(%s)', profile.name, sessionDefinition); - + if (!fs.existsSync(sessionDefinition)) { + printError(`File does not exist at: ${sessionDefinition}`); + } const sessionDefStr = fs.readFileSync(sessionDefinition); const session = parseObject(sessionDefStr, options); debug('%o', session); diff --git a/src/commands/skills.js b/src/commands/skills.js index b5743a16..70f2fba5 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -212,6 +212,9 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { printError(`Failed to parse params: ${options.params} Error: ${e}`, options); } } else if (options.paramsFile) { + if (!fs.existsSync(options.paramsFile)) { + printError(`File does not exist at: ${options.paramsFile}`); + } const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); } From 5859ecacd2fdb83c837b74f9b42024d001837905 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Fri, 3 Dec 2021 00:20:48 +0530 Subject: [PATCH 496/864] added debug for skill save --- src/commands/skills.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/skills.js b/src/commands/skills.js index 70f2fba5..e7951a65 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -35,6 +35,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const profile = await loadProfile(options.profile); const skillDefStr = fs.readFileSync(skillDefinition); const skill = parseObject(skillDefStr, options); + debug('%s.executeSaveSkill(%s)', profile.name,skillDefinition ); const catalog = new Catalog(profile.url); if (!_.isEmpty(options.k8sResource)) { const k8sResources = options.k8sResource.map((f) => JSON.stringify(parseObject(fs.readFileSync(f), options))); From 534bcd62c6227782f0852c7914be55e001c86d25 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Fri, 3 Dec 2021 00:25:16 +0530 Subject: [PATCH 497/864] fix lint errors --- src/commands/skills.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index e7951a65..ed948ef0 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -35,7 +35,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const profile = await loadProfile(options.profile); const skillDefStr = fs.readFileSync(skillDefinition); const skill = parseObject(skillDefStr, options); - debug('%s.executeSaveSkill(%s)', profile.name,skillDefinition ); + debug('%s.executeSaveSkill(%s)', profile.name ,skillDefinition); const catalog = new Catalog(profile.url); if (!_.isEmpty(options.k8sResource)) { const k8sResources = options.k8sResource.map((f) => JSON.stringify(parseObject(fs.readFileSync(f), options))); From 08eb077d5cc1f9a6b9a88a44f23d31f98bf5b507 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Fri, 3 Dec 2021 00:27:08 +0530 Subject: [PATCH 498/864] lint --- src/commands/skills.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index ed948ef0..cb80fe1a 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -35,7 +35,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const profile = await loadProfile(options.profile); const skillDefStr = fs.readFileSync(skillDefinition); const skill = parseObject(skillDefStr, options); - debug('%s.executeSaveSkill(%s)', profile.name ,skillDefinition); + debug('%s.executeSaveSkill(%s)', profile.name, skillDefinition); const catalog = new Catalog(profile.url); if (!_.isEmpty(options.k8sResource)) { const k8sResources = options.k8sResource.map((f) => JSON.stringify(parseObject(fs.readFileSync(f), options))); From 7b4531327734a677592e06624184846fe65da807 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 2 Dec 2021 20:41:17 -0600 Subject: [PATCH 499/864] Update jose 5 -> 6 --- package-lock.json | 3219 ++++++++++++++--------------------------- package.json | 26 +- src/client/actions.js | 6 +- src/config.js | 12 +- 4 files changed, 1104 insertions(+), 2159 deletions(-) diff --git a/package-lock.json b/package-lock.json index b5984532..05a9c5de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,51 +82,21 @@ } } }, - "@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", - "requires": { - "core-js-pure": "^3.16.0", - "regenerator-runtime": "^0.13.4" - } - }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", + "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", + "debug": "^4.3.2", + "espree": "^9.0.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } } }, "@gar/promisify": { @@ -134,41 +104,11 @@ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" }, - "@hapi/address": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@hapi/formula": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" - }, "@hapi/hoek": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" }, - "@hapi/joi": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", - "requires": { - "@hapi/address": "^4.0.1", - "@hapi/formula": "^2.0.0", - "@hapi/hoek": "^9.0.0", - "@hapi/pinpoint": "^2.0.0", - "@hapi/topo": "^5.0.0" - } - }, - "@hapi/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" - }, "@hapi/topo": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", @@ -178,9 +118,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", @@ -189,9 +129,9 @@ } }, "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "@nodelib/fs.scandir": { @@ -235,10 +175,28 @@ "rimraf": "^3.0.2" } }, + "@sideway/address": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", + "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, "@sindresorhus/is": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", - "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" }, "@sinonjs/commons": { "version": "1.8.3", @@ -250,9 +208,9 @@ } }, "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" @@ -304,35 +262,33 @@ "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz", + "integrity": "sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ==", "requires": { "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "@types/interpret": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", - "requires": { - "@types/node": "*" + "rxjs": "^7.2.0" + }, + "dependencies": { + "rxjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "requires": { + "tslib": "~2.1.0" + } + }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + } } }, "@types/json5": { @@ -342,28 +298,22 @@ "dev": true }, "@types/keyv": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz", - "integrity": "sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", "requires": { "@types/node": "*" } }, "@types/liftoff": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", - "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.0.tgz", + "integrity": "sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==", "requires": { "@types/fined": "*", - "@types/interpret": "*", "@types/node": "*" } }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", @@ -402,9 +352,9 @@ } }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true }, "acorn-jsx": { @@ -482,9 +432,9 @@ } }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", @@ -509,37 +459,52 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" }, "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" + "is-string": "^1.0.7" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + } } }, "array-slice": { @@ -552,20 +517,56 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + } + } + }, + "array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.0" } }, "assertion-error": { @@ -574,11 +575,6 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -595,23 +591,29 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, "audit-ci": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-4.1.0.tgz", - "integrity": "sha512-UNmf/2diiuqA7HmegyD1n2vIZ+TPMbXO6ud2nb1MOdnoeFuecaBq3fcUo0ZLISWQx2yxgIz76JaEEbRlRZhRpA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", + "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", "dev": true, "requires": { "JSONStream": "^1.3.5", + "array.prototype.flatmap": "^1.2.5", "cross-spawn": "^7.0.3", + "escape-string-regexp": "^4.0.0", "event-stream": "4.0.1", + "jju": "^1.4.0", "readline-transform": "1.0.0", "semver": "^7.0.0", - "yargs": "^15.0.0" + "yargs": "^16.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + } } }, "balanced-match": { @@ -619,55 +621,10 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "binary-extensions": { "version": "2.2.0", @@ -675,6 +632,16 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -690,16 +657,6 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -711,37 +668,19 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" + "strip-ansi": "^6.0.1" } }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, @@ -768,6 +707,15 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -803,22 +751,6 @@ "unique-filename": "^1.1.1" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -865,19 +797,42 @@ "dev": true }, "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==" + }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } }, "chai": { "version": "4.3.4", @@ -912,28 +867,29 @@ } }, "change-case": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "chardet": { @@ -974,27 +930,6 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1042,14 +977,14 @@ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-regex": { @@ -1059,12 +994,12 @@ "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -1082,15 +1017,6 @@ "mimic-response": "^1.0.0" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1118,14 +1044,9 @@ } }, "commander": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", - "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" }, "concat-map": { "version": "0.0.1", @@ -1139,24 +1060,22 @@ "dev": true }, "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js-pure": { - "version": "3.18.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", - "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" - }, "cross-fetch": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", @@ -1182,24 +1101,13 @@ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { "ms": "2.1.2" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -1252,65 +1160,38 @@ "object-keys": "^1.0.12" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "requires": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", "is-glob": "^4.0.1", "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", "slash": "^3.0.0" }, "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "requires": { - "aggregate-error": "^3.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" } + }, + "ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==" } } }, @@ -1341,13 +1222,6 @@ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "requires": { "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - } } }, "doctrine": { @@ -1360,11 +1234,19 @@ } }, "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "requires": { - "no-case": "^2.2.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "duplexer": { @@ -1410,32 +1292,26 @@ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -1467,37 +1343,36 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", + "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.4", + "@humanwhocodes/config-array": "^0.6.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.1.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -1505,45 +1380,30 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1551,26 +1411,26 @@ "dev": true }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", "dev": true }, "esquery": { @@ -1583,9 +1443,9 @@ } }, "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "file-entry-cache": { @@ -1608,33 +1468,31 @@ } }, "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "is-glob": "^4.0.3" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } } }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -1671,52 +1529,13 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - } + "ansi-regex": "^5.0.1" } }, "type-check": { @@ -1731,14 +1550,23 @@ } }, "eslint-config-airbnb-base": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", - "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "requires": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", - "object.entries": "^1.1.2" + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "eslint-import-resolver-node": { @@ -1761,9 +1589,9 @@ } }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "requires": { "has": "^1.0.3" @@ -1782,12 +1610,13 @@ } }, "eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", "dev": true, "requires": { "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { @@ -1799,49 +1628,6 @@ "requires": { "ms": "^2.1.1" } - } - } - }, - "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", - "dev": true, - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.6.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } }, "find-up": { "version": "2.1.0", @@ -1852,15 +1638,6 @@ "locate-path": "^2.0.0" } }, - "is-core-module": { - "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" - } - }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -1871,12 +1648,6 @@ "path-exists": "^3.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -1906,6 +1677,71 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "resolve": { "version": "1.20.0", @@ -1920,13 +1756,21 @@ } }, "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, "requires": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "eslint-utils": { @@ -1945,14 +1789,22 @@ "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", + "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", "dev": true, "requires": { - "acorn": "^7.4.0", + "acorn": "^8.6.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "eslint-visitor-keys": "^3.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true + } } }, "esprima": { @@ -2022,51 +1874,6 @@ "through": "^2.3.8" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -2080,25 +1887,6 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -2119,65 +1907,6 @@ } } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -2204,22 +1933,6 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" - }, - "dependencies": { - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - } } }, "fast-json-stable-stringify": { @@ -2280,53 +1993,43 @@ "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, - "find-up": { - "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": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "requires": { "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", "resolve-dir": "^1.0.1" }, "dependencies": { "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "^2.1.1" } } } }, "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", "requires": { "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "object.pick": "^1.3.0", + "parse-filepath": "^1.0.2" } }, "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==" }, "flat": { "version": "5.0.2", @@ -2385,14 +2088,6 @@ "mime-types": "^2.1.12" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -2458,10 +2153,15 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } }, "glob": { "version": "7.2.0", @@ -2532,9 +2232,9 @@ } }, "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -2549,38 +2249,46 @@ } }, "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz", + "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==", "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", + "array-union": "^3.0.1", "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" + "fast-glob": "^3.2.7", + "ignore": "^5.1.8", + "merge2": "^1.4.1", + "slash": "^4.0.0" }, "dependencies": { + "array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" + }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==" + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" } } }, "got": { - "version": "11.8.2", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", - "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "version": "11.8.3", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", + "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", + "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", "http2-wrapper": "^1.0.0-beta.5.2", "lowercase-keys": "^2.0.0", @@ -2589,9 +2297,9 @@ } }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "graphql": { "version": "15.6.1", @@ -2636,13 +2344,6 @@ "source-map": "^0.6.1", "uglify-js": "^3.1.4", "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==" - } } }, "has": { @@ -2653,14 +2354,6 @@ "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", @@ -2687,53 +2380,6 @@ "has-symbols": "^1.0.2" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -2741,12 +2387,19 @@ "dev": true }, "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "homedir-polyfill": { @@ -2815,6 +2468,11 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -2866,37 +2524,63 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.19", + "lodash": "^4.17.21", "mute-stream": "0.0.8", + "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^6.6.0", + "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "requires": { - "ansi-regex": "^5.0.1" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "rxjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", + "requires": { + "tslib": "~2.1.0" } + }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" } } }, @@ -2912,9 +2596,9 @@ } }, "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" }, "ip": { "version": "1.1.5", @@ -2930,30 +2614,6 @@ "is-windows": "^1.0.1" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -2982,11 +2642,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -2994,31 +2649,13 @@ "dev": true }, "is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "requires": { "has": "^1.0.3" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -3028,28 +2665,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3078,19 +2693,16 @@ "is-path-inside": "^3.0.2" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "requires": { - "lower-case": "^1.1.0" - } - }, "is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", @@ -3128,12 +2740,9 @@ "dev": true }, "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, "is-regex": { "version": "1.1.4", @@ -3153,6 +2762,12 @@ "is-unc-path": "^1.0.0" } }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -3182,15 +2797,15 @@ "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, "requires": { - "upper-case": "^1.1.0" + "call-bind": "^1.0.0" } }, "is-windows": { @@ -3198,11 +2813,6 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "isbinaryfile": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", @@ -3223,15 +2833,33 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true + }, "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, + "joi": { + "version": "17.5.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz", + "integrity": "sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, "jose-node-cjs-runtime": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-3.18.0.tgz", - "integrity": "sha512-8KLgEQlf1rhxYaqMJyqEpTFEYJxjAtwPjgP34+1X0O8YSXxx5TNxT0Ezd4glmFZ2RXEpwdCVa2YcxOpGO1/8HQ==" + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.3.7.tgz", + "integrity": "sha512-w08oYOXQ06/rcCEL5DB4HE5XJaHpB79ZTmCOP1YsRyZZtWQPPCQx+fQAANw1qlcmVA8BcBAE62QqKYDctCEtrQ==" }, "js-tokens": { "version": "4.0.0", @@ -3252,12 +2880,6 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -3297,9 +2919,9 @@ "dev": true }, "keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", + "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", "requires": { "json-buffer": "3.0.1" } @@ -3326,39 +2948,18 @@ } }, "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "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" - } - }, - "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": { - "p-locate": "^4.1.0" + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", + "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", + "requires": { + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "object.map": "^1.0.1", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" } }, "lodash": { @@ -3366,12 +2967,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -3389,33 +2984,39 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "requires": { - "lower-case": "^1.1.2" + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "lowercase-keys": { @@ -3473,114 +3074,18 @@ "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, "mime-db": { @@ -3620,9 +3125,9 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", "requires": { "yallist": "^4.0.0" } @@ -3688,25 +3193,6 @@ "yallist": "^4.0.0" } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -3761,6 +3247,23 @@ "wrap-ansi": "^7.0.0" } }, + "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" + }, + "dependencies": { + "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 + } + } + }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -3892,6 +3395,17 @@ "debug": "4.3.2", "lazy-ass": "1.6.0", "ramda": "0.27.1" + }, + "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" + } + } } }, "moment": { @@ -3915,24 +3429,6 @@ "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3966,20 +3462,39 @@ "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + } } }, "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "requires": { - "lower-case": "^1.1.1" - } - }, + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, "nock": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", - "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.1.tgz", + "integrity": "sha512-CoHAabbqq/xZEknubuyQMjq6Lfi5b7RtK6SoNK6m40lebGp3yiMagWtIoYaw2s9sISD7wPuCfwFpivVHX/35RA==", "dev": true, "requires": { "debug": "^4.1.0", @@ -3994,57 +3509,23 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-plop": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", - "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", - "requires": { - "@babel/runtime-corejs3": "^7.9.2", - "@types/inquirer": "^6.5.0", - "change-case": "^3.1.0", - "del": "^5.1.0", - "globby": "^10.0.1", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.30.0.tgz", + "integrity": "sha512-5w9+jWoy9OtMm3qRmHgL2z/3L5VL3RhEegKkKC4tA1IIjG3aXf8Ee/8wdgU9qXyt1yDfPWI9Tan1rHpXAp0ZnA==", + "requires": { + "@types/inquirer": "^8.1.3", + "change-case": "^4.1.2", + "del": "^6.0.0", + "globby": "^12.0.2", "handlebars": "^4.4.3", - "inquirer": "^7.1.0", - "isbinaryfile": "^4.0.2", + "inquirer": "^8.2.0", + "isbinaryfile": "^4.0.8", "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "resolve": "^1.12.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "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 - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "lower-case": "^2.0.2", + "mkdirp": "^1.0.4", + "resolve": "^1.20.0", + "title-case": "^3.0.3", + "upper-case": "^2.0.2" } }, "normalize-path": { @@ -4069,9 +3550,9 @@ } }, "npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", + "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", "requires": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", @@ -4086,34 +3567,6 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "object-inspect": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", @@ -4126,14 +3579,6 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -4158,14 +3603,14 @@ } }, "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "object.map": { @@ -4186,14 +3631,44 @@ } }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + } } }, "once": { @@ -4227,111 +3702,96 @@ } }, "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.0.1.tgz", + "integrity": "sha512-TDdKkKHdWE6jo/6pIa5U5AWcSVfpNRFJ8sdRJpioGNVPLAzZzHs/N+QhUfF7ZbyoC+rnDuNTKzeDJUbAza9g4g==", + "requires": { + "bl": "^5.0.0", + "chalk": "^4.1.2", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.0.0", + "strip-ansi": "^7.0.1", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", "requires": { - "color-convert": "^1.9.0" + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "restore-cursor": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "requires": { - "color-name": "1.1.3" + "restore-cursor": "^4.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "is-unicode-supported": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.1.0.tgz", + "integrity": "sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA==" }, "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "^2.0.1" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.0.0.tgz", + "integrity": "sha512-zBsSKauX7sM0kcqrf8VpMRPqcWzU6a/Wi7iEl0QlVSCiIZ4CctaLdfVdiZUn6q2/nenyt392qJqpw9FhNAwqxQ==", "requires": { - "mimic-fn": "^1.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^1.0.0" } }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "requires": { - "has-flag": "^3.0.0" + "ansi-regex": "^6.0.1" } } } @@ -4346,24 +3806,6 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, - "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": { - "p-try": "^2.0.0" - } - }, - "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": { - "p-limit": "^2.2.0" - } - }, "p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -4372,18 +3814,20 @@ "aggregate-error": "^3.0.0" } }, - "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 - }, "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "requires": { - "no-case": "^2.2.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "parent-module": { @@ -4405,41 +3849,41 @@ "path-root": "^0.1.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" - } - }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "requires": { - "no-case": "^2.2.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "path-exists": { @@ -4495,13 +3939,9 @@ } }, "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "pathval": { "version": "1.1.1", @@ -4526,14 +3966,7 @@ "picomatch": { "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": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" }, "pkg-dir": { "version": "2.0.0", @@ -4595,110 +4028,28 @@ } } }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, "plop": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", - "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", - "requires": { - "@types/liftoff": "^2.5.1", - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/plop/-/plop-3.0.1.tgz", + "integrity": "sha512-8flhJgatVhe2gySDXvP1Rey7j4UCsoNihGvAVZ5GOE6gA9FGZG+zYFEyQQgT1RbfL5VI0mYaHxkt8RNQSNw2bQ==", + "requires": { + "@types/liftoff": "^4.0.0", + "chalk": "^5.0.0", + "interpret": "^2.2.0", + "liftoff": "^4.0.0", "minimist": "^1.2.5", - "node-plop": "^0.26.3", - "ora": "^3.4.0", - "v8flags": "^2.0.10" + "node-plop": "^0.30.0", + "ora": "^6.0.1", + "v8flags": "^4.0.0" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", + "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -4761,111 +4112,49 @@ "querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "ramda": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "requires": { + "mute-stream": "~0.0.4" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readdirp": { @@ -4884,25 +4173,11 @@ "dev": true }, "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "resolve": "^1.20.0" } }, "regexpp": { @@ -4911,45 +4186,23 @@ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, - "repeat-element": { - "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=" - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "requires": { - "is-core-module": "^2.1.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, @@ -4973,11 +4226,6 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -4995,11 +4243,6 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -5434,6 +4677,7 @@ "version": "6.6.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, "requires": { "tslib": "^1.9.0" } @@ -5441,16 +4685,7 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safer-buffer": { "version": "2.1.2", @@ -5466,12 +4701,20 @@ } }, "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "serialize-javascript": { @@ -5483,33 +4726,6 @@ "randombytes": "^2.1.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5542,13 +4758,13 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "sinon": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-12.0.1.tgz", + "integrity": "sha512-iGu29Xhym33ydkAT+aNQFBINakjq69kKO6ByPvTsm3yyIACfyQttRTP03aBP/I8GfhFmLzrnKwNNkr0ORb1udg==", "dev": true, "requires": { "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/fake-timers": "^8.1.0", "@sinonjs/samsam": "^6.0.2", "diff": "^5.0.0", "nise": "^5.1.0", @@ -5603,120 +4819,18 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "requires": { - "no-case": "^2.2.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "requires": { - "kind-of": "^3.2.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, @@ -5730,9 +4844,9 @@ } }, "socks-proxy-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz", - "integrity": "sha512-FIgZbQWlnjVEQvMkylz64/rUggGtrKstPnx8OZyYFG0tAFR8CSBtpXxSwbFLHyeXFn/cunFL7MpuSOvDSOPo9g==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", + "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", "requires": { "agent-base": "^6.0.2", "debug": "^4.3.1", @@ -5740,58 +4854,9 @@ } }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "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 + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "split": { "version": "1.0.1", @@ -5802,14 +4867,6 @@ "through": "2" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -5829,25 +4886,6 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -5913,12 +4951,20 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -5941,15 +4987,6 @@ "has-flag": "^4.0.0" } }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", @@ -6017,12 +5054,18 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "tmp": { @@ -6033,35 +5076,6 @@ "os-tmpdir": "~1.0.2" } }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6071,9 +5085,9 @@ } }, "tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -6085,7 +5099,8 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "type-check": { "version": "0.3.2", @@ -6109,9 +5124,9 @@ "dev": true }, "uglify-js": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", + "version": "3.14.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", + "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", "optional": true }, "unbox-primitive": { @@ -6131,17 +5146,6 @@ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -6158,53 +5162,34 @@ "imurmurhash": "^0.1.4" } }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "tslib": "^2.0.3" }, "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "requires": { - "upper-case": "^1.1.1" + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "uri-js": { @@ -6216,11 +5201,6 @@ "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, "url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", @@ -6235,15 +5215,10 @@ "requires-port": "^1.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "v8-compile-cache": { "version": "2.2.0", @@ -6252,22 +5227,9 @@ "dev": true }, "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "^1.1.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz", + "integrity": "sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==" }, "validate-npm-package-name": { "version": "3.0.0", @@ -6307,12 +5269,6 @@ "is-symbol": "^1.0.3" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -6364,10 +5320,9 @@ "dev": true }, "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -6377,16 +5332,14 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -6417,9 +5370,9 @@ } }, "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yallist": { @@ -6428,33 +5381,25 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "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" - } + "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 }, "yargs-unparser": { "version": "2.0.0", diff --git a/package.json b/package.json index 99405ccf..299cecdd 100644 --- a/package.json +++ b/package.json @@ -30,27 +30,27 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@hapi/joi": "17.1.1", "boxen": "5.1.2", "chalk": "4.1.2", "cli-table3": "0.6.0", - "commander": "8.2.0", - "debug": "4.3.2", + "commander": "8.3.0", + "debug": "4.3.3", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", "glob": "7.2.0", - "got": "11.8.2", + "got": "11.8.3", "graphql": "15.6.1", "graphql-request": "3.6.1", "is-installed-globally": "0.4.0", "jmespath": "0.15.0", - "jose-node-cjs-runtime": "3.18.0", + "joi": "17.5.0", + "jose-node-cjs-runtime": "4.3.7", "js-yaml": "4.1.0", "lodash": "4.17.21", "moment": "2.29.1", - "npm-registry-fetch": "11.0.0", - "plop": "2.7.6", + "npm-registry-fetch": "12.0.0", + "plop": "3.0.1", "prompt": "1.2.0", "semver": "7.3.5", "url-join": "4.0.1", @@ -58,16 +58,16 @@ "yauzl": "2.10.0" }, "devDependencies": { - "audit-ci": "4.1.0", + "audit-ci": "5.1.2", "chai": "4.3.4", "chai-as-promised": "7.1.1", - "eslint": "7.32.0", - "eslint-config-airbnb-base": "14.2.1", - "eslint-plugin-import": "2.24.2", + "eslint": "8.3.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.25.3", "mocha": "9.1.3", "mocked-env": "1.3.5", - "nock": "13.1.4", + "nock": "13.2.1", "rewire": "5.0.0", - "sinon": "11.1.2" + "sinon": "12.0.1" } } diff --git a/src/client/actions.js b/src/client/actions.js index 86cfbf42..cc3c2bab 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -16,7 +16,6 @@ const _ = require('lodash'); const debug = require('debug')('cortex:cli'); // eslint-disable-next-line import/no-unresolved -const { jwtVerify } = require('jose-node-cjs-runtime/jwt/verify'); const { got } = require('./apiutils'); const { constructError, callMe, checkProject, getUserAgent, @@ -247,8 +246,9 @@ module.exports = class Actions { } const registryUrl = await this._cortexRegistryUrl(token); const imageName = image.replace(/.+\..+\//, ''); - const { payload } = jwtVerify(token); - const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, payload.tenant); + //const { payload } = jwtVerify(token); + // TODO fix path + const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, ''); await callMe(`docker login -u cli --password ${token} ${registryUrl}`); await callMe(`docker pull ${image} || echo "Docker pull failed using local image"`); await callMe(`docker tag ${image} ${cortexImageUrl}`); diff --git a/src/config.js b/src/config.js index 72c41b05..3f335f46 100644 --- a/src/config.js +++ b/src/config.js @@ -18,10 +18,10 @@ const _ = require('lodash'); const os = require('os'); const fs = require('fs'); const path = require('path'); -const Joi = require('@hapi/joi'); +const Joi = require('joi'); const debug = require('debug')('cortex:config'); -const { parseJwk } = require('jose-node-cjs-runtime/jwk/parse'); -const { SignJWT } = require('jose-node-cjs-runtime/jwt/sign'); +const jose = require('jose-node-cjs-runtime'); +//const { SignJWT } = require('jose-node-cjs-runtime/jwt/sign'); const { printError } = require('./commands/utils'); function configDir() { @@ -32,8 +32,8 @@ async function generateJwt(profile, expiresIn = '2m') { const { username, issuer, audience, jwk, } = profile; - const jwtSigner = await parseJwk(jwk, 'Ed25519'); - return new SignJWT({}) + const jwtSigner = await jose.importJWK(jwk, 'Ed25519'); + return new jose.SignJWT({}) .setProtectedHeader({ alg: 'EdDSA', kid: jwk.kid }) .setSubject(username) .setAudience(audience) @@ -43,7 +43,7 @@ async function generateJwt(profile, expiresIn = '2m') { .sign(jwtSigner, { kid: jwk.kid }); } -const ProfileSchema = Joi.object().keys({ +const ProfileSchema = Joi.object({ name: Joi.string().optional(), url: Joi.string().uri().required(), username: Joi.string().required(), From ce220943fab931c8ae7702ffde5e7923b324793a Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 6 Dec 2021 10:29:26 -0600 Subject: [PATCH 500/864] Fix linting issue eslint upgrade ??? --- .eslintrc.json | 3 +++ src/client/actions.js | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.eslintrc.json b/.eslintrc.json index 155402ea..c71e92e9 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -10,6 +10,9 @@ "indent": 0, "global-require":"off", "no-return-assign": "off", + "function-paren-newline": "off", + "function-call-argument-newline": "off", + "no-multiple-empty-lines": "off", "no-param-reassign": "warn", "no-undef": "error", "no-trailing-spaces": "off", diff --git a/src/client/actions.js b/src/client/actions.js index cc3c2bab..f728f35a 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -246,7 +246,7 @@ module.exports = class Actions { } const registryUrl = await this._cortexRegistryUrl(token); const imageName = image.replace(/.+\..+\//, ''); - //const { payload } = jwtVerify(token); + // const { payload } = jwtVerify(token); // TODO fix path const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, ''); await callMe(`docker login -u cli --password ${token} ${registryUrl}`); From 8edc56a79943b71350bdcb1f86ede19f3b88d90e Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Mon, 6 Dec 2021 23:06:48 +0530 Subject: [PATCH 501/864] sort , table format in utils, fileexists check --- src/commands/connections.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/commands/connections.js b/src/commands/connections.js index 68dd95e6..9358e3d5 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -17,10 +17,13 @@ const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); +const moment = require('moment'); const Connections = require('../client/connections'); const Content = require('../client/content'); +const { CONNECTIONTABLEFORMAT } = require('./utils'); + const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, fileExists } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -41,16 +44,7 @@ module.exports.ListConnections = class ListConnections { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - const tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Description', field: 'description', width: 50 }, - { column: 'Connection Type', field: 'connectionType', width: 25 }, - { column: 'Writeable', field: 'allowWrite', width: 15 }, - { column: 'Created On', field: 'createdAt', width: 26 }, - ]; - - printTable(tableSpec, result); + printTable(CONNECTIONTABLEFORMAT, result, (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); } } else { printError(`Failed to list connections: ${response.status} ${response.message}`, options); @@ -83,7 +77,9 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { async execute(connectionDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveDefinition(%s)', profile.name, connectionDefinition); - + if (!fileExists(connectionDefinition)) { + printError(`Connection Definition file does not exist at: ${connectionDefinition}`); + } const connDefStr = fs.readFileSync(connectionDefinition); const connObj = parseObject(connDefStr, options); debug('%o', connObj); From 2e6a38211699947b82b733ac7aea6f309f614ec5 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Mon, 6 Dec 2021 23:07:08 +0530 Subject: [PATCH 502/864] connections tablespec in utils --- src/commands/utils.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/commands/utils.js b/src/commands/utils.js index 42841e93..4d8b938d 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -321,3 +321,11 @@ module.exports.SESSIONTABLEFORMAT = [ { column: 'TTL', field: 'ttl', width: 15 }, { column: 'Description', field: 'description', width: 70 }, ]; + +module.exports.CONNECTIONTABLEFORMAT = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 50 }, + { column: 'Connection Type', field: 'connectionType', width: 25 }, + { column: 'Created On', field: 'createdAt', width: 26 } +]; From 2f9ac62bec29a192c3afc13338297423ad86cecf Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Mon, 6 Dec 2021 23:11:50 +0530 Subject: [PATCH 503/864] Error handling for spec file missing --- src/commands/connections.js | 2 +- src/commands/experiments.js | 4 +++- src/commands/models.js | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/commands/connections.js b/src/commands/connections.js index 9358e3d5..90d27a65 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -78,7 +78,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { const profile = await loadProfile(options.profile); debug('%s.executeSaveDefinition(%s)', profile.name, connectionDefinition); if (!fileExists(connectionDefinition)) { - printError(`Connection Definition file does not exist at: ${connectionDefinition}`); + printError(`Connection definition file does not exist at: ${connectionDefinition}`); } const connDefStr = fs.readFileSync(connectionDefinition); const connObj = parseObject(connDefStr, options); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 92ad6cb8..1a2c3ce1 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -251,7 +251,9 @@ class SaveExperimentCommand { async execute(experimentDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveExperiment(%s)', profile.name, experimentDefinition); - + if (!fileExists(experimentDefinition)) { + printError(`Experiment definition file does not exist at: ${experimentDefinition}`); + } const experimentDefStr = fs.readFileSync(experimentDefinition); const experiment = parseObject(experimentDefStr, options); debug('%o', experiment); diff --git a/src/commands/models.js b/src/commands/models.js index 214fdb42..07258292 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -38,7 +38,9 @@ module.exports.SaveModelCommand = class SaveModelCommand { async execute(modelDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveModel(%s)', profile.name, modelDefinition); - + if (!fileExists(modelDefinition)) { + printError(`Model definition file does not exist at: ${modelDefinition}`); + } const modelDefStr = fs.readFileSync(modelDefinition); const model = parseObject(modelDefStr, options); debug('%o', model); From e2d43284c9bdc77f3f29ac50b7d7cc7827c8f9a2 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Mon, 6 Dec 2021 23:16:56 +0530 Subject: [PATCH 504/864] fixing linting --- src/commands/connections.js | 4 ++-- src/commands/experiments.js | 2 +- src/commands/models.js | 2 +- src/commands/utils.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/commands/connections.js b/src/commands/connections.js index 90d27a65..9387dcc9 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -16,14 +16,14 @@ const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); const moment = require('moment'); +const { loadProfile } = require('../config'); const Connections = require('../client/connections'); const Content = require('../client/content'); const { CONNECTIONTABLEFORMAT } = require('./utils'); const { - printSuccess, printError, filterObject, parseObject, printTable, fileExists + printSuccess, printError, filterObject, parseObject, printTable, fileExists, } = require('./utils'); module.exports.ListConnections = class ListConnections { diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 1a2c3ce1..51b93e1d 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -21,7 +21,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { - printSuccess, printError, filterObject, printTable, parseObject, formatValidationPath, DEPENDENCYTABLEFORMAT, + printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, DEPENDENCYTABLEFORMAT, } = require('./utils'); class ListExperiments { diff --git a/src/commands/models.js b/src/commands/models.js index 07258292..9c1f60ac 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -27,7 +27,7 @@ const Experiments = require('../client/experiments'); const { LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT } = require('./utils'); const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, } = require('./utils'); module.exports.SaveModelCommand = class SaveModelCommand { diff --git a/src/commands/utils.js b/src/commands/utils.js index 4d8b938d..9b8c3ebe 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -327,5 +327,5 @@ module.exports.CONNECTIONTABLEFORMAT = [ { column: 'Title', field: 'title', width: 50 }, { column: 'Description', field: 'description', width: 50 }, { column: 'Connection Type', field: 'connectionType', width: 25 }, - { column: 'Created On', field: 'createdAt', width: 26 } + { column: 'Created On', field: 'createdAt', width: 26 }, ]; From d7d208c79b807bc7644805c66611fb063bdf366f Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 7 Dec 2021 00:09:29 +0530 Subject: [PATCH 505/864] lint and reusing exiting lib --- src/commands/connections.js | 2 +- src/commands/experiments.js | 3 +-- src/commands/models.js | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/commands/connections.js b/src/commands/connections.js index 6d418215..c706cfa3 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -77,7 +77,7 @@ module.exports.SaveConnectionCommand = class SaveConnectionCommand { async execute(connectionDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveDefinition(%s)', profile.name, connectionDefinition); - if (!fs.existsSync(connectionDefinition)) { + if (!fileExists(connectionDefinition)) { printError(`File does not exist at: ${connectionDefinition}`); } const connDefStr = fs.readFileSync(connectionDefinition); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index e8f14420..0123b72b 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -252,9 +252,8 @@ class SaveExperimentCommand { const profile = await loadProfile(options.profile); debug('%s.executeSaveExperiment(%s)', profile.name, experimentDefinition); - if (!fs.existsSync(experimentDefinition)) { + if (!fileExists(experimentDefinition)) { printError(`File does not exist at: ${experimentDefinition}`); - } const experimentDefStr = fs.readFileSync(experimentDefinition); const experiment = parseObject(experimentDefStr, options); diff --git a/src/commands/models.js b/src/commands/models.js index 4995099c..f253089f 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -38,7 +38,7 @@ module.exports.SaveModelCommand = class SaveModelCommand { async execute(modelDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveModel(%s)', profile.name, modelDefinition); - if (!fs.existsSync(modelDefinition)) { + if (!fileExists(modelDefinition)) { printError(`File does not exist at: ${modelDefinition}`); } const modelDefStr = fs.readFileSync(modelDefinition); From d7f6e452f54c2c3df996a85373ff42e55993f2c5 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 6 Dec 2021 13:39:14 -0600 Subject: [PATCH 506/864] Make deploy/undeploy variadic ... --- bin/cortex-agents.js | 12 ++++----- bin/cortex-skills.js | 13 ++++----- src/client/catalog.js | 4 +-- src/commands/agents.js | 49 +++++++++++++++++---------------- src/commands/skills.js | 61 +++++++++++++++++++++++------------------- 5 files changed, 73 insertions(+), 66 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 04a0efae..adfcd202 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -78,14 +78,14 @@ program // Deploy agent program - .command('deploy ') + .command('deploy ') .description('Deploy the agent resource to the cluster') .option('--no-compat', 'Ignore API compatibility checks') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((agentName, options) => { + .action(withCompatibilityCheck((agentNames, options) => { try { - new DeployAgentCommand(program).execute(agentName, options); + new DeployAgentCommand(program).execute(agentNames, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -196,14 +196,14 @@ program // Undeploy agent program - .command('undeploy ') + .command('undeploy ') .description('Undeploy the agent resource from the cluster') .option('--no-compat', 'Ignore API compatibility checks') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((agentName, options) => { + .action(withCompatibilityCheck((agentNames, options) => { try { - new UndeployAgentCommand(program).execute(agentName, options); + new UndeployAgentCommand(program).execute(agentNames, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 806361dc..9438309a 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -37,14 +37,14 @@ program.description('Work with Cortex Skills'); // Deploy Skill program - .command('deploy ') + .command('deploy ') .description('Deploy the skill resource to the cluster') .option('--no-compat', 'Ignore API compatibility checks') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((skillName, options) => { + .action(withCompatibilityCheck((skillNames, options) => { try { - new DeploySkillCommand(program).execute(skillName, options); + new DeploySkillCommand(program).execute(skillNames, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -98,6 +98,7 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--nostatus', 'skip extra call for skill status') + .option('--noshared', 'do not list shared sills') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((options) => { try { @@ -143,14 +144,14 @@ program // Undeploy Skill program - .command('undeploy ') + .command('undeploy ') .description('Undeploy the skill resource from the cluster') .option('--no-compat', 'Ignore API compatibility checks') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((skillName, options) => { + .action(withCompatibilityCheck((skillNames, options) => { try { - new UndeploySkillCommand(program).execute(skillName, options); + new UndeploySkillCommand(program).execute(skillNames, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/client/catalog.js b/src/client/catalog.js index 2b039b38..b067d6a8 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -49,11 +49,9 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - listSkills(projectId, token, status = false) { + listSkills(projectId, token, query) { checkProject(projectId); debug('listSkills() => %s', this.endpoints.skills(projectId)); - const query = {}; - if (status) query.status = true; return got .get(this.endpoints.skills(projectId), { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/agents.js b/src/commands/agents.js index caf5bb30..af368ee7 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -448,21 +448,22 @@ module.exports.DeployAgentCommand = class DeployAgentCommand { this.program = program; } - async execute(agentName, options) { + async execute(agentNames, options) { const profile = await loadProfile(options.profile); - debug('%s.executeDeployAgent(%s)', profile.name, agentName); - const catalog = new Catalog(profile.url); - catalog.deployAgent(options.project || profile.project, profile.token, agentName, options.verbose).then((response) => { - if (response.success) { - printSuccess(`Deployed Agent ${agentName}: ${response.message}`, options); - } else { - printError(`Failed to deploy Agent ${agentName}: ${response.message}`, options); - } - }) - .catch((err) => { + await Promise.all(agentNames.map(async (agentName) => { + debug('%s.executeDeployAgent(%s)', profile.name, agentName); + try { + const response = await catalog.deployAgent(options.project || profile.project, profile.token, agentName, options.verbose); + if (response.success) { + printSuccess(`Deployed Agent ${agentName}: ${response.message}`, options); + } else { + printError(`Failed to deploy Agent ${agentName}: ${response.message}`, options); + } + } catch (err) { printError(`Failed to deploy Agent ${agentName}: ${err.status} ${err.message}`, options); - }); + } + })); } }; @@ -472,19 +473,21 @@ module.exports.UndeployAgentCommand = class UndeployAgentCommand { this.program = program; } - async execute(agentName, options) { + async execute(agentNames, options) { const profile = await loadProfile(options.profile); - debug('%s.executeUndeployAgent(%s)', profile.name, agentName); const catalog = new Catalog(profile.url); - catalog.unDeployAgent(options.project || profile.project, profile.token, agentName, options.verbose).then((response) => { - if (response.success) { - printSuccess(`Undeploy agent ${agentName}: ${response.message}`, options); - } else { - printError(`Failed to Undeploy agent ${agentName}: ${response.message}`, options); - } - }) - .catch((err) => { + await Promise.all(agentNames.map(async (agentName) => { + debug('%s.executeUndeployAgent(%s)', profile.name, agentName); + try { + const response = await catalog.unDeployAgent(options.project || profile.project, profile.token, agentName, options.verbose); + if (response.success) { + printSuccess(`Undeploy agent ${agentName}: ${response.message}`, options); + } else { + printError(`Failed to Undeploy agent ${agentName}: ${response.message}`, options); + } + } catch (err) { printError(`Failed to Undeploy agent ${agentName}: ${err.status} ${err.message}`, options); - }); + } + })); } }; diff --git a/src/commands/skills.js b/src/commands/skills.js index b5743a16..27922ce3 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -79,16 +79,18 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { const catalog = new Catalog(profile.url); try { - const response = await catalog.listSkills(options.project || profile.project, profile.token, options.nostatus === undefined); + const status = !_.get(options, 'nostatus', false); // default show status, if nostatus==true status == false + const shared = !_.get(options, 'noshared', false); + const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }); if (response.success) { let result = response.skills; const tableFormat = LISTTABLEFORMAT; if (options.nostatus === undefined) { - result = result.map((skill) => { - const status = _.isEmpty(skill.actionStatuses) ? skill.deployStatus : skill.actionStatuses.map((s) => `${s.name}: ${s.state}`).join(' '); + result = result.map((skillStat) => { + const statuses = _.isEmpty(skillStat.actionStatuses) ? skillStat.deployStatus : skillStat.actionStatuses.map((s) => `${s.name}: ${s.state}`).join(' '); return { - ...skill, - status, + ...skillStat, + status: statuses, }; }); tableFormat.push({ column: 'Status', field: 'status', width: 30 }); @@ -133,20 +135,22 @@ module.exports.UndeploySkillCommand = class UndeploySkillCommand { this.program = program; } - async execute(skillName, options) { + async execute(skillNames, options) { const profile = await loadProfile(options.profile); - debug('%s.executeUndeploySkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); - catalog.unDeploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { - if (response.success) { - printSuccess(`Undeploy Skill ${skillName}: ${response.message}`, options); - } else { - printError(`Failed to Undeploy Skill ${skillName}: ${response.message}`, options); - } - }) - .catch((err) => { + await Promise.all(skillNames.map(async (skillName) => { + debug('%s.executeUndeploySkill(%s)', profile.name, skillName); + try { + const response = await catalog.unDeploySkill(options.project || profile.project, profile.token, skillName, options.verbose); + if (response.success) { + printSuccess(`Undeploy Skill ${skillName}: ${response.message}`, options); + } else { + printError(`Failed to Undeploy Skill ${skillName}: ${response.message}`, options); + } + } catch (err) { printError(`Failed to Undeploy Skill ${skillName}: ${err.status} ${err.message}`, options); - }); + } + })); } }; @@ -177,21 +181,22 @@ module.exports.DeploySkillCommand = class DeploySkillCommand { this.program = program; } - async execute(skillName, options) { + async execute(skillNames, options) { const profile = await loadProfile(options.profile); - debug('%s.executeDeploySkill(%s)', profile.name, skillName); - const catalog = new Catalog(profile.url); - catalog.deploySkill(options.project || profile.project, profile.token, skillName, options.verbose).then((response) => { - if (response.success) { - printSuccess(`Deployed Skill ${skillName}: ${response.message}`, options); - } else { - printError(`Failed to deploy Skill ${skillName}: ${response.message}`, options); - } - }) - .catch((err) => { + await Promise.all(skillNames.map(async (skillName) => { + debug('%s.executeDeploySkill(%s)', profile.name, skillName); + try { + const response = await catalog.deploySkill(options.project || profile.project, profile.token, skillName, options.verbose); + if (response.success) { + printSuccess(`Deployed Skill ${skillName}: ${response.message}`, options); + } else { + printError(`Failed to deploy Skill ${skillName}: ${response.message}`, options); + } + } catch (err) { printError(`Failed to deploy Skill ${skillName}: ${err.status} ${err.message}`, options); - }); + } + })); } }; From fa946154196241f058fff7c31c6d5b003d5a7e15 Mon Sep 17 00:00:00 2001 From: clee Date: Tue, 7 Dec 2021 13:02:16 -0600 Subject: [PATCH 507/864] switch cortex-cli-master pipeline to build off of main --- cortex-cli.gocd.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index b5eb734b..855c28c8 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -26,13 +26,13 @@ pipelines: ./gocd-pipeline-scripts/common/c12e-common.sh dev echo ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli cortex-cli-master: - group: fabric6 + group: fabric6-rc environment_variables: DOCKER_SECRET_FLAG: "id=npmrc,src=~/.npmrc" materials: cortex-cli: git: git@github.com:CognitiveScale/cortex-cli.git - branch: master + branch: main stages: - build: clean_workspace: yes @@ -63,4 +63,4 @@ pipelines: mv cortex-cli-docs.md cortex-fabric/docs/docs/reference-guides/cortex-cli.md cd cortex-fabric git commit -a -m "Publishing New CLI Docs" - git push origin master + git push origin main From 2433eca05cd386e9161249c759851a2eb066baf7 Mon Sep 17 00:00:00 2001 From: clee Date: Tue, 7 Dec 2021 13:04:23 -0600 Subject: [PATCH 508/864] missed the cloned branch --- cortex-cli.gocd.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 855c28c8..88fe3b67 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -59,7 +59,7 @@ pipelines: source: cortex-cli-docs.md is_file: yes - script: | - git clone --branch master --single-branch git@github.com:CognitiveScale/cortex-fabric.git + git clone --branch main --single-branch git@github.com:CognitiveScale/cortex-fabric.git mv cortex-cli-docs.md cortex-fabric/docs/docs/reference-guides/cortex-cli.md cd cortex-fabric git commit -a -m "Publishing New CLI Docs" From d61835a0abf8d5f78f70d357bb3a54511dd6d7ba Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 8 Dec 2021 11:45:30 -0600 Subject: [PATCH 509/864] plop 3.x new module format, use plop 2.x --- package-lock.json | 1878 ++++++++++++++++++++++++++++++++------------- package.json | 2 +- 2 files changed, 1350 insertions(+), 530 deletions(-) diff --git a/package-lock.json b/package-lock.json index 05a9c5de..95b83be4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,6 +82,15 @@ } } }, + "@babel/runtime-corejs3": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.3.tgz", + "integrity": "sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==", + "requires": { + "core-js-pure": "^3.19.0", + "regenerator-runtime": "^0.13.4" + } + }, "@eslint/eslintrc": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", @@ -262,33 +271,35 @@ "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/inquirer": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz", - "integrity": "sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", "requires": { "@types/through": "*", - "rxjs": "^7.2.0" - }, - "dependencies": { - "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", - "requires": { - "tslib": "~2.1.0" - } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } + "rxjs": "^6.4.0" + } + }, + "@types/interpret": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", + "requires": { + "@types/node": "*" } }, "@types/json5": { @@ -306,14 +317,20 @@ } }, "@types/liftoff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", + "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", "requires": { "@types/fined": "*", + "@types/interpret": "*", "@types/node": "*" } }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", @@ -459,6 +476,21 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -517,6 +549,11 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -575,6 +612,11 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -591,6 +633,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, "audit-ci": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", @@ -621,10 +668,55 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } }, "binary-extensions": { "version": "2.2.0", @@ -632,16 +724,6 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -707,15 +789,6 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -751,6 +824,22 @@ "unique-filename": "^1.1.1" } }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -797,19 +886,12 @@ "dev": true }, "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -817,23 +899,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==" }, - "capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, "chai": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", @@ -867,29 +932,28 @@ } }, "change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "requires": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" } }, "chardet": { @@ -930,6 +994,27 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1017,6 +1102,15 @@ "mimic-response": "^1.0.0" } }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1048,6 +1142,11 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1060,22 +1159,24 @@ "dev": true }, "constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" } }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js-pure": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.3.tgz", + "integrity": "sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA==" + }, "cross-fetch": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", @@ -1108,6 +1209,11 @@ "ms": "2.1.2" } }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -1160,38 +1266,65 @@ "object-keys": "^1.0.12" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", "is-glob": "^4.0.1", "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", "slash": "^3.0.0" }, "dependencies": { - "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" + "aggregate-error": "^3.0.0" } - }, - "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==" } } }, @@ -1234,19 +1367,11 @@ } }, "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0" } }, "duplexer": { @@ -1874,6 +1999,51 @@ "through": "^2.3.8" } }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -1887,6 +2057,25 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -1907,6 +2096,65 @@ } } }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -1933,6 +2181,17 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "dependencies": { + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + } } }, "fast-json-stable-stringify": { @@ -1994,42 +2253,42 @@ "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "findup-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "requires": { "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" }, "dependencies": { "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "^2.1.0" } } } }, "fined": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "requires": { "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", + "is-plain-object": "^2.0.3", "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" } }, "flagged-respawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" }, "flat": { "version": "5.0.2", @@ -2088,6 +2347,14 @@ "mime-types": "^2.1.12" } }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -2163,6 +2430,11 @@ "get-intrinsic": "^1.1.1" } }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -2249,32 +2521,24 @@ } }, "globby": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz", - "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "requires": { - "array-union": "^3.0.1", + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.8", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" }, "dependencies": { - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" - }, "ignore": { "version": "5.1.9", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==" - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" } } }, @@ -2344,6 +2608,13 @@ "source-map": "^0.6.1", "uglify-js": "^3.1.4", "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==" + } } }, "has": { @@ -2354,6 +2625,21 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", @@ -2380,37 +2666,77 @@ "has-symbols": "^1.0.2" } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", @@ -2468,11 +2794,6 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -2524,64 +2845,23 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.21", + "lodash": "^4.17.19", "mute-stream": "0.0.8", - "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", - "requires": { - "tslib": "~2.1.0" - } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } } }, "internal-slot": { @@ -2596,9 +2876,9 @@ } }, "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "ip": { "version": "1.1.5", @@ -2614,6 +2894,24 @@ "is-windows": "^1.0.1" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -2642,6 +2940,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -2656,6 +2959,24 @@ "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -2665,6 +2986,28 @@ "has-tostringtag": "^1.0.0" } }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2693,16 +3036,19 @@ "is-path-inside": "^3.0.2" } }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" - }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "requires": { + "lower-case": "^1.1.0" + } + }, "is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", @@ -2740,9 +3086,12 @@ "dev": true }, "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } }, "is-regex": { "version": "1.1.4", @@ -2797,7 +3146,16 @@ "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "requires": { + "upper-case": "^1.1.0" + } }, "is-weakref": { "version": "1.0.1", @@ -2813,6 +3171,11 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "isbinaryfile": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", @@ -2948,18 +3311,18 @@ } }, "liftoff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", - "requires": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "object.map": "^1.0.1", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" } }, "lodash": { @@ -2988,6 +3351,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -2997,6 +3361,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3005,18 +3370,16 @@ } }, "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "lower-case": "^1.1.2" } }, "lowercase-keys": { @@ -3074,18 +3437,114 @@ "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } } }, "mime-db": { @@ -3193,6 +3652,25 @@ "yallist": "^4.0.0" } }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -3429,6 +3907,24 @@ "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3476,19 +3972,11 @@ } }, "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "lower-case": "^1.1.1" } }, "nock": { @@ -3509,23 +3997,31 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-plop": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.30.0.tgz", - "integrity": "sha512-5w9+jWoy9OtMm3qRmHgL2z/3L5VL3RhEegKkKC4tA1IIjG3aXf8Ee/8wdgU9qXyt1yDfPWI9Tan1rHpXAp0ZnA==", - "requires": { - "@types/inquirer": "^8.1.3", - "change-case": "^4.1.2", - "del": "^6.0.0", - "globby": "^12.0.2", + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", + "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", + "requires": { + "@babel/runtime-corejs3": "^7.9.2", + "@types/inquirer": "^6.5.0", + "change-case": "^3.1.0", + "del": "^5.1.0", + "globby": "^10.0.1", "handlebars": "^4.4.3", - "inquirer": "^8.2.0", - "isbinaryfile": "^4.0.8", + "inquirer": "^7.1.0", + "isbinaryfile": "^4.0.2", "lodash.get": "^4.4.2", - "lower-case": "^2.0.2", - "mkdirp": "^1.0.4", - "resolve": "^1.20.0", - "title-case": "^3.0.3", - "upper-case": "^2.0.2" + "mkdirp": "^0.5.1", + "resolve": "^1.12.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } } }, "normalize-path": { @@ -3567,6 +4063,34 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-inspect": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", @@ -3579,6 +4103,14 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -3702,96 +4234,111 @@ } }, "ora": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.0.1.tgz", - "integrity": "sha512-TDdKkKHdWE6jo/6pIa5U5AWcSVfpNRFJ8sdRJpioGNVPLAzZzHs/N+QhUfF7ZbyoC+rnDuNTKzeDJUbAza9g4g==", - "requires": { - "bl": "^5.0.0", - "chalk": "^4.1.2", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.0", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.0.0", - "strip-ansi": "^7.0.1", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "color-convert": "^1.9.0" } }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "restore-cursor": "^2.0.0" } }, - "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { - "restore-cursor": "^4.0.0" + "color-name": "1.1.3" } }, - "is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "is-unicode-supported": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.1.0.tgz", - "integrity": "sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA==" + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "log-symbols": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.0.0.tgz", - "integrity": "sha512-zBsSKauX7sM0kcqrf8VpMRPqcWzU6a/Wi7iEl0QlVSCiIZ4CctaLdfVdiZUn6q2/nenyt392qJqpw9FhNAwqxQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^1.0.0" + "chalk": "^2.0.1" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" } }, "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^5.1.0", + "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" } } } @@ -3815,19 +4362,11 @@ } }, "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0" } }, "parent-module": { @@ -3855,35 +4394,25 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" } }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, "path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0" } }, "path-exists": { @@ -4029,27 +4558,62 @@ } }, "plop": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plop/-/plop-3.0.1.tgz", - "integrity": "sha512-8flhJgatVhe2gySDXvP1Rey7j4UCsoNihGvAVZ5GOE6gA9FGZG+zYFEyQQgT1RbfL5VI0mYaHxkt8RNQSNw2bQ==", - "requires": { - "@types/liftoff": "^4.0.0", - "chalk": "^5.0.0", - "interpret": "^2.2.0", - "liftoff": "^4.0.0", + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", + "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", + "requires": { + "@types/liftoff": "^2.5.1", + "chalk": "^1.1.3", + "interpret": "^1.2.0", + "liftoff": "^2.5.0", "minimist": "^1.2.5", - "node-plop": "^0.30.0", - "ora": "^6.0.1", - "v8flags": "^4.0.0" + "node-plop": "^0.26.3", + "ora": "^3.4.0", + "v8flags": "^2.0.10" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, "chalk": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", - "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -4147,16 +4711,6 @@ "mute-stream": "~0.0.4" } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -4173,11 +4727,25 @@ "dev": true }, "rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "^1.20.0" + "resolve": "^1.1.6" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -4186,6 +4754,16 @@ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, + "repeat-element": { + "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=" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4226,6 +4804,11 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -4243,6 +4826,11 @@ "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -4292,8 +4880,7 @@ }, "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "resolved": "", "dev": true }, "ansi-styles": { @@ -4677,7 +5264,6 @@ "version": "6.6.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, "requires": { "tslib": "^1.9.0" } @@ -4685,7 +5271,16 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } }, "safer-buffer": { "version": "2.1.2", @@ -4701,20 +5296,12 @@ } }, "sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" } }, "serialize-javascript": { @@ -4726,6 +5313,27 @@ "randombytes": "^2.1.0" } }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4819,18 +5427,120 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "no-case": "^2.2.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } } } }, @@ -4854,9 +5564,26 @@ } }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, "split": { "version": "1.0.1", @@ -4867,6 +5594,14 @@ "through": "2" } }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -4886,6 +5621,25 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -4951,14 +5705,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4987,6 +5733,15 @@ "has-flag": "^4.0.0" } }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", @@ -5054,18 +5809,12 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "title-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", - "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0", + "upper-case": "^1.0.3" } }, "tmp": { @@ -5076,6 +5825,35 @@ "os-tmpdir": "~1.0.2" } }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5099,8 +5877,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "type-check": { "version": "0.3.2", @@ -5146,6 +5923,17 @@ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -5162,34 +5950,53 @@ "imurmurhash": "^0.1.4" } }, - "upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "tslib": "^2.0.3" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" } } }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, "upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "upper-case": "^1.1.1" } }, "uri-js": { @@ -5201,6 +6008,11 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", @@ -5215,10 +6027,15 @@ "requires-port": "^1.0.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, "v8-compile-cache": { "version": "2.2.0", @@ -5227,9 +6044,12 @@ "dev": true }, "v8flags": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz", - "integrity": "sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "^1.1.1" + } }, "validate-npm-package-name": { "version": "3.0.0", diff --git a/package.json b/package.json index 299cecdd..e42ccd75 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "lodash": "4.17.21", "moment": "2.29.1", "npm-registry-fetch": "12.0.0", - "plop": "3.0.1", + "plop": "2.7.6", "prompt": "1.2.0", "semver": "7.3.5", "url-join": "4.0.1", From 92de9c76eb9fa4820b320bb6f04d1eadacf20c7a Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Wed, 8 Dec 2021 14:51:53 -0600 Subject: [PATCH 510/864] reordering the way we find request error status codes to avoid fetching the incorrect code of the httpError object itself (returning ERR_NON_2XX_3XX_RESPONSE) (#457) --- src/commands/utils.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 42841e93..ac0a3fbe 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -45,8 +45,10 @@ module.exports.constructError = (error) => { } catch (e) { // Guess it wasn't JSON! } + // todo make figuring out the status code more consistent? this might be a holdover from request vs got? + const status = _.get(errResp, 'statusCode') || error.code || error.status || ''; return { - success: false, message: errorText, details, status: error.status || error.code || _.get(errResp, 'statusCode') || '', + success: false, message: errorText, details, status, }; }; From 5ca929d14f096a0cc78ea4bd805ec3448393d220 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 9 Dec 2021 19:21:30 +0530 Subject: [PATCH 511/864] testing build failure --- src/commands/utils.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index ac0a3fbe..75fcd340 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -35,10 +35,11 @@ module.exports.constructError = (error) => { errorText = error.message; } let details; - + let respCode; // if JSON was returned, look for either a message or error in it try { const resp = errResp ? JSON.parse(errorText) : {}; + respCode = resp.code; if (resp.message || resp.error) errorText = resp.message || resp.error; // eslint-disable-next-line prefer-destructuring details = resp.details; @@ -46,7 +47,7 @@ module.exports.constructError = (error) => { // Guess it wasn't JSON! } // todo make figuring out the status code more consistent? this might be a holdover from request vs got? - const status = _.get(errResp, 'statusCode') || error.code || error.status || ''; + const status = _.get(errResp, 'statusCode') || respCode || error.code || error.status || ''; return { success: false, message: errorText, details, status, }; From 4bb531f94dce208fb531abfa3a427bc0e85876e1 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 15 Dec 2021 13:33:28 +0530 Subject: [PATCH 512/864] --json support for delete skill --- bin/cortex-skills.js | 1 + src/client/catalog.js | 2 +- src/commands/skills.js | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 9438309a..5efec47f 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -114,6 +114,7 @@ program .description('Delete a skill') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .action(withCompatibilityCheck((skillName, options) => { diff --git a/src/client/catalog.js b/src/client/catalog.js index b067d6a8..09b247f3 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -520,7 +520,7 @@ module.exports = class Catalog { 'user-agent': getUserAgent(), }) .json() - .then((skill) => ({ success: true, skill })) + .then((skill) => skill) .catch((err) => constructError(err)); } diff --git a/src/commands/skills.js b/src/commands/skills.js index af230736..d62c10c8 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -258,7 +258,10 @@ module.exports.DeleteSkillCommand = class DeleteSkillCommand { .then((response) => { if (response.success) { const result = filterObject(response, options); - return printSuccess(JSON.stringify(result, null, 2), options); + if (options.json) { + return printSuccess(JSON.stringify(result, null, 2), options); + } + return printSuccess(result.message); } if (response.status === 403) { // has dependencies const tableFormat = DEPENDENCYTABLEFORMAT; From 6c9839b17a16f4f075f1d7d3af9a77c82511594d Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 21 Dec 2021 16:58:38 +0530 Subject: [PATCH 513/864] added alias support to all the list clis --- bin/cortex-actions.js | 1 + bin/cortex-assessments.js | 1 + bin/cortex-campaigns.js | 1 + bin/cortex-configure.js | 1 + bin/cortex-connections.js | 1 + bin/cortex-content.js | 2 +- bin/cortex-experiments.js | 1 + bin/cortex-projects.js | 1 + bin/cortex-roles.js | 1 + bin/cortex-secrets.js | 1 + bin/cortex-skills.js | 1 + bin/cortex-types.js | 1 + bin/cortex-users.js | 1 + 13 files changed, 13 insertions(+), 1 deletion(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 6403699a..2584e592 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -42,6 +42,7 @@ program.description('Work with Cortex Actions'); program .command('list') .description('List the deployed actions') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index f97826e0..535ae0d1 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -119,6 +119,7 @@ program program .command('list') .description('List assessments') + .alias('l') .option('--skip [Skip records for pagination]', 'Skip records for pagination') .option('--limit [Limit records for pagination]', 'Limit records for pagination') .option('--no-compat', 'Ignore API compatibility checks') diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 5dd377b4..3adea9f0 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -37,6 +37,7 @@ program.description('Work with Cortex Campaigns'); program .command('list') .description('List Campaigns') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 58d9a048..30009bb6 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -67,6 +67,7 @@ program program .command('list') .description('List configured profiles') + .alias('l') .action(() => { new ListProfilesCommand(program).execute({ color: program.color }); }); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 6a40cf4a..7eb7bcbd 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -35,6 +35,7 @@ program.description('Work with Cortex Connections'); program .command('list') .description('List connections definitions') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-content.js b/bin/cortex-content.js index a381200a..db5251e6 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -35,7 +35,7 @@ program.description('Work with Cortex Managed Content'); program .command('list') .description('List content') - .alias('ls') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index d13b544e..b08be306 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -41,6 +41,7 @@ program.description('Work with Cortex Experiments'); program .command('list') .description('Find experiments') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 85a13c35..0da030c6 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -54,6 +54,7 @@ program program .command('list') .description('List project definitions') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index c97ba85d..8d10d5d3 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -40,6 +40,7 @@ program.description('Work with Cortex Roles'); program.command('list') .description('List roles by project and user') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index d43e4745..5d54c028 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -34,6 +34,7 @@ program.description('Work with Cortex Secrets'); program .command('list') .description('List secure keys') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--json', 'Output results using JSON') diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 5efec47f..2ee1bcf9 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -92,6 +92,7 @@ program program .command('list') .description('List skill definitions') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 29a2974d..8792f317 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -51,6 +51,7 @@ program program .command('list') .description('List type definitions') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 588f4d3d..44f90e88 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -109,6 +109,7 @@ program.command('create ') program.command('list') .description('Lists all service users created within Cortex') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') From 4ef0bb5b085d349fa4ec79687d155dc4bd1525cd Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 21 Dec 2021 18:13:35 +0530 Subject: [PATCH 514/864] added tabular view to roles and users list cli --- src/commands/roles.js | 14 +++++++++++--- src/commands/users.js | 8 ++++++-- src/commands/utils.js | 5 +++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/commands/roles.js b/src/commands/roles.js index dd71240e..c1d1ed42 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -17,7 +17,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Roles = require('../client/roles'); const { - printSuccess, printError, filterObject, + printSuccess, printError, filterObject, printTable, EXTERNALROLESFORMAT, } = require('./utils'); function createGrant(options) { @@ -195,7 +195,11 @@ module.exports.RoleListCommand = class { client.listRoles(profile.token, options.project).then((response) => { if (response.success) { const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printTable([{ column: 'Role', field: 'role' }], result.roles.map((x) => ({ role: x }))); + } } else { printError(`Failed to list roles : ${response.message}`, options); } @@ -252,7 +256,11 @@ module.exports.ExternalGroupListCommand = class { client.listExternalGroups(profile.token).then((response) => { if (response.success) { const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printTable(EXTERNALROLESFORMAT, result, (o) => ({ ...o, roles: o.roles.join(', ') })); + } } else { printError(`Failed to list external groups : ${response.message}`, options); } diff --git a/src/commands/users.js b/src/commands/users.js index 6aed7ab3..61e235e6 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -17,7 +17,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Users = require('../client/users'); const { - printSuccess, printError, filterObject, + printSuccess, printError, filterObject, printTable, } = require('./utils'); function createGrant(options) { @@ -123,7 +123,11 @@ module.exports.UserListCommand = class { client.listServiceUsers(profile.token).then((response) => { if (response.success) { const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + if (options.json) { + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printTable([{ column: 'User', field: 'user' }], result.users.map((x) => ({ user: x }))); + } } else { printError(`Failed to list service users : ${response.message}`, options); } diff --git a/src/commands/utils.js b/src/commands/utils.js index ed950ded..632e007c 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -332,3 +332,8 @@ module.exports.CONNECTIONTABLEFORMAT = [ { column: 'Connection Type', field: 'connectionType', width: 25 }, { column: 'Created On', field: 'createdAt', width: 26 }, ]; + +module.exports.EXTERNALROLESFORMAT = [ + { column: 'Group', field: 'group' }, + { column: 'Roles', field: 'roles' }, +]; From a55ea303ab589fefd5ee62f4d58ca0788a6c0506 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 21 Dec 2021 18:53:11 +0530 Subject: [PATCH 515/864] added --json support for roles and users --- bin/cortex-roles.js | 1 + bin/cortex-users.js | 1 + 2 files changed, 2 insertions(+) diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 8d10d5d3..a2b96c85 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -150,6 +150,7 @@ program.command('project ') program.command('list-external') .description('List external groups') .option('--no-compat', 'Ignore API compatibility checks') + .option('--json', 'Output results using JSON') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .action(withCompatibilityCheck((options) => { diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 44f90e88..e15e199e 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -111,6 +111,7 @@ program.command('list') .description('Lists all service users created within Cortex') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') + .option('--json', 'Output results using JSON') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .action(withCompatibilityCheck((options) => { From 45684db606e049bde968d51ca586a4f969945191 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Wed, 22 Dec 2021 15:42:25 +0530 Subject: [PATCH 516/864] FAB-3623 change sessionName to sessionID --- bin/cortex-sessions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index 68a9773a..9e28ca6b 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -53,7 +53,7 @@ program // Describe Session program - .command('describe ') + .command('describe ') .description('Describe session') .alias('get') .option('--no-compat', 'Ignore API compatibility checks') @@ -72,7 +72,7 @@ program // Delete Session program - .command('delete ') + .command('delete ') .description('Delete a session') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') From 60969410194b01285a23acc47ad48f7fba150fdc Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Wed, 22 Dec 2021 15:43:44 +0530 Subject: [PATCH 517/864] a --- bin/cortex-sessions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index 9e28ca6b..bfdfd7c8 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -53,7 +53,7 @@ program // Describe Session program - .command('describe ') + .command('describe ') .description('Describe session') .alias('get') .option('--no-compat', 'Ignore API compatibility checks') @@ -72,7 +72,7 @@ program // Delete Session program - .command('delete ') + .command('delete ') .description('Delete a session') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') From c874dbef73bf5d52c278bcc714edfcdb4cf745da Mon Sep 17 00:00:00 2001 From: clee Date: Wed, 22 Dec 2021 15:51:22 -0600 Subject: [PATCH 518/864] adding --json option to roles list --- bin/cortex-roles.js | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 8d10d5d3..2f6a2e21 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -42,6 +42,7 @@ program.command('list') .description('List roles by project and user') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') + .option('--json', 'Return raw json') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project', 'Project to list roles for') From 99aeb58793435bd65b7c65569f93d234e48e60e7 Mon Sep 17 00:00:00 2001 From: ljha Date: Thu, 30 Dec 2021 11:41:11 +0530 Subject: [PATCH 519/864] adding bat file for deployment on windows --- .../assets/templates/skill/daemon/README.md | 25 +++++++-- .../assets/templates/skill/daemon/make.bat | 51 +++++++++++++++++++ .../templates/skill/external-api/README.md | 20 +++++++- .../templates/skill/external-api/make.bat | 30 +++++++++++ .../assets/templates/skill/job/README.md | 27 ++++++++-- .../assets/templates/skill/job/make.bat | 51 +++++++++++++++++++ 6 files changed, 196 insertions(+), 8 deletions(-) create mode 100644 src/commands/assets/templates/skill/daemon/make.bat create mode 100644 src/commands/assets/templates/skill/external-api/make.bat create mode 100644 src/commands/assets/templates/skill/job/make.bat diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index 596049bf..48823808 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -5,6 +5,9 @@ Long running Cortex skill serving REST API requests Note: > This project assumes a `fast api server` with one endpoint `/invoke` that is run with the Uvicorn python3 binary; you may change to another framework or language. +#### Prerequisites +* `cortex-cli` +* `Docker` #### Files generated * `skill.yaml` Skill definition @@ -12,11 +15,27 @@ Note: * `requirements.txt` Python3 libraries dependencies * `Dockerfile` to build Docker image for this skill -#### Steps +#### Steps to build and deploy -A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy Skill. -`make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. +Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name), and use build scripts to build and deploy. +##### On *nix systems +A Makefile is provided to do these steps. +* `export DOCKER_PREGISTRY_URL=/` +* `export PROJECT_NAME=` +* `make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. + +##### On Windows systems +A `make.bat` batch file is provided to do these steps. +* `set DOCKER_PREGISTRY_URL=/` +* `set PROJECT_NAME=` + > Below commands will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. +* `make build` +* `make push` +* `make deploy` +* `make tests` + +#### Guide to make changes as per the use case 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. 3. Build the docker image (uses the `main.py` file) diff --git a/src/commands/assets/templates/skill/daemon/make.bat b/src/commands/assets/templates/skill/daemon/make.bat new file mode 100644 index 00000000..f4d1069c --- /dev/null +++ b/src/commands/assets/templates/skill/daemon/make.bat @@ -0,0 +1,51 @@ +@echo off + +for /f %%q in ("%~dp0.") do SET SKILL_NAME=%%~nxq + +SET IMAGE_TAG=latest +SET DOCKER_IMAGE_URL=%DOCKER_PREGISTRY_URL%/%SKILL_NAME%:%IMAGE_TAG% + +GOTO :checkenv %* + +:build + echo Building %SKILL_NAME% action image... + cmd /c docker build -t %DOCKER_IMAGE_URL% . + echo done building %SKILL_NAME% action image + GOTO :EOF + +:push + echo Pushing %SKILL_NAME% action image ... + :: cmd /c cortex docker login + cmd /c docker push %DOCKER_IMAGE_URL% + echo done pushing %SKILL_NAME% action image + GOTO :EOF + +:deploy + echo Deploying %SKILL_NAME% ... + cmd /c cortex actions deploy action.json --project %PROJECT_NAME% --docker %DOCKER_IMAGE_URL% + cmd /c cortex skills save -y skill.yaml --project %PROJECT_NAME% + echo Waiting for Skill %SKILL_NAME% to deploy + TIMEOUT 10 + echo Deployed %SKILL_NAME%. Check "actionStatuses" for deployment status + GOTO :get + +:tests + echo Testing %SKILL_NAME% + cmd /c cortex skills invoke --params-file ./test/payload.json %SKILL_NAME% request --project %PROJECT_NAME% + GOTO :EOF + +:get + cmd /c cortex skills describe %SKILL_NAME% --verbose --project %PROJECT_NAME% + GOTO :EOF + +:checkenv + echo Validating environment variables + IF "!DOCKER_PREGISTRY_URL!" == "" ( + echo Eenvironment variable DOCKER_PREGISTRY_URL is not set. Set it like /" + exit/b 1 + ) + IF "!PROJECT_NAME!" == "" ( + echo "Environment variable PROJECT_NAME is not set. Set this to Cortex project name." + exit/b 1 + ) + GOTO :%1 diff --git a/src/commands/assets/templates/skill/external-api/README.md b/src/commands/assets/templates/skill/external-api/README.md index 179daddb..f3757f10 100644 --- a/src/commands/assets/templates/skill/external-api/README.md +++ b/src/commands/assets/templates/skill/external-api/README.md @@ -2,11 +2,27 @@ This skill type allows users to wrap an external REST API as a Cortex Fabric Skill. +#### Prerequisites +* `cortex-cli` + 1. Update `skill.yaml` with `HTTP Method`, `URL`, `Path` and `headers` per the targeted external API 2. Deploy the Skill `cortex skills save -y skill.yaml --project ` -A Makefile is provided to do these steps. Set environment variable `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy Skill. -`make all` will deploy Cortex Skill, and then invoke Skill to test. +#### Steps to deploy + +Set environment variable `PROJECT_NAME` (Cortex Project Name), and use build scripts to build and deploy. + +##### On *nix systems +A Makefile is provided to do these steps. +* `export PROJECT_NAME=` +* `make all` will deploy the Skill, and then invoke the Skill to test. + +##### On Windows systems +A `make.bat` batch file is provided to do these steps. +* `set PROJECT_NAME=` + > Below commands will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. +* `make deploy` +* `make tests` The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. diff --git a/src/commands/assets/templates/skill/external-api/make.bat b/src/commands/assets/templates/skill/external-api/make.bat new file mode 100644 index 00000000..e612e567 --- /dev/null +++ b/src/commands/assets/templates/skill/external-api/make.bat @@ -0,0 +1,30 @@ +@echo off + +for /f %%q in ("%~dp0.") do SET SKILL_NAME=%%~nxq + +SET IMAGE_TAG=latest +SET DOCKER_IMAGE_URL=%DOCKER_PREGISTRY_URL%/%SKILL_NAME%:%IMAGE_TAG% + +GOTO :checkenv %* + +:deploy + echo Deploying %SKILL_NAME% ... + cmd /c cortex skills save -y skill.yaml --project %PROJECT_NAME% + GOTO :get + +:tests + echo Testing %SKILL_NAME% + cmd /c cortex skills invoke --params-file ./test/payload.json %SKILL_NAME% input --project %PROJECT_NAME% + GOTO :EOF + +:get + cmd /c cortex skills describe %SKILL_NAME% --verbose --project %PROJECT_NAME% + GOTO :EOF + +:checkenv + echo Validating environment variables + IF "!PROJECT_NAME!" == "" ( + echo "Environment variable PROJECT_NAME is not set. Set this to Cortex project name." + exit/b 1 + ) + GOTO :%1 diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 4059f43e..837f69c9 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -2,16 +2,37 @@ Cortex skill that runs a background job. +#### Prerequisites +* `cortex-cli` +* `Docker` + #### Files generated * `skill.yaml` Skill definition * `main.py` Python3 code implementing job's business logic * `requirements.txt` Python3 libraries dependencies * `Dockerfile` to build Docker image for this skill -#### Steps +#### Steps to build and deploy + +Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name), and use build scripts to build and deploy. + +##### On *nix systems +A Makefile is provided to do these steps. +* `export DOCKER_PREGISTRY_URL=/` +* `export PROJECT_NAME=` +* `make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. + +##### On Windows systems +A `make.bat` batch file is provided to do these steps. +* `set DOCKER_PREGISTRY_URL=/` +* `set PROJECT_NAME=` + > Below commands will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. +* `make build` +* `make push` +* `make deploy` +* `make tests` -A Makefile is provided to do these steps. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name) and use Makefile to deploy Skill. -`make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. +#### Guide to make changes as per the use case 1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. 2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. diff --git a/src/commands/assets/templates/skill/job/make.bat b/src/commands/assets/templates/skill/job/make.bat new file mode 100644 index 00000000..aef477ca --- /dev/null +++ b/src/commands/assets/templates/skill/job/make.bat @@ -0,0 +1,51 @@ +@echo off + +for /f %%q in ("%~dp0.") do SET SKILL_NAME=%%~nxq + +SET IMAGE_TAG=latest +SET DOCKER_IMAGE_URL=%DOCKER_PREGISTRY_URL%/%SKILL_NAME%:%IMAGE_TAG% + +GOTO :checkenv %* + +:build + echo Building %SKILL_NAME% action image... + cmd /c docker build -t %DOCKER_IMAGE_URL% . + echo done building %SKILL_NAME% action image + GOTO :EOF + +:push + echo Pushing %SKILL_NAME% action image ... + :: cmd /c cortex docker login + cmd /c docker push %DOCKER_IMAGE_URL% + echo done pushing %SKILL_NAME% action image + GOTO :EOF + +:deploy + echo Deploying %SKILL_NAME% ... + cmd /c cortex actions deploy action.json --project %PROJECT_NAME% --docker %DOCKER_IMAGE_URL% + cmd /c cortex skills save -y skill.yaml --project %PROJECT_NAME% + echo Waiting for Skill %SKILL_NAME% to deploy + TIMEOUT 10 + echo Deployed %SKILL_NAME%. Check "actionStatuses" for deployment status + GOTO :get + +:tests + echo Testing %SKILL_NAME% + cmd /c cortex skills invoke --params-file ./test/payload.json %SKILL_NAME% params --project %PROJECT_NAME% + GOTO :EOF + +:get + cmd /c cortex skills describe %SKILL_NAME% --verbose --project %PROJECT_NAME% + GOTO :EOF + +:checkenv + echo Validating environment variables + IF "!DOCKER_PREGISTRY_URL!" == "" ( + echo Eenvironment variable DOCKER_PREGISTRY_URL is not set. Set it like /" + exit/b 1 + ) + IF "!PROJECT_NAME!" == "" ( + echo "Environment variable PROJECT_NAME is not set. Set this to Cortex project name." + exit/b 1 + ) + GOTO :%1 From 93ee3c6f07edeb4b1c56e6fb0d0414d9edc883c1 Mon Sep 17 00:00:00 2001 From: ljha Date: Fri, 31 Dec 2021 00:18:22 +0530 Subject: [PATCH 520/864] docker auth notes --- src/commands/assets/templates/skill/daemon/README.md | 4 ++++ src/commands/assets/templates/skill/daemon/make.bat | 2 +- src/commands/assets/templates/skill/job/README.md | 4 ++++ src/commands/assets/templates/skill/job/make.bat | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md index 48823808..a740b38f 100644 --- a/src/commands/assets/templates/skill/daemon/README.md +++ b/src/commands/assets/templates/skill/daemon/README.md @@ -19,6 +19,10 @@ Note: Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name), and use build scripts to build and deploy. +Configure Docker auth to the private registry: + 1. For Cortex DCI with Docker registry installed use `cortex docker login` + 2. For external Docker registries like Google Cloud's GCR etc use their respective CLI for Docker login + ##### On *nix systems A Makefile is provided to do these steps. * `export DOCKER_PREGISTRY_URL=/` diff --git a/src/commands/assets/templates/skill/daemon/make.bat b/src/commands/assets/templates/skill/daemon/make.bat index f4d1069c..aabdc3fb 100644 --- a/src/commands/assets/templates/skill/daemon/make.bat +++ b/src/commands/assets/templates/skill/daemon/make.bat @@ -41,7 +41,7 @@ GOTO :checkenv %* :checkenv echo Validating environment variables IF "!DOCKER_PREGISTRY_URL!" == "" ( - echo Eenvironment variable DOCKER_PREGISTRY_URL is not set. Set it like /" + echo Environment variable DOCKER_PREGISTRY_URL is not set. Set it like /" exit/b 1 ) IF "!PROJECT_NAME!" == "" ( diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md index 837f69c9..2f131dca 100644 --- a/src/commands/assets/templates/skill/job/README.md +++ b/src/commands/assets/templates/skill/job/README.md @@ -16,6 +16,10 @@ Cortex skill that runs a background job. Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name), and use build scripts to build and deploy. +Configure Docker auth to the private registry: + 1. For Cortex DCI with Docker registry installed use `cortex docker login` + 2. For external Docker registries like Google Cloud's GCR etc use their respective CLI for Docker login + ##### On *nix systems A Makefile is provided to do these steps. * `export DOCKER_PREGISTRY_URL=/` diff --git a/src/commands/assets/templates/skill/job/make.bat b/src/commands/assets/templates/skill/job/make.bat index aef477ca..a2b810db 100644 --- a/src/commands/assets/templates/skill/job/make.bat +++ b/src/commands/assets/templates/skill/job/make.bat @@ -41,7 +41,7 @@ GOTO :checkenv %* :checkenv echo Validating environment variables IF "!DOCKER_PREGISTRY_URL!" == "" ( - echo Eenvironment variable DOCKER_PREGISTRY_URL is not set. Set it like /" + echo Environment variable DOCKER_PREGISTRY_URL is not set. Set it like /" exit/b 1 ) IF "!PROJECT_NAME!" == "" ( From bf45ea124f8b5f5a10a5ddda0f15fcd2b86a236b Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 3 Jan 2022 13:53:34 +0530 Subject: [PATCH 521/864] removed promise resolve as it was always undefined --- src/commands/experiments.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 0123b72b..873db484 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -227,18 +227,10 @@ class DownloadArtifactCommand { const exp = new Experiments(profile.url); const showProgress = !!options.progress; - // To download content from Secrets - exp.downloadArtifact(options.project || profile.project, profile.token, experimentName, runId, artifactName, showProgress).then((response) => { - if (response.success) { - // messages need to be on stderr as content is streamed to stdout - console.error(response.message); - } else { - printError(`Failed to download artifact: ${response.status} - ${response.message}`, options); - } - }).catch((err) => { + exp.downloadArtifact(options.project || profile.project, profile.token, experimentName, runId, artifactName, showProgress).catch((err) => { debug(err); - printError(`Failed to download artifact: ${err.status} - ${err.message}`, options); + printError(`Failed to download artifact: ${err.status ? err.status : ''}- ${err.message ? err.message : ''}`, options); }); } } From a2b974087e57ff80f708826138ec834f19b0a65f Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 4 Jan 2022 10:31:02 +0530 Subject: [PATCH 522/864] added list alias for missions --- bin/cortex-missions.js | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 300acdac..19085062 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -37,6 +37,7 @@ program.description('Work with Cortex Missions'); program .command('list ') + .alias('l') .description('List Missions of the Campaign') .option('--json', 'Output results using JSON') .option('--no-compat', 'Ignore API compatibility checks') From fae985efa8ae90533af81b6509da2b1479cc95a3 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 4 Jan 2022 11:00:54 -0600 Subject: [PATCH 523/864] fix transitive dependency issues with mixin-deep and cache-base (#467) --- package-lock.json | 2470 +++++++++++---------------------------------- package.json | 4 +- 2 files changed, 605 insertions(+), 1869 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a3256a8..600a19a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,31 +1,31 @@ { "name": "cortex-cli", - "version": "2.0.6", + "version": "2.0.7", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -82,15 +82,6 @@ } } }, - "@babel/runtime-corejs3": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.3.tgz", - "integrity": "sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==", - "requires": { - "core-js-pure": "^3.19.0", - "regenerator-runtime": "^0.13.4" - } - }, "@eslint/eslintrc": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", @@ -271,35 +262,18 @@ "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz", + "integrity": "sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ==", "requires": { "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "@types/interpret": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", - "requires": { - "@types/node": "*" + "rxjs": "^7.2.0" } }, "@types/json5": { @@ -317,20 +291,14 @@ } }, "@types/liftoff": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", - "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.0.tgz", + "integrity": "sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==", "requires": { "@types/fined": "*", - "@types/interpret": "*", "@types/node": "*" } }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", @@ -439,13 +407,6 @@ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - } } }, "ansi-regex": { @@ -476,21 +437,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -549,11 +495,6 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -612,15 +553,10 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async": { @@ -633,11 +569,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, "audit-ci": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", @@ -668,55 +599,10 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "binary-extensions": { "version": "2.2.0", @@ -724,6 +610,16 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -789,6 +685,15 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -824,22 +729,6 @@ "unique-filename": "^1.1.1" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -886,12 +775,12 @@ "dev": true }, "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" } }, "camelcase": { @@ -899,6 +788,16 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==" }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "chai": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", @@ -932,28 +831,22 @@ } }, "change-case": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" } }, "chardet": { @@ -994,27 +887,6 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1102,15 +974,6 @@ "mimic-response": "^1.0.0" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1142,11 +1005,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1159,24 +1017,15 @@ "dev": true }, "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js-pure": { - "version": "3.19.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.3.tgz", - "integrity": "sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA==" - }, "cross-fetch": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", @@ -1209,11 +1058,6 @@ "ms": "2.1.2" } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -1266,65 +1110,38 @@ "object-keys": "^1.0.12" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "requires": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", "is-glob": "^4.0.1", "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", "slash": "^3.0.0" }, "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "requires": { - "aggregate-error": "^3.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" } } }, @@ -1367,11 +1184,12 @@ } }, "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "requires": { - "no-case": "^2.2.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, "duplexer": { @@ -1381,9 +1199,9 @@ "dev": true }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "encoding": { @@ -1899,18 +1717,26 @@ } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "espree": { @@ -1939,18 +1765,18 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -1999,51 +1825,6 @@ "through": "^2.3.8" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -2057,25 +1838,6 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -2096,65 +1858,6 @@ } } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -2181,17 +1884,6 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" - }, - "dependencies": { - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - } } }, "fast-json-stable-stringify": { @@ -2231,12 +1923,12 @@ } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "fill-range": { @@ -2253,42 +1945,42 @@ "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "requires": { "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", "resolve-dir": "^1.0.1" }, "dependencies": { "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "^2.1.1" } } } }, "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", "requires": { "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "object.pick": "^1.3.0", + "parse-filepath": "^1.0.2" } }, "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==" }, "flat": { "version": "5.0.2", @@ -2297,31 +1989,19 @@ "dev": true }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "for-in": { @@ -2347,14 +2027,6 @@ "mime-types": "^2.1.12" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -2430,11 +2102,6 @@ "get-intrinsic": "^1.1.1" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -2521,24 +2188,32 @@ } }, "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz", + "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==", "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", + "array-union": "^3.0.1", "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" + "fast-glob": "^3.2.7", + "ignore": "^5.1.8", + "merge2": "^1.4.1", + "slash": "^4.0.0" }, "dependencies": { + "array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" + }, "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" } } }, @@ -2608,13 +2283,6 @@ "source-map": "^0.6.1", "uglify-js": "^3.1.4", "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==" - } } }, "has": { @@ -2625,21 +2293,6 @@ "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", @@ -2666,66 +2319,19 @@ "has-symbols": "^1.0.2" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" + "capital-case": "^1.0.4", + "tslib": "^2.0.3" } }, "homedir-polyfill": { @@ -2800,6 +2406,11 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -2851,23 +2462,42 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.19", + "lodash": "^4.17.21", "mute-stream": "0.0.8", + "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^6.6.0", + "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" + }, + "dependencies": { + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + } } }, "internal-slot": { @@ -2882,9 +2512,9 @@ } }, "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" }, "ip": { "version": "1.1.5", @@ -2900,24 +2530,6 @@ "is-windows": "^1.0.1" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -2946,11 +2558,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -2965,24 +2572,6 @@ "has": "^1.0.3" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -2992,37 +2581,15 @@ "has-tostringtag": "^1.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -3042,19 +2609,16 @@ "is-path-inside": "^3.0.2" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "requires": { - "lower-case": "^1.1.0" - } - }, "is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", @@ -3092,12 +2656,9 @@ "dev": true }, "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, "is-regex": { "version": "1.1.4", @@ -3152,16 +2713,7 @@ "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "requires": { - "upper-case": "^1.1.0" - } + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, "is-weakref": { "version": "1.0.1", @@ -3177,11 +2729,6 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "isbinaryfile": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", @@ -3307,28 +2854,28 @@ "dev": true }, "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", + "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", + "requires": { + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "object.map": "^1.0.1", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" } }, "lodash": { @@ -3353,11 +2900,16 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -3367,7 +2919,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3376,16 +2927,11 @@ } }, "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "requires": { - "lower-case": "^1.1.2" + "tslib": "^2.0.3" } }, "lowercase-keys": { @@ -3443,114 +2989,18 @@ "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, "mime-db": { @@ -3658,25 +3108,6 @@ "yallist": "^4.0.0" } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -3913,24 +3344,6 @@ "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3947,12 +3360,6 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "nise": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", @@ -3978,11 +3385,12 @@ } }, "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "requires": { - "lower-case": "^1.1.1" + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, "nock": { @@ -4003,31 +3411,23 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-plop": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", - "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", - "requires": { - "@babel/runtime-corejs3": "^7.9.2", - "@types/inquirer": "^6.5.0", - "change-case": "^3.1.0", - "del": "^5.1.0", - "globby": "^10.0.1", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.30.0.tgz", + "integrity": "sha512-5w9+jWoy9OtMm3qRmHgL2z/3L5VL3RhEegKkKC4tA1IIjG3aXf8Ee/8wdgU9qXyt1yDfPWI9Tan1rHpXAp0ZnA==", + "requires": { + "@types/inquirer": "^8.1.3", + "change-case": "^4.1.2", + "del": "^6.0.0", + "globby": "^12.0.2", "handlebars": "^4.4.3", - "inquirer": "^7.1.0", - "isbinaryfile": "^4.0.2", + "inquirer": "^8.2.0", + "isbinaryfile": "^4.0.8", "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "resolve": "^1.12.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - } + "lower-case": "^2.0.2", + "mkdirp": "^1.0.4", + "resolve": "^1.20.0", + "title-case": "^3.0.3", + "upper-case": "^2.0.2" } }, "normalize-path": { @@ -4069,34 +3469,6 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "object-inspect": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", @@ -4109,14 +3481,6 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -4226,125 +3590,108 @@ } }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.0.1.tgz", + "integrity": "sha512-TDdKkKHdWE6jo/6pIa5U5AWcSVfpNRFJ8sdRJpioGNVPLAzZzHs/N+QhUfF7ZbyoC+rnDuNTKzeDJUbAza9g4g==", + "requires": { + "bl": "^5.0.0", + "chalk": "^4.1.2", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.0.0", + "strip-ansi": "^7.0.1", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", "requires": { - "color-convert": "^1.9.0" + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "requires": { - "color-name": "1.1.3" + "restore-cursor": "^4.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "is-unicode-supported": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.1.0.tgz", + "integrity": "sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA==" }, "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "^2.0.1" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", "requires": { - "mimic-fn": "^1.0.0" + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "dependencies": { + "chalk": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", + "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" + } } }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "requires": { - "has-flag": "^3.0.0" + "ansi-regex": "^6.0.1" } } } @@ -4368,11 +3715,12 @@ } }, "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "requires": { - "no-case": "^2.2.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, "parent-module": { @@ -4400,25 +3748,21 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "requires": { - "no-case": "^2.2.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, "path-exists": { @@ -4564,66 +3908,31 @@ } }, "plop": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", - "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", - "requires": { - "@types/liftoff": "^2.5.1", - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/plop/-/plop-3.0.5.tgz", + "integrity": "sha512-bD+/Lr+7NCjNIaYJq1cyHDfxtVCdjwfprgKsNwHwFnwntTiNwZWyxd1NuRDygdQWyPi+rstFMMFAPMek0cYaqA==", + "requires": { + "@types/liftoff": "^4.0.0", + "chalk": "^5.0.0", + "interpret": "^2.2.0", + "liftoff": "^4.0.0", "minimist": "^1.2.5", - "node-plop": "^0.26.3", - "ora": "^3.4.0", - "v8flags": "^2.0.10" + "node-plop": "^0.30.0", + "ora": "^6.0.1", + "v8flags": "^4.0.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", + "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "progress": { @@ -4717,6 +4026,16 @@ "mute-stream": "~0.0.4" } }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -4733,61 +4052,44 @@ "dev": true }, "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "requires": { - "resolve": "^1.1.6" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "resolve": "^1.20.0" } }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "repeat-element": { - "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=" - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-alpn": { @@ -4810,11 +4112,6 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -4832,11 +4129,6 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -4853,51 +4145,48 @@ "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" }, "rewire": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", + "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", "dev": true, "requires": { - "eslint": "^6.8.0" + "eslint": "^7.32.0" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "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==", + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" } }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -4907,138 +4196,58 @@ "sprintf-js": "~1.0.2" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "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" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } } }, "eslint-scope": { @@ -5052,195 +4261,32 @@ } }, "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } } } @@ -5267,26 +4313,17 @@ } }, "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.1.tgz", + "integrity": "sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==", "requires": { - "tslib": "^1.9.0" + "tslib": "^2.1.0" } }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safer-buffer": { "version": "2.1.2", @@ -5302,12 +4339,13 @@ } }, "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" } }, "serialize-javascript": { @@ -5319,27 +4357,6 @@ "randombytes": "^2.1.0" } }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5367,9 +4384,9 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" }, "sinon": { "version": "12.0.1", @@ -5391,40 +4408,14 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "smart-buffer": { @@ -5433,121 +4424,12 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "requires": { - "no-case": "^2.2.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, "socks": { @@ -5570,26 +4452,9 @@ } }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "split": { "version": "1.0.1", @@ -5600,14 +4465,6 @@ "through": "2" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -5627,25 +4484,6 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -5711,6 +4549,14 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -5739,53 +4585,51 @@ "has-flag": "^4.0.0" } }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } } } @@ -5815,12 +4659,11 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" + "tslib": "^2.0.3" } }, "tmp": { @@ -5831,35 +4674,6 @@ "os-tmpdir": "~1.0.2" } }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5881,17 +4695,17 @@ } }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-detect": { @@ -5901,15 +4715,14 @@ "dev": true }, "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 + "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==" }, "uglify-js": { - "version": "3.14.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", - "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", + "version": "3.14.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz", + "integrity": "sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==", "optional": true }, "unbox-primitive": { @@ -5929,17 +4742,6 @@ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -5956,53 +4758,20 @@ "imurmurhash": "^0.1.4" } }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } + "tslib": "^2.0.3" } }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "requires": { - "upper-case": "^1.1.1" + "tslib": "^2.0.3" } }, "uri-js": { @@ -6014,11 +4783,6 @@ "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, "url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", @@ -6033,15 +4797,10 @@ "requires-port": "^1.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "v8-compile-cache": { "version": "2.2.0", @@ -6050,12 +4809,9 @@ "dev": true }, "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "^1.1.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz", + "integrity": "sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==" }, "validate-npm-package-name": { "version": "3.0.0", @@ -6175,26 +4931,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 659bed0e..3135f930 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "lodash": "4.17.21", "moment": "2.29.1", "npm-registry-fetch": "12.0.0", - "plop": "2.7.6", + "plop": "3.0.5", "prompt": "1.2.0", "semver": "7.3.5", "url-join": "4.0.1", @@ -69,7 +69,7 @@ "mocha": "9.1.3", "mocked-env": "1.3.5", "nock": "13.2.1", - "rewire": "5.0.0", + "rewire": "6.0.0", "sinon": "12.0.1" } } From faba9e765dcc22ca3d6d279bd96a26da299339f0 Mon Sep 17 00:00:00 2001 From: clee Date: Tue, 4 Jan 2022 13:45:55 -0600 Subject: [PATCH 524/864] revert upgrade of plop that breaks generate skills command due to ESM --- package-lock.json | 1722 +++++++++++++++++++++++++++++++++++---------- package.json | 2 +- 2 files changed, 1349 insertions(+), 375 deletions(-) diff --git a/package-lock.json b/package-lock.json index 600a19a3..ba2fa221 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,6 +82,15 @@ } } }, + "@babel/runtime-corejs3": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.7.tgz", + "integrity": "sha512-MiYR1yk8+TW/CpOD0CyX7ve9ffWTKqLk/L6pk8TPl0R8pNi+1pFY8fH9yET55KlvukQ4PAWfXsGr2YHVjcI4Pw==", + "requires": { + "core-js-pure": "^3.19.0", + "regenerator-runtime": "^0.13.4" + } + }, "@eslint/eslintrc": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", @@ -262,18 +271,35 @@ "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/inquirer": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz", - "integrity": "sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", "requires": { "@types/through": "*", - "rxjs": "^7.2.0" + "rxjs": "^6.4.0" + } + }, + "@types/interpret": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", + "requires": { + "@types/node": "*" } }, "@types/json5": { @@ -291,14 +317,20 @@ } }, "@types/liftoff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", + "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", "requires": { "@types/fined": "*", + "@types/interpret": "*", "@types/node": "*" } }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", @@ -437,6 +469,21 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -495,6 +542,11 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -553,6 +605,11 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -569,6 +626,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, "audit-ci": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", @@ -599,10 +661,55 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } }, "binary-extensions": { "version": "2.2.0", @@ -610,16 +717,6 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -685,15 +782,6 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -729,6 +817,22 @@ "unique-filename": "^1.1.1" } }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -775,12 +879,12 @@ "dev": true }, "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -788,16 +892,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==" }, - "capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - } - }, "chai": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", @@ -831,22 +925,28 @@ } }, "change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "requires": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" } }, "chardet": { @@ -887,6 +987,27 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -974,6 +1095,15 @@ "mimic-response": "^1.0.0" } }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1005,6 +1135,11 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1017,15 +1152,24 @@ "dev": true }, "constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" } }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js-pure": { + "version": "3.20.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz", + "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==" + }, "cross-fetch": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", @@ -1058,6 +1202,11 @@ "ms": "2.1.2" } }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -1110,38 +1259,65 @@ "object-keys": "^1.0.12" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", "is-glob": "^4.0.1", "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", "slash": "^3.0.0" }, "dependencies": { - "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" + "aggregate-error": "^3.0.0" } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" } } }, @@ -1152,7 +1328,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-file": { @@ -1184,12 +1360,11 @@ } }, "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "no-case": "^2.2.0" } }, "duplexer": { @@ -1825,6 +2000,51 @@ "through": "^2.3.8" } }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -1838,6 +2058,25 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -1858,6 +2097,65 @@ } } }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -1884,6 +2182,17 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "dependencies": { + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + } } }, "fast-json-stable-stringify": { @@ -1945,42 +2254,42 @@ "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "findup-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "requires": { "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" }, "dependencies": { "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "^2.1.0" } } } }, "fined": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "requires": { "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", + "is-plain-object": "^2.0.3", "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" } }, "flagged-respawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" }, "flat": { "version": "5.0.2", @@ -2027,6 +2336,14 @@ "mime-types": "^2.1.12" } }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -2102,6 +2419,11 @@ "get-intrinsic": "^1.1.1" } }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -2188,32 +2510,24 @@ } }, "globby": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz", - "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "requires": { - "array-union": "^3.0.1", + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.8", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" }, "dependencies": { - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" - }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" } } }, @@ -2283,6 +2597,13 @@ "source-map": "^0.6.1", "uglify-js": "^3.1.4", "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==" + } } }, "has": { @@ -2293,6 +2614,21 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", @@ -2319,6 +2655,53 @@ "has-symbols": "^1.0.2" } }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -2326,12 +2709,12 @@ "dev": true }, "header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", "requires": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.3" } }, "homedir-polyfill": { @@ -2406,11 +2789,6 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -2462,42 +2840,23 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.21", + "lodash": "^4.17.19", "mute-stream": "0.0.8", - "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" - }, - "dependencies": { - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - } } }, "internal-slot": { @@ -2512,9 +2871,9 @@ } }, "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "ip": { "version": "1.1.5", @@ -2530,6 +2889,24 @@ "is-windows": "^1.0.1" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -2558,6 +2935,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -2572,6 +2954,24 @@ "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -2581,6 +2981,28 @@ "has-tostringtag": "^1.0.0" } }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2609,16 +3031,19 @@ "is-path-inside": "^3.0.2" } }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" - }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "requires": { + "lower-case": "^1.1.0" + } + }, "is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", @@ -2656,9 +3081,12 @@ "dev": true }, "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } }, "is-regex": { "version": "1.1.4", @@ -2713,7 +3141,16 @@ "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "requires": { + "upper-case": "^1.1.0" + } }, "is-weakref": { "version": "1.0.1", @@ -2729,6 +3166,11 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "isbinaryfile": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", @@ -2864,18 +3306,18 @@ } }, "liftoff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", - "requires": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "object.map": "^1.0.1", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" } }, "lodash": { @@ -2910,6 +3352,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -2919,6 +3362,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2927,11 +3371,16 @@ } }, "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", "requires": { - "tslib": "^2.0.3" + "lower-case": "^1.1.2" } }, "lowercase-keys": { @@ -2989,18 +3438,114 @@ "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } } }, "mime-db": { @@ -3108,6 +3653,25 @@ "yallist": "^4.0.0" } }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -3344,6 +3908,24 @@ "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3385,12 +3967,11 @@ } }, "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "lower-case": "^1.1.1" } }, "nock": { @@ -3411,23 +3992,31 @@ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-plop": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.30.0.tgz", - "integrity": "sha512-5w9+jWoy9OtMm3qRmHgL2z/3L5VL3RhEegKkKC4tA1IIjG3aXf8Ee/8wdgU9qXyt1yDfPWI9Tan1rHpXAp0ZnA==", - "requires": { - "@types/inquirer": "^8.1.3", - "change-case": "^4.1.2", - "del": "^6.0.0", - "globby": "^12.0.2", + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", + "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", + "requires": { + "@babel/runtime-corejs3": "^7.9.2", + "@types/inquirer": "^6.5.0", + "change-case": "^3.1.0", + "del": "^5.1.0", + "globby": "^10.0.1", "handlebars": "^4.4.3", - "inquirer": "^8.2.0", - "isbinaryfile": "^4.0.8", + "inquirer": "^7.1.0", + "isbinaryfile": "^4.0.2", "lodash.get": "^4.4.2", - "lower-case": "^2.0.2", - "mkdirp": "^1.0.4", - "resolve": "^1.20.0", - "title-case": "^3.0.3", - "upper-case": "^2.0.2" + "mkdirp": "^0.5.1", + "resolve": "^1.12.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } } }, "normalize-path": { @@ -3469,6 +4058,34 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-inspect": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", @@ -3481,6 +4098,14 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -3604,94 +4229,111 @@ } }, "ora": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.0.1.tgz", - "integrity": "sha512-TDdKkKHdWE6jo/6pIa5U5AWcSVfpNRFJ8sdRJpioGNVPLAzZzHs/N+QhUfF7ZbyoC+rnDuNTKzeDJUbAza9g4g==", - "requires": { - "bl": "^5.0.0", - "chalk": "^4.1.2", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.0", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.0.0", - "strip-ansi": "^7.0.1", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "color-convert": "^1.9.0" } }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^2.0.0" } }, - "is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } }, - "is-unicode-supported": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.1.0.tgz", - "integrity": "sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA==" + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - }, - "dependencies": { - "chalk": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", - "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" - } + "chalk": "^2.0.1" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" } }, "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^5.1.0", + "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "ansi-regex": "^6.0.1" + "has-flag": "^3.0.0" } } } @@ -3715,12 +4357,11 @@ } }, "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "no-case": "^2.2.0" } }, "parent-module": { @@ -3748,21 +4389,25 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" } }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, "path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "no-case": "^2.2.0" } }, "path-exists": { @@ -3908,27 +4553,62 @@ } }, "plop": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/plop/-/plop-3.0.5.tgz", - "integrity": "sha512-bD+/Lr+7NCjNIaYJq1cyHDfxtVCdjwfprgKsNwHwFnwntTiNwZWyxd1NuRDygdQWyPi+rstFMMFAPMek0cYaqA==", - "requires": { - "@types/liftoff": "^4.0.0", - "chalk": "^5.0.0", - "interpret": "^2.2.0", - "liftoff": "^4.0.0", + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", + "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", + "requires": { + "@types/liftoff": "^2.5.1", + "chalk": "^1.1.3", + "interpret": "^1.2.0", + "liftoff": "^2.5.0", "minimist": "^1.2.5", - "node-plop": "^0.30.0", - "ora": "^6.0.1", - "v8flags": "^4.0.0" + "node-plop": "^0.26.3", + "ora": "^3.4.0", + "v8flags": "^2.0.10" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, "chalk": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", - "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -4026,16 +4706,6 @@ "mute-stream": "~0.0.4" } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -4052,11 +4722,25 @@ "dev": true }, "rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "^1.20.0" + "resolve": "^1.1.6" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -4065,6 +4749,16 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, + "repeat-element": { + "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=" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4112,6 +4806,11 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -4129,6 +4828,11 @@ "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -4313,17 +5017,26 @@ } }, "rxjs": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.1.tgz", - "integrity": "sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "requires": { - "tslib": "^2.1.0" + "tslib": "^1.9.0" } }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } }, "safer-buffer": { "version": "2.1.2", @@ -4339,13 +5052,12 @@ } }, "sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" } }, "serialize-javascript": { @@ -4357,6 +5069,27 @@ "randombytes": "^2.1.0" } }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4424,12 +5157,121 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "requires": { + "no-case": "^2.2.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "socks": { @@ -4452,9 +5294,26 @@ } }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, "split": { "version": "1.0.1", @@ -4465,6 +5324,14 @@ "through": "2" } }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -4484,6 +5351,25 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -4549,14 +5435,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4590,6 +5468,15 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, "table": { "version": "6.7.5", "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", @@ -4659,11 +5546,12 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "title-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", - "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", "requires": { - "tslib": "^2.0.3" + "no-case": "^2.2.0", + "upper-case": "^1.0.3" } }, "tmp": { @@ -4674,6 +5562,35 @@ "os-tmpdir": "~1.0.2" } }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -4695,9 +5612,9 @@ } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "type-check": { "version": "0.4.0", @@ -4742,6 +5659,17 @@ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -4758,20 +5686,53 @@ "imurmurhash": "^0.1.4" } }, - "upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "tslib": "^2.0.3" + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } } }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, "upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", "requires": { - "tslib": "^2.0.3" + "upper-case": "^1.1.1" } }, "uri-js": { @@ -4783,6 +5744,11 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", @@ -4797,10 +5763,15 @@ "requires-port": "^1.0.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, "v8-compile-cache": { "version": "2.2.0", @@ -4809,9 +5780,12 @@ "dev": true }, "v8flags": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz", - "integrity": "sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "^1.1.1" + } }, "validate-npm-package-name": { "version": "3.0.0", diff --git a/package.json b/package.json index 3135f930..47f29f50 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "lodash": "4.17.21", "moment": "2.29.1", "npm-registry-fetch": "12.0.0", - "plop": "3.0.5", + "plop": "2.7.6", "prompt": "1.2.0", "semver": "7.3.5", "url-join": "4.0.1", From f13b238e858104fe8ccfc96033183afa9b38073e Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 4 Jan 2022 15:51:14 -0600 Subject: [PATCH 525/864] FAB-3617 and FAB-3619: resolve security vulns for transitive deps on mixin-deep and cache-base (#468) * add resolution field to package.json and `npx npm-force-resolutions` to preinstall script to force upgrades on transitive dependencies for cache-base and mixin-deep * recommit package-lock.json after running c12e-ci * fixing versions in resolutions field in package.json, it started complaining about prefixing the version with `^` * updating cli build script to use `npm ci` inside docker build, use `main` as the branch name to publish to npm, and use `npm prune` instead of deleting node_modules and rerunning `npm i`. --- build.sh | 8 +- package-lock.json | 214 +++++++++++++++++++++++----------------------- package.json | 10 ++- 3 files changed, 117 insertions(+), 115 deletions(-) diff --git a/build.sh b/build.sh index c7ee8875..a351a572 100755 --- a/build.sh +++ b/build.sh @@ -26,14 +26,14 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ - npm install + npm ci --unsafe-perm --userconfig=/root/.npmrc npm test echo ${VERSION} > version.txt ./generate_docs.sh BRANCH=$(git symbolic-ref --short -q HEAD) - if [[ ${BRANCH} = "master" ]]; then - rm -rf node_modules - npm install --silent --only=production + if [[ ${BRANCH} = "main" ]]; then + npm prune --production +# TODO this should maybe be done as part of the gocd pipeline?.. or maybe get in the habit of pushing alpha versions to npm just like we do for cortex-python?.. npm publish --registry=https://registry.npmjs.org/ elif [[ ${BRANCH} = "develop" ]]; then npm config set always-auth true diff --git a/package-lock.json b/package-lock.json index ba2fa221..f8a2d3e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -184,6 +184,11 @@ "rimraf": "^3.0.2" } }, + "@sellside/emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", + "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==" + }, "@sideway/address": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", @@ -666,15 +671,29 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "^1.0.1", + "cache-base": "2.0.2", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", + "mixin-deep": "2.0.1", "pascalcase": "^0.1.1" }, "dependencies": { + "cache-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", + "requires": { + "@sellside/emitter": "^1.2.1", + "collection-visit": "^1.0.0", + "get-value": "^2.0.6", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", @@ -683,6 +702,35 @@ "is-descriptor": "^1.0.0" } }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -708,6 +756,37 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "mixin-deep": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" } } }, @@ -818,17 +897,15 @@ } }, "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", "requires": { + "@sellside/emitter": "^1.2.1", "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", "get-value": "^2.0.6", - "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", - "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" } @@ -2656,52 +2733,30 @@ } }, "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { - "is-buffer": "^1.1.5" + "isarray": "1.0.0" } } } }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -3654,23 +3709,9 @@ } }, "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" }, "mkdirp": { "version": "1.0.4", @@ -5562,24 +5603,6 @@ "os-tmpdir": "~1.0.2" } }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -5693,33 +5716,6 @@ "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } } }, "upper-case": { @@ -5979,4 +5975,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 47f29f50..43465764 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { - "preinstall": "npx check-node-version -p --package", + "preinstall": "npx npm-force-resolutions && npx check-node-version -p --package", "prepare": "husky install", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", "test": "NODE_ENV=test mocha --exit" @@ -32,6 +32,7 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "boxen": "5.1.2", + "cache-base": "^2.0.0", "chalk": "4.1.2", "cli-table3": "0.6.0", "commander": "8.3.0", @@ -50,8 +51,9 @@ "js-yaml": "4.1.0", "lodash": "4.17.21", "moment": "2.29.1", + "mixin-deep": "^2.0.1", "npm-registry-fetch": "12.0.0", - "plop": "2.7.6", + "plop": "^2.7.6", "prompt": "1.2.0", "semver": "7.3.5", "url-join": "4.0.1", @@ -71,5 +73,9 @@ "nock": "13.2.1", "rewire": "6.0.0", "sinon": "12.0.1" + }, + "resolutions": { + "mixin-deep": "2.0.1", + "cache-base": "2.0.2" } } From 75ea14ff3ae0269084e68cabaa0164c0e9337200 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 6 Jan 2022 18:20:29 -0600 Subject: [PATCH 526/864] Add run from source instructions --- Dockerfile.c12e-ci.cortex-cli | 2 +- README.md | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Dockerfile.c12e-ci.cortex-cli b/Dockerfile.c12e-ci.cortex-cli index faa65b8f..e52b7414 100644 --- a/Dockerfile.c12e-ci.cortex-cli +++ b/Dockerfile.c12e-ci.cortex-cli @@ -1,4 +1,4 @@ -FROM c12e/nodejs:dev-12.22.0 +FROM node:14-buster-slim COPY . /from_ci_cd_build diff --git a/README.md b/README.md index d9d41f05..edd45cfe 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,18 @@ You can link your local copy of cortex-cli to your globally installed version: ```bash npm link ``` + +The cortex cli can be run directly from the source with a simple wrapper script +``` +git clone https://github.com/CognitiveScale/cortex-cli.git +cat > /usr/local/bin/cortex < Date: Fri, 7 Jan 2022 15:24:15 -0600 Subject: [PATCH 527/864] FAB-3215 task list, get, logs, and delete subcommands (#445) * add subcommands for listing tasks * add describeTask subcommand * listTasks command.. kinda duplicated since the start of it was in catalog service with skill logs * delete task command * use correct http verb when deleting task * option to return full task k8s resource * adding code coverage * updating dockerfile base image * adding table output formatting to list tasks command fixing linting issues * more linting fixes * adding try/catch into tasks commands * updated package-lock.json * linting * activate and restore nock for tests --- Dockerfile.c12e-ci.cortex-cli | 2 +- bin/cortex-skills.js | 1 + bin/cortex-tasks.js | 116 ++ bin/cortex.js | 1 + cortex-cli.gocd.yaml | 8 + package-lock.json | 3347 ++++++++++++++++++++++++++------- package.json | 16 +- src/client/tasks.js | 88 + src/commands/skills.js | 2 +- src/commands/tasks.js | 123 ++ test/tasks.js | 89 + 11 files changed, 3120 insertions(+), 673 deletions(-) create mode 100755 bin/cortex-tasks.js create mode 100644 src/client/tasks.js create mode 100644 src/commands/tasks.js create mode 100644 test/tasks.js diff --git a/Dockerfile.c12e-ci.cortex-cli b/Dockerfile.c12e-ci.cortex-cli index faa65b8f..d25feafe 100644 --- a/Dockerfile.c12e-ci.cortex-cli +++ b/Dockerfile.c12e-ci.cortex-cli @@ -1,4 +1,4 @@ -FROM c12e/nodejs:dev-12.22.0 +FROM node:14-bullseye COPY . /from_ci_cd_build diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 96abcb8f..967b9386 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -169,6 +169,7 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') // TODO enable when we want to support tasks + // .option('--type [type]', 'The type of action logs to fetch [skill|task]') .action(withCompatibilityCheck((skillName, actionName, options) => { try { diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js new file mode 100755 index 00000000..0f33bdea --- /dev/null +++ b/bin/cortex-tasks.js @@ -0,0 +1,116 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('commander'); + +const { withCompatibilityCheck } = require('../src/compatibility'); + +const { + ListTasksCommand, + DescribeTaskCommand, + TaskLogsCommand, + TaskDeleteCommand, +} = require('../src/commands/tasks'); + +program.name('cortex tasks'); +program.description('Work with Cortex Tasks'); + +// List activations +program + .command('list') + .description('List tasks') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--json', 'Output results using JSON') + // .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + // .option('--agentName [string]', 'Query activations by agentName') + // .option('--skillName [string]', 'Query activations by skillName') + // .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') + // .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') + // .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') + // .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') + // .option('--correlationId [string]', 'Query activations with same correlationId') + // .option('--status [status]', 'Filters activations by status [complete|error].') + // .option('--limit [limit]', 'Limit number of records', '100') + // .option('--offset [offset]', 'Skip number of records', '0') + // .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') + .action(withCompatibilityCheck((options) => { + try { + new ListTasksCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +program + .command('describe ') + .alias('get') + .description('Describe a task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .option('--k8s', 'Return the full k8sResource in the response') + // .option('-o, --output ', 'Format output as yaml or k8s resources') + .action(withCompatibilityCheck((taskName, options) => { + try { + new DescribeTaskCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Get task logs +program + .command('logs ') + .description('Get logs of a task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + // TODO enable when we want to support tasks + // .option('--type [type]', 'The type of action logs to fetch [skill|task]') + .action(withCompatibilityCheck((taskName, options) => { + try { + new TaskLogsCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Delete a task +program + .command('delete ') + .description('Delete a task, if it exists') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile [profile]', 'The profile to use') + .option('--project [project]', 'The project to use') + .action(withCompatibilityCheck((taskName, options) => { + try { + new TaskDeleteCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex.js b/bin/cortex.js index 1329b3b8..ccc86a01 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -43,6 +43,7 @@ program .command('secrets [cmd]', 'Work with Cortex Secrets') .command('sessions [cmd]', 'Work with Cortex Sessions') .command('skills [cmd]', 'Work with Cortex Skills') + .command('tasks [cmd]', 'Work with Cortex Tasks') .command('types [cmd]', 'Work with Cortex Types') .command('users [cmd]', 'Work with a Cortex Users'); diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 88fe3b67..9ef171d0 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -19,6 +19,10 @@ pipelines: source: devBranchRevision.json - build: source: cortex-cli-docs.md + - test: + source: coverage + tabs: + coverage: testoutput/coverage/index.html tasks: - script: | set -eux @@ -42,6 +46,10 @@ pipelines: artifacts: - build: source: cortex-cli-docs.md + - test: + source: coverage + tabs: + coverage: testoutput/coverage/index.html tasks: - script: | git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git diff --git a/package-lock.json b/package-lock.json index f8a2d3e2..43db5676 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,27 +5,307 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, + "@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "dev": true + }, + "@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, + "@babel/helper-validator-option": { + "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.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "dev": true, + "requires": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" + } + }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -82,24 +362,238 @@ } } }, + "@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "dev": true + }, "@babel/runtime-corejs3": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.7.tgz", - "integrity": "sha512-MiYR1yk8+TW/CpOD0CyX7ve9ffWTKqLk/L6pk8TPl0R8pNi+1pFY8fH9yET55KlvukQ4PAWfXsGr2YHVjcI4Pw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", + "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", "requires": { - "core-js-pure": "^3.19.0", + "core-js-pure": "^3.16.0", "regenerator-runtime": "^0.13.4" } }, + "@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/traverse": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + } + } + }, "@eslint/eslintrc": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", - "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.0.0", + "espree": "^9.2.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", @@ -143,6 +637,52 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "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", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -167,9 +707,9 @@ } }, "@npmcli/fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", - "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", + "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", "requires": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -222,9 +762,9 @@ } }, "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" @@ -357,6 +897,67 @@ "@types/node": "*" } }, + "@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "globby": { + "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", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -374,9 +975,9 @@ } }, "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, "acorn-jsx": { @@ -394,9 +995,9 @@ } }, "agentkeepalive": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", + "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -444,12 +1045,19 @@ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } } }, "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "4.3.0", @@ -469,6 +1077,27 @@ "picomatch": "^2.0.4" } }, + "app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", + "dev": true + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -505,36 +1134,6 @@ "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" - }, - "dependencies": { - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - } } }, "array-slice": { @@ -561,36 +1160,6 @@ "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - } } }, "array.prototype.flatmap": { @@ -615,10 +1184,16 @@ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, + "ast-module-types": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", + "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "dev": true + }, "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, "async": { @@ -653,11 +1228,75 @@ "yargs": "^16.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true } } }, @@ -702,35 +1341,6 @@ "is-descriptor": "^1.0.0" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -757,32 +1367,6 @@ "kind-of": "^6.0.2" } }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "mixin-deep": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", @@ -790,12 +1374,29 @@ } } }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -811,6 +1412,16 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -822,19 +1433,37 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" } }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } } } }, @@ -861,6 +1490,29 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -939,6 +1591,18 @@ } } }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + } + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -965,9 +1629,16 @@ } }, "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001283", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", + "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", + "dev": true }, "chai": { "version": "4.3.4", @@ -1132,14 +1803,14 @@ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^6.2.0" }, "dependencies": { "ansi-regex": { @@ -1149,12 +1820,12 @@ "dev": true }, "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^5.0.0" } } } @@ -1212,6 +1883,12 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -1223,9 +1900,9 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, "constant-case": { @@ -1237,15 +1914,32 @@ "upper-case": "^1.1.1" } }, + "convert-source-map": { + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js-pure": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz", - "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==" + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", + "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "cross-fetch": { "version": "3.1.4", @@ -1279,11 +1973,26 @@ "ms": "2.1.2" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, + "decomment": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/decomment/-/decomment-0.9.5.tgz", + "integrity": "sha512-h0TZ8t6Dp49duwyDHo3iw67mnh9/UpFiSSiOb5gDK1sqoXzrfX/SQxIUQd2R2QEiSnqib0KF2fnKnGfAhAs6lg==", + "dev": true, + "requires": { + "esprima": "4.0.1" + } + }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -1308,12 +2017,35 @@ "type-detect": "^4.0.0" } }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "requires": { + "strip-bom": "^4.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + } + } + }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -1408,11 +2140,147 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, + "dependency-tree": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-8.1.2.tgz", + "integrity": "sha512-c4CL1IKxkKng0oT5xrg4uNiiMVFqTGOXqHSFx7XEFdgSsp6nw3AGGruICppzJUrfad/r7GLqt26rmWU4h4j39A==", + "dev": true, + "requires": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "filing-cabinet": "^3.0.1", + "precinct": "^8.0.0", + "typescript": "^3.9.7" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "precinct": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.2.0.tgz", + "integrity": "sha512-D9fQM/fAS7rGLA1m+PusoEMc07g9I5lZUf6rstT5XPCPn56raSIrj9R9y052YV8j4N+tjkgfCgT10bRQ3vg8+A==", + "dev": true, + "requires": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "detective-amd": "^3.0.1", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.0", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + } + } + } + }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, + "detective-amd": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.0.tgz", + "integrity": "sha512-G7wGWT6f0VErjUkE2utCm7IUshT7nBh7aBBH2VBOiY9Dqy2DMens5iiOvYCuhstoIxRKLrnOvVAz4/EyPIAjnw==", + "dev": true, + "requires": { + "ast-module-types": "^2.7.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^3.0.0", + "node-source-walk": "^4.0.0" + } + }, + "detective-cjs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.1.tgz", + "integrity": "sha512-JQtNTBgFY6h8uT6pgph5QpV3IyxDv+z3qPk/FZRDT9TlFfm5dnRtpH39WtQEr1khqsUxVqXzKjZHpdoQvQbllg==", + "dev": true, + "requires": { + "ast-module-types": "^2.4.0", + "node-source-walk": "^4.0.0" + } + }, + "detective-es6": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.1.tgz", + "integrity": "sha512-22z7MblxkhsIQGuALeGwCKEfqNy4WmgDGmfJCwdXbfDkVYIiIDmY513hiIWBvX3kCmzvvWE7RR7kAYxs01wwKQ==", + "dev": true, + "requires": { + "node-source-walk": "^4.0.0" + } + }, + "detective-less": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", + "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", + "dev": true, + "requires": { + "debug": "^4.0.0", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + } + }, + "detective-postcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", + "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "is-url": "^1.2.4", + "postcss": "^8.1.7", + "postcss-values-parser": "^2.0.1" + } + }, + "detective-sass": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.1.tgz", + "integrity": "sha512-oSbrBozRjJ+QFF4WJFbjPQKeakoaY1GiR380NPqwdbWYd5wfl5cLWv0l6LsJVqrgWfFN1bjFqSeo32Nxza8Lbw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + } + }, + "detective-scss": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.1.tgz", + "integrity": "sha512-VveyXW4WQE04s05KlJ8K0bG34jtHQVgTc9InspqoQxvnelj/rdgSAy7i2DXAazyQNFKlWSWbS+Ro2DWKFOKTPQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + } + }, + "detective-stylus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.0.tgz", + "integrity": "sha1-UK7n24uruZA4HwEMY/q7pbWOVM0=", + "dev": true + }, + "detective-typescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.0.tgz", + "integrity": "sha512-y/Ev98AleGvl43YKTNcA2Q+lyFmsmCfTTNWy4cjEJxoLkbobcXtRS0Kvx06daCgr2GdtlwLfNzL553BkktfJoA==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "^4.8.2", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.7" + } + }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -1425,6 +2293,13 @@ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "requires": { "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + } } }, "doctrine": { @@ -1450,10 +2325,16 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "electron-to-chromium": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.5.tgz", + "integrity": "sha512-YKaB+t8ul5crdh6OeqT2qXdxJGI0fAYb6/X8pDIyye+c3a7ndOCk5gVeKX+ABwivCGNS56vOAif3TN0qJMpEHw==", + "dev": true + }, "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "encoding": { @@ -1473,6 +2354,16 @@ "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -1526,6 +2417,12 @@ "is-symbol": "^1.0.2" } }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -1537,6 +2434,34 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, "eslint": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", @@ -1589,16 +2514,6 @@ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1793,26 +2708,26 @@ } }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } }, "eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", - "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", + "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", "dev": true, "requires": { "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" + "find-up": "^2.1.0" }, "dependencies": { "debug": { @@ -1939,13 +2854,14 @@ "dev": true }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } @@ -1969,35 +2885,27 @@ } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } } }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", - "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "requires": { - "acorn": "^8.6.0", + "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^3.1.0" }, @@ -2017,18 +2925,18 @@ "dev": true }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } @@ -2269,6 +3177,11 @@ "braces": "^3.0.1", "picomatch": "^2.2.3" } + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" } } }, @@ -2309,12 +3222,41 @@ } }, "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "filing-cabinet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.0.1.tgz", + "integrity": "sha512-3Wn18+vSKmrlOc0fp5J7p1UyGi7yCWUpPhGVFzZsUyGzG+AEzYWguMGxUbjsgsV4whRHCCiYxIrGyKivBBDDSg==", "dev": true, "requires": { - "flat-cache": "^3.0.4" + "app-module-path": "^2.2.0", + "commander": "^2.20.3", + "debug": "^4.3.1", + "decomment": "^0.9.3", + "enhanced-resolve": "^5.3.2", + "is-relative-path": "^1.0.2", + "module-definition": "^3.3.1", + "module-lookup-amd": "^7.0.0", + "resolve": "^1.19.0", + "resolve-dependency-path": "^2.0.0", + "sass-lookup": "^3.0.0", + "stylus-lookup": "^3.0.1", + "typescript": "^3.9.7" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "fill-range": { @@ -2325,11 +3267,43 @@ "to-regex-range": "^5.0.1" } }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, "find-package-json": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, + "find-up": { + "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": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "findup-sync": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", @@ -2375,19 +3349,37 @@ "dev": true }, "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", "dev": true }, "for-in": { @@ -2403,6 +3395,16 @@ "for-in": "^1.0.1" } }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -2427,6 +3429,12 @@ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, + "fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true + }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -2458,6 +3466,22 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-amd-module-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.0.tgz", + "integrity": "sha512-99Q7COuACPfVt18zH9N4VAMyb81S6TUgJm2NgV6ERtkh9VIkAaByZkW530wl3lLN5KTtSrK9jVLxYsoP5hQKsw==", + "dev": true, + "requires": { + "ast-module-types": "^2.3.2", + "node-source-walk": "^4.0.0" + } + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -2481,6 +3505,18 @@ "has-symbols": "^1.0.1" } }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -2602,12 +3638,21 @@ }, "dependencies": { "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" } } }, + "gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "got": { "version": "11.8.3", "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", @@ -2627,9 +3672,9 @@ } }, "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "graphql": { "version": "15.6.1", @@ -2658,6 +3703,15 @@ } } }, + "graphviz": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/graphviz/-/graphviz-0.0.9.tgz", + "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", + "dev": true, + "requires": { + "temp": "~0.4.0" + } + }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -2697,13 +3751,6 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } } }, "has-bigints": { @@ -2732,31 +3779,16 @@ "has-symbols": "^1.0.2" } }, - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" } }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -2788,6 +3820,12 @@ "lru-cache": "^6.0.0" } }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -2831,8 +3869,8 @@ }, "husky": { "version": "7.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/husky/-/husky-7.0.4.tgz", - "integrity": "sha1-JCBIJF3EnI+xvwzHz7mN1yJTFTU=", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true }, "iconv-lite": { @@ -2844,6 +3882,12 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -2870,6 +3914,12 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -2912,6 +3962,21 @@ "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "internal-slot": { @@ -3002,9 +4067,9 @@ "dev": true }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "requires": { "has": "^1.0.3" } @@ -3064,9 +4129,9 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-glob": { @@ -3086,6 +4151,12 @@ "is-path-inside": "^3.0.2" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", @@ -3100,9 +4171,9 @@ } }, "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { @@ -3119,6 +4190,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -3153,6 +4230,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, "is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -3161,12 +4244,24 @@ "is-unc-path": "^1.0.0" } }, + "is-relative-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", + "integrity": "sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY=", + "dev": true + }, "is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", "dev": true }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -3185,6 +4280,12 @@ "has-symbols": "^1.0.2" } }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -3207,13 +4308,19 @@ "upper-case": "^1.1.0" } }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" } }, "is-windows": { @@ -3241,10 +4348,111 @@ "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=" + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "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 + } + } + }, + "istanbul-reports": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", + "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } }, "jju": { "version": "1.4.0", @@ -3288,6 +4496,12 @@ "argparse": "^2.0.1" } }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, "json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -3351,13 +4565,13 @@ "dev": true }, "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "liftoff": { @@ -3375,11 +4589,26 @@ "resolve": "^1.1.7" } }, + "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": { + "p-locate": "^4.1.0" + } + }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -3397,12 +4626,6 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -3411,18 +4634,6 @@ "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } } }, "lower-case": { @@ -3451,6 +4662,93 @@ "yallist": "^4.0.0" } }, + "madge": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/madge/-/madge-4.0.2.tgz", + "integrity": "sha512-l5bnA2dvyk0azLKDbOTCI+wDZ6nB007PhvPdmiYlPmqwVi49JPbhQrH/t4u8E6Akp3gwji1GZuA+v/F5q6yoWQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "commander": "^6.2.1", + "commondir": "^1.0.1", + "debug": "^4.0.1", + "dependency-tree": "^8.0.0", + "detective-amd": "^3.0.1", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.1.0", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "graphviz": "0.0.9", + "ora": "^5.1.0", + "pluralize": "^8.0.0", + "precinct": "^7.0.0", + "pretty-ms": "^7.0.0", + "rc": "^1.2.7", + "typescript": "^3.9.5", + "walkdir": "^0.4.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "make-fetch-happen": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", @@ -3640,9 +4938,9 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "requires": { "yallist": "^4.0.0" } @@ -3711,7 +5009,17 @@ "mixin-deep": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } }, "mkdirp": { "version": "1.0.4", @@ -3928,6 +5236,37 @@ } } }, + "module-definition": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.3.1.tgz", + "integrity": "sha512-kLidGPwQ2yq484nSD+D3JoJp4Etc0Ox9P0L34Pu/cU4X4HcG7k7p62XI5BBuvURWMRX3RPyuhOcBHbKus+UH4A==", + "dev": true, + "requires": { + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.0.0" + } + }, + "module-lookup-amd": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", + "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", + "dev": true, + "requires": { + "commander": "^2.8.1", + "debug": "^4.1.0", + "glob": "^7.1.6", + "requirejs": "^2.3.5", + "requirejs-config-file": "^4.0.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "moment": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", @@ -3983,6 +5322,12 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "nise": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", @@ -3994,17 +5339,6 @@ "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - } } }, "no-case": { @@ -4016,9 +5350,9 @@ } }, "nock": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.1.tgz", - "integrity": "sha512-CoHAabbqq/xZEknubuyQMjq6Lfi5b7RtK6SoNK6m40lebGp3yiMagWtIoYaw2s9sISD7wPuCfwFpivVHX/35RA==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", + "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", "dev": true, "requires": { "debug": "^4.1.0", @@ -4060,6 +5394,30 @@ } } }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "node-source-walk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.2.0.tgz", + "integrity": "sha512-hPs/QMe6zS94f5+jG3kk9E7TNm4P2SulrKiLWMzKszBfNZvL/V6wseHlTd7IvfW0NZWqPtK3+9yYNr+3USGteA==", + "dev": true, + "requires": { + "@babel/parser": "^7.0.0" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -4094,6 +5452,57 @@ "npm-package-arg": "^8.0.0" } }, + "nyc": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", + "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -4128,9 +5537,9 @@ } }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true }, "object-keys": { @@ -4207,36 +5616,6 @@ "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - } } }, "once": { @@ -4256,17 +5635,17 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" } }, "ora": { @@ -4389,6 +5768,24 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, + "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": { + "p-try": "^2.0.0" + } + }, + "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": { + "p-limit": "^2.2.0" + } + }, "p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", @@ -4397,6 +5794,24 @@ "aggregate-error": "^3.0.0" } }, + "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 + }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, "param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", @@ -4424,6 +5839,12 @@ "path-root": "^0.1.1" } }, + "parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true + }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -4503,11 +5924,6 @@ } } }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, "pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -4528,70 +5944,17 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true }, "plop": { "version": "2.7.6", @@ -4608,11 +5971,6 @@ "v8flags": "^2.0.10" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", @@ -4630,32 +5988,119 @@ "supports-color": "^2.0.0" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "8.4.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", + "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", + "dev": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "dependencies": { + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true + } + } + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "precinct": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-7.1.0.tgz", + "integrity": "sha512-I1RkW5PX51/q6Xl39//D7x9NgaKNGHpR5DCNaoxP/b2+KbzzXDNhauJUMV17KSYkJA41CSpwYUPRtRoNxbshWA==", + "dev": true, + "requires": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "detective-amd": "^3.0.1", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.0", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^6.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "detective-typescript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-6.0.0.tgz", + "integrity": "sha512-vTidcSDK3QostdbrH2Rwf9FhvrgJ4oIaVw5jbolgruTejexk6nNa9DShGpuS8CFVDb1IP86jct5BaZt1wSxpkA==", + "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "@typescript-eslint/typescript-estree": "^4.8.2", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.7" } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, + "pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -4739,6 +6184,26 @@ "safe-buffer": "^5.1.0" } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, "read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", @@ -4747,6 +6212,17 @@ "mute-stream": "~0.0.4" } }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -4785,11 +6261,20 @@ } }, "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, "repeat-element": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", @@ -4806,25 +6291,40 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, + "requirejs": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "dev": true + }, + "requirejs-config-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", + "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", + "dev": true, + "requires": { + "esprima": "^4.0.0", + "stringify-object": "^3.2.1" + } + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "requires": { - "is-core-module": "^2.8.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" } }, "resolve-alpn": { @@ -4832,6 +6332,12 @@ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, + "resolve-dependency-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", + "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", + "dev": true + }, "resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", @@ -4890,148 +6396,395 @@ "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" }, "rewire": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", "dev": true, "requires": { - "eslint": "^7.32.0" + "eslint": "^6.8.0" }, "dependencies": { - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "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==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "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" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", "ignore": "^4.0.6", - "import-fresh": "^3.2.1", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "shebang-regex": "^1.0.0" } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "has-flag": "^3.0.0" } }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "isexe": "^2.0.0" } } } @@ -5058,9 +6811,9 @@ } }, "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "requires": { "tslib": "^1.9.0" } @@ -5084,6 +6837,23 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sass-lookup": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", + "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", + "dev": true, + "requires": { + "commander": "^2.16.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -5110,6 +6880,12 @@ "randombytes": "^2.1.0" } }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -5158,18 +6934,18 @@ } }, "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "sinon": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-12.0.1.tgz", - "integrity": "sha512-iGu29Xhym33ydkAT+aNQFBINakjq69kKO6ByPvTsm3yyIACfyQttRTP03aBP/I8GfhFmLzrnKwNNkr0ORb1udg==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", "dev": true, "requires": { "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^8.1.0", + "@sinonjs/fake-timers": "^7.1.2", "@sinonjs/samsam": "^6.0.2", "diff": "^5.0.0", "nise": "^5.1.0", @@ -5182,14 +6958,40 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } } }, "smart-buffer": { @@ -5339,6 +7141,12 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, + "source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true + }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -5356,6 +7164,20 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + } + }, "split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -5476,12 +7298,32 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -5496,6 +7338,24 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "stylus-lookup": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", + "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", + "dev": true, + "requires": { + "commander": "^2.8.1", + "debug": "^4.1.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5507,7 +7367,8 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true }, "swap-case": { "version": "1.1.2", @@ -5519,49 +7380,53 @@ } }, "table": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", - "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } } } }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, "tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", @@ -5575,6 +7440,23 @@ "yallist": "^4.0.0" } }, + "temp": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", + "integrity": "sha1-ZxrWPVe+D+nXKUZks/xABjZnimA=", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -5603,6 +7485,12 @@ "os-tmpdir": "~1.0.2" } }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -5639,13 +7527,22 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "^1.2.1" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -5655,14 +7552,30 @@ "dev": true }, "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true }, "uglify-js": { - "version": "3.14.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz", - "integrity": "sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", + "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", "optional": true }, "unbox-primitive": { @@ -5693,6 +7606,12 @@ "set-value": "^2.0.1" } }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -5716,6 +7635,33 @@ "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } } }, "upper-case": { @@ -5769,6 +7715,18 @@ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, "v8-compile-cache": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", @@ -5791,6 +7749,12 @@ "builtins": "^1.0.3" } }, + "walkdir": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", + "dev": true + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -5821,6 +7785,12 @@ "is-symbol": "^1.0.3" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -5872,9 +7842,10 @@ "dev": true }, "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5884,14 +7855,16 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "^5.0.0" } } } @@ -5901,10 +7874,42 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "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": { @@ -5913,25 +7918,33 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "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" + } }, "yargs-unparser": { "version": "2.0.0", diff --git a/package.json b/package.json index 43465764..8e922862 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "preinstall": "npx npm-force-resolutions && npx check-node-version -p --package", "prepare": "husky install", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", - "test": "NODE_ENV=test mocha --exit" + "test": "NODE_ENV=test nyc mocha --recursive --exit --timeout 10000" }, "engines": { "node": ">=12.0.0" @@ -68,11 +68,19 @@ "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.25.3", "husky": "7.0.4", + "madge": "4.0.2", "mocha": "9.1.3", "mocked-env": "1.3.5", - "nock": "13.2.1", - "rewire": "6.0.0", - "sinon": "12.0.1" + "nock": "13.1.4", + "nyc": "15.0.1", + "rewire": "5.0.0", + "sinon": "11.1.2" + }, + "nyc": { + "reporter": [ + "text", + "html" + ] }, "resolutions": { "mixin-deep": "2.0.1", diff --git a/src/client/tasks.js b/src/client/tasks.js new file mode 100644 index 00000000..6031e048 --- /dev/null +++ b/src/client/tasks.js @@ -0,0 +1,88 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent, checkProject } = require('../commands/utils'); + +module.exports = class Tasks { + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}`; + } + + listTasks(projectId, token, params) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/tasks`; + debug('listTasks(%s) => %s', params.agentName, endpoint); + const opts = { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }; + if (params) { + opts.searchParams = params; + } + return got + .get(endpoint, opts).json() + .catch((err) => constructError(err)); + } + + getTask(projectId, taskName, token, params) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}`; + debug('getTask(%s, %s) => %s', projectId, taskName, endpoint); + const opts = { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }; + if (params) { + opts.searchParams = params; + } + + return got + .get(endpoint, opts).json() + .catch((err) => constructError(err)); + } + + taskLogs(projectId, token, taskName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}/logs`; + debug('taskLogs(%s) => %s', taskName, endpoint); + return got + .get(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); + } + + // todo delete/cancel Task + deleteTask(projectId, token, taskName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}`; + debug('deleteTask(%s) => %s', taskName, endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + searchParams: { verbose }, + }).json() + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); + } +}; diff --git a/src/commands/skills.js b/src/commands/skills.js index 067ae0f5..34530845 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -66,7 +66,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { } const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); if (response.success) { - printSuccess('Skill saved', options); + printSuccess(`Skill saved: ${JSON.stringify(response.message)}`, options); } else { console.log(`Failed to save skill: ${response.message}`); if (response.details) { diff --git a/src/commands/tasks.js b/src/commands/tasks.js new file mode 100644 index 00000000..f2a3b3b1 --- /dev/null +++ b/src/commands/tasks.js @@ -0,0 +1,123 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const debug = require('debug')('cortex:cli'); +const _ = require('lodash'); +const { loadProfile } = require('../config'); +const Tasks = require('../client/tasks'); + +const { printSuccess, printError, printTable } = require('./utils'); + +module.exports.ListTasksCommand = class { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = await loadProfile(options.profile); + const projectId = options.project || profile.project; + debug('%s.listTasks(%s)', profile.name); + + const tasks = new Tasks(profile.url); + // TODO validate param types? + const queryParams = { ...options }; + + try { + const response = await tasks.listTasks(projectId, profile.token, queryParams); + if (response.success) { + const taskResponse = _.get(response, 'tasks', []); + + if (options.json) { + return printSuccess(JSON.stringify(taskResponse, null, 2), options); + } + const result = { + tasks: _.map(taskResponse, (t) => ({ name: t })), + }; + const tableFormat = [{ column: 'Task Name', field: 'name', width: 70 }]; + return printTable(tableFormat, result.tasks); + } + return printError(`Failed to list tasks: ${response.message}`, options); + } catch (err) { + return printError(`Failed to query tasks: ${err.status} ${err.message} ${JSON.stringify(err)}`, options); + } + } +}; + +module.exports.DescribeTaskCommand = class { + constructor(program) { + this.program = program; + } + + async execute(taskName, options) { + const profile = await loadProfile(options.profile); + const queryParams = {}; + debug('%s.describeTask(%s)', profile.name, taskName); + + if (options.k8s) queryParams.k8s = true; + const tasks = new Tasks(profile.url); + try { + const response = await tasks.getTask(options.project || profile.project, taskName, profile.token, queryParams); + if (response.success === false) { + return printError(`Failed to describe task ${taskName}: ${response.message}`); + } + return printSuccess(JSON.stringify(response, null, 2), options); + } catch (err) { + return printError(`Failed to fetch task ${taskName}: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.TaskLogsCommand = class TaskLogsCommand { + constructor(program) { + this.program = program; + } + + async execute(taskName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeTaskLogs(%s)', profile.name, taskName); + const tasks = new Tasks(profile.url); + try { + const response = await tasks.taskLogs(options.project || profile.project, profile.token, taskName, options.verbose); + if (response.success) { + return printSuccess(JSON.stringify(response.logs), options); + } + return printError(`Failed to List Task Logs ${taskName}: ${response.message}`, options); + } catch (err) { + return printError(`Failed to query Task Logs ${taskName}: ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.TaskDeleteCommand = class TaskDeleteCommand { + constructor(program) { + this.program = program; + } + + async execute(taskName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeDeleteTask(%s)', profile.name, taskName); + const tasks = new Tasks(profile.url); + try { + const response = await tasks.deleteTask(options.project || profile.project, profile.token, taskName, options.verbose); + if (response.success) { + return printSuccess(JSON.stringify(response), options); + } + return printError(`Failed to delete ${taskName}: ${response.message}`, options); + } catch (err) { + return printError(`Error deleting ${taskName}: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/test/tasks.js b/test/tasks.js new file mode 100644 index 00000000..a7ebe5df --- /dev/null +++ b/test/tasks.js @@ -0,0 +1,89 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const commander = require('commander'); +const chai = require('chai'); +const mockedEnv = require('mocked-env'); +const nock = require('nock'); +const { + ListTasksCommand, + // DescribeTaskCommand, + // TaskLogsCommand, + // TaskDeleteCommand +} = require('../src/commands/tasks'); +const Tasks = require('../src/client/tasks'); + +const { expect } = chai; +let restoreEnv; +describe('Tasks', () => { + before(() => { + restoreEnv = mockedEnv({ + CORTEX_CONFIG_DIR: './test/cortex', + }); + nock.activate(); + }); + after(() => { + restoreEnv(); + nock.restore(); + }); + + afterEach(() => { + // clean up mocks that may not have been called + nock.cleanAll(); + }); + + const serverUrl = 'http://localhost:8000'; + + // this isn't the best way to test these commands.. might need to do a larger refactor + xit('list tasks command', async () => { + const program = new commander.Command(); + const command = new ListTasksCommand(program); + const project = 'test'; + const options = { + project, + json: true, + }; + + const requestPath = `/fabric/v4/projects/${project}/tasks?project=${project}&json=true`; + const response = { success: true, tasks: ['task0', 'task1'] }; + nock(serverUrl).get(requestPath).reply(200, response); + let body; + await command.execute(options) + .then((output) => { + console.log(`output: ${JSON.stringify(output)}`); + body = output; + nock.isDone(); + }); + console.log(`after await ${JSON.stringify(body)}`); + nock.isDone(); + }); + + it('list tasks client', async () => { + const taskCtl = new Tasks('http://127.0.0.1:8000'); + const project = 'test'; + const options = { + project, + json: true, + }; + + const requestPath = `/fabric/v4/projects/${project}/tasks?project=${project}&json=true`; + const response = { success: true, tasks: ['task0', 'task1'] }; + nock('http://127.0.0.1:8000').get(requestPath).reply(200, response); + const taskList = await taskCtl.listTasks(project, '', options); + console.log(`taskList: ${JSON.stringify(taskList)}`); + expect(taskList).to.deep.equal(response); + }); +}); From e97ffc590c688c7539bb8dd2b17f935e305ef6e8 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 11 Jan 2022 23:52:56 +0530 Subject: [PATCH 528/864] fab-3695 adding alias for tasks list --- bin/cortex-tasks.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 0f33bdea..4546aea7 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -31,10 +31,11 @@ const { program.name('cortex tasks'); program.description('Work with Cortex Tasks'); -// List activations +// List tasks program .command('list') .description('List tasks') + .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') From 79e02e3113e97ca3cbbf45b696e28bc0435d228b Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Thu, 13 Jan 2022 20:11:23 +0530 Subject: [PATCH 529/864] removing the pretty print of the output --- src/client/users.js | 4 ++-- src/commands/users.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/users.js b/src/client/users.js index 96e1f2dd..d422da3b 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -56,7 +56,7 @@ module.exports = class Users { deleteServiceUser(token, user) { const endpoint = `${this.endpoint}/accounts/service/${user}`; - debug('createServiceUser => %s', endpoint); + debug('deleteServiceUser => %s', endpoint); return got .delete(endpoint, { headers: { Authorization: `Bearer ${token}` }, @@ -68,7 +68,7 @@ module.exports = class Users { listServiceUsers(token) { const endpoint = `${this.endpoint}/accounts/service`; - debug('createServiceUser => %s', endpoint); + debug('listServiceUser => %s', endpoint); return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/users.js b/src/commands/users.js index 61e235e6..edc4eb25 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -99,7 +99,7 @@ module.exports.UserCreateCommand = class { client.createServiceUser(profile.token, user).then((response) => { if (response.success) { const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result.config, null, 2), options); + printSuccess(JSON.stringify(result.config, null), options); } else { printError(`Failed to create user ${user} : ${response.message}`, options); } From e4ce867b29f3391478bb3f8159bfe93225d49a8a Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 25 Jan 2022 13:29:45 +0530 Subject: [PATCH 530/864] fix invalid log --- src/client/tasks.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/tasks.js b/src/client/tasks.js index 6031e048..0a695437 100644 --- a/src/client/tasks.js +++ b/src/client/tasks.js @@ -27,7 +27,7 @@ module.exports = class Tasks { listTasks(projectId, token, params) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/tasks`; - debug('listTasks(%s) => %s', params.agentName, endpoint); + debug('listTasks(%s) => %s', projectId, endpoint); const opts = { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), From 31540cc9fe4c808e29e389b6d1a58de6dcdd2675 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 25 Jan 2022 16:02:10 +0530 Subject: [PATCH 531/864] security fixes --- package-lock.json | 50 ++++++++++++++++++++++++++++++++++------------- package.json | 2 +- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43db5676..a6f02942 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1310,12 +1310,12 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "2.0.2", + "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", - "mixin-deep": "2.0.1", + "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "dependencies": { @@ -1942,11 +1942,11 @@ "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" }, "cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "requires": { - "node-fetch": "2.6.1" + "node-fetch": "2.6.7" } }, "cross-spawn": { @@ -2137,7 +2137,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "dependency-tree": { @@ -3682,9 +3682,9 @@ "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-request": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.6.1.tgz", - "integrity": "sha512-Nm1EasrAQVZllyNTlHDLnLZjlhC6eRWnWP6KH//ytnAL08pjlLkdI2K+s6OV92p45hn5b/kUlLbDwACmRoLwrQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", + "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -5362,9 +5362,12 @@ } }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } }, "node-plop": { "version": "0.26.3", @@ -7510,6 +7513,11 @@ "is-number": "^7.0.0" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "tsconfig-paths": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", @@ -7763,6 +7771,20 @@ "defaults": "^1.0.3" } }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7988,4 +8010,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 8e922862..1a7060a6 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "glob": "7.2.0", "got": "11.8.3", "graphql": "15.6.1", - "graphql-request": "3.6.1", + "graphql-request": "3.7.0", "is-installed-globally": "0.4.0", "jmespath": "0.15.0", "joi": "17.5.0", From e3de3c51d4ffbd429d06bc12b77d06a829165979 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 25 Jan 2022 16:44:00 +0530 Subject: [PATCH 532/864] fixing package-lock --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a6f02942..9a18d018 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1310,12 +1310,12 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "^1.0.1", + "cache-base": "2.0.2", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", + "mixin-deep": "2.0.1", "pascalcase": "^0.1.1" }, "dependencies": { @@ -8010,4 +8010,4 @@ "dev": true } } -} +} \ No newline at end of file From a25f5d8939abf6310d2d833fde1fbd4f0d7d91f4 Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 25 Jan 2022 17:05:39 +0530 Subject: [PATCH 533/864] typos --- src/commands/roles.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/commands/roles.js b/src/commands/roles.js index c1d1ed42..4fb09d11 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -36,7 +36,7 @@ module.exports.RoleDeleteCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); - debug('%s.deleteRole=%s', profile.name, role); + debug('%s.deleteRole(%s)', profile.name, role); const client = new Roles(profile.url, role); @@ -63,7 +63,7 @@ module.exports.RoleCreateCommand = class { const profile = await loadProfile(options.profile); const form = createGrant(options); form.role = role; - debug('%s.createRole=%s', profile.name); + debug('%s.createRole(%s)', profile.name); const client = new Roles(profile.url); @@ -88,7 +88,7 @@ module.exports.RoleAssignCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); - debug('%s.grantRoler=%s', profile.name, role); + debug('%s.grantRole(%s)', profile.name, role); const client = new Roles(profile.url, role); const call = (deleteFlag, token, users) => { @@ -122,7 +122,7 @@ module.exports.RoleGrantCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); const form = createGrant(options); - debug('%s.grantRoler=%s', profile.name, role); + debug('%s.grantRole(%s)', profile.name, role); const client = new Roles(profile.url, role); const call = (deleteFlag, token, body) => { @@ -155,7 +155,7 @@ module.exports.RoleDescribeCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); - debug('%s.describeForRole=%s', profile.name, role); + debug('%s.describeForRole(%s)', profile.name, role); const flags = []; @@ -187,7 +187,7 @@ module.exports.RoleListCommand = class { async execute(options) { const profile = await loadProfile(options.profile); - debug('%s.listRole=%s', profile.name); + debug('%s.listRole(%s)', profile.name); const flags = []; @@ -217,7 +217,7 @@ module.exports.RoleProjectAssignCommand = class { async execute(project, options) { const profile = await loadProfile(options.profile); - debug('%s.assignRoleProject=%s', profile.name, project); + debug('%s.assignRoleProject(%s)', profile.name, project); const client = new Roles(profile.url, null); const call = (deleteFlag, token, assignProject, roles) => { @@ -250,7 +250,7 @@ module.exports.ExternalGroupListCommand = class { async execute(options) { const profile = await loadProfile(options.profile); - debug('%s.listExternalGroup=%s', profile.name); + debug('%s.listExternalGroup(%s)', profile.name); const client = new Roles(profile.url, null); client.listExternalGroups(profile.token).then((response) => { @@ -278,7 +278,7 @@ module.exports.ExternalGroupDescribeCommand = class { async execute(externalGroup, options) { const profile = await loadProfile(options.profile); - debug('%s.describeExternalGroup=%s', profile.name, externalGroup); + debug('%s.describeExternalGroup(%s)', profile.name, externalGroup); const flags = []; @@ -310,7 +310,7 @@ module.exports.ExternalGroupDeleteCommand = class { async execute(externalGroup, options) { const profile = await loadProfile(options.profile); - debug('%s.deleteExternalGroup=%s', profile.name, externalGroup); + debug('%s.deleteExternalGroup(%s)', profile.name, externalGroup); const client = new Roles(profile.url, null); @@ -335,7 +335,7 @@ module.exports.ExternalGroupAssignCommand = class { async execute(options) { const profile = await loadProfile(options.profile); - debug('%s.externalGroupAssign=%s', profile.name, options.role); + debug('%s.externalGroupAssign(%s)', profile.name, options.role); const client = new Roles(profile.url, options.role); const call = (deleteFlag, token, externalGroup) => { From f8aec3b4f76cd74876bf43141cc32599e80ac5ae Mon Sep 17 00:00:00 2001 From: Yashwanth Date: Tue, 25 Jan 2022 17:09:49 +0530 Subject: [PATCH 534/864] typos --- src/commands/users.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/commands/users.js b/src/commands/users.js index edc4eb25..61c75c4f 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -37,7 +37,7 @@ module.exports.UserGrantCommand = class { async execute(user, options) { const profile = await loadProfile(options.profile); const form = createGrant(options); - debug('%s.grantUser=%s', profile.name, user || 'self'); + debug('%s.grantUser(%s)', profile.name, user || 'self'); const client = new Users(profile.url, user); const call = (deleteFlag, token, body) => { if (deleteFlag) { @@ -69,7 +69,7 @@ module.exports.UserDeleteCommand = class { async execute(user, options) { const profile = await loadProfile(options.profile); - debug('%s.deleteServiceUser=%s', profile.name, user); + debug('%s.deleteServiceUser(%s)', profile.name, user); const client = new Users(profile.url, user); client.deleteServiceUser(profile.token, user).then((response) => { @@ -93,7 +93,7 @@ module.exports.UserCreateCommand = class { async execute(user, options) { const profile = await loadProfile(options.profile); - debug('%s.createServiceUser=%s', profile.name, user); + debug('%s.createServiceUser(%s)', profile.name, user); const client = new Users(profile.url, user); client.createServiceUser(profile.token, user).then((response) => { @@ -145,7 +145,7 @@ module.exports.UserDescribeCommand = class { async execute(options) { const profile = await loadProfile(options.profile); - debug('%s.describeForUser=%s', profile.name, options.user || 'self'); + debug('%s.describeForUser(%s)', profile.name, options.user || 'self'); const flags = []; @@ -177,7 +177,7 @@ module.exports.UserProjectAssignCommand = class { async execute(project, options) { const profile = await loadProfile(options.profile); - debug('%s.assignUserProject=%s', profile.name, project); + debug('%s.assignUserProject(%s)', profile.name, project); const client = new Users(profile.url, null); const call = (deleteFlag, token, assignProject, users) => { From a400001efe5abf5cc72a4ab9cd690b77bceb4cc7 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 27 Jan 2022 16:07:41 -0600 Subject: [PATCH 535/864] Bump deps to fix vulns --- package-lock.json | 3463 ++++++++++++++++++--------------------------- package.json | 28 +- 2 files changed, 1381 insertions(+), 2110 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a18d018..2a09745c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,35 +5,35 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", + "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", "dev": true }, "@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", + "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.12", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -43,31 +43,37 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { - "@babel/highlight": "^7.16.0" + "@babel/highlight": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.15.7", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, + "@babel/parser": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -136,24 +142,24 @@ } }, "@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", "dev": true, "requires": { - "@babel/types": "^7.16.0", + "@babel/types": "^7.16.8", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "dev": true, "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" }, @@ -166,146 +172,125 @@ } } }, - "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, - "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" } }, - "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true } } }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/helper-validator-option": { - "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==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true }, "@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", + "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", "dev": true, "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -368,52 +353,49 @@ "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", "dev": true }, - "@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", - "requires": { - "core-js-pure": "^3.16.0", - "regenerator-runtime": "^0.13.4" - } - }, "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" }, "dependencies": { "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { - "@babel/highlight": "^7.16.0" + "@babel/highlight": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.15.7", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, + "@babel/parser": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -467,48 +449,55 @@ } }, "@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", + "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.16.10", + "@babel/types": "^7.16.8", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { - "@babel/highlight": "^7.16.0" + "@babel/highlight": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.15.7", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, + "@babel/parser": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -568,19 +557,19 @@ } }, "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.15.7", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" }, "dependencies": { "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true } } @@ -608,25 +597,25 @@ "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" }, "@hapi/hoek": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", - "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "requires": { "@hapi/hoek": "^9.0.0" } }, "@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" } @@ -659,6 +648,22 @@ "sprintf-js": "~1.0.2" } }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "find-up": { + "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": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -669,6 +674,45 @@ "esprima": "^4.0.0" } }, + "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": { + "p-locate": "^4.1.0" + } + }, + "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": { + "p-try": "^2.0.0" + } + }, + "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": { + "p-limit": "^2.2.0" + } + }, + "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 + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -796,9 +840,9 @@ } }, "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" }, "@types/cacheable-request": { "version": "6.0.2", @@ -816,35 +860,33 @@ "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-BNoMetRf3gmkpAlV5we+kxyZTle7YibdOntIZbU5pyIfMdcwy784KfeZDAcuyMznkh5OLa17RVXZOGA5LTlkgQ==", "requires": { "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "@types/interpret": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", - "requires": { - "@types/node": "*" + "rxjs": "^7.2.0" + }, + "dependencies": { + "rxjs": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", + "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", + "requires": { + "tslib": "^2.1.0" + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "@types/json5": { @@ -862,20 +904,14 @@ } }, "@types/liftoff": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", - "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.0.tgz", + "integrity": "sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==", "requires": { "@types/fined": "*", - "@types/interpret": "*", "@types/node": "*" } }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", @@ -1055,9 +1091,9 @@ } }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", @@ -1103,16 +1139,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -1146,11 +1172,6 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -1191,9 +1212,9 @@ "dev": true }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async": { @@ -1206,11 +1227,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, "audit-ci": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", @@ -1305,80 +1321,10 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "2.0.2", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "2.0.1", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "cache-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", - "requires": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" - } - } - }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "binary-extensions": { "version": "2.2.0", @@ -1390,7 +1336,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -1491,13 +1436,13 @@ "dev": true }, "browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", "node-releases": "^2.0.1", "picocolors": "^1.0.0" @@ -1507,7 +1452,6 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -1620,36 +1564,61 @@ "dev": true }, "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "caniuse-lite": { - "version": "1.0.30001283", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", - "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", + "version": "1.0.30001303", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", + "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", "dev": true }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, "chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", + "loupe": "^2.3.1", "pathval": "^1.1.1", "type-detect": "^4.0.5" } @@ -1673,28 +1642,29 @@ } }, "change-case": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "chardet": { @@ -1715,9 +1685,9 @@ "dev": true }, "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { "anymatch": "~3.1.2", @@ -1735,27 +1705,6 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1803,14 +1752,14 @@ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-regex": { @@ -1820,12 +1769,12 @@ "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -1889,11 +1838,6 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1906,12 +1850,20 @@ "dev": true }, "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "convert-source-map": { @@ -1931,16 +1883,6 @@ } } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js-pure": { - "version": "3.18.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.18.3.tgz", - "integrity": "sha512-qfskyO/KjtbYn09bn1IPkuhHl5PlJ6IzJ9s9sraJ1EqcuGyLGKzhSM1cY0zgyL9hx42eulQLZ6WaeK5ycJCkqw==" - }, "cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -1974,16 +1916,11 @@ } }, "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, "decomment": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/decomment/-/decomment-0.9.5.tgz", @@ -2068,65 +2005,50 @@ "object-keys": "^1.0.12" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "requires": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", "is-glob": "^4.0.1", "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", "slash": "^3.0.0" }, "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "requires": { - "aggregate-error": "^3.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" } } }, @@ -2312,11 +2234,19 @@ } }, "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "requires": { - "no-case": "^2.2.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "duplexer": { @@ -2326,15 +2256,15 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.5.tgz", - "integrity": "sha512-YKaB+t8ul5crdh6OeqT2qXdxJGI0fAYb6/X8pDIyye+c3a7ndOCk5gVeKX+ABwivCGNS56vOAif3TN0qJMpEHw==", + "version": "1.4.55", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.55.tgz", + "integrity": "sha512-AoCDEVElLY8mwe4TuDDkr1jxvSh/Ih5PFlEXCpmwFkq9JOXn4K58CScgBl+R1ghFW9cPJ7VeWo30nAHSRCe6rw==", "dev": true }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "encoding": { @@ -2463,24 +2393,23 @@ } }, "eslint": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", - "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", + "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.0.4", - "@humanwhocodes/config-array": "^0.6.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.0", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.1.0", - "espree": "^9.1.0", + "eslint-visitor-keys": "^3.2.0", + "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2488,7 +2417,7 @@ "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.6.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", @@ -2499,9 +2428,7 @@ "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", "regexpp": "^3.2.0", - "semver": "^7.2.1", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", @@ -2538,9 +2465,9 @@ } }, "eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true }, "esquery": { @@ -2578,9 +2505,9 @@ } }, "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "glob-parent": { @@ -2603,6 +2530,12 @@ } } }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -2699,21 +2632,21 @@ } }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" } }, "resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -2721,9 +2654,9 @@ } }, "eslint-module-utils": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", - "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, "requires": { "debug": "^3.2.7", @@ -2738,62 +2671,13 @@ "requires": { "ms": "^2.1.1" } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true } } }, "eslint-plugin-import": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", - "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -2801,14 +2685,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.1", + "eslint-module-utils": "^2.7.2", "has": "^1.0.3", "is-core-module": "^2.8.0", "is-glob": "^4.0.3", "minimatch": "^3.0.4", "object.values": "^1.1.5", "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" + "tsconfig-paths": "^3.12.0" }, "dependencies": { "debug": { @@ -2830,9 +2714,9 @@ } }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" @@ -2854,12 +2738,12 @@ "dev": true }, "resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -2885,18 +2769,26 @@ } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "espree": { @@ -2911,9 +2803,9 @@ }, "dependencies": { "eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true } } @@ -2925,18 +2817,18 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -2985,51 +2877,6 @@ "through": "^2.3.8" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -3082,65 +2929,6 @@ } } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -3222,12 +3010,12 @@ } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "filing-cabinet": { @@ -3276,17 +3064,6 @@ "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" - }, - "dependencies": { - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } } }, "find-package-json": { @@ -3295,52 +3072,58 @@ "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" } }, "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "requires": { "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", "resolve-dir": "^1.0.1" }, "dependencies": { "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "^2.1.1" } } } }, "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", "requires": { "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "object.pick": "^1.3.0", + "parse-filepath": "^1.0.2" + }, + "dependencies": { + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + } } }, "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==" }, "flat": { "version": "5.0.2", @@ -3349,31 +3132,19 @@ "dev": true }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "flatten": { @@ -3415,14 +3186,6 @@ "mime-types": "^2.1.12" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -3623,24 +3386,32 @@ } }, "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", + "array-union": "^3.0.1", "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" }, "dependencies": { + "array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" + }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" } } }, @@ -3745,14 +3516,6 @@ "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", @@ -3796,12 +3559,19 @@ "dev": true }, "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "homedir-polyfill": { @@ -3813,9 +3583,9 @@ } }, "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "requires": { "lru-cache": "^6.0.0" } @@ -3832,11 +3602,11 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "requires": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } @@ -3885,8 +3655,7 @@ "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { "version": "4.0.6", @@ -3945,37 +3714,54 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.19", + "lodash": "^4.17.21", "mute-stream": "0.0.8", + "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^6.6.0", + "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "rxjs": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", + "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", "requires": { - "ansi-regex": "^5.0.1" + "tslib": "^2.1.0" } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, @@ -3991,9 +3777,9 @@ } }, "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" }, "ip": { "version": "1.1.5", @@ -4009,24 +3795,6 @@ "is-windows": "^1.0.1" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -4055,11 +3823,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -4070,28 +3833,11 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "dev": true, "requires": { "has": "^1.0.3" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -4101,23 +3847,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -4129,9 +3858,9 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -4154,22 +3883,13 @@ "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "requires": { - "lower-case": "^1.1.0" - } - }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -4297,16 +4017,7 @@ "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "requires": { - "upper-case": "^1.1.0" - } + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, "is-url": { "version": "1.2.4", @@ -4445,9 +4156,9 @@ } }, "istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -4466,9 +4177,9 @@ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "joi": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz", - "integrity": "sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==", + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4478,9 +4189,9 @@ } }, "jose-node-cjs-runtime": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.3.7.tgz", - "integrity": "sha512-w08oYOXQ06/rcCEL5DB4HE5XJaHpB79ZTmCOP1YsRyZZtWQPPCQx+fQAANw1qlcmVA8BcBAE62QqKYDctCEtrQ==" + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.4.0.tgz", + "integrity": "sha512-DhCqzpgUVZoAc4aOXpD9GOeDLnVXdju01vwTdi4I5o+VLMKxnRzCCwJ0Qp4UAMpTwRCFqpnaxUuMQ6k7VFPYNQ==" }, "js-tokens": { "version": "4.0.0", @@ -4575,27 +4286,53 @@ } }, "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", + "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", + "requires": { + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "object.map": "^1.0.1", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" + }, + "dependencies": { + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + } } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -4626,27 +4363,43 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + "loupe": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.1.tgz", + "integrity": "sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "requires": { - "lower-case": "^1.1.2" + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "lowercase-keys": { @@ -4750,14 +4503,14 @@ } }, "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.0.tgz", + "integrity": "sha512-CREcDkbKZZ64g5MN1FT+u58mDHX9FQFFtFyio5HonX44BdQdytqPZBXUz+6ibi2w/6ncji59f2phyXGSMGpgzA==", "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^6.0.0", @@ -4766,7 +4519,7 @@ "minipass-fetch": "^1.3.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", + "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^6.0.0", "ssri": "^8.0.0" @@ -4805,100 +4558,12 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, "mime-db": { @@ -5027,71 +4692,37 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mocha": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", - "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz", + "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.5.2", - "debug": "4.3.2", + "chokidar": "3.5.3", + "debug": "4.3.3", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.1.7", + "glob": "7.2.0", "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "3.0.4", "ms": "2.1.3", - "nanoid": "3.1.25", + "nanoid": "3.2.0", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "workerpool": "6.1.5", + "workerpool": "6.2.0", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "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" - }, - "dependencies": { - "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 - } - } - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -5108,20 +4739,6 @@ "path-exists": "^4.0.0" } }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5155,14 +4772,11 @@ "p-limit": "^3.0.2" } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } + "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 }, "supports-color": { "version": "8.1.1", @@ -5172,44 +4786,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true } } }, @@ -5283,29 +4859,11 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -5313,21 +4871,15 @@ "dev": true }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "nise": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", @@ -5342,17 +4894,25 @@ } }, "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "requires": { - "lower-case": "^1.1.1" + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "nock": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", - "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.2.tgz", + "integrity": "sha512-PcBHuvl9i6zfaJ50A7LS55oU+nFLv8htXIhffJO+FxyfibdZ4jEvd9kTuvkrJireBFIGMZ+oUIRpMK5gU9h//g==", "dev": true, "requires": { "debug": "^4.1.0", @@ -5370,29 +4930,41 @@ } }, "node-plop": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", - "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", - "requires": { - "@babel/runtime-corejs3": "^7.9.2", - "@types/inquirer": "^6.5.0", - "change-case": "^3.1.0", - "del": "^5.1.0", - "globby": "^10.0.1", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.30.0.tgz", + "integrity": "sha512-5w9+jWoy9OtMm3qRmHgL2z/3L5VL3RhEegKkKC4tA1IIjG3aXf8Ee/8wdgU9qXyt1yDfPWI9Tan1rHpXAp0ZnA==", + "requires": { + "@types/inquirer": "^8.1.3", + "change-case": "^4.1.2", + "del": "^6.0.0", + "globby": "^12.0.2", "handlebars": "^4.4.3", - "inquirer": "^7.1.0", - "isbinaryfile": "^4.0.2", + "inquirer": "^8.2.0", + "isbinaryfile": "^4.0.8", "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "resolve": "^1.12.0" + "lower-case": "^2.0.2", + "mkdirp": "^1.0.4", + "resolve": "^1.20.0", + "title-case": "^3.0.3", + "upper-case": "^2.0.2" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "requires": { - "minimist": "^1.2.5" + "has": "^1.0.3" + } + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } @@ -5443,11 +5015,11 @@ } }, "npm-registry-fetch": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", - "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.1.tgz", + "integrity": "sha512-ricy4ezH3Uv0d4am6RSwHjCYTWJI74NJjurIigWMAG7Vs3PFyd0TUlkrez5L0AgaPzDLRsEzqb5cOZ/Ue01bmA==", "requires": { - "make-fetch-happen": "^9.0.1", + "make-fetch-happen": "^10.0.0", "minipass": "^3.1.3", "minipass-fetch": "^1.3.0", "minipass-json-stream": "^1.0.1", @@ -5456,9 +5028,9 @@ } }, "nyc": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", - "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", @@ -5469,6 +5041,7 @@ "find-cache-dir": "^3.2.0", "find-up": "^4.1.0", "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", "glob": "^7.1.6", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-hook": "^3.0.0", @@ -5489,6 +5062,72 @@ "yargs": "^15.0.2" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "find-up": { + "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": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "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": { + "p-locate": "^4.1.0" + } + }, + "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": { + "p-try": "^2.0.0" + } + }, + "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": { + "p-limit": "^2.2.0" + } + }, "p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -5498,47 +5137,86 @@ "aggregate-error": "^3.0.0" } }, + "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 + }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true - } - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "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": { - "is-buffer": "^1.1.5" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", @@ -5652,111 +5330,94 @@ } }, "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.0.1.tgz", + "integrity": "sha512-TDdKkKHdWE6jo/6pIa5U5AWcSVfpNRFJ8sdRJpioGNVPLAzZzHs/N+QhUfF7ZbyoC+rnDuNTKzeDJUbAza9g4g==", + "requires": { + "bl": "^5.0.0", + "chalk": "^4.1.2", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.0.0", + "strip-ansi": "^7.0.1", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", "requires": { - "color-convert": "^1.9.0" + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "requires": { - "color-name": "1.1.3" + "restore-cursor": "^4.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "is-unicode-supported": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.1.0.tgz", + "integrity": "sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA==" }, "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "^2.0.1" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", "requires": { - "mimic-fn": "^1.0.0" + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "dependencies": { + "chalk": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", + "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" + } } }, "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "requires": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" + "ansi-regex": "^6.0.1" } } } @@ -5772,21 +5433,21 @@ "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" } }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -5798,9 +5459,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "package-hash": { @@ -5816,11 +5477,19 @@ } }, "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "requires": { - "no-case": "^2.2.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "parent-module": { @@ -5854,31 +5523,41 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "requires": { - "no-case": "^2.2.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { @@ -5954,47 +5633,89 @@ "dev": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, - "plop": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", - "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", - "requires": { - "@types/liftoff": "^2.5.1", - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", - "minimist": "^1.2.5", - "node-plop": "^0.26.3", - "ora": "^3.4.0", - "v8flags": "^2.0.10" + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "find-up": { + "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": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "p-locate": "^4.1.0" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "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": { + "p-try": "^2.0.0" + } + }, + "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": { + "p-limit": "^2.2.0" + } + }, + "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 + } + } + }, + "plop": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/plop/-/plop-3.0.5.tgz", + "integrity": "sha512-bD+/Lr+7NCjNIaYJq1cyHDfxtVCdjwfprgKsNwHwFnwntTiNwZWyxd1NuRDygdQWyPi+rstFMMFAPMek0cYaqA==", + "requires": { + "@types/liftoff": "^4.0.0", + "chalk": "^5.0.0", + "interpret": "^2.2.0", + "liftoff": "^4.0.0", + "minimist": "^1.2.5", + "node-plop": "^0.30.0", + "ora": "^6.0.1", + "v8flags": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", + "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" } } }, @@ -6004,11 +5725,6 @@ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, "postcss": { "version": "8.4.4", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", @@ -6021,9 +5737,9 @@ }, "dependencies": { "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", "dev": true } } @@ -6125,12 +5841,12 @@ } }, "prompt": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.0.tgz", - "integrity": "sha512-iGerYRpRUg5ZyC+FJ/25G5PUKuWAGRjW1uOlhX7Pi3O5YygdK6R+KEaBjRbHSkU5vfS5PZCltSPZdDtUYwRCZA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.1.tgz", + "integrity": "sha512-B4+2QeNDn5Cdp4kK2iOwV8qvrWpiPKlZKI9ZKkPl0C9KgeMW6DyWWqhqHiFq9vZf6zTniv+rYalK0ZlgktSwiw==", "requires": { "async": "~0.9.0", - "colors": "^1.1.2", + "colors": "1.4.0", "read": "1.0.x", "revalidator": "0.1.x", "winston": "2.x" @@ -6219,7 +5935,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -6242,31 +5957,37 @@ "dev": true }, "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "resolve": "^1.20.0" + }, + "dependencies": { + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + } } }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "release-zalgo": { @@ -6278,22 +5999,18 @@ "es6-error": "^4.0.1" } }, - "repeat-element": { - "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=" - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -6325,6 +6042,7 @@ "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, "requires": { "is-core-module": "^2.1.0", "path-parse": "^1.0.6" @@ -6356,11 +6074,6 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -6378,11 +6091,6 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -6399,52 +6107,48 @@ "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" }, "rewire": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", + "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", "dev": true, "requires": { - "eslint": "^6.8.0" + "eslint": "^7.32.0" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "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==", + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" } }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -6454,138 +6158,58 @@ "sprintf-js": "~1.0.2" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "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" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } } }, "eslint-scope": { @@ -6599,195 +6223,71 @@ } }, "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { - "type-fest": "^0.8.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "isexe": "^2.0.0" + "prelude-ls": "^1.2.1" } } } @@ -6813,27 +6313,10 @@ "queue-microtask": "^1.2.2" } }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "requires": { - "tslib": "^1.9.0" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safer-buffer": { "version": "2.1.2", @@ -6866,12 +6349,20 @@ } }, "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "serialize-javascript": { @@ -6961,40 +6452,14 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "smart-buffer": { @@ -7003,120 +6468,18 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "requires": { - "no-case": "^2.2.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "requires": { - "kind-of": "^3.2.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" } } }, @@ -7142,7 +6505,8 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true }, "source-map-js": { "version": "1.0.1", @@ -7150,23 +6514,6 @@ "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, "spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -7217,25 +6564,6 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -7305,7 +6633,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -7322,11 +6649,11 @@ } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -7370,56 +6697,48 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "ajv": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } } } @@ -7472,12 +6791,18 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "tmp": { @@ -7494,17 +6819,6 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7533,7 +6847,8 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "tsutils": { "version": "3.21.0", @@ -7581,9 +6896,9 @@ "dev": true }, "uglify-js": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz", - "integrity": "sha512-rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", + "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", "optional": true }, "unbox-primitive": { @@ -7673,16 +6988,33 @@ } }, "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "requires": { + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } }, "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "requires": { - "upper-case": "^1.1.1" + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } }, "uri-js": { @@ -7694,40 +7026,24 @@ "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, "url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz", + "integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.4.0", @@ -7742,12 +7058,9 @@ "dev": true }, "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "^1.1.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz", + "integrity": "sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==" }, "validate-npm-package-name": { "version": "3.0.0", @@ -7858,15 +7171,15 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "workerpool": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", "dev": true }, "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -7881,12 +7194,12 @@ "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -7896,26 +7209,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -7929,9 +7222,9 @@ } }, "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yallist": { @@ -7940,33 +7233,25 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "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" - } + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true }, "yargs-unparser": { "version": "2.0.0", @@ -7978,20 +7263,6 @@ "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - } } }, "yauzl": { @@ -8010,4 +7281,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 1a7060a6..9d7403e3 100644 --- a/package.json +++ b/package.json @@ -46,34 +46,34 @@ "graphql-request": "3.7.0", "is-installed-globally": "0.4.0", "jmespath": "0.15.0", - "joi": "17.5.0", - "jose-node-cjs-runtime": "4.3.7", + "joi": "17.6.0", + "jose-node-cjs-runtime": "4.4.0", "js-yaml": "4.1.0", "lodash": "4.17.21", - "moment": "2.29.1", "mixin-deep": "^2.0.1", - "npm-registry-fetch": "12.0.0", - "plop": "^2.7.6", - "prompt": "1.2.0", + "moment": "2.29.1", + "npm-registry-fetch": "12.0.1", + "plop": "3.0.5", + "prompt": "1.2.1", "semver": "7.3.5", "url-join": "4.0.1", - "url-parse": "1.5.3", + "url-parse": "1.5.4", "yauzl": "2.10.0" }, "devDependencies": { "audit-ci": "5.1.2", - "chai": "4.3.4", + "chai": "4.3.6", "chai-as-promised": "7.1.1", - "eslint": "8.3.0", + "eslint": "8.7.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.25.3", + "eslint-plugin-import": "2.25.4", "husky": "7.0.4", "madge": "4.0.2", - "mocha": "9.1.3", + "mocha": "9.2.0", "mocked-env": "1.3.5", - "nock": "13.1.4", - "nyc": "15.0.1", - "rewire": "5.0.0", + "nock": "13.2.2", + "nyc": "15.1.0", + "rewire": "6.0.0", "sinon": "11.1.2" }, "nyc": { From c23c9c8547666257ca4326f283015d982e2e29e7 Mon Sep 17 00:00:00 2001 From: clee Date: Thu, 27 Jan 2022 22:16:20 -0600 Subject: [PATCH 536/864] remove old task subcommands under actions --- bin/cortex-actions.js | 86 ----------------------- package-lock.json | 2 +- src/client/actions.js | 92 ------------------------- src/commands/actions.js | 149 ---------------------------------------- 4 files changed, 1 insertion(+), 328 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 2584e592..f6cc2bda 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -139,92 +139,6 @@ program } })); -// // Get Tasks logs -// program -// .command('task-logs ') -// .description('Get Tasks logs') -// .option('--no-compat', 'Ignore API compatibility checks') -// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') -// .option('--profile [profile]', 'The profile to use') -// .option('--project [project]', 'The project to use') -// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') -// .action(withCompatibilityCheck((jobId, taskId, options) => { -// try { -// new TaskLogsActionCommand(program).execute(jobId, taskId, options); -// } catch (err) { -// console.error(chalk.red(err.message)); -// } -// })); -// -// // Cancel Tasks -// program -// .command('task-cancel ') -// .description('Cancel Task') -// .option('--no-compat', 'Ignore API compatibility checks') -// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') -// .option('--profile [profile]', 'The profile to use') -// .option('--project [project]', 'The project to use') -// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') -// .action(withCompatibilityCheck((jobId, taskId, options) => { -// try { -// new TaskCancelActionCommand(program).execute(jobId, taskId, options); -// } catch (err) { -// console.error(chalk.red(err.message)); -// } -// })); -// -// // Get Tasks Status -// program -// .command('task-status ') -// .description('Get Task\'s status') -// .option('--no-compat', 'Ignore API compatibility checks') -// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') -// .option('--profile [profile]', 'The profile to use') -// .option('--project [project]', 'The project to use') -// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') -// .action(withCompatibilityCheck((jobId, taskId, options) => { -// try { -// new TaskStatusActionCommand(program).execute(jobId, taskId, options); -// } catch (err) { -// console.error(chalk.red(err.message)); -// } -// })); -// -// // List Job tasks -// program -// .command('task-list ') -// .description('List Job\'s tasks status') -// .option('--no-compat', 'Ignore API compatibility checks') -// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') -// .option('--profile [profile]', 'The profile to use') -// .option('--project [project]', 'The project to use') -// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.' -// + ' Example to query for status [PENDING, SUBMITTED, STARTING, RUNNING, SUCCEEDED, FAILED] tasks: --query "data[?status == \'FAILED\'].taskId"') -// .action(withCompatibilityCheck((jobId, options) => { -// try { -// new JobTaskListActionCommand(program).execute(jobId, options); -// } catch (err) { -// console.error(chalk.red(err.message)); -// } -// })); -// -// // Get Job Stats -// program -// .command('task-stats ') -// .description('Get Task\'s stats for a given Job') -// .option('--no-compat', 'Ignore API compatibility checks') -// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') -// .option('--profile [profile]', 'The profile to use') -// .option('--project [project]', 'The project to use') -// .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') -// .action(withCompatibilityCheck((jobId, options) => { -// try { -// new TaskStatsActionCommand(program).execute(jobId, options); -// } catch (err) { -// console.error(chalk.red(err.message)); -// } -// })); - if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } diff --git a/package-lock.json b/package-lock.json index 2a09745c..3c9dfb6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7281,4 +7281,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/src/client/actions.js b/src/client/actions.js index f728f35a..24ad8874 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -114,98 +114,6 @@ module.exports = class Actions { .catch((err) => constructError(err)); } - taskLogs(projectId, token, jobId, taskId) { - checkProject(projectId); - const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/logs`; - debug('taskLogs(%s, %s) => %s', jobId, taskId, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) - .json() - .then((res) => res) - .catch((err) => constructError(err)); - } - - taskCancel(projectId, token, jobId, taskId) { - checkProject(projectId); - const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}`; - debug('taskCancel(%s, %s) => %s', jobId, taskId, endpoint); - return got - .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) - .json() - .then((res) => res) - .catch((err) => constructError(err)); - } - - taskStatus(projectId, token, jobId, taskId) { - checkProject(projectId); - const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks/${taskId}/status`; - debug('taskStatus(%s, %s) => %s', jobId, taskId, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) - .json() - .then((res) => { - debug('resBody (with provider status as well): %s', res); - return _.omit(res, '_providerStatus'); - }) - .catch((err) => constructError(err)); - } - - jobListTasks(projectId, token, jobId) { - checkProject(projectId); - const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/tasks`; - debug('jobListTasks(%s) => %s', jobId, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) - .json() - .then((res) => res) - .catch((err) => constructError(err)); - } - - taskStats(projectId, token, jobId) { - checkProject(projectId); - const canonicalJobId = Actions.getCanonicalJobId(jobId); - const endpoint = `${this.endpointV4(projectId)}/${canonicalJobId}/stats`; - debug('taskStats(%s) => %s', jobId, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) - .json() - .then((res) => res) - .catch((err) => constructError(err)); - } - - listTasksByActivation(projectId, token, activationId) { - checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/${activationId}`; - debug('listTasksByActivation(%s) => %s', activationId, endpoint); - return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) - .json() - .then((res) => res) - .catch((err) => constructError(err)); - } - getConfig(projectId, token) { checkProject(projectId); const endpoint = _.join([this.endpointV4(projectId), '_config'], '/'); diff --git a/src/commands/actions.js b/src/commands/actions.js index 26f4127c..7d58f114 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -202,152 +202,3 @@ module.exports.DeleteActionCommand = class { }); } }; - -module.exports.TaskLogsActionCommand = class { - constructor(program) { - this.program = program; - } - - async execute(jobId, taskId, options) { - const profile = await loadProfile(options.profile); - debug('%s.taskLogsActions (%s, %s)', profile.name, jobId, taskId); - const actions = new Actions(profile.url); - actions.taskLogs(options.project || profile.project, profile.token, jobId, taskId) - .then((response) => { - if (response.success) { - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Action task logs failed: ${response.status} ${response.message}`, options); - } - }); - } -}; - -module.exports.TaskCancelActionCommand = class { - constructor(program) { - this.program = program; - } - - async execute(jobId, taskId, options) { - const profile = await loadProfile(options.profile); - debug('%s.taskCancelActions (%s, %s)', profile.name, jobId, taskId); - const actions = new Actions(profile.url); - actions.taskCancel(options.project || profile.project, profile.token, jobId, taskId) - .then((response) => { - if (response.success) { - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Action cancel task failed: ${response.status} ${response.message}`, options); - } - }); - } -}; - -module.exports.TaskStatusActionCommand = class { - constructor(program) { - this.program = program; - } - - async execute(jobId, taskId, options) { - const profile = await loadProfile(options.profile); - debug('%s.taskStatusActions (%s, %s)', profile.name, jobId, taskId); - const actions = new Actions(profile.url); - actions.taskStatus(options.project || profile.project, profile.token, jobId, taskId) - .then((response) => { - if (response.success) { - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Action task logs failed: ${response.status} ${response.message}`, options); - } - }); - } -}; - -module.exports.JobTaskListActionCommand = class { - constructor(program) { - this.program = program; - } - - async execute(jobId, options) { - const profile = await loadProfile(options.profile); - debug('%s.jobTaskListActions (%s, %s)', profile.name, jobId); - const actions = new Actions(profile.url); - actions.jobListTasks(options.project || profile.project, profile.token, jobId) - .then((response) => { - if (response.success) { - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Action list job's tasks failed: ${response.status} ${response.message}`, options); - } - }); - } -}; - -module.exports.TaskStatsActionCommand = class { - constructor(program) { - this.program = program; - } - - async execute(jobId, options) { - const profile = await loadProfile(options.profile); - debug('%s.taskStatsActions (%s, %s)', profile.name, jobId); - const actions = new Actions(profile.url); - actions.taskStats(options.project || profile.project, profile.token, jobId) - .then((response) => { - if (response.success) { - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Action get Job tasks stats failed: ${response.status} ${response.message}`, options); - } - }); - } -}; - -module.exports.ListTaskByActivation = class { - constructor(program) { - this.program = program; - } - - async execute(activationId, options) { - const profile = await loadProfile(options.profile); - debug('%s.listTasksByActivation (%s, %s)', profile.name, activationId); - const actions = new Actions(profile.url); - actions.listTasksByActivation(options.project || profile.project, profile.token, activationId) - .then((response) => { - if (response.success) { - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Agent task list by activation failed: ${response.status} ${response.message}`, options); - } - }); - } -}; - -module.exports.GetLogsCommand = class { - constructor(program) { - this.program = program; - } - - async execute(jobId, options) { - const profile = await loadProfile(options.profile); - debug('%s.getLogsActions (%s, %s)', profile.name, jobId); - const actions = new Actions(profile.url); - actions.getLogsAction(options.project || profile.project, profile.token, jobId) - .then((response) => { - if (response.success) { - if (options.json) { - return printSuccess(JSON.stringify(response, null, 2), options); - } - const logsStr = _.get(response, 'logs', []).join('/n'); - return printSuccess(logsStr, options); - } - return printError(`Action get logs failed: ${response.status} ${response.message}`, options); - }); - } -}; From c9ff8d6e89aaa98deae783601c778cc25c816b2f Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 31 Jan 2022 18:13:36 +0530 Subject: [PATCH 537/864] added async await --- src/commands/connections.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/connections.js b/src/commands/connections.js index f8053ca4..17b59d33 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -154,8 +154,8 @@ module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { this.program = program; } - execute(connectionName, options) { - const profile = loadProfile(options.profile); + async execute(connectionName, options) { + const profile = await loadProfile(options.profile); debug('%s.executeDeleteConnection(%s)', profile.name, connectionName); const connection = new Connections(profile.url); From 7ccc178839d9f08725c9c1818b759dd66f866d6d Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 1 Feb 2022 11:25:20 +0530 Subject: [PATCH 538/864] trying fix --- bin/cortex-connections.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 44c1f963..5c569837 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -120,7 +120,7 @@ program } })); -program.parse(process.argv); +// program.parse(process.argv); if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); From 35ccc27188f4f544c12b9ceace990957c6e024e1 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 1 Feb 2022 11:30:58 +0530 Subject: [PATCH 539/864] removed commented line --- bin/cortex-connections.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 5c569837..dbd770c5 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -120,10 +120,7 @@ program } })); -// program.parse(process.argv); - if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } module.exports = program; - From 6f1953e91146e949bab69c83211beacb155dc32b Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 1 Feb 2022 15:13:59 +0530 Subject: [PATCH 540/864] added async await --- src/commands/secrets.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/secrets.js b/src/commands/secrets.js index cefc05ec..d4371ed9 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -137,8 +137,8 @@ module.exports.DeleteSecretCommand = class { this.program = program; } - execute(keyName, options) { - const profile = loadProfile(options.profile); + async execute(keyName, options) { + const profile = await loadProfile(options.profile); debug('%s.deleteSecret(%s)', profile.name, keyName); const secrets = new Secrets(profile.url); From 81a77d08f8bf6bfbbe555354491378d499e1e676 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 1 Feb 2022 16:59:49 +0530 Subject: [PATCH 541/864] updated variable name --- src/commands/secrets.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/secrets.js b/src/commands/secrets.js index d4371ed9..0564b26d 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -141,8 +141,8 @@ module.exports.DeleteSecretCommand = class { const profile = await loadProfile(options.profile); debug('%s.deleteSecret(%s)', profile.name, keyName); - const secrets = new Secrets(profile.url); - secrets.deleteSecret(options.project || profile.project, profile.token, keyName).then((response) => { + const secretsClient = new Secrets(profile.url); + secretsClient.deleteSecret(options.project || profile.project, profile.token, keyName).then((response) => { if (response.success) { const result = filterObject(response.result, options); return printSuccess(JSON.stringify(result, null, 2), options); From 4c4263046e5b7294c0906a7108c01082eba6e558 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 1 Feb 2022 11:47:39 -0600 Subject: [PATCH 542/864] Revert plop 3.x -> 2.7.6 (esm) (#475) --- package-lock.json | 1728 +++++++++++++++++++++++++++++++-------------- package.json | 2 +- 2 files changed, 1191 insertions(+), 539 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2a09745c..048ed435 100644 --- a/package-lock.json +++ b/package-lock.json @@ -353,6 +353,15 @@ "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", "dev": true }, + "@babel/runtime-corejs3": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", + "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", + "requires": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + } + }, "@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", @@ -860,33 +869,35 @@ "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-BNoMetRf3gmkpAlV5we+kxyZTle7YibdOntIZbU5pyIfMdcwy784KfeZDAcuyMznkh5OLa17RVXZOGA5LTlkgQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", "requires": { "@types/through": "*", - "rxjs": "^7.2.0" - }, - "dependencies": { - "rxjs": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", - "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", - "requires": { - "tslib": "^2.1.0" - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "rxjs": "^6.4.0" + } + }, + "@types/interpret": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", + "requires": { + "@types/node": "*" } }, "@types/json5": { @@ -904,14 +915,20 @@ } }, "@types/liftoff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", + "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", "requires": { "@types/fined": "*", + "@types/interpret": "*", "@types/node": "*" } }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", @@ -1139,6 +1156,16 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -1172,6 +1199,11 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -1227,6 +1259,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, "audit-ci": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", @@ -1321,10 +1358,94 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + } + } + }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true }, "binary-extensions": { "version": "2.2.0", @@ -1336,6 +1457,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -1452,6 +1574,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -1564,19 +1687,12 @@ "dev": true }, "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -1591,23 +1707,6 @@ "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", "dev": true }, - "capital-case": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, "chai": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", @@ -1642,29 +1741,28 @@ } }, "change-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "requires": { - "camel-case": "^4.1.2", - "capital-case": "^1.0.4", - "constant-case": "^3.0.4", - "dot-case": "^3.0.4", - "header-case": "^2.0.4", - "no-case": "^3.0.4", - "param-case": "^3.0.4", - "pascal-case": "^3.1.2", - "path-case": "^3.0.4", - "sentence-case": "^3.0.4", - "snake-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" } }, "chardet": { @@ -1705,6 +1803,27 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1838,6 +1957,11 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1850,20 +1974,12 @@ "dev": true }, "constant-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case": "^2.0.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" } }, "convert-source-map": { @@ -1883,6 +1999,16 @@ } } }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js-pure": { + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", + "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==" + }, "cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -1921,6 +2047,11 @@ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decomment": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/decomment/-/decomment-0.9.5.tgz", @@ -2005,50 +2136,65 @@ "object-keys": "^1.0.12" } }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "kind-of": "^6.0.0" } }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "kind-of": "^6.0.0" } }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "requires": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "requires": { + "aggregate-error": "^3.0.0" + } } } }, @@ -2234,19 +2380,11 @@ } }, "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0" } }, "duplexer": { @@ -2877,6 +3015,51 @@ "through": "^2.3.8" } }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -2929,6 +3112,65 @@ } } }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", @@ -3081,49 +3323,42 @@ } }, "findup-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "requires": { "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" }, "dependencies": { "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "^2.1.0" } } } }, "fined": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "requires": { "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", + "is-plain-object": "^2.0.3", "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" - } + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" } }, "flagged-respawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" }, "flat": { "version": "5.0.2", @@ -3186,6 +3421,14 @@ "mime-types": "^2.1.12" } }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -3386,32 +3629,24 @@ } }, "globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "requires": { - "array-union": "^3.0.1", + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" }, "dependencies": { - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" - }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" } } }, @@ -3516,6 +3751,21 @@ "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", @@ -3542,10 +3792,57 @@ "has-symbols": "^1.0.2" } }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, "requires": { "is-stream": "^2.0.0", @@ -3559,19 +3856,12 @@ "dev": true }, "header-case": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", "requires": { - "capital-case": "^1.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0", + "upper-case": "^1.1.3" } }, "homedir-polyfill": { @@ -3655,7 +3945,8 @@ "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true }, "ignore": { "version": "4.0.6", @@ -3714,55 +4005,23 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.21", + "lodash": "^4.17.19", "mute-stream": "0.0.8", - "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" - }, - "dependencies": { - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "rxjs": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", - "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", - "requires": { - "tslib": "^2.1.0" - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } } }, "internal-slot": { @@ -3777,9 +4036,9 @@ } }, "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "ip": { "version": "1.1.5", @@ -3795,6 +4054,24 @@ "is-windows": "^1.0.1" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -3823,6 +4100,11 @@ "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", @@ -3833,11 +4115,28 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", - "dev": true, "requires": { "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -3847,6 +4146,23 @@ "has-tostringtag": "^1.0.0" } }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -3883,13 +4199,22 @@ "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "requires": { + "lower-case": "^1.1.0" + } + }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -4017,7 +4342,16 @@ "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "requires": { + "upper-case": "^1.1.0" + } }, "is-url": { "version": "1.2.4", @@ -4286,43 +4620,18 @@ } }, "liftoff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", - "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", - "requires": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "object.map": "^1.0.1", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" - }, - "dependencies": { - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "requires": { - "has": "^1.0.3" - } - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" } }, "locate-path": { @@ -4373,6 +4682,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -4388,18 +4698,16 @@ } }, "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "lower-case": "^1.1.2" } }, "lowercase-keys": { @@ -4558,12 +4866,100 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } } }, "mime-db": { @@ -4864,6 +5260,24 @@ "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", "dev": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -4894,19 +5308,11 @@ } }, "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "lower-case": "^1.1.1" } }, "nock": { @@ -4930,41 +5336,29 @@ } }, "node-plop": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.30.0.tgz", - "integrity": "sha512-5w9+jWoy9OtMm3qRmHgL2z/3L5VL3RhEegKkKC4tA1IIjG3aXf8Ee/8wdgU9qXyt1yDfPWI9Tan1rHpXAp0ZnA==", - "requires": { - "@types/inquirer": "^8.1.3", - "change-case": "^4.1.2", - "del": "^6.0.0", - "globby": "^12.0.2", + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", + "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", + "requires": { + "@babel/runtime-corejs3": "^7.9.2", + "@types/inquirer": "^6.5.0", + "change-case": "^3.1.0", + "del": "^5.1.0", + "globby": "^10.0.1", "handlebars": "^4.4.3", - "inquirer": "^8.2.0", - "isbinaryfile": "^4.0.8", + "inquirer": "^7.1.0", + "isbinaryfile": "^4.0.2", "lodash.get": "^4.4.2", - "lower-case": "^2.0.2", - "mkdirp": "^1.0.4", - "resolve": "^1.20.0", - "title-case": "^3.0.3", - "upper-case": "^2.0.2" + "mkdirp": "^0.5.1", + "resolve": "^1.12.0" }, "dependencies": { - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "has": "^1.0.3" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "minimist": "^1.2.5" } } } @@ -5217,6 +5611,34 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", @@ -5330,94 +5752,111 @@ } }, "ora": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.0.1.tgz", - "integrity": "sha512-TDdKkKHdWE6jo/6pIa5U5AWcSVfpNRFJ8sdRJpioGNVPLAzZzHs/N+QhUfF7ZbyoC+rnDuNTKzeDJUbAza9g4g==", - "requires": { - "bl": "^5.0.0", - "chalk": "^4.1.2", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.0", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.0.0", - "strip-ansi": "^7.0.1", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "color-convert": "^1.9.0" } }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^2.0.0" } }, - "is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } }, - "is-unicode-supported": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.1.0.tgz", - "integrity": "sha512-lDcxivp8TJpLG75/DpatAqNzOpDPSpED8XNtrpBHTdQ2InQ1PbW78jhwSxyxhhu+xbVSast2X38bwj8atwoUQA==" + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "requires": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - }, - "dependencies": { - "chalk": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", - "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" - } + "chalk": "^2.0.1" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" } }, "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "^5.1.0", + "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "ansi-regex": "^6.0.1" + "has-flag": "^3.0.0" } } } @@ -5477,19 +5916,11 @@ } }, "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0" } }, "parent-module": { @@ -5523,35 +5954,25 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" }, "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" } }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, "path-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0" } }, "path-exists": { @@ -5635,7 +6056,8 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "pkg-dir": { "version": "4.2.0", @@ -5698,24 +6120,54 @@ } }, "plop": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/plop/-/plop-3.0.5.tgz", - "integrity": "sha512-bD+/Lr+7NCjNIaYJq1cyHDfxtVCdjwfprgKsNwHwFnwntTiNwZWyxd1NuRDygdQWyPi+rstFMMFAPMek0cYaqA==", - "requires": { - "@types/liftoff": "^4.0.0", - "chalk": "^5.0.0", - "interpret": "^2.2.0", - "liftoff": "^4.0.0", + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", + "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", + "requires": { + "@types/liftoff": "^2.5.1", + "chalk": "^1.1.3", + "interpret": "^1.2.0", + "liftoff": "^2.5.0", "minimist": "^1.2.5", - "node-plop": "^0.30.0", - "ora": "^6.0.1", - "v8flags": "^4.0.0" + "node-plop": "^0.26.3", + "ora": "^3.4.0", + "v8flags": "^2.0.10" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, "chalk": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz", - "integrity": "sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -5725,6 +6177,11 @@ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "postcss": { "version": "8.4.4", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", @@ -5935,6 +6392,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5957,31 +6415,25 @@ "dev": true }, "rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "^1.20.0" - }, - "dependencies": { - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "requires": { - "has": "^1.0.3" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } + "resolve": "^1.1.6" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpp": { @@ -5999,6 +6451,16 @@ "es6-error": "^4.0.1" } }, + "repeat-element": { + "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=" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6042,7 +6504,6 @@ "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, "requires": { "is-core-module": "^2.1.0", "path-parse": "^1.0.6" @@ -6074,6 +6535,11 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -6091,6 +6557,11 @@ "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", @@ -6313,10 +6784,27 @@ "queue-microtask": "^1.2.2" } }, + "rxjs": { + "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" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } }, "safer-buffer": { "version": "2.1.2", @@ -6349,20 +6837,12 @@ } }, "sentence-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3", - "upper-case-first": "^2.0.2" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" } }, "serialize-javascript": { @@ -6468,18 +6948,120 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "requires": { + "no-case": "^2.2.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } } } }, @@ -6505,8 +7087,7 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-js": { "version": "1.0.1", @@ -6514,6 +7095,23 @@ "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, "spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -6564,6 +7162,25 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -6633,6 +7250,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -6697,7 +7315,17 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } }, "table": { "version": "6.8.0", @@ -6791,18 +7419,12 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "title-case": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", - "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "no-case": "^2.2.0", + "upper-case": "^1.0.3" } }, "tmp": { @@ -6819,6 +7441,35 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6847,8 +7498,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tsutils": { "version": "3.21.0", @@ -6988,33 +7638,16 @@ } }, "upper-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" }, "upper-case-first": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } + "upper-case": "^1.1.1" } }, "uri-js": { @@ -7026,6 +7659,11 @@ "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", @@ -7040,10 +7678,21 @@ "requires-port": "^1.0.0" } }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, "uuid": { "version": "3.4.0", @@ -7058,9 +7707,12 @@ "dev": true }, "v8flags": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.0.tgz", - "integrity": "sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "requires": { + "user-home": "^1.1.1" + } }, "validate-npm-package-name": { "version": "3.0.0", diff --git a/package.json b/package.json index 9d7403e3..eb771a00 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "mixin-deep": "^2.0.1", "moment": "2.29.1", "npm-registry-fetch": "12.0.1", - "plop": "3.0.5", + "plop": "2.7.6", "prompt": "1.2.1", "semver": "7.3.5", "url-join": "4.0.1", From 9d7e8002ced313974bd6af7e3313f6e36b6b4154 Mon Sep 17 00:00:00 2001 From: clee Date: Tue, 1 Feb 2022 13:04:49 -0600 Subject: [PATCH 543/864] add messages onto options help that jobTimeout is only valid for jobs and port is only valid on daemon actions also print error if either option is provided for the wrong type --- bin/cortex-actions.js | 4 ++-- src/commands/actions.js | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 2584e592..65760f72 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -120,11 +120,11 @@ program .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' .option('--image, --docker [image]', 'Docker image to use as the runner') .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') - .option('--jobTimeout [jobTimeout]', 'Job Timeout in seconds, this will marked the job as FAILED (default: no timeout)') + .option('--jobTimeout [jobTimeout]', 'Job Timeout in seconds until the job is marked as FAILED (default: no timeout), only used for job action types') .option('-k, --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill, provide as last option specified or end list of files with "--"') .option('--no-compat', 'Ignore API compatibility checks') .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') - .option('--port [port]', 'Docker port') // '9091' + .option('--port [port]', 'Docker port, only used for daemon action types') // '9091' .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--scaleCount [count]', 'Scale count, only used for daemon action types') diff --git a/src/commands/actions.js b/src/commands/actions.js index 26f4127c..c549cbcc 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -137,6 +137,9 @@ module.exports.DeployActionCommand = class { actionInst.command = options.cmd; } if (options.port) { + if (actionInst.type === 'job') { + printError('--port not valid on job action types'); + } if (!isNumeric(options.port)) { printError('--port must be a number', options); } @@ -156,6 +159,9 @@ module.exports.DeployActionCommand = class { } if (options.jobTimeout) { + if (actionInst.type === 'daemon') { + printError('--jobTimeout not valid on daemon action types'); + } if (!isNumeric(options.jobTimeout)) { printError('--jobTimeout must be a number', options); } From 1e98bbd21b6b3d3d5d61bb6cbc11de68b4efbc26 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 2 Feb 2022 13:15:47 +0530 Subject: [PATCH 544/864] added serverTs in token generation --- src/client/info.js | 38 ++++++++++++++++++++++++++++++++++++++ src/config.js | 5 ++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/client/info.js diff --git a/src/client/info.js b/src/client/info.js new file mode 100644 index 00000000..93b8f087 --- /dev/null +++ b/src/client/info.js @@ -0,0 +1,38 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const debug = require('debug')('cortex:cli'); +const { got } = require('./apiutils'); +const { constructError, getUserAgent } = require('../commands/utils'); + +module.exports = class Info { + constructor(cortexUrl) { + this.endpoint = () => `${cortexUrl}`; + this.cortexUrl = cortexUrl; + } + + getInfo() { + const endpoint = `${this.cortexUrl}/fabric/v4/info`; + debug('getInfo() => %s', endpoint); + return got + .get(endpoint, { + headers: {}, + 'user-agent': getUserAgent(), + }).json() + .then((result) => result) + .catch((err) => constructError(err)); + } +}; diff --git a/src/config.js b/src/config.js index 3f335f46..238d9a3f 100644 --- a/src/config.js +++ b/src/config.js @@ -23,6 +23,7 @@ const debug = require('debug')('cortex:config'); const jose = require('jose-node-cjs-runtime'); //const { SignJWT } = require('jose-node-cjs-runtime/jwt/sign'); const { printError } = require('./commands/utils'); +const Info = require('./client/info'); function configDir() { return process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); @@ -33,12 +34,14 @@ async function generateJwt(profile, expiresIn = '2m') { username, issuer, audience, jwk, } = profile; const jwtSigner = await jose.importJWK(jwk, 'Ed25519'); + const infoClient = new Info(profile.url); + const { serverTs } = await infoClient.getInfo(); return new jose.SignJWT({}) .setProtectedHeader({ alg: 'EdDSA', kid: jwk.kid }) .setSubject(username) .setAudience(audience) .setIssuer(issuer) - .setIssuedAt() + .setIssuedAt(serverTs) .setExpirationTime(expiresIn) .sign(jwtSigner, { kid: jwk.kid }); } From 027fcc24ccb23364e378e125059bfb4e1fcd6172 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy Date: Fri, 4 Feb 2022 19:46:50 +0530 Subject: [PATCH 545/864] Add scuttle to Dockerfile for jobs generated --- src/commands/assets/templates/skill/job/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/job/Dockerfile b/src/commands/assets/templates/skill/job/Dockerfile index 7e850e40..9effc15a 100644 --- a/src/commands/assets/templates/skill/job/Dockerfile +++ b/src/commands/assets/templates/skill/job/Dockerfile @@ -1,4 +1,8 @@ FROM python:3.7.4-buster +COPY --from=redboxoss/scuttle:latest /scuttle /bin/scuttle +ENV ENVOY_ADMIN_API=http://localhost:15000 +ENV ISTIO_QUIT_API=http://localhost:15020 + ADD . /app RUN pip install -r /app/requirements.txt -ENTRYPOINT ["python", "/app/main.py"] +ENTRYPOINT ["scuttle", "python", "/app/main.py"] From edca41519ca1db775d9a9974ed8ba729533e96a3 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Feb 2022 16:49:21 +0530 Subject: [PATCH 546/864] --query consistency in list clis --- bin/cortex-assessments.js | 2 ++ bin/cortex-missions.js | 1 + bin/cortex-secrets.js | 1 + src/commands/actions.js | 4 ++-- src/commands/agents.js | 14 +++++++------- src/commands/assessments.js | 11 +++++++---- src/commands/campaigns.js | 7 ++++--- src/commands/connections.js | 5 +++-- src/commands/content.js | 4 ++-- src/commands/experiments.js | 10 ++++------ src/commands/models.js | 6 +++--- src/commands/projects.js | 4 ++-- src/commands/secrets.js | 10 ++++++---- src/commands/sessions.js | 4 ++-- src/commands/skills.js | 4 ++-- src/commands/types.js | 5 ++--- src/commands/utils.js | 9 +++++++++ 17 files changed, 59 insertions(+), 42 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 139dc67d..516237f5 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -44,6 +44,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') + .option('--query [query]', 'A query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListResourceTypesCommand(program).execute(options); @@ -126,6 +127,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') + .option('--query [query]', 'A query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListAssessmentCommand(program).execute(options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 19085062..519e78d7 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -44,6 +44,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--query [query]', 'A query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 42a56ea9..4365bd47 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -41,6 +41,7 @@ program .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--query [query]', 'A query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListSecretsCommand(program).execute(options); diff --git a/src/commands/actions.js b/src/commands/actions.js index fddec08d..c317b915 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -21,7 +21,7 @@ const { loadProfile } = require('../config'); const Actions = require('../client/actions'); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, filterListObject, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -38,9 +38,9 @@ module.exports.ListActionsCommand = class { .then((response) => { if (response.success) { let result = response.actions; - if (options.query) result = filterObject(result, options); if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/agents.js b/src/commands/agents.js index 5264a843..e87fc9ad 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,10 +21,9 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); -const { LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT } = require('./utils'); - const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, filterListObject, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -79,9 +78,8 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { catalog.listAgents(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.agents; - if (options.query) result = filterObject(result, options); - if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); @@ -301,8 +299,9 @@ module.exports.ListServicesCommand = class ListServicesCommand { const catalog = new Catalog(profile.url); catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { if (response.success) { - const result = filterObject(response.services, options); + let result = response.services; if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ @@ -334,8 +333,9 @@ module.exports.ListAgentSnapshotsCommand = class { agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName) .then((response) => { if (response.success) { - const result = filterObject(response.result.snapshots, options); + let result = response.result.snapshots; if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/assessments.js b/src/commands/assessments.js index a9fe4e1c..28e348d5 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -27,7 +27,7 @@ const { loadProfile } = require('../config'); const Assessments = require('../client/assessments'); const { - printSuccess, printError, parseObject, printTable, + printSuccess, printError, parseObject, printTable, filterListObject, } = require('./utils'); const handleTable = (spec, data, transformer, noDataMessage) => { @@ -84,8 +84,9 @@ module.exports.ListResourceTypesCommand = class { client.listResourceTypes(profile.token) .then((response) => { if (response.success === false) throw response; - const data = _.compact(response.data); + let data = _.compact(response.data); if (options.json) { + if (options.query) data = filterListObject(data, options); printSuccess(JSON.stringify(data, null, 2), options); } else { const types = data.map((t) => ({ type: t })); @@ -186,8 +187,10 @@ module.exports.ListAssessmentCommand = class { client.listAssessment(profile.token, options.skip, options.limit) .then((response) => { if (response.success === false) throw response; + let result = response.data; if (options.json) { - printSuccess(JSON.stringify(response, null, 2), options); + if (options.query) result = filterListObject(result, options); + printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ { column: 'Name', field: 'name' }, @@ -198,7 +201,7 @@ module.exports.ListAssessmentCommand = class { { column: 'Modified', field: '_updatedAt' }, { column: 'Author', field: '_createdBy' }, ]; - handleTable(tableSpec, response.data, (o) => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); + handleTable(tableSpec, result, (o) => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); } }) .catch((err) => { diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index e43fa739..34fda13a 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -20,7 +20,7 @@ const Catalog = require('../client/catalog'); const _ = { get: require('lodash/get') }; const { - printSuccess, printError, filterObject, printTable, + printSuccess, printError, filterObject, printTable, filterListObject, } = require('./utils'); module.exports.ListCampaignsCommand = class ListCampaignsCommand { @@ -36,8 +36,8 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { try { const response = await cli.listCampaigns(options.project || profile.project, profile.token); let result = response; - if (options.query) result = filterObject(result, options); if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ @@ -214,8 +214,9 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { try { cli.listMissions(options.project || profile.project, profile.token, campaign).then((response) => { if (response.success === false) throw response; - const data = Object.values(response.data); + let data = Object.values(response.data); if (options.json) { + if (options.query) data = filterListObject(data, options); printSuccess(JSON.stringify(data, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/connections.js b/src/commands/connections.js index 17b59d33..22384cd1 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -23,6 +23,7 @@ const Content = require('../client/content'); const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, CONNECTIONTABLEFORMAT, fileExists, + filterListObject, } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -38,9 +39,9 @@ module.exports.ListConnections = class ListConnections { conns.listConnections(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.result.connections; - if (options.query) result = filterObject(result, options); if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(CONNECTIONTABLEFORMAT, result, (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); @@ -190,9 +191,9 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { conns.listConnectionsTypes(profile.token).then((response) => { if (response.success) { let result = response.result.connectionTypes; - if (options.query) result = filterObject(result, options); if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/content.js b/src/commands/content.js index 914a772a..4a2fba37 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -18,7 +18,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Content = require('../client/content'); const { - printSuccess, printError, filterObject, printTable, getSourceFiles, humanReadableFileSize, + printSuccess, printError, printTable, getSourceFiles, humanReadableFileSize, filterListObject, } = require('./utils'); module.exports.ListContent = class ListContent { @@ -34,7 +34,7 @@ module.exports.ListContent = class ListContent { content.listContent(options.project || profile.project, profile.token).then((response) => { if (response.success) { if (options.query || options.json) { - const result = filterObject(response.message, options); + const result = filterListObject(response.message, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 873db484..c93d65cf 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -22,6 +22,7 @@ const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, DEPENDENCYTABLEFORMAT, + filterListObject, } = require('./utils'); class ListExperiments { @@ -37,10 +38,8 @@ class ListExperiments { exp.listExperiments(options.project || profile.project, options.model, profile.token).then((response) => { if (response.success) { let { result } = response; - if (options.query) { - result = filterObject(response.result, options); - } if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ @@ -130,10 +129,9 @@ class ListRuns { exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort).then((response) => { if (response.success) { let { result } = response; - if (options.query) { - result = filterObject(response.result, options); - } + if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/models.js b/src/commands/models.js index f253089f..53132c52 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -27,7 +27,7 @@ const Experiments = require('../client/experiments'); const { LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT } = require('./utils'); const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, + printSuccess, printError, filterObject, filterListObject, parseObject, printTable, formatValidationPath, fileExists, } = require('./utils'); module.exports.SaveModelCommand = class SaveModelCommand { @@ -82,9 +82,9 @@ module.exports.ListModelsCommand = class ListModelsCommand { models.listModels(options.project || profile.project, options.offset, options.limit, options.tags, profile.token).then((response) => { if (response.success) { let result = response.models; - if (options.query) result = filterObject(result, options); if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); @@ -112,9 +112,9 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { models.listModelRuns(options.project || profile.project, modelName, profile.token).then((response) => { if (response.success) { let result = response.runs; - if (options.query) result = filterObject(result, options); if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(RUNTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); diff --git a/src/commands/projects.js b/src/commands/projects.js index 1d4b2e78..982adf4a 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, filterListObject, } = require('./utils'); module.exports.CreateProjectCommand = class CreateProjectCommand { @@ -66,8 +66,8 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { try { const response = await cli.listProjects(profile.token); let result = response; - if (options.query) result = filterObject(result, options); if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 0564b26d..1ead2d29 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -23,7 +23,7 @@ const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); const Secrets = require('../client/secrets'); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, filterListObject, } = require('./utils'); module.exports.ListSecretsCommand = class { @@ -39,9 +39,11 @@ module.exports.ListSecretsCommand = class { secrets.listSecrets(options.project || profile.project, profile.token) .then((response) => { if (response.success) { - const result = filterObject(response.result, options); - if (options.json) printSuccess(JSON.stringify(result, null, 2), options); - else { + let { result } = response; + if (options.json) { + if (options.query) result = filterListObject(result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { const tableSpec = [ { column: 'Secret Key Name', field: 'keyName', width: 50 }, ]; diff --git a/src/commands/sessions.js b/src/commands/sessions.js index fb623f44..817528e6 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -19,7 +19,7 @@ const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Sessions = require('../client/sessions'); -const { SESSIONTABLEFORMAT, formatValidationPath } = require('./utils'); +const { SESSIONTABLEFORMAT, formatValidationPath, filterListObject } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, @@ -76,9 +76,9 @@ module.exports.ListSessionsCommand = class ListSessionsCommand { sessions.listSessions(options.project || profile.project, profile.token, options.limit).then((response) => { if (response.success) { let result = response.sessions; - if (options.query) result = filterObject(result, options); if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(SESSIONTABLEFORMAT, result); diff --git a/src/commands/skills.js b/src/commands/skills.js index 34530845..ba32c162 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -23,7 +23,7 @@ const Agent = require('../client/agents'); const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, filterListObject, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { @@ -113,9 +113,9 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { }); tableFormat.push({ column: 'Status', field: 'status', width: 30 }); } - if (options.query) result = filterObject(result, options); if (options.json) { + if (options.query) result = filterListObject(result, options); return printSuccess(JSON.stringify(result, null, 2), options); } return printTable(tableFormat, diff --git a/src/commands/types.js b/src/commands/types.js index 53fcafe2..4f87def7 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { LISTTABLEFORMAT } = require('./utils'); +const { LISTTABLEFORMAT, filterListObject } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, @@ -67,9 +67,8 @@ module.exports.ListTypesCommand = class ListTypesCommand { catalog.listTypes(options.project || profile.project, profile.token).then((response) => { if (response.success) { let result = response.types; - if (options.query) result = filterObject(result, options); - if (options.json) { + if (options.query) result = filterListObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); diff --git a/src/commands/utils.js b/src/commands/utils.js index b8967532..3c524a53 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -88,6 +88,15 @@ module.exports.filterObject = (obj, options) => { return obj; }; +module.exports.filterListObject = (obj, options) => { + const { map, pick, partialRight } = _; + if (options.query) { + debug(`filtering results with query: ${options.query}`); + return map(obj, partialRight(pick, options.query.split(','))); + } + return obj; +}; + // YAML 1.2 parses both yaml & json module.exports.parseObject = (str) => yaml.load(str); From c20a778f8556360bb7ed75132b7ca193afbede0e Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Feb 2022 23:52:52 +0530 Subject: [PATCH 547/864] converting serverTs to seconds --- src/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.js b/src/config.js index 238d9a3f..0f059fcd 100644 --- a/src/config.js +++ b/src/config.js @@ -41,7 +41,7 @@ async function generateJwt(profile, expiresIn = '2m') { .setSubject(username) .setAudience(audience) .setIssuer(issuer) - .setIssuedAt(serverTs) + .setIssuedAt(Math.floor(serverTs / 1000)) // in seconds .setExpirationTime(expiresIn) .sign(jwtSigner, { kid: jwk.kid }); } From a0d02212ce56e88459979f0484142204c832a37a Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 14 Feb 2022 10:57:23 +0530 Subject: [PATCH 548/864] JSME support bug --- bin/cortex-assessments.js | 4 ++-- bin/cortex-missions.js | 2 +- bin/cortex-secrets.js | 2 +- src/commands/actions.js | 4 ++-- src/commands/agents.js | 8 ++++---- src/commands/assessments.js | 6 +++--- src/commands/campaigns.js | 6 +++--- src/commands/connections.js | 5 ++--- src/commands/content.js | 4 ++-- src/commands/experiments.js | 5 ++--- src/commands/models.js | 6 +++--- src/commands/projects.js | 4 ++-- src/commands/secrets.js | 4 ++-- src/commands/sessions.js | 4 ++-- src/commands/skills.js | 4 ++-- src/commands/types.js | 6 +++--- 16 files changed, 36 insertions(+), 38 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 516237f5..f99340ea 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -44,7 +44,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListResourceTypesCommand(program).execute(options); @@ -127,7 +127,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListAssessmentCommand(program).execute(options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 519e78d7..c97675eb 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -44,7 +44,7 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--query [query]', 'A query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 4365bd47..a63c3999 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -41,7 +41,7 @@ program .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--query [query]', 'A query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListSecretsCommand(program).execute(options); diff --git a/src/commands/actions.js b/src/commands/actions.js index c317b915..75190b4f 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -21,7 +21,7 @@ const { loadProfile } = require('../config'); const Actions = require('../client/actions'); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, filterListObject, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -40,7 +40,7 @@ module.exports.ListActionsCommand = class { let result = response.actions; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/agents.js b/src/commands/agents.js index e87fc9ad..f6734bbc 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -23,7 +23,7 @@ const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, filterListObject, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -79,7 +79,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { if (response.success) { let result = response.agents; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); @@ -301,7 +301,7 @@ module.exports.ListServicesCommand = class ListServicesCommand { if (response.success) { let result = response.services; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ @@ -335,7 +335,7 @@ module.exports.ListAgentSnapshotsCommand = class { if (response.success) { let result = response.result.snapshots; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 28e348d5..9fbe8804 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -27,7 +27,7 @@ const { loadProfile } = require('../config'); const Assessments = require('../client/assessments'); const { - printSuccess, printError, parseObject, printTable, filterListObject, + printSuccess, printError, parseObject, printTable, filterObject, } = require('./utils'); const handleTable = (spec, data, transformer, noDataMessage) => { @@ -86,7 +86,7 @@ module.exports.ListResourceTypesCommand = class { if (response.success === false) throw response; let data = _.compact(response.data); if (options.json) { - if (options.query) data = filterListObject(data, options); + if (options.query) data = filterObject(data, options); printSuccess(JSON.stringify(data, null, 2), options); } else { const types = data.map((t) => ({ type: t })); @@ -189,7 +189,7 @@ module.exports.ListAssessmentCommand = class { if (response.success === false) throw response; let result = response.data; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 34fda13a..c5f27415 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -20,7 +20,7 @@ const Catalog = require('../client/catalog'); const _ = { get: require('lodash/get') }; const { - printSuccess, printError, filterObject, printTable, filterListObject, + printSuccess, printError, filterObject, printTable, } = require('./utils'); module.exports.ListCampaignsCommand = class ListCampaignsCommand { @@ -37,7 +37,7 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { const response = await cli.listCampaigns(options.project || profile.project, profile.token); let result = response; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ @@ -216,7 +216,7 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { if (response.success === false) throw response; let data = Object.values(response.data); if (options.json) { - if (options.query) data = filterListObject(data, options); + if (options.query) data = filterObject(data, options); printSuccess(JSON.stringify(data, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/connections.js b/src/commands/connections.js index 22384cd1..0d7eb119 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -23,7 +23,6 @@ const Content = require('../client/content'); const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, CONNECTIONTABLEFORMAT, fileExists, - filterListObject, } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -41,7 +40,7 @@ module.exports.ListConnections = class ListConnections { let result = response.result.connections; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(CONNECTIONTABLEFORMAT, result, (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); @@ -193,7 +192,7 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { let result = response.result.connectionTypes; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/content.js b/src/commands/content.js index 4a2fba37..7054b8ec 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -18,7 +18,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Content = require('../client/content'); const { - printSuccess, printError, printTable, getSourceFiles, humanReadableFileSize, filterListObject, + printSuccess, printError, printTable, getSourceFiles, humanReadableFileSize, filterObject, } = require('./utils'); module.exports.ListContent = class ListContent { @@ -34,7 +34,7 @@ module.exports.ListContent = class ListContent { content.listContent(options.project || profile.project, profile.token).then((response) => { if (response.success) { if (options.query || options.json) { - const result = filterListObject(response.message, options); + const result = filterObject(response.message, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/experiments.js b/src/commands/experiments.js index c93d65cf..f44876f1 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -22,7 +22,6 @@ const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, DEPENDENCYTABLEFORMAT, - filterListObject, } = require('./utils'); class ListExperiments { @@ -39,7 +38,7 @@ class ListExperiments { if (response.success) { let { result } = response; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ @@ -131,7 +130,7 @@ class ListRuns { let { result } = response; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/models.js b/src/commands/models.js index 53132c52..58fa7529 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -27,7 +27,7 @@ const Experiments = require('../client/experiments'); const { LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT } = require('./utils'); const { - printSuccess, printError, filterObject, filterListObject, parseObject, printTable, formatValidationPath, fileExists, + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, } = require('./utils'); module.exports.SaveModelCommand = class SaveModelCommand { @@ -84,7 +84,7 @@ module.exports.ListModelsCommand = class ListModelsCommand { let result = response.models; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); @@ -114,7 +114,7 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { let result = response.runs; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(RUNTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); diff --git a/src/commands/projects.js b/src/commands/projects.js index 982adf4a..52b006ad 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const { - printSuccess, printError, filterObject, parseObject, printTable, filterListObject, + printSuccess, printError, filterObject, parseObject, printTable, } = require('./utils'); module.exports.CreateProjectCommand = class CreateProjectCommand { @@ -67,7 +67,7 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { const response = await cli.listProjects(profile.token); let result = response; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 1ead2d29..6b0d1a4f 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -23,7 +23,7 @@ const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); const Secrets = require('../client/secrets'); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, filterListObject, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, } = require('./utils'); module.exports.ListSecretsCommand = class { @@ -41,7 +41,7 @@ module.exports.ListSecretsCommand = class { if (response.success) { let { result } = response; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 817528e6..228aab6a 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -19,7 +19,7 @@ const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Sessions = require('../client/sessions'); -const { SESSIONTABLEFORMAT, formatValidationPath, filterListObject } = require('./utils'); +const { SESSIONTABLEFORMAT, formatValidationPath } = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, @@ -78,7 +78,7 @@ module.exports.ListSessionsCommand = class ListSessionsCommand { let result = response.sessions; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(SESSIONTABLEFORMAT, result); diff --git a/src/commands/skills.js b/src/commands/skills.js index ba32c162..de9ac07a 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -23,7 +23,7 @@ const Agent = require('../client/agents'); const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, filterListObject, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { @@ -115,7 +115,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { } if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); return printSuccess(JSON.stringify(result, null, 2), options); } return printTable(tableFormat, diff --git a/src/commands/types.js b/src/commands/types.js index 4f87def7..5982453e 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -19,10 +19,10 @@ const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { LISTTABLEFORMAT, filterListObject } = require('./utils'); +const { LISTTABLEFORMAT, filterObject } = require('./utils'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, parseObject, printTable, } = require('./utils'); module.exports.SaveTypeCommand = class SaveTypeCommand { @@ -68,7 +68,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { if (response.success) { let result = response.types; if (options.json) { - if (options.query) result = filterListObject(result, options); + if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); From edb508f098a8d9c005c0de11709510471f8305de Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 15 Feb 2022 00:24:09 +0530 Subject: [PATCH 549/864] support for filter, sort, skip, limit in experiment and runs list --- src/client/experiments.js | 11 +++++++++-- src/commands/experiments.js | 6 +++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/client/experiments.js b/src/client/experiments.js index 73fe43a8..7c51fc13 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -29,14 +29,20 @@ module.exports = class Experiments { this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; } - listExperiments(projectId, modelId, token) { + listExperiments(projectId, modelId, token, filter, limit, skip, sort) { checkProject(projectId); const endpoint = `${this.endpoint(projectId)}?${modelId ? `modelId=${modelId}` : ''}`; debug('listExperiments() => %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -68,7 +74,7 @@ module.exports = class Experiments { .catch((err) => constructError(err)); } - listRuns(projectId, token, experimentName, filter, limit, sort) { + listRuns(projectId, token, experimentName, filter, limit, sort, skip) { checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs`; debug('listRuns(%s) => %s', experimentName, endpoint); @@ -76,6 +82,7 @@ module.exports = class Experiments { if (filter) query.filter = filter; if (limit) query.limit = limit; if (sort) query.sort = sort; + if (skip) query.skip = skip; return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/experiments.js b/src/commands/experiments.js index f44876f1..cd307907 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -34,7 +34,7 @@ class ListExperiments { debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); - exp.listExperiments(options.project || profile.project, options.model, profile.token).then((response) => { + exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let { result } = response; if (options.json) { @@ -125,12 +125,12 @@ class ListRuns { const exp = new Experiments(profile.url); const sort = options.sort || JSON.stringify({ startTime: -1 }); - exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort).then((response) => { + exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort, options.skip).then((response) => { if (response.success) { let { result } = response; if (options.json) { - if (options.query) result = filterObject(result, options); + if (options.query) result = filterObject(result.runs, options); printSuccess(JSON.stringify(result, null, 2), options); } else { const tableSpec = [ From 46b6159c392158058bc7b9ac4737436e0816106c Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Mon, 14 Feb 2022 15:52:06 -0600 Subject: [PATCH 550/864] enforce mutually exclusive properties on the resulting object rather than options passed to catch if they're provided in the action file (#485) --- src/commands/actions.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index 75190b4f..91c13112 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -137,9 +137,6 @@ module.exports.DeployActionCommand = class { actionInst.command = options.cmd; } if (options.port) { - if (actionInst.type === 'job') { - printError('--port not valid on job action types'); - } if (!isNumeric(options.port)) { printError('--port must be a number', options); } @@ -159,15 +156,20 @@ module.exports.DeployActionCommand = class { } if (options.jobTimeout) { - if (actionInst.type === 'daemon') { - printError('--jobTimeout not valid on daemon action types'); - } if (!isNumeric(options.jobTimeout)) { printError('--jobTimeout must be a number', options); } actionInst.jobTimeout = parseInt(options.jobTimeout, 10); } + // handle mutually exclusive options + if (actionInst.type === 'job' && _.has(actionInst, 'port')) { + printError('Option port not valid on job action types'); + } + if (actionInst.type === 'daemon' && _.has(actionInst, 'jobTimeout')) { + printError('Option jobTimeout not valid on daemon action types'); + } + const actions = new Actions(profile.url); const response = await actions.deployAction(options.project || profile.project, profile.token, actionInst); if (response.success) { From 6dafac20244e679340abb5c52b32eb78189ecb16 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 15 Feb 2022 12:40:56 +0530 Subject: [PATCH 551/864] filter and sort support to list models --- bin/cortex-models.js | 6 ++++-- src/client/models.js | 11 +++++++++-- src/commands/models.js | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index d4151ca4..915334b3 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -43,11 +43,13 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--offset [offset]', 'The offset to use') - .option('--limit [limit]', 'The limit to use') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of models returned') .option('--tags [tags]', 'The tags to use (comma separated values)') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListModelsCommand(program).execute(options); diff --git a/src/client/models.js b/src/client/models.js index 153e0910..39b18d5c 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -81,14 +81,21 @@ module.exports = class Models { .catch((err) => constructError(err)); } - listModels(projectId, offset, limit, tags, token) { + listModels(projectId, skip, limit, filter, sort, tags, token) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}?skip=${offset}&limit=${limit}${tags ? `&tags=${tags}` : ''}`; + const endpoint = `${this.endpointV4(projectId)}`; debug('listModels() => %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; + if (tags) query.tags = tags; return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }) .json() .then((modelsResp) => ({ success: true, ...modelsResp })) diff --git a/src/commands/models.js b/src/commands/models.js index 58fa7529..b11f4ec9 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -79,7 +79,7 @@ module.exports.ListModelsCommand = class ListModelsCommand { const profile = await loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); - models.listModels(options.project || profile.project, options.offset, options.limit, options.tags, profile.token).then((response) => { + models.listModels(options.project || profile.project, options.skip, options.limit, options.filter, options.sort, options.tags, profile.token).then((response) => { if (response.success) { let result = response.models; From 49f3e2ff9ff62cd8b58fa59f1a8e63bc7ea306ba Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 15 Feb 2022 15:22:44 +0530 Subject: [PATCH 552/864] filter, limit, sort, skip support for listRunByModel --- bin/cortex-models.js | 4 ++++ src/client/models.js | 8 +++++++- src/commands/models.js | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 915334b3..0256faae 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -173,6 +173,10 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of runs returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((modelName, options) => { try { new ListModelRunsCommand(program).execute(modelName, options); diff --git a/src/client/models.js b/src/client/models.js index 39b18d5c..68f37ca8 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -102,14 +102,20 @@ module.exports = class Models { .catch((err) => constructError(err)); } - listModelRuns(projectId, modelName, token) { + listModelRuns(projectId, modelName, token, filter, limit, skip, sort) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${modelName}/experiments/runs`; debug('listModels() => %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }) .json() .then((modelsResp) => ({ success: true, ...modelsResp })) diff --git a/src/commands/models.js b/src/commands/models.js index b11f4ec9..21751e4d 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -109,7 +109,7 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { const profile = await loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); - models.listModelRuns(options.project || profile.project, modelName, profile.token).then((response) => { + models.listModelRuns(options.project || profile.project, modelName, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.runs; From a745d62d66428f76b8755f4b18ec7b8bdb9e4395 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Wed, 16 Feb 2022 08:18:36 +0000 Subject: [PATCH 553/864] fix: src/commands/assets/templates/skill/job/Dockerfile to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-DEBIAN10-OPENSSL-1569403 - https://snyk.io/vuln/SNYK-DEBIAN10-PYTHON27-349027 - https://snyk.io/vuln/SNYK-DEBIAN10-PYTHON37-1063182 - https://snyk.io/vuln/SNYK-DEBIAN10-PYTHON37-349025 - https://snyk.io/vuln/SNYK-DEBIAN10-PYTHON37-452235 --- src/commands/assets/templates/skill/job/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/job/Dockerfile b/src/commands/assets/templates/skill/job/Dockerfile index 9effc15a..bfde1c9c 100644 --- a/src/commands/assets/templates/skill/job/Dockerfile +++ b/src/commands/assets/templates/skill/job/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7.4-buster +FROM python:3.9.10-buster COPY --from=redboxoss/scuttle:latest /scuttle /bin/scuttle ENV ENVOY_ADMIN_API=http://localhost:15000 ENV ISTIO_QUIT_API=http://localhost:15020 From a7a782295bfd7b6440a40facb57591d6ddb04a9e Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Wed, 16 Feb 2022 08:19:59 +0000 Subject: [PATCH 554/864] fix: src/commands/assets/templates/skill/daemon/Dockerfile to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-DEBIAN10-OPENSSL-1569403 - https://snyk.io/vuln/SNYK-DEBIAN10-PYTHON27-349027 - https://snyk.io/vuln/SNYK-DEBIAN10-PYTHON37-1063182 - https://snyk.io/vuln/SNYK-DEBIAN10-PYTHON37-349025 - https://snyk.io/vuln/SNYK-DEBIAN10-PYTHON37-452235 --- src/commands/assets/templates/skill/daemon/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/daemon/Dockerfile b/src/commands/assets/templates/skill/daemon/Dockerfile index 5a4f6cb6..a1c603a8 100644 --- a/src/commands/assets/templates/skill/daemon/Dockerfile +++ b/src/commands/assets/templates/skill/daemon/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.7.4-buster +FROM python:3.9.10-buster ADD . /app WORKDIR /app RUN pip install -r requirements.txt From 43077712707ab035ae3044515bd53f6a02fc1d63 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Wed, 16 Feb 2022 15:14:42 -0600 Subject: [PATCH 555/864] compatibility issue found in dci-qa (#490) * use system time as a default if info endpoint does not include the server timestamp (compatibility with new or older systems) bumped packages from audit scans * use lodash to set default timestamp --- package-lock.json | 26 +++++++++++++------------- src/config.js | 3 ++- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6d2928d5..6acc5c6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1363,29 +1363,29 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "^1.0.1", + "cache-base": "2.0.2", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", + "mixin-deep": "2.0.1", "pascalcase": "^0.1.1" }, "dependencies": { "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", "requires": { - "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", - "get-value": "^2.0.6", + "unset-value": "^1.0.0", "has-value": "^1.0.0", - "isobject": "^3.0.1", + "collection-visit": "^1.0.0", "set-value": "^2.0.0", + "isobject": "^3.0.1", + "get-value": "^2.0.6", "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "union-value": "^1.0.0" } }, "define-property": { @@ -1431,9 +1431,9 @@ } }, "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" diff --git a/src/config.js b/src/config.js index 0f059fcd..dd674d37 100644 --- a/src/config.js +++ b/src/config.js @@ -35,7 +35,8 @@ async function generateJwt(profile, expiresIn = '2m') { } = profile; const jwtSigner = await jose.importJWK(jwk, 'Ed25519'); const infoClient = new Info(profile.url); - const { serverTs } = await infoClient.getInfo(); + const infoResp = await infoClient.getInfo(); + const serverTs = _.get(infoResp, 'serverTs', Date.now()); return new jose.SignJWT({}) .setProtectedHeader({ alg: 'EdDSA', kid: jwk.kid }) .setSubject(username) From 7043c0a5665c6a23b0eb27ffb7ab659210e92c6e Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 22 Feb 2022 06:16:28 +0000 Subject: [PATCH 556/864] fix: package.json & package-lock.json to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-URLPARSE-2407759 - https://snyk.io/vuln/SNYK-JS-URLPARSE-2407770 --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6acc5c6e..9dcf794b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1377,15 +1377,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", "requires": { + "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", - "unset-value": "^1.0.0", + "get-value": "^2.0.6", "has-value": "^1.0.0", - "collection-visit": "^1.0.0", - "set-value": "^2.0.0", "isobject": "^3.0.1", - "get-value": "^2.0.6", + "set-value": "^2.0.0", "to-object-path": "^0.3.0", - "union-value": "^1.0.0" + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "define-property": { @@ -7670,9 +7670,9 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz", - "integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==", + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.9.tgz", + "integrity": "sha512-HpOvhKBvre8wYez+QhHcYiVvVmeF6DVnuSOOPhe3cTum3BnqHhvKaZm8FU5yTiOu/Jut2ZpB2rA/SbBA1JIGlQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -7933,4 +7933,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index eb771a00..f3e3b518 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "prompt": "1.2.1", "semver": "7.3.5", "url-join": "4.0.1", - "url-parse": "1.5.4", + "url-parse": "1.5.9", "yauzl": "2.10.0" }, "devDependencies": { From 0badf0087633861322a649eb60dc78756bdaaaa9 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 22 Feb 2022 14:11:22 +0530 Subject: [PATCH 557/864] more filter, skip, sort, limit changes --- bin/cortex-actions.js | 4 ++++ bin/cortex-agents.js | 20 +++++++++++++++++--- bin/cortex-assessments.js | 7 +++++++ bin/cortex-skills.js | 5 +++++ src/client/actions.js | 8 +++++++- src/client/agents.js | 11 ++++++++++- src/client/assessments.js | 10 +++++++--- src/client/catalog.js | 22 +++++++++++++++++++--- src/commands/actions.js | 2 +- src/commands/agents.js | 9 +++++---- src/commands/assessments.js | 4 ++-- src/commands/skills.js | 2 +- 12 files changed, 85 insertions(+), 19 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 1d9fb982..1902d3ff 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -49,6 +49,10 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index adfcd202..3c2713b7 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -68,6 +68,10 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); @@ -167,8 +171,9 @@ program .option('--correlationId [string]', 'Query activations with same correlationId') .option('--status [status]', 'Filters activations by status [complete|error].') .option('--limit [limit]', 'Limit number of records', '100') - .option('--offset [offset]', 'Skip number of records', '0') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') + .option('--filter [filter]', 'A Mongo style filter to use.') .action(withCompatibilityCheck((options) => { try { new ListActivationsCommand(program).execute(options); @@ -183,10 +188,15 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .action(withCompatibilityCheck((agentName, options) => { + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + + .action(withCompatibilityCheck((agentName, options) => { try { new ListServicesCommand(program).execute(agentName, options); } catch (err) { @@ -218,6 +228,10 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index f99340ea..3427c5f4 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -86,6 +86,8 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListResourcesCommand(program).execute(options); @@ -128,6 +130,11 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .action(withCompatibilityCheck((options) => { try { new ListAssessmentCommand(program).execute(options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 967b9386..932874d6 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -101,6 +101,11 @@ program .option('--nostatus', 'skip extra call for skill status') .option('--noshared', 'do not list shared sills') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .action(withCompatibilityCheck((options) => { try { new ListSkillsCommand(program).execute(options); diff --git a/src/client/actions.js b/src/client/actions.js index 24ad8874..93396de9 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -57,13 +57,19 @@ module.exports = class Actions { .catch((err) => constructError(err)); } - listActions(projectId, token) { + listActions(projectId, token, filter, limit, skip, sort) { checkProject(projectId); debug('listActions() => %s', this.endpointV4(projectId)); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; return got .get(this.endpointV4(projectId), { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }).json() .then((actions) => actions) .catch((err) => constructError(err)); diff --git a/src/client/agents.js b/src/client/agents.js index 6b958845..815f0043 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -89,14 +89,23 @@ module.exports = class Agents { .catch((err) => constructError(err)); } - listAgentSnapshots(projectId, token, agentName) { + listAgentSnapshots(projectId, token, agentName, filter, limit, skip, sort) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agents/${encodeURIComponent(agentName)}/snapshots`; debug('listAgentSnapshots(%s) => %s', agentName, endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) { + query.sort = sort; + query.mongoRawSort = true; + } + if (skip) query.skip = skip; return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); diff --git a/src/client/assessments.js b/src/client/assessments.js index c2852708..0793ad8c 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -45,13 +45,15 @@ module.exports = class Assessments { .catch((err) => constructError(err)); } - queryResources(token, name, projectId, type, skip, limit) { + queryResources(token, name, projectId, type, skip, limit, filter, sort) { const url = `${this.endpointV4}/resources?${querystring.stringify({ projectId, name, type, skip, limit, + filter, + sort, })}`; debug('queryResources => %s', url); return got @@ -98,8 +100,10 @@ module.exports = class Assessments { .catch((err) => constructError(err)); } - listAssessment(token, skip, limit) { - const url = `${this.endpointV4}/assessments?${querystring.stringify({ skip, limit })}`; + listAssessment(token, skip, limit, filter, sort) { + const url = `${this.endpointV4}/assessments?${querystring.stringify({ + skip, limit, filter, sort, + })}`; debug('listAssessment => %s', url); return got .get(url, { diff --git a/src/client/catalog.js b/src/client/catalog.js index 09b247f3..f255144b 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -49,9 +49,14 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - listSkills(projectId, token, query) { + listSkills(projectId, token, query, filter, limit, skip, sort) { checkProject(projectId); debug('listSkills() => %s', this.endpoints.skills(projectId)); + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; + return got .get(this.endpoints.skills(projectId), { headers: { Authorization: `Bearer ${token}` }, @@ -126,24 +131,35 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - listAgents(projectId, token) { + listAgents(projectId, token, filter, limit, skip, sort) { checkProject(projectId); const endpoint = this.endpoints.agents(projectId); debug('listAgents() => %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }) .json() .then((agentResp) => ({ success: true, ...agentResp })) .catch((err) => constructError(err)); } - listServices(projectId, token, agentName) { + listServices(projectId, token, agentName, filter, limit, skip, sort) { // TODO removed profile should I use that as the URL ?? checkProject(projectId); debug('listServices() using describeAgent'); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; return this.describeAgent(projectId, token, agentName).then((response) => { if (response.success) { const urlBase = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/services`; diff --git a/src/commands/actions.js b/src/commands/actions.js index 75190b4f..36917307 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -34,7 +34,7 @@ module.exports.ListActionsCommand = class { debug('%s.executeListActions()', profile.name); const actions = new Actions(profile.url); - actions.listActions(options.project || profile.project, profile.token) + actions.listActions(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort) .then((response) => { if (response.success) { let result = response.actions; diff --git a/src/commands/agents.js b/src/commands/agents.js index f6734bbc..e5946839 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -75,7 +75,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { debug('%s.executeListAgents()', profile.name); const catalog = new Catalog(profile.url); - catalog.listAgents(options.project || profile.project, profile.token).then((response) => { + catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.agents; if (options.json) { @@ -243,8 +243,9 @@ module.exports.ListActivationsCommand = class { if (options.agentName) queryParams.agentName = options.agentName; if (options.skillName) queryParams.skillName = options.skillName; if (options.limit) queryParams.limit = options.limit; - if (options.offset) queryParams.offset = options.offset; + if (options.offset) queryParams.offset = options.skip; if (options.sort) queryParams.sort = _.toLower(options.sort); + if (options.filter) queryParams.sort = _.toLower(options.filter); agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { @@ -297,7 +298,7 @@ module.exports.ListServicesCommand = class ListServicesCommand { debug('%s.listServices(%s)', profile.name, agentName); const catalog = new Catalog(profile.url); - catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { + catalog.listServices(options.project || profile.project, profile.token, agentName, profile, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.services; if (options.json) { @@ -330,7 +331,7 @@ module.exports.ListAgentSnapshotsCommand = class { debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName) + agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, options.filter, options.limit, options.skip, options.sort) .then((response) => { if (response.success) { let result = response.result.snapshots; diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 9fbe8804..9c7e8d46 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -49,7 +49,7 @@ module.exports.ListResourcesCommand = class { debug('%s.ListResourcesCommand()', profile.name); const client = new Assessments(profile.url); - client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit) + client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, options.filter, options.sort) .then((response) => { if (response.success === false) throw response; if (options.json) { @@ -184,7 +184,7 @@ module.exports.ListAssessmentCommand = class { debug('%s.ListAssessmentCommand()', profile.name); const client = new Assessments(profile.url); - client.listAssessment(profile.token, options.skip, options.limit) + client.listAssessment(profile.token, options.skip, options.limit, options.filter, options.sort) .then((response) => { if (response.success === false) throw response; let result = response.data; diff --git a/src/commands/skills.js b/src/commands/skills.js index de9ac07a..3ba89fb8 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -99,7 +99,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { try { const status = !_.get(options, 'nostatus', false); // default show status, if nostatus==true status == false const shared = !_.get(options, 'noshared', false); - const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }); + const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort); if (response.success) { let result = response.skills; const tableFormat = LISTTABLEFORMAT; From b0fb1f762a607d52421a760164b748a0ca8d3290 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 22 Feb 2022 19:01:06 +0530 Subject: [PATCH 558/864] support for connections and types --- bin/cortex-connections.js | 8 ++++++++ bin/cortex-content.js | 4 ++++ bin/cortex-types.js | 4 ++++ src/client/catalog.js | 9 ++++++++- src/client/connections.js | 16 ++++++++++++++-- src/commands/connections.js | 4 ++-- src/commands/types.js | 2 +- 7 files changed, 41 insertions(+), 6 deletions(-) diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index dbd770c5..e891cba2 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -43,6 +43,10 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); @@ -96,6 +100,10 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListConnectionsTypes(program).execute(options); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index db5251e6..b977aa37 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -42,6 +42,10 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListContent(program).execute(options); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 8792f317..fb24bb7f 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -58,6 +58,10 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); diff --git a/src/client/catalog.js b/src/client/catalog.js index f255144b..470f3d4d 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -274,14 +274,21 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - listTypes(projectId, token) { + listTypes(projectId, token, filter, limit, skip, sort) { checkProject(projectId); const endpoint = `${this.endpoints.types(projectId)}`; debug('listTypes() => %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; + return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }) .json() .then((types) => ({ success: true, ...types })) diff --git a/src/client/connections.js b/src/client/connections.js index 092af11d..c373f5d7 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -24,14 +24,20 @@ module.exports = class Connections { this.cortexUrl = cortexUrl; } - listConnections(projectId, token) { + listConnections(projectId, token, filter, limit, skip, sort) { checkProject(projectId); const endpoint = `${this.endpoint(projectId)}`; debug('listConnections() => %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -80,13 +86,19 @@ module.exports = class Connections { .catch((err) => constructError(err)); } - listConnectionsTypes(token) { + listConnectionsTypes(token, filter, limit, skip, sort) { const endpoint = `${this.cortexUrl}/fabric/v4/connectiontypes`; debug('listConnectionsTypes() => %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); diff --git a/src/commands/connections.js b/src/commands/connections.js index 0d7eb119..efb598ba 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -35,7 +35,7 @@ module.exports.ListConnections = class ListConnections { debug('%s.listConnections()', profile.name); const conns = new Connections(profile.url); - conns.listConnections(options.project || profile.project, profile.token).then((response) => { + conns.listConnections(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.result.connections; @@ -187,7 +187,7 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { debug('%s.listConnectionsTypes()', profile.name); const conns = new Connections(profile.url); - conns.listConnectionsTypes(profile.token).then((response) => { + conns.listConnectionsTypes(profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.result.connectionTypes; diff --git a/src/commands/types.js b/src/commands/types.js index 5982453e..80b7e864 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -64,7 +64,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { debug('%s.executeListTypes()', profile.name); const catalog = new Catalog(profile.url); - catalog.listTypes(options.project || profile.project, profile.token).then((response) => { + catalog.listTypes(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.types; if (options.json) { From 5ef717b59c26fdfee6a9bbbbe6766a6cd749226a Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 23 Feb 2022 11:12:11 +0530 Subject: [PATCH 559/864] vuln fixes --- package-lock.json | 72 +++++++++++++++++++++++------------------------ package.json | 2 +- test.json | 6 ++++ 3 files changed, 43 insertions(+), 37 deletions(-) create mode 100644 test.json diff --git a/package-lock.json b/package-lock.json index 6acc5c6e..fff0b66e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1363,29 +1363,29 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "2.0.2", + "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", - "mixin-deep": "2.0.1", + "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "dependencies": { "cache-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { + "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", - "unset-value": "^1.0.0", + "get-value": "^2.0.6", "has-value": "^1.0.0", - "collection-visit": "^1.0.0", - "set-value": "^2.0.0", "isobject": "^3.0.1", - "get-value": "^2.0.6", + "set-value": "^2.0.0", "to-object-path": "^0.3.0", - "union-value": "^1.0.0" + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "define-property": { @@ -1431,9 +1431,9 @@ } }, "mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", + "version": "1.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -1617,8 +1617,8 @@ }, "cache-base": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha1-yfDNjbZYzF2fPbIIgoxHEp57SBQ=", "requires": { "@sellside/emitter": "^1.2.1", "collection-visit": "^1.0.0", @@ -3315,7 +3315,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { @@ -3794,7 +3794,7 @@ }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "^2.0.6", @@ -3804,7 +3804,7 @@ }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "^3.0.0", @@ -3813,7 +3813,7 @@ "dependencies": { "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" @@ -3821,7 +3821,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -3831,7 +3831,7 @@ }, "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "^1.1.5" @@ -4636,7 +4636,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { @@ -4674,7 +4674,7 @@ }, "lodash.truncate": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, @@ -5069,8 +5069,8 @@ }, "mixin-deep": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha1-mmlGvvSjaEAbeElwrjyqqmurAvo=", "dependencies": { "is-extendable": { "version": "1.0.1", @@ -5882,7 +5882,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { @@ -5899,7 +5899,7 @@ }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, @@ -6332,7 +6332,7 @@ }, "querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "queue-microtask": { @@ -6497,7 +6497,7 @@ }, "requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { @@ -7443,7 +7443,7 @@ }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "^3.0.2" @@ -7451,7 +7451,7 @@ "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -7670,9 +7670,9 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz", - "integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==", + "version": "1.5.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -7690,7 +7690,7 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, @@ -7933,4 +7933,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index eb771a00..9edbfc16 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "prompt": "1.2.1", "semver": "7.3.5", "url-join": "4.0.1", - "url-parse": "1.5.4", + "url-parse": "1.5.10", "yauzl": "2.10.0" }, "devDependencies": { diff --git a/test.json b/test.json new file mode 100644 index 00000000..d3583fb7 --- /dev/null +++ b/test.json @@ -0,0 +1,6 @@ +{ + "name": "type-5", + "title": "1", + "camel": "1.0.0", + "parameters": [{"name": "t2", "type": "string"}] +} From abb63a5f318326c14164e0118da9fd1d6cfc9c52 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy Date: Wed, 23 Feb 2022 17:41:07 +0530 Subject: [PATCH 560/864] Update action.json.hbs --- src/commands/assets/templates/skill/job/action.json.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/job/action.json.hbs b/src/commands/assets/templates/skill/job/action.json.hbs index fdf866ec..94fee092 100644 --- a/src/commands/assets/templates/skill/job/action.json.hbs +++ b/src/commands/assets/templates/skill/job/action.json.hbs @@ -3,5 +3,5 @@ "actionType":"job", "docker":"{{dashCase name}}:latest", "environmentVariables":"\"TEST\"=\"value\"", - "command": ["python", "/app/main.py"] + "command": ["scuttle","python", "/app/main.py"] } From 2c79c7329496bb61e930fb1f4a23566d263c1a07 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 24 Feb 2022 17:51:34 +0530 Subject: [PATCH 561/864] added support for filter, sort, limit, skip for list project, campaigns and missions --- bin/cortex-campaigns.js | 4 ++++ bin/cortex-missions.js | 4 ++++ bin/cortex-projects.js | 4 ++++ src/client/apiServerClient.js | 10 ++++++---- src/client/catalog.js | 9 ++++++++- src/commands/campaigns.js | 8 ++++++-- src/commands/projects.js | 5 +++-- 7 files changed, 35 insertions(+), 9 deletions(-) diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 3adea9f0..eea17fec 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -44,6 +44,10 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListCampaignsCommand(program).execute(options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index c97675eb..35d0ce8c 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -45,6 +45,10 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 0da030c6..72f3eedd 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -60,6 +60,10 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListProjectsCommand(program).execute(options); diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 56036e39..1b0ec325 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -33,9 +33,11 @@ module.exports = class ApiServerClient { * @param token * @return {Promise} */ - async listProjects(token) { + async listProjects(token, filter, limit, skip, sort) { const fetched = await this._client(token) - .request(gql`{ projects { name, title, description} }`); + .request(gql`{ + projects ( filter: "${filter}", limit: "${limit}", skip: "${skip}", sort: "${sort}" ) { name, title, description} } + `); return _.get(fetched, 'projects', []); } @@ -70,9 +72,9 @@ module.exports = class ApiServerClient { * @param token * @return {Promise} */ - async listCampaigns(projectId, token) { + async listCampaigns(projectId, token, filter, limit, skip, sort) { const fetched = await this._client(token) - .request(gql`{ campaigns ( project: "${projectId}" ) { name, title, description} }`); + .request(gql`{ campaigns ( project: "${projectId}", filter: "${filter}", limit: "${limit}", skip: "${skip}", sort: "${sort}" ) { name, title, description} }`); return _.get(fetched, 'campaigns', []); } diff --git a/src/client/catalog.js b/src/client/catalog.js index 470f3d4d..dcc5f0c8 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -402,14 +402,21 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - listMissions(projectId, token, campaign) { + listMissions(projectId, token, campaign, filter, limit, skip, sort) { checkProject(projectId); const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions`; debug('listMissions() => %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; + return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }) .json() .then((res) => ({ success: true, data: res })) diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index c5f27415..fb870fa2 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -34,7 +34,9 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { const cli = new ApiServerClient(profile.url); try { - const response = await cli.listCampaigns(options.project || profile.project, profile.token); + const sortParam = (options.sort || '{}').replace(/"/g, '\''); + const filterParam = (options.filter || '{}').replace(/"/g, '\''); + const response = await cli.listCampaigns(options.project || profile.project, profile.token, filterParam, options.limit, options.skip, sortParam); let result = response; if (options.json) { if (options.query) result = filterObject(result, options); @@ -212,7 +214,9 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { const cli = new Catalog(profile.url); try { - cli.listMissions(options.project || profile.project, profile.token, campaign).then((response) => { + const sortParam = (options.sort || '{}').replace(/"/g, '\''); + const filterParam = (options.filter || '{}').replace(/"/g, '\''); + cli.listMissions(options.project || profile.project, profile.token, campaign, filterParam, options.limit, options.skip, sortParam).then((response) => { if (response.success === false) throw response; let data = Object.values(response.data); if (options.json) { diff --git a/src/commands/projects.js b/src/commands/projects.js index 52b006ad..2b0e5868 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -61,10 +61,11 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListProjects()', profile.name); - const cli = new ApiServerClient(profile.url); try { - const response = await cli.listProjects(profile.token); + const sortParam = (options.sort || '{}').replace(/"/g, '\''); + const filterParam = (options.filter || '{}').replace(/"/g, '\''); + const response = await cli.listProjects(profile.token, filterParam, options.limit, options.skip, sortParam); let result = response; if (options.json) { if (options.query) result = filterObject(result, options); From 1550fa46d5e826e94f52b71488a313d009fce207 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Mar 2022 19:11:06 +0530 Subject: [PATCH 562/864] fix for filter and sort list-resources to go inside nested data --- src/commands/assessments.js | 11 ++++++++--- src/commands/skills.js | 2 +- src/commands/utils.js | 13 +++++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 9c7e8d46..3331a3c9 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -20,6 +20,7 @@ const _ = { sortBy: require('lodash/sortBy'), flatten: require('lodash/flatten'), compact: require('lodash/compact'), + startsWith: require('lodash/startsWith'), }; const debug = require('debug')('cortex:cli'); const moment = require('moment'); @@ -27,7 +28,7 @@ const { loadProfile } = require('../config'); const Assessments = require('../client/assessments'); const { - printSuccess, printError, parseObject, printTable, filterObject, + printSuccess, printError, parseObject, printTable, filterObject, transformDynamicParams, } = require('./utils'); const handleTable = (spec, data, transformer, noDataMessage) => { @@ -47,9 +48,13 @@ module.exports.ListResourcesCommand = class { const options = command; const profile = await loadProfile(options.profile); debug('%s.ListResourcesCommand()', profile.name); - + let transformedFilter; + let transformedSort; + // sanitize the params + if (options.filter) transformedFilter = transformDynamicParams(options.filter, 'resource.'); + if (options.sort) transformedSort = transformDynamicParams(options.sort, '_id.'); const client = new Assessments(profile.url); - client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, options.filter, options.sort) + client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, transformedFilter, transformedSort) .then((response) => { if (response.success === false) throw response; if (options.json) { diff --git a/src/commands/skills.js b/src/commands/skills.js index 3ba89fb8..fcdc8b44 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -119,7 +119,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { return printSuccess(JSON.stringify(result, null, 2), options); } return printTable(tableFormat, - _.sortBy(result, ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + _.sortBy(result, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); } return printError(`Failed to list skills: ${response.status} ${response.message}`, options); } catch (err) { diff --git a/src/commands/utils.js b/src/commands/utils.js index 3c524a53..45726c44 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -348,3 +348,16 @@ module.exports.EXTERNALROLESFORMAT = [ { column: 'Group', field: 'group' }, { column: 'Roles', field: 'roles' }, ]; + +// append relevant prefix to keys +module.exports.transformDynamicParams = (params, prefix) => { + const jsonParams = JSON.parse(params); + Object.keys(jsonParams) + .forEach((key) => { + if (!_.startsWith(prefix, key)) { + jsonParams[`${prefix}${key}`] = jsonParams[key]; + delete jsonParams[key]; + } + }); + return JSON.stringify(jsonParams); +}; From 430121bcc0dacf3197ad21a12a8f7ab502b6903b Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Mar 2022 19:30:45 +0530 Subject: [PATCH 563/864] consistent help text --- bin/cortex-actions.js | 4 ++-- bin/cortex-agents.js | 8 ++++---- bin/cortex-assessments.js | 8 ++++---- bin/cortex-campaigns.js | 4 ++-- bin/cortex-connections.js | 8 ++++---- bin/cortex-content.js | 4 ---- bin/cortex-experiments.js | 8 ++++---- bin/cortex-missions.js | 4 ++-- bin/cortex-models.js | 8 ++++---- bin/cortex-projects.js | 4 ++-- bin/cortex-skills.js | 4 ++-- bin/cortex-types.js | 4 ++-- 12 files changed, 32 insertions(+), 36 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 1902d3ff..495c3ebe 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -49,9 +49,9 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 3c2713b7..2b112b55 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -68,9 +68,9 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -228,9 +228,9 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records', '100') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((agentName, options) => { try { diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 3427c5f4..683ccdc3 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -80,13 +80,13 @@ program .option('--scope [projects]', 'Assessment scope projects (comma separated values)') .option('--name [Cortex component name]', 'Cortex component name (case insensitive regex/substring match)') .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') - .option('--skip [Skip records for pagination]', 'Skip records for pagination') - .option('--limit [Limit records for pagination]', 'Limit records for pagination') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -130,9 +130,9 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index eea17fec..6bac4215 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -44,9 +44,9 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index e891cba2..4e1d8bad 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -43,9 +43,9 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -100,9 +100,9 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-content.js b/bin/cortex-content.js index b977aa37..db5251e6 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -42,10 +42,6 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListContent(program).execute(options); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index b08be306..dd6b2dea 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -50,9 +50,9 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') - .option('--limit [limit]', 'Limit the number of experiments returned.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') .action(withCompatibilityCheck((options) => { try { new ListExperiments(program).execute(options); @@ -106,9 +106,9 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') - .option('--limit [limit]', 'Limit the number of experiments returned.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') .action(withCompatibilityCheck((experimentName, options) => { try { new ListRuns(program).execute(experimentName, options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 35d0ce8c..599b5045 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -45,9 +45,9 @@ program .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((campaignName, options) => { try { diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 0256faae..824d44fb 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -43,12 +43,12 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of models returned') .option('--tags [tags]', 'The tags to use (comma separated values)') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -173,9 +173,9 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of runs returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((modelName, options) => { try { diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 72f3eedd..15b34224 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -60,9 +60,9 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 932874d6..c036a6f5 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -101,9 +101,9 @@ program .option('--nostatus', 'skip extra call for skill status') .option('--noshared', 'do not list shared sills') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { diff --git a/bin/cortex-types.js b/bin/cortex-types.js index fb24bb7f..7e43e06f 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -58,9 +58,9 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--limit [limit]', 'Limit number of records') + .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { From a7397ecf61040b168df69c0c14b3d56ecd0648be Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Mar 2022 22:01:32 +0530 Subject: [PATCH 564/864] check for valid options --- bin/cortex-connections.js | 1 - bin/cortex-skills.js | 1 - bin/cortex-types.js | 1 - src/client/catalog.js | 6 +- src/client/connections.js | 3 +- src/commands/actions.js | 9 +++ src/commands/agents.js | 16 +++++- src/commands/assessments.js | 18 +++++- src/commands/campaigns.js | 19 ++++++- src/commands/connections.js | 18 +++++- src/commands/experiments.js | 17 +++++- src/commands/models.js | 16 +++++- src/commands/projects.js | 9 ++- src/commands/skills.js | 10 +++- src/commands/types.js | 11 +++- src/commands/utils.js | 106 ++++++++++++++++++++++++++++++++++++ 16 files changed, 239 insertions(+), 22 deletions(-) diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 4e1d8bad..a9f10b90 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -100,7 +100,6 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records') .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index c036a6f5..b99f0620 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -101,7 +101,6 @@ program .option('--nostatus', 'skip extra call for skill status') .option('--noshared', 'do not list shared sills') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records') .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 7e43e06f..51fe84b7 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -58,7 +58,6 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records') .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') diff --git a/src/client/catalog.js b/src/client/catalog.js index dcc5f0c8..ef6a0be7 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -49,10 +49,9 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - listSkills(projectId, token, query, filter, limit, skip, sort) { + listSkills(projectId, token, query, limit, skip, sort) { checkProject(projectId); debug('listSkills() => %s', this.endpoints.skills(projectId)); - if (filter) query.filter = filter; if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; @@ -274,12 +273,11 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - listTypes(projectId, token, filter, limit, skip, sort) { + listTypes(projectId, token, limit, skip, sort) { checkProject(projectId); const endpoint = `${this.endpoints.types(projectId)}`; debug('listTypes() => %s', endpoint); const query = {}; - if (filter) query.filter = filter; if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; diff --git a/src/client/connections.js b/src/client/connections.js index c373f5d7..1c8af482 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -86,11 +86,10 @@ module.exports = class Connections { .catch((err) => constructError(err)); } - listConnectionsTypes(token, filter, limit, skip, sort) { + listConnectionsTypes(token, limit, skip, sort) { const endpoint = `${this.cortexUrl}/fabric/v4/connectiontypes`; debug('listConnectionsTypes() => %s', endpoint); const query = {}; - if (filter) query.filter = filter; if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; diff --git a/src/commands/actions.js b/src/commands/actions.js index d97d4a95..ba0def3c 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -22,6 +22,8 @@ const Actions = require('../client/actions'); const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, + validateOptions, + OPTIONSTABLEFORMAT, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -29,11 +31,18 @@ module.exports.ListActionsCommand = class { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListActions()', profile.name); const actions = new Actions(profile.url); + const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Action list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } actions.listActions(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort) .then((response) => { if (response.success) { diff --git a/src/commands/agents.js b/src/commands/agents.js index e5946839..04b44c4a 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -23,7 +23,7 @@ const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -70,11 +70,18 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListAgents()', profile.name); const catalog = new Catalog(profile.url); + const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Agent list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.agents; @@ -326,11 +333,18 @@ module.exports.ListAgentSnapshotsCommand = class { this.program = program; } + // eslint-disable-next-line consistent-return async execute(agentName, options) { const profile = await loadProfile(options.profile); debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); + const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Snapshot list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, options.filter, options.limit, options.skip, options.sort) .then((response) => { if (response.success) { diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 3331a3c9..53bac9f9 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -29,6 +29,8 @@ const Assessments = require('../client/assessments'); const { printSuccess, printError, parseObject, printTable, filterObject, transformDynamicParams, + validateOptions, + OPTIONSTABLEFORMAT, } = require('./utils'); const handleTable = (spec, data, transformer, noDataMessage) => { @@ -44,16 +46,23 @@ module.exports.ListResourcesCommand = class { this.program = program; } + // eslint-disable-next-line consistent-return async execute(command) { const options = command; const profile = await loadProfile(options.profile); debug('%s.ListResourcesCommand()', profile.name); let transformedFilter; let transformedSort; - // sanitize the params + // add prefixes to the keys to query inside nested targetPath if (options.filter) transformedFilter = transformDynamicParams(options.filter, 'resource.'); if (options.sort) transformedSort = transformDynamicParams(options.sort, '_id.'); const client = new Assessments(profile.url); + const { validOptions, errorDetails } = validateOptions(options, 'RESOURCE'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Resource list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, transformedFilter, transformedSort) .then((response) => { if (response.success === false) throw response; @@ -184,11 +193,18 @@ module.exports.ListAssessmentCommand = class { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.ListAssessmentCommand()', profile.name); const client = new Assessments(profile.url); + const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Assessment list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } client.listAssessment(profile.token, options.skip, options.limit, options.filter, options.sort) .then((response) => { if (response.success === false) throw response; diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index fb870fa2..1e736c08 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -20,7 +20,7 @@ const Catalog = require('../client/catalog'); const _ = { get: require('lodash/get') }; const { - printSuccess, printError, filterObject, printTable, + printSuccess, printError, filterObject, printTable, validateOptions, OPTIONSTABLEFORMAT, } = require('./utils'); module.exports.ListCampaignsCommand = class ListCampaignsCommand { @@ -28,10 +28,16 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListCampaigns()', profile.name); - + const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Campaign list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } const cli = new ApiServerClient(profile.url); try { const sortParam = (options.sort || '{}').replace(/"/g, '\''); @@ -207,12 +213,19 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { this.program = program; } + // eslint-disable-next-line consistent-return async execute(campaign, cmd) { const options = cmd; const profile = await loadProfile(options.profile); + + const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Mission list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } debug('%s.executeListMissionsCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - try { const sortParam = (options.sort || '{}').replace(/"/g, '\''); const filterParam = (options.filter || '{}').replace(/"/g, '\''); diff --git a/src/commands/connections.js b/src/commands/connections.js index efb598ba..7cf6adcd 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -23,6 +23,8 @@ const Content = require('../client/content'); const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, CONNECTIONTABLEFORMAT, fileExists, + validateOptions, + OPTIONSTABLEFORMAT, } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -30,11 +32,18 @@ module.exports.ListConnections = class ListConnections { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listConnections()', profile.name); const conns = new Connections(profile.url); + const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Connection list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } conns.listConnections(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.result.connections; @@ -182,12 +191,19 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listConnectionsTypes()', profile.name); const conns = new Connections(profile.url); - conns.listConnectionsTypes(profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { + const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION_TYPE'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Connection-types list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } + conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.result.connectionTypes; diff --git a/src/commands/experiments.js b/src/commands/experiments.js index cd307907..8c3989df 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -22,6 +22,8 @@ const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, DEPENDENCYTABLEFORMAT, + validateOptions, + OPTIONSTABLEFORMAT, } = require('./utils'); class ListExperiments { @@ -29,11 +31,18 @@ class ListExperiments { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); + const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Experiment list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let { result } = response; @@ -118,13 +127,19 @@ class ListRuns { this.program = program; } + // eslint-disable-next-line consistent-return async execute(experimentName, options) { const profile = await loadProfile(options.profile); debug('%s.listRuns()', profile.name); const exp = new Experiments(profile.url); const sort = options.sort || JSON.stringify({ startTime: -1 }); - + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Experiment-runs list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort, options.skip).then((response) => { if (response.success) { let { result } = response; diff --git a/src/commands/models.js b/src/commands/models.js index 21751e4d..53acebd6 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -24,7 +24,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Models = require('../client/models'); const Experiments = require('../client/experiments'); -const { LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT } = require('./utils'); +const { LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT} = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, @@ -75,10 +75,17 @@ module.exports.ListModelsCommand = class ListModelsCommand { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); + const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Model list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } models.listModels(options.project || profile.project, options.skip, options.limit, options.filter, options.sort, options.tags, profile.token).then((response) => { if (response.success) { let result = response.models; @@ -105,10 +112,17 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { this.program = program; } + // eslint-disable-next-line consistent-return async execute(modelName, options) { const profile = await loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Model-runs list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } models.listModelRuns(options.project || profile.project, modelName, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.runs; diff --git a/src/commands/projects.js b/src/commands/projects.js index 2b0e5868..d5e56da5 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, validateOptions, OPTIONSTABLEFORMAT, } = require('./utils'); module.exports.CreateProjectCommand = class CreateProjectCommand { @@ -58,9 +58,16 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListProjects()', profile.name); + const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Project list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } const cli = new ApiServerClient(profile.url); try { const sortParam = (options.sort || '{}').replace(/"/g, '\''); diff --git a/src/commands/skills.js b/src/commands/skills.js index fcdc8b44..57ed59c2 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -23,7 +23,7 @@ const Agent = require('../client/agents'); const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, validateOptions, OPTIONSTABLEFORMAT, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { @@ -99,7 +99,13 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { try { const status = !_.get(options, 'nostatus', false); // default show status, if nostatus==true status == false const shared = !_.get(options, 'noshared', false); - const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort); + const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Skill list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } + const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }, options.limit, options.skip, options.sort); if (response.success) { let result = response.skills; const tableFormat = LISTTABLEFORMAT; diff --git a/src/commands/types.js b/src/commands/types.js index 80b7e864..5eb2e650 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { LISTTABLEFORMAT, filterObject } = require('./utils'); +const { LISTTABLEFORMAT, filterObject, validateOptions, OPTIONSTABLEFORMAT} = require('./utils'); const { printSuccess, printError, parseObject, printTable, @@ -59,12 +59,19 @@ module.exports.ListTypesCommand = class ListTypesCommand { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListTypes()', profile.name); const catalog = new Catalog(profile.url); - catalog.listTypes(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { + const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Type list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } + catalog.listTypes(options.project || profile.project, profile.token, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.types; if (options.json) { diff --git a/src/commands/utils.js b/src/commands/utils.js index 45726c44..5a6d57b5 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -321,6 +321,11 @@ module.exports.DEPENDENCYTABLEFORMAT = [ { column: 'Dependency Type', field: 'type', width: 40 }, ]; +module.exports.OPTIONSTABLEFORMAT = [ + { column: 'Option Type', field: 'type', width: 20 }, + { column: 'Message', field: 'message', width: 120 }, +]; + module.exports.RUNTABLEFORMAT = [ { column: 'Run ID', field: 'runId', width: 30 }, { column: 'Experiment Name', field: 'experimentName', width: 40 }, @@ -361,3 +366,104 @@ module.exports.transformDynamicParams = (params, prefix) => { }); return JSON.stringify(jsonParams); }; + +const ALLOWED_QUERY_FIELDS = { + SKILL: { + sort: ['name', 'title', 'description', 'createdAt', 'createdBy'], + }, + AGENT: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + ACTION: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + SNAPSHOT: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + RESOURCE: { + filter: ['resourceName', 'resourceTitle', 'resourceType', '_projectId'], + sort: ['resourceName', 'resourceTitle', 'resourceType', '_projectId'], + }, + ASSESSMENT: { + filter: ['name', 'title', 'componentName', 'reportCount', '_createdBy'], + sort: ['name', 'title', 'componentName', 'reportCount', '_createdBy', '_createdAt', '_updatedAt'], + }, + CAMPAIGN: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + MISSION: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + CONNECTION: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + CONNECTION_TYPE: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + EXPERIMENT: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + RUN: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + MODEL: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + PROJECT: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, + TYPE: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], + }, +}; + +module.exports.validateOptions = (options, type) => { + const { + filter, limit, skip, sort, + } = options; + const errorDetails = []; + if (filter) { + try { + const filterObj = JSON.parse(filter); + if ((_.intersection(ALLOWED_QUERY_FIELDS[type].filter, Object.keys(filterObj))).length !== Object.keys(filterObj).length) { + errorDetails.push({ type: 'filter', message: `Invalid field present.Allowed fields: ${ALLOWED_QUERY_FIELDS[type].filter}` }); + } + } catch (err) { + errorDetails.push({ type: 'filter', message: `Invalid filter expression: ${err.message}` }); + } + } + if (sort) { + try { + const sortObj = JSON.parse(sort); + if ((_.intersection(ALLOWED_QUERY_FIELDS[type].sort, Object.keys(sortObj))).length !== Object.keys(sortObj).length) { + errorDetails.push({ type: 'sort', message: `Invalid field present. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].sort}` }); + } + } catch (err) { + errorDetails.push({ type: 'sort', message: `Invalid sort expression: ${err.message}` }); + } + } + if ((limit && _.isNaN(Number(limit))) || limit <= 0) { + errorDetails.push({ type: 'limit', message: 'Invalid limit, limit should be a valid positive number' }); + } + if ((skip && _.isNaN(Number(skip))) || skip < 0) { + errorDetails.push({ type: 'skip', message: 'Invalid skip, skip should be a valid non negative number' }); + } + if (errorDetails.length) { + return { validOptions: false, errorDetails }; + } + return { + validOptions: true, errorDetails, + }; +}; From 9524a76732996b8c6630c5aeddd37b1fc4521a1d Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 9 Mar 2022 22:04:21 +0530 Subject: [PATCH 565/864] lint fix --- src/commands/models.js | 4 +++- src/commands/types.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/commands/models.js b/src/commands/models.js index 53acebd6..8c7e9484 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -24,7 +24,9 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Models = require('../client/models'); const Experiments = require('../client/experiments'); -const { LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT} = require('./utils'); +const { + LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, +} = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, diff --git a/src/commands/types.js b/src/commands/types.js index 5eb2e650..e7187e78 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -19,7 +19,9 @@ const debug = require('debug')('cortex:cli'); const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); -const { LISTTABLEFORMAT, filterObject, validateOptions, OPTIONSTABLEFORMAT} = require('./utils'); +const { + LISTTABLEFORMAT, filterObject, validateOptions, OPTIONSTABLEFORMAT, +} = require('./utils'); const { printSuccess, printError, parseObject, printTable, From efca2cb5aef91a52176cc3652bceed1ea2c77b2e Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 10 Mar 2022 11:00:45 +0530 Subject: [PATCH 566/864] check for valid sort option --- src/commands/utils.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 5a6d57b5..6d4a41f5 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -447,7 +447,12 @@ module.exports.validateOptions = (options, type) => { if (sort) { try { const sortObj = JSON.parse(sort); - if ((_.intersection(ALLOWED_QUERY_FIELDS[type].sort, Object.keys(sortObj))).length !== Object.keys(sortObj).length) { + const sortKeys = Object.keys(sortObj); + const sortValues = Object.values(sortObj); + if (!sortValues.every((val) => Number(val) === 1 || Number(val) === -1)) { + errorDetails.push({ type: 'sort', message: 'Sort values can only be 1(ascending) or -1(descending)' }); + } + if ((_.intersection(ALLOWED_QUERY_FIELDS[type].sort, sortKeys)).length !== sortKeys.length) { errorDetails.push({ type: 'sort', message: `Invalid field present. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].sort}` }); } } catch (err) { From 702ada0dc25f910907e5ae56d59f22f2677547ae Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 10 Mar 2022 18:33:22 +0530 Subject: [PATCH 567/864] code refactor --- src/commands/assessments.js | 13 +++--- src/commands/utils.js | 89 +++++-------------------------------- src/constants.js | 63 ++++++++++++++++++++++++++ src/parsers.js | 15 ++++++- 4 files changed, 97 insertions(+), 83 deletions(-) create mode 100644 src/constants.js diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 53bac9f9..84a61758 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -28,11 +28,14 @@ const { loadProfile } = require('../config'); const Assessments = require('../client/assessments'); const { - printSuccess, printError, parseObject, printTable, filterObject, transformDynamicParams, - validateOptions, - OPTIONSTABLEFORMAT, + printSuccess, printError, parseObject, printTable, filterObject, + validateOptions, OPTIONSTABLEFORMAT, } = require('./utils'); +const { + transformDynamicParams, +} = require('../parsers'); + const handleTable = (spec, data, transformer, noDataMessage) => { if (!data || data.length === 0) { printSuccess(noDataMessage); @@ -54,8 +57,6 @@ module.exports.ListResourcesCommand = class { let transformedFilter; let transformedSort; // add prefixes to the keys to query inside nested targetPath - if (options.filter) transformedFilter = transformDynamicParams(options.filter, 'resource.'); - if (options.sort) transformedSort = transformDynamicParams(options.sort, '_id.'); const client = new Assessments(profile.url); const { validOptions, errorDetails } = validateOptions(options, 'RESOURCE'); if (!validOptions) { @@ -63,6 +64,8 @@ module.exports.ListResourcesCommand = class { printError('Resource list failed.', options, false); return printTable(optionTableFormat, errorDetails); } + if (options.filter) transformedFilter = transformDynamicParams(options.filter, 'resource.'); + if (options.sort) transformedSort = transformDynamicParams(options.sort, '_id.'); client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, transformedFilter, transformedSort) .then((response) => { if (response.success === false) throw response; diff --git a/src/commands/utils.js b/src/commands/utils.js index 6d4a41f5..d6b3cbdb 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -26,6 +26,7 @@ const os = require('os'); const path = require('path'); const yaml = require('js-yaml'); const { exec } = require('child_process'); +const { ALLOWED_QUERY_FIELDS } = require('../constants'); module.exports.constructError = (error) => { // fallback to text in message or standard error message @@ -354,79 +355,12 @@ module.exports.EXTERNALROLESFORMAT = [ { column: 'Roles', field: 'roles' }, ]; -// append relevant prefix to keys -module.exports.transformDynamicParams = (params, prefix) => { - const jsonParams = JSON.parse(params); - Object.keys(jsonParams) - .forEach((key) => { - if (!_.startsWith(prefix, key)) { - jsonParams[`${prefix}${key}`] = jsonParams[key]; - delete jsonParams[key]; - } - }); - return JSON.stringify(jsonParams); -}; - -const ALLOWED_QUERY_FIELDS = { - SKILL: { - sort: ['name', 'title', 'description', 'createdAt', 'createdBy'], - }, - AGENT: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - ACTION: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - SNAPSHOT: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - RESOURCE: { - filter: ['resourceName', 'resourceTitle', 'resourceType', '_projectId'], - sort: ['resourceName', 'resourceTitle', 'resourceType', '_projectId'], - }, - ASSESSMENT: { - filter: ['name', 'title', 'componentName', 'reportCount', '_createdBy'], - sort: ['name', 'title', 'componentName', 'reportCount', '_createdBy', '_createdAt', '_updatedAt'], - }, - CAMPAIGN: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - MISSION: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - CONNECTION: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - CONNECTION_TYPE: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - EXPERIMENT: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - RUN: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - MODEL: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - PROJECT: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, - TYPE: { - filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy'], - }, +module.exports.handleTable = (spec, data, transformer, noDataMessage) => { + if (!data || data.length === 0) { + this.printSuccess(noDataMessage); + } else { + this.printTable(spec, data, transformer); + } }; module.exports.validateOptions = (options, type) => { @@ -437,8 +371,9 @@ module.exports.validateOptions = (options, type) => { if (filter) { try { const filterObj = JSON.parse(filter); - if ((_.intersection(ALLOWED_QUERY_FIELDS[type].filter, Object.keys(filterObj))).length !== Object.keys(filterObj).length) { - errorDetails.push({ type: 'filter', message: `Invalid field present.Allowed fields: ${ALLOWED_QUERY_FIELDS[type].filter}` }); + const filterKeys = Object.keys(filterObj); + if ((_.intersection(ALLOWED_QUERY_FIELDS[type].filter, filterKeys)).length !== filterKeys.length) { + errorDetails.push({ type: 'filter', message: `Invalid field present. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].filter}` }); } } catch (err) { errorDetails.push({ type: 'filter', message: `Invalid filter expression: ${err.message}` }); @@ -459,10 +394,10 @@ module.exports.validateOptions = (options, type) => { errorDetails.push({ type: 'sort', message: `Invalid sort expression: ${err.message}` }); } } - if ((limit && _.isNaN(Number(limit))) || limit <= 0) { + if ((limit && _.isNaN(Number(limit))) || Number(limit) <= 0) { errorDetails.push({ type: 'limit', message: 'Invalid limit, limit should be a valid positive number' }); } - if ((skip && _.isNaN(Number(skip))) || skip < 0) { + if ((skip && _.isNaN(Number(skip))) || Number(skip) < 0) { errorDetails.push({ type: 'skip', message: 'Invalid skip, skip should be a valid non negative number' }); } if (errorDetails.length) { diff --git a/src/constants.js b/src/constants.js new file mode 100644 index 00000000..269a489f --- /dev/null +++ b/src/constants.js @@ -0,0 +1,63 @@ +// ToDo: move to cortex-express-common when adding server side validations FAB-4008 +module.exports.ALLOWED_QUERY_FIELDS = { + SKILL: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'createdBy'], + }, + AGENT: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'createdBy'], + }, + ACTION: { + filter: ['name', 'title', 'type', 'image', 'description', 'createdBy'], + sort: ['name', 'title', 'type', 'image', 'description', 'createdAt', 'createdBy'], + }, + SNAPSHOT: { + filter: ['snapshotId', 'title', '_isTip', '_createdBy'], + sort: ['snapshotId', 'title', '_isTip', '_createdAt', '_createdBy'], + }, + ASSESSMENT: { + filter: ['name', 'title', 'componentName', 'reportCount', '_createdBy'], + sort: ['name', 'title', 'componentName', 'reportCount', '_createdBy', '_updatedAt'], + }, + TYPE: { + filter: ['name', 'title', 'description', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'createdBy'], + }, + CONNECTION: { + filter: ['name', 'title', 'description', 'createdBy', 'connectionType', 'allowWrite', 'contentType'], + sort: ['name', 'title', 'description', 'createdAt', 'connectionType', 'allowWrite', 'contentType'], + }, + CONNECTION_TYPE: { + filter: ['name', 'title', 'description', 'type', 'group'], + sort: ['name', 'title', 'description', 'type', 'group'], + }, + RESOURCE: { + filter: ['name', 'title', 'type', '_projectId'], + sort: ['resourceName', 'resourceTitle', 'resourceType', '_projectId'], + }, + EXPERIMENT: { + filter: ['name', 'title', 'description', 'modelId'], + sort: ['name', 'title', 'description', 'modelId', 'createdAt', 'updatedAt'], + }, + RUN: { + filter: ['runId', 'title', '_createdAt', 'startTime', 'endTime', 'took', 'experimentName'], + sort: ['runId', 'title', '_createdAt', 'startTime', 'endTime', 'took', 'experimentName'], + }, + MODEL: { + filter: ['name', 'title', 'description', 'createdBy', 'type', 'status'], + sort: ['name', 'title', 'description', 'createdAt', 'updatedAt', 'createdBy', 'type', 'status'], + }, + CAMPAIGN: { + filter: ['name', 'title', 'description', '_createdBy', 'lifecycleState'], + sort: ['name', 'title', 'description', '_createdAt', '_createdBy', 'lifecycleState'], + }, + MISSION: { + filter: ['name', 'title', 'description', '_createdBy', 'lifecycleState'], + sort: ['name', 'title', 'description', '_createdAt', '_createdBy', 'lifecycleState'], + }, + PROJECT: { + filter: ['name', 'title', 'description'], + sort: ['name', 'title', 'description', '_createdAt'], + }, +}; diff --git a/src/parsers.js b/src/parsers.js index f72c297a..1ee18de8 100644 --- a/src/parsers.js +++ b/src/parsers.js @@ -35,6 +35,19 @@ function nonEmptyStringParser(opts) { }; } +// append relevant prefix to keys +function transformDynamicParams(params, prefix) { + const jsonParams = JSON.parse(params); + Object.keys(jsonParams) + .forEach((key) => { + if (!_.startsWith(prefix, key)) { + jsonParams[`${prefix}${key}`] = jsonParams[key]; + delete jsonParams[key]; + } + }); + return JSON.stringify(jsonParams); +} + module.exports = { - nonEmptyStringParser, + nonEmptyStringParser, transformDynamicParams, }; From a590793b52ed99184b54db4cb1cd60579797faca Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 10 Mar 2022 19:00:13 +0530 Subject: [PATCH 568/864] typo --- src/commands/assessments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 84a61758..30412b3e 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -56,7 +56,6 @@ module.exports.ListResourcesCommand = class { debug('%s.ListResourcesCommand()', profile.name); let transformedFilter; let transformedSort; - // add prefixes to the keys to query inside nested targetPath const client = new Assessments(profile.url); const { validOptions, errorDetails } = validateOptions(options, 'RESOURCE'); if (!validOptions) { @@ -64,6 +63,7 @@ module.exports.ListResourcesCommand = class { printError('Resource list failed.', options, false); return printTable(optionTableFormat, errorDetails); } + // add prefixes to the keys to query inside nested targetPath if (options.filter) transformedFilter = transformDynamicParams(options.filter, 'resource.'); if (options.sort) transformedSort = transformDynamicParams(options.sort, '_id.'); client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, transformedFilter, transformedSort) From f6445c8ee1483a593c3fd29f915e75bbabd67ef6 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 11 Mar 2022 21:55:01 +0530 Subject: [PATCH 569/864] added test cases --- src/commands/utils.js | 15 +++- test/cmdUtils.js | 205 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 216 insertions(+), 4 deletions(-) create mode 100644 test/cmdUtils.js diff --git a/src/commands/utils.js b/src/commands/utils.js index d6b3cbdb..f7e46802 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -363,6 +363,7 @@ module.exports.handleTable = (spec, data, transformer, noDataMessage) => { } }; +// Todo: move to cortex-express-common FAB-4008 module.exports.validateOptions = (options, type) => { const { filter, limit, skip, sort, @@ -372,8 +373,11 @@ module.exports.validateOptions = (options, type) => { try { const filterObj = JSON.parse(filter); const filterKeys = Object.keys(filterObj); - if ((_.intersection(ALLOWED_QUERY_FIELDS[type].filter, filterKeys)).length !== filterKeys.length) { - errorDetails.push({ type: 'filter', message: `Invalid field present. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].filter}` }); + if (typeof (filterObj) !== 'object') { + errorDetails.push({ type: 'filter', message: 'Invalid filter expression' }); + } + if (type && (_.intersection(ALLOWED_QUERY_FIELDS[type].filter, filterKeys)).length !== filterKeys.length) { + errorDetails.push({ type: 'filter', message: `Invalid filter params. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].filter}` }); } } catch (err) { errorDetails.push({ type: 'filter', message: `Invalid filter expression: ${err.message}` }); @@ -384,11 +388,14 @@ module.exports.validateOptions = (options, type) => { const sortObj = JSON.parse(sort); const sortKeys = Object.keys(sortObj); const sortValues = Object.values(sortObj); + if (typeof (sortObj) !== 'object') { + errorDetails.push({ type: 'sort', message: 'Invalid sort expression' }); + } if (!sortValues.every((val) => Number(val) === 1 || Number(val) === -1)) { errorDetails.push({ type: 'sort', message: 'Sort values can only be 1(ascending) or -1(descending)' }); } - if ((_.intersection(ALLOWED_QUERY_FIELDS[type].sort, sortKeys)).length !== sortKeys.length) { - errorDetails.push({ type: 'sort', message: `Invalid field present. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].sort}` }); + if (type && (_.intersection(ALLOWED_QUERY_FIELDS[type].sort, sortKeys)).length !== sortKeys.length) { + errorDetails.push({ type: 'sort', message: `Invalid sort params. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].sort}` }); } } catch (err) { errorDetails.push({ type: 'sort', message: `Invalid sort expression: ${err.message}` }); diff --git a/test/cmdUtils.js b/test/cmdUtils.js new file mode 100644 index 00000000..80db926f --- /dev/null +++ b/test/cmdUtils.js @@ -0,0 +1,205 @@ +const assert = require('assert'); + +const { validateOptions } = require('../src/commands/utils'); + +describe('List command limit option check', () => { + it('should accept a positive integer', () => { + const options = { + limit: 5, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + + it('should accept a number string', () => { + const options = { + limit: '5', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + + it('should not accept value less than 1', () => { + const options = { + limit: -1, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); + }); + + it('should not accept a non-number string', () => { + const options = { + limit: 'hello-world', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); + }); + + it('should not accept other data-types', () => { + const options = { + limit: { hello: 'world' }, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); + }); +}); + +describe('List command skip option check', () => { + it('should accept a positive integer', () => { + const options = { + skip: 5, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + + it('should accept a number string', () => { + const options = { + skip: '5', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + + it('should not accept a non positive limit value', () => { + const options = { + skip: -1, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); + }); + + it('should not accept a non-number string', () => { + const options = { + skip: 'hello-world', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); + }); + + it('should not accept other data-types', () => { + const options = { + skip: { hello: 'world' }, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); + }); +}); + +describe('List command filter option check', () => { + it('should accept a valid json string', () => { + const options = { + filter: '{"name": "test-name"}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + it('should not accept an invalid json', () => { + const options = { + filter: '{"name": "name-1}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); + }); + + it('should not accept a number field', () => { + const options = { + filter: 5, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); + }); + + it('should not accept a non json string', () => { + const options = { + filter: 'hello-world', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); + }); +}); + +describe('List command sort option check', () => { + it('should accept a valid json string with a stringified number value', () => { + const options = { + sort: '{"name": "1"}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + it('should accept a valid json string with a number value', () => { + const options = { + sort: '{"name": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid skip'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + it('should not accept a key with value other than 1 or -1', () => { + const options = { + sort: '{"name": 0}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Valid skip'); + assert.ok(JSON.stringify(errorDetails) + .includes('Sort values can only be 1(ascending) or -1(descending)') === true, 'Is invalid skip'); + }); + it('should not accept an invalid json', () => { + const options = { + sort: '{"name": "name-1}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails) + .includes('Invalid sort expression') === true, 'Is invalid filter'); + }); + + it('should not accept a number field', () => { + const options = { + sort: 5, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails) + .includes('Invalid sort expression') === true, 'Is invalid filter'); + }); + + it('should fail with non json string', () => { + const options = { + sort: 'hello-world', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails) + .includes('Invalid sort expression') === true, 'Is invalid skip'); + }); +}); + +describe('List model command option check', () => { + it('list valid command options', () => { + const options = { + filter: '{"name1": "name-1"}', + sort: '{"name2": 1}', + limit: -1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid filter params') === true, 'Is invalid filter'); + }); +}); From e4f8943bad44c0e4d7ffd872add51c8e12e07f28 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 11 Mar 2022 22:16:37 +0530 Subject: [PATCH 570/864] renaming file --- test/listOptions.js | 205 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 test/listOptions.js diff --git a/test/listOptions.js b/test/listOptions.js new file mode 100644 index 00000000..80db926f --- /dev/null +++ b/test/listOptions.js @@ -0,0 +1,205 @@ +const assert = require('assert'); + +const { validateOptions } = require('../src/commands/utils'); + +describe('List command limit option check', () => { + it('should accept a positive integer', () => { + const options = { + limit: 5, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + + it('should accept a number string', () => { + const options = { + limit: '5', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + + it('should not accept value less than 1', () => { + const options = { + limit: -1, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); + }); + + it('should not accept a non-number string', () => { + const options = { + limit: 'hello-world', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); + }); + + it('should not accept other data-types', () => { + const options = { + limit: { hello: 'world' }, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); + }); +}); + +describe('List command skip option check', () => { + it('should accept a positive integer', () => { + const options = { + skip: 5, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + + it('should accept a number string', () => { + const options = { + skip: '5', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + + it('should not accept a non positive limit value', () => { + const options = { + skip: -1, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); + }); + + it('should not accept a non-number string', () => { + const options = { + skip: 'hello-world', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); + }); + + it('should not accept other data-types', () => { + const options = { + skip: { hello: 'world' }, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); + }); +}); + +describe('List command filter option check', () => { + it('should accept a valid json string', () => { + const options = { + filter: '{"name": "test-name"}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + it('should not accept an invalid json', () => { + const options = { + filter: '{"name": "name-1}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); + }); + + it('should not accept a number field', () => { + const options = { + filter: 5, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); + }); + + it('should not accept a non json string', () => { + const options = { + filter: 'hello-world', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); + }); +}); + +describe('List command sort option check', () => { + it('should accept a valid json string with a stringified number value', () => { + const options = { + sort: '{"name": "1"}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + it('should accept a valid json string with a number value', () => { + const options = { + sort: '{"name": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === true, 'Valid skip'); + assert.ok(errorDetails.length === 0, 'has no errors'); + }); + it('should not accept a key with value other than 1 or -1', () => { + const options = { + sort: '{"name": 0}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Valid skip'); + assert.ok(JSON.stringify(errorDetails) + .includes('Sort values can only be 1(ascending) or -1(descending)') === true, 'Is invalid skip'); + }); + it('should not accept an invalid json', () => { + const options = { + sort: '{"name": "name-1}', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails) + .includes('Invalid sort expression') === true, 'Is invalid filter'); + }); + + it('should not accept a number field', () => { + const options = { + sort: 5, + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails) + .includes('Invalid sort expression') === true, 'Is invalid filter'); + }); + + it('should fail with non json string', () => { + const options = { + sort: 'hello-world', + }; + const { validOptions, errorDetails } = validateOptions(options); + assert.ok(validOptions === false, 'Invalid skip'); + assert.ok(JSON.stringify(errorDetails) + .includes('Invalid sort expression') === true, 'Is invalid skip'); + }); +}); + +describe('List model command option check', () => { + it('list valid command options', () => { + const options = { + filter: '{"name1": "name-1"}', + sort: '{"name2": 1}', + limit: -1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes('Invalid filter params') === true, 'Is invalid filter'); + }); +}); From 1d98651a61a676fa9b1c3ce56026a2ee9037c3e4 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 11 Mar 2022 22:16:45 +0530 Subject: [PATCH 571/864] renaming file --- test/cmdUtils.js | 205 ----------------------------------------------- 1 file changed, 205 deletions(-) delete mode 100644 test/cmdUtils.js diff --git a/test/cmdUtils.js b/test/cmdUtils.js deleted file mode 100644 index 80db926f..00000000 --- a/test/cmdUtils.js +++ /dev/null @@ -1,205 +0,0 @@ -const assert = require('assert'); - -const { validateOptions } = require('../src/commands/utils'); - -describe('List command limit option check', () => { - it('should accept a positive integer', () => { - const options = { - limit: 5, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - - it('should accept a number string', () => { - const options = { - limit: '5', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - - it('should not accept value less than 1', () => { - const options = { - limit: -1, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); - }); - - it('should not accept a non-number string', () => { - const options = { - limit: 'hello-world', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); - }); - - it('should not accept other data-types', () => { - const options = { - limit: { hello: 'world' }, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); - }); -}); - -describe('List command skip option check', () => { - it('should accept a positive integer', () => { - const options = { - skip: 5, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - - it('should accept a number string', () => { - const options = { - skip: '5', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - - it('should not accept a non positive limit value', () => { - const options = { - skip: -1, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); - }); - - it('should not accept a non-number string', () => { - const options = { - skip: 'hello-world', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); - }); - - it('should not accept other data-types', () => { - const options = { - skip: { hello: 'world' }, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); - }); -}); - -describe('List command filter option check', () => { - it('should accept a valid json string', () => { - const options = { - filter: '{"name": "test-name"}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - it('should not accept an invalid json', () => { - const options = { - filter: '{"name": "name-1}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); - }); - - it('should not accept a number field', () => { - const options = { - filter: 5, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); - }); - - it('should not accept a non json string', () => { - const options = { - filter: 'hello-world', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); - }); -}); - -describe('List command sort option check', () => { - it('should accept a valid json string with a stringified number value', () => { - const options = { - sort: '{"name": "1"}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - it('should accept a valid json string with a number value', () => { - const options = { - sort: '{"name": -1}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid skip'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - it('should not accept a key with value other than 1 or -1', () => { - const options = { - sort: '{"name": 0}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Valid skip'); - assert.ok(JSON.stringify(errorDetails) - .includes('Sort values can only be 1(ascending) or -1(descending)') === true, 'Is invalid skip'); - }); - it('should not accept an invalid json', () => { - const options = { - sort: '{"name": "name-1}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails) - .includes('Invalid sort expression') === true, 'Is invalid filter'); - }); - - it('should not accept a number field', () => { - const options = { - sort: 5, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails) - .includes('Invalid sort expression') === true, 'Is invalid filter'); - }); - - it('should fail with non json string', () => { - const options = { - sort: 'hello-world', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails) - .includes('Invalid sort expression') === true, 'Is invalid skip'); - }); -}); - -describe('List model command option check', () => { - it('list valid command options', () => { - const options = { - filter: '{"name1": "name-1"}', - sort: '{"name2": 1}', - limit: -1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid filter params') === true, 'Is invalid filter'); - }); -}); From 6085d5fc23642e7bc7da8e52a21cd67c7192c346 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 11 Mar 2022 17:16:57 -0600 Subject: [PATCH 572/864] FAB-4018 jose uses the localtime to compute expiration, used the servertime instead --- src/commands/configure.js | 4 ++++ src/config.js | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/commands/configure.js b/src/commands/configure.js index 640e06ce..b4bb56a6 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -25,6 +25,7 @@ const { defaultConfig, generateJwt, loadProfile, + durationRegex, } = require('../config'); const { printSuccess, printError } = require('./utils'); @@ -171,6 +172,9 @@ module.exports.GetAccessToken = class { async execute(options) { const profile = await loadProfile(options.profile); const ttl = options.ttl || '1d'; + if (!durationRegex.test(ttl)) { + printError(`Invalid --ttl "${ttl}" must be a number followed by s,m,h,d,w,M,y`); + } debug('%s.getAccesToken', profile.name); const jwt = await generateJwt(profile, ttl); return printSuccess(jwt, options); diff --git a/src/config.js b/src/config.js index dd674d37..05d48825 100644 --- a/src/config.js +++ b/src/config.js @@ -19,9 +19,9 @@ const os = require('os'); const fs = require('fs'); const path = require('path'); const Joi = require('joi'); +const moment = require("moment"); const debug = require('debug')('cortex:config'); const jose = require('jose-node-cjs-runtime'); -//const { SignJWT } = require('jose-node-cjs-runtime/jwt/sign'); const { printError } = require('./commands/utils'); const Info = require('./client/info'); @@ -29,6 +29,7 @@ function configDir() { return process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); } +const durationRegex = /^([.\d]+)([smhdwMy])$/; async function generateJwt(profile, expiresIn = '2m') { const { username, issuer, audience, jwk, @@ -37,13 +38,15 @@ async function generateJwt(profile, expiresIn = '2m') { const infoClient = new Info(profile.url); const infoResp = await infoClient.getInfo(); const serverTs = _.get(infoResp, 'serverTs', Date.now()); + const [, amount, unit] = durationRegex.exec(expiresIn); + const expiry = moment(serverTs).add(_.toNumber(amount), unit).unix(); return new jose.SignJWT({}) .setProtectedHeader({ alg: 'EdDSA', kid: jwk.kid }) .setSubject(username) .setAudience(audience) .setIssuer(issuer) .setIssuedAt(Math.floor(serverTs / 1000)) // in seconds - .setExpirationTime(expiresIn) + .setExpirationTime(expiry) .sign(jwtSigner, { kid: jwk.kid }); } @@ -205,6 +208,7 @@ async function loadProfile(profileName, useenv = true) { } module.exports = { + durationRegex, loadProfile, generateJwt, defaultConfig, From 3da3b5d21dd5cfe5c99de656e44a638ee97c0481 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 14 Mar 2022 12:49:56 +0530 Subject: [PATCH 573/864] added component test cases --- test/listComponentOptions.js | 531 +++++++++++++++++++++++++++++++++++ test/listOptions.js | 14 - 2 files changed, 531 insertions(+), 14 deletions(-) create mode 100644 test/listComponentOptions.js diff --git a/test/listComponentOptions.js b/test/listComponentOptions.js new file mode 100644 index 00000000..f02db92b --- /dev/null +++ b/test/listComponentOptions.js @@ -0,0 +1,531 @@ +const assert = require('assert'); + +const { validateOptions } = require('../src/commands/utils'); + +describe('List model command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"name": "test"}', + sort: '{"createdAt": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description,createdBy,type,status') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,updatedAt,createdBy,type,status') === true, + 'Is invalid sort'); + }); +}); + +describe('List experiments command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"modelId": "test"}', + sort: '{"createdAt": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description,modelId') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,modelId,createdAt,updatedAt') === true, + 'Is invalid sort'); + }); +}); + +describe('List runs command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"runId": "test"}', + sort: '{"_createdAt": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, + 'Is invalid sort'); + }); +}); + +describe('List runs command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"runId": "test"}', + sort: '{"_createdAt": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, + 'Is invalid sort'); + }); +}); + +describe('List runs command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"runId": "test"}', + sort: '{"_createdAt": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, + 'Is invalid sort'); + }); +}); + +describe('List actions command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"image": "test"}', + sort: '{"type": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,type,image,description,createdBy') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,type,image,description,createdAt,createdBy') === true, + 'Is invalid sort'); + }); +}); + +describe('List agents command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"name": "test"}', + sort: '{"createdBy": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description,createdBy') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy') === true, + 'Is invalid sort'); + }); +}); + +describe('List skill command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"name": "test"}', + sort: '{"createdBy": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description,createdBy') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy') === true, + 'Is invalid sort'); + }); +}); + +describe('List types command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"name": "test"}', + sort: '{"createdBy": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description,createdBy') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy') === true, + 'Is invalid sort'); + }); +}); + +describe('List snapshot command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"snapshotId": "test"}', + sort: '{"_isTip": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: snapshotId,title,_isTip,_createdBy') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: snapshotId,title,_isTip,_createdAt,_createdBy') === true, + 'Is invalid sort'); + }); +}); + +describe('List assessments command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"componentName": "test"}', + sort: '{"reportCount": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,componentName,reportCount,_createdBy') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,componentName,reportCount,_createdBy,_updatedAt') === true, + 'Is invalid sort'); + }); +}); + +describe('List resources command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"name": "test"}', + sort: '{"resourceType": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'RESOURCE'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'RESOURCE'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,type,_projectId') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: resourceName,resourceTitle,resourceType,_projectId') === true, + 'Is invalid sort'); + }); +}); + +describe('List connections command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"connectionType": "test"}', + sort: '{"allowWrite": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description,createdBy,connectionType,allowWrite,contentType') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,connectionType,allowWrite,contentType') === true, + 'Is invalid sort'); + }); +}); + +describe('List connection types command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"type": "test"}', + sort: '{"group": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION_TYPE'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION_TYPE'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description,type,group') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,type,group') === true, + 'Is invalid sort'); + }); +}); + +describe('List campaigns command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"lifecycleState": "test"}', + sort: '{"name": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description,_createdBy,lifecycleState') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState') === true, + 'Is invalid sort'); + }); +}); + +describe('List missions command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"lifecycleState": "test"}', + sort: '{"name": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description,_createdBy,lifecycleState') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState') === true, + 'Is invalid sort'); + }); +}); + +describe('List projects command option check', () => { + it('should pass for valid filter and sort params', () => { + const options = { + filter: '{"name": "test"}', + sort: '{"_createdAt": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail for invalid filter and sort params', () => { + const options = { + filter: '{"key1": "test"}', + sort: '{"key2": 1}', + limit: 1, + skip: 0, + }; + const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid filter params. Allowed fields: name,title,description') === true, + 'Is invalid filter'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,_createdAt') === true, + 'Is invalid sort'); + }); +}); + diff --git a/test/listOptions.js b/test/listOptions.js index 80db926f..b8aa58d8 100644 --- a/test/listOptions.js +++ b/test/listOptions.js @@ -189,17 +189,3 @@ describe('List command sort option check', () => { .includes('Invalid sort expression') === true, 'Is invalid skip'); }); }); - -describe('List model command option check', () => { - it('list valid command options', () => { - const options = { - filter: '{"name1": "name-1"}', - sort: '{"name2": 1}', - limit: -1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid filter params') === true, 'Is invalid filter'); - }); -}); From 51f82190069c55001e22527b258bd469b30ec274 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 14 Mar 2022 13:46:21 +0530 Subject: [PATCH 574/864] removed redundant code --- test/listComponentOptions.js | 62 ------------------------------------ 1 file changed, 62 deletions(-) diff --git a/test/listComponentOptions.js b/test/listComponentOptions.js index f02db92b..2b268d47 100644 --- a/test/listComponentOptions.js +++ b/test/listComponentOptions.js @@ -95,68 +95,6 @@ describe('List runs command option check', () => { }); }); -describe('List runs command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"runId": "test"}', - sort: '{"_createdAt": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, - 'Is invalid sort'); - }); -}); - -describe('List runs command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"runId": "test"}', - sort: '{"_createdAt": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, - 'Is invalid sort'); - }); -}); - describe('List actions command option check', () => { it('should pass for valid filter and sort params', () => { const options = { From 57ed122d40c87f3c06577139a19e0c2cd0cbc7e7 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 14 Mar 2022 13:16:16 -0500 Subject: [PATCH 575/864] FAB-4023 profile option wasnot being passed in command requires use of program.opts() --- bin/cortex-configure.js | 4 +- package-lock.json | 109 +++++++------------------------------- src/commands/configure.js | 6 +-- 3 files changed, 23 insertions(+), 96 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 30009bb6..40f468c1 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -84,8 +84,8 @@ program .option('--project [project]', 'The project to use') .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .description('Print cortex environment variables') - .action((options) => { - new PrintEnvVars(program).execute(options); + .action(() => { + new PrintEnvVars(program).execute(); }); program diff --git a/package-lock.json b/package-lock.json index fff0b66e..cb231446 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1373,17 +1373,15 @@ }, "dependencies": { "cache-base": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", "requires": { + "@sellside/emitter": "^1.2.1", "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", "get-value": "^2.0.6", - "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", - "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" } @@ -1431,13 +1429,9 @@ } }, "mixin-deep": { - "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" } } }, @@ -1617,8 +1611,8 @@ }, "cache-base": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha1-yfDNjbZYzF2fPbIIgoxHEp57SBQ=", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", "requires": { "@sellside/emitter": "^1.2.1", "collection-visit": "^1.0.0", @@ -3315,7 +3309,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { @@ -3792,53 +3786,6 @@ "has-symbols": "^1.0.2" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -4636,7 +4583,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { @@ -4674,7 +4621,7 @@ }, "lodash.truncate": { "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, @@ -5069,8 +5016,8 @@ }, "mixin-deep": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha1-mmlGvvSjaEAbeElwrjyqqmurAvo=", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", "dependencies": { "is-extendable": { "version": "1.0.1", @@ -5882,7 +5829,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { @@ -5899,7 +5846,7 @@ }, "p-try": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, @@ -6332,7 +6279,7 @@ }, "querystringify": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "queue-microtask": { @@ -6497,7 +6444,7 @@ }, "requires-port": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { @@ -7441,24 +7388,6 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -7690,7 +7619,7 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, diff --git a/src/commands/configure.js b/src/commands/configure.js index b4bb56a6..f5eb17a0 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -53,7 +53,6 @@ module.exports.ConfigureCommand = class { console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); const cmd = this; -// co(function* () { try { let patData = null; if (file) { @@ -68,11 +67,9 @@ module.exports.ConfigureCommand = class { } cmd.saveConfig(config, profileName, patData, project); console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); - // process.exit(0); // } catch (err) { printError(err); } - // }); } saveConfig(config, profileName, { @@ -169,7 +166,8 @@ module.exports.GetAccessToken = class { this.program = program; } - async execute(options) { + async execute() { + const options = this.program.opts(); const profile = await loadProfile(options.profile); const ttl = options.ttl || '1d'; if (!durationRegex.test(ttl)) { From 0623e153f56a7399cd0f8a52c013fd017d6e09ee Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 14 Mar 2022 23:59:01 +0530 Subject: [PATCH 576/864] bug fix for listActivation --- src/commands/agents.js | 11 +++++++++-- src/constants.js | 4 ++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 04b44c4a..4653a62d 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -250,9 +250,16 @@ module.exports.ListActivationsCommand = class { if (options.agentName) queryParams.agentName = options.agentName; if (options.skillName) queryParams.skillName = options.skillName; if (options.limit) queryParams.limit = options.limit; - if (options.offset) queryParams.offset = options.skip; + if (options.skip) queryParams.offset = options.skip; if (options.sort) queryParams.sort = _.toLower(options.sort); - if (options.filter) queryParams.sort = _.toLower(options.filter); + if (options.filter) queryParams.filter = options.filter; + + const { validOptions, errorDetails } = validateOptions(options, 'ACTIVATION'); + if (!validOptions) { + const optionTableFormat = OPTIONSTABLEFORMAT; + printError('Resource list failed.', options, false); + return printTable(optionTableFormat, errorDetails); + } agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { diff --git a/src/constants.js b/src/constants.js index 269a489f..20cf46f9 100644 --- a/src/constants.js +++ b/src/constants.js @@ -60,4 +60,8 @@ module.exports.ALLOWED_QUERY_FIELDS = { filter: ['name', 'title', 'description'], sort: ['name', 'title', 'description', '_createdAt'], }, + ACTIVATION: { + filter: ['status', 'start', 'end', 'skillName', 'agentName'], + sort: ['status', 'start', 'end', 'skillName', 'agentName'], + }, }; From 549b523f408a67b6e5da30a9b85df5410cddd590 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 18 Feb 2022 10:29:11 -0600 Subject: [PATCH 577/864] Add agent name and project to agent save cli output --- src/commands/agents.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index e5946839..83396640 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -42,9 +42,10 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { debug('%o', agent); const catalog = new Catalog(profile.url); - catalog.saveAgent(options.project || profile.project, profile.token, agent).then((response) => { + const project = options.project || profile.project; + catalog.saveAgent(project, profile.token, agent).then((response) => { if (response.success) { - printSuccess('Agent saved', options); + printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); } else if (response.details) { console.log(`Failed to save agent: ${response.status} ${response.message}`); console.log('The following issues were found:'); From a98b53dae3f19008c92665cb0f1069190de4755a Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 15 Mar 2022 13:27:32 +0530 Subject: [PATCH 578/864] added filter skill --- bin/cortex-skills.js | 1 + src/client/catalog.js | 4 ++-- src/commands/skills.js | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index b99f0620..c036a6f5 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -101,6 +101,7 @@ program .option('--nostatus', 'skip extra call for skill status') .option('--noshared', 'do not list shared sills') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records') .option('--skip [skip]', 'Skip number of records', '0') .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') diff --git a/src/client/catalog.js b/src/client/catalog.js index ef6a0be7..903dd108 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -49,13 +49,13 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - listSkills(projectId, token, query, limit, skip, sort) { + listSkills(projectId, token, query, filter, limit, skip, sort) { checkProject(projectId); debug('listSkills() => %s', this.endpoints.skills(projectId)); + if (filter) query.filter = filter; if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - return got .get(this.endpoints.skills(projectId), { headers: { Authorization: `Bearer ${token}` }, diff --git a/src/commands/skills.js b/src/commands/skills.js index 57ed59c2..9261f9fc 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -105,7 +105,9 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { printError('Skill list failed.', options, false); return printTable(optionTableFormat, errorDetails); } - const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }, options.limit, options.skip, options.sort); + const response = await catalog.listSkills( + options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort + ); if (response.success) { let result = response.skills; const tableFormat = LISTTABLEFORMAT; From ce3ee11cd04e77a923427704bc1cf1d8ba632375 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 15 Mar 2022 13:43:41 +0530 Subject: [PATCH 579/864] global variable to set default limit and skip count --- bin/cortex-actions.js | 5 +++-- bin/cortex-agents.js | 13 +++++++------ bin/cortex-assessments.js | 9 +++++---- bin/cortex-campaigns.js | 5 +++-- bin/cortex-connections.js | 9 +++++---- bin/cortex-experiments.js | 9 +++++---- bin/cortex-missions.js | 5 +++-- bin/cortex-models.js | 9 +++++---- bin/cortex-projects.js | 5 +++-- bin/cortex-skills.js | 5 +++-- bin/cortex-types.js | 5 +++-- src/constants.js | 4 ++++ 12 files changed, 49 insertions(+), 34 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 495c3ebe..c95b2904 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -34,6 +34,7 @@ const { // TaskStatsActionCommand, // TaskStatusActionCommand, } = require('../src/commands/actions'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); program.name('cortex actions'); program.description('Work with Cortex Actions'); @@ -50,8 +51,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 2b112b55..2d8acb8d 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -20,6 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { CreateAgentSnapshotCommand, @@ -69,8 +70,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -170,8 +171,8 @@ program .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') .option('--correlationId [string]', 'Query activations with same correlationId') .option('--status [status]', 'Filters activations by status [complete|error].') - .option('--limit [limit]', 'Limit number of records', '100') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') .option('--filter [filter]', 'A Mongo style filter to use.') .action(withCompatibilityCheck((options) => { @@ -229,8 +230,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', '100') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((agentName, options) => { try { diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 683ccdc3..b4110277 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -33,6 +33,7 @@ const { ExportAssessmentReportCommand, DependencyTreeCommand, } = require('../src/commands/assessments'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); program.name('cortex assessments'); program.description('Work with Cortex Assessments'); @@ -85,8 +86,8 @@ program .option('--profile [profile]', 'The profile to use') .option('--json', 'Output results using JSON') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -131,8 +132,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 6bac4215..1f862566 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -20,6 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { ListCampaignsCommand, @@ -45,8 +46,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index a9f10b90..8b25f6c4 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -20,6 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { ListConnections, @@ -44,8 +45,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -100,8 +101,8 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index dd6b2dea..05248d4e 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -20,6 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { ListExperiments, @@ -50,8 +51,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -106,8 +107,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((experimentName, options) => { try { diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 599b5045..e2e73cca 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -22,6 +22,7 @@ const program = require('commander'); const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { ListMissionsCommand, @@ -46,8 +47,8 @@ program .option('--project [project]', 'The project to use') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((campaignName, options) => { try { diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 824d44fb..a47f86ef 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -30,6 +30,7 @@ const { UpdateModelStatusCommand, ListModelRunsCommand, } = require('../src/commands/models'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); program.name('cortex models'); program.description('Work with Cortex Models'); @@ -47,8 +48,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -174,8 +175,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((modelName, options) => { try { diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 15b34224..3b65bb13 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -26,6 +26,7 @@ const { ListProjectsCommand, DescribeProjectCommand, } = require('../src/commands/projects'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); program.name('cortex projects'); program.description('Work with Cortex Projects'); @@ -61,8 +62,8 @@ program .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index c036a6f5..b161c4d1 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -20,6 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { SaveSkillCommand, @@ -102,8 +103,8 @@ program .option('--noshared', 'do not list shared sills') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 51fe84b7..d5b5f2e6 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -20,6 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { SaveTypeCommand, @@ -58,8 +59,8 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--limit [limit]', 'Limit number of records') - .option('--skip [skip]', 'Skip number of records', '0') + .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { diff --git a/src/constants.js b/src/constants.js index 269a489f..67af33fa 100644 --- a/src/constants.js +++ b/src/constants.js @@ -61,3 +61,7 @@ module.exports.ALLOWED_QUERY_FIELDS = { sort: ['name', 'title', 'description', '_createdAt'], }, }; + +module.exports.DEFAULT_LIST_LIMIT_COUNT = '100'; + +module.exports.DEFAULT_LIST_SKIP_COUNT = '0'; From 2d7b8332b2c54842fe94b920509df8b2ab7f4ee8 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 15 Mar 2022 13:48:23 +0530 Subject: [PATCH 580/864] typo --- src/commands/skills.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index 9261f9fc..e3b46bc0 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -106,7 +106,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { return printTable(optionTableFormat, errorDetails); } const response = await catalog.listSkills( - options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort + options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort, ); if (response.success) { let result = response.skills; From 23adc3ce7e1b3143554117cb7fc3e3f9dba55fc9 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 15 Mar 2022 11:15:21 -0500 Subject: [PATCH 581/864] Rework option passing, remove global options as this causes issues with options, add tests WIP for adding configure token unit tests --- bin/cortex-configure.js | 29 +- package-lock.json | 10584 +++++++++++++++++++++++++++++++++++- package.json | 12 +- src/commands/configure.js | 18 +- src/commands/utils.js | 3 +- src/config.js | 4 +- test/configure.js | 45 +- 7 files changed, 10492 insertions(+), 203 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 40f468c1..d5f0a1c7 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -29,21 +29,14 @@ const { program.name('cortex configure'); program.description('Configure cortex connection profiles'); -program - .option('--file [file]', 'Personal access config file location') - .option('--profile [profile]', 'The profile to configure') - .option('--project [project]', 'The default project to use') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .description('Configure the Cortex CLI'); - program.command('create', { isDefault: true }) .description('Authenticate to cortex (default command)') .option('--file [file]', 'Personal access config file location') .option('--profile [profile]', 'The profile to configure', 'default') .option('--project [project]', 'The default project') - .action(() => { + .action((options, command) => { try { - new ConfigureCommand(program).execute(); + new ConfigureCommand(command).execute(options); } catch (err) { console.error(chalk.red(err.message)); } @@ -54,8 +47,8 @@ program .description('Create access token') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .action((options) => { try { new GetAccessToken(program).execute(options); @@ -68,15 +61,17 @@ program .command('list') .description('List configured profiles') .alias('l') - .action(() => { - new ListProfilesCommand(program).execute({ color: program.color }); + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .action((options) => { + new ListProfilesCommand(program).execute(options); }); program .command('describe ') .alias('get') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .description('Describe a configured profile') - .action((profileName) => new DescribeProfileCommand(program).execute({ profile: profileName, color: program.color })); + .action((profileName, options) => new DescribeProfileCommand(program).execute({ profile: profileName, ...options })); program .command('env') @@ -84,15 +79,15 @@ program .option('--project [project]', 'The project to use') .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .description('Print cortex environment variables') - .action(() => { - new PrintEnvVars(program).execute(); + .action((options) => { + new PrintEnvVars(program).execute(options); }); program .command('set-profile ') .description('Sets the current profile.') - .action((profileName) => { - new SetProfileCommand(program).execute(profileName, { color: program.color }); + .action((profileName, options) => { + new SetProfileCommand(program).execute(profileName, options); }); if (require.main === module) { diff --git a/package-lock.json b/package-lock.json index cb231446..6fac821d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,10333 @@ { "name": "cortex-cli", "version": "2.0.7", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "cortex-cli", + "version": "2.0.7", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "boxen": "5.1.2", + "cache-base": "^2.0.0", + "chalk": "4.1.2", + "cli-table3": "0.6.0", + "commander": "9.0.0", + "debug": "4.3.3", + "find-package-json": "1.2.0", + "form-data": "4.0.0", + "get-stream": "6.0.1", + "glob": "7.2.0", + "got": "11.8.3", + "graphql": "15.6.1", + "graphql-request": "3.7.0", + "is-installed-globally": "0.4.0", + "jmespath": "0.15.0", + "joi": "17.6.0", + "jose-node-cjs-runtime": "4.6.0", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "mixin-deep": "^2.0.1", + "moment": "2.29.1", + "npm-registry-fetch": "12.0.1", + "plop": "2.7.6", + "prompt": "1.2.2", + "semver": "7.3.5", + "url-join": "4.0.1", + "url-parse": "1.5.10", + "yauzl": "2.10.0" + }, + "bin": { + "cortex": "bin/cortex.js" + }, + "devDependencies": { + "audit-ci": "5.1.2", + "chai": "4.3.6", + "chai-as-promised": "7.1.1", + "eslint": "8.11.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.25.4", + "husky": "7.0.4", + "madge": "4.0.2", + "mocha": "9.2.2", + "mocked-env": "1.3.5", + "nock": "13.2.4", + "nyc": "15.1.0", + "rewire": "6.0.0", + "sinon": "11.1.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", + "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", + "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.12", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/core/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/core/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/core/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@babel/core/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/core/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", + "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", + "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", + "dependencies": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/parser": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/template/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/template/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/template/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@babel/template/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/template/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", + "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.16.10", + "@babel/types": "^7.16.8", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/traverse/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/traverse/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types/node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + }, + "node_modules/@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", + "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", + "deprecated": "this version had an improper engines field added, update to 1.1.1", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sellside/emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", + "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", + "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/fined": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", + "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", + "dependencies": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "node_modules/@types/interpret": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/liftoff": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", + "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", + "dependencies": { + "@types/fined": "*", + "@types/interpret": "*", + "@types/node": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "node_modules/@types/node": { + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/through": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", + "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/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==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", + "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", + "dev": true + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-module-types": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", + "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/audit-ci": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", + "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", + "dev": true, + "dependencies": { + "array.prototype.flatmap": "^1.2.5", + "cross-spawn": "^7.0.3", + "escape-string-regexp": "^4.0.0", + "event-stream": "4.0.1", + "jju": "^1.4.0", + "JSONStream": "^1.3.5", + "readline-transform": "1.0.0", + "semver": "^7.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "audit-ci": "lib/audit-ci.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/audit-ci/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/audit-ci/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/audit-ci/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/audit-ci/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/audit-ci/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/audit-ci/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/audit-ci/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/audit-ci/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/cache-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", + "dependencies": { + "@sellside/emitter": "^1.2.1", + "collection-visit": "^1.0.0", + "get-value": "^2.0.6", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/mixin-deep": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/boxen/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cache-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", + "dependencies": { + "@sellside/emitter": "^1.2.1", + "collection-visit": "^1.0.0", + "get-value": "^2.0.6", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001303", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", + "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/change-case": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "dependencies": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-table3/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "dependencies": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/convert-source-map": { + "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, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js-pure": { + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", + "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decomment": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/decomment/-/decomment-0.9.5.tgz", + "integrity": "sha512-h0TZ8t6Dp49duwyDHo3iw67mnh9/UpFiSSiOb5gDK1sqoXzrfX/SQxIUQd2R2QEiSnqib0KF2fnKnGfAhAs6lg==", + "dev": true, + "dependencies": { + "esprima": "4.0.1" + }, + "engines": { + "node": ">=6.4", + "npm": ">=2.15" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-require-extensions/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "dependencies": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-tree": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-8.1.2.tgz", + "integrity": "sha512-c4CL1IKxkKng0oT5xrg4uNiiMVFqTGOXqHSFx7XEFdgSsp6nw3AGGruICppzJUrfad/r7GLqt26rmWU4h4j39A==", + "dev": true, + "dependencies": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "filing-cabinet": "^3.0.1", + "precinct": "^8.0.0", + "typescript": "^3.9.7" + }, + "bin": { + "dependency-tree": "bin/cli.js" + }, + "engines": { + "node": "^10.13 || ^12 || >=14" + } + }, + "node_modules/dependency-tree/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/dependency-tree/node_modules/precinct": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.2.0.tgz", + "integrity": "sha512-D9fQM/fAS7rGLA1m+PusoEMc07g9I5lZUf6rstT5XPCPn56raSIrj9R9y052YV8j4N+tjkgfCgT10bRQ3vg8+A==", + "dev": true, + "dependencies": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "detective-amd": "^3.0.1", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.0", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": "^10.13 || ^12 || >=14" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detective-amd": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.0.tgz", + "integrity": "sha512-G7wGWT6f0VErjUkE2utCm7IUshT7nBh7aBBH2VBOiY9Dqy2DMens5iiOvYCuhstoIxRKLrnOvVAz4/EyPIAjnw==", + "dev": true, + "dependencies": { + "ast-module-types": "^2.7.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^3.0.0", + "node-source-walk": "^4.0.0" + }, + "bin": { + "detective-amd": "bin/detective-amd.js" + }, + "engines": { + "node": ">= 6.0" + } + }, + "node_modules/detective-cjs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.1.tgz", + "integrity": "sha512-JQtNTBgFY6h8uT6pgph5QpV3IyxDv+z3qPk/FZRDT9TlFfm5dnRtpH39WtQEr1khqsUxVqXzKjZHpdoQvQbllg==", + "dev": true, + "dependencies": { + "ast-module-types": "^2.4.0", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">= 6.0" + } + }, + "node_modules/detective-es6": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.1.tgz", + "integrity": "sha512-22z7MblxkhsIQGuALeGwCKEfqNy4WmgDGmfJCwdXbfDkVYIiIDmY513hiIWBvX3kCmzvvWE7RR7kAYxs01wwKQ==", + "dev": true, + "dependencies": { + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">= 6.0" + } + }, + "node_modules/detective-less": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", + "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">= 6.0" + } + }, + "node_modules/detective-postcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", + "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "is-url": "^1.2.4", + "postcss": "^8.1.7", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/detective-sass": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.1.tgz", + "integrity": "sha512-oSbrBozRjJ+QFF4WJFbjPQKeakoaY1GiR380NPqwdbWYd5wfl5cLWv0l6LsJVqrgWfFN1bjFqSeo32Nxza8Lbw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">= 6.0" + } + }, + "node_modules/detective-scss": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.1.tgz", + "integrity": "sha512-VveyXW4WQE04s05KlJ8K0bG34jtHQVgTc9InspqoQxvnelj/rdgSAy7i2DXAazyQNFKlWSWbS+Ro2DWKFOKTPQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">= 6.0" + } + }, + "node_modules/detective-stylus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.0.tgz", + "integrity": "sha1-UK7n24uruZA4HwEMY/q7pbWOVM0=", + "dev": true + }, + "node_modules/detective-typescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.0.tgz", + "integrity": "sha512-y/Ev98AleGvl43YKTNcA2Q+lyFmsmCfTTNWy4cjEJxoLkbobcXtRS0Kvx06daCgr2GdtlwLfNzL553BkktfJoA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "^4.8.2", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.7" + }, + "engines": { + "node": "^10.13 || >=12.0.0" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.55", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.55.tgz", + "integrity": "sha512-AoCDEVElLY8mwe4TuDDkr1jxvSh/Ih5PFlEXCpmwFkq9JOXn4K58CScgBl+R1ghFW9cPJ7VeWo30nAHSRCe6rw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", + "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.2.1", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-import/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-import/node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/glob-parent/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dev": true, + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-files": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", + "engines": { + "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + } + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-glob/node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filing-cabinet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.0.1.tgz", + "integrity": "sha512-3Wn18+vSKmrlOc0fp5J7p1UyGi7yCWUpPhGVFzZsUyGzG+AEzYWguMGxUbjsgsV4whRHCCiYxIrGyKivBBDDSg==", + "dev": true, + "dependencies": { + "app-module-path": "^2.2.0", + "commander": "^2.20.3", + "debug": "^4.3.1", + "decomment": "^0.9.3", + "enhanced-resolve": "^5.3.2", + "is-relative-path": "^1.0.2", + "module-definition": "^3.3.1", + "module-lookup-amd": "^7.0.0", + "resolve": "^1.19.0", + "resolve-dependency-path": "^2.0.0", + "sass-lookup": "^3.0.0", + "stylus-lookup": "^3.0.1", + "typescript": "^3.9.7" + }, + "bin": { + "filing-cabinet": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/filing-cabinet/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", + "dev": true + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-amd-module-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.0.tgz", + "integrity": "sha512-99Q7COuACPfVt18zH9N4VAMyb81S6TUgJm2NgV6ERtkh9VIkAaByZkW530wl3lLN5KTtSrK9jVLxYsoP5hQKsw==", + "dev": true, + "dependencies": { + "ast-module-types": "^2.3.2", + "node-source-walk": "^4.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "gonzales": "bin/gonzales.js" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/got": { + "version": "11.8.3", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", + "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "node_modules/graphql": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-request": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", + "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", + "dependencies": { + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + }, + "peerDependencies": { + "graphql": "14 - 16" + } + }, + "node_modules/graphql-request/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graphviz": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/graphviz/-/graphviz-0.0.9.tgz", + "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", + "dev": true, + "dependencies": { + "temp": "~0.4.0" + }, + "engines": { + "node": ">=0.6.8" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/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==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/husky": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + }, + "node_modules/is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "dependencies": { + "lower-case": "^1.1.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", + "integrity": "sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY=", + "dev": true + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "dependencies": { + "upper-case": "^1.1.0" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isbinaryfile": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true + }, + "node_modules/jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/joi": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/jose-node-cjs-runtime": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.0.tgz", + "integrity": "sha512-Bv7BBMY1gx5unOiJHggs8Ag3/mX6BPi7jq2CEMpFEVP5OehbbzjWs3zNOdvTFtrEUkGysTZn69j0MUx7kesjgw==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", + "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loupe": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.1.tgz", + "integrity": "sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "node_modules/lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "dependencies": { + "lower-case": "^1.1.2" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/madge": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/madge/-/madge-4.0.2.tgz", + "integrity": "sha512-l5bnA2dvyk0azLKDbOTCI+wDZ6nB007PhvPdmiYlPmqwVi49JPbhQrH/t4u8E6Akp3gwji1GZuA+v/F5q6yoWQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "commander": "^6.2.1", + "commondir": "^1.0.1", + "debug": "^4.0.1", + "dependency-tree": "^8.0.0", + "detective-amd": "^3.0.1", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.1.0", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "graphviz": "0.0.9", + "ora": "^5.1.0", + "pluralize": "^8.0.0", + "precinct": "^7.0.0", + "pretty-ms": "^7.0.0", + "rc": "^1.2.7", + "typescript": "^3.9.5", + "walkdir": "^0.4.1" + }, + "bin": { + "madge": "bin/cli.js" + }, + "engines": { + "node": "^10.13 || ^12 || >=14" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/pahen" + } + }, + "node_modules/madge/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/madge/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/madge/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/madge/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-fetch-happen": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.0.tgz", + "integrity": "sha512-CREcDkbKZZ64g5MN1FT+u58mDHX9FQFFtFyio5HonX44BdQdytqPZBXUz+6ibi2w/6ncji59f2phyXGSMGpgzA==", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "dependencies": { + "mime-db": "1.49.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mixin-deep": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocked-env": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", + "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", + "dev": true, + "dependencies": { + "check-more-types": "2.24.0", + "debug": "4.3.2", + "lazy-ass": "1.6.0", + "ramda": "0.27.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocked-env/node_modules/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, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/module-definition": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.3.1.tgz", + "integrity": "sha512-kLidGPwQ2yq484nSD+D3JoJp4Etc0Ox9P0L34Pu/cU4X4HcG7k7p62XI5BBuvURWMRX3RPyuhOcBHbKus+UH4A==", + "dev": true, + "dependencies": { + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.0.0" + }, + "bin": { + "module-definition": "bin/module-definition.js" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/module-lookup-amd": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", + "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", + "dev": true, + "dependencies": { + "commander": "^2.8.1", + "debug": "^4.1.0", + "glob": "^7.1.6", + "requirejs": "^2.3.5", + "requirejs-config-file": "^4.0.0" + }, + "bin": { + "lookup-amd": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/module-lookup-amd/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/nise": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/nock": { + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", + "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash.set": "^4.3.2", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-plop": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", + "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", + "dependencies": { + "@babel/runtime-corejs3": "^7.9.2", + "@types/inquirer": "^6.5.0", + "change-case": "^3.1.0", + "del": "^5.1.0", + "globby": "^10.0.1", + "handlebars": "^4.4.3", + "inquirer": "^7.1.0", + "isbinaryfile": "^4.0.2", + "lodash.get": "^4.4.2", + "mkdirp": "^0.5.1", + "resolve": "^1.12.0" + }, + "engines": { + "node": ">=8.9.4" + } + }, + "node_modules/node-plop/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "node_modules/node-source-walk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.2.0.tgz", + "integrity": "sha512-hPs/QMe6zS94f5+jG3kk9E7TNm4P2SulrKiLWMzKszBfNZvL/V6wseHlTd7IvfW0NZWqPtK3+9yYNr+3USGteA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-registry-fetch": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.1.tgz", + "integrity": "sha512-ricy4ezH3Uv0d4am6RSwHjCYTWJI74NJjurIigWMAG7Vs3PFyd0TUlkrez5L0AgaPzDLRsEzqb5cOZ/Ue01bmA==", + "dependencies": { + "make-fetch-happen": "^10.0.0", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/ora/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "dependencies": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-to-regexp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/plop": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", + "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", + "dependencies": { + "@types/liftoff": "^2.5.1", + "chalk": "^1.1.3", + "interpret": "^1.2.0", + "liftoff": "^2.5.0", + "minimist": "^1.2.5", + "node-plop": "^0.26.3", + "ora": "^3.4.0", + "v8flags": "^2.0.10" + }, + "bin": { + "plop": "bin/plop.js" + }, + "engines": { + "node": ">=8.9.4" + } + }, + "node_modules/plop/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", + "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", + "dev": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/precinct": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-7.1.0.tgz", + "integrity": "sha512-I1RkW5PX51/q6Xl39//D7x9NgaKNGHpR5DCNaoxP/b2+KbzzXDNhauJUMV17KSYkJA41CSpwYUPRtRoNxbshWA==", + "dev": true, + "dependencies": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "detective-amd": "^3.0.1", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.0", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^6.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + }, + "bin": { + "precinct": "bin/cli.js" + }, + "engines": { + "node": "^10.13 || ^12 || >=14" + } + }, + "node_modules/precinct/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/precinct/node_modules/detective-typescript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-6.0.0.tgz", + "integrity": "sha512-vTidcSDK3QostdbrH2Rwf9FhvrgJ4oIaVw5jbolgruTejexk6nNa9DShGpuS8CFVDb1IP86jct5BaZt1wSxpkA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "^4.8.2", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.7" + }, + "engines": { + "node": "^10.13 || >=12.0.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prompt": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.2.tgz", + "integrity": "sha512-XNXhNv3PUHJDcDkISpCwSJxtw9Bor4FZnlMUDW64N/KCPdxhfVlpD5+YUXI/Z8a9QWmOhs9KSiVtR8nzPS0BYA==", + "dependencies": { + "@colors/colors": "1.5.0", + "async": "~0.9.0", + "read": "1.0.x", + "revalidator": "0.1.x", + "winston": "2.x" + }, + "engines": { + "node": ">= 0.6.6" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readline-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/repeat-element": { + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requirejs": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", + "dev": true, + "bin": { + "r_js": "bin/r.js", + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/requirejs-config-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", + "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.0", + "stringify-object": "^3.2.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-dependency-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", + "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/revalidator": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/rewire": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", + "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", + "dev": true, + "dependencies": { + "eslint": "^7.32.0" + } + }, + "node_modules/rewire/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/rewire/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/rewire/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/rewire/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/rewire/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rewire/node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/rewire/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/rewire/node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/rewire/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/rewire/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass-lookup": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", + "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", + "dev": true, + "dependencies": { + "commander": "^2.16.0" + }, + "bin": { + "sass-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/sass-lookup/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "dependencies": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "node_modules/sinon": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", + "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylus-lookup": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", + "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", + "dev": true, + "dependencies": { + "commander": "^2.8.1", + "debug": "^4.1.0" + }, + "bin": { + "stylus-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/stylus-lookup/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "dependencies": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/temp": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", + "integrity": "sha1-ZxrWPVe+D+nXKUZks/xABjZnimA=", + "dev": true, + "engines": [ + "node >=0.4.0" + ] + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", + "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "node_modules/upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "dependencies": { + "upper-case": "^1.1.1" + } + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "bin": { + "user-home": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "node_modules/v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dependencies": { + "user-home": "^1.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/walkdir": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/winston": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", + "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "dependencies": { + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/winston/node_modules/async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" + }, + "node_modules/winston/node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "node_modules/workerpool": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@babel/code-frame": { "version": "7.12.11", @@ -583,21 +10908,34 @@ } } }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" + }, "@eslint/eslintrc": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.2.0", + "espree": "^9.3.1", "globals": "^13.9.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + } } }, "@gar/promisify": { @@ -1017,16 +11355,6 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", @@ -1037,7 +11365,8 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "dev": true, + "requires": {} }, "agent-base": { "version": "6.0.2", @@ -1270,12 +11599,12 @@ "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", "dev": true, "requires": { - "JSONStream": "^1.3.5", "array.prototype.flatmap": "^1.2.5", "cross-spawn": "^7.0.3", "escape-string-regexp": "^4.0.0", "event-stream": "4.0.1", "jju": "^1.4.0", + "JSONStream": "^1.3.5", "readline-transform": "1.0.0", "semver": "^7.0.0", "yargs": "^16.0.0" @@ -1373,8 +11702,7 @@ }, "dependencies": { "cache-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "version": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", "requires": { "@sellside/emitter": "^1.2.1", @@ -1420,17 +11748,8 @@ "kind-of": "^6.0.2" } }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - }, "mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "version": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" } } @@ -1927,11 +12246,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1941,9 +12255,9 @@ } }, "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==" }, "commondir": { "version": "1.0.1", @@ -2525,12 +12839,12 @@ } }, "eslint": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", - "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", + "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.0.5", + "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -2538,10 +12852,10 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", + "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.2.0", - "espree": "^9.3.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2567,12 +12881,6 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -2597,49 +12905,9 @@ } }, "eslint-visitor-keys": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "glob-parent": { @@ -2698,21 +12966,6 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -2883,9 +13136,9 @@ } }, "eslint-scope": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -2924,20 +13177,20 @@ "dev": true }, "espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, "requires": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" + "eslint-visitor-keys": "^3.3.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true } } @@ -4470,9 +14723,9 @@ } }, "jose-node-cjs-runtime": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.4.0.tgz", - "integrity": "sha512-DhCqzpgUVZoAc4aOXpD9GOeDLnVXdju01vwTdi4I5o+VLMKxnRzCCwJ0Qp4UAMpTwRCFqpnaxUuMQ6k7VFPYNQ==" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.0.tgz", + "integrity": "sha512-Bv7BBMY1gx5unOiJHggs8Ag3/mX6BPi7jq2CEMpFEVP5OehbbzjWs3zNOdvTFtrEUkGysTZn69j0MUx7kesjgw==" }, "js-tokens": { "version": "4.0.0", @@ -4531,6 +14784,16 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -5017,17 +15280,7 @@ "mixin-deep": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" }, "mkdirp": { "version": "1.0.4", @@ -5035,9 +15288,9 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mocha": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -5053,9 +15306,9 @@ "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.2.0", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -5091,6 +15344,15 @@ "p-locate": "^5.0.0" } }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5202,9 +15464,9 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, "nanomatch": { @@ -5263,9 +15525,9 @@ } }, "nock": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.2.tgz", - "integrity": "sha512-PcBHuvl9i6zfaJ50A7LS55oU+nFLv8htXIhffJO+FxyfibdZ4jEvd9kTuvkrJireBFIGMZ+oUIRpMK5gU9h//g==", + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", + "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", "dev": true, "requires": { "debug": "^4.1.0", @@ -6138,14 +16400,6 @@ "nanoid": "^3.1.30", "picocolors": "^1.0.0", "source-map-js": "^1.0.1" - }, - "dependencies": { - "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", - "dev": true - } } }, "postcss-values-parser": { @@ -6245,12 +16499,12 @@ } }, "prompt": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.1.tgz", - "integrity": "sha512-B4+2QeNDn5Cdp4kK2iOwV8qvrWpiPKlZKI9ZKkPl0C9KgeMW6DyWWqhqHiFq9vZf6zTniv+rYalK0ZlgktSwiw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.2.tgz", + "integrity": "sha512-XNXhNv3PUHJDcDkISpCwSJxtw9Bor4FZnlMUDW64N/KCPdxhfVlpD5+YUXI/Z8a9QWmOhs9KSiVtR8nzPS0BYA==", "requires": { + "@colors/colors": "1.5.0", "async": "~0.9.0", - "colors": "1.4.0", "read": "1.0.x", "revalidator": "0.1.x", "winston": "2.x" @@ -7138,6 +17392,15 @@ "through": "~2.3.4" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -7193,15 +17456,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, "stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", diff --git a/package.json b/package.json index 9edbfc16..d6c3f7fa 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "cache-base": "^2.0.0", "chalk": "4.1.2", "cli-table3": "0.6.0", - "commander": "8.3.0", + "commander": "9.0.0", "debug": "4.3.3", "find-package-json": "1.2.0", "form-data": "4.0.0", @@ -47,14 +47,14 @@ "is-installed-globally": "0.4.0", "jmespath": "0.15.0", "joi": "17.6.0", - "jose-node-cjs-runtime": "4.4.0", + "jose-node-cjs-runtime": "4.6.0", "js-yaml": "4.1.0", "lodash": "4.17.21", "mixin-deep": "^2.0.1", "moment": "2.29.1", "npm-registry-fetch": "12.0.1", "plop": "2.7.6", - "prompt": "1.2.1", + "prompt": "1.2.2", "semver": "7.3.5", "url-join": "4.0.1", "url-parse": "1.5.10", @@ -64,14 +64,14 @@ "audit-ci": "5.1.2", "chai": "4.3.6", "chai-as-promised": "7.1.1", - "eslint": "8.7.0", + "eslint": "8.11.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.25.4", "husky": "7.0.4", "madge": "4.0.2", - "mocha": "9.2.0", + "mocha": "9.2.2", "mocked-env": "1.3.5", - "nock": "13.2.2", + "nock": "13.2.4", "nyc": "15.1.0", "rewire": "6.0.0", "sinon": "11.1.2" diff --git a/src/commands/configure.js b/src/commands/configure.js index f5eb17a0..b346324f 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -44,8 +44,8 @@ module.exports.ConfigureCommand = class { this.program = program; } - async execute() { - const { profile, file, project } = this.program.opts(); + async execute(options) { + const { profile, file, project } = options; const config = readConfig(); const profileName = profile || _.get(config, 'currentProfile', 'default'); @@ -138,8 +138,7 @@ module.exports.ListProfilesCommand = class { this.program = program; } - execute() { - const options = this.program.opts(); + execute(options) { const config = readConfig(); if (config === undefined) { printError('Configuration not found. Please run "cortex configure".', options); @@ -166,12 +165,11 @@ module.exports.GetAccessToken = class { this.program = program; } - async execute() { - const options = this.program.opts(); + async execute(options) { const profile = await loadProfile(options.profile); const ttl = options.ttl || '1d'; if (!durationRegex.test(ttl)) { - printError(`Invalid --ttl "${ttl}" must be a number followed by s,m,h,d,w,M,y`); + printError(`Invalid --ttl "${ttl}" must be a number followed by ms,s,m,h,d,w,M,y`); } debug('%s.getAccesToken', profile.name); const jwt = await generateJwt(profile, ttl); @@ -184,12 +182,14 @@ module.exports.PrintEnvVars = class { this.program = program; } - async execute() { + async execute(options) { try { const vars = []; - const options = this.program.opts(); const profile = await loadProfile(options.profile, false); const ttl = options.ttl || '1d'; + if (!durationRegex.test(ttl)) { + printError(`Invalid --ttl "${ttl}" must be a number followed by ms,s,m,h,d,w,M,y`); + } const jwt = await generateJwt(profile, ttl); vars.push(`export CORTEX_TOKEN=${jwt}`); vars.push(`export CORTEX_URI=${profile.url}`); diff --git a/src/commands/utils.js b/src/commands/utils.js index 3c524a53..a5921f70 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -75,7 +75,8 @@ module.exports.printError = (message, options, exit = true) => { } else { console.error(message); } - if (exit) { + // Don't exit when testing as this breaks negative unit tests + if (exit && _.toLower(process.env.NODE_ENV) !== 'test') { process.exit(1); } }; diff --git a/src/config.js b/src/config.js index 05d48825..c1905ff7 100644 --- a/src/config.js +++ b/src/config.js @@ -19,7 +19,7 @@ const os = require('os'); const fs = require('fs'); const path = require('path'); const Joi = require('joi'); -const moment = require("moment"); +const moment = require('moment'); const debug = require('debug')('cortex:config'); const jose = require('jose-node-cjs-runtime'); const { printError } = require('./commands/utils'); @@ -29,7 +29,7 @@ function configDir() { return process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); } -const durationRegex = /^([.\d]+)([smhdwMy])$/; +const durationRegex = /^([.\d]+)(ms|[smhdwMy])$/; async function generateJwt(profile, expiresIn = '2m') { const { username, issuer, audience, jwk, diff --git a/test/configure.js b/test/configure.js index 144a8bff..4eebec80 100644 --- a/test/configure.js +++ b/test/configure.js @@ -23,9 +23,13 @@ const sinon = require('sinon'); const { expect } = require('chai'); const yaml = require('js-yaml'); const { stripAnsi } = require('./utils'); +const Info = require('../src/client/info'); const program = require('../bin/cortex-configure'); +const utils = require('../src/commands/utils'); let restore; +let sandbox; + describe('configure', () => { const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cortex-cli')); let printSpy; @@ -36,12 +40,16 @@ describe('configure', () => { }); beforeEach(() => { - printSpy = sinon.spy(console, 'log'); + sandbox = sinon.createSandbox(); + sandbox.stub(Info.prototype, 'getInfo').callsFake(() => ({ + serverTs: new Date('January 11, 2011 11:11:11'), + })); + printSpy = sandbox.spy(console, 'log'); fs.copyFileSync('./test/cortex/config', path.join(tmpDir, 'config')); }); afterEach(() => { - printSpy.restore(); + sandbox.restore(); }); after(() => { @@ -54,7 +62,7 @@ describe('configure', () => { it('lists profiles', async () => { await program.parseAsync(['node', 'configure', 'list']); - sinon.assert.calledTwice(printSpy); + sandbox.assert.calledTwice(printSpy); // default is set at default... expect(getPrintedLines()).to.eql(['default', 'other']); }); @@ -66,6 +74,37 @@ describe('configure', () => { expect(output[4]).to.eql('Project: otherProj'); }); + // it('ttl token with ttl', async () => { + // const spy = sandbox.spy(utils, 'printSuccess'); + // await program.parseAsync(['node', 'configure', 'token', '--ttl', '5m']); + // const output = getPrintedLines(); + // expect(output).to.length(1); + // }); + // + // it('ttl token with bad ttl', async () => { + // await program.parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); + // const output = getPrintedLines(); + // expect(output).to.length(1); + // }); + // + // it('ttl token default ttl', async () => { + // await program.parseAsync(['node', 'configure', 'token']); + // const output = getPrintedLines(); + // expect(output).to.length(1); + // }); + // + // it('ttl token default with profile', async () => { + // await program.parseAsync(['node', 'configure', 'token', '--profile', 'other']); + // const output = getPrintedLines(); + // expect(output).to.length(1); + // }); + // + // it('ttl token default with bad profile', async () => { + // await program.parseAsync(['node', 'configure', 'token', '--profile', 'nohere']); + // const output = getPrintedLines(); + // expect(output).to.length(1); + // }); + it('create profile pat file', async () => { await program.parseAsync(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); const output = getPrintedLines(); From 6ffb3ee5e18c43f4e7e351a1d773bba9f436309f Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 15 Mar 2022 14:23:23 -0500 Subject: [PATCH 582/864] re-enable tests --- bin/cortex-configure.js | 8 ++-- test/configure.js | 98 +++++++++++++++++++++++++++-------------- 2 files changed, 70 insertions(+), 36 deletions(-) diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index d5f0a1c7..a9549e64 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -49,9 +49,9 @@ program .option('--project [project]', 'The project to use') .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { + .action(async (options) => { try { - new GetAccessToken(program).execute(options); + await new GetAccessToken(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } @@ -62,8 +62,8 @@ program .description('List configured profiles') .alias('l') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((options) => { - new ListProfilesCommand(program).execute(options); + .action(async (options) => { + await new ListProfilesCommand(program).execute(options); }); program diff --git a/test/configure.js b/test/configure.js index 4eebec80..f3eba53a 100644 --- a/test/configure.js +++ b/test/configure.js @@ -25,14 +25,28 @@ const yaml = require('js-yaml'); const { stripAnsi } = require('./utils'); const Info = require('../src/client/info'); const program = require('../bin/cortex-configure'); -const utils = require('../src/commands/utils'); let restore; let sandbox; +const iatDate = new Date('January 11, 2011 11:11:11').getTime(); + +function parseJwt(jwt) { + const parts = jwt.split('.'); + const header = JSON.parse(Buffer.from(parts[0], 'base64') + .toString('ascii')); + const payload = JSON.parse(Buffer.from(parts[1], 'base64') + .toString('ascii')); + return { + header, + payload, + }; +} + describe('configure', () => { const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cortex-cli')); let printSpy; + let errorSpy; before(() => { restore = mockedEnv({ CORTEX_CONFIG_DIR: tmpDir, @@ -42,9 +56,10 @@ describe('configure', () => { beforeEach(() => { sandbox = sinon.createSandbox(); sandbox.stub(Info.prototype, 'getInfo').callsFake(() => ({ - serverTs: new Date('January 11, 2011 11:11:11'), + serverTs: iatDate, })); printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); fs.copyFileSync('./test/cortex/config', path.join(tmpDir, 'config')); }); @@ -60,6 +75,10 @@ describe('configure', () => { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + it('lists profiles', async () => { await program.parseAsync(['node', 'configure', 'list']); sandbox.assert.calledTwice(printSpy); @@ -74,36 +93,51 @@ describe('configure', () => { expect(output[4]).to.eql('Project: otherProj'); }); - // it('ttl token with ttl', async () => { - // const spy = sandbox.spy(utils, 'printSuccess'); - // await program.parseAsync(['node', 'configure', 'token', '--ttl', '5m']); - // const output = getPrintedLines(); - // expect(output).to.length(1); - // }); - // - // it('ttl token with bad ttl', async () => { - // await program.parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); - // const output = getPrintedLines(); - // expect(output).to.length(1); - // }); - // - // it('ttl token default ttl', async () => { - // await program.parseAsync(['node', 'configure', 'token']); - // const output = getPrintedLines(); - // expect(output).to.length(1); - // }); - // - // it('ttl token default with profile', async () => { - // await program.parseAsync(['node', 'configure', 'token', '--profile', 'other']); - // const output = getPrintedLines(); - // expect(output).to.length(1); - // }); - // - // it('ttl token default with bad profile', async () => { - // await program.parseAsync(['node', 'configure', 'token', '--profile', 'nohere']); - // const output = getPrintedLines(); - // expect(output).to.length(1); - // }); + it('ttl token default ttl', async () => { + await program.parseAsync(['node', 'configure', 'token']); + const output = getPrintedLines(); + const { payload } = parseJwt(output[0]); + expect(payload.sub).to.equal('test_user'); + expect(payload.aud).to.equal('cortex'); + expect(payload.iat).to.equal(iatDate / 1000); + expect(payload.exp).to.equal((iatDate / 1000) + (24 * 3600)); // Expect 1 day default + expect(output).to.length(1); + }); + + it('ttl token default with other profile', async () => { + await program.parseAsync(['node', 'configure', 'token', '--profile', 'other']); + const output = getPrintedLines(); + const { payload } = parseJwt(output[0]); + expect(payload.sub).to.equal('other_user'); + expect(payload.aud).to.equal('cortex'); + expect(payload.iat).to.equal(iatDate / 1000); + expect(payload.exp).to.equal((iatDate / 1000) + (24 * 3600)); // Expect 1 day default + expect(output).to.length(1); + }); + + it('ttl token with ttl', async () => { + await program.parseAsync(['node', 'configure', 'token', '--ttl', '5m', '--profile', 'other']); + const output = getPrintedLines(); + const { payload } = parseJwt(output[0]); + expect(payload.sub).to.equal('other_user'); + expect(payload.aud).to.equal('cortex'); + expect(payload.iat).to.equal(iatDate / 1000); + expect(payload.exp).to.equal((iatDate / 1000) + (5 * 60)); + }); + + it('ttl token with bad ttl', async () => { + await program.parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); + const output = getErrorLines(); + expect(output[0]).to.contain('Invalid --ttl'); + }); + + it('ttl token default with bad profile', async () => { + await program.parseAsync(['node', 'configure', 'token', '--profile', 'nothere']); + const output = getErrorLines(); + expect(output[0]).to.contain('Profile with name "nothere" could not be located in your configuration.'); + expect(output).to.length(1); + }); + it('create profile pat file', async () => { await program.parseAsync(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); From d0256734c7b570798eb57e40d0479a38ae5d45b7 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 16 Mar 2022 23:10:45 +0530 Subject: [PATCH 583/864] change offset to skip --- src/commands/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 4653a62d..88cfcc00 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -250,7 +250,7 @@ module.exports.ListActivationsCommand = class { if (options.agentName) queryParams.agentName = options.agentName; if (options.skillName) queryParams.skillName = options.skillName; if (options.limit) queryParams.limit = options.limit; - if (options.skip) queryParams.offset = options.skip; + if (options.skip) queryParams.skip = options.skip; if (options.sort) queryParams.sort = _.toLower(options.sort); if (options.filter) queryParams.filter = options.filter; From 260cde0f6fc46b47db6002dac4f770af3443fd0f Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 17 Mar 2022 11:50:41 +0530 Subject: [PATCH 584/864] consistent error if no data found in list clis --- src/commands/actions.js | 9 +++++++-- src/commands/agents.js | 22 ++++++++++++++++------ src/commands/assessments.js | 10 +--------- src/commands/campaigns.js | 6 +++--- src/commands/connections.js | 12 ++++++++---- src/commands/content.js | 4 ++-- src/commands/experiments.js | 6 +++--- src/commands/models.js | 16 +++++++++++++--- src/commands/projects.js | 4 ++-- src/commands/roles.js | 6 +++--- src/commands/secrets.js | 4 ++-- src/commands/sessions.js | 4 ++-- src/commands/skills.js | 10 +++++++--- src/commands/tasks.js | 4 ++-- src/commands/types.js | 9 +++++++-- src/commands/users.js | 4 ++-- 16 files changed, 80 insertions(+), 50 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index ba0def3c..1c546190 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -23,7 +23,7 @@ const Actions = require('../client/actions'); const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, validateOptions, - OPTIONSTABLEFORMAT, + OPTIONSTABLEFORMAT, handleTable, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -59,7 +59,12 @@ module.exports.ListActionsCommand = class { { column: 'Modified', field: 'updatedAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 26 }, ]; - printTable(tableSpec, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + handleTable( + tableSpec, + result, + (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + 'No actions found', + ); } } else { printError(`Failed to list actions: ${response.status} ${response.message}`, options); diff --git a/src/commands/agents.js b/src/commands/agents.js index 88cfcc00..4e6210f6 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -23,7 +23,7 @@ const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, handleTable, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -89,7 +89,12 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + handleTable( + LISTTABLEFORMAT, + result, + (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + 'No agents found', + ); } } else { printError(`Failed to list agents: ${response.status} ${response.message}`, options); @@ -286,11 +291,11 @@ module.exports.ListActivationsCommand = class { return '-'; }; - printTable(tableSpec, _.map(result, (o) => ({ + handleTable(tableSpec, _.map(result, (o) => ({ ...o, name: genName(o), start: o.start ? moment(o.start).fromNow() : '-', - }))); + })), null, 'No activations found'); } } else { printError(`Failed to list activations: ${response.message}`, options); @@ -324,7 +329,7 @@ module.exports.ListServicesCommand = class ListServicesCommand { { column: 'Service Endpoint URL', field: 'url', width: 115 }, { column: 'Parameters', field: 'formatted_types', width: 65 }, ]; - printTable(tableSpec, result); + handleTable(tableSpec, result, null, 'No services found'); } } else { printError(`Failed to return agent service information: ${agentName}: ${response.message}`, options); @@ -368,7 +373,12 @@ module.exports.ListAgentSnapshotsCommand = class { { column: 'Created', field: 'createdAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 26 }, ]; - printTable(tableSpec, result, (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); + handleTable( + tableSpec, + result, + (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' }), + 'No snapshots found', + ); } } else { printError(`Failed to list agent snapshots ${agentName}: ${response.message}`, options); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 30412b3e..f5ff77da 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -29,21 +29,13 @@ const Assessments = require('../client/assessments'); const { printSuccess, printError, parseObject, printTable, filterObject, - validateOptions, OPTIONSTABLEFORMAT, + validateOptions, OPTIONSTABLEFORMAT, handleTable, } = require('./utils'); const { transformDynamicParams, } = require('../parsers'); -const handleTable = (spec, data, transformer, noDataMessage) => { - if (!data || data.length === 0) { - printSuccess(noDataMessage); - } else { - printTable(spec, data, transformer); - } -}; - module.exports.ListResourcesCommand = class { constructor(program) { this.program = program; diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 1e736c08..3f013978 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -20,7 +20,7 @@ const Catalog = require('../client/catalog'); const _ = { get: require('lodash/get') }; const { - printSuccess, printError, filterObject, printTable, validateOptions, OPTIONSTABLEFORMAT, + printSuccess, printError, filterObject, printTable, validateOptions, OPTIONSTABLEFORMAT, handleTable, } = require('./utils'); module.exports.ListCampaignsCommand = class ListCampaignsCommand { @@ -53,7 +53,7 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { { column: 'Title', field: 'title', width: 50 }, { column: 'Description', field: 'description', width: 80 }, ]; - printTable(tableSpec, result); + handleTable(tableSpec, result, null, 'No campaigns found'); } } catch (err) { printError(`Failed to list campaigns: ${err.status} ${err.message}`, options); @@ -242,7 +242,7 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { { column: 'Description', field: 'description', width: 80 }, { column: 'Status', field: 'lifecycleState', width: 30 }, ]; - printTable(tableSpec, data); + handleTable(tableSpec, data, null, 'No missions found'); } }); } catch (err) { diff --git a/src/commands/connections.js b/src/commands/connections.js index 7cf6adcd..03ac836a 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -23,8 +23,7 @@ const Content = require('../client/content'); const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, CONNECTIONTABLEFORMAT, fileExists, - validateOptions, - OPTIONSTABLEFORMAT, + validateOptions, OPTIONSTABLEFORMAT, handleTable, } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -52,7 +51,12 @@ module.exports.ListConnections = class ListConnections { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(CONNECTIONTABLEFORMAT, result, (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' })); + handleTable( + CONNECTIONTABLEFORMAT, + result, + (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' }), + 'No connections found', + ); } } else { printError(`Failed to list connections: ${response.status} ${response.message}`, options); @@ -219,7 +223,7 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { { column: 'Updated On', field: 'updatedAt', width: 26 }, ]; - printTable(tableSpec, result); + handleTable(tableSpec, result, null, 'No connection types found'); } } else { printError(`Failed to list connection types: ${response.status} ${response.message}`, options); diff --git a/src/commands/content.js b/src/commands/content.js index 7054b8ec..7256a305 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -18,7 +18,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Content = require('../client/content'); const { - printSuccess, printError, printTable, getSourceFiles, humanReadableFileSize, filterObject, + printSuccess, printError, getSourceFiles, humanReadableFileSize, filterObject, handleTable, } = require('./utils'); module.exports.ListContent = class ListContent { @@ -44,7 +44,7 @@ module.exports.ListContent = class ListContent { { column: 'Size (bytes)', field: 'Size', width: 20 }, ]; - printTable(tableSpec, response.message); + handleTable(tableSpec, response.message, null, 'No content found'); } } else { printError(`Failed to list content: ${response.status} ${response.message}`, options); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 8c3989df..efa1facd 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -21,7 +21,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { - printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, DEPENDENCYTABLEFORMAT, + printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, DEPENDENCYTABLEFORMAT, handleTable, validateOptions, OPTIONSTABLEFORMAT, } = require('./utils'); @@ -57,7 +57,7 @@ class ListExperiments { { column: 'Description', field: 'description', width: 50 }, ]; - printTable(tableSpec, result.experiments); + handleTable(tableSpec, result.experiments, null, 'No experiments found'); } } else { printError(`Failed to list experiments: ${response.status} - ${response.message}`, options); @@ -164,7 +164,7 @@ class ListRuns { o.artifacts = Object.keys(_.get(o, 'artifacts', {})).join(', '); return o; }; - printTable(tableSpec, _.get(result, 'runs', []), trans); + handleTable(tableSpec, _.get(result, 'runs', []), trans, 'No runs found'); } } else { printError(`Failed to list runs: ${response.status} ${response.status} - ${response.message}`, options); diff --git a/src/commands/models.js b/src/commands/models.js index 8c7e9484..43a4a039 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -29,7 +29,7 @@ const { } = require('./utils'); const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, } = require('./utils'); module.exports.SaveModelCommand = class SaveModelCommand { @@ -96,7 +96,12 @@ module.exports.ListModelsCommand = class ListModelsCommand { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + handleTable( + LISTTABLEFORMAT, + result, + (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + 'No models found', + ); } } else { printError(`Failed to list models: ${response.status} ${response.message}`, options); @@ -133,7 +138,12 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(RUNTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + handleTable( + RUNTABLEFORMAT, + result, + (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + 'No runs found', + ); } } else { printError(`Failed to list model runs: ${response.status} ${response.message}`, options); diff --git a/src/commands/projects.js b/src/commands/projects.js index d5e56da5..29af38b6 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const { - printSuccess, printError, filterObject, parseObject, printTable, validateOptions, OPTIONSTABLEFORMAT, + printSuccess, printError, filterObject, parseObject, printTable, validateOptions, OPTIONSTABLEFORMAT, handleTable, } = require('./utils'); module.exports.CreateProjectCommand = class CreateProjectCommand { @@ -83,7 +83,7 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { { column: 'Title', field: 'title', width: 50 }, { column: 'Description', field: 'description', width: 80 }, ]; - printTable(tableSpec, result); + handleTable(tableSpec, result, null, 'No projects found'); } } catch (err) { printError(`Failed to list projects: ${err.status} ${err.message}`, options); diff --git a/src/commands/roles.js b/src/commands/roles.js index 4fb09d11..210f5e31 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -17,7 +17,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Roles = require('../client/roles'); const { - printSuccess, printError, filterObject, printTable, EXTERNALROLESFORMAT, + printSuccess, printError, filterObject, EXTERNALROLESFORMAT, handleTable, } = require('./utils'); function createGrant(options) { @@ -198,7 +198,7 @@ module.exports.RoleListCommand = class { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable([{ column: 'Role', field: 'role' }], result.roles.map((x) => ({ role: x }))); + handleTable([{ column: 'Role', field: 'role' }], result.roles.map((x) => ({ role: x })), null, 'No roles found'); } } else { printError(`Failed to list roles : ${response.message}`, options); @@ -259,7 +259,7 @@ module.exports.ExternalGroupListCommand = class { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(EXTERNALROLESFORMAT, result, (o) => ({ ...o, roles: o.roles.join(', ') })); + handleTable(EXTERNALROLESFORMAT, result, (o) => ({ ...o, roles: o.roles.join(', ') }), null, 'No external roles found'); } } else { printError(`Failed to list external groups : ${response.message}`, options); diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 6b0d1a4f..b91660f4 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -23,7 +23,7 @@ const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); const Secrets = require('../client/secrets'); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, handleTable, } = require('./utils'); module.exports.ListSecretsCommand = class { @@ -47,7 +47,7 @@ module.exports.ListSecretsCommand = class { const tableSpec = [ { column: 'Secret Key Name', field: 'keyName', width: 50 }, ]; - printTable(tableSpec, map((x) => ({ keyName: x }), result)); + handleTable(tableSpec, map((x) => ({ keyName: x }), result), null, 'No secrets found'); } } else { printError(`Failed to list secrets: ${response.message}`, options); diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 228aab6a..9980cec1 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -22,7 +22,7 @@ const Sessions = require('../client/sessions'); const { SESSIONTABLEFORMAT, formatValidationPath } = require('./utils'); const { - printSuccess, printError, filterObject, parseObject, printTable, + printSuccess, printError, filterObject, parseObject, printTable, handleTable, } = require('./utils'); module.exports.SaveSessionCommand = class SaveSessionCommand { @@ -81,7 +81,7 @@ module.exports.ListSessionsCommand = class ListSessionsCommand { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(SESSIONTABLEFORMAT, result); + handleTable(SESSIONTABLEFORMAT, result, null, 'No sessions found'); } } else { printError(`Failed to list sessions: ${response.status} ${response.message}`, options); diff --git a/src/commands/skills.js b/src/commands/skills.js index e3b46bc0..9033f9c8 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -23,7 +23,7 @@ const Agent = require('../client/agents'); const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, validateOptions, OPTIONSTABLEFORMAT, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, validateOptions, OPTIONSTABLEFORMAT, handleTable, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { @@ -126,8 +126,12 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { if (options.query) result = filterObject(result, options); return printSuccess(JSON.stringify(result, null, 2), options); } - return printTable(tableFormat, - _.sortBy(result, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + return handleTable( + tableFormat, + _.sortBy(result, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + null, + 'No skills found', + ); } return printError(`Failed to list skills: ${response.status} ${response.message}`, options); } catch (err) { diff --git a/src/commands/tasks.js b/src/commands/tasks.js index f2a3b3b1..c5aa90f3 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -19,7 +19,7 @@ const _ = require('lodash'); const { loadProfile } = require('../config'); const Tasks = require('../client/tasks'); -const { printSuccess, printError, printTable } = require('./utils'); +const { printSuccess, printError, handleTable } = require('./utils'); module.exports.ListTasksCommand = class { constructor(program) { @@ -47,7 +47,7 @@ module.exports.ListTasksCommand = class { tasks: _.map(taskResponse, (t) => ({ name: t })), }; const tableFormat = [{ column: 'Task Name', field: 'name', width: 70 }]; - return printTable(tableFormat, result.tasks); + return handleTable(tableFormat, result.tasks, null, 'No tasks found'); } return printError(`Failed to list tasks: ${response.message}`, options); } catch (err) { diff --git a/src/commands/types.js b/src/commands/types.js index e7187e78..8d7c4358 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -24,7 +24,7 @@ const { } = require('./utils'); const { - printSuccess, printError, parseObject, printTable, + printSuccess, printError, parseObject, printTable, handleTable, } = require('./utils'); module.exports.SaveTypeCommand = class SaveTypeCommand { @@ -80,7 +80,12 @@ module.exports.ListTypesCommand = class ListTypesCommand { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' })); + handleTable( + LISTTABLEFORMAT, + result, + (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + 'No types found', + ); } } else { printError(`Failed to list types: ${response.status} ${response.message}`, options); diff --git a/src/commands/users.js b/src/commands/users.js index 61c75c4f..90516b70 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -17,7 +17,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Users = require('../client/users'); const { - printSuccess, printError, filterObject, printTable, + printSuccess, printError, filterObject, handleTable, } = require('./utils'); function createGrant(options) { @@ -126,7 +126,7 @@ module.exports.UserListCommand = class { if (options.json) { printSuccess(JSON.stringify(result, null, 2), options); } else { - printTable([{ column: 'User', field: 'user' }], result.users.map((x) => ({ user: x }))); + handleTable([{ column: 'User', field: 'user' }], result.users.map((x) => ({ user: x })), null, 'No service users found'); } } else { printError(`Failed to list service users : ${response.message}`, options); From 8757d3f037c4b51b59f19dc2ca60d11e43c5678e Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 17 Mar 2022 11:52:24 +0530 Subject: [PATCH 585/864] handling error --- src/commands/agents.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/agents.js b/src/commands/agents.js index 88cfcc00..1069656b 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -228,6 +228,7 @@ module.exports.ListActivationsCommand = class { this.program = program; } + // eslint-disable-next-line consistent-return async execute(options) { if (_.isEmpty(options.agentName) && _.isEmpty(options.skillName) From 2308a1da4a47783f3f8f0f7cb1bcb2f0d9a5da9b Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 17 Mar 2022 19:38:03 +0530 Subject: [PATCH 586/864] added test --- test/funtionsTest.js | 67 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 test/funtionsTest.js diff --git a/test/funtionsTest.js b/test/funtionsTest.js new file mode 100644 index 00000000..a6a1b4f8 --- /dev/null +++ b/test/funtionsTest.js @@ -0,0 +1,67 @@ +const _ = require('lodash'); +const { expect } = require('chai'); +const mockedEnv = require('mocked-env'); +const sinon = require('sinon'); + +const { + handleTable, +} = require('../src/commands/utils'); + +const { stripAnsi } = require('./utils'); + +const sampleData = [ + { user: 'user-1', name: 'user-name-1' }, + { user: 'user-2', name: 'user-name-2' }, + { user: 'user-3', name: 'user-name-3' }, +]; + +const tableSpec = [ + { column: 'User', field: 'user' }, + { column: 'Name', field: 'name' }, +]; + +let restore; +describe('Handle table function test', () => { + let printSpy; + before(() => { + restore = mockedEnv({}); + }); + + beforeEach(() => { + printSpy = sinon.spy(console, 'log'); + }); + + afterEach(() => { + printSpy.restore(); + }); + + after(() => { + restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + it('should print supplied no string when empty data', () => { + handleTable(tableSpec, [], null, 'No users found'); + expect(getPrintedLines()).to.eql(['No users found']); + }); + + it('should print a table when data is present', () => { + handleTable(tableSpec, sampleData, null, 'No users found'); + expect(getPrintedLines()).to.eql( + [ + '┌────────┬─────────────┐\n' + + '│ User │ Name │\n' + + '├────────┼─────────────┤\n' + + '│ user-1 │ user-name-1 │\n' + + '├────────┼─────────────┤\n' + + '│ user-2 │ user-name-2 │\n' + + '├────────┼─────────────┤\n' + + '│ user-3 │ user-name-3 │\n' + + '└────────┴─────────────┘', + ], + ); + }); +}); From e3071131f2cdf712469b33f2f5c65a6d1654d704 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 17 Mar 2022 19:54:36 +0530 Subject: [PATCH 587/864] updated text --- test/funtionsTest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/funtionsTest.js b/test/funtionsTest.js index a6a1b4f8..ff929769 100644 --- a/test/funtionsTest.js +++ b/test/funtionsTest.js @@ -43,7 +43,7 @@ describe('Handle table function test', () => { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - it('should print supplied no string when empty data', () => { + it('should print supplied error message when data is empty', () => { handleTable(tableSpec, [], null, 'No users found'); expect(getPrintedLines()).to.eql(['No users found']); }); From f72ef2dd43388c1013e81a54d55f970429e2b945 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 18 Mar 2022 12:56:41 -0500 Subject: [PATCH 588/864] Remove JSON.stringify from task log output --- src/commands/tasks.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/tasks.js b/src/commands/tasks.js index f2a3b3b1..8730a7f7 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -92,7 +92,7 @@ module.exports.TaskLogsCommand = class TaskLogsCommand { try { const response = await tasks.taskLogs(options.project || profile.project, profile.token, taskName, options.verbose); if (response.success) { - return printSuccess(JSON.stringify(response.logs), options); + return printSuccess(response.logs, options); } return printError(`Failed to List Task Logs ${taskName}: ${response.message}`, options); } catch (err) { From 494913142bf13380f317d8b8b3eafb03e8aeab7f Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 24 Mar 2022 16:11:31 -0500 Subject: [PATCH 589/864] Fix minimist vulns --- package-lock.json | 10467 +------------------------------------------- 1 file changed, 111 insertions(+), 10356 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6fac821d..d1a3d427 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,10333 +1,8 @@ { "name": "cortex-cli", "version": "2.0.7", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "cortex-cli", - "version": "2.0.7", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "boxen": "5.1.2", - "cache-base": "^2.0.0", - "chalk": "4.1.2", - "cli-table3": "0.6.0", - "commander": "9.0.0", - "debug": "4.3.3", - "find-package-json": "1.2.0", - "form-data": "4.0.0", - "get-stream": "6.0.1", - "glob": "7.2.0", - "got": "11.8.3", - "graphql": "15.6.1", - "graphql-request": "3.7.0", - "is-installed-globally": "0.4.0", - "jmespath": "0.15.0", - "joi": "17.6.0", - "jose-node-cjs-runtime": "4.6.0", - "js-yaml": "4.1.0", - "lodash": "4.17.21", - "mixin-deep": "^2.0.1", - "moment": "2.29.1", - "npm-registry-fetch": "12.0.1", - "plop": "2.7.6", - "prompt": "1.2.2", - "semver": "7.3.5", - "url-join": "4.0.1", - "url-parse": "1.5.10", - "yauzl": "2.10.0" - }, - "bin": { - "cortex": "bin/cortex.js" - }, - "devDependencies": { - "audit-ci": "5.1.2", - "chai": "4.3.6", - "chai-as-promised": "7.1.1", - "eslint": "8.11.0", - "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.25.4", - "husky": "7.0.4", - "madge": "4.0.2", - "mocha": "9.2.2", - "mocked-env": "1.3.5", - "nock": "13.2.4", - "nyc": "15.1.0", - "rewire": "6.0.0", - "sinon": "11.1.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/core/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/core/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/core/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/core/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/core/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/core/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", - "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", - "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/template/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/template/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/template/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/template/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/template/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/traverse/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/traverse/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types/node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" - }, - "node_modules/@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", - "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", - "deprecated": "this version had an improper engines field added, update to 1.1.1", - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@sellside/emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", - "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/fined": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", - "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "node_modules/@types/inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", - "dependencies": { - "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "node_modules/@types/interpret": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/liftoff": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", - "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", - "dependencies": { - "@types/fined": "*", - "@types/interpret": "*", - "@types/node": "*" - } - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "node_modules/@types/node": { - "version": "14.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", - "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "dev": true, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/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==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", - "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/app-module-path": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", - "dev": true - }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-module-types": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", - "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", - "dev": true - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/audit-ci": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", - "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", - "dev": true, - "dependencies": { - "array.prototype.flatmap": "^1.2.5", - "cross-spawn": "^7.0.3", - "escape-string-regexp": "^4.0.0", - "event-stream": "4.0.1", - "jju": "^1.4.0", - "JSONStream": "^1.3.5", - "readline-transform": "1.0.0", - "semver": "^7.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "audit-ci": "lib/audit-ci.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/audit-ci/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/audit-ci/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/audit-ci/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/audit-ci/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/audit-ci/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/audit-ci/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/audit-ci/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/audit-ci/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/cache-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", - "dependencies": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/boxen/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "engines": { - "node": "*" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cache-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", - "dependencies": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001303", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", - "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", - "dependencies": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", - "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/cli-table3/node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", - "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "node_modules/constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "dependencies": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/convert-source-map": { - "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, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js-pure": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", - "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decomment": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/decomment/-/decomment-0.9.5.tgz", - "integrity": "sha512-h0TZ8t6Dp49duwyDHo3iw67mnh9/UpFiSSiOb5gDK1sqoXzrfX/SQxIUQd2R2QEiSnqib0KF2fnKnGfAhAs6lg==", - "dev": true, - "dependencies": { - "esprima": "4.0.1" - }, - "engines": { - "node": ">=6.4", - "npm": ">=2.15" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/default-require-extensions/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", - "dependencies": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/dependency-tree": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-8.1.2.tgz", - "integrity": "sha512-c4CL1IKxkKng0oT5xrg4uNiiMVFqTGOXqHSFx7XEFdgSsp6nw3AGGruICppzJUrfad/r7GLqt26rmWU4h4j39A==", - "dev": true, - "dependencies": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "filing-cabinet": "^3.0.1", - "precinct": "^8.0.0", - "typescript": "^3.9.7" - }, - "bin": { - "dependency-tree": "bin/cli.js" - }, - "engines": { - "node": "^10.13 || ^12 || >=14" - } - }, - "node_modules/dependency-tree/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/dependency-tree/node_modules/precinct": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.2.0.tgz", - "integrity": "sha512-D9fQM/fAS7rGLA1m+PusoEMc07g9I5lZUf6rstT5XPCPn56raSIrj9R9y052YV8j4N+tjkgfCgT10bRQ3vg8+A==", - "dev": true, - "dependencies": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "detective-amd": "^3.0.1", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.0", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^7.0.0", - "module-definition": "^3.3.1", - "node-source-walk": "^4.2.0" - }, - "bin": { - "precinct": "bin/cli.js" - }, - "engines": { - "node": "^10.13 || ^12 || >=14" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detective-amd": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.0.tgz", - "integrity": "sha512-G7wGWT6f0VErjUkE2utCm7IUshT7nBh7aBBH2VBOiY9Dqy2DMens5iiOvYCuhstoIxRKLrnOvVAz4/EyPIAjnw==", - "dev": true, - "dependencies": { - "ast-module-types": "^2.7.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^3.0.0", - "node-source-walk": "^4.0.0" - }, - "bin": { - "detective-amd": "bin/detective-amd.js" - }, - "engines": { - "node": ">= 6.0" - } - }, - "node_modules/detective-cjs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.1.tgz", - "integrity": "sha512-JQtNTBgFY6h8uT6pgph5QpV3IyxDv+z3qPk/FZRDT9TlFfm5dnRtpH39WtQEr1khqsUxVqXzKjZHpdoQvQbllg==", - "dev": true, - "dependencies": { - "ast-module-types": "^2.4.0", - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">= 6.0" - } - }, - "node_modules/detective-es6": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.1.tgz", - "integrity": "sha512-22z7MblxkhsIQGuALeGwCKEfqNy4WmgDGmfJCwdXbfDkVYIiIDmY513hiIWBvX3kCmzvvWE7RR7kAYxs01wwKQ==", - "dev": true, - "dependencies": { - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">= 6.0" - } - }, - "node_modules/detective-less": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", - "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", - "dev": true, - "dependencies": { - "debug": "^4.0.0", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">= 6.0" - } - }, - "node_modules/detective-postcss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", - "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "is-url": "^1.2.4", - "postcss": "^8.1.7", - "postcss-values-parser": "^2.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/detective-sass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.1.tgz", - "integrity": "sha512-oSbrBozRjJ+QFF4WJFbjPQKeakoaY1GiR380NPqwdbWYd5wfl5cLWv0l6LsJVqrgWfFN1bjFqSeo32Nxza8Lbw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">= 6.0" - } - }, - "node_modules/detective-scss": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.1.tgz", - "integrity": "sha512-VveyXW4WQE04s05KlJ8K0bG34jtHQVgTc9InspqoQxvnelj/rdgSAy7i2DXAazyQNFKlWSWbS+Ro2DWKFOKTPQ==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">= 6.0" - } - }, - "node_modules/detective-stylus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.0.tgz", - "integrity": "sha1-UK7n24uruZA4HwEMY/q7pbWOVM0=", - "dev": true - }, - "node_modules/detective-typescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.0.tgz", - "integrity": "sha512-y/Ev98AleGvl43YKTNcA2Q+lyFmsmCfTTNWy4cjEJxoLkbobcXtRS0Kvx06daCgr2GdtlwLfNzL553BkktfJoA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "^4.8.2", - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.2.0", - "typescript": "^3.9.7" - }, - "engines": { - "node": "^10.13 || >=12.0.0" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dir-glob/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.55", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.55.tgz", - "integrity": "sha512-AoCDEVElLY8mwe4TuDDkr1jxvSh/Ih5PFlEXCpmwFkq9JOXn4K58CScgBl+R1ghFW9cPJ7VeWo30nAHSRCe6rw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.2.1", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/eslint-config-airbnb-base/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-import/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-plugin-import/node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/glob-parent/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", - "dev": true, - "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", - "engines": { - "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" - } - }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "engines": { - "node": "> 0.1.90" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/fast-glob/node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filing-cabinet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.0.1.tgz", - "integrity": "sha512-3Wn18+vSKmrlOc0fp5J7p1UyGi7yCWUpPhGVFzZsUyGzG+AEzYWguMGxUbjsgsV4whRHCCiYxIrGyKivBBDDSg==", - "dev": true, - "dependencies": { - "app-module-path": "^2.2.0", - "commander": "^2.20.3", - "debug": "^4.3.1", - "decomment": "^0.9.3", - "enhanced-resolve": "^5.3.2", - "is-relative-path": "^1.0.2", - "module-definition": "^3.3.1", - "module-lookup-amd": "^7.0.0", - "resolve": "^1.19.0", - "resolve-dependency-path": "^2.0.0", - "sass-lookup": "^3.0.0", - "stylus-lookup": "^3.0.1", - "typescript": "^3.9.7" - }, - "bin": { - "filing-cabinet": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/filing-cabinet/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-package-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" - }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "node_modules/flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", - "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", - "dev": true - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-amd-module-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.0.tgz", - "integrity": "sha512-99Q7COuACPfVt18zH9N4VAMyb81S6TUgJm2NgV6ERtkh9VIkAaByZkW530wl3lLN5KTtSrK9jVLxYsoP5hQKsw==", - "dev": true, - "dependencies": { - "ast-module-types": "^2.3.2", - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/globby/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "node_modules/graphql": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", - "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-request": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", - "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", - "dependencies": { - "cross-fetch": "^3.0.6", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" - }, - "peerDependencies": { - "graphql": "14 - 16" - } - }, - "node_modules/graphql-request/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/graphviz": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/graphviz/-/graphviz-0.0.9.tgz", - "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", - "dev": true, - "dependencies": { - "temp": "~0.4.0" - }, - "engines": { - "node": ">=0.6.8" - } - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/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==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" - }, - "node_modules/is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "dependencies": { - "lower-case": "^1.1.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-relative-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", - "integrity": "sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY=", - "dev": true - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "dependencies": { - "upper-case": "^1.1.0" - } - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", - "dev": true - }, - "node_modules/jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/jose-node-cjs-runtime": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.0.tgz", - "integrity": "sha512-Bv7BBMY1gx5unOiJHggs8Ag3/mX6BPi7jq2CEMpFEVP5OehbbzjWs3zNOdvTFtrEUkGysTZn69j0MUx7kesjgw==", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, - "node_modules/keyv": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", - "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", - "dev": true, - "engines": { - "node": "> 0.8" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loupe": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.1.tgz", - "integrity": "sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "node_modules/lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "dependencies": { - "lower-case": "^1.1.2" - } - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/madge": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/madge/-/madge-4.0.2.tgz", - "integrity": "sha512-l5bnA2dvyk0azLKDbOTCI+wDZ6nB007PhvPdmiYlPmqwVi49JPbhQrH/t4u8E6Akp3gwji1GZuA+v/F5q6yoWQ==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "commander": "^6.2.1", - "commondir": "^1.0.1", - "debug": "^4.0.1", - "dependency-tree": "^8.0.0", - "detective-amd": "^3.0.1", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.1.0", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^7.0.0", - "graphviz": "0.0.9", - "ora": "^5.1.0", - "pluralize": "^8.0.0", - "precinct": "^7.0.0", - "pretty-ms": "^7.0.0", - "rc": "^1.2.7", - "typescript": "^3.9.5", - "walkdir": "^0.4.1" - }, - "bin": { - "madge": "bin/cli.js" - }, - "engines": { - "node": "^10.13 || ^12 || >=14" - }, - "funding": { - "type": "individual", - "url": "https://www.paypal.me/pahen" - } - }, - "node_modules/madge/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/madge/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/madge/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/madge/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-fetch-happen": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.0.tgz", - "integrity": "sha512-CREcDkbKZZ64g5MN1FT+u58mDHX9FQFFtFyio5HonX44BdQdytqPZBXUz+6ibi2w/6ncji59f2phyXGSMGpgzA==", - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", - "dev": true - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", - "dev": true, - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "4.2.1", - "ms": "2.1.3", - "nanoid": "3.3.1", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocked-env": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", - "dev": true, - "dependencies": { - "check-more-types": "2.24.0", - "debug": "4.3.2", - "lazy-ass": "1.6.0", - "ramda": "0.27.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocked-env/node_modules/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, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/module-definition": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.3.1.tgz", - "integrity": "sha512-kLidGPwQ2yq484nSD+D3JoJp4Etc0Ox9P0L34Pu/cU4X4HcG7k7p62XI5BBuvURWMRX3RPyuhOcBHbKus+UH4A==", - "dev": true, - "dependencies": { - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.0.0" - }, - "bin": { - "module-definition": "bin/module-definition.js" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/module-lookup-amd": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", - "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", - "dev": true, - "dependencies": { - "commander": "^2.8.1", - "debug": "^4.1.0", - "glob": "^7.1.6", - "requirejs": "^2.3.5", - "requirejs-config-file": "^4.0.0" - }, - "bin": { - "lookup-amd": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/module-lookup-amd/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/nise": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", - "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^7.0.4", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/nock": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", - "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash.set": "^4.3.2", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-plop": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", - "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", - "dependencies": { - "@babel/runtime-corejs3": "^7.9.2", - "@types/inquirer": "^6.5.0", - "change-case": "^3.1.0", - "del": "^5.1.0", - "globby": "^10.0.1", - "handlebars": "^4.4.3", - "inquirer": "^7.1.0", - "isbinaryfile": "^4.0.2", - "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=8.9.4" - } - }, - "node_modules/node-plop/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/node-source-walk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.2.0.tgz", - "integrity": "sha512-hPs/QMe6zS94f5+jG3kk9E7TNm4P2SulrKiLWMzKszBfNZvL/V6wseHlTd7IvfW0NZWqPtK3+9yYNr+3USGteA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-registry-fetch": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.1.tgz", - "integrity": "sha512-ricy4ezH3Uv0d4am6RSwHjCYTWJI74NJjurIigWMAG7Vs3PFyd0TUlkrez5L0AgaPzDLRsEzqb5cOZ/Ue01bmA==", - "dependencies": { - "make-fetch-happen": "^10.0.0", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/ora/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "dependencies": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-to-regexp/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "dependencies": { - "through": "~2.3" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/plop": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", - "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", - "dependencies": { - "@types/liftoff": "^2.5.1", - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", - "minimist": "^1.2.5", - "node-plop": "^0.26.3", - "ora": "^3.4.0", - "v8flags": "^2.0.10" - }, - "bin": { - "plop": "bin/plop.js" - }, - "engines": { - "node": ">=8.9.4" - } - }, - "node_modules/plop/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.4.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", - "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", - "dev": true, - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", - "dev": true, - "dependencies": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=6.14.4" - } - }, - "node_modules/precinct": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-7.1.0.tgz", - "integrity": "sha512-I1RkW5PX51/q6Xl39//D7x9NgaKNGHpR5DCNaoxP/b2+KbzzXDNhauJUMV17KSYkJA41CSpwYUPRtRoNxbshWA==", - "dev": true, - "dependencies": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "detective-amd": "^3.0.1", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.0", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^6.0.0", - "module-definition": "^3.3.1", - "node-source-walk": "^4.2.0" - }, - "bin": { - "precinct": "bin/cli.js" - }, - "engines": { - "node": "^10.13 || ^12 || >=14" - } - }, - "node_modules/precinct/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/precinct/node_modules/detective-typescript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-6.0.0.tgz", - "integrity": "sha512-vTidcSDK3QostdbrH2Rwf9FhvrgJ4oIaVw5jbolgruTejexk6nNa9DShGpuS8CFVDb1IP86jct5BaZt1wSxpkA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "^4.8.2", - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.2.0", - "typescript": "^3.9.7" - }, - "engines": { - "node": "^10.13 || >=12.0.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-ms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "dev": true, - "dependencies": { - "parse-ms": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prompt": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.2.tgz", - "integrity": "sha512-XNXhNv3PUHJDcDkISpCwSJxtw9Bor4FZnlMUDW64N/KCPdxhfVlpD5+YUXI/Z8a9QWmOhs9KSiVtR8nzPS0BYA==", - "dependencies": { - "@colors/colors": "1.5.0", - "async": "~0.9.0", - "read": "1.0.x", - "revalidator": "0.1.x", - "winston": "2.x" - }, - "engines": { - "node": ">= 0.6.6" - } - }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ramda": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readline-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/repeat-element": { - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true, - "bin": { - "r_js": "bin/r.js", - "r.js": "bin/r.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/requirejs-config-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", - "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.0", - "stringify-object": "^3.2.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/resolve-dependency-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", - "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/revalidator": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/rewire": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", - "dev": true, - "dependencies": { - "eslint": "^7.32.0" - } - }, - "node_modules/rewire/node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/rewire/node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/rewire/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/rewire/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/rewire/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rewire/node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/rewire/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/rewire/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/rewire/node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/rewire/node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rewire/node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rewire/node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rewire/node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sass-lookup": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", - "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", - "dev": true, - "dependencies": { - "commander": "^2.16.0" - }, - "bin": { - "sass-lookup": "bin/cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/sass-lookup/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", - "dependencies": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/sinon": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/samsam": "^6.0.2", - "diff": "^5.0.0", - "nise": "^5.1.0", - "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated" - }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "engines": { - "node": "*" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylus-lookup": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", - "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", - "dev": true, - "dependencies": { - "commander": "^2.8.1", - "debug": "^4.1.0" - }, - "bin": { - "stylus-lookup": "bin/cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/stylus-lookup/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "dependencies": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/temp": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", - "integrity": "sha1-ZxrWPVe+D+nXKUZks/xABjZnimA=", - "dev": true, - "engines": [ - "node >=0.4.0" - ] - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", - "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "node_modules/upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "dependencies": { - "upper-case": "^1.1.1" - } - }, - "node_modules/uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "bin": { - "user-home": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", - "dev": true - }, - "node_modules/v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dependencies": { - "user-home": "^1.1.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/walkdir": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", - "dependencies": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "stack-trace": "0.0.x" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/winston/node_modules/async": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" - }, - "node_modules/winston/node_modules/colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, "dependencies": { "@babel/code-frame": { "version": "7.12.11", @@ -11355,6 +1030,16 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", @@ -11365,8 +1050,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true, - "requires": {} + "dev": true }, "agent-base": { "version": "6.0.2", @@ -11599,12 +1283,12 @@ "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", "dev": true, "requires": { + "JSONStream": "^1.3.5", "array.prototype.flatmap": "^1.2.5", "cross-spawn": "^7.0.3", "escape-string-regexp": "^4.0.0", "event-stream": "4.0.1", "jju": "^1.4.0", - "JSONStream": "^1.3.5", "readline-transform": "1.0.0", "semver": "^7.0.0", "yargs": "^16.0.0" @@ -11702,14 +1386,17 @@ }, "dependencies": { "cache-base": { - "version": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { - "@sellside/emitter": "^1.2.1", "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", "get-value": "^2.0.6", + "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", + "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" } @@ -11748,9 +1435,22 @@ "kind-of": "^6.0.2" } }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, "mixin-deep": { - "version": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } } } }, @@ -14039,6 +3739,53 @@ "has-symbols": "^1.0.2" } }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -14784,16 +4531,6 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -15204,9 +4941,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { "version": "3.1.6", @@ -17392,15 +7129,6 @@ "through": "~2.3.4" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -17456,6 +7184,15 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, "stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", @@ -17642,6 +7379,24 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", From 2dfa9676f8dabf795eaa488a059cfc0147b1255f Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Fri, 25 Mar 2022 14:12:36 -0500 Subject: [PATCH 590/864] bump package version to 2.0.8 for release (#511) --- package-lock.json | 28 ++++++++++++++-------------- package.json | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index d1a3d427..967b834a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1376,29 +1376,29 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "^1.0.1", + "cache-base": "2.0.2", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", + "mixin-deep": "2.0.1", "pascalcase": "^0.1.1" }, "dependencies": { "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", "requires": { - "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", - "get-value": "^2.0.6", + "unset-value": "^1.0.0", "has-value": "^1.0.0", - "isobject": "^3.0.1", + "collection-visit": "^1.0.0", "set-value": "^2.0.0", + "isobject": "^3.0.1", + "get-value": "^2.0.6", "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "union-value": "^1.0.0" } }, "define-property": { @@ -1444,9 +1444,9 @@ } }, "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -7871,4 +7871,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index d6c3f7fa..05c4317c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.7", + "version": "2.0.8", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From a27600e78385b367649e23ec7f36a4897c425c35 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 29 Mar 2022 12:00:37 -0500 Subject: [PATCH 591/864] remove preinstall steps, bump engine version to 14.x since this is now a warning and not strictly enforced bump for ansi regex vuln --- package-lock.json | 6 +++--- package.json | 7 +------ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 967b834a..02802707 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5711,9 +5711,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" }, "ansi-styles": { "version": "3.2.1", diff --git a/package.json b/package.json index 05c4317c..408af467 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,12 @@ "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { - "preinstall": "npx npm-force-resolutions && npx check-node-version -p --package", "prepare": "husky install", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", "test": "NODE_ENV=test nyc mocha --recursive --exit --timeout 10000" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "repository": { "type": "git", @@ -81,9 +80,5 @@ "text", "html" ] - }, - "resolutions": { - "mixin-deep": "2.0.1", - "cache-base": "2.0.2" } } From 46f03b93d900fcda293ea474699e8a48d55fad16 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 29 Mar 2022 12:15:25 -0500 Subject: [PATCH 592/864] Bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 408af467..6042c3d8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.8", + "version": "2.0.9", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From cdc3c41e12ec75f64c13bffd4bf87a261a153b2c Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 31 Mar 2022 12:03:12 -0500 Subject: [PATCH 593/864] Remove travis.yaml unused Add files to package.json to remove cruft Regenerate package-lock.json ( this is NOT distributed ) Use npm-shrinwrap.json as package-lock.json isn't supported, force-resolutions required package-lock.json to work so pre/post pack copies/removes the shrinkwrap file --- .gitignore | 5 +- .travis.yml | 14 - package-lock.json | 783 +++++++++++++++++++++++++++++++++++++++------- package.json | 16 + 4 files changed, 698 insertions(+), 120 deletions(-) delete mode 100644 .travis.yml diff --git a/.gitignore b/.gitignore index 244dc2b9..5d88d563 100644 --- a/.gitignore +++ b/.gitignore @@ -96,4 +96,7 @@ test/cortex/local.json .local/ dist/ -cortex-cli-docs.md \ No newline at end of file +cortex-cli-docs.md +package/ +*.tgz +npm-shrinkwrap.json diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ca26631f..00000000 --- a/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -language: node_js -node_js: -- lts/* -cache: - directories: - - node_modules -deploy: - provider: npm - email: jgielstra@cognitivescale.com - skip_cleanup: true - on: - branch: master - api_key: - secure: aKgZRwBvLfIc/SV86gRabhOWYBV/9o5IXGmtxgHeM+nKW+94pz8Akh/mHilkM7ZAvK8WJaXRjHJrX3xez1rhuYEmVoXk5XXEUig9dc3YqzP1T7x9DRK4p3+0dGKEkzRacqZ94EDXQmvEd066KU/4lzsRxEQkhudUTDPVNngqMiRQEUPzLxGbmO1f+TIJ9MBvWo42Gci0c5KT8Zf4f2rX9PIxfmNGq/lHDMIe6DVIHrEHVspNjjuYO4TOHg9i2DQiXAc6F56qCkoGoBvaUj/p5Aljk6ue31MD5OzC4UxB+znyXh8wk1FgKiErr0wodNfHbIlId+74OFYmNp0Of8RkrdScXT1GgX/wFRncu23b73ndx0itm/FjFNUodDLyONm3lpvtOgRGk7Q0fv7/NBikVIZqtPAtWuDbw26btOz2+9xTDdM0g68mn62EJ2injEBpqbK7JnUilpSjT4rnMzvKcRoQeEJQ8CAIPZKt91+7pEFYMfQyIt/sz3kro1GnDb4rJxpVkwqfsn3muB86UuS7UzAia4DLnXDCPPLLfaqMjo+u4eh1UxGvlVXhXIO0PpQ7jZlM9WM8gT0kpbrkcBTzgH7LlZgSZLBQfTZr4xo9kIIFZF3D/MnDGqW14xb/H3aWhxdl4u5+XwEBFtfqaugZB3mzoClowfO3IO4ZKwpQBbA= diff --git a/package-lock.json b/package-lock.json index 02802707..84450417 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.7", + "version": "2.0.9", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -942,11 +942,23 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, + "@types/normalize-package-data": { + "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/responselike": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", @@ -1120,11 +1132,6 @@ } } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1239,6 +1246,12 @@ "es-abstract": "^1.19.0" } }, + "arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "dev": true + }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -1297,8 +1310,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "cliui": { "version": "7.0.4", @@ -1324,6 +1336,14 @@ "dev": true, "requires": { "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } } }, "wrap-ansi": { @@ -1376,12 +1396,12 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "2.0.2", + "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", - "mixin-deep": "2.0.1", + "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "dependencies": { @@ -1390,15 +1410,13 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", "requires": { - "component-emitter": "^1.2.1", - "unset-value": "^1.0.0", - "has-value": "^1.0.0", + "@sellside/emitter": "^1.2.1", "collection-visit": "^1.0.0", - "set-value": "^2.0.0", - "isobject": "^3.0.1", "get-value": "^2.0.6", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0" + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "define-property": { @@ -1446,11 +1464,7 @@ "mixin-deep": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" } } }, @@ -1528,6 +1542,13 @@ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + } } }, "type-fest": { @@ -1714,6 +1735,26 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, + "camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "requires": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, "caniuse-lite": { "version": "1.0.30001303", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", @@ -1897,8 +1938,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "strip-ansi": { "version": "6.0.1", @@ -1907,6 +1947,14 @@ "dev": true, "requires": { "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } } } } @@ -2017,6 +2065,134 @@ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==" }, + "cp-file": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", + "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + } + }, + "cpy": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cpy/-/cpy-9.0.1.tgz", + "integrity": "sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==", + "dev": true, + "requires": { + "arrify": "^3.0.0", + "cp-file": "^9.1.0", + "globby": "^13.1.1", + "junk": "^4.0.0", + "micromatch": "^4.0.4", + "nested-error-stacks": "^2.1.0", + "p-filter": "^3.0.0", + "p-map": "^5.3.0" + }, + "dependencies": { + "aggregate-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.0.tgz", + "integrity": "sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==", + "dev": true, + "requires": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + } + }, + "clean-stack": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.1.0.tgz", + "integrity": "sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==", + "dev": true, + "requires": { + "escape-string-regexp": "5.0.0" + } + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "globby": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.1.tgz", + "integrity": "sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "p-map": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.3.0.tgz", + "integrity": "sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==", + "dev": true, + "requires": { + "aggregate-error": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, + "cpy-cli": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-4.1.0.tgz", + "integrity": "sha512-JA6bth6/mxPCa19SrWkIuPEBrea8vO9g1v0qhmCLnAKOfTcsNk5/X3W1o9aZuOHgugRcxdyR67rO4Gw/DA+4Qg==", + "dev": true, + "requires": { + "cpy": "^9.0.0", + "meow": "^10.1.2" + } + }, "cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -2055,6 +2231,30 @@ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -2454,6 +2654,15 @@ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, "es-abstract": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", @@ -3690,6 +3899,12 @@ } } }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3707,9 +3922,9 @@ }, "dependencies": { "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" } } }, @@ -3739,53 +3954,6 @@ "has-symbols": "^1.0.2" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -4019,6 +4187,12 @@ } } }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -4499,6 +4673,12 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -4531,6 +4711,12 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, + "junk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.0.tgz", + "integrity": "sha512-ojtSU++zLJ3jQG9bAYjg94w+/DOJtRyD7nPaerMFrBhmdVmiV5/exYH5t4uHga4G/95nT6hr1OJoKIFbYbrW5w==", + "dev": true + }, "just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -4581,6 +4767,12 @@ "resolve": "^1.1.7" } }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -4703,8 +4895,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "commander": { "version": "6.2.1", @@ -4736,6 +4927,14 @@ "dev": true, "requires": { "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } } } } @@ -4793,6 +4992,12 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, "map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", @@ -4807,6 +5012,46 @@ "object-visit": "^1.0.0" } }, + "meow": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.2.tgz", + "integrity": "sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4932,6 +5177,12 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -4945,6 +5196,31 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + } + } + }, "minipass": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", @@ -5240,6 +5516,12 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "nested-error-stacks": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", + "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", + "dev": true + }, "nise": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", @@ -5333,6 +5615,29 @@ "@babel/parser": "^7.0.0" } }, + "normalize-package-data": { + "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", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5405,8 +5710,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "camelcase": { "version": "5.3.1", @@ -5502,6 +5806,14 @@ "dev": true, "requires": { "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } } }, "wrap-ansi": { @@ -5711,9 +6023,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -5795,6 +6107,13 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + } } }, "supports-color": { @@ -5817,6 +6136,72 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, + "p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", + "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", + "dev": true, + "requires": { + "p-map": "^5.1.0" + }, + "dependencies": { + "aggregate-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.0.tgz", + "integrity": "sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==", + "dev": true, + "requires": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + } + }, + "clean-stack": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.1.0.tgz", + "integrity": "sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==", + "dev": true, + "requires": { + "escape-string-regexp": "5.0.0" + } + }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + }, + "p-map": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.3.0.tgz", + "integrity": "sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==", + "dev": true, + "requires": { + "aggregate-error": "^4.0.0" + } + } + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -5843,6 +6228,15 @@ "aggregate-error": "^3.0.0" } }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -5888,6 +6282,18 @@ "path-root": "^0.1.1" } }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, "parse-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", @@ -6081,9 +6487,9 @@ }, "dependencies": { "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "2.2.1", @@ -6108,6 +6514,13 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + } } }, "supports-color": { @@ -6326,6 +6739,88 @@ "mute-stream": "~0.0.4" } }, + "read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "requires": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "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 + }, + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } + }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -6360,6 +6855,24 @@ "resolve": "^1.1.6" } }, + "redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "requires": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true + } + } + }, "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", @@ -7064,6 +7577,38 @@ "which": "^2.0.1" } }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, "split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -7160,6 +7705,13 @@ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + } } } } @@ -7210,6 +7762,13 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + } } }, "strip-bom": { @@ -7218,6 +7777,15 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, + "strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "requires": { + "min-indent": "^1.0.1" + } + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -7379,24 +7947,6 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -7421,6 +7971,12 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, + "trim-newlines": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", + "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", + "dev": true + }, "tsconfig-paths": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", @@ -7652,6 +8208,16 @@ "user-home": "^1.1.1" } }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", @@ -7780,8 +8346,7 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "strip-ansi": { "version": "6.0.1", @@ -7790,6 +8355,14 @@ "dev": true, "requires": { "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + } } } } @@ -7871,4 +8444,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 6042c3d8..0da09703 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,19 @@ "main": "./bin/cortex.js", "scripts": { "prepare": "husky install", + "preinstall": "npx --quiet force-resolutions", + "prepack": "cp package-lock.json npm-shrinkwrap.json", + "postpack": "rm npm-shrinkwrap.json", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", "test": "NODE_ENV=test nyc mocha --recursive --exit --timeout 10000" }, + "files": [ + "bin/*", + "src/*", + "README.md", + "npm-shrinkwrap.json", + "LICENSE" + ], "engines": { "node": ">=14.0.0" }, @@ -62,6 +72,7 @@ "devDependencies": { "audit-ci": "5.1.2", "chai": "4.3.6", + "cpy-cli": "4.1.0", "chai-as-promised": "7.1.1", "eslint": "8.11.0", "eslint-config-airbnb-base": "15.0.0", @@ -80,5 +91,10 @@ "text", "html" ] + }, + "resolutions": { + "mixin-deep": "2.0.1", + "cache-base": "2.0.2", + "ansi-regex": "5.0.1" } } From 4b7d1c6af9c2ea4a37948f6fa0a6c75c297d8f33 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 31 Mar 2022 13:39:56 -0500 Subject: [PATCH 594/864] Remove unused packages --- package-lock.json | 1403 --------------------------------------------- package.json | 4 - 2 files changed, 1407 deletions(-) diff --git a/package-lock.json b/package-lock.json index 84450417..7bc912aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -347,12 +347,6 @@ } } }, - "@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true - }, "@babel/runtime-corejs3": { "version": "7.16.8", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", @@ -942,23 +936,11 @@ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, "@types/node": { "version": "14.14.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, - "@types/normalize-package-data": { - "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/responselike": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", @@ -975,67 +957,6 @@ "@types/node": "*" } }, - "@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "globby": { - "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", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -1150,12 +1071,6 @@ "picomatch": "^2.0.4" } }, - "app-module-path": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", - "dev": true - }, "append-transform": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", @@ -1246,12 +1161,6 @@ "es-abstract": "^1.19.0" } }, - "arrify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", - "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", - "dev": true - }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -1263,12 +1172,6 @@ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, - "ast-module-types": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", - "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", - "dev": true - }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -1468,29 +1371,12 @@ } } }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -1604,16 +1490,6 @@ "picocolors": "^1.0.0" } }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -1649,20 +1525,6 @@ "unique-filename": "^1.1.1" } }, - "cache-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", - "requires": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -1735,26 +1597,6 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, - "camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", - "dev": true, - "requires": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, "caniuse-lite": { "version": "1.0.30001303", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", @@ -2065,134 +1907,6 @@ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==" }, - "cp-file": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-9.1.0.tgz", - "integrity": "sha512-3scnzFj/94eb7y4wyXRWwvzLFaQp87yyfTnChIjlfYrVqp5lVO3E2hIJMeQIltUT0K2ZAB3An1qXcBmwGyvuwA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - } - }, - "cpy": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-9.0.1.tgz", - "integrity": "sha512-D9U0DR5FjTCN3oMTcFGktanHnAG5l020yvOCR1zKILmAyPP7I/9pl6NFgRbDcmSENtbK1sQLBz1p9HIOlroiNg==", - "dev": true, - "requires": { - "arrify": "^3.0.0", - "cp-file": "^9.1.0", - "globby": "^13.1.1", - "junk": "^4.0.0", - "micromatch": "^4.0.4", - "nested-error-stacks": "^2.1.0", - "p-filter": "^3.0.0", - "p-map": "^5.3.0" - }, - "dependencies": { - "aggregate-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.0.tgz", - "integrity": "sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==", - "dev": true, - "requires": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - } - }, - "clean-stack": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.1.0.tgz", - "integrity": "sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==", - "dev": true, - "requires": { - "escape-string-regexp": "5.0.0" - } - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "globby": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.1.tgz", - "integrity": "sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "p-map": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.3.0.tgz", - "integrity": "sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==", - "dev": true, - "requires": { - "aggregate-error": "^4.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "cpy-cli": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-4.1.0.tgz", - "integrity": "sha512-JA6bth6/mxPCa19SrWkIuPEBrea8vO9g1v0qhmCLnAKOfTcsNk5/X3W1o9aZuOHgugRcxdyR67rO4Gw/DA+4Qg==", - "dev": true, - "requires": { - "cpy": "^9.0.0", - "meow": "^10.1.2" - } - }, "cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -2231,44 +1945,11 @@ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, - "decomment": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/decomment/-/decomment-0.9.5.tgz", - "integrity": "sha512-h0TZ8t6Dp49duwyDHo3iw67mnh9/UpFiSSiOb5gDK1sqoXzrfX/SQxIUQd2R2QEiSnqib0KF2fnKnGfAhAs6lg==", - "dev": true, - "requires": { - "esprima": "4.0.1" - } - }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -2293,12 +1974,6 @@ "type-detect": "^4.0.0" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -2416,147 +2091,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, - "dependency-tree": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-8.1.2.tgz", - "integrity": "sha512-c4CL1IKxkKng0oT5xrg4uNiiMVFqTGOXqHSFx7XEFdgSsp6nw3AGGruICppzJUrfad/r7GLqt26rmWU4h4j39A==", - "dev": true, - "requires": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "filing-cabinet": "^3.0.1", - "precinct": "^8.0.0", - "typescript": "^3.9.7" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "precinct": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.2.0.tgz", - "integrity": "sha512-D9fQM/fAS7rGLA1m+PusoEMc07g9I5lZUf6rstT5XPCPn56raSIrj9R9y052YV8j4N+tjkgfCgT10bRQ3vg8+A==", - "dev": true, - "requires": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "detective-amd": "^3.0.1", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.0", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^7.0.0", - "module-definition": "^3.3.1", - "node-source-walk": "^4.2.0" - } - } - } - }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, - "detective-amd": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.0.tgz", - "integrity": "sha512-G7wGWT6f0VErjUkE2utCm7IUshT7nBh7aBBH2VBOiY9Dqy2DMens5iiOvYCuhstoIxRKLrnOvVAz4/EyPIAjnw==", - "dev": true, - "requires": { - "ast-module-types": "^2.7.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^3.0.0", - "node-source-walk": "^4.0.0" - } - }, - "detective-cjs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.1.tgz", - "integrity": "sha512-JQtNTBgFY6h8uT6pgph5QpV3IyxDv+z3qPk/FZRDT9TlFfm5dnRtpH39WtQEr1khqsUxVqXzKjZHpdoQvQbllg==", - "dev": true, - "requires": { - "ast-module-types": "^2.4.0", - "node-source-walk": "^4.0.0" - } - }, - "detective-es6": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.1.tgz", - "integrity": "sha512-22z7MblxkhsIQGuALeGwCKEfqNy4WmgDGmfJCwdXbfDkVYIiIDmY513hiIWBvX3kCmzvvWE7RR7kAYxs01wwKQ==", - "dev": true, - "requires": { - "node-source-walk": "^4.0.0" - } - }, - "detective-less": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", - "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", - "dev": true, - "requires": { - "debug": "^4.0.0", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" - } - }, - "detective-postcss": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", - "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "is-url": "^1.2.4", - "postcss": "^8.1.7", - "postcss-values-parser": "^2.0.1" - } - }, - "detective-sass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.1.tgz", - "integrity": "sha512-oSbrBozRjJ+QFF4WJFbjPQKeakoaY1GiR380NPqwdbWYd5wfl5cLWv0l6LsJVqrgWfFN1bjFqSeo32Nxza8Lbw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" - } - }, - "detective-scss": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.1.tgz", - "integrity": "sha512-VveyXW4WQE04s05KlJ8K0bG34jtHQVgTc9InspqoQxvnelj/rdgSAy7i2DXAazyQNFKlWSWbS+Ro2DWKFOKTPQ==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" - } - }, - "detective-stylus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.0.tgz", - "integrity": "sha1-UK7n24uruZA4HwEMY/q7pbWOVM0=", - "dev": true - }, - "detective-typescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.0.tgz", - "integrity": "sha512-y/Ev98AleGvl43YKTNcA2Q+lyFmsmCfTTNWy4cjEJxoLkbobcXtRS0Kvx06daCgr2GdtlwLfNzL553BkktfJoA==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "^4.8.2", - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.2.0", - "typescript": "^3.9.7" - } - }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -2630,16 +2169,6 @@ "once": "^1.4.0" } }, - "enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -2654,15 +2183,6 @@ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, "es-abstract": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", @@ -2719,34 +2239,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, "eslint": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", @@ -3416,35 +2908,6 @@ "flat-cache": "^3.0.4" } }, - "filing-cabinet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.0.1.tgz", - "integrity": "sha512-3Wn18+vSKmrlOc0fp5J7p1UyGi7yCWUpPhGVFzZsUyGzG+AEzYWguMGxUbjsgsV4whRHCCiYxIrGyKivBBDDSg==", - "dev": true, - "requires": { - "app-module-path": "^2.2.0", - "commander": "^2.20.3", - "debug": "^4.3.1", - "decomment": "^0.9.3", - "enhanced-resolve": "^5.3.2", - "is-relative-path": "^1.0.2", - "module-definition": "^3.3.1", - "module-lookup-amd": "^7.0.0", - "resolve": "^1.19.0", - "resolve-dependency-path": "^2.0.0", - "sass-lookup": "^3.0.0", - "stylus-lookup": "^3.0.1", - "typescript": "^3.9.7" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -3538,12 +3001,6 @@ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, - "flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", - "dev": true - }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -3634,16 +3091,6 @@ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, - "get-amd-module-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.0.tgz", - "integrity": "sha512-99Q7COuACPfVt18zH9N4VAMyb81S6TUgJm2NgV6ERtkh9VIkAaByZkW530wl3lLN5KTtSrK9jVLxYsoP5hQKsw==", - "dev": true, - "requires": { - "ast-module-types": "^2.3.2", - "node-source-walk": "^4.0.0" - } - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3667,12 +3114,6 @@ "has-symbols": "^1.0.1" } }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -3806,15 +3247,6 @@ } } }, - "gonzales-pe": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "got": { "version": "11.8.3", "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", @@ -3865,15 +3297,6 @@ } } }, - "graphviz": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/graphviz/-/graphviz-0.0.9.tgz", - "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", - "dev": true, - "requires": { - "temp": "~0.4.0" - } - }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -3899,12 +3322,6 @@ } } }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -4057,12 +3474,6 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -4089,12 +3500,6 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -4187,12 +3592,6 @@ } } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -4317,12 +3716,6 @@ "is-path-inside": "^3.0.2" } }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", @@ -4356,12 +3749,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -4396,12 +3783,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, "is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -4410,12 +3791,6 @@ "is-unc-path": "^1.0.0" } }, - "is-relative-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", - "integrity": "sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY=", - "dev": true - }, "is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", @@ -4474,12 +3849,6 @@ "upper-case": "^1.1.0" } }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -4673,12 +4042,6 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -4711,12 +4074,6 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, - "junk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.0.tgz", - "integrity": "sha512-ojtSU++zLJ3jQG9bAYjg94w+/DOJtRyD7nPaerMFrBhmdVmiV5/exYH5t4uHga4G/95nT6hr1OJoKIFbYbrW5w==", - "dev": true - }, "just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -4742,16 +4099,6 @@ "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, "liftoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", @@ -4767,12 +4114,6 @@ "resolve": "^1.1.7" } }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -4862,83 +4203,6 @@ "yallist": "^4.0.0" } }, - "madge": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/madge/-/madge-4.0.2.tgz", - "integrity": "sha512-l5bnA2dvyk0azLKDbOTCI+wDZ6nB007PhvPdmiYlPmqwVi49JPbhQrH/t4u8E6Akp3gwji1GZuA+v/F5q6yoWQ==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "commander": "^6.2.1", - "commondir": "^1.0.1", - "debug": "^4.0.1", - "dependency-tree": "^8.0.0", - "detective-amd": "^3.0.1", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.1.0", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^7.0.0", - "graphviz": "0.0.9", - "ora": "^5.1.0", - "pluralize": "^8.0.0", - "precinct": "^7.0.0", - "pretty-ms": "^7.0.0", - "rc": "^1.2.7", - "typescript": "^3.9.5", - "walkdir": "^0.4.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - } - } - } - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -4992,12 +4256,6 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, "map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", @@ -5012,46 +4270,6 @@ "object-visit": "^1.0.0" } }, - "meow": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.2.tgz", - "integrity": "sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, - "dependencies": { - "decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true - }, - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -5177,12 +4395,6 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -5196,31 +4408,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - } - } - }, "minipass": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", @@ -5290,11 +4477,6 @@ "yallist": "^4.0.0" } }, - "mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -5430,37 +4612,6 @@ } } }, - "module-definition": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.3.1.tgz", - "integrity": "sha512-kLidGPwQ2yq484nSD+D3JoJp4Etc0Ox9P0L34Pu/cU4X4HcG7k7p62XI5BBuvURWMRX3RPyuhOcBHbKus+UH4A==", - "dev": true, - "requires": { - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.0.0" - } - }, - "module-lookup-amd": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", - "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", - "dev": true, - "requires": { - "commander": "^2.8.1", - "debug": "^4.1.0", - "glob": "^7.1.6", - "requirejs": "^2.3.5", - "requirejs-config-file": "^4.0.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "moment": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", @@ -5516,12 +4667,6 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "nested-error-stacks": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz", - "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", - "dev": true - }, "nise": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", @@ -5606,38 +4751,6 @@ "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, - "node-source-walk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.2.0.tgz", - "integrity": "sha512-hPs/QMe6zS94f5+jG3kk9E7TNm4P2SulrKiLWMzKszBfNZvL/V6wseHlTd7IvfW0NZWqPtK3+9yYNr+3USGteA==", - "dev": true, - "requires": { - "@babel/parser": "^7.0.0" - } - }, - "normalize-package-data": { - "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", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5995,20 +5108,6 @@ "mimic-fn": "^2.1.0" } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, "ora": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", @@ -6136,72 +5235,6 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, - "p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dev": true, - "requires": { - "p-timeout": "^3.1.0" - } - }, - "p-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", - "dev": true, - "requires": { - "p-map": "^5.1.0" - }, - "dependencies": { - "aggregate-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.0.tgz", - "integrity": "sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==", - "dev": true, - "requires": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - } - }, - "clean-stack": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.1.0.tgz", - "integrity": "sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==", - "dev": true, - "requires": { - "escape-string-regexp": "5.0.0" - } - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - }, - "p-map": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.3.0.tgz", - "integrity": "sha512-SRbIQFoLYNezHkqZslqeg963HYUtqOrfMCxjNrFOpJ19WTYuq26rQoOXeX8QQiMLUlLqdYV/7PuDsdYJ7hLE1w==", - "dev": true, - "requires": { - "aggregate-error": "^4.0.0" - } - } - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -6228,15 +5261,6 @@ "aggregate-error": "^3.0.0" } }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -6282,24 +5306,6 @@ "path-root": "^0.1.1" } }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse-ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", - "dev": true - }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -6530,95 +5536,11 @@ } } }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, - "postcss": { - "version": "8.4.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", - "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", - "dev": true, - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", - "dev": true, - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "precinct": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-7.1.0.tgz", - "integrity": "sha512-I1RkW5PX51/q6Xl39//D7x9NgaKNGHpR5DCNaoxP/b2+KbzzXDNhauJUMV17KSYkJA41CSpwYUPRtRoNxbshWA==", - "dev": true, - "requires": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "detective-amd": "^3.0.1", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.0", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^6.0.0", - "module-definition": "^3.3.1", - "node-source-walk": "^4.2.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "detective-typescript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-6.0.0.tgz", - "integrity": "sha512-vTidcSDK3QostdbrH2Rwf9FhvrgJ4oIaVw5jbolgruTejexk6nNa9DShGpuS8CFVDb1IP86jct5BaZt1wSxpkA==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "^4.8.2", - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.2.0", - "typescript": "^3.9.7" - } - } - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "pretty-ms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "dev": true, - "requires": { - "parse-ms": "^2.1.0" - } - }, "process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -6711,26 +5633,6 @@ "safe-buffer": "^5.1.0" } }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - } - } - }, "read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", @@ -6739,99 +5641,6 @@ "mute-stream": "~0.0.4" } }, - "read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", - "dev": true, - "requires": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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 - }, - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -6855,24 +5664,6 @@ "resolve": "^1.1.6" } }, - "redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "dev": true, - "requires": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - }, - "dependencies": { - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true - } - } - }, "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", @@ -6930,22 +5721,6 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "requirejs": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true - }, - "requirejs-config-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", - "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", - "dev": true, - "requires": { - "esprima": "^4.0.0", - "stringify-object": "^3.2.1" - } - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -6965,12 +5740,6 @@ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, - "resolve-dependency-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", - "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", - "dev": true - }, "resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", @@ -7262,23 +6031,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sass-lookup": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", - "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", - "dev": true, - "requires": { - "commander": "^2.16.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -7540,12 +6292,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, - "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true - }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -7577,38 +6323,6 @@ "which": "^2.0.1" } }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, "split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -7736,26 +6450,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -7777,39 +6471,12 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, - "strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", - "dev": true, - "requires": { - "min-indent": "^1.0.1" - } - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "stylus-lookup": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", - "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", - "dev": true, - "requires": { - "commander": "^2.8.1", - "debug": "^4.1.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7877,12 +6544,6 @@ } } }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, "tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", @@ -7896,12 +6557,6 @@ "yallist": "^4.0.0" } }, - "temp": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", - "integrity": "sha1-ZxrWPVe+D+nXKUZks/xABjZnimA=", - "dev": true - }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -7971,12 +6626,6 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, - "trim-newlines": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", - "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", - "dev": true - }, "tsconfig-paths": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", @@ -7994,24 +6643,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -8033,12 +6664,6 @@ "is-typedarray": "^1.0.0" } }, - "typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "dev": true - }, "uglify-js": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", @@ -8073,12 +6698,6 @@ "set-value": "^2.0.1" } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -8182,12 +6801,6 @@ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -8208,16 +6821,6 @@ "user-home": "^1.1.1" } }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", @@ -8226,12 +6829,6 @@ "builtins": "^1.0.3" } }, - "walkdir": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", - "dev": true - }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", diff --git a/package.json b/package.json index 0da09703..fda6908d 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,6 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "boxen": "5.1.2", - "cache-base": "^2.0.0", "chalk": "4.1.2", "cli-table3": "0.6.0", "commander": "9.0.0", @@ -59,7 +58,6 @@ "jose-node-cjs-runtime": "4.6.0", "js-yaml": "4.1.0", "lodash": "4.17.21", - "mixin-deep": "^2.0.1", "moment": "2.29.1", "npm-registry-fetch": "12.0.1", "plop": "2.7.6", @@ -72,13 +70,11 @@ "devDependencies": { "audit-ci": "5.1.2", "chai": "4.3.6", - "cpy-cli": "4.1.0", "chai-as-promised": "7.1.1", "eslint": "8.11.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.25.4", "husky": "7.0.4", - "madge": "4.0.2", "mocha": "9.2.2", "mocked-env": "1.3.5", "nock": "13.2.4", From 6e632d5c9f62bfbefa45b73e5dbecc19aa92d252 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Fri, 1 Apr 2022 13:53:47 -0500 Subject: [PATCH 595/864] Move preinstall -> prepare so it only runs for npm install "locally" --- package-lock.json | 223 ++++++++++++++++++++++++++++------------------ package.json | 5 +- 2 files changed, 139 insertions(+), 89 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7bc912aa..fddfd2ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.9", + "version": "2.0.10", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -784,11 +784,6 @@ "rimraf": "^3.0.2" } }, - "@sellside/emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", - "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==" - }, "@sideway/address": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", @@ -1053,6 +1048,11 @@ } } }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1211,9 +1211,7 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "cliui": { "version": "7.0.4", @@ -1238,13 +1236,11 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true } } @@ -1299,29 +1295,15 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "^1.0.1", + "cache-base": "2.0.2", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", + "mixin-deep": "2.0.1", "pascalcase": "^0.1.1" }, "dependencies": { - "cache-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", - "requires": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", @@ -1365,9 +1347,10 @@ } }, "mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" + "version": "2.0.1" + }, + "cache-base": { + "version": "2.0.2" } } }, @@ -1393,9 +1376,7 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "camelcase": { "version": "6.2.0", @@ -1427,13 +1408,11 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" } } }, @@ -1525,6 +1504,22 @@ "unique-filename": "^1.1.1" } }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -1778,9 +1773,7 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "strip-ansi": { "version": "6.0.1", @@ -1788,13 +1781,11 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true } } @@ -3335,13 +3326,11 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" } } }, @@ -3371,6 +3360,53 @@ "has-symbols": "^1.0.2" } }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -4477,6 +4513,25 @@ "yallist": "^4.0.0" } }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4821,9 +4876,7 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "camelcase": { "version": "5.3.1", @@ -4918,13 +4971,11 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true } } @@ -5122,9 +5173,7 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "ansi-styles": { "version": "3.2.1", @@ -5205,13 +5254,11 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" } } }, @@ -5493,9 +5540,7 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "ansi-styles": { "version": "2.2.1", @@ -5519,13 +5564,11 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" } } }, @@ -6399,9 +6442,7 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "emoji-regex": { "version": "8.0.0", @@ -6418,13 +6459,11 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" } } } @@ -6455,13 +6494,11 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" } } }, @@ -6602,6 +6639,24 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -6941,9 +6996,7 @@ }, "dependencies": { "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "strip-ansi": { "version": "6.0.1", @@ -6951,13 +7004,11 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "5.0.1" }, "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true } } @@ -7041,4 +7092,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index fda6908d..7ef3fe2c 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,10 @@ { "name": "cortex-cli", - "version": "2.0.9", + "version": "2.0.10", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { - "prepare": "husky install", - "preinstall": "npx --quiet force-resolutions", + "prepare": "husky install && npx --quiet force-resolutions", "prepack": "cp package-lock.json npm-shrinkwrap.json", "postpack": "rm npm-shrinkwrap.json", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", From 7afb92cfacead0dcc881b1e6c7986aa768cd2a5d Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Mon, 4 Apr 2022 21:16:22 -0500 Subject: [PATCH 596/864] moved pr pipeline into the same file as the develop and rc pipelines (#521) * moved pr pipeline into the same file as the develop and rc pipelines changed the build script to use npm pack to build a tarball to publish as a gocd build artifact which can be used in the test pipeline * publish artifact on rc pipeline as well --- build.sh | 5 ++++- cortex-cli-pr.gocd.yaml | 30 ------------------------------ cortex-cli.gocd.yaml | 31 +++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 31 deletions(-) delete mode 100644 cortex-cli-pr.gocd.yaml diff --git a/build.sh b/build.sh index a351a572..1f978ce2 100755 --- a/build.sh +++ b/build.sh @@ -31,14 +31,17 @@ function docker_build(){ echo ${VERSION} > version.txt ./generate_docs.sh BRANCH=$(git symbolic-ref --short -q HEAD) + npm prune --production if [[ ${BRANCH} = "main" ]]; then - npm prune --production # TODO this should maybe be done as part of the gocd pipeline?.. or maybe get in the habit of pushing alpha versions to npm just like we do for cortex-python?.. npm publish --registry=https://registry.npmjs.org/ elif [[ ${BRANCH} = "develop" ]]; then npm config set always-auth true # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi + + npm pack cortex-cli + mv cortex-cli-*.tgz cortex-cli.tgz } ## MAIN diff --git a/cortex-cli-pr.gocd.yaml b/cortex-cli-pr.gocd.yaml deleted file mode 100644 index 31c3fa26..00000000 --- a/cortex-cli-pr.gocd.yaml +++ /dev/null @@ -1,30 +0,0 @@ -format_version: 10 -pipelines: - cortex-cli-pr: - group: pull-requests - label_template: ${COUNT} - materials: - cortex-cli: - plugin_configuration: - id: github.pr - version: 1 - options: - url: git@github.com:CognitiveScale/cortex-cli.git - defaultBranch: develop - stages: - - build: - fetch_materials: true - clean_workspace: true - approval: - type: success - allow_only_on_success: false - jobs: - Build: - elastic_profile_id: gocd-test-agent-dind - timeout: 0 - tasks: - - script: | - set -eux - git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git - ./gocd-pipeline-scripts/common/c12e-common.sh dev - diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 9ef171d0..26008c9a 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -19,6 +19,8 @@ pipelines: source: devBranchRevision.json - build: source: cortex-cli-docs.md + - build: + source: cortex-cli.tgz - test: source: coverage tabs: @@ -46,6 +48,8 @@ pipelines: artifacts: - build: source: cortex-cli-docs.md + - build: + source: cortex-cli.tgz - test: source: coverage tabs: @@ -72,3 +76,30 @@ pipelines: cd cortex-fabric git commit -a -m "Publishing New CLI Docs" git push origin main + cortex-cli-pr: + group: pull-requests + label_template: ${COUNT} + materials: + cortex-cli: + plugin_configuration: + id: github.pr + version: 1 + options: + url: git@github.com:CognitiveScale/cortex-cli.git + defaultBranch: develop + stages: + - build: + fetch_materials: true + clean_workspace: true + approval: + type: success + allow_only_on_success: false + jobs: + Build: + elastic_profile_id: gocd-test-agent-dind + timeout: 0 + tasks: + - script: | + set -eux + git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git + ./gocd-pipeline-scripts/common/c12e-common.sh dev From 797b758412e75468e8c1f5af7176d58f4601e1fe Mon Sep 17 00:00:00 2001 From: clee Date: Thu, 7 Apr 2022 13:04:32 -0500 Subject: [PATCH 597/864] fix npm pack command --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 1f978ce2..9b1450dc 100755 --- a/build.sh +++ b/build.sh @@ -40,7 +40,7 @@ function docker_build(){ # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi - npm pack cortex-cli + npm pack . mv cortex-cli-*.tgz cortex-cli.tgz } From 87273bfd5265de6caf8a75486d743f23ec65d18e Mon Sep 17 00:00:00 2001 From: clee Date: Thu, 7 Apr 2022 13:05:31 -0500 Subject: [PATCH 598/864] update package-lock.json --- package-lock.json | 118 ++++------------------------------------------ 1 file changed, 9 insertions(+), 109 deletions(-) diff --git a/package-lock.json b/package-lock.json index fddfd2ab..20b9b3c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -784,6 +784,11 @@ "rimraf": "^3.0.2" } }, + "@sellside/emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", + "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==" + }, "@sideway/address": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", @@ -1048,11 +1053,6 @@ } } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1304,6 +1304,9 @@ "pascalcase": "^0.1.1" }, "dependencies": { + "cache-base": { + "version": "2.0.2" + }, "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", @@ -1348,9 +1351,6 @@ }, "mixin-deep": { "version": "2.0.1" - }, - "cache-base": { - "version": "2.0.2" } } }, @@ -1504,22 +1504,6 @@ "unique-filename": "^1.1.1" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -3360,53 +3344,6 @@ "has-symbols": "^1.0.2" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -4513,25 +4450,6 @@ "yallist": "^4.0.0" } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -6639,24 +6557,6 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -7092,4 +6992,4 @@ "dev": true } } -} \ No newline at end of file +} From b14d759cfd9594d4eb1a41cc043d283c5ab77e75 Mon Sep 17 00:00:00 2001 From: David Aldridge Date: Thu, 7 Apr 2022 15:53:55 -0500 Subject: [PATCH 599/864] [FAB-1907] Add Project delete command --- README.md | 5 +++++ bin/cortex-projects.js | 17 +++++++++++++++++ src/client/apiServerClient.js | 13 +++++++++++++ src/commands/projects.js | 19 +++++++++++++++++++ 4 files changed, 54 insertions(+) diff --git a/README.md b/README.md index edd45cfe..1e0867d9 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,11 @@ cortex agents list --query "[].{name: name, title: title}" - [x] configure - [x] list +- [x] projects + - [x] list + - [x] save [projectDefinition] + - [x] describe [projectName] + - [x] delete [projectName] - [ ] deploy - [x] functions - [x] list diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 72f3eedd..93914cc8 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -25,6 +25,7 @@ const { CreateProjectCommand, ListProjectsCommand, DescribeProjectCommand, + DeleteProjectCommand, } = require('../src/commands/projects'); program.name('cortex projects'); @@ -89,6 +90,22 @@ program } })); + // Delete Project +program + .command('delete ') + .alias('d') + .description('Delete project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile [profile]', 'The profile to use') + .action(withCompatibilityCheck((projectName, options) => { + try { + new DeleteProjectCommand(program).execute(projectName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 1b0ec325..d9dcdc2e 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -53,6 +53,19 @@ module.exports = class ApiServerClient { return _.get(fetched, 'createProject', {}); } + + /** + * Delete project using graphql + * @param token + * @param projectId + * @return {Promise} + */ + async deleteProject(token, projectId) { + const fetched = await this._client(token) + .request(gql`mutation { deleteProject(name: "${projectId}") }`); + return _.get(fetched, 'deleteProject', {}); + } + /** * Fetch campaign using graphql * @param projectId diff --git a/src/commands/projects.js b/src/commands/projects.js index 2b0e5868..709a407b 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -104,3 +104,22 @@ module.exports.DescribeProjectCommand = class DescribeProjectCommand { } } }; + +module.exports.DeleteProjectCommand = class DeleteProjectCommand { + constructor(program) { + this.program = program; + } + + async execute(projectName, command) { + const options = command; + const profile = await loadProfile(options.profile); + debug('%s.executeDeleteProject(%s)', profile.name, projectName); + try { + const cli = new ApiServerClient(profile.url); + await cli.deleteProject(profile.token, projectName); + printSuccess(`Project ${projectName} deleted`, options); + } catch (err) { + printError(`Failed to delete project: ${err.message}`, options); + } + } +}; From 442ecae63d16b86204533a6b03887ba80551ee0f Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Thu, 14 Apr 2022 18:14:13 -0500 Subject: [PATCH 600/864] Make task list output prettier Support task list filter options actionName, activationId, skillName, sort Replace prompt with prompts ( to fix vulns ) --- bin/cortex-agents.js | 1 + bin/cortex-tasks.js | 17 +- package-lock.json | 9331 ++++++++++++++++++++++++++++++++++--- package.json | 10 +- src/client/agents.js | 3 +- src/commands/agents.js | 2 +- src/commands/configure.js | 13 +- src/commands/tasks.js | 45 +- 8 files changed, 8726 insertions(+), 696 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 3c2713b7..4b4d48d6 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -125,6 +125,7 @@ program .option('--project [project]', 'The project to use') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .option('--sync', 'Invoke the agent synchronously') .action(withCompatibilityCheck((agentName, serviceName, options) => { try { new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 4546aea7..62a626b5 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -40,19 +40,12 @@ program .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') + .option('--actionName [string]', 'Filter tasks by action name') + .option('--activationId [string]', 'filter tasks by activation id') .option('--json', 'Output results using JSON') - // .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - // .option('--agentName [string]', 'Query activations by agentName') - // .option('--skillName [string]', 'Query activations by skillName') - // .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') - // .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') - // .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') - // .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') - // .option('--correlationId [string]', 'Query activations with same correlationId') - // .option('--status [status]', 'Filters activations by status [complete|error].') - // .option('--limit [limit]', 'Limit number of records', '100') - // .option('--offset [offset]', 'Skip number of records', '0') - // .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') + .option('--skillName [string]', 'Filter tasks by skill name') + // This is a client-side sort + .option('--sort [asc|desc]', 'sort tasks by start timestamp ascending (asc) or descending (desc)') .action(withCompatibilityCheck((options) => { try { new ListTasksCommand(program).execute(options); diff --git a/package-lock.json b/package-lock.json index fddfd2ab..8452cf71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,8606 @@ { "name": "cortex-cli", "version": "2.0.10", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "cortex-cli", + "version": "2.0.10", + "license": "Apache-2.0", + "dependencies": { + "boxen": "5.1.2", + "chalk": "4.1.2", + "cli-table3": "0.6.0", + "commander": "9.0.0", + "debug": "4.3.4", + "find-package-json": "1.2.0", + "form-data": "4.0.0", + "get-stream": "6.0.1", + "glob": "7.2.0", + "got": "11.8.3", + "graphql": "15.6.1", + "graphql-request": "3.7.0", + "is-installed-globally": "0.4.0", + "jmespath": "0.15.0", + "joi": "17.6.0", + "jose-node-cjs-runtime": "4.6.1", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "moment": "2.29.2", + "npm-registry-fetch": "12.0.1", + "plop": "2.7.6", + "prompts": "2.4.2", + "semver": "7.3.7", + "url-join": "4.0.1", + "url-parse": "1.5.10", + "yauzl": "2.10.0" + }, + "bin": { + "cortex": "bin/cortex.js" + }, + "devDependencies": { + "audit-ci": "5.1.2", + "chai": "4.3.6", + "chai-as-promised": "7.1.1", + "eslint": "8.11.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.25.4", + "husky": "7.0.4", + "mocha": "9.2.2", + "mocked-env": "1.3.5", + "nock": "13.2.4", + "nyc": "15.1.0", + "rewire": "6.0.0", + "sinon": "11.1.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", + "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", + "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.12", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", + "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", + "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", + "dependencies": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/parser": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", + "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.16.10", + "@babel/types": "^7.16.8", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + }, + "node_modules/@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", + "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", + "deprecated": "this version had an improper engines field added, update to 1.1.1", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", + "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/fined": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", + "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", + "dependencies": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "node_modules/@types/interpret": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/liftoff": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", + "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", + "dependencies": { + "@types/fined": "*", + "@types/interpret": "*", + "@types/node": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "node_modules/@types/node": { + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/through": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", + "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/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==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", + "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/audit-ci": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", + "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", + "dev": true, + "dependencies": { + "array.prototype.flatmap": "^1.2.5", + "cross-spawn": "^7.0.3", + "escape-string-regexp": "^4.0.0", + "event-stream": "4.0.1", + "jju": "^1.4.0", + "JSONStream": "^1.3.5", + "readline-transform": "1.0.0", + "semver": "^7.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "audit-ci": "lib/audit-ci.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/audit-ci/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "2.0.2", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "2.0.1", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/cache-base": { + "version": "2.0.2", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", + "dependencies": { + "@sellside/emitter": "^1.2.1", + "collection-visit": "^1.0.0", + "get-value": "^2.0.6", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/mixin-deep": { + "version": "2.0.1", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001303", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", + "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/change-case": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", + "dependencies": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/cli-table3/node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/constant-case": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "dependencies": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/convert-source-map": { + "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, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js-pure": { + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", + "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-require-extensions/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", + "dependencies": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dir-glob/node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.55", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.55.tgz", + "integrity": "sha512-AoCDEVElLY8mwe4TuDDkr1jxvSh/Ih5PFlEXCpmwFkq9JOXn4K58CScgBl+R1ghFW9cPJ7VeWo30nAHSRCe6rw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", + "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.2.1", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-import/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-import/node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/glob-parent/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dev": true, + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-files": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", + "engines": { + "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/got": { + "version": "11.8.3", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", + "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "node_modules/graphql": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-request": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", + "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", + "dependencies": { + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + }, + "peerDependencies": { + "graphql": "14 - 16" + } + }, + "node_modules/graphql-request/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "5.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/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==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/husky": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + }, + "node_modules/is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "dependencies": { + "lower-case": "^1.1.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "dependencies": { + "upper-case": "^1.1.0" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isbinaryfile": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true + }, + "node_modules/jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/joi": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/jose-node-cjs-runtime": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.1.tgz", + "integrity": "sha512-y3Es9HgtsaT9tXOWscOn/PLeJiLIWNCh7nrUDgbijG3K/xAme2awBOl+FFP0jq+x5si9Jgld5G5T21xYt1vp/Q==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", + "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loupe": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.1.tgz", + "integrity": "sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "node_modules/lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "dependencies": { + "lower-case": "^1.1.2" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-fetch-happen": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.0.tgz", + "integrity": "sha512-CREcDkbKZZ64g5MN1FT+u58mDHX9FQFFtFyio5HonX44BdQdytqPZBXUz+6ibi2w/6ncji59f2phyXGSMGpgzA==", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "dependencies": { + "mime-db": "1.49.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocked-env": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", + "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", + "dev": true, + "dependencies": { + "check-more-types": "2.24.0", + "debug": "4.3.2", + "lazy-ass": "1.6.0", + "ramda": "0.27.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocked-env/node_modules/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, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/moment": { + "version": "2.29.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", + "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/nise": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/nock": { + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", + "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash.set": "^4.3.2", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-plop": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", + "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", + "dependencies": { + "@babel/runtime-corejs3": "^7.9.2", + "@types/inquirer": "^6.5.0", + "change-case": "^3.1.0", + "del": "^5.1.0", + "globby": "^10.0.1", + "handlebars": "^4.4.3", + "inquirer": "^7.1.0", + "isbinaryfile": "^4.0.2", + "lodash.get": "^4.4.2", + "mkdirp": "^0.5.1", + "resolve": "^1.12.0" + }, + "engines": { + "node": ">=8.9.4" + } + }, + "node_modules/node-plop/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-registry-fetch": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.1.tgz", + "integrity": "sha512-ricy4ezH3Uv0d4am6RSwHjCYTWJI74NJjurIigWMAG7Vs3PFyd0TUlkrez5L0AgaPzDLRsEzqb5cOZ/Ue01bmA==", + "dependencies": { + "make-fetch-happen": "^10.0.0", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/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, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/ora/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "5.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "dependencies": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-to-regexp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/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, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/plop": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", + "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", + "dependencies": { + "@types/liftoff": "^2.5.1", + "chalk": "^1.1.3", + "interpret": "^1.2.0", + "liftoff": "^2.5.0", + "minimist": "^1.2.5", + "node-plop": "^0.26.3", + "ora": "^3.4.0", + "v8flags": "^2.0.10" + }, + "bin": { + "plop": "bin/plop.js" + }, + "engines": { + "node": ">=8.9.4" + } + }, + "node_modules/plop/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "5.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plop/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/plop/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readline-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/repeat-element": { + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rewire": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", + "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", + "dev": true, + "dependencies": { + "eslint": "^7.32.0" + } + }, + "node_modules/rewire/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/rewire/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/rewire/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/rewire/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/rewire/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rewire/node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/rewire/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/rewire/node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/rewire/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/rewire/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rewire/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "dependencies": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "node_modules/sinon": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", + "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "dependencies": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/uglify-js": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", + "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "node_modules/upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "dependencies": { + "upper-case": "^1.1.1" + } + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "bin": { + "user-home": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "node_modules/v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dependencies": { + "user-home": "^1.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "node_modules/workerpool": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@babel/code-frame": { "version": "7.12.11", @@ -51,70 +8649,12 @@ "@babel/highlight": "^7.16.7" } }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, "@babel/parser": { "version": "7.16.12", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", @@ -129,15 +8669,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -233,14 +8764,6 @@ "@babel/template": "^7.16.7", "@babel/traverse": "^7.16.7", "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - } } }, "@babel/helper-simple-access": { @@ -376,78 +8899,11 @@ "@babel/highlight": "^7.16.7" } }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, "@babel/parser": { "version": "7.16.12", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -478,84 +8934,17 @@ "@babel/highlight": "^7.16.7" } }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, "@babel/parser": { "version": "7.16.12", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, @@ -567,21 +8956,8 @@ "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - } } }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" - }, "@eslint/eslintrc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", @@ -958,16 +9334,6 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", @@ -978,7 +9344,8 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "dev": true, + "requires": {} }, "agent-base": { "version": "6.0.2", @@ -1048,11 +9415,6 @@ } } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1178,11 +9540,6 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1199,88 +9556,21 @@ "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", "dev": true, "requires": { - "JSONStream": "^1.3.5", "array.prototype.flatmap": "^1.2.5", "cross-spawn": "^7.0.3", "escape-string-regexp": "^4.0.0", "event-stream": "4.0.1", "jju": "^1.4.0", - "readline-transform": "1.0.0", - "semver": "^7.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - } - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "JSONStream": "^1.3.5", + "readline-transform": "1.0.0", + "semver": "^7.0.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true } } @@ -1304,6 +9594,9 @@ "pascalcase": "^0.1.1" }, "dependencies": { + "cache-base": { + "version": "2.0.2" + }, "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", @@ -1338,19 +9631,8 @@ "kind-of": "^6.0.2" } }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - }, "mixin-deep": { "version": "2.0.1" - }, - "cache-base": { - "version": "2.0.2" } } }, @@ -1375,24 +9657,6 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, "string-width": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", @@ -1403,33 +9667,10 @@ "strip-ansi": "^6.0.0" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - } - } - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, @@ -1504,22 +9745,6 @@ "unique-filename": "^1.1.1" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -1589,8 +9814,7 @@ "camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "caniuse-lite": { "version": "1.0.30001303", @@ -1770,26 +9994,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - } - } - } } }, "clone": { @@ -1917,15 +10121,10 @@ "which": "^2.0.1" } }, - "cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" - }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -2140,8 +10339,7 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encoding": { "version": "0.1.13", @@ -2815,11 +11013,6 @@ "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2846,11 +11039,6 @@ "braces": "^3.0.1", "picomatch": "^2.2.3" } - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" } } }, @@ -3360,53 +11548,6 @@ "has-symbols": "^1.0.2" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -3732,8 +11873,7 @@ "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.1", @@ -3919,11 +12059,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=" - }, "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -4049,9 +12184,9 @@ } }, "jose-node-cjs-runtime": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.0.tgz", - "integrity": "sha512-Bv7BBMY1gx5unOiJHggs8Ag3/mX6BPi7jq2CEMpFEVP5OehbbzjWs3zNOdvTFtrEUkGysTZn69j0MUx7kesjgw==" + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.1.tgz", + "integrity": "sha512-y3Es9HgtsaT9tXOWscOn/PLeJiLIWNCh7nrUDgbijG3K/xAme2awBOl+FFP0jq+x5si9Jgld5G5T21xYt1vp/Q==" }, "js-tokens": { "version": "4.0.0", @@ -4110,6 +12245,16 @@ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -4129,6 +12274,11 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, "lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", @@ -4513,25 +12663,6 @@ "yallist": "^4.0.0" } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4569,6 +12700,23 @@ "yargs-unparser": "2.0.0" }, "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "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 + } + } + }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -4668,9 +12816,9 @@ } }, "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + "version": "2.29.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", + "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==" }, "ms": { "version": "2.1.2", @@ -4875,9 +13023,6 @@ "yargs": "^15.0.2" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -4965,21 +13110,6 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - } - } - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -5172,9 +13302,6 @@ "wcwidth": "^1.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -5461,8 +13588,7 @@ "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pkg-dir": { "version": "4.2.0", @@ -5539,9 +13665,6 @@ "v8flags": "^2.0.10" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", @@ -5613,16 +13736,13 @@ "retry": "^0.12.0" } }, - "prompt": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.2.tgz", - "integrity": "sha512-XNXhNv3PUHJDcDkISpCwSJxtw9Bor4FZnlMUDW64N/KCPdxhfVlpD5+YUXI/Z8a9QWmOhs9KSiVtR8nzPS0BYA==", + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { - "@colors/colors": "1.5.0", - "async": "~0.9.0", - "read": "1.0.x", - "revalidator": "0.1.x", - "winston": "2.x" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" } }, "propagate": { @@ -5676,14 +13796,6 @@ "safe-buffer": "^5.1.0" } }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "requires": { - "mute-stream": "~0.0.4" - } - }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -5835,11 +13947,6 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, - "revalidator": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" - }, "rewire": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", @@ -6075,9 +14182,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } @@ -6172,6 +14279,11 @@ "supports-color": "^7.2.0" } }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -6397,11 +14509,6 @@ "minipass": "^3.1.1" } }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -6439,34 +14546,6 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - } - } - } } }, "string.prototype.trimend": { @@ -6639,24 +14718,6 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -6942,31 +15003,6 @@ "string-width": "^4.0.0" } }, - "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", - "requires": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "stack-trace": "0.0.x" - }, - "dependencies": { - "async": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" - }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" - } - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -6988,31 +15024,10 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "dev": true - } - } - } } }, "wrappy": { diff --git a/package.json b/package.json index 7ef3fe2c..eee8454c 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "chalk": "4.1.2", "cli-table3": "0.6.0", "commander": "9.0.0", - "debug": "4.3.3", + "debug": "4.3.4", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", @@ -54,14 +54,14 @@ "is-installed-globally": "0.4.0", "jmespath": "0.15.0", "joi": "17.6.0", - "jose-node-cjs-runtime": "4.6.0", + "jose-node-cjs-runtime": "4.6.1", "js-yaml": "4.1.0", "lodash": "4.17.21", - "moment": "2.29.1", + "moment": "2.29.2", "npm-registry-fetch": "12.0.1", "plop": "2.7.6", - "prompt": "1.2.2", - "semver": "7.3.5", + "prompts": "2.4.2", + "semver": "7.3.7", "url-join": "4.0.1", "url-parse": "1.5.10", "yauzl": "2.10.0" diff --git a/src/client/agents.js b/src/client/agents.js index 815f0043..8c628347 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -24,7 +24,7 @@ module.exports = class Agents { this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}`; } - invokeAgentService(projectId, token, agentName, serviceName, params) { + invokeAgentService(projectId, token, agentName, serviceName, params, sync) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${encodeURIComponent(agentName)}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); @@ -33,6 +33,7 @@ module.exports = class Agents { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), json: params, + searchParams: { sync }, }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); diff --git a/src/commands/agents.js b/src/commands/agents.js index 83396640..89f169f3 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -161,7 +161,7 @@ module.exports.InvokeAgentServiceCommand = class { debug('params: %o', params); const agents = new Agents(profile.url); - agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params).then((response) => { + agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params, options.sync).then((response) => { if (response.success) { const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/configure.js b/src/commands/configure.js index b346324f..7ba52cba 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -16,7 +16,7 @@ const debug = require('debug')('cortex:cli'); const _ = require('lodash'); -const prompt = require('prompt'); +const prompts = require('prompts'); const chalk = require('chalk'); const fs = require('fs'); @@ -36,9 +36,6 @@ function _validatePatFile(patFile) { return JSON.parse(fs.readFileSync(patFile)); } -prompt.message = ''; -prompt.delimiter = ''; -prompt.colors = false; module.exports.ConfigureCommand = class { constructor(program) { this.program = program; @@ -58,11 +55,11 @@ module.exports.ConfigureCommand = class { if (file) { patData = _validatePatFile(file); } else { - const { patjson } = await prompt.get([{ + const { patjson } = await prompts({ + type: 'text', name: 'patjson', - required: true, - description: 'Cortex Personal Access Config', - }]); + message: 'Cortex Personal Access Config:', + }); patData = JSON.parse(patjson); } cmd.saveConfig(config, profileName, patData, project); diff --git a/src/commands/tasks.js b/src/commands/tasks.js index 8730a7f7..0d4eff31 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -16,9 +16,9 @@ const debug = require('debug')('cortex:cli'); const _ = require('lodash'); +const moment = require('moment'); const { loadProfile } = require('../config'); const Tasks = require('../client/tasks'); - const { printSuccess, printError, printTable } = require('./utils'); module.exports.ListTasksCommand = class { @@ -32,22 +32,45 @@ module.exports.ListTasksCommand = class { debug('%s.listTasks(%s)', profile.name); const tasks = new Tasks(profile.url); - // TODO validate param types? - const queryParams = { ...options }; + const queryParams = {}; + + ['activationId', 'skillName', 'actionName', 'sort'].forEach((validParam) => { + if (options[validParam]) queryParams[validParam] = options[validParam]; + }); try { const response = await tasks.listTasks(projectId, profile.token, queryParams); if (response.success) { - const taskResponse = _.get(response, 'tasks', []); - + let taskList = _.get(response, 'tasks', []); + switch (_.lowerCase(options.sort)) { + case 'asc': + taskList = _.sortBy(tasks, ['startTime']); + break; + case 'desc': + taskList = _.reverse(_.sortBy(tasks, ['startTime'])); + break; + default: + // return as-is order + break; + } if (options.json) { - return printSuccess(JSON.stringify(taskResponse, null, 2), options); + return printSuccess(JSON.stringify(taskList, null, 2), options); } - const result = { - tasks: _.map(taskResponse, (t) => ({ name: t })), - }; - const tableFormat = [{ column: 'Task Name', field: 'name', width: 70 }]; - return printTable(tableFormat, result.tasks); + const result = _.map(taskList, (t) => ({ + ...t, + start: t.startTime ? moment(t.startTime).fromNow() : '-', + took: t.endTime ? moment.duration(t.endTime - t.startTime, 'millis').humanize() : '-', + })); + const tableFormat = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Activation Id', field: 'activationId', width: 40 }, + { column: 'Skill Name', field: 'skillName', width: 30 }, + { column: 'Action Name', field: 'actionName', width: 30 }, + { column: 'Status', field: 'status', width: 20 }, + { column: 'Started', field: 'start', width: 25 }, + { column: 'Took', field: 'took', width: 25 }, + ]; + return printTable(tableFormat, result); } return printError(`Failed to list tasks: ${response.message}`, options); } catch (err) { From 8097b6748785cb8da8bce60af439627dd7b7701b Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Fri, 15 Apr 2022 03:30:39 +0000 Subject: [PATCH 601/864] fix: src/commands/assets/templates/skill/daemon/Dockerfile to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-DEBIAN10-LIBXML2-2413976 - https://snyk.io/vuln/SNYK-DEBIAN10-OPENSSL-2388381 - https://snyk.io/vuln/SNYK-DEBIAN10-OPENSSL-2426310 - https://snyk.io/vuln/SNYK-DEBIAN10-OPENSSL-2426310 - https://snyk.io/vuln/SNYK-DEBIAN10-OPENSSL-2426310 --- src/commands/assets/templates/skill/daemon/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/daemon/Dockerfile b/src/commands/assets/templates/skill/daemon/Dockerfile index a1c603a8..18255046 100644 --- a/src/commands/assets/templates/skill/daemon/Dockerfile +++ b/src/commands/assets/templates/skill/daemon/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.9.10-buster +FROM python:buster ADD . /app WORKDIR /app RUN pip install -r requirements.txt From 78d1bc478193ad7e3976d7653c9802126f531a80 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 18 Apr 2022 18:28:03 +0530 Subject: [PATCH 602/864] updated DEFAULT_LIST_LIMIT_COUNT from 100 to 20 --- src/constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/constants.js b/src/constants.js index 347208c5..67c87ae3 100644 --- a/src/constants.js +++ b/src/constants.js @@ -66,6 +66,6 @@ module.exports.ALLOWED_QUERY_FIELDS = { }, }; -module.exports.DEFAULT_LIST_LIMIT_COUNT = '100'; +module.exports.DEFAULT_LIST_LIMIT_COUNT = '20'; module.exports.DEFAULT_LIST_SKIP_COUNT = '0'; From 4459e0e0ad8c9cb26f1b903c2463a57e61def887 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Mon, 18 Apr 2022 08:33:05 -0500 Subject: [PATCH 603/864] Bump version 2.0.10 -> 2.0.11 (#541) --- package-lock.json | 11 +++-------- package.json | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e66cf14..44a3eece 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.0.10", + "version": "2.0.11", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.0.10", + "version": "2.0.11", "license": "Apache-2.0", "dependencies": { "boxen": "5.1.2", @@ -9160,11 +9160,6 @@ "rimraf": "^3.0.2" } }, - "@sellside/emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", - "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==" - }, "@sideway/address": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", @@ -15112,4 +15107,4 @@ "dev": true } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index eee8454c..1c2542b1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.10", + "version": "2.0.11", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From a81945b8404db0d85505a54f8d11faab69729d76 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Tue, 19 Apr 2022 15:59:22 -0500 Subject: [PATCH 604/864] allow checking for older sort options to be provided (#542) --- src/commands/utils.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 09b69626..2bd46fcd 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -399,7 +399,10 @@ module.exports.validateOptions = (options, type) => { errorDetails.push({ type: 'sort', message: `Invalid sort params. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].sort}` }); } } catch (err) { - errorDetails.push({ type: 'sort', message: `Invalid sort expression: ${err.message}` }); + // check if a string of 'asc' or 'desc' is provided for backwards compatibility + if (!(_.lowerCase(sort).startsWith('desc') || _.lowerCase(sort).startsWith('asc'))) { + errorDetails.push({ type: 'sort', message: `Invalid sort expression: ${err.message}` }); + } } } if ((limit && _.isNaN(Number(limit))) || Number(limit) <= 0) { From aa8395e91e68c52fa51fbf3f529d7d64c2f73451 Mon Sep 17 00:00:00 2001 From: Colton Lee Date: Wed, 20 Apr 2022 13:42:16 -0500 Subject: [PATCH 605/864] change scuttle image to use c12e maintained binary for job dockerfile (#544) --- src/commands/assets/templates/skill/job/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/assets/templates/skill/job/Dockerfile b/src/commands/assets/templates/skill/job/Dockerfile index bfde1c9c..929af317 100644 --- a/src/commands/assets/templates/skill/job/Dockerfile +++ b/src/commands/assets/templates/skill/job/Dockerfile @@ -1,5 +1,5 @@ FROM python:3.9.10-buster -COPY --from=redboxoss/scuttle:latest /scuttle /bin/scuttle +COPY --from=c12e/scuttle:latest-main /scuttle /bin/scuttle ENV ENVOY_ADMIN_API=http://localhost:15000 ENV ISTIO_QUIT_API=http://localhost:15020 From 2fd98755fc72df3059eab794ec055f00055d89a9 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 20 Apr 2022 09:42:39 -0500 Subject: [PATCH 606/864] FAB-4229 Fix task list compatibility Unload commander.js to avoid prototype pollution Fix docker file Unload cortex-task to avoid global state in tests Fix task empty message --- .mocharc.yaml | 7 + Dockerfile | 1 + Dockerfile.c12e-ci.cortex-cli | 15 +- bin/cortex-configure.js | 16 +- bin/cortex-tasks.js | 11 +- build.sh | 7 +- c12e-ci.yml | 2 +- entrypoint.sh | 17 - package-lock.json | 4731 ++++++++++++++++----------------- package.json | 22 +- scripts/entrypoint.sh | 2 + src/commands/tasks.js | 13 +- src/commands/utils.js | 8 +- src/compatibility.js | 24 +- test/compatibility.js | 5 + test/configure.js | 19 +- test/tasks.js | 122 +- 17 files changed, 2524 insertions(+), 2498 deletions(-) create mode 100644 .mocharc.yaml create mode 120000 Dockerfile delete mode 100755 entrypoint.sh create mode 100755 scripts/entrypoint.sh diff --git a/.mocharc.yaml b/.mocharc.yaml new file mode 100644 index 00000000..b2197505 --- /dev/null +++ b/.mocharc.yaml @@ -0,0 +1,7 @@ +exit: true +extension: ['js'] +bail: false +slow: 1000 +timeout: 10000 +ui: 'bdd' +recursive: true diff --git a/Dockerfile b/Dockerfile new file mode 120000 index 00000000..2c1e1661 --- /dev/null +++ b/Dockerfile @@ -0,0 +1 @@ +Dockerfile.c12e-ci.cortex-cli \ No newline at end of file diff --git a/Dockerfile.c12e-ci.cortex-cli b/Dockerfile.c12e-ci.cortex-cli index d25feafe..f88ee137 100644 --- a/Dockerfile.c12e-ci.cortex-cli +++ b/Dockerfile.c12e-ci.cortex-cli @@ -1,8 +1,9 @@ -FROM node:14-bullseye +FROM node:16-bullseye -COPY . /from_ci_cd_build - -# Make sure the cortex executable is on the path ... -RUN ln -s /from_ci_cd_build/bin/cortex.js /usr/local/bin/cortex - -ENTRYPOINT ["/from_ci_cd_build/entrypoint.sh"] +COPY cortex-cli.tgz /app/ +COPY scripts/entrypoint.sh / +RUN npm install -g /app/cortex-cli.tgz \ + && echo "default:x:1001:0:Default Application User:/app:/sbin/nologin" >> /etc/passwd \ + && chown -R 1001 /app +USER 1001 +ENTRYPOINT ["/entrypoint.sh"] diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index a9549e64..ec3ec537 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -34,9 +34,9 @@ program.command('create', { isDefault: true }) .option('--file [file]', 'Personal access config file location') .option('--profile [profile]', 'The profile to configure', 'default') .option('--project [project]', 'The default project') - .action((options, command) => { + .action(async (options, command) => { try { - new ConfigureCommand(command).execute(options); + await new ConfigureCommand(command).execute(options); } catch (err) { console.error(chalk.red(err.message)); } @@ -71,7 +71,9 @@ program .alias('get') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') .description('Describe a configured profile') - .action((profileName, options) => new DescribeProfileCommand(program).execute({ profile: profileName, ...options })); + .action(async (profileName, options) => { + await new DescribeProfileCommand(program).execute({ profile: profileName, ...options }); + }); program .command('env') @@ -79,15 +81,15 @@ program .option('--project [project]', 'The project to use') .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .description('Print cortex environment variables') - .action((options) => { - new PrintEnvVars(program).execute(options); + .action(async (options) => { + await new PrintEnvVars(program).execute(options); }); program .command('set-profile ') .description('Sets the current profile.') - .action((profileName, options) => { - new SetProfileCommand(program).execute(profileName, options); + .action(async (profileName, options) => { + await new SetProfileCommand(program).execute(profileName, options); }); if (require.main === module) { diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 62a626b5..8de8a0ff 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -1,5 +1,3 @@ -#!/usr/bin/env node - /* * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * @@ -46,9 +44,9 @@ program .option('--skillName [string]', 'Filter tasks by skill name') // This is a client-side sort .option('--sort [asc|desc]', 'sort tasks by start timestamp ascending (asc) or descending (desc)') - .action(withCompatibilityCheck((options) => { + .action(withCompatibilityCheck(async (options) => { try { - new ListTasksCommand(program).execute(options); + await new ListTasksCommand(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } @@ -96,9 +94,9 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((taskName, options) => { + .action(withCompatibilityCheck(async (taskName, options) => { try { - new TaskDeleteCommand(program).execute(taskName, options); + await new TaskDeleteCommand(program).execute(taskName, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -107,4 +105,5 @@ program if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } + module.exports = program; diff --git a/build.sh b/build.sh index 9b1450dc..3d798d77 100755 --- a/build.sh +++ b/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash -eu +#!/bin/bash -eux # Copied from: https://bitbucket.org/cognitivescale/cortex-console/src @@ -26,12 +26,12 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ - npm ci --unsafe-perm --userconfig=/root/.npmrc + export CI="script" + npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm test echo ${VERSION} > version.txt ./generate_docs.sh BRANCH=$(git symbolic-ref --short -q HEAD) - npm prune --production if [[ ${BRANCH} = "main" ]]; then # TODO this should maybe be done as part of the gocd pipeline?.. or maybe get in the habit of pushing alpha versions to npm just like we do for cortex-python?.. npm publish --registry=https://registry.npmjs.org/ @@ -39,7 +39,6 @@ function docker_build(){ npm config set always-auth true # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi - npm pack . mv cortex-cli-*.tgz cortex-cli.tgz } diff --git a/c12e-ci.yml b/c12e-ci.yml index 7430f793..ec2b77dc 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: node:14-bullseye + image: node:16-bullseye command: "./build.sh CI" diff --git a/entrypoint.sh b/entrypoint.sh deleted file mode 100755 index 82efa85c..00000000 --- a/entrypoint.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -function error_exit { - echo "$1" >&2 - exit "${2:-1}" ## Return a code specified by $2 or 1 by default. -} - -case $1 in - bootstrap) - VERSION=$(cat /from_ci_cd_build/version.txt) - >&2 echo "Boostrapping Version[${VERSION}] of Cortex Executable." - cat /from_ci_cd_build/scripts/cortex | sed "s/<>/${VERSION}/g" - ;; - *) - cortex $@ - ;; -esac \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 44a3eece..a5e1acdd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,9 @@ "version": "2.0.11", "license": "Apache-2.0", "dependencies": { - "boxen": "5.1.2", "chalk": "4.1.2", - "cli-table3": "0.6.0", - "commander": "9.0.0", + "cli-table3": "0.6.2", + "commander": "9.2.0", "debug": "4.3.4", "find-package-json": "1.2.0", "form-data": "4.0.0", @@ -22,12 +21,12 @@ "graphql": "15.6.1", "graphql-request": "3.7.0", "is-installed-globally": "0.4.0", - "jmespath": "0.15.0", + "jmespath": "0.16.0", "joi": "17.6.0", - "jose-node-cjs-runtime": "4.6.1", + "jose-node-cjs-runtime": "4.6.2", "js-yaml": "4.1.0", "lodash": "4.17.21", - "moment": "2.29.2", + "moment": "2.29.3", "npm-registry-fetch": "12.0.1", "plop": "2.7.6", "prompts": "2.4.2", @@ -43,10 +42,11 @@ "audit-ci": "5.1.2", "chai": "4.3.6", "chai-as-promised": "7.1.1", - "eslint": "8.11.0", + "eslint": "8.13.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.25.4", + "eslint-plugin-import": "2.26.0", "husky": "7.0.4", + "is-ci": "3.0.1", "mocha": "9.2.2", "mocked-env": "1.3.5", "nock": "13.2.4", @@ -58,45 +58,60 @@ "node": ">=14.0.0" } }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "dependencies": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", "dev": true, "dependencies": { + "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -106,45 +121,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -155,12 +131,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", "dev": true, "dependencies": { - "@babel/types": "^7.16.8", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -169,12 +145,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.16.4", + "@babel/compat-data": "^7.17.7", "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" @@ -208,26 +184,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -258,31 +221,31 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -319,23 +282,23 @@ } }, "node_modules/@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "dev": true, "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -387,6 +350,15 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -408,10 +380,22 @@ "node": ">=4" } }, + "node_modules/@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/runtime-corejs3": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", - "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", + "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", "dependencies": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -434,44 +418,20 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.9", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -479,30 +439,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -513,9 +449,9 @@ } }, "node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -525,6 +461,15 @@ "node": ">=6.9.0" } }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@eslint/eslintrc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", @@ -545,19 +490,10 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" }, "node_modules/@hapi/hoek": { "version": "9.2.1", @@ -573,9 +509,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -617,15 +553,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -727,6 +654,31 @@ "node": ">=8" } }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.8.tgz", + "integrity": "sha512-zdpaWDz5IEyHlu1EO+B+qRHmJkSxMVV6SXngDry9n1ZqslLXFH9Dw6lRqDidm/sOJAWdRltJsmZ1SK28/uZKsw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -760,34 +712,41 @@ } }, "node_modules/@npmcli/fs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", - "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", - "deprecated": "this version had an improper engines field added, update to 1.1.1", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", + "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", "dependencies": { - "@gar/promisify": "^1.0.1", + "@gar/promisify": "^1.1.3", "semver": "^7.3.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@sellside/emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", + "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==", + "engines": { + "node": ">=6" } }, "node_modules/@sideway/address": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -803,9 +762,9 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "node_modules/@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "engines": { "node": ">=10" }, @@ -832,9 +791,9 @@ } }, "node_modules/@sinonjs/samsam": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.6.0", @@ -914,6 +873,11 @@ "@types/node": "*" } }, + "node_modules/@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -921,9 +885,9 @@ "dev": true }, "node_modules/@types/keyv": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "dependencies": { "@types/node": "*" } @@ -944,9 +908,9 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "node_modules/@types/node": { - "version": "14.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", - "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" }, "node_modules/@types/responselike": { "version": "1.0.0", @@ -983,9 +947,9 @@ } }, "node_modules/acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -1003,9 +967,9 @@ } }, "node_modules/agentkeepalive": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", - "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", "dependencies": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -1043,14 +1007,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dependencies": { - "string-width": "^4.1.0" - } - }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1085,6 +1041,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1211,14 +1175,15 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -1228,14 +1193,15 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -1309,56 +1275,28 @@ "node": ">=10" } }, - "node_modules/audit-ci/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/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==" }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dependencies": { - "cache-base": "2.0.2", + "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", - "mixin-deep": "2.0.1", + "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/base/node_modules/cache-base": { - "version": "2.0.2", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", - "dependencies": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", @@ -1370,120 +1308,33 @@ "node": ">=0.10.0" } }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "kind-of": "^6.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/mixin-deep": { - "version": "2.0.1", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" + "node": ">=8" } }, "node_modules/browser-stdout": { @@ -1493,15 +1344,25 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", - "node-releases": "^2.0.1", + "node-releases": "^2.0.2", "picocolors": "^1.0.0" }, "bin": { @@ -1509,10 +1370,6 @@ }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/buffer-crc32": { @@ -1529,31 +1386,48 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.0.4.tgz", + "integrity": "sha512-U0D4wF3/W8ZgK4qDA5fTtOVSr0gaDfd5aa7tUdAV0uukVWKsAIn6SzXQCoVlg7RWZiJa+bcsM3/pXLumGaL2Ug==", "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", + "fs-minipass": "^2.1.0", + "glob": "^7.2.0", "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", "unique-filename": "^1.1.1" }, "engines": { - "node": ">= 10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/cache-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", + "dependencies": { + "@sellside/emitter": "^1.2.1", + "collection-visit": "^1.0.0", + "get-value": "^2.0.6", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/cacheable-lookup": { @@ -1642,25 +1516,29 @@ } }, "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001303", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", - "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", + "version": "1.0.30001332", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/chai": { "version": "4.3.6", @@ -1782,6 +1660,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -1790,6 +1680,12 @@ "node": ">=10" } }, + "node_modules/ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, "node_modules/class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -1815,6 +1711,71 @@ "node": ">=0.10.0" } }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1823,17 +1784,6 @@ "node": ">=6" } }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -1857,27 +1807,17 @@ } }, "node_modules/cli-table3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", "dependencies": { - "object-assign": "^4.1.0", "string-width": "^4.2.0" }, "engines": { "node": "10.* || >= 12.*" }, "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/cli-table3/node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true, - "engines": { - "node": ">=0.1.90" + "@colors/colors": "1.5.0" } }, "node_modules/cli-width": { @@ -1955,9 +1895,9 @@ } }, "node_modules/commander": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", - "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", "engines": { "node": "^12.20.0 || >=14" } @@ -1973,6 +1913,18 @@ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, + "node_modules/compress-brotli": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", + "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", + "dependencies": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2002,12 +1954,6 @@ "safe-buffer": "~5.1.1" } }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2017,9 +1963,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", - "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==", + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.1.tgz", + "integrity": "sha512-TChjCtgcMDc8t12RiwAsThjqrS/VpBlEvDgL009ot4HESzBo3h2FSZNa6ZS1nWKZEPDoulnszxUll9n0/spflQ==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -2065,15 +2011,12 @@ } }, "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/decode-uri-component": { @@ -2122,9 +2065,9 @@ } }, "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "node_modules/default-require-extensions": { @@ -2139,15 +2082,6 @@ "node": ">=8" } }, - "node_modules/default-require-extensions/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -2165,15 +2099,19 @@ } }, "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-property": { @@ -2188,41 +2126,6 @@ "node": ">=0.10.0" } }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/del": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", @@ -2262,7 +2165,7 @@ }, "node_modules/depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "engines": { "node": ">= 0.6" @@ -2296,14 +2199,6 @@ "node": ">=8" } }, - "node_modules/dir-glob/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -2331,9 +2226,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.55", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.55.tgz", - "integrity": "sha512-AoCDEVElLY8mwe4TuDDkr1jxvSh/Ih5PFlEXCpmwFkq9JOXn4K58CScgBl+R1ghFW9cPJ7VeWo30nAHSRCe6rw==", + "version": "1.4.114", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz", + "integrity": "sha512-gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA==", "dev": true }, "node_modules/emoji-regex": { @@ -2376,9 +2271,9 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -2387,15 +2282,15 @@ "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", @@ -2409,6 +2304,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -2442,17 +2346,21 @@ } }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", + "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.2.1", @@ -2548,35 +2456,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-import-resolver-node/node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-module-utils": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", @@ -2600,9 +2479,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "dependencies": { "array-includes": "^3.1.4", @@ -2610,14 +2489,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "engines": { "node": ">=4" @@ -2647,53 +2526,12 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-import/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/eslint-plugin-import/node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-scope": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", @@ -2707,61 +2545,7 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", @@ -2779,7 +2563,7 @@ "eslint": ">=5" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", @@ -2788,7 +2572,7 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { + "node_modules/eslint-visitor-keys": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", @@ -2797,90 +2581,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/glob-parent/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/espree": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", @@ -2895,15 +2595,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -2929,15 +2620,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -2950,19 +2632,10 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -3009,36 +2682,109 @@ "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dependencies": { - "ms": "2.0.0" + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dependencies": { - "is-descriptor": "^0.1.0" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dependencies": { - "is-extendable": "^0.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "engines": { "node": ">=0.10.0" } }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/expand-brackets/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -3072,17 +2818,6 @@ "node": ">=0.10.0" } }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -3147,37 +2882,10 @@ "node": ">=0.10.0" } }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "engines": { "node": ">=0.10.0" } @@ -3200,9 +2908,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -3211,16 +2919,27 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -3268,6 +2987,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -3629,14 +3356,15 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/global-dirs": { @@ -3653,14 +3381,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, "node_modules/global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", @@ -3689,6 +3409,11 @@ "node": ">=0.10.0" } }, + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, "node_modules/global-prefix/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -3701,9 +3426,9 @@ } }, "node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3715,18 +3440,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/globby": { "version": "10.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", @@ -3745,14 +3458,6 @@ "node": ">=8" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, "node_modules/got": { "version": "11.8.3", "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", @@ -3778,9 +3483,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/graphql": { "version": "15.6.1", @@ -3869,23 +3574,16 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dependencies": { - "ansi-regex": "5.0.1" + "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3899,10 +3597,22 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, "engines": { "node": ">= 0.4" @@ -3926,6 +3636,43 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -3942,6 +3689,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/hasha/node_modules/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, + "engines": { + "node": ">=8" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -3982,6 +3738,17 @@ "node": ">=10" } }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -4019,9 +3786,9 @@ } }, "node_modules/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==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dependencies": { "agent-base": "6", "debug": "4" @@ -4066,18 +3833,17 @@ } }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { "parent-module": "^1.0.0", @@ -4085,6 +3851,9 @@ }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { @@ -4123,9 +3892,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } }, "node_modules/inquirer": { "version": "7.3.3", @@ -4189,23 +3961,12 @@ "node": ">=0.10.0" } }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dependencies": { - "is-buffer": "^1.1.5" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" @@ -4268,10 +4029,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dependencies": { "has": "^1.0.3" }, @@ -4280,22 +4053,11 @@ } }, "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dependencies": { - "is-buffer": "^1.1.5" + "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" @@ -4317,30 +4079,25 @@ } }, "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, "engines": { "node": ">=0.10.0" } @@ -4362,9 +4119,9 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { "is-extglob": "^2.1.1" }, @@ -4421,9 +4178,9 @@ } }, "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" @@ -4444,9 +4201,9 @@ } }, "node_modules/is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "engines": { "node": ">=8" } @@ -4499,10 +4256,13 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4607,14 +4367,15 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "node_modules/isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "engines": { "node": ">= 8.0.0" }, @@ -4748,9 +4509,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4767,9 +4528,9 @@ "dev": true }, "node_modules/jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", "engines": { "node": ">= 0.6.0" } @@ -4787,9 +4548,9 @@ } }, "node_modules/jose-node-cjs-runtime": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.1.tgz", - "integrity": "sha512-y3Es9HgtsaT9tXOWscOn/PLeJiLIWNCh7nrUDgbijG3K/xAme2awBOl+FFP0jq+x5si9Jgld5G5T21xYt1vp/Q==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", + "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -4847,15 +4608,15 @@ "dev": true }, "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/jsonparse": { @@ -4889,10 +4650,11 @@ "dev": true }, "node_modules/keyv": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", - "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", + "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", "dependencies": { + "compress-brotli": "^1.3.6", "json-buffer": "3.0.1" } }, @@ -4921,6 +4683,19 @@ "node": "> 0.8" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/liftoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", @@ -5003,9 +4778,9 @@ } }, "node_modules/loupe": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.1.tgz", - "integrity": "sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", "dev": true, "dependencies": { "get-func-name": "^2.0.0" @@ -5033,14 +4808,11 @@ } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz", + "integrity": "sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/make-dir": { @@ -5068,29 +4840,45 @@ } }, "node_modules/make-fetch-happen": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.0.tgz", - "integrity": "sha512-CREcDkbKZZ64g5MN1FT+u58mDHX9FQFFtFyio5HonX44BdQdytqPZBXUz+6ibi2w/6ncji59f2phyXGSMGpgzA==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.2.tgz", + "integrity": "sha512-GWMGiZsKVeJACQGJ1P3Z+iNec7pLsU6YW1q11eaPn3RR8nRXHppFWfP7Eu0//55JK3hSjrAQRl8sDa5uXpq1Ew==", "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", + "agentkeepalive": "^4.2.1", + "cacache": "^16.0.2", "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", + "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "socks-proxy-agent": "^6.1.1", + "ssri": "^9.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass-fetch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", + "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" } }, "node_modules/make-iterator": { @@ -5216,6 +5004,14 @@ "node": ">=0.10.0" } }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/micromatch/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -5251,19 +5047,19 @@ } }, "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "mime-db": "1.49.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -5286,9 +5082,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5393,6 +5189,14 @@ "node": ">= 8" } }, + "node_modules/mixin-deep": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", + "engines": { + "node": ">=6" + } + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -5470,18 +5274,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mocha/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -5618,9 +5410,9 @@ } }, "node_modules/moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==", + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", "engines": { "node": "*" } @@ -5688,13 +5480,13 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/nise": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", - "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" @@ -5764,11 +5556,11 @@ } }, "node_modules/node-plop/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -5787,9 +5579,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", "dev": true }, "node_modules/normalize-path": { @@ -5882,15 +5674,6 @@ "node": ">=8.9" } }, - "node_modules/nyc/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/nyc/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -5902,15 +5685,6 @@ "wrap-ansi": "^6.2.0" } }, - "node_modules/nyc/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/nyc/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -6057,14 +5831,6 @@ "node": ">=6" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -6089,6 +5855,49 @@ "node": ">=0.10.0" } }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-copy/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -6237,6 +6046,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/ora": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", @@ -6301,6 +6127,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "node_modules/ora/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/ora/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -6356,19 +6190,12 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dependencies": { - "ansi-regex": "5.0.1" + "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, - "node_modules/ora/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/ora/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -6583,11 +6410,13 @@ "isarray": "0.0.1" } }, - "node_modules/path-to-regexp/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } }, "node_modules/pathval": { "version": "1.1.1", @@ -6755,24 +6584,25 @@ "node": ">=0.10.0" } }, + "node_modules/plop/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/plop/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dependencies": { - "ansi-regex": "5.0.1" + "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/plop/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/plop/node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -6789,6 +6619,15 @@ "node": ">=0.10.0" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -7035,12 +6874,16 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7132,6 +6975,15 @@ "eslint": "^7.32.0" } }, + "node_modules/rewire/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, "node_modules/rewire/node_modules/@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -7187,18 +7039,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/rewire/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/rewire/node_modules/eslint": { "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", @@ -7269,6 +7109,39 @@ "node": ">=8.0.0" } }, + "node_modules/rewire/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/rewire/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/rewire/node_modules/espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", @@ -7292,68 +7165,47 @@ "node": ">=4" } }, - "node_modules/rewire/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/rewire/node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/rewire/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, "engines": { - "node": ">= 0.8.0" + "node": ">=4.0" } }, - "node_modules/rewire/node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/rewire/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 6" } }, - "node_modules/rewire/node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/rewire/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">= 4" } }, - "node_modules/rewire/node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/rewire/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { - "prelude-ls": "^1.2.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">= 0.8.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/rimraf": { @@ -7412,24 +7264,10 @@ } }, "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "node_modules/safe-regex": { "version": "1.1.0", @@ -7458,6 +7296,17 @@ "node": ">=10" } }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/sentence-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", @@ -7507,6 +7356,14 @@ "node": ">=0.10.0" } }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -7543,9 +7400,9 @@ } }, "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sinon": { "version": "11.1.2", @@ -7654,53 +7511,92 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dependencies": { - "kind-of": "^6.0.0" + "kind-of": "^3.2.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dependencies": { - "kind-of": "^6.0.0" + "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dependencies": { - "kind-of": "^3.2.0" + "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon-util/node_modules/kind-of": { + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", @@ -7711,32 +7607,31 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dependencies": { - "ms": "2.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "engines": { "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "engines": { "node": ">=0.10.0" } @@ -7747,12 +7642,12 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", "dependencies": { "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "smart-buffer": "^4.2.0" }, "engines": { "node": ">= 10.13.0", @@ -7760,13 +7655,13 @@ } }, "node_modules/socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", + "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", "dependencies": { "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "debug": "^4.3.3", + "socks": "^2.6.2" }, "engines": { "node": ">= 10" @@ -7846,14 +7741,14 @@ "dev": true }, "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.0.tgz", + "integrity": "sha512-Y1Z6J8UYnexKFN1R/hxUaYoY2LVdKEzziPmVAFKiKX8fiwvCJTVzn/xYE9TEWod5OVyNfIHHuVfIEuBClL/uJQ==", "dependencies": { "minipass": "^3.1.1" }, "engines": { - "node": ">= 8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/static-extend": { @@ -7879,6 +7774,71 @@ "node": ">=0.10.0" } }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -7890,13 +7850,13 @@ } }, "node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" @@ -7933,26 +7893,19 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "5.0.1" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/strip-json-comments": { @@ -7982,7 +7935,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -8016,9 +7968,9 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -8037,20 +7989,6 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", @@ -8152,22 +8090,55 @@ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "node_modules/tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -8178,12 +8149,15 @@ } }, "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typedarray-to-buffer": { @@ -8196,9 +8170,9 @@ } }, "node_modules/uglify-js": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", - "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", + "version": "3.15.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz", + "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -8244,6 +8218,14 @@ "node": ">=0.10.0" } }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -8272,38 +8254,6 @@ "node": ">=0.10.0" } }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", @@ -8318,9 +8268,9 @@ } }, "node_modules/uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "dependencies": { "punycode": "^2.1.0" @@ -8339,7 +8289,7 @@ }, "node_modules/url-parse": { "version": "1.5.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dependencies": { "querystringify": "^2.1.1", @@ -8376,9 +8326,9 @@ } }, "node_modules/v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "node_modules/v8flags": { @@ -8459,17 +8409,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -8494,6 +8433,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8579,6 +8519,30 @@ "node": ">=10" } }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", @@ -8599,71 +8563,56 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - } - }, - "dependencies": { + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.16.7" } }, "@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", "dev": true }, "@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", "dev": true, "requires": { + "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.1", + "semver": "^6.3.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -8673,23 +8622,23 @@ } }, "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", "dev": true, "requires": { - "@babel/types": "^7.16.8", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dev": true, "requires": { - "@babel/compat-data": "^7.16.4", + "@babel/compat-data": "^7.17.7", "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" @@ -8713,23 +8662,13 @@ } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { @@ -8751,28 +8690,28 @@ } }, "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" } }, "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-split-export-declaration": { @@ -8797,20 +8736,20 @@ "dev": true }, "@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "dev": true, "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" } }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -8853,6 +8792,12 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -8870,10 +8815,16 @@ } } }, + "@babel/parser": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "dev": true + }, "@babel/runtime-corejs3": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", - "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", + "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", "requires": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -8888,58 +8839,26 @@ "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true - } } }, "@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.9", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", - "dev": true - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -8949,15 +8868,21 @@ } }, "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true + }, "@eslint/eslintrc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", @@ -8973,20 +8898,12 @@ "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - } } }, "@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" }, "@hapi/hoek": { "version": "9.2.1", @@ -9002,9 +8919,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -9040,12 +8957,6 @@ "sprintf-js": "~1.0.2" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -9119,6 +9030,28 @@ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.8.tgz", + "integrity": "sha512-zdpaWDz5IEyHlu1EO+B+qRHmJkSxMVV6SXngDry9n1ZqslLXFH9Dw6lRqDidm/sOJAWdRltJsmZ1SK28/uZKsw==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -9143,27 +9076,32 @@ } }, "@npmcli/fs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", - "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", + "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", "requires": { - "@gar/promisify": "^1.0.1", + "@gar/promisify": "^1.1.3", "semver": "^7.3.5" } }, "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" } }, + "@sellside/emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", + "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==" + }, "@sideway/address": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "requires": { "@hapi/hoek": "^9.0.0" } @@ -9179,9 +9117,9 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@sinonjs/commons": { "version": "1.8.3", @@ -9202,9 +9140,9 @@ } }, "@sinonjs/samsam": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -9278,6 +9216,11 @@ "@types/node": "*" } }, + "@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -9285,9 +9228,9 @@ "dev": true }, "@types/keyv": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "requires": { "@types/node": "*" } @@ -9308,9 +9251,9 @@ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "@types/node": { - "version": "14.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", - "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" }, "@types/responselike": { "version": "1.0.0", @@ -9341,9 +9284,9 @@ "dev": true }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, @@ -9356,9 +9299,9 @@ } }, "agentkeepalive": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", - "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -9386,14 +9329,6 @@ "uri-js": "^4.2.2" } }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "requires": { - "string-width": "^4.1.0" - } - }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -9415,6 +9350,11 @@ } } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -9502,25 +9442,27 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, "assertion-error": { @@ -9565,20 +9507,12 @@ "readline-transform": "1.0.0", "semver": "^7.0.0", "yargs": "^16.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - } } }, "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", @@ -9594,9 +9528,6 @@ "pascalcase": "^0.1.1" }, "dependencies": { - "cache-base": { - "version": "2.0.2" - }, "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", @@ -9604,35 +9535,6 @@ "requires": { "is-descriptor": "^1.0.0" } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "mixin-deep": { - "version": "2.0.1" } } }, @@ -9642,38 +9544,6 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - } - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -9698,15 +9568,15 @@ "dev": true }, "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", - "node-releases": "^2.0.1", + "node-releases": "^2.0.2", "picocolors": "^1.0.0" } }, @@ -9721,30 +9591,44 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.0.4.tgz", + "integrity": "sha512-U0D4wF3/W8ZgK4qDA5fTtOVSr0gaDfd5aa7tUdAV0uukVWKsAIn6SzXQCoVlg7RWZiJa+bcsM3/pXLumGaL2Ug==", "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", + "fs-minipass": "^2.1.0", + "glob": "^7.2.0", "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", "unique-filename": "^1.1.1" } }, + "cache-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", + "requires": { + "@sellside/emitter": "^1.2.1", + "collection-visit": "^1.0.0", + "get-value": "^2.0.6", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -9812,14 +9696,15 @@ } }, "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true }, "caniuse-lite": { - "version": "1.0.30001303", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", - "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", + "version": "1.0.30001332", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", "dev": true }, "chai": { @@ -9911,6 +9796,17 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "chownr": { @@ -9918,6 +9814,12 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, + "ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -9936,6 +9838,57 @@ "requires": { "is-descriptor": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -9944,11 +9897,6 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -9963,21 +9911,12 @@ "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" }, "cli-table3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", + "@colors/colors": "1.5.0", "string-width": "^4.2.0" - }, - "dependencies": { - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true - } } }, "cli-width": { @@ -10040,9 +9979,9 @@ } }, "commander": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", - "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==" + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" }, "commondir": { "version": "1.0.1", @@ -10055,6 +9994,15 @@ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, + "compress-brotli": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", + "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", + "requires": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -10082,14 +10030,6 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } } }, "copy-descriptor": { @@ -10098,9 +10038,9 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js-pure": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", - "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==" + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.1.tgz", + "integrity": "sha512-TChjCtgcMDc8t12RiwAsThjqrS/VpBlEvDgL009ot4HESzBo3h2FSZNa6ZS1nWKZEPDoulnszxUll9n0/spflQ==" }, "cross-fetch": { "version": "3.1.5", @@ -10130,9 +10070,9 @@ } }, "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { @@ -10165,9 +10105,9 @@ } }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "default-require-extensions": { @@ -10177,14 +10117,6 @@ "dev": true, "requires": { "strip-bom": "^4.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - } } }, "defaults": { @@ -10201,12 +10133,13 @@ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "define-property": { @@ -10216,34 +10149,6 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } } }, "del": { @@ -10278,7 +10183,7 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-file": { @@ -10298,13 +10203,6 @@ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "requires": { "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - } } }, "doctrine": { @@ -10331,9 +10229,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.55", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.55.tgz", - "integrity": "sha512-AoCDEVElLY8mwe4TuDDkr1jxvSh/Ih5PFlEXCpmwFkq9JOXn4K58CScgBl+R1ghFW9cPJ7VeWo30nAHSRCe6rw==", + "version": "1.4.114", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz", + "integrity": "sha512-gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA==", "dev": true }, "emoji-regex": { @@ -10373,9 +10271,9 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -10384,15 +10282,15 @@ "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", @@ -10400,6 +10298,15 @@ "unbox-primitive": "^1.0.1" } }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -10424,14 +10331,15 @@ "dev": true }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true }, "eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", + "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, "requires": { "@eslint/eslintrc": "^1.2.1", @@ -10469,102 +10377,6 @@ "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - }, - "dependencies": { - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - } } }, "eslint-config-airbnb-base": { @@ -10605,26 +10417,6 @@ "requires": { "ms": "^2.1.1" } - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } } } }, @@ -10650,9 +10442,9 @@ } }, "eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -10660,14 +10452,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { @@ -10688,40 +10480,11 @@ "esutils": "^2.0.2" } }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } } } }, @@ -10733,37 +10496,29 @@ "requires": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "espree": { @@ -10775,14 +10530,6 @@ "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } } }, "esprima": { @@ -10798,14 +10545,6 @@ "dev": true, "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "esrecurse": { @@ -10815,20 +10554,12 @@ "dev": true, "requires": { "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "esutils": { @@ -10890,6 +10621,62 @@ "is-extendable": "^0.1.0" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -10917,16 +10704,6 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } } }, "external-editor": { @@ -10980,31 +10757,10 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, @@ -11020,9 +10776,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -11031,13 +10787,21 @@ "micromatch": "^4.0.4" }, "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } } } @@ -11076,6 +10840,13 @@ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } } }, "file-entry-cache": { @@ -11333,11 +11104,12 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "global-dirs": { @@ -11346,13 +11118,6 @@ "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "requires": { "ini": "2.0.0" - }, - "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - } } }, "global-modules": { @@ -11377,6 +11142,11 @@ "which": "^1.2.14" }, "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -11388,20 +11158,12 @@ } }, "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "requires": { "type-fest": "^0.20.2" - }, - "dependencies": { - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } } }, "globby": { @@ -11417,13 +11179,6 @@ "ignore": "^5.1.1", "merge2": "^1.2.3", "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - } } }, "got": { @@ -11445,9 +11200,9 @@ } }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "graphql": { "version": "15.6.1", @@ -11515,17 +11270,12 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - } } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, "has-flag": { @@ -11533,10 +11283,19 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "has-tostringtag": { @@ -11548,6 +11307,36 @@ "has-symbols": "^1.0.2" } }, + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -11556,6 +11345,14 @@ "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" + }, + "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 + } } }, "he": { @@ -11587,6 +11384,16 @@ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "requires": { "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + } } }, "html-escaper": { @@ -11620,9 +11427,9 @@ } }, "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==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "requires": { "agent-base": "6", "debug": "4" @@ -11652,15 +11459,14 @@ } }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -11697,9 +11503,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { "version": "7.3.3", @@ -11752,21 +11558,11 @@ } }, "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "kind-of": "^6.0.0" } }, "is-bigint": { @@ -11808,30 +11604,29 @@ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, "is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "kind-of": "^6.0.0" } }, "is-date-object": { @@ -11844,26 +11639,22 @@ } }, "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } }, "is-extglob": { "version": "2.1.1", @@ -11876,9 +11667,9 @@ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } @@ -11917,9 +11708,9 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -11931,9 +11722,9 @@ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" }, "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-plain-obj": { "version": "2.1.0", @@ -11968,10 +11759,13 @@ } }, "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } }, "is-stream": { "version": "2.0.1", @@ -12040,14 +11834,15 @@ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==" + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==" }, "isexe": { "version": "2.0.0", @@ -12151,9 +11946,9 @@ } }, "istanbul-reports": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -12167,9 +11962,9 @@ "dev": true }, "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { "version": "17.6.0", @@ -12184,9 +11979,9 @@ } }, "jose-node-cjs-runtime": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.1.tgz", - "integrity": "sha512-y3Es9HgtsaT9tXOWscOn/PLeJiLIWNCh7nrUDgbijG3K/xAme2awBOl+FFP0jq+x5si9Jgld5G5T21xYt1vp/Q==" + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", + "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==" }, "js-tokens": { "version": "4.0.0", @@ -12232,13 +12027,10 @@ "dev": true }, "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true }, "jsonparse": { "version": "1.3.1", @@ -12262,10 +12054,11 @@ "dev": true }, "keyv": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", - "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", + "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", "requires": { + "compress-brotli": "^1.3.6", "json-buffer": "3.0.1" } }, @@ -12285,6 +12078,16 @@ "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, "liftoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", @@ -12355,9 +12158,9 @@ } }, "loupe": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.1.tgz", - "integrity": "sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", "dev": true, "requires": { "get-func-name": "^2.0.0" @@ -12382,12 +12185,9 @@ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz", + "integrity": "sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==" }, "make-dir": { "version": "3.1.0", @@ -12407,26 +12207,39 @@ } }, "make-fetch-happen": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.0.0.tgz", - "integrity": "sha512-CREcDkbKZZ64g5MN1FT+u58mDHX9FQFFtFyio5HonX44BdQdytqPZBXUz+6ibi2w/6ncji59f2phyXGSMGpgzA==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.2.tgz", + "integrity": "sha512-GWMGiZsKVeJACQGJ1P3Z+iNec7pLsU6YW1q11eaPn3RR8nRXHppFWfP7Eu0//55JK3hSjrAQRl8sDa5uXpq1Ew==", "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", + "agentkeepalive": "^4.2.1", + "cacache": "^16.0.2", "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", + "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "socks-proxy-agent": "^6.1.1", + "ssri": "^9.0.0" + }, + "dependencies": { + "minipass-fetch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", + "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", + "requires": { + "encoding": "^0.1.13", + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + } } }, "make-iterator": { @@ -12529,6 +12342,11 @@ } } }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -12559,16 +12377,16 @@ } }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "1.49.0" + "mime-db": "1.52.0" } }, "mimic-fn": { @@ -12582,9 +12400,9 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } @@ -12663,6 +12481,11 @@ "yallist": "^4.0.0" } }, + "mixin-deep": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" + }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -12717,12 +12540,6 @@ } } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -12816,9 +12633,9 @@ } }, "moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==" + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" }, "ms": { "version": "2.1.2", @@ -12871,13 +12688,13 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "nise": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", - "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" @@ -12930,11 +12747,11 @@ }, "dependencies": { "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } } } @@ -12949,9 +12766,9 @@ } }, "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", "dev": true }, "normalize-path": { @@ -13023,12 +12840,6 @@ "yargs": "^15.0.2" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -13040,12 +12851,6 @@ "wrap-ansi": "^6.2.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -13158,11 +12963,6 @@ } } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -13181,6 +12981,39 @@ "is-descriptor": "^0.1.0" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -13289,6 +13122,20 @@ "mimic-fn": "^2.1.0" } }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, "ora": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", @@ -13341,6 +13188,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -13382,11 +13234,6 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - } } }, "supports-color": { @@ -13549,16 +13396,13 @@ "dev": true, "requires": { "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } } }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, "pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -13682,17 +13526,17 @@ "supports-color": "^2.0.0" } }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - } } }, "supports-color": { @@ -13707,6 +13551,12 @@ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, "process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -13882,12 +13732,13 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-alpn": { @@ -13956,6 +13807,15 @@ "eslint": "^7.32.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -13999,12 +13859,6 @@ "sprintf-js": "~1.0.2" } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, "eslint": { "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", @@ -14063,6 +13917,29 @@ "estraverse": "^4.1.1" } }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, "espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", @@ -14082,53 +13959,35 @@ } } }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "is-glob": "^4.0.1" } }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { - "prelude-ls": "^1.2.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } } } @@ -14163,9 +14022,9 @@ } }, "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "safe-regex": { @@ -14187,6 +14046,16 @@ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + } } }, "sentence-case": { @@ -14231,6 +14100,11 @@ "requires": { "is-extendable": "^0.1.0" } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" } } }, @@ -14261,9 +14135,9 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "sinon": { "version": "11.1.2", @@ -14352,6 +14226,62 @@ "is-extendable": "^0.1.0" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -14376,32 +14306,6 @@ "requires": { "is-descriptor": "^1.0.0" } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } } } }, @@ -14424,22 +14328,22 @@ } }, "socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", "requires": { "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "smart-buffer": "^4.2.0" } }, "socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", + "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", "requires": { "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "debug": "^4.3.3", + "socks": "^2.6.2" } }, "source-map": { @@ -14502,9 +14406,9 @@ "dev": true }, "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.0.tgz", + "integrity": "sha512-Y1Z6J8UYnexKFN1R/hxUaYoY2LVdKEzziPmVAFKiKX8fiwvCJTVzn/xYE9TEWod5OVyNfIHHuVfIEuBClL/uJQ==", "requires": { "minipass": "^3.1.1" } @@ -14525,6 +14429,57 @@ "requires": { "is-descriptor": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -14539,13 +14494,13 @@ } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "string.prototype.trimend": { @@ -14574,17 +14529,12 @@ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "5.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1" - } } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-json-comments": { @@ -14604,8 +14554,7 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "swap-case": { "version": "1.1.2", @@ -14630,9 +14579,9 @@ }, "dependencies": { "ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -14646,17 +14595,6 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } } } }, @@ -14743,15 +14681,32 @@ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.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 + } } }, "tslib": { @@ -14759,6 +14714,15 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -14766,9 +14730,9 @@ "dev": true }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "typedarray-to-buffer": { @@ -14781,9 +14745,9 @@ } }, "uglify-js": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.0.tgz", - "integrity": "sha512-x+xdeDWq7FiORDvyIJ0q/waWd4PhjBNOm5dQUOq2AKC0IEjxOS66Ha9tctiVDGcRQuh69K7fgU5oRuTK4cysSg==", + "version": "3.15.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz", + "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==", "optional": true }, "unbox-primitive": { @@ -14812,6 +14776,13 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + } } }, "unique-filename": { @@ -14837,33 +14808,6 @@ "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } } }, "upper-case": { @@ -14880,9 +14824,9 @@ } }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -14900,7 +14844,7 @@ }, "url-parse": { "version": "1.5.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "requires": { "querystringify": "^2.1.1", @@ -14924,9 +14868,9 @@ "dev": true }, "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "v8flags": { @@ -14995,14 +14939,6 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -15024,6 +14960,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -15089,6 +15026,20 @@ "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + } } }, "yauzl": { @@ -15107,4 +15058,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 1c2542b1..592e9384 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,11 @@ "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { - "prepare": "husky install && npx --quiet force-resolutions", + "prepare": "is-ci || husky install", "prepack": "cp package-lock.json npm-shrinkwrap.json", "postpack": "rm npm-shrinkwrap.json", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", - "test": "NODE_ENV=test nyc mocha --recursive --exit --timeout 10000" + "test": "NODE_ENV=test nyc mocha" }, "files": [ "bin/*", @@ -39,10 +39,9 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "boxen": "5.1.2", "chalk": "4.1.2", - "cli-table3": "0.6.0", - "commander": "9.0.0", + "cli-table3": "0.6.2", + "commander": "9.2.0", "debug": "4.3.4", "find-package-json": "1.2.0", "form-data": "4.0.0", @@ -52,12 +51,12 @@ "graphql": "15.6.1", "graphql-request": "3.7.0", "is-installed-globally": "0.4.0", - "jmespath": "0.15.0", + "jmespath": "0.16.0", "joi": "17.6.0", - "jose-node-cjs-runtime": "4.6.1", + "jose-node-cjs-runtime": "4.6.2", "js-yaml": "4.1.0", "lodash": "4.17.21", - "moment": "2.29.2", + "moment": "2.29.3", "npm-registry-fetch": "12.0.1", "plop": "2.7.6", "prompts": "2.4.2", @@ -70,10 +69,11 @@ "audit-ci": "5.1.2", "chai": "4.3.6", "chai-as-promised": "7.1.1", - "eslint": "8.11.0", + "eslint": "8.13.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.25.4", + "eslint-plugin-import": "2.26.0", "husky": "7.0.4", + "is-ci": "3.0.1", "mocha": "9.2.2", "mocked-env": "1.3.5", "nock": "13.2.4", @@ -87,7 +87,7 @@ "html" ] }, - "resolutions": { + "overrides": { "mixin-deep": "2.0.1", "cache-base": "2.0.2", "ansi-regex": "5.0.1" diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh new file mode 100755 index 00000000..1386c6c8 --- /dev/null +++ b/scripts/entrypoint.sh @@ -0,0 +1,2 @@ +#!/bin/bash +/usr/local/bin/cortex $@ diff --git a/src/commands/tasks.js b/src/commands/tasks.js index bd7e06e6..bf1f145c 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -43,6 +43,9 @@ module.exports.ListTasksCommand = class { const response = await tasks.listTasks(projectId, profile.token, queryParams); if (response.success) { let taskList = _.get(response, 'tasks', []); + if (_.isEmpty(taskList)) { + return printSuccess('no tasks found'); + } switch (_.lowerCase(options.sort)) { case 'asc': taskList = _.sortBy(tasks, ['startTime']); @@ -57,11 +60,17 @@ module.exports.ListTasksCommand = class { if (options.json) { return printSuccess(JSON.stringify(taskList, null, 2), options); } - const result = _.map(taskList, (t) => ({ + let result; + // Old response format + if (_.isString(taskList[0])) { + result = _.map(taskList, (t) => ({ name: t })); + } else { + result = _.map(taskList, (t) => ({ ...t, start: t.startTime ? moment(t.startTime).fromNow() : '-', - took: t.endTime ? moment.duration(t.endTime - t.startTime, 'millis').humanize() : '-', + took: t.endTime ? moment.duration(t.endTime - t.startTime).humanize() : '-', })); + } const tableFormat = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Activation Id', field: 'activationId', width: 40 }, diff --git a/src/commands/utils.js b/src/commands/utils.js index 2bd46fcd..bf028561 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -70,7 +70,7 @@ module.exports.printWarning = (message, options) => { } }; -module.exports.printError = (message, options, exit = true) => { +function printError(message, options, exit = true) { if (!options || options.color === 'on') { console.error(chalk.red(message)); } else { @@ -80,7 +80,8 @@ module.exports.printError = (message, options, exit = true) => { if (exit && _.toLower(process.env.NODE_ENV) !== 'test') { process.exit(1); } -}; +} +module.exports.printError = printError; module.exports.filterObject = (obj, options) => { if (options.query) { @@ -300,8 +301,7 @@ module.exports.deleteFile = deleteFolderRecursive; module.exports.checkProject = (projectId) => { if (_.isEmpty(projectId)) { - console.error(chalk.red('\'project\' is required, please provide using \'cortex configure\' or --project')); - process.exit(1); + printError('\'project\' is required, please provide using \'cortex configure\' or --project'); } }; diff --git a/src/compatibility.js b/src/compatibility.js index 45cc3d37..3b1cb673 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -15,7 +15,7 @@ */ const _ = require('lodash'); -const boxen = require('boxen'); +const Table = require('cli-table3'); const chalk = require('chalk'); const concat = require('lodash/fp/concat'); const debug = require('debug')('cortex:cli'); @@ -66,14 +66,6 @@ function getRequiredVersion(profile) { } function notifyUpdate({ required = false, current, latest }) { - const opts = { - padding: 1, - margin: 1, - align: 'center', - borderColor: 'yellow', - borderStyle: 'round', - }; - const message = `Update ${required ? chalk.bold('required') : 'available'} ${ chalk.dim(current) }${chalk.reset(' → ') @@ -81,8 +73,17 @@ function notifyUpdate({ required = false, current, latest }) { }\nRun ${ chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) } to update`; - - console.warn(boxen(message, opts)); + const table = new Table({ + chars: { + 'top-left': '╭', + 'top-right': '╮', + 'bottom-left': '╰', + 'bottom-right': '╯', + }, + style: { head: [], border: [] }, + }); + table.push([message]); + console.warn(table.toString()); } function upgradeAvailable(args) { @@ -146,6 +147,7 @@ function withCompatibilityCheck(fn) { } module.exports = { + notifyUpdate, getCompatibility, withCompatibilityCheck, }; diff --git a/test/compatibility.js b/test/compatibility.js index e9d62423..c0e4a174 100644 --- a/test/compatibility.js +++ b/test/compatibility.js @@ -92,6 +92,11 @@ describe('compatibility checks', () => { const expected = { current: pkg.version, latest: nextMajorVersion, satisfied: false }; return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); }); + + // it('should resolve as box', () => { + // // Just added a dumb test to test output.. + // compatibilityModule.notifyUpdate({ required: false, current: '1.0.0', latest: '2.0.0' }); + // }); }); describe('when the compatibility service cannot be reached', () => { diff --git a/test/configure.js b/test/configure.js index f3eba53a..ea6f680f 100644 --- a/test/configure.js +++ b/test/configure.js @@ -24,10 +24,6 @@ const { expect } = require('chai'); const yaml = require('js-yaml'); const { stripAnsi } = require('./utils'); const Info = require('../src/client/info'); -const program = require('../bin/cortex-configure'); - -let restore; -let sandbox; const iatDate = new Date('January 11, 2011 11:11:11').getTime(); @@ -45,6 +41,8 @@ function parseJwt(jwt) { describe('configure', () => { const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cortex-cli')); + let restore; + let sandbox; let printSpy; let errorSpy; before(() => { @@ -54,6 +52,9 @@ describe('configure', () => { }); beforeEach(() => { + delete require.cache[require.resolve('commander')]; + delete require.cache[require.resolve('../bin/cortex-configure')]; + sandbox = sinon.createSandbox(); sandbox.stub(Info.prototype, 'getInfo').callsFake(() => ({ serverTs: iatDate, @@ -80,6 +81,7 @@ describe('configure', () => { } it('lists profiles', async () => { + const program = require('../bin/cortex-configure'); await program.parseAsync(['node', 'configure', 'list']); sandbox.assert.calledTwice(printSpy); // default is set at default... @@ -87,6 +89,7 @@ describe('configure', () => { }); it('get profile other', async () => { + const program = require('../bin/cortex-configure'); await program.parseAsync(['node', 'configure', 'describe', 'other']); const output = getPrintedLines(); expect(output).to.length(5); @@ -94,6 +97,7 @@ describe('configure', () => { }); it('ttl token default ttl', async () => { + const program = require('../bin/cortex-configure'); await program.parseAsync(['node', 'configure', 'token']); const output = getPrintedLines(); const { payload } = parseJwt(output[0]); @@ -105,6 +109,7 @@ describe('configure', () => { }); it('ttl token default with other profile', async () => { + const program = require('../bin/cortex-configure'); await program.parseAsync(['node', 'configure', 'token', '--profile', 'other']); const output = getPrintedLines(); const { payload } = parseJwt(output[0]); @@ -116,6 +121,7 @@ describe('configure', () => { }); it('ttl token with ttl', async () => { + const program = require('../bin/cortex-configure'); await program.parseAsync(['node', 'configure', 'token', '--ttl', '5m', '--profile', 'other']); const output = getPrintedLines(); const { payload } = parseJwt(output[0]); @@ -126,12 +132,14 @@ describe('configure', () => { }); it('ttl token with bad ttl', async () => { + const program = require('../bin/cortex-configure'); await program.parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); const output = getErrorLines(); expect(output[0]).to.contain('Invalid --ttl'); }); it('ttl token default with bad profile', async () => { + const program = require('../bin/cortex-configure'); await program.parseAsync(['node', 'configure', 'token', '--profile', 'nothere']); const output = getErrorLines(); expect(output[0]).to.contain('Profile with name "nothere" could not be located in your configuration.'); @@ -140,6 +148,7 @@ describe('configure', () => { it('create profile pat file', async () => { + const program = require('../bin/cortex-configure'); await program.parseAsync(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); const output = getPrintedLines(); expect(output).to.length(2); @@ -147,7 +156,7 @@ describe('configure', () => { const conf = yaml.load(fs.readFileSync(path.join(tmpDir, 'config'))); expect(conf.profiles.conftest).to.haveOwnProperty('project', 'test'); printSpy.resetHistory(); - program.parse(['node', 'configure', 'list']); + await program.parseAsync(['node', 'configure', 'list']); expect(getPrintedLines()).to.eql(['default', 'other', 'conftest']); }); }); diff --git a/test/tasks.js b/test/tasks.js index a7ebe5df..20fe1886 100644 --- a/test/tasks.js +++ b/test/tasks.js @@ -14,29 +14,42 @@ * limitations under the License. */ -const commander = require('commander'); const chai = require('chai'); const mockedEnv = require('mocked-env'); const nock = require('nock'); -const { - ListTasksCommand, - // DescribeTaskCommand, - // TaskLogsCommand, - // TaskDeleteCommand -} = require('../src/commands/tasks'); +const _ = require('lodash'); +const sinon = require('sinon'); const Tasks = require('../src/client/tasks'); +const { stripAnsi } = require('./utils'); const { expect } = chai; -let restoreEnv; + +const PROJECT = 'project'; describe('Tasks', () => { + let restoreEnv; + let sandbox; + let printSpy; + let errorSpy; before(() => { + if (!nock.isActive()) { + nock.activate(); + } restoreEnv = mockedEnv({ CORTEX_CONFIG_DIR: './test/cortex', }); - nock.activate(); + sandbox = sinon.createSandbox(); + printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); + }); + + beforeEach(() => { + delete require.cache[require.resolve('commander')]; + delete require.cache[require.resolve('../bin/cortex-tasks')]; }); + after(() => { restoreEnv(); + sandbox.restore(); nock.restore(); }); @@ -45,44 +58,87 @@ describe('Tasks', () => { nock.cleanAll(); }); - const serverUrl = 'http://localhost:8000'; + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } - // this isn't the best way to test these commands.. might need to do a larger refactor - xit('list tasks command', async () => { - const program = new commander.Command(); - const command = new ListTasksCommand(program); - const project = 'test'; - const options = { - project, - json: true, - }; + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + + const serverUrl = 'http://localhost:8000'; - const requestPath = `/fabric/v4/projects/${project}/tasks?project=${project}&json=true`; + it('list tasks command (old response)', async () => { + const program = require('../bin/cortex-tasks'); + const requestPath = `/fabric/v4/projects/${PROJECT}/tasks`; const response = { success: true, tasks: ['task0', 'task1'] }; nock(serverUrl).get(requestPath).reply(200, response); - let body; - await command.execute(options) - .then((output) => { - console.log(`output: ${JSON.stringify(output)}`); - body = output; - nock.isDone(); - }); - console.log(`after await ${JSON.stringify(body)}`); + await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); + const output = getPrintedLines(); + const errs = getErrorLines(); + chai.expect(output.join('')).to.contain('task0'); + chai.expect(output.join('')).to.contain('task1'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('list tasks command JSON no tasks', async () => { + const program = require('../bin/cortex-tasks'); + const requestPath = `/fabric/v4/projects/${PROJECT}/tasks`; + const response = { success: true, tasks: [] }; + nock(serverUrl).get(requestPath).reply(200, response); + await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); + const output = getPrintedLines(); + const errs = getErrorLines(); + chai.expect(output.join('')).to.contain('no tasks found'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('list tasks command', async () => { + const program = require('../bin/cortex-tasks'); + const now = Date.now(); + const requestPath = `/fabric/v4/projects/${PROJECT}/tasks`; + const response = { + success: true, + tasks: [ + { + name: 'task0', startTime: now - (30 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx1', skillName: 'skill1', actionName: 'action1', status: 'COMPLETE', + }, + { + name: 'task1', startTime: now - (40 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx2', skillName: 'skill2', actionName: 'action1', status: 'FAIL', + }, + ], + }; + nock(serverUrl).get(requestPath).reply(200, response); + + await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); + const output = getPrintedLines(); + const errs = getErrorLines(); + chai.expect(output.join('')).to.contain('task0'); + chai.expect(output.join('')).to.contain('20 minutes'); + chai.expect(output.join('')).to.contain('30 minutes'); + chai.expect(output.join('')).to.contain('30 minutes ago'); + chai.expect(output.join('')).to.contain('40 minutes ago'); + chai.expect(output.join('')).to.contain('task0'); + chai.expect(output.join('')).to.contain('task1'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks client', async () => { + it('list tasks client JSON', async () => { const taskCtl = new Tasks('http://127.0.0.1:8000'); - const project = 'test'; const options = { - project, json: true, }; - const requestPath = `/fabric/v4/projects/${project}/tasks?project=${project}&json=true`; + const requestPath = `/fabric/v4/projects/${PROJECT}/tasks?json=true`; const response = { success: true, tasks: ['task0', 'task1'] }; nock('http://127.0.0.1:8000').get(requestPath).reply(200, response); - const taskList = await taskCtl.listTasks(project, '', options); + const taskList = await taskCtl.listTasks(PROJECT, '', options); console.log(`taskList: ${JSON.stringify(taskList)}`); expect(taskList).to.deep.equal(response); }); From dd1be1c3d5d5e0e971d02eac1486727381417225 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 22 Apr 2022 16:47:08 +0530 Subject: [PATCH 607/864] added offset back --- src/commands/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 63bf7e3c..ce212013 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -257,7 +257,7 @@ module.exports.ListActivationsCommand = class { if (options.agentName) queryParams.agentName = options.agentName; if (options.skillName) queryParams.skillName = options.skillName; if (options.limit) queryParams.limit = options.limit; - if (options.skip) queryParams.skip = options.skip; + if (options.skip) queryParams.offset = options.skip; if (options.sort) queryParams.sort = _.toLower(options.sort); if (options.filter) queryParams.filter = options.filter; From 603b6a9f1ee39123fc3f1668987f8b058e54b911 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 22 Apr 2022 17:00:01 +0530 Subject: [PATCH 608/864] added todo --- src/commands/agents.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/agents.js b/src/commands/agents.js index ce212013..3490cc0d 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -257,6 +257,7 @@ module.exports.ListActivationsCommand = class { if (options.agentName) queryParams.agentName = options.agentName; if (options.skillName) queryParams.skillName = options.skillName; if (options.limit) queryParams.limit = options.limit; + // Todo replace with skip; offset is deprecated in 6.3.0 and replaced by skip for consistency if (options.skip) queryParams.offset = options.skip; if (options.sort) queryParams.sort = _.toLower(options.sort); if (options.filter) queryParams.filter = options.filter; From 518801fe2678e732d513c78b749f1b40fcc629a3 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 27 Apr 2022 21:24:38 +0530 Subject: [PATCH 609/864] bumping cli version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 592e9384..55705764 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.11", + "version": "2.0.12", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 4b601c59c6db205b8c8afc331cbe1cfb0cfdbcaf Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 11 May 2022 11:35:17 +0530 Subject: [PATCH 610/864] hotifx since 6.3.0 cli changes are merged for prgy --- src/commands/agents.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index 3490cc0d..63bf7e3c 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -257,8 +257,7 @@ module.exports.ListActivationsCommand = class { if (options.agentName) queryParams.agentName = options.agentName; if (options.skillName) queryParams.skillName = options.skillName; if (options.limit) queryParams.limit = options.limit; - // Todo replace with skip; offset is deprecated in 6.3.0 and replaced by skip for consistency - if (options.skip) queryParams.offset = options.skip; + if (options.skip) queryParams.skip = options.skip; if (options.sort) queryParams.sort = _.toLower(options.sort); if (options.filter) queryParams.filter = options.filter; From 6ca1e322fe41baed7a7992ad52a93c94390cc578 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy Date: Thu, 19 May 2022 22:55:34 -0500 Subject: [PATCH 611/864] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 55705764..507fffa2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.12", + "version": "2.0.13", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { From 407938f732a68571dbe53a333485af078ac0b586 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy Date: Thu, 19 May 2022 22:55:55 -0500 Subject: [PATCH 612/864] Update package-lock.json --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index a5e1acdd..7d5df335 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.11", + "version": "2.0.13", "lockfileVersion": 2, "requires": true, "packages": { From 1a9acf057e84ad15301cd7c91d3c3fa1b4fce7d4 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 26 Apr 2022 18:14:41 +0530 Subject: [PATCH 613/864] show limit message --- src/commands/actions.js | 4 ++-- src/commands/agents.js | 3 ++- src/commands/assessments.js | 4 +++- src/commands/campaigns.js | 3 +++ src/commands/connections.js | 3 +++ src/commands/experiments.js | 3 +++ src/commands/models.js | 4 +++- src/commands/projects.js | 3 ++- src/commands/skills.js | 3 ++- src/commands/types.js | 3 ++- src/commands/utils.js | 12 ++++++++++++ 11 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index 1c546190..d9b8f13d 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -23,7 +23,7 @@ const Actions = require('../client/actions'); const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, validateOptions, - OPTIONSTABLEFORMAT, handleTable, + OPTIONSTABLEFORMAT, handleTable, printExtendedLogs, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -47,7 +47,7 @@ module.exports.ListActionsCommand = class { .then((response) => { if (response.success) { let result = response.actions; - + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/agents.js b/src/commands/agents.js index 63bf7e3c..1d6a0b30 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -23,7 +23,7 @@ const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, handleTable, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, handleTable, printExtendedLogs, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -86,6 +86,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.agents; + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index f5ff77da..737535ba 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -29,7 +29,7 @@ const Assessments = require('../client/assessments'); const { printSuccess, printError, parseObject, printTable, filterObject, - validateOptions, OPTIONSTABLEFORMAT, handleTable, + validateOptions, OPTIONSTABLEFORMAT, handleTable, printExtendedLogs, } = require('./utils'); const { @@ -61,6 +61,7 @@ module.exports.ListResourcesCommand = class { client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, transformedFilter, transformedSort) .then((response) => { if (response.success === false) throw response; + printExtendedLogs('LIMIT', response.data, options); if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { @@ -204,6 +205,7 @@ module.exports.ListAssessmentCommand = class { .then((response) => { if (response.success === false) throw response; let result = response.data; + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 3f013978..acaa35fd 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -21,6 +21,7 @@ const Catalog = require('../client/catalog'); const _ = { get: require('lodash/get') }; const { printSuccess, printError, filterObject, printTable, validateOptions, OPTIONSTABLEFORMAT, handleTable, + printExtendedLogs, } = require('./utils'); module.exports.ListCampaignsCommand = class ListCampaignsCommand { @@ -44,6 +45,7 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { const filterParam = (options.filter || '{}').replace(/"/g, '\''); const response = await cli.listCampaigns(options.project || profile.project, profile.token, filterParam, options.limit, options.skip, sortParam); let result = response; + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -232,6 +234,7 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { cli.listMissions(options.project || profile.project, profile.token, campaign, filterParam, options.limit, options.skip, sortParam).then((response) => { if (response.success === false) throw response; let data = Object.values(response.data); + printExtendedLogs('LIMIT', data, options); if (options.json) { if (options.query) data = filterObject(data, options); printSuccess(JSON.stringify(data, null, 2), options); diff --git a/src/commands/connections.js b/src/commands/connections.js index 03ac836a..0e8a39f0 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -24,6 +24,7 @@ const Content = require('../client/content'); const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, CONNECTIONTABLEFORMAT, fileExists, validateOptions, OPTIONSTABLEFORMAT, handleTable, + printExtendedLogs, } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -47,6 +48,7 @@ module.exports.ListConnections = class ListConnections { if (response.success) { let result = response.result.connections; + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -211,6 +213,7 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { if (response.success) { let result = response.result.connectionTypes; + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index efa1facd..6b2d788c 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -24,6 +24,7 @@ const { printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, DEPENDENCYTABLEFORMAT, handleTable, validateOptions, OPTIONSTABLEFORMAT, + printExtendedLogs, } = require('./utils'); class ListExperiments { @@ -46,6 +47,7 @@ class ListExperiments { exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let { result } = response; + printExtendedLogs('LIMIT', result.experiments, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -144,6 +146,7 @@ class ListRuns { if (response.success) { let { result } = response; + printExtendedLogs('LIMIT', result.runs, options); if (options.json) { if (options.query) result = filterObject(result.runs, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/models.js b/src/commands/models.js index 43a4a039..42b45518 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -25,7 +25,7 @@ const { loadProfile } = require('../config'); const Models = require('../client/models'); const Experiments = require('../client/experiments'); const { - LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, + LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, printExtendedLogs, } = require('./utils'); const { @@ -92,6 +92,7 @@ module.exports.ListModelsCommand = class ListModelsCommand { if (response.success) { let result = response.models; + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -134,6 +135,7 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { if (response.success) { let result = response.runs; + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/projects.js b/src/commands/projects.js index 847e6aa0..1812e348 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const { - printSuccess, printError, filterObject, parseObject, printTable, validateOptions, OPTIONSTABLEFORMAT, handleTable, + printSuccess, printError, filterObject, parseObject, printTable, validateOptions, OPTIONSTABLEFORMAT, handleTable, printExtendedLogs, } = require('./utils'); module.exports.CreateProjectCommand = class CreateProjectCommand { @@ -74,6 +74,7 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { const filterParam = (options.filter || '{}').replace(/"/g, '\''); const response = await cli.listProjects(profile.token, filterParam, options.limit, options.skip, sortParam); let result = response; + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/skills.js b/src/commands/skills.js index 9033f9c8..4fff92f0 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -24,6 +24,7 @@ const Agent = require('../client/agents'); const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, validateOptions, OPTIONSTABLEFORMAT, handleTable, + printExtendedLogs, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { @@ -121,7 +122,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { }); tableFormat.push({ column: 'Status', field: 'status', width: 30 }); } - + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); return printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/types.js b/src/commands/types.js index 8d7c4358..44909266 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -20,7 +20,7 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { - LISTTABLEFORMAT, filterObject, validateOptions, OPTIONSTABLEFORMAT, + LISTTABLEFORMAT, filterObject, validateOptions, OPTIONSTABLEFORMAT, printExtendedLogs, } = require('./utils'); const { @@ -76,6 +76,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { catalog.listTypes(options.project || profile.project, profile.token, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.types; + printExtendedLogs('LIMIT', result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/utils.js b/src/commands/utils.js index bf028561..bd91d87d 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -418,3 +418,15 @@ module.exports.validateOptions = (options, type) => { validOptions: true, errorDetails, }; }; + +module.exports.printExtendedLogs = (type, data, options) => { + switch (type) { + case 'LIMIT': + if (Array.isArray(data) && data.length === Number(options.limit)) { + console.log(`Results limited to ${options.limit} rows`); + } + break; + default: + // code block + } +}; From 3d385500bbdcd2f47969ba4b772f159e374220fc Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 28 Apr 2022 18:13:50 +0530 Subject: [PATCH 614/864] added default sort with {updatedAt: -1} --- bin/cortex-actions.js | 4 ++-- bin/cortex-agents.js | 8 +++++--- bin/cortex-assessments.js | 4 ++-- bin/cortex-campaigns.js | 4 ++-- bin/cortex-connections.js | 4 ++-- bin/cortex-experiments.js | 6 +++--- bin/cortex-missions.js | 4 ++-- bin/cortex-models.js | 8 +++++--- bin/cortex-projects.js | 4 ++-- bin/cortex-skills.js | 4 ++-- bin/cortex-types.js | 4 ++-- src/commands/utils.js | 1 + src/constants.js | 24 ++++++++++++++---------- 13 files changed, 44 insertions(+), 35 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index c95b2904..3f14a218 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -34,7 +34,7 @@ const { // TaskStatsActionCommand, // TaskStatusActionCommand, } = require('../src/commands/actions'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); program.name('cortex actions'); program.description('Work with Cortex Actions'); @@ -53,7 +53,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 8bfc3c4f..0487e275 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2, +} = require('../src/constants'); const { CreateAgentSnapshotCommand, @@ -72,7 +74,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); @@ -233,7 +235,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index b4110277..7c6a49d7 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -33,7 +33,7 @@ const { ExportAssessmentReportCommand, DependencyTreeCommand, } = require('../src/commands/assessments'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); program.name('cortex assessments'); program.description('Work with Cortex Assessments'); @@ -134,7 +134,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 1f862566..e3a13ec3 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); const { ListCampaignsCommand, @@ -48,7 +48,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((options) => { try { new ListCampaignsCommand(program).execute(options); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 8b25f6c4..c64efe62 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); const { ListConnections, @@ -47,7 +47,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 05248d4e..02572cd7 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); const { ListExperiments, @@ -53,7 +53,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((options) => { try { new ListExperiments(program).execute(options); @@ -109,7 +109,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((experimentName, options) => { try { new ListRuns(program).execute(experimentName, options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index e2e73cca..e1575b43 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -22,7 +22,7 @@ const program = require('commander'); const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); const { ListMissionsCommand, @@ -49,7 +49,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index a47f86ef..bdd723d1 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -30,7 +30,9 @@ const { UpdateModelStatusCommand, ListModelRunsCommand, } = require('../src/commands/models'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2 +} = require('../src/constants'); program.name('cortex models'); program.description('Work with Cortex Models'); @@ -50,7 +52,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((options) => { try { new ListModelsCommand(program).execute(options); @@ -177,7 +179,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((modelName, options) => { try { new ListModelRunsCommand(program).execute(modelName, options); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index a82cea09..1e5ad98c 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -27,7 +27,7 @@ const { DescribeProjectCommand, DeleteProjectCommand, } = require('../src/commands/projects'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); program.name('cortex projects'); program.description('Work with Cortex Projects'); @@ -65,7 +65,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((options) => { try { new ListProjectsCommand(program).execute(options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index b161c4d1..f71a95fb 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); const { SaveSkillCommand, @@ -105,7 +105,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-types.js b/bin/cortex-types.js index d5b5f2e6..f385bf02 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); const { SaveTypeCommand, @@ -61,7 +61,7 @@ program .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); diff --git a/src/commands/utils.js b/src/commands/utils.js index bd91d87d..e491372e 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -423,6 +423,7 @@ module.exports.printExtendedLogs = (type, data, options) => { switch (type) { case 'LIMIT': if (Array.isArray(data) && data.length === Number(options.limit)) { + // don't log if showing all the results console.log(`Results limited to ${options.limit} rows`); } break; diff --git a/src/constants.js b/src/constants.js index 67c87ae3..bc2da539 100644 --- a/src/constants.js +++ b/src/constants.js @@ -2,19 +2,19 @@ module.exports.ALLOWED_QUERY_FIELDS = { SKILL: { filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'createdBy', 'updatedAt'], }, AGENT: { filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'createdBy', 'updatedAt'], }, ACTION: { filter: ['name', 'title', 'type', 'image', 'description', 'createdBy'], - sort: ['name', 'title', 'type', 'image', 'description', 'createdAt', 'createdBy'], + sort: ['name', 'title', 'type', 'image', 'description', 'createdAt', 'createdBy', 'updatedAt'], }, SNAPSHOT: { filter: ['snapshotId', 'title', '_isTip', '_createdBy'], - sort: ['snapshotId', 'title', '_isTip', '_createdAt', '_createdBy'], + sort: ['snapshotId', 'title', '_isTip', '_createdAt', '_createdBy', '_updatedAt'], }, ASSESSMENT: { filter: ['name', 'title', 'componentName', 'reportCount', '_createdBy'], @@ -22,11 +22,11 @@ module.exports.ALLOWED_QUERY_FIELDS = { }, TYPE: { filter: ['name', 'title', 'description', 'createdBy'], - sort: ['name', 'title', 'description', 'createdAt', 'createdBy'], + sort: ['name', 'title', 'description', 'createdAt', 'createdBy', 'updatedAt'], }, CONNECTION: { filter: ['name', 'title', 'description', 'createdBy', 'connectionType', 'allowWrite', 'contentType'], - sort: ['name', 'title', 'description', 'createdAt', 'connectionType', 'allowWrite', 'contentType'], + sort: ['name', 'title', 'description', 'createdAt', 'connectionType', 'allowWrite', 'contentType', 'updatedAt'], }, CONNECTION_TYPE: { filter: ['name', 'title', 'description', 'type', 'group'], @@ -42,7 +42,7 @@ module.exports.ALLOWED_QUERY_FIELDS = { }, RUN: { filter: ['runId', 'title', '_createdAt', 'startTime', 'endTime', 'took', 'experimentName'], - sort: ['runId', 'title', '_createdAt', 'startTime', 'endTime', 'took', 'experimentName'], + sort: ['runId', 'title', '_createdAt', 'startTime', 'endTime', 'took', 'experimentName', '_updatedAt'], }, MODEL: { filter: ['name', 'title', 'description', 'createdBy', 'type', 'status'], @@ -50,15 +50,15 @@ module.exports.ALLOWED_QUERY_FIELDS = { }, CAMPAIGN: { filter: ['name', 'title', 'description', '_createdBy', 'lifecycleState'], - sort: ['name', 'title', 'description', '_createdAt', '_createdBy', 'lifecycleState'], + sort: ['name', 'title', 'description', '_createdAt', '_createdBy', 'lifecycleState', '_updatedAt'], }, MISSION: { filter: ['name', 'title', 'description', '_createdBy', 'lifecycleState'], - sort: ['name', 'title', 'description', '_createdAt', '_createdBy', 'lifecycleState'], + sort: ['name', 'title', 'description', '_createdAt', '_createdBy', 'lifecycleState', '_updatedAt'], }, PROJECT: { filter: ['name', 'title', 'description'], - sort: ['name', 'title', 'description', '_createdAt'], + sort: ['name', 'title', 'description', '_createdAt', '_updatedAt'], }, ACTIVATION: { filter: ['status', 'start', 'end', 'skillName', 'agentName'], @@ -69,3 +69,7 @@ module.exports.ALLOWED_QUERY_FIELDS = { module.exports.DEFAULT_LIST_LIMIT_COUNT = '20'; module.exports.DEFAULT_LIST_SKIP_COUNT = '0'; + +module.exports.DEFAULT_LIST_SORT_PARAMS = '{"updatedAt": -1}'; + +module.exports.DEFAULT_LIST_SORT_PARAMS_2 = '{"_updatedAt": -1}'; From 63087066c05ffd3aa0e7bed5368f5478b20b19c7 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 28 Apr 2022 18:15:42 +0530 Subject: [PATCH 615/864] fixes --- bin/cortex-experiments.js | 4 +++- bin/cortex-models.js | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 02572cd7..a47e04fc 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2, +} = require('../src/constants'); const { ListExperiments, diff --git a/bin/cortex-models.js b/bin/cortex-models.js index bdd723d1..7570aefa 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -31,7 +31,7 @@ const { ListModelRunsCommand, } = require('../src/commands/models'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2 + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2, } = require('../src/constants'); program.name('cortex models'); From 757fc4af8c02fc58077a7274a1050fca0b4118ed Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Sun, 1 May 2022 22:01:43 +0530 Subject: [PATCH 616/864] fixing params --- bin/cortex-assessments.js | 4 ++-- bin/cortex-campaigns.js | 4 ++-- bin/cortex-connections.js | 4 ++-- bin/cortex-missions.js | 4 ++-- bin/cortex-models.js | 4 ++-- bin/cortex-skills.js | 4 ++-- bin/cortex-types.js | 4 ++-- src/constants.js | 8 ++++---- test/listComponentOptions.js | 4 ++-- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 7c6a49d7..a822a931 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -33,7 +33,7 @@ const { ExportAssessmentReportCommand, DependencyTreeCommand, } = require('../src/commands/assessments'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); program.name('cortex assessments'); program.description('Work with Cortex Assessments'); @@ -134,7 +134,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index e3a13ec3..3f4dbd39 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); const { ListCampaignsCommand, @@ -48,7 +48,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((options) => { try { new ListCampaignsCommand(program).execute(options); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index c64efe62..b9d0d131 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); const { ListConnections, @@ -47,7 +47,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index e1575b43..fb862933 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -22,7 +22,7 @@ const program = require('commander'); const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); const { ListMissionsCommand, @@ -49,7 +49,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 7570aefa..b7757103 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -31,7 +31,7 @@ const { ListModelRunsCommand, } = require('../src/commands/models'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, } = require('../src/constants'); program.name('cortex models'); @@ -52,7 +52,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((options) => { try { new ListModelsCommand(program).execute(options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index f71a95fb..95f48429 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); const { SaveSkillCommand, @@ -105,7 +105,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-types.js b/bin/cortex-types.js index f385bf02..7451a784 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); const { SaveTypeCommand, @@ -61,7 +61,7 @@ program .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); diff --git a/src/constants.js b/src/constants.js index bc2da539..9f1c766d 100644 --- a/src/constants.js +++ b/src/constants.js @@ -41,8 +41,8 @@ module.exports.ALLOWED_QUERY_FIELDS = { sort: ['name', 'title', 'description', 'modelId', 'createdAt', 'updatedAt'], }, RUN: { - filter: ['runId', 'title', '_createdAt', 'startTime', 'endTime', 'took', 'experimentName'], - sort: ['runId', 'title', '_createdAt', 'startTime', 'endTime', 'took', 'experimentName', '_updatedAt'], + filter: ['runId', '_createdAt', 'startTime', 'endTime', 'took', 'experimentName'], + sort: ['runId', '_createdAt', 'startTime', 'endTime', 'took', 'experimentName', '_updatedAt'], }, MODEL: { filter: ['name', 'title', 'description', 'createdBy', 'type', 'status'], @@ -70,6 +70,6 @@ module.exports.DEFAULT_LIST_LIMIT_COUNT = '20'; module.exports.DEFAULT_LIST_SKIP_COUNT = '0'; -module.exports.DEFAULT_LIST_SORT_PARAMS = '{"updatedAt": -1}'; +module.exports.DEFAULT_LIST_SORT_PARAMS = '{"updatedAt": -1}'; // skills, agents, actions, connections, models, experiments, types -module.exports.DEFAULT_LIST_SORT_PARAMS_2 = '{"_updatedAt": -1}'; +module.exports.DEFAULT_LIST_SORT_PARAMS_2 = '{"_updatedAt": -1}'; // projects, missions, campaigns, run, assessment, snapshot diff --git a/test/listComponentOptions.js b/test/listComponentOptions.js index 2b268d47..b9884149 100644 --- a/test/listComponentOptions.js +++ b/test/listComponentOptions.js @@ -87,10 +87,10 @@ describe('List runs command option check', () => { const { validOptions, errorDetails } = validateOptions(options, 'RUN'); assert.ok(validOptions === false, 'Invalid options'); assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, + 'Invalid filter params. Allowed fields: runId,_createdAt,startTime,endTime,took,experimentName') === true, 'Is invalid filter'); assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: runId,title,_createdAt,startTime,endTime,took,experimentName') === true, + 'Invalid sort params. Allowed fields: runId,_createdAt,startTime,endTime,took,experimentName') === true, 'Is invalid sort'); }); }); From 7a0fc9b3e4e2b0a89fe7d36f4a88333f77a919ee Mon Sep 17 00:00:00 2001 From: Darren Schueller Date: Fri, 5 Nov 2021 12:49:44 -0400 Subject: [PATCH 617/864] Ensure LF's on Windows --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..ba1f2bd7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Set the default behavior, in case people don't have core.autocrlf set +* text eol=lf From 088733259978b1e3d3bf7996e766d255c928391e Mon Sep 17 00:00:00 2001 From: Darren Schueller Date: Thu, 11 Nov 2021 15:22:56 -0500 Subject: [PATCH 618/864] * Renamed generate command to workspace * workspace command now creates skill templates fromn the cortex-code repository. --- bin/cortex-generate.js | 44 ------ bin/cortex-workspace.js | 60 +++++++ bin/cortex.js | 2 +- package.json | 71 +++------ src/commands/generate.js | 14 -- src/commands/plopfile.js | 41 ----- src/commands/utils.js | 161 +++++-------------- src/commands/workspace.js | 323 ++++++++++++++++++++++++++++++++++++++ src/config.js | 15 +- 9 files changed, 459 insertions(+), 272 deletions(-) delete mode 100755 bin/cortex-generate.js create mode 100644 bin/cortex-workspace.js delete mode 100644 src/commands/generate.js delete mode 100644 src/commands/plopfile.js create mode 100644 src/commands/workspace.js diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js deleted file mode 100755 index dc80eb2d..00000000 --- a/bin/cortex-generate.js +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const program = require('commander'); - -const { - GenerateSkillCommand, -} = require('../src/commands/generate'); - -program.name('cortex generate'); -program.description('Scaffolding Cortex Components'); - -program - .command('skill [skillName] [type]') - .description('Generates the structure and top level build script for a skill in current directory') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((skillName, type, options) => { // deliberately not using withCompatibilityCheck() - try { - new GenerateSkillCommand(program).execute(skillName, type, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); -} -module.exports = program; diff --git a/bin/cortex-workspace.js b/bin/cortex-workspace.js new file mode 100644 index 00000000..9355ff8d --- /dev/null +++ b/bin/cortex-workspace.js @@ -0,0 +1,60 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('commander'); + +const { + WorkspaceConfigureCommand, + WorkspaceGenerateCommand, +} = require('../src/commands/workspace'); + +program.name('cortex workspace'); +program.description('Scaffolding Cortex Components'); + +program + .command('configure') + .option('--refresh', 'Refresh the Github access token') + .option('--color [on/off]', 'Turn on/off colors', 'on') + .description('Configures the Cortex Template System for generating skill templates') + .action((options) => { // deliberately not using withCompatibilityCheck() + try { + new WorkspaceConfigureCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + +program + .command('generate [name] [destination]') + .option('--registry [registry]', 'Override the docker registry to publish to') + .option('--color [on/off]', 'Turn on/off colors', 'on') + .option('--notree', 'Do not display generated file tree', false) + .description('Generates a workspace based on a template from the template repository') + .action((name, destination, options) => { // deliberately not using withCompatibilityCheck() + try { + new WorkspaceGenerateCommand(program).execute(name, destination, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex.js b/bin/cortex.js index ccc86a01..efce740d 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -35,7 +35,7 @@ program .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') - .command('generate [cmd]', 'Scaffold Cortex Components') + .command('workspace [cmd]', 'Scaffold Cortex Components') .command('missions [cmd]', 'Work with Cortex Missions') .command('models [cmd]', 'Work with Cortex Models') .command('projects [cmd]', 'Work with Cortex Projects') diff --git a/package.json b/package.json index 507fffa2..58d9bfb3 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,15 @@ { "name": "cortex-cli", - "version": "2.0.13", + "version": "2.0.6", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { - "prepare": "is-ci || husky install", - "prepack": "cp package-lock.json npm-shrinkwrap.json", - "postpack": "rm npm-shrinkwrap.json", + "preinstall": "npx check-node-version -p --package", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", - "test": "NODE_ENV=test nyc mocha" + "test": "NODE_ENV=test mocha --exit" }, - "files": [ - "bin/*", - "src/*", - "README.md", - "npm-shrinkwrap.json", - "LICENSE" - ], "engines": { - "node": ">=14.0.0" + "node": ">=12.0.0" }, "repository": { "type": "git", @@ -46,50 +37,40 @@ "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", + "gh-got": "9.0.0", "glob": "7.2.0", "got": "11.8.3", "graphql": "15.6.1", - "graphql-request": "3.7.0", + "graphql-request": "3.6.1", + "inquirer": "8.2.0", "is-installed-globally": "0.4.0", - "jmespath": "0.16.0", - "joi": "17.6.0", - "jose-node-cjs-runtime": "4.6.2", + "istextorbinary": "6.0.0", + "jmespath": "0.15.0", + "jose-node-cjs-runtime": "3.18.0", "js-yaml": "4.1.0", "lodash": "4.17.21", - "moment": "2.29.3", - "npm-registry-fetch": "12.0.1", - "plop": "2.7.6", - "prompts": "2.4.2", - "semver": "7.3.7", + "minimatch": "3.0.4", + "moment": "2.29.1", + "npm-registry-fetch": "11.0.0", + "open": "8.4.0", + "prompt": "1.2.0", + "semver": "7.3.5", + "treeify": "1.1.0", "url-join": "4.0.1", - "url-parse": "1.5.10", + "url-parse": "1.5.3", "yauzl": "2.10.0" }, "devDependencies": { - "audit-ci": "5.1.2", - "chai": "4.3.6", + "audit-ci": "4.1.0", + "chai": "4.3.4", "chai-as-promised": "7.1.1", - "eslint": "8.13.0", - "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.26.0", - "husky": "7.0.4", - "is-ci": "3.0.1", - "mocha": "9.2.2", + "eslint": "7.32.0", + "eslint-config-airbnb-base": "14.2.1", + "eslint-plugin-import": "2.24.2", + "mocha": "9.1.3", "mocked-env": "1.3.5", - "nock": "13.2.4", - "nyc": "15.1.0", - "rewire": "6.0.0", + "nock": "13.1.4", + "rewire": "5.0.0", "sinon": "11.1.2" - }, - "nyc": { - "reporter": [ - "text", - "html" - ] - }, - "overrides": { - "mixin-deep": "2.0.1", - "cache-base": "2.0.2", - "ansi-regex": "5.0.1" } } diff --git a/src/commands/generate.js b/src/commands/generate.js deleted file mode 100644 index 1a43654d..00000000 --- a/src/commands/generate.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports.GenerateSkillCommand = class GenerateSkillCommand { - constructor(program) { - this.program = program; - } - - // eslint-disable-next-line no-unused-vars - execute(options) { - const path = require('path'); - const { Plop, run } = require('plop'); - Plop.launch({ - configPath: path.join(__dirname, 'plopfile.js'), - }, run); - } -}; diff --git a/src/commands/plopfile.js b/src/commands/plopfile.js deleted file mode 100644 index 67ef4f7d..00000000 --- a/src/commands/plopfile.js +++ /dev/null @@ -1,41 +0,0 @@ -const path = require('path'); - -module.exports = (plop) => { - plop.setGenerator('skill', { - description: 'Generate Cortex Skill project', - prompts: [ - { - type: 'input', - name: 'name', - message: 'Skill Name? (Skill name must be alphanumeric, beginning with a letter. Hyphen allowed internally.)', - validate: (value) => { - // can return a boolean or a string - const isValidSkill = /^[0-9a-zA-Z][0-9a-zA-Z\- ]{0,18}[0-9a-zA-Z]$/.test(value); - return isValidSkill ? true : 'Invalid skill name. Should follow pattern: ^[0-9a-zA-Z][0-9a-zA-Z\\- ]{0,18}[0-9a-zA-Z]$'; - }, - }, - { - type: 'list', - name: 'type', - message: 'Skill Type?', - choices: ['Daemon', 'Job', 'External API'], - }, - ], - actions: [ - { - type: 'addMany', - // Current directory for the new files - destination: path.join(path.resolve('.'), '{{ dashCase name }}'), - // Handlebars template used to generate content of project files - base: 'assets/templates/skill/{{dashCase type}}', - // Note: Unlike other files, this doesn't strip hbs extension from Dockerfile, because this doesn't have any extension. - // So not using hbs extension in Dockerfile and picking all files in directory - templateFiles: 'assets/templates/skill/{{dashCase type}}/**/*', - abortOnFail: true, - // Must not overwrite files with scaffolding template if already exists - // force: true, - // verbose: true - }, - ], - }); -}; diff --git a/src/commands/utils.js b/src/commands/utils.js index e491372e..94395557 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -26,7 +26,14 @@ const os = require('os'); const path = require('path'); const yaml = require('js-yaml'); const { exec } = require('child_process'); -const { ALLOWED_QUERY_FIELDS } = require('../constants'); + +const MAX_NAME_LENGTH = 20; + +const space = /\s+/g; +const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/g; +const beginAndEndWithHyphen = /^[-]+|[-]+$/g; +const vaildationErrorMessage = "Must contain only lowercase a-z, 0-9, or -, and it can't begin or end with -"; +const suffixLength = 6; module.exports.constructError = (error) => { // fallback to text in message or standard error message @@ -36,21 +43,18 @@ module.exports.constructError = (error) => { errorText = error.message; } let details; - let respCode; + // if JSON was returned, look for either a message or error in it try { const resp = errResp ? JSON.parse(errorText) : {}; - respCode = resp.code; if (resp.message || resp.error) errorText = resp.message || resp.error; // eslint-disable-next-line prefer-destructuring details = resp.details; } catch (e) { // Guess it wasn't JSON! } - // todo make figuring out the status code more consistent? this might be a holdover from request vs got? - const status = _.get(errResp, 'statusCode') || respCode || error.code || error.status || ''; return { - success: false, message: errorText, details, status, + success: false, message: errorText, details, status: error.status || error.code || _.get(errResp, 'statusCode') || '', }; }; @@ -70,18 +74,16 @@ module.exports.printWarning = (message, options) => { } }; -function printError(message, options, exit = true) { +module.exports.printError = (message, options, exit = true) => { if (!options || options.color === 'on') { console.error(chalk.red(message)); } else { console.error(message); } - // Don't exit when testing as this breaks negative unit tests - if (exit && _.toLower(process.env.NODE_ENV) !== 'test') { + if (exit) { process.exit(1); } -} -module.exports.printError = printError; +}; module.exports.filterObject = (obj, options) => { if (options.query) { @@ -91,15 +93,6 @@ module.exports.filterObject = (obj, options) => { return obj; }; -module.exports.filterListObject = (obj, options) => { - const { map, pick, partialRight } = _; - if (options.query) { - debug(`filtering results with query: ${options.query}`); - return map(obj, partialRight(pick, options.query.split(','))); - } - return obj; -}; - // YAML 1.2 parses both yaml & json module.exports.parseObject = (str) => yaml.load(str); @@ -301,7 +294,8 @@ module.exports.deleteFile = deleteFolderRecursive; module.exports.checkProject = (projectId) => { if (_.isEmpty(projectId)) { - printError('\'project\' is required, please provide using \'cortex configure\' or --project'); + console.error(chalk.red('\'project\' is required, please provide using \'cortex configure\' or --project')); + process.exit(1); } }; @@ -316,16 +310,7 @@ module.exports.LISTTABLEFORMAT = [ { column: 'Description', field: 'description', width: 50 }, { column: 'Modified', field: 'updatedAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 25 }, -]; - -module.exports.DEPENDENCYTABLEFORMAT = [ - { column: 'Dependency Name', field: 'name', width: 60 }, - { column: 'Dependency Type', field: 'type', width: 40 }, -]; -module.exports.OPTIONSTABLEFORMAT = [ - { column: 'Option Type', field: 'type', width: 20 }, - { column: 'Message', field: 'message', width: 120 }, ]; module.exports.RUNTABLEFORMAT = [ @@ -335,99 +320,25 @@ module.exports.RUNTABLEFORMAT = [ { column: 'Modified', field: '_updatedAt', width: 26 }, ]; -module.exports.SESSIONTABLEFORMAT = [ - { column: 'Session ID', field: 'sessionId', width: 45 }, - { column: 'TTL', field: 'ttl', width: 15 }, - { column: 'Description', field: 'description', width: 70 }, -]; - -module.exports.isNumeric = (value) => /^-?\d+$/.test(value); - -module.exports.CONNECTIONTABLEFORMAT = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Description', field: 'description', width: 50 }, - { column: 'Connection Type', field: 'connectionType', width: 25 }, - { column: 'Created On', field: 'createdAt', width: 26 }, -]; - -module.exports.EXTERNALROLESFORMAT = [ - { column: 'Group', field: 'group' }, - { column: 'Roles', field: 'roles' }, -]; - -module.exports.handleTable = (spec, data, transformer, noDataMessage) => { - if (!data || data.length === 0) { - this.printSuccess(noDataMessage); - } else { - this.printTable(spec, data, transformer); +module.exports.generateNameFromTitle = (title) => title.replace(specialCharsExceptHyphen, '') + .replace(space, '-') + .replace(beginAndEndWithHyphen, '') + .substr(0, MAX_NAME_LENGTH - suffixLength) + .replace(beginAndEndWithHyphen, '') + .toLowerCase(); + +module.exports.hasUppercase = (s) => /[A-Z]/.test(s); + +module.exports.validateName = (name) => (space.test(name) +|| specialCharsExceptHyphen.test(name) +|| beginAndEndWithHyphen.test(name) +|| (name && name.length > MAX_NAME_LENGTH) +|| module.exports.hasUppercase(name) + ? { + status: false, + message: vaildationErrorMessage, } -}; - -// Todo: move to cortex-express-common FAB-4008 -module.exports.validateOptions = (options, type) => { - const { - filter, limit, skip, sort, - } = options; - const errorDetails = []; - if (filter) { - try { - const filterObj = JSON.parse(filter); - const filterKeys = Object.keys(filterObj); - if (typeof (filterObj) !== 'object') { - errorDetails.push({ type: 'filter', message: 'Invalid filter expression' }); - } - if (type && (_.intersection(ALLOWED_QUERY_FIELDS[type].filter, filterKeys)).length !== filterKeys.length) { - errorDetails.push({ type: 'filter', message: `Invalid filter params. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].filter}` }); - } - } catch (err) { - errorDetails.push({ type: 'filter', message: `Invalid filter expression: ${err.message}` }); - } - } - if (sort) { - try { - const sortObj = JSON.parse(sort); - const sortKeys = Object.keys(sortObj); - const sortValues = Object.values(sortObj); - if (typeof (sortObj) !== 'object') { - errorDetails.push({ type: 'sort', message: 'Invalid sort expression' }); - } - if (!sortValues.every((val) => Number(val) === 1 || Number(val) === -1)) { - errorDetails.push({ type: 'sort', message: 'Sort values can only be 1(ascending) or -1(descending)' }); - } - if (type && (_.intersection(ALLOWED_QUERY_FIELDS[type].sort, sortKeys)).length !== sortKeys.length) { - errorDetails.push({ type: 'sort', message: `Invalid sort params. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].sort}` }); - } - } catch (err) { - // check if a string of 'asc' or 'desc' is provided for backwards compatibility - if (!(_.lowerCase(sort).startsWith('desc') || _.lowerCase(sort).startsWith('asc'))) { - errorDetails.push({ type: 'sort', message: `Invalid sort expression: ${err.message}` }); - } - } - } - if ((limit && _.isNaN(Number(limit))) || Number(limit) <= 0) { - errorDetails.push({ type: 'limit', message: 'Invalid limit, limit should be a valid positive number' }); - } - if ((skip && _.isNaN(Number(skip))) || Number(skip) < 0) { - errorDetails.push({ type: 'skip', message: 'Invalid skip, skip should be a valid non negative number' }); - } - if (errorDetails.length) { - return { validOptions: false, errorDetails }; - } - return { - validOptions: true, errorDetails, - }; -}; - -module.exports.printExtendedLogs = (type, data, options) => { - switch (type) { - case 'LIMIT': - if (Array.isArray(data) && data.length === Number(options.limit)) { - // don't log if showing all the results - console.log(`Results limited to ${options.limit} rows`); - } - break; - default: - // code block - } -}; + : { + status: true, + message: '', + }); diff --git a/src/commands/workspace.js b/src/commands/workspace.js new file mode 100644 index 00000000..dd69d028 --- /dev/null +++ b/src/commands/workspace.js @@ -0,0 +1,323 @@ +const path = require('path'); +const URL = require('url-parse'); +const { mkdir, writeFile } = require('fs/promises'); +const minimatch = require('minimatch'); +const inquirer = require('inquirer'); +const chalk = require('chalk'); +const got = require('got'); +const ghGot = require('gh-got'); +const open = require('open'); +const moment = require('moment'); +const { isText } = require('istextorbinary'); +const treeify = require('treeify'); + +const _ = { + get: require('lodash/get'), + groupBy: require('lodash/groupBy'), + map: require('lodash/map'), + filter: require('lodash/filter'), + forEach: require('lodash/forEach'), + template: require('lodash/template'), + isEmpty: require('lodash/isEmpty'), + set: require('lodash/set'), +}; + +const { readConfig, loadProfile } = require('../config'); +const { printSuccess, printError } = require('./utils'); + +const { generateNameFromTitle, validateName } = require('./utils'); + +const GITHUB_APP_CLIENTID = 'Iv1.e0e84c2a5fa7c935'; +const METADATA_FILENAME = 'metadata.json'; +const DEFAULT_TEMPLATE_REPO = 'CognitiveScale/cortex-code-templates'; +const DEFAULT_TEMPLATE_BRANCH = 'main'; + +const GITHUB_DEVICECODE_REQUEST_URL = 'https://github.com/login/device/code'; +const GITHUB_DEVICECODE_RESPONSE_URL = 'https://github.com/login/oauth/access_token'; + +module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { + constructor(program) { + this.program = program; + } + + async execute(opts) { + this.options = opts; + + const config = readConfig(); + + await inquirer.prompt([ + { + type: 'input', + name: 'repo', + message: 'Template Repository URL: ', + default: _.get(config, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), + }, + { + type: 'input', + name: 'branch', + message: 'Template Repository Branch:', + default: _.get(config, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), + }, + ]) + .then(async (answers) => { + let { githubToken } = config.templateConfig; + + if (githubToken) { + await ghGot('user', { token: githubToken.access_token }).catch((err) => { + if (err.status === 401) { + printError('Current Github credentials invalid. Reauthorization required.', this.options); + githubToken = undefined; + } + }).then((u) => { + if (!this.options.refresh && u && u.status === 200) { + printSuccess('Github access is valid.', this.options); + } + }); + } + + if (!githubToken || this.options.refresh) { + const { body: deviceCode } = await got.post(GITHUB_DEVICECODE_REQUEST_URL, { + json: { + client_id: GITHUB_APP_CLIENTID, + }, + responseType: 'json', + headers: { + Accept: 'application/json', + }, + }); + + if (deviceCode) { + console.log(`Opening browser at ${deviceCode.verification_uri}`); + await open(deviceCode.verification_uri); + + let expiry = deviceCode.expires_in; + let pollInterval = deviceCode.interval; + let accessToken; + + const mom = moment().add(expiry, 'seconds'); + + (function poller(options) { + process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${ + options.color === 'on' ? chalk.bgGreen.whiteBright(deviceCode.user_code) : deviceCode.user_code + }`); + process.stdout.write( + moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]'), + ); + + const pollTimer = setTimeout(async () => { + const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { + json: { + client_id: GITHUB_APP_CLIENTID, + device_code: deviceCode.device_code, + grant_type: 'urn:ietf:params:oauth:grant-type:device_code', + }, + responseType: 'json', + headers: { + Accept: 'application/json', + }, + }); + accessToken = body; + + if (accessToken.access_token) { + clearTimeout(pollTimer); + githubToken = accessToken; + config.templateConfig = { + ...answers, + githubToken, + }; + config.save(); + printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); + } else { + switch (accessToken.error) { + case 'authorization_pending': + expiry = Math.max(expiry - pollInterval, 0); + break; + + case 'slow_down': + pollInterval += 5; + break; + + case 'expired_token': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); + return; + + case 'incorrect_device_code': + printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); + return; + + case 'access_denied': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess denied by user.', options); + return; + + default: + clearInterval(pollTimer); + printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); + return; + } + poller(options); + } + }, (pollInterval) * 1000); + }(this.options)); + } else { + printError('\x1b[2KDevice Code request failed. Please try again.', this.options); + } + } + }) + .catch((error) => { + printError(error.message, this.options); + }); + } +}; + +module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { + constructor(program) { + this.program = program; + } + + async loadTemplateTree() { + process.stdout.write('\x1b[0G\x1b[2KLoading templates...'); + + const config = readConfig(); + const { repo, branch, githubToken } = config.templateConfig; + + this.gitRepo = repo; + this.branch = branch; + + this.authorization = `${githubToken.token_type} ${githubToken.access_token}`; + + this.tree = await ghGot(`repos/${repo}/branches/${branch || 'main'}`, { + headers: { authorization: this.authorization }, + }) + .then((resp) => resp.body) + .then((resp) => ghGot(`repos/${repo}/git/trees/${resp.commit.sha}?recursive=true`, { + headers: { authorization: this.authorization }, + })) + .then((resp) => resp.body.tree) + .catch((err) => { + console.log('error: ', err); + return []; + }); + + process.stdout.write('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); + } + + globTree(glob) { + const filterFunc = minimatch.filter(glob, { matchBase: true }); + return _.filter(this.tree, (f) => f.type === 'blob' && filterFunc(f.path)); + } + + async readFile(filePath) { + const response = await ghGot(`repos/${this.gitRepo}/contents/${filePath}?ref=${this.branch}`, { + headers: { authorization: this.authorization }, + }); + return Buffer.from(response.body.content, 'base64'); + } + + async selectTemplate() { + const profile = await loadProfile(); + const registryUrl = _.get(this, 'options.registry', (new URL(profile.url)).hostname.replace('api', 'private-registry')); + + const fileNames = this.globTree(METADATA_FILENAME); + + const choices = await Promise.all(_.map(fileNames, async (value) => { + const data = JSON.parse((await this.readFile(value.path)).toString()); + return { + name: data.title, + value, + }; + })); + + const answers = await inquirer.prompt([ + { + type: 'list', + name: 'template', + message: 'Select the template you want to use:', + choices, + }, + { + type: 'input', + name: 'name', + message: 'Enter a name for the skill:', + validate: (answer) => { + const validation = validateName(answer); + return validation.status || validation.message; + }, + }, + { + type: 'input', + name: 'registry', + message: 'Specify the Docker registry in which to publish the skills:', + default: registryUrl, + }, + ], { + name: this.name, + registry: _.get(this, 'options.registry', undefined), + }).catch(() => { }); + + return answers; + } + + async execute(name, destination, options) { + this.options = options; + this.name = name; + this.destination = destination; + + await this.loadTemplateTree(); + + if (this.tree.length) { + const template = await this.selectTemplate(); + if (template) { + const templateFolder = path.posix.dirname(template.template.path); + const templateFiles = this.globTree(`${templateFolder}/**`); + const destinationPath = path.resolve(destination || process.cwd()); + const treeObj = {}; + + console.log(''); + + await Promise.all( + _.map(templateFiles, async (f) => { + try { + const fileName = path.posix.basename(f.path); + if (fileName !== METADATA_FILENAME) { + const templateVars = { + skillname: generateNameFromTitle(template.name), + repo: { url: template.registry }, + }; + + let buf = await this.readFile(f.path); + /// Try not to template any non-text files. + if (isText(null, buf)) { + buf = Buffer.from( + _.template(buf.toString(), { interpolate: /{{([\s\S]+?)}}/g })(templateVars), + ); + } + + const sourcePath = _.template(f.path.replace(/^templates\/[A-Za-z0-9- ]+\//, ''), { interpolate: /__([\s\S]+?)__/g })(templateVars); + const targetPath = path.resolve(destinationPath, sourcePath); + + await mkdir(path.dirname(targetPath), { recursive: true }); + await writeFile(targetPath, buf); + + _.set(treeObj, sourcePath.split('/'), null); + } + } catch (err) { + printError(`Error processing template file ${f.path}: ${err.message}`, this.options); + } + }), + ); + if (!options || !options.notree) { + printSuccess('Generated the following files:'); + console.log(''); + console.log(destinationPath); + console.log(treeify.asTree(treeObj, true)); + } + + printSuccess('Workspace generation complete.'); + } + } else { + printError('Unable to retrieve templates', this.options); + } + } +}; diff --git a/src/config.js b/src/config.js index c1905ff7..85d56de4 100644 --- a/src/config.js +++ b/src/config.js @@ -98,10 +98,16 @@ class Profile { } class Config { - constructor({ version, profiles, currentProfile }) { + constructor({ + version, + profiles, + currentProfile, + templateConfig, + }) { this.version = version || '3'; this.profiles = profiles || {}; this.currentProfile = currentProfile; + this.templateConfig = templateConfig; Object.keys(this.profiles).forEach((name) => { this.profiles[name] = new Profile(name, this.profiles[name]); }); @@ -135,7 +141,12 @@ class Config { Object.keys(this.profiles).forEach((name) => { profiles[name] = this.profiles[name].toJSON(); }); - return { version: this.version, profiles, currentProfile: this.currentProfile }; + return { + version: this.version, + profiles, + currentProfile: this.currentProfile, + templateConfig: this.templateConfig, + }; } save() { From 6f429303d42b7c406678d7cc227479fbceeb2fd0 Mon Sep 17 00:00:00 2001 From: Darren Schueller Date: Thu, 11 Nov 2021 15:24:27 -0500 Subject: [PATCH 619/864] Updated gitignore --- .gitignore | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5d88d563..7ac20a3d 100644 --- a/.gitignore +++ b/.gitignore @@ -97,6 +97,5 @@ test/cortex/local.json dist/ cortex-cli-docs.md -package/ -*.tgz -npm-shrinkwrap.json + +*.code-workspace From 1b11e8a4a01cc384a855b2e82ef3971436e20a2e Mon Sep 17 00:00:00 2001 From: Darren Schueller Date: Fri, 12 Nov 2021 14:15:19 -0500 Subject: [PATCH 620/864] * Validate git token, and automatically run config if not configured. --- src/commands/workspace.js | 202 +++++++++++++++++++++----------------- 1 file changed, 111 insertions(+), 91 deletions(-) diff --git a/src/commands/workspace.js b/src/commands/workspace.js index dd69d028..4834da72 100644 --- a/src/commands/workspace.js +++ b/src/commands/workspace.js @@ -35,6 +35,14 @@ const DEFAULT_TEMPLATE_BRANCH = 'main'; const GITHUB_DEVICECODE_REQUEST_URL = 'https://github.com/login/device/code'; const GITHUB_DEVICECODE_RESPONSE_URL = 'https://github.com/login/oauth/access_token'; +function validateToken(config) { + const githubToken = _.get(config, 'templateConfig.githubToken'); + if (githubToken) { + return ghGot('user', { token: githubToken.access_token }).catch(() => undefined).then((u) => ((u && u.statusCode === 200) ? githubToken.access_token : undefined)); + } + return undefined; +} + module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { constructor(program) { this.program = program; @@ -60,19 +68,10 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { }, ]) .then(async (answers) => { - let { githubToken } = config.templateConfig; + let githubToken = await validateToken(config); - if (githubToken) { - await ghGot('user', { token: githubToken.access_token }).catch((err) => { - if (err.status === 401) { - printError('Current Github credentials invalid. Reauthorization required.', this.options); - githubToken = undefined; - } - }).then((u) => { - if (!this.options.refresh && u && u.status === 200) { - printSuccess('Github access is valid.', this.options); - } - }); + if (!githubToken && !this.options.refresh) { + printError('Current Github credentials invalid. Reauthorization required.', this.options, false); } if (!githubToken || this.options.refresh) { @@ -90,76 +89,82 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { console.log(`Opening browser at ${deviceCode.verification_uri}`); await open(deviceCode.verification_uri); - let expiry = deviceCode.expires_in; - let pollInterval = deviceCode.interval; - let accessToken; - - const mom = moment().add(expiry, 'seconds'); - - (function poller(options) { - process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${ - options.color === 'on' ? chalk.bgGreen.whiteBright(deviceCode.user_code) : deviceCode.user_code - }`); - process.stdout.write( - moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]'), - ); - - const pollTimer = setTimeout(async () => { - const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { - json: { - client_id: GITHUB_APP_CLIENTID, - device_code: deviceCode.device_code, - grant_type: 'urn:ietf:params:oauth:grant-type:device_code', - }, - responseType: 'json', - headers: { - Accept: 'application/json', - }, - }); - accessToken = body; - - if (accessToken.access_token) { - clearTimeout(pollTimer); - githubToken = accessToken; - config.templateConfig = { - ...answers, - githubToken, - }; - config.save(); - printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); - } else { - switch (accessToken.error) { - case 'authorization_pending': - expiry = Math.max(expiry - pollInterval, 0); - break; - - case 'slow_down': - pollInterval += 5; - break; - - case 'expired_token': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); - return; - - case 'incorrect_device_code': - printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); - return; - - case 'access_denied': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess denied by user.', options); - return; - - default: - clearInterval(pollTimer); - printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); - return; + await new Promise((resolve, reject) => { + let expiry = deviceCode.expires_in; + let pollInterval = deviceCode.interval; + let accessToken; + + const mom = moment().add(expiry, 'seconds'); + + (function poller(options) { + process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${options.color === 'on' ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) : deviceCode.user_code + }`); + process.stdout.write( + moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]'), + ); + + const pollTimer = setTimeout(async () => { + const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { + json: { + client_id: GITHUB_APP_CLIENTID, + device_code: deviceCode.device_code, + grant_type: 'urn:ietf:params:oauth:grant-type:device_code', + }, + responseType: 'json', + headers: { + Accept: 'application/json', + }, + }); + accessToken = body; + + if (accessToken.access_token) { + clearTimeout(pollTimer); + githubToken = accessToken; + config.templateConfig = { + ...answers, + githubToken, + }; + config.save(); + printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); + resolve(); + } else { + switch (accessToken.error) { + case 'authorization_pending': + expiry = Math.max(expiry - pollInterval, 0); + break; + + case 'slow_down': + pollInterval += 5; + break; + + case 'expired_token': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); + reject(); + return; + + case 'incorrect_device_code': + printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); + reject(); + return; + + case 'access_denied': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess denied by user.', options); + reject(); + return; + + default: + clearInterval(pollTimer); + printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); + reject(); + return; + } + poller(options); } - poller(options); - } - }, (pollInterval) * 1000); - }(this.options)); + }, (pollInterval) * 1000); + }(this.options)); + }); } else { printError('\x1b[2KDevice Code request failed. Please try again.', this.options); } @@ -176,12 +181,9 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { this.program = program; } - async loadTemplateTree() { + async loadTemplateTree({ repo, branch, githubToken }) { process.stdout.write('\x1b[0G\x1b[2KLoading templates...'); - const config = readConfig(); - const { repo, branch, githubToken } = config.templateConfig; - this.gitRepo = repo; this.branch = branch; @@ -200,7 +202,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { return []; }); - process.stdout.write('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); + process.stdout.write('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); } globTree(glob) { @@ -215,10 +217,14 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { return Buffer.from(response.body.content, 'base64'); } - async selectTemplate() { + async getRegistry() { const profile = await loadProfile(); const registryUrl = _.get(this, 'options.registry', (new URL(profile.url)).hostname.replace('api', 'private-registry')); + return registryUrl; + } + async selectTemplate() { + const registryUrl = await this.getRegistry(); const fileNames = this.globTree(METADATA_FILENAME); const choices = await Promise.all(_.map(fileNames, async (value) => { @@ -264,7 +270,21 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { this.name = name; this.destination = destination; - await this.loadTemplateTree(); + this.config = readConfig(); + this.githubToken = await validateToken(this.config); + + if (!this.githubToken) { + printError( + this.config.templateConfig + ? 'Github authorization is invalid. Running configuration now.\n' + : 'Workspace generator is not configured. Running configuration now.\n', + this.options, false, + ); + await (new module.exports.WorkspaceConfigureCommand(this.program)).execute({ refresh: true }); + this.config = readConfig(); + } + + await this.loadTemplateTree(this.config.templateConfig); if (this.tree.length) { const template = await this.selectTemplate(); @@ -285,7 +305,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { skillname: generateNameFromTitle(template.name), repo: { url: template.registry }, }; - + let buf = await this.readFile(f.path); /// Try not to template any non-text files. if (isText(null, buf)) { @@ -293,10 +313,10 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { _.template(buf.toString(), { interpolate: /{{([\s\S]+?)}}/g })(templateVars), ); } - + const sourcePath = _.template(f.path.replace(/^templates\/[A-Za-z0-9- ]+\//, ''), { interpolate: /__([\s\S]+?)__/g })(templateVars); const targetPath = path.resolve(destinationPath, sourcePath); - + await mkdir(path.dirname(targetPath), { recursive: true }); await writeFile(targetPath, buf); From ac863fbe1c3d2c8364ae89e7c303dc5a2400ae91 Mon Sep 17 00:00:00 2001 From: Darren Schueller Date: Mon, 15 Nov 2021 12:25:52 -0500 Subject: [PATCH 621/864] * Fixed up support for multiple config versions. * Added new config version 4, which includes template repo config and IDE registry support. --- src/commands/configure.js | 8 +- src/config.js | 174 +++++++++++++++++++++++++++++++++----- 2 files changed, 157 insertions(+), 25 deletions(-) diff --git a/src/commands/configure.js b/src/commands/configure.js index 7ba52cba..983e5d67 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -69,13 +69,9 @@ module.exports.ConfigureCommand = class { } } - saveConfig(config, profileName, { - url, username, issuer, audience, jwk, - }, project) { + saveConfig(config, profileName, cfg, project) { if (!config) config = defaultConfig(); - config.setProfile(profileName, { - url, username, issuer, audience, jwk, project, - }); + config.setProfile(profileName, cfg, project); config.currentProfile = profileName; config.save(); } diff --git a/src/config.js b/src/config.js index 85d56de4..7b55fec5 100644 --- a/src/config.js +++ b/src/config.js @@ -63,6 +63,21 @@ const ProfileSchema = Joi.object({ project: Joi.string().optional(), }); +const ProfileSchemaV4 = Joi.object().keys({ + name: Joi.string().optional(), + url: Joi.string().uri().required(), + username: Joi.string().required(), + // deprecated + account: Joi.string().optional(), + jwk: Joi.any().required(), + issuer: Joi.string().required(), + audience: Joi.string().required(), + token: Joi.string().optional(), + project: Joi.string().optional(), + registries: Joi.any().required(), + currentRegistry: Joi.string().required(), +}); + class Profile { constructor(name, { url, username, issuer, audience, jwk, project, @@ -101,13 +116,11 @@ class Config { constructor({ version, profiles, - currentProfile, - templateConfig, + currentProfile, }) { this.version = version || '3'; this.profiles = profiles || {}; this.currentProfile = currentProfile; - this.templateConfig = templateConfig; Object.keys(this.profiles).forEach((name) => { this.profiles[name] = new Profile(name, this.profiles[name]); }); @@ -127,8 +140,8 @@ class Config { } setProfile(name, { - url, username, issuer, audience, jwk, project, - }) { + url, username, issuer, audience, jwk, + }, project) { const profile = new Profile(name, { url, username, issuer, audience, jwk, project, }); @@ -136,6 +149,105 @@ class Config { this.profiles[name] = profile; } + toJSON() { + const profiles = {}; + Object.keys(this.profiles).forEach((name) => { + profiles[name] = this.profiles[name].toJSON(); + }); + return { + version: this.version, + profiles, + currentProfile: this.currentProfile, + }; + } + + save() { + const dir = configDir(); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + + _.forEach(this.profiles, (profile) => { + delete profile.token; + }); + + const configFile = path.join(dir, 'config'); + fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); + } +} + +class ProfileV4 { + constructor(name, { + url, username, issuer, audience, jwk, project, registries, currentRegistry, +}) { + this.name = name; + this.url = url; + this.username = username; + this.jwk = jwk; + this.issuer = issuer; + this.audience = audience; + this.project = project; + this.registries = registries || { + 'Cortex Private Registry': { + url: new URL(url).hostname.replace('api', 'private-registry'), + name: 'Cortex Private Registry', + isCortex: true, + }, + }; + this.currentRegistry = currentRegistry || 'Cortex Private Registry'; + } + + validate() { + const { error } = ProfileSchemaV4.validate(this, { abortEarly: false }); + if (error) { + throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. ` + + 'Please get your Personal Access Token from the Cortex Console and run "cortex configure".'); + } + return this; + } + + toJSON() { + return { + url: this.url, + username: this.username, + issuer: this.issuer, + audience: this.audience, + jwk: this.jwk, + project: this.project, + registries: this.registries, + currentRegistry: this.currentRegistry, + }; + } +} + +class ConfigV4 { + constructor({ + profiles, + currentProfile, + templateConfig, + }) { + this.version = '4'; + this.profiles = profiles || {}; + this.currentProfile = currentProfile; + Object.keys(this.profiles).forEach((name) => { + this.profiles[name] = new ProfileV4(name, this.profiles[name]); + }); + this.templateConfig = templateConfig || { + repo: 'CognitiveScale/cortex-code-templates', + branch: 'main', + }; + } + + setProfile(name, { + url, username, issuer, audience, jwk, registries, currentRegistry, + }, project) { + const profile = new ProfileV4(name, { + url, username, issuer, audience, jwk, project, registries, currentRegistry, + }); + profile.validate(); // do not set/save invalid profiles .. + this.profiles[name] = profile; + } + toJSON() { const profiles = {}; Object.keys(this.profiles).forEach((name) => { @@ -149,6 +261,19 @@ class Config { }; } + async getProfile(name, useenv = true) { + const profile = this.profiles[name]; + if (!profile) { + return undefined; + } + const profileType = new ProfileV4(name, profile).validate(); + if (useenv) { + profileType.url = process.env.CORTEX_URI || profileType.url; + } + profileType.token = await generateJwt(profile); + return profileType; + } + save() { const dir = configDir(); if (!fs.existsSync(dir)) { @@ -165,7 +290,7 @@ class Config { } function defaultConfig() { - return new Config({}); + return new ConfigV4({}); } function readConfig() { @@ -182,21 +307,32 @@ function readConfig() { // deal with config versions const configObj = JSON.parse(fs.readFileSync(configFile)); - if (configObj.version && configObj.version === '3') { - // version 3 - return new Config(configObj); - } - fs.copyFileSync(configFile, path.join(dir, 'config_v2')); - defaultConfig().save(); - printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); + if (configObj.version) { + switch (configObj.version) { + case '4': + return new ConfigV4(configObj); - if (configObj.version && configObj.version === '2') { - // version 2 - return new Config(configObj); - } + case '3': + { + // version 4 (template config support, with github token) + // Upgrade v3 to v4 + const cfg = new ConfigV4(configObj); + cfg.save(); + return cfg; + } - // version 1 - return new Config({ profiles: configObj }); + case '2': + fs.copyFileSync(configFile, path.join(dir, 'config_v2')); + defaultConfig().save(); + printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); + // version 2 + return new Config(configObj); + + default: + // version 1 + return new Config({ profiles: configObj }); + } + } } } catch (err) { throw new Error(`Unable to load config: ${err.message}`); From 7d3db4e8d064ac331885f658747deeea496b5412 Mon Sep 17 00:00:00 2001 From: Darren Schueller Date: Mon, 15 Nov 2021 13:19:30 -0500 Subject: [PATCH 622/864] Properly handle default publish destination. --- src/commands/workspace.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/commands/workspace.js b/src/commands/workspace.js index 4834da72..a7ed506c 100644 --- a/src/commands/workspace.js +++ b/src/commands/workspace.js @@ -97,7 +97,9 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { const mom = moment().add(expiry, 'seconds'); (function poller(options) { - process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${options.color === 'on' ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) : deviceCode.user_code + process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${options.color === 'on' + ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) + : deviceCode.user_code }`); process.stdout.write( moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]'), @@ -219,7 +221,11 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { async getRegistry() { const profile = await loadProfile(); - const registryUrl = _.get(this, 'options.registry', (new URL(profile.url)).hostname.replace('api', 'private-registry')); + + const registryUrl = _.get(this, 'options.registry') + || _.get(profile, `registries['${profile.currentRegistry}'].url`) + || (new URL(profile.url)).hostname.replace('api', 'private-registry'); + return registryUrl; } @@ -251,15 +257,9 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { return validation.status || validation.message; }, }, - { - type: 'input', - name: 'registry', - message: 'Specify the Docker registry in which to publish the skills:', - default: registryUrl, - }, ], { name: this.name, - registry: _.get(this, 'options.registry', undefined), + registry: registryUrl, }).catch(() => { }); return answers; From cc6b3722fb2458164c34dc95927f6bfb5fefe261 Mon Sep 17 00:00:00 2001 From: Darren Schueller Date: Tue, 16 Nov 2021 14:48:36 -0500 Subject: [PATCH 623/864] Changed from workspace to workspaces --- bin/{cortex-workspace.js => cortex-workspaces.js} | 2 +- bin/cortex.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename bin/{cortex-workspace.js => cortex-workspaces.js} (98%) diff --git a/bin/cortex-workspace.js b/bin/cortex-workspaces.js similarity index 98% rename from bin/cortex-workspace.js rename to bin/cortex-workspaces.js index 9355ff8d..a94381e1 100644 --- a/bin/cortex-workspace.js +++ b/bin/cortex-workspaces.js @@ -24,7 +24,7 @@ const { WorkspaceGenerateCommand, } = require('../src/commands/workspace'); -program.name('cortex workspace'); +program.name('cortex workspaces'); program.description('Scaffolding Cortex Components'); program diff --git a/bin/cortex.js b/bin/cortex.js index efce740d..87a95061 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -35,7 +35,7 @@ program .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') - .command('workspace [cmd]', 'Scaffold Cortex Components') + .command('workspaces [cmd]', 'Scaffold Cortex Components') .command('missions [cmd]', 'Work with Cortex Missions') .command('models [cmd]', 'Work with Cortex Models') .command('projects [cmd]', 'Work with Cortex Projects') From 4acc757467867036e78f6f2d7f591a28aef2697a Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 29 Nov 2021 12:17:59 -0500 Subject: [PATCH 624/864] * Moved workspace implementation into folder * Removed old generate templates * Build command works * Started on publish command (incomplete) --- bin/cortex-workspaces.js | 36 +- package-lock.json | 14580 +++------------- package.json | 14 +- .../assets/templates/skill/daemon/Dockerfile | 5 - .../assets/templates/skill/daemon/Makefile | 31 - .../assets/templates/skill/daemon/README.md | 76 - .../templates/skill/daemon/action.json.hbs | 8 - .../assets/templates/skill/daemon/fabric.yaml | 7 - .../assets/templates/skill/daemon/main.py.hbs | 9 - .../skill/daemon/requirements.txt.hbs | 3 - .../templates/skill/daemon/skill.yaml.hbs | 46 - .../templates/skill/daemon/test/payload.json | 3 - .../templates/skill/external-api/Makefile | 17 - .../templates/skill/external-api/README.md | 31 - .../templates/skill/external-api/fabric.yaml | 5 - .../skill/external-api/skill.yaml.hbs | 41 - .../skill/external-api/test/payload.json | 3 - .../assets/templates/skill/job/Dockerfile | 8 - .../assets/templates/skill/job/Makefile | 31 - .../assets/templates/skill/job/README.md | 73 - .../templates/skill/job/action.json.hbs | 7 - .../assets/templates/skill/job/fabric.yaml | 7 - .../assets/templates/skill/job/main.py.hbs | 7 - .../templates/skill/job/requirements.txt.hbs | 1 - .../assets/templates/skill/job/skill.yaml.hbs | 26 - .../templates/skill/job/test/payload.json | 3 - src/commands/workspace.js | 343 - src/commands/workspaces/build.js | 106 + src/commands/workspaces/configure.js | 165 + src/commands/workspaces/generate.js | 195 + src/commands/workspaces/publish.js | 48 + src/commands/workspaces/utils.js | 194 + 32 files changed, 3018 insertions(+), 13111 deletions(-) delete mode 100644 src/commands/assets/templates/skill/daemon/Dockerfile delete mode 100644 src/commands/assets/templates/skill/daemon/Makefile delete mode 100644 src/commands/assets/templates/skill/daemon/README.md delete mode 100644 src/commands/assets/templates/skill/daemon/action.json.hbs delete mode 100644 src/commands/assets/templates/skill/daemon/fabric.yaml delete mode 100644 src/commands/assets/templates/skill/daemon/main.py.hbs delete mode 100644 src/commands/assets/templates/skill/daemon/requirements.txt.hbs delete mode 100644 src/commands/assets/templates/skill/daemon/skill.yaml.hbs delete mode 100644 src/commands/assets/templates/skill/daemon/test/payload.json delete mode 100644 src/commands/assets/templates/skill/external-api/Makefile delete mode 100644 src/commands/assets/templates/skill/external-api/README.md delete mode 100644 src/commands/assets/templates/skill/external-api/fabric.yaml delete mode 100644 src/commands/assets/templates/skill/external-api/skill.yaml.hbs delete mode 100644 src/commands/assets/templates/skill/external-api/test/payload.json delete mode 100644 src/commands/assets/templates/skill/job/Dockerfile delete mode 100644 src/commands/assets/templates/skill/job/Makefile delete mode 100644 src/commands/assets/templates/skill/job/README.md delete mode 100644 src/commands/assets/templates/skill/job/action.json.hbs delete mode 100644 src/commands/assets/templates/skill/job/fabric.yaml delete mode 100644 src/commands/assets/templates/skill/job/main.py.hbs delete mode 100644 src/commands/assets/templates/skill/job/requirements.txt.hbs delete mode 100644 src/commands/assets/templates/skill/job/skill.yaml.hbs delete mode 100644 src/commands/assets/templates/skill/job/test/payload.json delete mode 100644 src/commands/workspace.js create mode 100644 src/commands/workspaces/build.js create mode 100644 src/commands/workspaces/configure.js create mode 100644 src/commands/workspaces/generate.js create mode 100644 src/commands/workspaces/publish.js create mode 100644 src/commands/workspaces/utils.js diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index a94381e1..802fe214 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -19,10 +19,10 @@ const chalk = require('chalk'); const program = require('commander'); -const { - WorkspaceConfigureCommand, - WorkspaceGenerateCommand, -} = require('../src/commands/workspace'); +const { WorkspaceConfigureCommand } = require('../src/commands/workspaces/configure'); +const { WorkspaceGenerateCommand } = require('../src/commands/workspaces/generate'); +const { WorkspaceBuildCommand } = require('../src/commands/workspaces/build'); +const { WorkspacePublishCommand } = require('../src/commands/workspaces/publish'); program.name('cortex workspaces'); program.description('Scaffolding Cortex Components'); @@ -40,7 +40,7 @@ program } }); -program + program .command('generate [name] [destination]') .option('--registry [registry]', 'Override the docker registry to publish to') .option('--color [on/off]', 'Turn on/off colors', 'on') @@ -54,6 +54,32 @@ program } }); + program + .command('build [folder]') + .option('--color [on/off]', 'Turn on/off colors', 'on') + .option('--skill [skill name]', 'Build only the specified skill') + .description('Builds all skills in the workspace, or optionally only the specified skill') + .action((folder, options) => { // deliberately not using withCompatibilityCheck() + try { + new WorkspaceBuildCommand(program).execute(folder, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + + program + .command('publish [folder]') + .option('--color [on/off]', 'Turn on/off colors', 'on') + .option('--skill [skill name]', 'Publish only the specified skill') + .description('Publishes all skills and resources in the workspace') + .action((folder, options) => { // deliberately not using withCompatibilityCheck() + try { + new WorkspacePublishCommand(program).execute(folder, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } diff --git a/package-lock.json b/package-lock.json index 7d5df335..aab23b40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8758 +1,31 @@ { "name": "cortex-cli", - "version": "2.0.13", - "lockfileVersion": 2, + "version": "2.0.6", + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "cortex-cli", - "version": "2.0.11", - "license": "Apache-2.0", - "dependencies": { - "chalk": "4.1.2", - "cli-table3": "0.6.2", - "commander": "9.2.0", - "debug": "4.3.4", - "find-package-json": "1.2.0", - "form-data": "4.0.0", - "get-stream": "6.0.1", - "glob": "7.2.0", - "got": "11.8.3", - "graphql": "15.6.1", - "graphql-request": "3.7.0", - "is-installed-globally": "0.4.0", - "jmespath": "0.16.0", - "joi": "17.6.0", - "jose-node-cjs-runtime": "4.6.2", - "js-yaml": "4.1.0", - "lodash": "4.17.21", - "moment": "2.29.3", - "npm-registry-fetch": "12.0.1", - "plop": "2.7.6", - "prompts": "2.4.2", - "semver": "7.3.7", - "url-join": "4.0.1", - "url-parse": "1.5.10", - "yauzl": "2.10.0" - }, - "bin": { - "cortex": "bin/cortex.js" - }, - "devDependencies": { - "audit-ci": "5.1.2", - "chai": "4.3.6", - "chai-as-promised": "7.1.1", - "eslint": "8.13.0", - "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.26.0", - "husky": "7.0.4", - "is-ci": "3.0.1", - "mocha": "9.2.2", - "mocked-env": "1.3.5", - "nock": "13.2.4", - "nyc": "15.1.0", - "rewire": "6.0.0", - "sinon": "11.1.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", - "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", - "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", - "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" - }, - "node_modules/@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.8.tgz", - "integrity": "sha512-zdpaWDz5IEyHlu1EO+B+qRHmJkSxMVV6SXngDry9n1ZqslLXFH9Dw6lRqDidm/sOJAWdRltJsmZ1SK28/uZKsw==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", - "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@sellside/emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", - "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sinonjs/samsam": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", - "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/fined": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", - "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "node_modules/@types/inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", - "dependencies": { - "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "node_modules/@types/interpret": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/liftoff": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", - "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", - "dependencies": { - "@types/fined": "*", - "@types/interpret": "*", - "@types/node": "*" - } - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "node_modules/@types/node": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", - "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/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==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/audit-ci": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", - "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", - "dev": true, - "dependencies": { - "array.prototype.flatmap": "^1.2.5", - "cross-spawn": "^7.0.3", - "escape-string-regexp": "^4.0.0", - "event-stream": "4.0.1", - "jju": "^1.4.0", - "JSONStream": "^1.3.5", - "readline-transform": "1.0.0", - "semver": "^7.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "audit-ci": "lib/audit-ci.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "engines": { - "node": "*" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" - }, - "node_modules/cacache": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.0.4.tgz", - "integrity": "sha512-U0D4wF3/W8ZgK4qDA5fTtOVSr0gaDfd5aa7tUdAV0uukVWKsAIn6SzXQCoVlg7RWZiJa+bcsM3/pXLumGaL2Ug==", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^7.2.0", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/cache-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", - "dependencies": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001332", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", - "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/change-case": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", - "dependencies": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/compress-brotli": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", - "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", - "dependencies": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "node_modules/constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "dependencies": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "node_modules/convert-source-map": { - "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, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js-pure": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.1.tgz", - "integrity": "sha512-TChjCtgcMDc8t12RiwAsThjqrS/VpBlEvDgL009ot4HESzBo3h2FSZNa6ZS1nWKZEPDoulnszxUll9n0/spflQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", - "dependencies": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.114", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz", - "integrity": "sha512-gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", - "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.2.1", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/eslint-config-airbnb-base/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", - "dev": true, - "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", - "engines": { - "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-package-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" - }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/graphql": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", - "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-request": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", - "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", - "dependencies": { - "cross-fetch": "^3.0.6", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" - }, - "peerDependencies": { - "graphql": "14 - 16" - } - }, - "node_modules/graphql-request/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" - }, - "node_modules/is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "dependencies": { - "lower-case": "^1.1.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "dependencies": { - "upper-case": "^1.1.0" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", - "dev": true - }, - "node_modules/jmespath": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", - "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/jose-node-cjs-runtime": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", - "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, - "node_modules/keyv": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", - "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", - "dependencies": { - "compress-brotli": "^1.3.6", - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", - "dev": true, - "engines": { - "node": "> 0.8" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "node_modules/lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "dependencies": { - "lower-case": "^1.1.2" - } - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz", - "integrity": "sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-fetch-happen": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.2.tgz", - "integrity": "sha512-GWMGiZsKVeJACQGJ1P3Z+iNec7pLsU6YW1q11eaPn3RR8nRXHppFWfP7Eu0//55JK3hSjrAQRl8sDa5uXpq1Ew==", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.0.2", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.1.1", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", - "dev": true - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", - "dev": true, - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "4.2.1", - "ms": "2.1.3", - "nanoid": "3.3.1", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocked-env": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", - "dev": true, - "dependencies": { - "check-more-types": "2.24.0", - "debug": "4.3.2", - "lazy-ass": "1.6.0", - "ramda": "0.27.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocked-env/node_modules/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, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/nise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", - "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": ">=5", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - } - }, - "node_modules/no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dependencies": { - "lower-case": "^1.1.1" - } - }, - "node_modules/nock": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", - "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash.set": "^4.3.2", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-plop": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", - "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", - "dependencies": { - "@babel/runtime-corejs3": "^7.9.2", - "@types/inquirer": "^6.5.0", - "change-case": "^3.1.0", - "del": "^5.1.0", - "globby": "^10.0.1", - "handlebars": "^4.4.3", - "inquirer": "^7.1.0", - "isbinaryfile": "^4.0.2", - "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=8.9.4" - } - }, - "node_modules/node-plop/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", - "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-registry-fetch": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.1.tgz", - "integrity": "sha512-ricy4ezH3Uv0d4am6RSwHjCYTWJI74NJjurIigWMAG7Vs3PFyd0TUlkrez5L0AgaPzDLRsEzqb5cOZ/Ue01bmA==", - "dependencies": { - "make-fetch-happen": "^10.0.0", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/ora/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ora/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "dependencies": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "dependencies": { - "through": "~2.3" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/plop": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", - "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", - "dependencies": { - "@types/liftoff": "^2.5.1", - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", - "minimist": "^1.2.5", - "node-plop": "^0.26.3", - "ora": "^3.4.0", - "v8flags": "^2.0.10" - }, - "bin": { - "plop": "bin/plop.js" - }, - "engines": { - "node": ">=8.9.4" - } - }, - "node_modules/plop/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/plop/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plop/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ramda": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readline-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/repeat-element": { - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rewire": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", - "dev": true, - "dependencies": { - "eslint": "^7.32.0" - } - }, - "node_modules/rewire/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/rewire/node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/rewire/node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/rewire/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/rewire/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/rewire/node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/rewire/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/rewire/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/rewire/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/rewire/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/rewire/node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/rewire/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/rewire/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rewire/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", - "dependencies": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/sinon": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/samsam": "^6.0.2", - "diff": "^5.0.0", - "nise": "^5.1.0", - "supports-color": "^7.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "dependencies": { - "no-case": "^2.2.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", - "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated" - }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/ssri": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.0.tgz", - "integrity": "sha512-Y1Z6J8UYnexKFN1R/hxUaYoY2LVdKEzziPmVAFKiKX8fiwvCJTVzn/xYE9TEWod5OVyNfIHHuVfIEuBClL/uJQ==", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "dependencies": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "dependencies": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/uglify-js": { - "version": "3.15.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz", - "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "node_modules/upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "dependencies": { - "upper-case": "^1.1.1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "bin": { - "user-home": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dependencies": { - "user-home": "^1.1.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, "dependencies": { - "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "dev": true - }, - "@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true - }, - "@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" - } - }, "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -8792,12 +65,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -8815,137 +82,21 @@ } } }, - "@babel/parser": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", - "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", - "dev": true - }, - "@babel/runtime-corejs3": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", - "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", - "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true - }, "@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", + "debug": "^4.1.1", + "espree": "^7.3.0", "globals": "^13.9.0", - "ignore": "^5.2.0", + "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^3.13.1", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" - } - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" - }, - "@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "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", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" }, "dependencies": { "argparse": { @@ -8957,16 +108,6 @@ "sprintf-js": "~1.0.2" } }, - "find-up": { - "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": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -8976,150 +117,96 @@ "argparse": "^1.0.7", "esprima": "^4.0.0" } - }, - "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": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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": { - "p-limit": "^2.2.0" - } - }, - "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 - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true } } }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true + "@gar/promisify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true + "@hapi/address": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", + "requires": { + "@hapi/hoek": "^9.0.0" + } }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true + "@hapi/formula": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" }, - "@jridgewell/trace-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.8.tgz", - "integrity": "sha512-zdpaWDz5IEyHlu1EO+B+qRHmJkSxMVV6SXngDry9n1ZqslLXFH9Dw6lRqDidm/sOJAWdRltJsmZ1SK28/uZKsw==", - "dev": true, + "@hapi/hoek": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + }, + "@hapi/joi": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@hapi/address": "^4.0.1", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" } }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@hapi/hoek": "^9.0.0" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, "@npmcli/fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", - "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", + "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", "requires": { - "@gar/promisify": "^1.1.3", + "@gar/promisify": "^1.0.1", "semver": "^7.3.5" } }, "@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" } }, - "@sellside/emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", - "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==" - }, - "@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", + "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" }, "@sinonjs/commons": { "version": "1.8.3", @@ -9140,9 +227,9 @@ } }, "@sinonjs/samsam": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", - "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -9165,9 +252,9 @@ } }, "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/cacheable-request": { "version": "6.0.2", @@ -9180,47 +267,11 @@ "@types/responselike": "*" } }, - "@types/fined": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.3.tgz", - "integrity": "sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==" - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, - "@types/inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==", - "requires": { - "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "@types/interpret": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==", - "requires": { - "@types/node": "*" - } - }, - "@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" - }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -9228,32 +279,17 @@ "dev": true }, "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "requires": { - "@types/node": "*" - } - }, - "@types/liftoff": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-2.5.1.tgz", - "integrity": "sha512-nB3R6Q9CZcM07JgiTK6ibxqrG1reiHE+UX7em/W1DKwVBxDlfKWOefQjk4jubY5xX+GDxVsWR2KD1SenPby8ow==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz", + "integrity": "sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg==", "requires": { - "@types/fined": "*", - "@types/interpret": "*", "@types/node": "*" } }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, "@types/node": { - "version": "17.0.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", - "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==" + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, "@types/responselike": { "version": "1.0.0", @@ -9263,32 +299,33 @@ "@types/node": "*" } }, - "@types/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", - "requires": { - "@types/node": "*" - } - }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true }, "agent-base": { "version": "6.0.2", @@ -9299,9 +336,9 @@ } }, "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -9329,32 +366,20 @@ "uri-js": "^4.2.2" } }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "requires": { + "string-width": "^4.1.0" + } + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -9373,96 +398,41 @@ "picomatch": "^2.0.4" } }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" - }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "es-abstract": "^1.18.0-next.2", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" + "is-string": "^1.0.5" } }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "dev": true, "requires": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" + "es-abstract": "^1.18.0-next.1" } }, - "array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", - "dev": true, + "asn1": { + "version": "0.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" + "safer-buffer": "~2.1.0" } }, "assertion-error": { @@ -9471,71 +441,52 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, "audit-ci": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", - "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-4.1.0.tgz", + "integrity": "sha512-UNmf/2diiuqA7HmegyD1n2vIZ+TPMbXO6ud2nb1MOdnoeFuecaBq3fcUo0ZLISWQx2yxgIz76JaEEbRlRZhRpA==", "dev": true, "requires": { - "array.prototype.flatmap": "^1.2.5", + "JSONStream": "^1.3.5", "cross-spawn": "^7.0.3", - "escape-string-regexp": "^4.0.0", "event-stream": "4.0.1", - "jju": "^1.4.0", - "JSONStream": "^1.3.5", "readline-transform": "1.0.0", "semver": "^7.0.0", - "yargs": "^16.0.0" + "yargs": "^15.0.0" } }, "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=" + }, + "bcrypt-pbkdf": { "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", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "2.0.2", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "2.0.1", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" } }, "binary-extensions": { @@ -9544,6 +495,91 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "binaryextensions": { + "version": "4.18.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-4.18.0.tgz", + "integrity": "sha1-Iq6totFN4GLGDoylmlBKVjanbOs=" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bl/-/bl-4.1.0.tgz", + "integrity": "sha1-RRU1JkGCvsL7vIOmKrmM8R2fezo=", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -9557,6 +593,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -9567,17 +604,13 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", - "dev": true, + "buffer": { + "version": "5.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha1-umLnwTEzBTWCGXFghRqPZI6Z7tA=", "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, "buffer-crc32": { @@ -9591,44 +624,30 @@ "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "cacache": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.0.4.tgz", - "integrity": "sha512-U0D4wF3/W8ZgK4qDA5fTtOVSr0gaDfd5aa7tUdAV0uukVWKsAIn6SzXQCoVlg7RWZiJa+bcsM3/pXLumGaL2Ug==", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^7.2.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", + "ssri": "^8.0.1", + "tar": "^6.0.2", "unique-filename": "^1.1.1" } }, - "cache-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", - "requires": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -9658,18 +677,6 @@ } } }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - } - }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -9686,38 +693,22 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "caniuse-lite": { - "version": "1.0.30001332", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", - "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", - "dev": true - }, "chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "loupe": "^2.3.1", "pathval": "^1.1.1", "type-detect": "^4.0.5" } @@ -9740,31 +731,6 @@ "supports-color": "^7.1.0" } }, - "change-case": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -9783,120 +749,36 @@ "dev": true }, "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", "fsevents": "~2.3.2", "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" } }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -9905,18 +787,36 @@ "restore-cursor": "^3.1.0" } }, + "cli-progress": { + "version": "3.9.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-progress/-/cli-progress-3.9.1.tgz", + "integrity": "sha1-oi66aiD1Mon90F1e6MssyMKPhm4=", + "requires": { + "colors": "^1.1.2", + "string-width": "^4.2.0" + } + }, "cli-spinners": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" }, "cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", "requires": { - "@colors/colors": "1.5.0", + "colors": "^1.1.2", + "object-assign": "^4.1.0", "string-width": "^4.2.0" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true + } } }, "cli-width": { @@ -9925,14 +825,31 @@ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "clone": { @@ -9948,15 +865,6 @@ "mimic-response": "^1.0.0" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -9970,6 +878,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -9979,29 +892,9 @@ } }, "commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "compress-brotli": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", - "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", - "requires": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - } + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==" }, "concat-map": { "version": "0.0.1", @@ -10009,45 +902,26 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", "dev": true }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "convert-source-map": { - "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, + "cpu-features": { + "version": "0.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.2.tgz", + "integrity": "sha1-n2NhVvEVX9BL26oCi7PC++886no=", + "optional": true, "requires": { - "safe-buffer": "~5.1.1" + "nan": "^2.14.1" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js-pure": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.1.tgz", - "integrity": "sha512-TChjCtgcMDc8t12RiwAsThjqrS/VpBlEvDgL009ot4HESzBo3h2FSZNa6ZS1nWKZEPDoulnszxUll9n0/spflQ==" - }, "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", "requires": { - "node-fetch": "2.6.7" + "node-fetch": "2.6.1" } }, "cross-spawn": { @@ -10061,10 +935,15 @@ "which": "^2.0.1" } }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" + }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { "ms": "2.1.2" } @@ -10075,11 +954,6 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -10105,20 +979,11 @@ } }, "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -10132,48 +997,18 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha1-P3rkIRKbyqrJvHSQXJigAJ7J7n8=" + }, "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", - "requires": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - } + "object-keys": "^1.0.12" } }, "delayed-stream": { @@ -10183,26 +1018,33 @@ }, "depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "docker-modem": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/docker-modem/-/docker-modem-3.0.3.tgz", + "integrity": "sha1-rEux8y+BrC5xIMXpmgaPqyRYoy8=", + "requires": { + "debug": "^4.1.1", + "readable-stream": "^3.5.0", + "split-ca": "^1.0.1", + "ssh2": "^1.4.0" + } + }, + "dockerode": { + "version": "3.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dockerode/-/dockerode-3.3.1.tgz", + "integrity": "sha1-dPZuI54JLnkQ4r6uYyLTXESwjNw=", "requires": { - "path-type": "^4.0.0" + "docker-modem": "^3.0.0", + "tar-fs": "~2.0.1" } }, "doctrine": { @@ -10214,30 +1056,22 @@ "esutils": "^2.0.2" } }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "requires": { - "no-case": "^2.2.0" - } - }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "electron-to-chromium": { - "version": "1.4.114", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.114.tgz", - "integrity": "sha512-gRwLpVYWHGbERPU6o8pKfR168V6enWEXzZc6zQNNXbgJ7UJna+9qzAIHY94+9KOv71D/CH+QebLA9pChD2q8zA==", - "dev": true + "duplexer3": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true }, "encoding": { "version": "0.1.13", @@ -10270,27 +1104,33 @@ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, "es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.3", + "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", @@ -10298,15 +1138,6 @@ "unbox-primitive": "^1.0.1" } }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -10318,12 +1149,6 @@ "is-symbol": "^1.0.2" } }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -10331,72 +1156,283 @@ "dev": true }, "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", - "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.1", - "@humanwhocodes/config-array": "^0.9.2", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.3.2", + "debug": "^4.0.1", "doctrine": "^3.0.0", + "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", + "glob-parent": "^5.1.2", "globals": "^13.6.0", - "ignore": "^5.2.0", + "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "table": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + } + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + } } }, "eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", + "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", "dev": true, "requires": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "object.entries": "^1.1.2" } }, "eslint-import-resolver-node": { @@ -10417,17 +1453,36 @@ "requires": { "ms": "^2.1.1" } + }, + "is-core-module": { + "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" + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } } } }, "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", + "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", "dev": true, "requires": { "debug": "^3.2.7", - "find-up": "^2.1.0" + "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { @@ -10442,24 +1497,26 @@ } }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.24.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", + "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-module-utils": "^2.6.2", + "find-up": "^2.0.0", "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" + "is-core-module": "^2.6.0", + "minimatch": "^3.0.4", + "object.values": "^1.1.4", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" }, "dependencies": { "debug": { @@ -10480,56 +1537,116 @@ "esutils": "^2.0.2" } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "is-core-module": { + "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" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } } } }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "estraverse": "^4.1.1" } }, "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } + "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { - "acorn": "^8.7.0", + "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^1.3.0" } }, "esprima": { @@ -10539,12 +1656,20 @@ "dev": true }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, "esrecurse": { @@ -10554,12 +1679,20 @@ "dev": true, "requires": { "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { @@ -10583,129 +1716,6 @@ "through": "^2.3.8" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -10726,86 +1736,22 @@ } } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, "extract-files": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - } - } - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -10818,14 +1764,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -10840,41 +1778,24 @@ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } } }, "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "flat-cache": "^3.0.4" + "flat-cache": "^2.0.1" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "to-regex-range": "^5.0.1" } }, "find-package-json": { @@ -10883,52 +1804,15 @@ "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "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": { - "locate-path": "^2.0.0" - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" - }, "flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -10936,43 +1820,32 @@ "dev": true }, "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - } + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true }, "form-data": { "version": "4.0.0", @@ -10984,25 +1857,16 @@ "mime-types": "^2.1.12" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true + "fs-constants": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha1-a+Dem+mYzhavivwkSXue6bfM2a0=" }, "fs-minipass": { "version": "2.1.0", @@ -11027,7 +1891,8 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "functional-red-black-tree": { "version": "1.0.1", @@ -11035,12 +1900,6 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -11064,32 +1923,83 @@ "has-symbols": "^1.0.1" } }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, + "gh-got": { + "version": "9.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-9.0.0.tgz", + "integrity": "sha1-X4LrXJeqegI19QzydzMc3tqHlnA=", "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "got": "^10.5.7" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", + "integrity": "sha1-zv9qKKW0hnwt1KG6UT3ieMy+i7E=" + }, + "cacheable-lookup": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", + "integrity": "sha1-h75koYuSUjSHXhCpux68pK3Oazg=", + "requires": { + "@types/keyv": "^3.1.1", + "keyv": "^4.0.0" + } + }, + "decompress-response": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", + "integrity": "sha1-eEk5boDj0euoyy9170kw92Rhyw8=", + "requires": { + "mimic-response": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "10.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-10.7.0.tgz", + "integrity": "sha1-YoidvNbMoyzWoVTMLQxolRIdCR8=", + "requires": { + "@sindresorhus/is": "^2.0.0", + "@szmarczak/http-timer": "^4.0.0", + "@types/cacheable-request": "^6.0.1", + "cacheable-lookup": "^2.0.0", + "cacheable-request": "^7.0.1", + "decompress-response": "^5.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^5.0.0", + "lowercase-keys": "^2.0.0", + "mimic-response": "^2.1.0", + "p-cancelable": "^2.0.0", + "p-event": "^4.0.0", + "responselike": "^2.0.0", + "to-readable-stream": "^2.0.0", + "type-fest": "^0.10.0" + } + }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" + }, + "type-fest": { + "version": "0.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.10.0.tgz", + "integrity": "sha1-fwayufv8WBBo0TQf+r0DSc6vxkI=" + } } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -11104,12 +2014,12 @@ } }, "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" } }, "global-dirs": { @@ -11118,80 +2028,43 @@ "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "requires": { "ini": "2.0.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" }, "dependencies": { "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" } } }, "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } } }, "got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", + "cacheable-request": "^7.0.1", "decompress-response": "^6.0.0", "http2-wrapper": "^1.0.0-beta.5.2", "lowercase-keys": "^2.0.0", @@ -11200,9 +2073,10 @@ } }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true }, "graphql": { "version": "15.6.1", @@ -11210,9 +2084,9 @@ "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-request": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", - "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.6.1.tgz", + "integrity": "sha512-Nm1EasrAQVZllyNTlHDLnLZjlhC6eRWnWP6KH//ytnAL08pjlLkdI2K+s6OV92p45hn5b/kUlLbDwACmRoLwrQ==", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -11237,45 +2111,19 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "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==" - } - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "5.0.1" - } - }, "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "dev": true }, "has-flag": { @@ -11283,19 +2131,10 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, "has-tostringtag": { @@ -11307,112 +2146,31 @@ "has-symbols": "^1.0.2" } }, - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "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 - } - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "requires": { "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - } } }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "requires": { - "@tootallnate/once": "2", + "@tootallnate/once": "1", "agent-base": "6", "debug": "4" } @@ -11427,9 +2185,9 @@ } }, "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { "agent-base": "6", "debug": "4" @@ -11443,12 +2201,6 @@ "ms": "^2.0.0" } }, - "husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", - "dev": true - }, "iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -11458,15 +2210,21 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=" + }, "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -11502,29 +2260,82 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - }, "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "version": "8.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha1-9E8AjdNEu/xLMAMfRdmE4DSjrDo=", "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.19", + "lodash": "^4.17.21", "mute-stream": "0.0.8", + "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^6.6.0", + "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ora": { + "version": "5.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", + "integrity": "sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "rxjs": { + "version": "7.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.4.0.tgz", + "integrity": "sha1-oSpE1+6/AW9f8kQbh/KMmlHOvGg=", + "requires": { + "tslib": "~2.1.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "tslib": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha1-2mCGDxwuyqVwOrfTm8Bba/mIuXo=" + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=" + } } }, "internal-slot": { @@ -11538,32 +2349,16 @@ "side-channel": "^1.0.4" } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true }, "is-bigint": { "version": "1.0.4", @@ -11593,42 +2388,21 @@ "has-tostringtag": "^1.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, - "is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "requires": { - "ci-info": "^3.2.0" - } - }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "dev": true, "requires": { "has": "^1.0.3" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -11638,38 +2412,28 @@ "has-tostringtag": "^1.0.0" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } + "is-docker": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=" }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -11683,48 +2447,41 @@ "is-path-inside": "^3.0.2" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha1-zqbmrlyHCnsKAAQHC3tYfgJSkS4=" + }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "requires": { - "lower-case": "^1.1.0" - } - }, "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, "is-plain-obj": { "version": "2.1.0", @@ -11732,14 +2489,6 @@ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -11750,29 +2499,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -11791,197 +2517,48 @@ "has-symbols": "^1.0.2" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "requires": { - "upper-case": "^1.1.0" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", "requires": { - "call-bind": "^1.0.2" + "is-docker": "^2.0.0" } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", - "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==" - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "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 - } - } + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, - "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, + "istextorbinary": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-6.0.0.tgz", + "integrity": "sha1-vG51QQBrwgP+/+FmKNCnKJOyrVQ=", "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "binaryextensions": "^4.18.0", + "textextensions": "^5.14.0" } }, - "jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", - "dev": true - }, "jmespath": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", - "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" - }, - "joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "jose-node-cjs-runtime": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", - "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==" + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-3.18.0.tgz", + "integrity": "sha512-8KLgEQlf1rhxYaqMJyqEpTFEYJxjAtwPjgP34+1X0O8YSXxx5TNxT0Ezd4glmFZ2RXEpwdCVa2YcxOpGO1/8HQ==" }, "js-tokens": { "version": "4.0.0", @@ -11997,17 +2574,17 @@ "argparse": "^2.0.1" } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, "json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -12027,26 +2604,19 @@ "dev": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -12054,24 +2624,13 @@ "dev": true }, "keyv": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", - "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", "requires": { - "compress-brotli": "^1.3.6", "json-buffer": "3.0.1" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, "lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", @@ -12079,38 +2638,34 @@ "dev": true }, "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "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": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -12118,16 +2673,17 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true }, "lodash.merge": { "version": "4.6.2", @@ -12151,242 +2707,64 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, - "loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "requires": { - "lower-case": "^1.1.2" - } - }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.8.1.tgz", - "integrity": "sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg==" - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "yallist": "^4.0.0" } }, "make-fetch-happen": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.2.tgz", - "integrity": "sha512-GWMGiZsKVeJACQGJ1P3Z+iNec7pLsU6YW1q11eaPn3RR8nRXHppFWfP7Eu0//55JK3hSjrAQRl8sDa5uXpq1Ew==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.0.2", + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", + "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", + "minipass-fetch": "^1.3.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", + "negotiator": "^0.6.2", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.1.1", - "ssri": "^9.0.0" - }, - "dependencies": { - "minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "requires": { - "kind-of": "^6.0.2" + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, "map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" }, "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "requires": { - "mime-db": "1.52.0" + "mime-db": "1.49.0" } }, "mimic-fn": { @@ -12400,22 +2778,23 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "requires": { "yallist": "^4.0.0" } @@ -12481,65 +2860,71 @@ "yallist": "^4.0.0" } }, - "mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha1-+hDJEVzG2IZb4iG6R+6b7XhgERM=" + }, "mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", + "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", + "chokidar": "3.5.2", + "debug": "4.3.2", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", + "glob": "7.1.7", "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "3.0.4", "ms": "2.1.3", - "nanoid": "3.3.1", + "nanoid": "3.1.25", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.1.5", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "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 - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -12550,6 +2935,20 @@ "path-exists": "^4.0.0" } }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -12559,15 +2958,6 @@ "p-locate": "^5.0.0" } }, - "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -12592,11 +2982,14 @@ "p-limit": "^3.0.2" } }, - "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 + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } }, "supports-color": { "version": "8.1.1", @@ -12604,8 +2997,46 @@ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, @@ -12619,23 +3050,12 @@ "debug": "4.3.2", "lazy-ass": "1.6.0", "ramda": "0.27.1" - }, - "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" - } - } } }, "moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, "ms": { "version": "2.1.2", @@ -12647,30 +3067,18 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nan": { + "version": "2.15.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nan/-/nan-2.15.0.tgz", + "integrity": "sha1-PzSkc/8Y4VwbVia2KQO1rW5mX+4=", + "optional": true + }, "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -12678,40 +3086,33 @@ "dev": true }, "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true }, "nise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", - "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", "dev": true, "requires": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": ">=5", + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^7.0.4", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" } }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "requires": { - "lower-case": "^1.1.1" - } - }, "nock": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", - "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", + "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", "dev": true, "requires": { "debug": "^4.1.0", @@ -12721,56 +3122,36 @@ } }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-plop": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.26.3.tgz", - "integrity": "sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==", - "requires": { - "@babel/runtime-corejs3": "^7.9.2", - "@types/inquirer": "^6.5.0", - "change-case": "^3.1.0", - "del": "^5.1.0", - "globby": "^10.0.1", - "handlebars": "^4.4.3", - "inquirer": "^7.1.0", - "isbinaryfile": "^4.0.2", - "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "resolve": "^1.12.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { - "process-on-spawn": "^1.0.0" + "hosted-git-info": "^2.1.4", + "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 + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "node-releases": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", - "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", - "dev": true - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -12793,11 +3174,11 @@ } }, "npm-registry-fetch": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.1.tgz", - "integrity": "sha512-ricy4ezH3Uv0d4am6RSwHjCYTWJI74NJjurIigWMAG7Vs3PFyd0TUlkrez5L0AgaPzDLRsEzqb5cOZ/Ue01bmA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "requires": { - "make-fetch-happen": "^10.0.0", + "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", "minipass-fetch": "^1.3.0", "minipass-json-stream": "^1.0.1", @@ -12805,229 +3186,15 @@ "npm-package-arg": "^8.0.0" } }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "find-up": { - "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": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "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": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "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 - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-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" - } - } - } - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", "dev": true }, "object-keys": { @@ -13036,14 +3203,6 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -13056,54 +3215,26 @@ "object-keys": "^1.1.1" } }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" + "es-abstract": "^1.18.2" } }, "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "es-abstract": "^1.18.2" } }, "once": { @@ -13122,128 +3253,28 @@ "mimic-fn": "^2.1.0" } }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, + "open": { + "version": "8.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/open/-/open-8.4.0.tgz", + "integrity": "sha1-NFMhrhj4E4+CVlqRD9xrOejCRPg=", "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "^2.0.1" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "5.0.1" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" } }, "os-tmpdir": { @@ -13256,22 +3287,35 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, + "p-event": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha1-r0sEnIrNka6BCD69Hm9criBEwbU=", + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "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": { - "p-limit": "^1.1.0" + "p-limit": "^2.2.0" } }, "p-map": { @@ -13282,31 +3326,19 @@ "aggregate-error": "^3.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha1-x+F6vJcdKnli74NiazXWNazyPf4=", "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" + "p-finally": "^1.0.0" } }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "^2.2.0" - } + "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 }, "parent-module": { "version": "1.0.1", @@ -13317,47 +3349,20 @@ "callsites": "^3.0.0" } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "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": { - "no-case": "^2.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "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 }, "path-is-absolute": { @@ -13374,20 +3379,8 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "path-to-regexp": { "version": "1.8.0", @@ -13396,12 +3389,24 @@ "dev": true, "requires": { "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } } }, "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } }, "pathval": { "version": "1.1.1", @@ -13423,153 +3428,148 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true }, "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^4.0.0" + "find-up": "^2.1.0" }, "dependencies": { "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" } }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^1.1.0" } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true } } }, - "plop": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/plop/-/plop-2.7.6.tgz", - "integrity": "sha512-IgnYAsC3Ni7t1cDU7wH2151CD22YhMxH8PFh+iPzCf+WuGEWXslJ5t1Tpr0N/gjL23CAV/HbLAWug2IPM2YrHg==", + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, "requires": { - "@types/liftoff": "^2.5.1", - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", - "minimist": "^1.2.5", - "node-plop": "^0.26.3", - "ora": "^3.4.0", - "v8flags": "^2.0.10" + "find-up": "^2.1.0" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "locate-path": "^2.0.0" } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "requires": { - "ansi-regex": "5.0.1" + "p-try": "^1.0.0" } }, - "supports-color": { + "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, "progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", "dev": true }, "promise-inflight": { @@ -13586,13 +3586,16 @@ "retry": "^0.12.0" } }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "prompt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.0.tgz", + "integrity": "sha512-iGerYRpRUg5ZyC+FJ/25G5PUKuWAGRjW1uOlhX7Pi3O5YygdK6R+KEaBjRbHSkU5vfS5PZCltSPZdDtUYwRCZA==", "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "async": "~0.9.0", + "colors": "^1.1.2", + "read": "1.0.x", + "revalidator": "0.1.x", + "winston": "2.x" } }, "propagate": { @@ -13621,11 +3624,6 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -13646,6 +3644,96 @@ "safe-buffer": "^5.1.0" } }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -13661,53 +3749,12 @@ "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", "dev": true }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, - "repeat-element": { - "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=" - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -13732,13 +3779,13 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" } }, "resolve-alpn": { @@ -13746,26 +3793,12 @@ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, "responselike": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", @@ -13783,128 +3816,204 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "revalidator": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" }, "rewire": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", "dev": true, "requires": { - "eslint": "^7.32.0" + "eslint": "^6.8.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "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==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": false, + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "restore-cursor": "^3.1.0" } }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "color-name": "1.1.3" } }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "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": { - "sprintf-js": "~1.0.2" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", + "levn": "^0.3.0", + "lodash": "^4.17.14", "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.8.3", "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "eslint-scope": { @@ -13917,77 +4026,196 @@ "estraverse": "^4.1.1" } }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } } }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" } } } @@ -14005,35 +4233,19 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, "requires": { "tslib": "^1.9.0" } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safer-buffer": { "version": "2.1.2", @@ -14041,30 +4253,11 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", - "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" } }, "serialize-javascript": { @@ -14082,32 +4275,6 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -14135,9 +4302,9 @@ } }, "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "sinon": { "version": "11.1.2", @@ -14153,235 +4320,99 @@ "supports-color": "^7.2.0" } }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "snake-case": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "requires": { - "no-case": "^2.2.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "color-convert": "^1.9.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "color-name": "1.1.3" } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true } } }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + }, "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", "requires": { "ip": "^1.1.5", - "smart-buffer": "^4.2.0" + "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", - "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz", + "integrity": "sha512-FIgZbQWlnjVEQvMkylz64/rUggGtrKstPnx8OZyYFG0tAFR8CSBtpXxSwbFLHyeXFn/cunFL7MpuSOvDSOPo9g==", "requires": { "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "debug": "^4.3.1", + "socks": "^2.6.1" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, + "spdx-license-ids": { + "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": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -14391,13 +4422,10 @@ "through": "2" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } + "split-ca": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-ca/-/split-ca-1.0.1.tgz", + "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" }, "sprintf-js": { "version": "1.0.3", @@ -14405,84 +4433,30 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "ssri": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.0.tgz", - "integrity": "sha512-Y1Z6J8UYnexKFN1R/hxUaYoY2LVdKEzziPmVAFKiKX8fiwvCJTVzn/xYE9TEWod5OVyNfIHHuVfIEuBClL/uJQ==", + "ssh2": { + "version": "1.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssh2/-/ssh2-1.5.0.tgz", + "integrity": "sha1-TcVZupihy7Qg6NQpmN/jXQ7akrw=", "requires": { - "minipass": "^3.1.1" + "asn1": "^0.2.4", + "bcrypt-pbkdf": "^1.0.2", + "cpu-features": "0.0.2", + "nan": "^2.15.0" } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "minipass": "^3.1.1" } }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, "stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -14494,13 +4468,38 @@ } }, "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "string.prototype.trimend": { @@ -14523,18 +4522,18 @@ "define-properties": "^1.1.3" } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "string_decoder": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", "requires": { - "ansi-regex": "5.0.1" + "safe-buffer": "~5.2.0" } }, "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-json-comments": { @@ -14551,50 +4550,45 @@ "has-flag": "^4.0.0" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true } } }, @@ -14611,15 +4605,34 @@ "yallist": "^4.0.0" } }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, + "tar-fs": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-fs/-/tar-fs-2.0.1.tgz", + "integrity": "sha1-5ECGwcYNMaTwz4k7HE4VXav66eI=", "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha1-rK2EwoQTawYNw/qmRHSqmuvXcoc=", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" } }, "text-table": { @@ -14628,20 +4641,16 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "textextensions": { + "version": "5.14.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-5.14.0.tgz", + "integrity": "sha1-pv9q7l+qp1HmFX1CLHIqK/1Z7t8=" + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -14650,77 +4659,55 @@ "os-tmpdir": "~1.0.2" } }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } + "to-readable-stream": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-readable-stream/-/to-readable-stream-2.1.0.tgz", + "integrity": "sha1-gogDFhIb6mYs3CJq2zCt21DLBug=" }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "treeify": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha1-TjHGpGOszQlDh58wZnxP2v9BG7g=" }, "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", "dev": true, "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.6", + "minimist": "^1.2.0", "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.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 - } } }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "^1.2.1" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -14730,26 +4717,11 @@ "dev": true }, "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "uglify-js": { - "version": "3.15.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz", - "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==", - "optional": true - }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -14762,29 +4734,6 @@ "which-boxed-primitive": "^1.0.2" } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -14801,84 +4750,48 @@ "imurmurhash": "^0.1.4" } }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - } - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "requires": { - "upper-case": "^1.1.1" - } - }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, "url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "requires": { - "user-home": "^1.1.1" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { @@ -14897,20 +4810,6 @@ "defaults": "^1.0.3" } }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -14939,32 +4838,77 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" + } + }, + "winston": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", + "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "requires": { + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" + }, + "dependencies": { + "async": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + } + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, "workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", + "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", "dev": true }, "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "wrappy": { @@ -14972,22 +4916,30 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } } }, "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "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": { @@ -14996,25 +4948,33 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "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" + } }, "yargs-unparser": { "version": "2.0.0", @@ -15029,9 +4989,9 @@ }, "dependencies": { "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, "decamelize": { diff --git a/package.json b/package.json index 58d9bfb3..b07f08f5 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "test": "NODE_ENV=test mocha --exit" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "repository": { "type": "git", @@ -30,16 +30,20 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { + "@hapi/joi": "17.1.1", + "boxen": "5.1.2", "chalk": "4.1.2", - "cli-table3": "0.6.2", - "commander": "9.2.0", - "debug": "4.3.4", + "cli-progress": "3.9.1", + "cli-table3": "0.6.0", + "commander": "8.2.0", + "debug": "4.3.2", + "dockerode": "3.3.1", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", "gh-got": "9.0.0", "glob": "7.2.0", - "got": "11.8.3", + "got": "11.8.2", "graphql": "15.6.1", "graphql-request": "3.6.1", "inquirer": "8.2.0", diff --git a/src/commands/assets/templates/skill/daemon/Dockerfile b/src/commands/assets/templates/skill/daemon/Dockerfile deleted file mode 100644 index 18255046..00000000 --- a/src/commands/assets/templates/skill/daemon/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM python:buster -ADD . /app -WORKDIR /app -RUN pip install -r requirements.txt -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"] diff --git a/src/commands/assets/templates/skill/daemon/Makefile b/src/commands/assets/templates/skill/daemon/Makefile deleted file mode 100644 index c19f55ec..00000000 --- a/src/commands/assets/templates/skill/daemon/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -IMAGE_TAG=latest -SKILL_NAME=$(notdir $(CURDIR)) -DOCKER_IMAGE_URL=${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} - -build: check-env - docker build -t ${DOCKER_IMAGE_URL} . - -push: check-env - cortex docker login - docker push ${DOCKER_IMAGE_URL} - -deploy: check-env - cortex actions deploy action.json --project ${PROJECT_NAME} --docker ${DOCKER_IMAGE_URL} - cortex skills save -y skill.yaml --project ${PROJECT_NAME} - sleep 10s # wait for action containers to pull and deploy - -tests: check-env - cortex skills invoke --params-file ./test/payload.json ${SKILL_NAME} request --project ${PROJECT_NAME} - -all: build push deploy tests - -get: check-env - cortex skills describe ${SKILL_NAME} --project ${PROJECT_NAME} - -check-env: -ifndef DOCKER_PREGISTRY_URL - $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /) -endif -ifndef PROJECT_NAME - $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) -endif diff --git a/src/commands/assets/templates/skill/daemon/README.md b/src/commands/assets/templates/skill/daemon/README.md deleted file mode 100644 index a740b38f..00000000 --- a/src/commands/assets/templates/skill/daemon/README.md +++ /dev/null @@ -1,76 +0,0 @@ -### Daemon Skill type - -Long running Cortex skill serving REST API requests - -Note: -> This project assumes a `fast api server` with one endpoint `/invoke` that is run with the Uvicorn python3 binary; you may change to another framework or language. - -#### Prerequisites -* `cortex-cli` -* `Docker` - -#### Files generated -* `skill.yaml` Skill definition -* `main.py` Python3 code serving the daemon API -* `requirements.txt` Python3 libraries dependencies -* `Dockerfile` to build Docker image for this skill - -#### Steps to build and deploy - -Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name), and use build scripts to build and deploy. - -Configure Docker auth to the private registry: - 1. For Cortex DCI with Docker registry installed use `cortex docker login` - 2. For external Docker registries like Google Cloud's GCR etc use their respective CLI for Docker login - -##### On *nix systems -A Makefile is provided to do these steps. -* `export DOCKER_PREGISTRY_URL=/` -* `export PROJECT_NAME=` -* `make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. - -##### On Windows systems -A `make.bat` batch file is provided to do these steps. -* `set DOCKER_PREGISTRY_URL=/` -* `set PROJECT_NAME=` - > Below commands will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. -* `make build` -* `make push` -* `make deploy` -* `make tests` - -#### Guide to make changes as per the use case -1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. -2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. -3. Build the docker image (uses the `main.py` file) - ``` - docker build -t : . - ``` -4. Push the docker image to a registry that is connected to your Kubernetes cluster. - ``` - docker push : - ``` - - **(Optionally) Retag an image** - ``` - docker tag : : - ``` -5. Deploy the action. - ``` - cortex actions deploy --actionName \ - --actionType daemon \ - --docker \ - --port '5000' \ - --project - ``` -6. Modify the `skill.yaml` file. -7. Save/deploy the Skill. - ``` - cortex skills save -y skill.yaml --project - ``` - - The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. - - Skills that are deployed may be invoked (run) either independently or within an agent. - -For more details about how to build skills go to [Cortex Fabric Documentation - Development - Develop Skills](https://cognitivescale.github.io/cortex-fabric/docs/development/define-skills) diff --git a/src/commands/assets/templates/skill/daemon/action.json.hbs b/src/commands/assets/templates/skill/daemon/action.json.hbs deleted file mode 100644 index 9a2c03f7..00000000 --- a/src/commands/assets/templates/skill/daemon/action.json.hbs +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name":"{{dashCase name}}", - "actionType":"daemon", - "docker":"{{dashCase name}}:latest", - "environmentVariables":"\"TEST\"=\"value\"", - "command": ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000", "--workers", "2"], - "port": "5000" -} diff --git a/src/commands/assets/templates/skill/daemon/fabric.yaml b/src/commands/assets/templates/skill/daemon/fabric.yaml deleted file mode 100644 index 97761d33..00000000 --- a/src/commands/assets/templates/skill/daemon/fabric.yaml +++ /dev/null @@ -1,7 +0,0 @@ -version: 1 -kind: deployment-manifest -cortex: - skills: - - skill.yaml - actions: - - action.json diff --git a/src/commands/assets/templates/skill/daemon/main.py.hbs b/src/commands/assets/templates/skill/daemon/main.py.hbs deleted file mode 100644 index 65d4ae03..00000000 --- a/src/commands/assets/templates/skill/daemon/main.py.hbs +++ /dev/null @@ -1,9 +0,0 @@ -from fastapi import FastAPI - -app = FastAPI() - - -@app.post('/invoke') -def run(requestBody: dict): - payload = requestBody['payload'] - return {'payload': payload} diff --git a/src/commands/assets/templates/skill/daemon/requirements.txt.hbs b/src/commands/assets/templates/skill/daemon/requirements.txt.hbs deleted file mode 100644 index 06592a66..00000000 --- a/src/commands/assets/templates/skill/daemon/requirements.txt.hbs +++ /dev/null @@ -1,3 +0,0 @@ -cortex-python -fastapi -uvicorn diff --git a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs b/src/commands/assets/templates/skill/daemon/skill.yaml.hbs deleted file mode 100644 index 5f3733bc..00000000 --- a/src/commands/assets/templates/skill/daemon/skill.yaml.hbs +++ /dev/null @@ -1,46 +0,0 @@ -camel: 1.0.0 -name: {{dashCase name}} -title: {{name}} -description: {{name}} -inputs: - - name: request - title: API Request - parameters: - - name: params - type: object - description: Request Parameters - required: true - routing: - all: - action : {{dashCase name}} - runtime: cortex/daemons - output: response - -outputs: - - name: response - title: API Response - parameters: - - name: result - type: object - description: API Response - required: true - -properties: - - name: daemon.method - title: Daemon method - description: Update default value to HTTP method supported by endpoint - required: true - type: String - defaultValue: POST - - name: daemon.path - title: Daemon path - description: Update default value to HTTP endpoint path in container - required: true - type: String - defaultValue: invoke - - name: daemon.port - title: Daemon Port - description: Update default value to port on which app will be running - required: true - type: String - defaultValue: 5000 diff --git a/src/commands/assets/templates/skill/daemon/test/payload.json b/src/commands/assets/templates/skill/daemon/test/payload.json deleted file mode 100644 index d29bdbad..00000000 --- a/src/commands/assets/templates/skill/daemon/test/payload.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "payload": {} -} diff --git a/src/commands/assets/templates/skill/external-api/Makefile b/src/commands/assets/templates/skill/external-api/Makefile deleted file mode 100644 index 4b9f511d..00000000 --- a/src/commands/assets/templates/skill/external-api/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -SKILL_NAME=$(notdir $(CURDIR)) - -deploy: check-env - cortex skills save -y skill.yaml --project ${PROJECT_NAME} - -tests: check-env - cortex skills invoke --params-file ./test/payload.json ${SKILL_NAME} input --project ${PROJECT_NAME} - -all: deploy tests - -get: check-env - cortex skills describe ${SKILL_NAME} --project ${PROJECT_NAME} - -check-env: -ifndef PROJECT_NAME - $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) -endif diff --git a/src/commands/assets/templates/skill/external-api/README.md b/src/commands/assets/templates/skill/external-api/README.md deleted file mode 100644 index f3757f10..00000000 --- a/src/commands/assets/templates/skill/external-api/README.md +++ /dev/null @@ -1,31 +0,0 @@ -### External API Skill type - -This skill type allows users to wrap an external REST API as a Cortex Fabric Skill. - -#### Prerequisites -* `cortex-cli` - -1. Update `skill.yaml` with `HTTP Method`, `URL`, `Path` and `headers` per the targeted external API -2. Deploy the Skill `cortex skills save -y skill.yaml --project ` - -#### Steps to deploy - -Set environment variable `PROJECT_NAME` (Cortex Project Name), and use build scripts to build and deploy. - -##### On *nix systems -A Makefile is provided to do these steps. -* `export PROJECT_NAME=` -* `make all` will deploy the Skill, and then invoke the Skill to test. - -##### On Windows systems -A `make.bat` batch file is provided to do these steps. -* `set PROJECT_NAME=` - > Below commands will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. -* `make deploy` -* `make tests` - -The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. - -Skills that are deployed may be invoked (run) either independently or within an agent. - -For more details about how to build skills go to [Cortex Fabric Documentation - Development - Develop Skills](https://cognitivescale.github.io/cortex-fabric/docs/development/define-skills) diff --git a/src/commands/assets/templates/skill/external-api/fabric.yaml b/src/commands/assets/templates/skill/external-api/fabric.yaml deleted file mode 100644 index 7de705a8..00000000 --- a/src/commands/assets/templates/skill/external-api/fabric.yaml +++ /dev/null @@ -1,5 +0,0 @@ -version: 1 -kind: deployment-manifest -cortex: - skills: - - skill.yaml diff --git a/src/commands/assets/templates/skill/external-api/skill.yaml.hbs b/src/commands/assets/templates/skill/external-api/skill.yaml.hbs deleted file mode 100644 index f6a14236..00000000 --- a/src/commands/assets/templates/skill/external-api/skill.yaml.hbs +++ /dev/null @@ -1,41 +0,0 @@ -camel: 1.0.0 -name: {{dashCase name}} -title: {{name}} -description: {{name}} -properties: - - name: url - title: URL - description: http[s]://host:port - required: true - type: String - - name: path - title: API path - description: API URL Path - required: true - type: String - - name: headers.content-type - title: Content-Type header - description: Response Content Type - defaultValue: 'application/json' - required: true - type: String - - name: method - title: HTTP Method - description: HTTP Method - defaultValue: POST - required: true - type: String - - name: headers.authorization - title: Authorization Token - description: Authorization token (if required) - type: String -inputs: - - name: input - title: input - routing: - all: - output: output - runtime: cortex/external-api -outputs: - - name: output - title: response diff --git a/src/commands/assets/templates/skill/external-api/test/payload.json b/src/commands/assets/templates/skill/external-api/test/payload.json deleted file mode 100644 index d29bdbad..00000000 --- a/src/commands/assets/templates/skill/external-api/test/payload.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "payload": {} -} diff --git a/src/commands/assets/templates/skill/job/Dockerfile b/src/commands/assets/templates/skill/job/Dockerfile deleted file mode 100644 index 929af317..00000000 --- a/src/commands/assets/templates/skill/job/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM python:3.9.10-buster -COPY --from=c12e/scuttle:latest-main /scuttle /bin/scuttle -ENV ENVOY_ADMIN_API=http://localhost:15000 -ENV ISTIO_QUIT_API=http://localhost:15020 - -ADD . /app -RUN pip install -r /app/requirements.txt -ENTRYPOINT ["scuttle", "python", "/app/main.py"] diff --git a/src/commands/assets/templates/skill/job/Makefile b/src/commands/assets/templates/skill/job/Makefile deleted file mode 100644 index 8d425d14..00000000 --- a/src/commands/assets/templates/skill/job/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -IMAGE_TAG=latest -SKILL_NAME=$(notdir $(CURDIR)) -DOCKER_IMAGE_URL=${DOCKER_PREGISTRY_URL}/${SKILL_NAME}:${IMAGE_TAG} - -build: check-env - docker build -t ${DOCKER_IMAGE_URL} . - -push: check-env - cortex docker login - docker push ${DOCKER_IMAGE_URL} - -deploy: check-env - cortex actions deploy action.json --project ${PROJECT_NAME} --docker ${DOCKER_IMAGE_URL} - cortex skills save -y skill.yaml --project ${PROJECT_NAME} - sleep 10s # wait for action containers to pull and deploy - -tests: check-env - cortex skills invoke --params-file ./test/payload.json ${SKILL_NAME} params --project ${PROJECT_NAME} - -all: build push deploy tests - -get: check-env - cortex skills describe ${SKILL_NAME} --project ${PROJECT_NAME} - -check-env: -ifndef DOCKER_PREGISTRY_URL - $(error environment variable DOCKER_PREGISTRY_URL is not set. Set it like /) -endif -ifndef PROJECT_NAME - $(error environment variable PROJECT_NAME is not set. Set this to Cortex project name.) -endif diff --git a/src/commands/assets/templates/skill/job/README.md b/src/commands/assets/templates/skill/job/README.md deleted file mode 100644 index 2f131dca..00000000 --- a/src/commands/assets/templates/skill/job/README.md +++ /dev/null @@ -1,73 +0,0 @@ -### Job Skill type - -Cortex skill that runs a background job. - -#### Prerequisites -* `cortex-cli` -* `Docker` - -#### Files generated -* `skill.yaml` Skill definition -* `main.py` Python3 code implementing job's business logic -* `requirements.txt` Python3 libraries dependencies -* `Dockerfile` to build Docker image for this skill - -#### Steps to build and deploy - -Set environment variables `DOCKER_PREGISTRY_URL` (like /) and `PROJECT_NAME` (Cortex Project Name), and use build scripts to build and deploy. - -Configure Docker auth to the private registry: - 1. For Cortex DCI with Docker registry installed use `cortex docker login` - 2. For external Docker registries like Google Cloud's GCR etc use their respective CLI for Docker login - -##### On *nix systems -A Makefile is provided to do these steps. -* `export DOCKER_PREGISTRY_URL=/` -* `export PROJECT_NAME=` -* `make all` will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. - -##### On Windows systems -A `make.bat` batch file is provided to do these steps. -* `set DOCKER_PREGISTRY_URL=/` -* `set PROJECT_NAME=` - > Below commands will build and push Docker image, deploy Cortex Action and Skill, and then invoke Skill to test. -* `make build` -* `make push` -* `make deploy` -* `make tests` - -#### Guide to make changes as per the use case - -1. Modify the main executable (`main.py` by default) run by the action image's entrypoint/command to handle the action's custom logic. -2. Modify the `requirements.txt` file to provide packages or libraries that the action requires. -3. Build the docker image (uses the `main.py` file) - ``` - docker build -t : . - ``` -4. Push the docker image to a registry that is connected to your Kubernetes cluster. - ``` - docker push : - ``` - - **(Optionally) Re-tag an image** - ``` - docker tag : : - ``` -5. Deploy the action. - ``` - cortex actions deploy --actionName \ - --actionType job \ - --docker \ - --project - ``` -6. Modify the `skill.yaml` file. -7. Save/deploy the Skill. - ``` - cortex skills save -y skill.yaml --project - ``` - - The Skill is added to the Cortex Fabric catalog and is available for selection when building interventions or Agents. - - Skills that are deployed may be invoked (run) either independently or within an agent. - -For more details about how to build skills go to [Cortex Fabric Documentation - Development - Develop Skills](https://cognitivescale.github.io/cortex-fabric/docs/development/define-skills) diff --git a/src/commands/assets/templates/skill/job/action.json.hbs b/src/commands/assets/templates/skill/job/action.json.hbs deleted file mode 100644 index 94fee092..00000000 --- a/src/commands/assets/templates/skill/job/action.json.hbs +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name":"{{dashCase name}}", - "actionType":"job", - "docker":"{{dashCase name}}:latest", - "environmentVariables":"\"TEST\"=\"value\"", - "command": ["scuttle","python", "/app/main.py"] -} diff --git a/src/commands/assets/templates/skill/job/fabric.yaml b/src/commands/assets/templates/skill/job/fabric.yaml deleted file mode 100644 index 97761d33..00000000 --- a/src/commands/assets/templates/skill/job/fabric.yaml +++ /dev/null @@ -1,7 +0,0 @@ -version: 1 -kind: deployment-manifest -cortex: - skills: - - skill.yaml - actions: - - action.json diff --git a/src/commands/assets/templates/skill/job/main.py.hbs b/src/commands/assets/templates/skill/job/main.py.hbs deleted file mode 100644 index 21791a58..00000000 --- a/src/commands/assets/templates/skill/job/main.py.hbs +++ /dev/null @@ -1,7 +0,0 @@ -import json - -if __name__ == '__main__': - import sys - params = sys.argv[1] - params = json.loads(params) - print(f'Received: {params}') diff --git a/src/commands/assets/templates/skill/job/requirements.txt.hbs b/src/commands/assets/templates/skill/job/requirements.txt.hbs deleted file mode 100644 index c1819925..00000000 --- a/src/commands/assets/templates/skill/job/requirements.txt.hbs +++ /dev/null @@ -1 +0,0 @@ -cortex-python diff --git a/src/commands/assets/templates/skill/job/skill.yaml.hbs b/src/commands/assets/templates/skill/job/skill.yaml.hbs deleted file mode 100644 index 317f09e0..00000000 --- a/src/commands/assets/templates/skill/job/skill.yaml.hbs +++ /dev/null @@ -1,26 +0,0 @@ -camel: 1.0.0 -name: {{dashCase name}} -title: {{name}} -description: {{name}} -inputs: - - name: params - title: Job Input - parameters: - - name: params - type: object - description: Input Params - required: true - routing: - all: - action : {{dashCase name}} - runtime: cortex/jobs - output: result - -outputs: - - name: result - title: Job result - parameters: - - name: result - type: object - description: Job Execution Logs - required: true diff --git a/src/commands/assets/templates/skill/job/test/payload.json b/src/commands/assets/templates/skill/job/test/payload.json deleted file mode 100644 index d29bdbad..00000000 --- a/src/commands/assets/templates/skill/job/test/payload.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "payload": {} -} diff --git a/src/commands/workspace.js b/src/commands/workspace.js deleted file mode 100644 index a7ed506c..00000000 --- a/src/commands/workspace.js +++ /dev/null @@ -1,343 +0,0 @@ -const path = require('path'); -const URL = require('url-parse'); -const { mkdir, writeFile } = require('fs/promises'); -const minimatch = require('minimatch'); -const inquirer = require('inquirer'); -const chalk = require('chalk'); -const got = require('got'); -const ghGot = require('gh-got'); -const open = require('open'); -const moment = require('moment'); -const { isText } = require('istextorbinary'); -const treeify = require('treeify'); - -const _ = { - get: require('lodash/get'), - groupBy: require('lodash/groupBy'), - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - template: require('lodash/template'), - isEmpty: require('lodash/isEmpty'), - set: require('lodash/set'), -}; - -const { readConfig, loadProfile } = require('../config'); -const { printSuccess, printError } = require('./utils'); - -const { generateNameFromTitle, validateName } = require('./utils'); - -const GITHUB_APP_CLIENTID = 'Iv1.e0e84c2a5fa7c935'; -const METADATA_FILENAME = 'metadata.json'; -const DEFAULT_TEMPLATE_REPO = 'CognitiveScale/cortex-code-templates'; -const DEFAULT_TEMPLATE_BRANCH = 'main'; - -const GITHUB_DEVICECODE_REQUEST_URL = 'https://github.com/login/device/code'; -const GITHUB_DEVICECODE_RESPONSE_URL = 'https://github.com/login/oauth/access_token'; - -function validateToken(config) { - const githubToken = _.get(config, 'templateConfig.githubToken'); - if (githubToken) { - return ghGot('user', { token: githubToken.access_token }).catch(() => undefined).then((u) => ((u && u.statusCode === 200) ? githubToken.access_token : undefined)); - } - return undefined; -} - -module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { - constructor(program) { - this.program = program; - } - - async execute(opts) { - this.options = opts; - - const config = readConfig(); - - await inquirer.prompt([ - { - type: 'input', - name: 'repo', - message: 'Template Repository URL: ', - default: _.get(config, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), - }, - { - type: 'input', - name: 'branch', - message: 'Template Repository Branch:', - default: _.get(config, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), - }, - ]) - .then(async (answers) => { - let githubToken = await validateToken(config); - - if (!githubToken && !this.options.refresh) { - printError('Current Github credentials invalid. Reauthorization required.', this.options, false); - } - - if (!githubToken || this.options.refresh) { - const { body: deviceCode } = await got.post(GITHUB_DEVICECODE_REQUEST_URL, { - json: { - client_id: GITHUB_APP_CLIENTID, - }, - responseType: 'json', - headers: { - Accept: 'application/json', - }, - }); - - if (deviceCode) { - console.log(`Opening browser at ${deviceCode.verification_uri}`); - await open(deviceCode.verification_uri); - - await new Promise((resolve, reject) => { - let expiry = deviceCode.expires_in; - let pollInterval = deviceCode.interval; - let accessToken; - - const mom = moment().add(expiry, 'seconds'); - - (function poller(options) { - process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${options.color === 'on' - ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) - : deviceCode.user_code - }`); - process.stdout.write( - moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]'), - ); - - const pollTimer = setTimeout(async () => { - const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { - json: { - client_id: GITHUB_APP_CLIENTID, - device_code: deviceCode.device_code, - grant_type: 'urn:ietf:params:oauth:grant-type:device_code', - }, - responseType: 'json', - headers: { - Accept: 'application/json', - }, - }); - accessToken = body; - - if (accessToken.access_token) { - clearTimeout(pollTimer); - githubToken = accessToken; - config.templateConfig = { - ...answers, - githubToken, - }; - config.save(); - printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); - resolve(); - } else { - switch (accessToken.error) { - case 'authorization_pending': - expiry = Math.max(expiry - pollInterval, 0); - break; - - case 'slow_down': - pollInterval += 5; - break; - - case 'expired_token': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); - reject(); - return; - - case 'incorrect_device_code': - printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); - reject(); - return; - - case 'access_denied': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess denied by user.', options); - reject(); - return; - - default: - clearInterval(pollTimer); - printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); - reject(); - return; - } - poller(options); - } - }, (pollInterval) * 1000); - }(this.options)); - }); - } else { - printError('\x1b[2KDevice Code request failed. Please try again.', this.options); - } - } - }) - .catch((error) => { - printError(error.message, this.options); - }); - } -}; - -module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { - constructor(program) { - this.program = program; - } - - async loadTemplateTree({ repo, branch, githubToken }) { - process.stdout.write('\x1b[0G\x1b[2KLoading templates...'); - - this.gitRepo = repo; - this.branch = branch; - - this.authorization = `${githubToken.token_type} ${githubToken.access_token}`; - - this.tree = await ghGot(`repos/${repo}/branches/${branch || 'main'}`, { - headers: { authorization: this.authorization }, - }) - .then((resp) => resp.body) - .then((resp) => ghGot(`repos/${repo}/git/trees/${resp.commit.sha}?recursive=true`, { - headers: { authorization: this.authorization }, - })) - .then((resp) => resp.body.tree) - .catch((err) => { - console.log('error: ', err); - return []; - }); - - process.stdout.write('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); - } - - globTree(glob) { - const filterFunc = minimatch.filter(glob, { matchBase: true }); - return _.filter(this.tree, (f) => f.type === 'blob' && filterFunc(f.path)); - } - - async readFile(filePath) { - const response = await ghGot(`repos/${this.gitRepo}/contents/${filePath}?ref=${this.branch}`, { - headers: { authorization: this.authorization }, - }); - return Buffer.from(response.body.content, 'base64'); - } - - async getRegistry() { - const profile = await loadProfile(); - - const registryUrl = _.get(this, 'options.registry') - || _.get(profile, `registries['${profile.currentRegistry}'].url`) - || (new URL(profile.url)).hostname.replace('api', 'private-registry'); - - return registryUrl; - } - - async selectTemplate() { - const registryUrl = await this.getRegistry(); - const fileNames = this.globTree(METADATA_FILENAME); - - const choices = await Promise.all(_.map(fileNames, async (value) => { - const data = JSON.parse((await this.readFile(value.path)).toString()); - return { - name: data.title, - value, - }; - })); - - const answers = await inquirer.prompt([ - { - type: 'list', - name: 'template', - message: 'Select the template you want to use:', - choices, - }, - { - type: 'input', - name: 'name', - message: 'Enter a name for the skill:', - validate: (answer) => { - const validation = validateName(answer); - return validation.status || validation.message; - }, - }, - ], { - name: this.name, - registry: registryUrl, - }).catch(() => { }); - - return answers; - } - - async execute(name, destination, options) { - this.options = options; - this.name = name; - this.destination = destination; - - this.config = readConfig(); - this.githubToken = await validateToken(this.config); - - if (!this.githubToken) { - printError( - this.config.templateConfig - ? 'Github authorization is invalid. Running configuration now.\n' - : 'Workspace generator is not configured. Running configuration now.\n', - this.options, false, - ); - await (new module.exports.WorkspaceConfigureCommand(this.program)).execute({ refresh: true }); - this.config = readConfig(); - } - - await this.loadTemplateTree(this.config.templateConfig); - - if (this.tree.length) { - const template = await this.selectTemplate(); - if (template) { - const templateFolder = path.posix.dirname(template.template.path); - const templateFiles = this.globTree(`${templateFolder}/**`); - const destinationPath = path.resolve(destination || process.cwd()); - const treeObj = {}; - - console.log(''); - - await Promise.all( - _.map(templateFiles, async (f) => { - try { - const fileName = path.posix.basename(f.path); - if (fileName !== METADATA_FILENAME) { - const templateVars = { - skillname: generateNameFromTitle(template.name), - repo: { url: template.registry }, - }; - - let buf = await this.readFile(f.path); - /// Try not to template any non-text files. - if (isText(null, buf)) { - buf = Buffer.from( - _.template(buf.toString(), { interpolate: /{{([\s\S]+?)}}/g })(templateVars), - ); - } - - const sourcePath = _.template(f.path.replace(/^templates\/[A-Za-z0-9- ]+\//, ''), { interpolate: /__([\s\S]+?)__/g })(templateVars); - const targetPath = path.resolve(destinationPath, sourcePath); - - await mkdir(path.dirname(targetPath), { recursive: true }); - await writeFile(targetPath, buf); - - _.set(treeObj, sourcePath.split('/'), null); - } - } catch (err) { - printError(`Error processing template file ${f.path}: ${err.message}`, this.options); - } - }), - ); - if (!options || !options.notree) { - printSuccess('Generated the following files:'); - console.log(''); - console.log(destinationPath); - console.log(treeify.asTree(treeObj, true)); - } - - printSuccess('Workspace generation complete.'); - } - } else { - printError('Unable to retrieve templates', this.options); - } - } -}; diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js new file mode 100644 index 00000000..f0cbb9d9 --- /dev/null +++ b/src/commands/workspaces/build.js @@ -0,0 +1,106 @@ +const path = require('path'); +const glob = require('glob'); +const Docker = require('dockerode'); + +const { DockerProgressTracker, getSkillInfo } = require('./utils'); + +const _ = { + get: require('lodash/get'), + groupBy: require('lodash/groupBy'), + orderBy: require('lodash/orderBy'), + map: require('lodash/map'), + filter: require('lodash/filter'), + forEach: require('lodash/forEach'), + template: require('lodash/template'), + isEmpty: require('lodash/isEmpty'), + set: require('lodash/set'), + mean: require('lodash/mean'), +}; + +module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { + constructor(program) { + this.program = program; + } + + async buildAction(target, action, imageTag, status) { + try { + const actionPath = path.join(target, 'actions', action.name); + const globList = glob.sync('/**/*', { + root: actionPath, + absolute: true, + }); + + const buildList = _.map(globList, (g) => path.posix.join(...(path.relative(actionPath, g)).split(path.sep))); + const docker = new Docker(); + + const stream = await docker.buildImage( + { + context: actionPath, + src: buildList, + }, + { t: imageTag }, + ); + + return new Promise((resolve, reject) => { + try { + docker.modem.followProgress( + stream, + (err) => { + if (err) { + return reject(err); + } + status.complete(); + return resolve(true); + }, + (evt) => { + status.processEvent(evt); + }, + ); + } catch (err) { + console.log(err); + reject(err); + } + }); + } catch (err) { + console.error(err); + return Promise.reject(err); + } + } + + async execute(folder, options) { + this.options = options; + let target = process.cwd(); + + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } + + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + } + + const skillInfo = await getSkillInfo(target); + + if (skillInfo.length > 0) { + console.log('Building...'); + const status = new DockerProgressTracker(); + await Promise.all(_.map(skillInfo, (info) => { + const actions = info.skill.actions ? info.skill.actions : []; + return Promise.all(_.map(actions, (action) => { + const imageTag = action.image; + return this.buildAction( + path.dirname(info.uri), + action, + imageTag, + status, + ); + })); + })); + status.stop(); + console.log('Build Complete'); + } else { + console.log('No skills found'); + } + } +}; diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js new file mode 100644 index 00000000..3c5a0b9a --- /dev/null +++ b/src/commands/workspaces/configure.js @@ -0,0 +1,165 @@ +const inquirer = require('inquirer'); +const chalk = require('chalk'); +const got = require('got'); +const open = require('open'); +const moment = require('moment'); + +const { printToTerminal, validateToken } = require('./utils'); + +const _ = { + get: require('lodash/get'), + groupBy: require('lodash/groupBy'), + orderBy: require('lodash/orderBy'), + map: require('lodash/map'), + filter: require('lodash/filter'), + forEach: require('lodash/forEach'), + template: require('lodash/template'), + isEmpty: require('lodash/isEmpty'), + set: require('lodash/set'), + mean: require('lodash/mean'), +}; + +const { readConfig } = require('../../config'); +const { printSuccess, printError } = require('./utils'); + +const GITHUB_APP_CLIENTID = 'Iv1.e0e84c2a5fa7c935'; +const DEFAULT_TEMPLATE_REPO = 'CognitiveScale/cortex-code-templates'; +const DEFAULT_TEMPLATE_BRANCH = 'main'; + +const GITHUB_DEVICECODE_REQUEST_URL = 'https://github.com/login/device/code'; +const GITHUB_DEVICECODE_RESPONSE_URL = 'https://github.com/login/oauth/access_token'; + +module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { + constructor(program) { + this.program = program; + } + + async execute(opts) { + this.options = opts; + + const config = readConfig(); + + await inquirer.prompt([ + { + type: 'input', + name: 'repo', + message: 'Template Repository URL: ', + default: _.get(config, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), + }, + { + type: 'input', + name: 'branch', + message: 'Template Repository Branch:', + default: _.get(config, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), + }, + ]) + .then(async (answers) => { + let githubToken = await validateToken(config); + + if (!githubToken && !this.options.refresh) { + printError('Current Github credentials invalid. Reauthorization required.', this.options, false); + } + + if (!githubToken || this.options.refresh) { + const { body: deviceCode } = await got.post(GITHUB_DEVICECODE_REQUEST_URL, { + json: { + client_id: GITHUB_APP_CLIENTID, + }, + responseType: 'json', + headers: { + Accept: 'application/json', + }, + }); + + if (deviceCode) { + console.log(`Opening browser at ${deviceCode.verification_uri}`); + await open(deviceCode.verification_uri); + + await new Promise((resolve, reject) => { + let expiry = deviceCode.expires_in; + let pollInterval = deviceCode.interval; + let accessToken; + + const mom = moment().add(expiry, 'seconds'); + + (function poller(options) { + printToTerminal(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${options.color === 'on' + ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) + : deviceCode.user_code + }`); + printToTerminal( + moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]'), + ); + + const pollTimer = setTimeout(async () => { + const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { + json: { + client_id: GITHUB_APP_CLIENTID, + device_code: deviceCode.device_code, + grant_type: 'urn:ietf:params:oauth:grant-type:device_code', + }, + responseType: 'json', + headers: { + Accept: 'application/json', + }, + }); + accessToken = body; + + if (accessToken.access_token) { + clearTimeout(pollTimer); + githubToken = accessToken; + config.templateConfig = { + ...answers, + githubToken, + }; + config.save(); + printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); + resolve(); + } else { + switch (accessToken.error) { + case 'authorization_pending': + expiry = Math.max(expiry - pollInterval, 0); + break; + + case 'slow_down': + pollInterval += 5; + break; + + case 'expired_token': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); + reject(); + return; + + case 'incorrect_device_code': + printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); + reject(); + return; + + case 'access_denied': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess denied by user.', options); + reject(); + return; + + default: + clearInterval(pollTimer); + printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); + reject(); + return; + } + poller(options); + } + }, (pollInterval) * 1000); + }(this.options)); + }); + } else { + printError('\x1b[2KDevice Code request failed. Please try again.', this.options); + } + } + }) + .catch((error) => { + printError(error.message, this.options); + }); + } +}; diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js new file mode 100644 index 00000000..c84fc9b6 --- /dev/null +++ b/src/commands/workspaces/generate.js @@ -0,0 +1,195 @@ +const path = require('path'); +const URL = require('url-parse'); +const { + mkdir, writeFile, +} = require('fs/promises'); +const minimatch = require('minimatch'); +const inquirer = require('inquirer'); +const ghGot = require('gh-got'); +const { isText } = require('istextorbinary'); +const treeify = require('treeify'); + +const _ = { + get: require('lodash/get'), + groupBy: require('lodash/groupBy'), + orderBy: require('lodash/orderBy'), + map: require('lodash/map'), + filter: require('lodash/filter'), + forEach: require('lodash/forEach'), + template: require('lodash/template'), + isEmpty: require('lodash/isEmpty'), + set: require('lodash/set'), + mean: require('lodash/mean'), +}; + +const { readConfig, loadProfile } = require('../../config'); +const { printSuccess, printError } = require('./utils'); +const { printToTerminal, validateToken } = require('./utils'); + +const { generateNameFromTitle, validateName } = require('./utils'); + +const METADATA_FILENAME = 'metadata.json'; + +module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { + constructor(program) { + this.program = program; + } + + async loadTemplateTree({ repo, branch, githubToken }) { + printToTerminal('\x1b[0G\x1b[2KLoading templates...'); + + this.gitRepo = repo; + this.branch = branch; + + this.authorization = `${githubToken.token_type} ${githubToken.access_token}`; + + this.tree = await ghGot(`repos/${repo}/branches/${branch || 'main'}`, { + headers: { authorization: this.authorization }, + }) + .then((resp) => resp.body) + .then((resp) => ghGot(`repos/${repo}/git/trees/${resp.commit.sha}?recursive=true`, { + headers: { authorization: this.authorization }, + })) + .then((resp) => resp.body.tree) + .catch((err) => { + console.log('error: ', err); + return []; + }); + + printToTerminal('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); + } + + globTree(glob) { + const filterFunc = minimatch.filter(glob, { matchBase: true }); + return _.filter(this.tree, (f) => f.type === 'blob' && filterFunc(f.path)); + } + + async readFile(filePath) { + const response = await ghGot(`repos/${this.gitRepo}/contents/${filePath}?ref=${this.branch}`, { + headers: { authorization: this.authorization }, + }); + return Buffer.from(response.body.content, 'base64'); + } + + async getRegistry() { + const profile = await loadProfile(); + + const registryUrl = _.get(this, 'options.registry') + || _.get(profile, `registries['${profile.currentRegistry}'].url`) + || (new URL(profile.url)).hostname.replace('api', 'private-registry'); + + return registryUrl; + } + + async selectTemplate() { + const registryUrl = await this.getRegistry(); + const fileNames = this.globTree(METADATA_FILENAME); + + const choices = await Promise.all(_.map(fileNames, async (value) => { + const data = JSON.parse((await this.readFile(value.path)).toString()); + return { + name: data.title, + value, + }; + })); + + const answers = await inquirer.prompt([ + { + type: 'list', + name: 'template', + message: 'Select the template you want to use:', + choices, + }, + { + type: 'input', + name: 'name', + message: 'Enter a name for the skill:', + validate: (answer) => { + const validation = validateName(answer); + return validation.status || validation.message; + }, + }, + ], { + name: this.name, + registry: registryUrl, + }).catch(() => { }); + + return answers; + } + + async execute(name, destination, options) { + this.options = options; + this.name = name; + this.destination = destination; + + this.config = readConfig(); + this.githubToken = await validateToken(this.config); + + if (!this.githubToken) { + printError( + this.config.templateConfig + ? 'Github authorization is invalid. Running configuration now.\n' + : 'Workspace generator is not configured. Running configuration now.\n', + this.options, false, + ); + await (new module.exports.WorkspaceConfigureCommand(this.program)).execute({ refresh: true }); + this.config = readConfig(); + } + + await this.loadTemplateTree(this.config.templateConfig); + + if (this.tree.length) { + const template = await this.selectTemplate(); + if (template) { + const templateFolder = path.posix.dirname(template.template.path); + const templateFiles = this.globTree(`${templateFolder}/**`); + const destinationPath = path.resolve(destination || process.cwd()); + const treeObj = {}; + + console.log(''); + + await Promise.all( + _.map(templateFiles, async (f) => { + try { + const fileName = path.posix.basename(f.path); + if (fileName !== METADATA_FILENAME) { + const templateVars = { + skillname: generateNameFromTitle(template.name), + repo: { url: template.registry }, + }; + + let buf = await this.readFile(f.path); + /// Try not to template any non-text files. + if (isText(null, buf)) { + buf = Buffer.from( + _.template(buf.toString(), { interpolate: /{{([\s\S]+?)}}/g })(templateVars), + ); + } + + const sourcePath = _.template(f.path.replace(/^templates\/[A-Za-z0-9- ]+\//, ''), { interpolate: /__([\s\S]+?)__/g })(templateVars); + const targetPath = path.resolve(destinationPath, sourcePath); + + await mkdir(path.dirname(targetPath), { recursive: true }); + await writeFile(targetPath, buf); + + _.set(treeObj, sourcePath.split('/'), null); + } + } catch (err) { + printError(`Error processing template file ${f.path}: ${err.message}`, this.options); + } + }), + ); + if (!options || !options.notree) { + printSuccess('Generated the following files:'); + console.log(''); + console.log(destinationPath); + console.log(treeify.asTree(treeObj, true)); + } + + printSuccess('Workspace generation complete.'); + } + } else { + printError('Unable to retrieve templates', this.options); + } + } +}; diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js new file mode 100644 index 00000000..6652e0ad --- /dev/null +++ b/src/commands/workspaces/publish.js @@ -0,0 +1,48 @@ +const path = require('path'); + +const Docker = require('dockerode'); +const { getSkillInfo } = require('./utils'); + +const _ = { + map: require('lodash/map'), +}; + +module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { + constructor(program) { + this.program = program; + } + + async execute(folder, options) { + this.options = options; + let target = process.cwd(); + + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } + + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + } + + const skillInfo = await getSkillInfo(target); + const docker = new Docker(); + + if (skillInfo.length > 0) { + await Promise.all(_.map(skillInfo, (info) => { + const actions = info.skill.actions ? info.skill.actions : []; + return Promise.all(_.map(actions, async (action) => { + const imglist = await docker.listImages({ + filters: JSON.stringify({ + reference: [action.image], + }), + }); + + console.log(imglist); + })); + })); + } else { + console.log('No skills found'); + } + } +}; diff --git a/src/commands/workspaces/utils.js b/src/commands/workspaces/utils.js new file mode 100644 index 00000000..40ba4b6a --- /dev/null +++ b/src/commands/workspaces/utils.js @@ -0,0 +1,194 @@ +const path = require('path'); +const glob = require('glob'); +const yaml = require('js-yaml'); +const { + readFile, stat, +} = require('fs/promises'); +const cliProgress = require('cli-progress'); +const { BarFormat } = require('cli-progress').Format; + +const ghGot = require('gh-got'); + +const _ = { + get: require('lodash/get'), + map: require('lodash/map'), + mean: require('lodash/mean'), +}; + +module.exports.validateToken = function validateToken(config) { + const githubToken = _.get(config, 'templateConfig.githubToken'); + if (githubToken) { + return ghGot('user', { token: githubToken.access_token }).catch(() => undefined).then((u) => ((u && u.statusCode === 200) ? githubToken.access_token : undefined)); + } + return undefined; +}; + +module.exports.printToTerminal = function printToTerminal(txt) { + process.stdout.write(`${txt}\x1b[0K\x1b[1E`); +}; + +module.exports.saveTerminalPosition = function saveTerminalPosition() { + process.stdout.write('\x1b7'); +}; + +module.exports.restoreTerminalPosition = function saveTerminalPosition() { + process.stdout.write('\x1b8'); +}; + +module.exports.DockerProgressTracker = class DockerProgressTracker { + constructor() { + this.layers = { download: {}, extract: {} }; + this.downloaded = 0; + this.extracted = 0; + this.streamData = ''; + + this.bars = new cliProgress.MultiBar({ + clearOnComplete: false, + hideCursor: true, + format: (opts, params, payload) => this.statusFormatter(opts, params, payload), + }, cliProgress.Presets.shades_grey); + + this.dlBar = this.bars.create(100, 0, { type: 'download' }); + this.exBar = this.bars.create(100, 0, { type: 'extract' }); + this.statusBar = this.bars.create(0, 0, { type: 'status' }); + } + + statusFormatter(barOpts, params, payload) { + switch (payload.type) { + case 'download': + return `Downloading: [${BarFormat(params.progress, barOpts)}]`; + case 'extract': + return `Extracting: [${BarFormat(params.progress, barOpts)}]`; + case 'status': + return `Status: ${this.streamData.trim()}`; + default: + return ''; + } + } + + updateProgress() { + this.dlBar.update(this.downloaded); + this.exBar.update(this.extracted); + this.statusBar.update(null); + } + + stop() { + this.bars.stop(); + } + + complete() { + this.downloaded = 100; + this.extracted = 100; + this.updateProgress(); + } + + processEvent(evt) { + const { progressDetail } = evt; + let { status, id } = evt; + + status = status || ''; + id = id || ''; + + if (evt.stream) { + const newStr = evt.stream.replace(/\n|\r/g, ''); + if (newStr) { + this.streamData = newStr; + } + this.updateProgress(); + } + + if (status.startsWith('Pulling from ')) { + status = 'Pulling'; + } + + if (status.startsWith('Status: Image is up to date for ') + ) { + status = 'Image up to date'; + } + + if (status.startsWith('Status: Downloaded newer image for ') + ) { + status = 'Downloaded newer image'; + } + + if (status.startsWith('Digest: ') + ) { + status = 'Digest'; + } + + switch (status) { + case 'Pulling fs layer': + this.layers.download[id] = { progress: 0 }; + this.layers.extract[id] = { progress: 0 }; + break; + + case 'Downloading': + this.layers.download[id].progress = progressDetail.current / progressDetail.total || 0; + break; + + case 'Extracting': + this.layers.extract[id].progress = progressDetail.current / progressDetail.total || 0; + break; + + case 'Download complete': + this.layers.download[id].progress = 1; + break; + + case 'Pull complete': + this.layers.extract[id].progress = 1; + break; + + case 'Already exists': + this.layers.download[id].progress = 1; + this.layers.extract[id].progress = 1; + break; + + case 'Image up to date': + case 'Downloaded newer image': + this.downloaded = 100; + this.extracted = 100; + return this.updateProgress(); + + /// Ignore these status messages + case 'Ready to download': + case 'Waiting': + case 'Pulling': + case 'Verifying Checksum': + case 'Digest': + case '': + return this.updateProgress(); + + default: + console.error('Unhandled status message: ', status); + } + + const dlmap = _.map(this.layers.download, 'progress'); + const exmap = _.map(this.layers.extract, 'progress'); + + this.downloaded = Math.round(100 * _.mean(dlmap)); + this.extracted = Math.round(100 * _.mean(exmap)); + + return this.updateProgress(); + } +}; + +module.exports.getSkillInfo = function getSkillInfo(target) { + if (target.endsWith('skill.yaml')) { + const fname = path.resolve(target); + return stat(fname) + .then(() => [fname]) + .catch(() => []); + } + const skillFiles = glob.sync('/skills/**/skill.yaml', { + root: target, + absolute: true, + }); + return Promise.all(_.map(skillFiles, async (uri) => { + const skill = await readFile(uri).catch(() => { }); + return { + name: path.basename(uri), + uri, + skill: skill ? yaml.load(skill.toString()) : undefined, + }; + })); +}; From b90fcce82716d3310025a419b94644d363ec9386 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Wed, 8 Dec 2021 14:42:47 -0500 Subject: [PATCH 625/864] Minor code restructure --- package-lock.json | 5 + package.json | 1 + src/client/experiments.js | 14 + src/commands/workspaces/build.js | 131 ++++++++- src/commands/workspaces/configure.js | 9 +- src/commands/workspaces/generate.js | 15 +- src/commands/workspaces/publish.js | 307 ++++++++++++++++++++- src/commands/workspaces/utils.js | 194 ------------- src/commands/workspaces/workspace-utils.js | 62 +++++ 9 files changed, 522 insertions(+), 216 deletions(-) delete mode 100644 src/commands/workspaces/utils.js create mode 100644 src/commands/workspaces/workspace-utils.js diff --git a/package-lock.json b/package-lock.json index aab23b40..171e3e94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4778,6 +4778,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "uuid": { + "version": "8.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=" + }, "v8-compile-cache": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", diff --git a/package.json b/package.json index b07f08f5..aaa98710 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "treeify": "1.1.0", "url-join": "4.0.1", "url-parse": "1.5.3", + "uuid": "8.3.2", "yauzl": "2.10.0" }, "devDependencies": { diff --git a/src/client/experiments.js b/src/client/experiments.js index 7c51fc13..d831a96d 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -166,6 +166,20 @@ module.exports = class Experiments { .catch((err) => constructError(err)); } + updateRun(projectId, token, runObj) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(runObj.experimentName)}/runs/${runObj.runId}`; + debug('updateRun(%s) => %s', runObj.experimentName, endpoint); + return got + .post(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + json: runObj, + }).json() + .then((result) => ({ success: true, result })) + .catch((err) => constructError(err)); + } + async uploadArtifact(projectId, token, experimentName, runId, content, artifact, contentType = 'application/octet-stream') { checkProject(projectId); diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index f0cbb9d9..87df533f 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -1,8 +1,8 @@ const path = require('path'); const glob = require('glob'); const Docker = require('dockerode'); - -const { DockerProgressTracker, getSkillInfo } = require('./utils'); +const cliProgress = require('cli-progress'); +const { BarFormat } = require('cli-progress').Format; const _ = { get: require('lodash/get'), @@ -17,11 +17,133 @@ const _ = { mean: require('lodash/mean'), }; +const { getSkillInfo, getCurrentRegistry } = require('./workspace-utils'); + +class DockerBuildProgressTracker { + constructor() { + this.layers = { download: {}, extract: {} }; + this.downloaded = 0; + this.extracted = 0; + this.streamData = ''; + + this.bars = new cliProgress.MultiBar({ + clearOnComplete: false, + hideCursor: true, + format: (opts, params, payload) => this.statusFormatter(opts, params, payload), + }, cliProgress.Presets.shades_grey); + + this.dlBar = this.bars.create(100, 0, { type: 'download' }); + this.exBar = this.bars.create(100, 0, { type: 'extract' }); + this.statusBar = this.bars.create(0, 0, { type: 'status' }); + } + + statusFormatter(barOpts, params, payload) { + switch (payload.type) { + case 'download': + if (params.progress >= 1) { + return 'Downloading: Complete'; + } + return `Downloading: [${BarFormat(params.progress, barOpts)}]`; + case 'extract': + if (params.progress >= 1) { + return 'Extracting: Complete'; + } + return `Extracting: [${BarFormat(params.progress, barOpts)}]`; + case 'status': + return `Status: ${this.streamData.trim()}`; + default: + return ''; + } + } + + updateProgress() { + this.dlBar.update(this.downloaded); + this.exBar.update(this.extracted); + this.statusBar.update(null); + } + + stop() { + this.bars.stop(); + } + + complete() { + this.downloaded = 100; + this.extracted = 100; + this.updateProgress(); + } + + processEvent(evt) { + const { progressDetail } = evt; + let { status, id } = evt; + + status = status || ''; + id = id || ''; + + if (evt.stream) { + const newStr = evt.stream.replace(/\n|\r/g, ''); + if (newStr) { + this.streamData = newStr; + } + } + + if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { + this.downloaded = 100; + this.extracted = 100; + } + + if (status === 'Pulling fs layer') { + this.layers.download[id] = { progress: 0 }; + this.layers.extract[id] = { progress: 0 }; + } + + if (status === 'Downloading') { + this.layers.download[id].progress = progressDetail.current / progressDetail.total || 0; + } + + if (status === 'Extracting') { + this.layers.extract[id].progress = progressDetail.current / progressDetail.total || 0; + } + + if (status === 'Download complete') { + this.layers.download[id].progress = 1; + } + + if (status === 'Pull complete') { + this.layers.extract[id].progress = 1; + } + + if (status === 'Already exists') { + this.layers.download[id].progress = 1; + this.layers.extract[id].progress = 1; + } + + const dlmap = _.map(this.layers.download, 'progress'); + const exmap = _.map(this.layers.extract, 'progress'); + + this.downloaded = Math.round(100 * _.mean(dlmap)); + this.extracted = Math.round(100 * _.mean(exmap)); + + return this.updateProgress(); + } +} + module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { constructor(program) { this.program = program; } + buildImageTag(registry, actionName) { + if (registry.url.includes('docker.io')) { + return path.posix.join(registry.namespace || '', actionName); + } + + if (actionName.startsWith(registry.url)) { + return actionName; + } + + return path.posix.join(registry.url, registry.namespace || '', actionName); + } + async buildAction(target, action, imageTag, status) { try { const actionPath = path.join(target, 'actions', action.name); @@ -82,9 +204,12 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { const skillInfo = await getSkillInfo(target); + const curReg = getCurrentRegistry(); + console.log(curReg); + if (skillInfo.length > 0) { console.log('Building...'); - const status = new DockerProgressTracker(); + const status = new DockerBuildProgressTracker(); await Promise.all(_.map(skillInfo, (info) => { const actions = info.skill.actions ? info.skill.actions : []; return Promise.all(_.map(actions, (action) => { diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index 3c5a0b9a..84bc0d5e 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -4,7 +4,7 @@ const got = require('got'); const open = require('open'); const moment = require('moment'); -const { printToTerminal, validateToken } = require('./utils'); +const { printToTerminal, validateToken } = require('./workspace-utils'); const _ = { get: require('lodash/get'), @@ -20,7 +20,7 @@ const _ = { }; const { readConfig } = require('../../config'); -const { printSuccess, printError } = require('./utils'); +const { printSuccess, printError } = require('../utils'); const GITHUB_APP_CLIENTID = 'Iv1.e0e84c2a5fa7c935'; const DEFAULT_TEMPLATE_REPO = 'CognitiveScale/cortex-code-templates'; @@ -86,10 +86,7 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { printToTerminal(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${options.color === 'on' ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) : deviceCode.user_code - }`); - printToTerminal( - moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]'), - ); + } ${moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); const pollTimer = setTimeout(async () => { const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index c84fc9b6..95803de8 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -23,10 +23,17 @@ const _ = { }; const { readConfig, loadProfile } = require('../../config'); -const { printSuccess, printError } = require('./utils'); -const { printToTerminal, validateToken } = require('./utils'); - -const { generateNameFromTitle, validateName } = require('./utils'); +const { + printToTerminal, + validateToken, +} = require('./workspace-utils'); + +const { + printSuccess, + printError, + validateName, + generateNameFromTitle, +} = require('../utils'); const METADATA_FILENAME = 'metadata.json'; diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 6652e0ad..da47d92a 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -1,17 +1,192 @@ +const glob = require('glob'); const path = require('path'); - const Docker = require('dockerode'); -const { getSkillInfo } = require('./utils'); +const { readFile } = require('fs/promises'); +const { v1: uuid } = require('uuid'); +const inquirer = require('inquirer'); +const cliProgress = require('cli-progress'); +const { BarFormat } = require('cli-progress').Format; + +const { + parseObject, +} = require('../utils'); + +const { getSkillInfo } = require('./workspace-utils'); +const { loadProfile, generateJwt } = require('../../config'); +const Catalog = require('../../client/catalog'); +const Models = require('../../client/models'); +const Content = require('../../client/content'); +const Experiments = require('../../client/experiments'); const _ = { map: require('lodash/map'), + find: require('lodash/find'), + mean: require('lodash/mean'), }; +class DockerPushProgressTracker { + constructor() { + this.layers = { upload: {} }; + this.pushed = 0; + this.result = {}; + + this.bars = new cliProgress.MultiBar({ + clearOnComplete: false, + hideCursor: true, + format: (opts, params, payload) => this.statusFormatter(opts, params, payload), + }, cliProgress.Presets.shades_grey); + + this.pushBar = this.bars.create(100, 0, { type: 'upload' }); + } + + statusFormatter(barOpts, params, payload) { + switch (payload.type) { + case 'upload': + if (params.progress >= 1) { + return 'Pushing: Complete'; + } + return `Pushing: [${BarFormat(params.progress, barOpts)}]`; + case 'status': + return `Status: ${this.streamData.trim()}`; + default: + return ''; + } + } + + updateProgress() { + this.pushBar.update(this.pushed); + } + + stop() { + this.bars.stop(); + } + + complete() { + this.pushed = 100; + this.updateProgress(); + return this.result; + } + + processEvent(evt) { + const { progressDetail } = evt; + let { status, id } = evt; + + if (evt.aux) { + this.result = evt.aux; + } + + status = status || ''; + id = id || ''; + + if (evt.stream) { + const newStr = evt.stream.replace(/\n|\r/g, ''); + if (newStr) { + this.streamData = newStr; + } + } + + if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { + this.pushed = 100; + } + + if (status === 'Preparing') { + this.layers.upload[id] = { progress: 0 }; + } + + if (status === 'Pushing') { + this.layers.upload[id].progress = progressDetail.current / progressDetail.total || 0; + } + + if ((status === 'Pushed') || (status === 'Layer already exists')) { + this.layers.upload[id].progress = 1; + } + + const ulmap = _.map(this.layers.upload, 'progress'); + this.pushed = Math.round(100 * _.mean(ulmap)); + + return this.updateProgress(); + } +} + module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { constructor(program) { this.program = program; } + async getRegistryAuth(profile, imageName, options) { + const reg = _.find(profile.registries, (r) => imageName.startsWith(r.url)); + + if (!profile.token) { + if (reg.isCortex) { + const ttl = options.ttl || '1d'; + const jwt = await generateJwt(profile, ttl); + profile.token = jwt; + } else { + const answers = await inquirer.prompt([ + { + type: 'input', + name: 'username', + message: `Enter user name for ${reg.name}:`, + }, + { + type: 'password', + name: 'password', + message: `Enter password for ${reg.name}:`, + }, + ]).catch(() => { }); + + if (answers) { + return answers; + } + } + } + + return { + username: 'cli', + password: profile.token, + }; + } + + async pushAction(action, imageTag, registryAuth) { + let img = this.docker.getImage(imageTag); + + /// ------------------------------------- + /// RETAGGING IMAGE SO CORTEX PICKS IT UP + /// The cortex backend has a bug where the new image wont be used if the tag hasnt changed + /// Remove this when this problem is fixed. + const buildId = uuid().substr(0, 6); + const newTag = `${imageTag.split(':')[0]}:${buildId}`; + await img.tag({ repo: newTag }); + img = this.docker.getImage(newTag); + /// ------------------------------------- + + const status = new DockerPushProgressTracker(); + + const imgPush = await img + .push({ + authconfig: registryAuth, + }) + .catch((err) => Promise.reject(err)); + + return new Promise((resolve, reject) => { + this.docker.modem.followProgress( + imgPush, + (err) => { + if (err) { + return reject(err); + } + status.complete(); + status.stop(); + console.log(`Pushed action ${action.name}`); + return resolve(true); + }, + (evt) => { + status.processEvent(evt); + }, + ); + }); + } + async execute(folder, options) { this.options = options; let target = process.cwd(); @@ -26,23 +201,137 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { } const skillInfo = await getSkillInfo(target); - const docker = new Docker(); if (skillInfo.length > 0) { - await Promise.all(_.map(skillInfo, (info) => { + const profile = await loadProfile(); + + this.docker = new Docker(); + + this.catalogClient = new Catalog(profile.url); + this.modelsClient = new Models(profile.url); + this.experimentClient = new Experiments(profile.url); + this.contentClient = new Content(profile.url); + + await Promise.all(_.map(skillInfo, async (info) => { + const skillName = info.skill.name; const actions = info.skill.actions ? info.skill.actions : []; - return Promise.all(_.map(actions, async (action) => { - const imglist = await docker.listImages({ + await Promise.all(_.map(actions, async (action) => { + const imglist = await this.docker.listImages({ filters: JSON.stringify({ reference: [action.image], }), }); - console.log(imglist); + if (imglist.length !== 0) { + try { + const tag = imglist[0].RepoTags[0]; + const globOpts = { + root: target, + absolute: true, + }; + const regAuth = await this.getRegistryAuth(profile, action.image, options); + + const typesFiles = glob.sync(`types/${skillName}/**/*.yaml`, globOpts); + await Promise.all( + _.map(typesFiles, async (f) => { + const typeData = await readFile(f).catch(() => { }); + if (typeData) { + const type = parseObject(typeData.toString()); + let normalizedType = {}; + if (!('types' in type)) normalizedType.types = [type]; + else normalizedType = type; + await this.catalogClient.saveType(profile.project, profile.token, normalizedType); + console.log(`Published type ${path.basename(f)}`); + } + }), + ); + + const modelsFiles = glob.sync(`models/${skillName}/**/*.yaml`, globOpts); + await Promise.all( + _.map(modelsFiles, async (f) => { + const modelData = await readFile(f).catch(() => { }); + if (modelData) { + const model = parseObject(modelData.toString()); + await this.modelsClient.saveModel(profile.project, profile.token, model); + console.log(`Published model ${model.name}`); + } + }), + ); + + const experimentsFiles = glob.sync(`experiments/${skillName}/*/*.yaml`, globOpts); + await Promise.all( + _.map(experimentsFiles, async (expFile) => { + const experimentData = await readFile(expFile).catch(() => { }); + + if (experimentData) { + const experiment = parseObject(experimentData.toString()); + + const result = await this.experimentClient.saveExperiment(profile.project, profile.token, experiment).then((response) => response.success) + .catch(() => false); + + if (result) { + console.log(`Published experiment ${experiment.name}`); + const runsFiles = glob.sync(`experiments/${skillName}/${experiment.name}/runs/**/*.yaml`, globOpts); + await Promise.all( + _.map(runsFiles, async (runFile) => { + const runData = await readFile(runFile).catch(() => { }); + + if (runData) { + const run = parseObject(runData.toString()); + /// + /// Note: I would prefer to do an Update operation here instead, but the update endpoint + /// for experiment runs is currently broken. + /// + /// In the interim, I just delete the run (if it exists) and then re-add it. + /// + await this.experimentClient.deleteRun(profile.project, profile.token, experiment.name, run.runId); + run.experimentName = experiment.name; + await this.experimentClient.createRun(profile.project, profile.token, run); + console.log(`Published run ${run.runId}`); + + const artifacts = glob.sync(`experiments/${skillName}/${experiment.name}/runs/${run.runId}/artifacts/*`, globOpts); + await Promise.all(_.map(artifacts, async (artifactUri) => { + const artifactName = path.basename(artifactUri).split('.')[0]; + await this.experimentClient.uploadArtifact(profile.project, profile.token, experiment.name, run.runId, artifactUri, artifactName); + console.log(`Published artifact ${artifactName}`); + })); + } + }), + ); + } else { + console.error('Failed to save experiment'); + } + } + }), + ); + + const contentFolder = path.join(target, 'content'); + const contentFiles = glob.sync('**/*', { cwd: contentFolder, nodir: true, absolute: false }); + await Promise.all( + _.map(contentFiles, async (f) => { + const filePath = path.join(contentFolder, f); + const key = `${path.posix.dirname(f)}/${path.posix.basename(f, path.posix.extname(f))}`; + await this.contentClient.uploadContentStreaming(profile.project, profile.token, key, filePath); + console.log(`Published content ${key}`); + }), + ); + + await this.pushAction(action, tag, regAuth); + } catch (err) { + console.error(err.message); + } + } else { + console.error(`No image found for action ${action.name}. Has it been built?`); + } })); + + this.catalogClient.saveSkill(profile.project, profile.token, info.skill); })); - } else { - console.log('No skills found'); + + return Promise.resolve(); } + + console.log('No skills found'); + return Promise.resolve(); } }; diff --git a/src/commands/workspaces/utils.js b/src/commands/workspaces/utils.js deleted file mode 100644 index 40ba4b6a..00000000 --- a/src/commands/workspaces/utils.js +++ /dev/null @@ -1,194 +0,0 @@ -const path = require('path'); -const glob = require('glob'); -const yaml = require('js-yaml'); -const { - readFile, stat, -} = require('fs/promises'); -const cliProgress = require('cli-progress'); -const { BarFormat } = require('cli-progress').Format; - -const ghGot = require('gh-got'); - -const _ = { - get: require('lodash/get'), - map: require('lodash/map'), - mean: require('lodash/mean'), -}; - -module.exports.validateToken = function validateToken(config) { - const githubToken = _.get(config, 'templateConfig.githubToken'); - if (githubToken) { - return ghGot('user', { token: githubToken.access_token }).catch(() => undefined).then((u) => ((u && u.statusCode === 200) ? githubToken.access_token : undefined)); - } - return undefined; -}; - -module.exports.printToTerminal = function printToTerminal(txt) { - process.stdout.write(`${txt}\x1b[0K\x1b[1E`); -}; - -module.exports.saveTerminalPosition = function saveTerminalPosition() { - process.stdout.write('\x1b7'); -}; - -module.exports.restoreTerminalPosition = function saveTerminalPosition() { - process.stdout.write('\x1b8'); -}; - -module.exports.DockerProgressTracker = class DockerProgressTracker { - constructor() { - this.layers = { download: {}, extract: {} }; - this.downloaded = 0; - this.extracted = 0; - this.streamData = ''; - - this.bars = new cliProgress.MultiBar({ - clearOnComplete: false, - hideCursor: true, - format: (opts, params, payload) => this.statusFormatter(opts, params, payload), - }, cliProgress.Presets.shades_grey); - - this.dlBar = this.bars.create(100, 0, { type: 'download' }); - this.exBar = this.bars.create(100, 0, { type: 'extract' }); - this.statusBar = this.bars.create(0, 0, { type: 'status' }); - } - - statusFormatter(barOpts, params, payload) { - switch (payload.type) { - case 'download': - return `Downloading: [${BarFormat(params.progress, barOpts)}]`; - case 'extract': - return `Extracting: [${BarFormat(params.progress, barOpts)}]`; - case 'status': - return `Status: ${this.streamData.trim()}`; - default: - return ''; - } - } - - updateProgress() { - this.dlBar.update(this.downloaded); - this.exBar.update(this.extracted); - this.statusBar.update(null); - } - - stop() { - this.bars.stop(); - } - - complete() { - this.downloaded = 100; - this.extracted = 100; - this.updateProgress(); - } - - processEvent(evt) { - const { progressDetail } = evt; - let { status, id } = evt; - - status = status || ''; - id = id || ''; - - if (evt.stream) { - const newStr = evt.stream.replace(/\n|\r/g, ''); - if (newStr) { - this.streamData = newStr; - } - this.updateProgress(); - } - - if (status.startsWith('Pulling from ')) { - status = 'Pulling'; - } - - if (status.startsWith('Status: Image is up to date for ') - ) { - status = 'Image up to date'; - } - - if (status.startsWith('Status: Downloaded newer image for ') - ) { - status = 'Downloaded newer image'; - } - - if (status.startsWith('Digest: ') - ) { - status = 'Digest'; - } - - switch (status) { - case 'Pulling fs layer': - this.layers.download[id] = { progress: 0 }; - this.layers.extract[id] = { progress: 0 }; - break; - - case 'Downloading': - this.layers.download[id].progress = progressDetail.current / progressDetail.total || 0; - break; - - case 'Extracting': - this.layers.extract[id].progress = progressDetail.current / progressDetail.total || 0; - break; - - case 'Download complete': - this.layers.download[id].progress = 1; - break; - - case 'Pull complete': - this.layers.extract[id].progress = 1; - break; - - case 'Already exists': - this.layers.download[id].progress = 1; - this.layers.extract[id].progress = 1; - break; - - case 'Image up to date': - case 'Downloaded newer image': - this.downloaded = 100; - this.extracted = 100; - return this.updateProgress(); - - /// Ignore these status messages - case 'Ready to download': - case 'Waiting': - case 'Pulling': - case 'Verifying Checksum': - case 'Digest': - case '': - return this.updateProgress(); - - default: - console.error('Unhandled status message: ', status); - } - - const dlmap = _.map(this.layers.download, 'progress'); - const exmap = _.map(this.layers.extract, 'progress'); - - this.downloaded = Math.round(100 * _.mean(dlmap)); - this.extracted = Math.round(100 * _.mean(exmap)); - - return this.updateProgress(); - } -}; - -module.exports.getSkillInfo = function getSkillInfo(target) { - if (target.endsWith('skill.yaml')) { - const fname = path.resolve(target); - return stat(fname) - .then(() => [fname]) - .catch(() => []); - } - const skillFiles = glob.sync('/skills/**/skill.yaml', { - root: target, - absolute: true, - }); - return Promise.all(_.map(skillFiles, async (uri) => { - const skill = await readFile(uri).catch(() => { }); - return { - name: path.basename(uri), - uri, - skill: skill ? yaml.load(skill.toString()) : undefined, - }; - })); -}; diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js new file mode 100644 index 00000000..1b39cb2a --- /dev/null +++ b/src/commands/workspaces/workspace-utils.js @@ -0,0 +1,62 @@ +const path = require('path'); +const glob = require('glob'); +const yaml = require('js-yaml'); +const { + readFile, stat, +} = require('fs/promises'); + +const ghGot = require('gh-got'); + +const _ = { + get: require('lodash/get'), + map: require('lodash/map'), + mean: require('lodash/mean'), +}; + +const { loadProfile } = require('../../config'); + +module.exports.validateToken = function validateToken(config) { + const githubToken = _.get(config, 'templateConfig.githubToken'); + if (githubToken) { + return ghGot('user', { token: githubToken.access_token }).catch(() => undefined).then((u) => ((u && u.statusCode === 200) ? githubToken.access_token : undefined)); + } + return undefined; +}; + +module.exports.printToTerminal = function printToTerminal(txt) { + process.stdout.write(`${txt}\x1b[0K\x1b[1E`); +}; + +module.exports.saveTerminalPosition = function saveTerminalPosition() { + process.stdout.write('\x1b7'); +}; + +module.exports.restoreTerminalPosition = function saveTerminalPosition() { + process.stdout.write('\x1b8'); +}; + +module.exports.getSkillInfo = function getSkillInfo(target) { + if (target.endsWith('skill.yaml')) { + const fname = path.resolve(target); + return stat(fname) + .then(() => [fname]) + .catch(() => []); + } + const skillFiles = glob.sync('/skills/**/skill.yaml', { + root: target, + absolute: true, + }); + return Promise.all(_.map(skillFiles, async (uri) => { + const skill = await readFile(uri).catch(() => { }); + return { + name: path.basename(uri), + uri, + skill: skill ? yaml.load(skill.toString()) : undefined, + }; + })); +}; + +module.exports.getCurrentRegistry = async function getCurrentRegistry() { + const profile = await loadProfile(); + return profile.registries[profile.currentRegistry]; +}; From 735b51e52753543df1b925db32a831b970c77a47 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Wed, 8 Dec 2021 15:24:53 -0500 Subject: [PATCH 626/864] Support removing encoding of repo url in skill.yaml --- src/commands/workspaces/build.js | 28 ++++------------------ src/commands/workspaces/publish.js | 12 +++++----- src/commands/workspaces/workspace-utils.js | 13 ++++++++++ 3 files changed, 24 insertions(+), 29 deletions(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index 87df533f..29d850fb 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -17,7 +17,7 @@ const _ = { mean: require('lodash/mean'), }; -const { getSkillInfo, getCurrentRegistry } = require('./workspace-utils'); +const { getSkillInfo, buildImageTag } = require('./workspace-utils'); class DockerBuildProgressTracker { constructor() { @@ -132,19 +132,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { this.program = program; } - buildImageTag(registry, actionName) { - if (registry.url.includes('docker.io')) { - return path.posix.join(registry.namespace || '', actionName); - } - - if (actionName.startsWith(registry.url)) { - return actionName; - } - - return path.posix.join(registry.url, registry.namespace || '', actionName); - } - - async buildAction(target, action, imageTag, status) { + async buildAction(target, action, status) { try { const actionPath = path.join(target, 'actions', action.name); const globList = glob.sync('/**/*', { @@ -154,6 +142,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { const buildList = _.map(globList, (g) => path.posix.join(...(path.relative(actionPath, g)).split(path.sep))); const docker = new Docker(); + const imageTag = await buildImageTag(action.image); const stream = await docker.buildImage( { @@ -204,23 +193,16 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { const skillInfo = await getSkillInfo(target); - const curReg = getCurrentRegistry(); - console.log(curReg); - if (skillInfo.length > 0) { console.log('Building...'); const status = new DockerBuildProgressTracker(); await Promise.all(_.map(skillInfo, (info) => { const actions = info.skill.actions ? info.skill.actions : []; - return Promise.all(_.map(actions, (action) => { - const imageTag = action.image; - return this.buildAction( + return Promise.all(_.map(actions, (action) => this.buildAction( path.dirname(info.uri), action, - imageTag, status, - ); - })); + ))); })); status.stop(); console.log('Build Complete'); diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index da47d92a..f5f92319 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -11,7 +11,7 @@ const { parseObject, } = require('../utils'); -const { getSkillInfo } = require('./workspace-utils'); +const { getSkillInfo, buildImageTag, getCurrentRegistry } = require('./workspace-utils'); const { loadProfile, generateJwt } = require('../../config'); const Catalog = require('../../client/catalog'); const Models = require('../../client/models'); @@ -113,8 +113,8 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { this.program = program; } - async getRegistryAuth(profile, imageName, options) { - const reg = _.find(profile.registries, (r) => imageName.startsWith(r.url)); + async getRegistryAuth(profile, options) { + const reg = await getCurrentRegistry(); if (!profile.token) { if (reg.isCortex) { @@ -155,7 +155,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { /// The cortex backend has a bug where the new image wont be used if the tag hasnt changed /// Remove this when this problem is fixed. const buildId = uuid().substr(0, 6); - const newTag = `${imageTag.split(':')[0]}:${buildId}`; + const newTag = `${imageTag}:${buildId}`; await img.tag({ repo: newTag }); img = this.docker.getImage(newTag); /// ------------------------------------- @@ -216,15 +216,15 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { const skillName = info.skill.name; const actions = info.skill.actions ? info.skill.actions : []; await Promise.all(_.map(actions, async (action) => { + const tag = await buildImageTag(action.image); const imglist = await this.docker.listImages({ filters: JSON.stringify({ - reference: [action.image], + reference: [tag], }), }); if (imglist.length !== 0) { try { - const tag = imglist[0].RepoTags[0]; const globOpts = { root: target, absolute: true, diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 1b39cb2a..92af2e54 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -60,3 +60,16 @@ module.exports.getCurrentRegistry = async function getCurrentRegistry() { const profile = await loadProfile(); return profile.registries[profile.currentRegistry]; }; + +module.exports.buildImageTag = async function buildImageTag(actionName) { + const registry = await module.exports.getCurrentRegistry(); + if (registry.url.includes('docker.io')) { + return path.posix.join(registry.namespace || '', actionName); + } + + if (actionName.startsWith(registry.url)) { + return actionName; + } + + return path.posix.join(registry.url, registry.namespace || '', actionName); +}; From 0362c315a4207b97f96bca9059f3d93db427afad Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Wed, 8 Dec 2021 15:34:18 -0500 Subject: [PATCH 627/864] Minor messaging changes --- src/commands/workspaces/publish.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index f5f92319..e1e49a28 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -326,8 +326,10 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { })); this.catalogClient.saveSkill(profile.project, profile.token, info.skill); + console.log(`Published skill ${info.skill.name}`); })); + console.log('Publish Complete'); return Promise.resolve(); } From b264d2e1275c0d0c498cc3e378a57050756bb2e8 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Wed, 8 Dec 2021 16:12:42 -0500 Subject: [PATCH 628/864] More messaging fixes --- src/commands/workspaces/publish.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index e1e49a28..10c1c774 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -22,6 +22,7 @@ const _ = { map: require('lodash/map'), find: require('lodash/find'), mean: require('lodash/mean'), + every: require('lodash/every'), }; class DockerPushProgressTracker { @@ -165,8 +166,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { const imgPush = await img .push({ authconfig: registryAuth, - }) - .catch((err) => Promise.reject(err)); + }); return new Promise((resolve, reject) => { this.docker.modem.followProgress( @@ -212,10 +212,10 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { this.experimentClient = new Experiments(profile.url); this.contentClient = new Content(profile.url); - await Promise.all(_.map(skillInfo, async (info) => { + const published = await Promise.all(_.map(skillInfo, async (info) => { const skillName = info.skill.name; const actions = info.skill.actions ? info.skill.actions : []; - await Promise.all(_.map(actions, async (action) => { + const actionsPublished = await Promise.all(_.map(actions, async (action) => { const tag = await buildImageTag(action.image); const imglist = await this.docker.listImages({ filters: JSON.stringify({ @@ -319,21 +319,30 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { await this.pushAction(action, tag, regAuth); } catch (err) { console.error(err.message); + return false; } } else { console.error(`No image found for action ${action.name}. Has it been built?`); + return false; } + + return true; })); - this.catalogClient.saveSkill(profile.project, profile.token, info.skill); - console.log(`Published skill ${info.skill.name}`); + if (_.every(actionsPublished)) { + this.catalogClient.saveSkill(profile.project, profile.token, info.skill); + console.log(`Published skill ${info.skill.name}`); + return true; + } + + return false; })); console.log('Publish Complete'); - return Promise.resolve(); + return _.every(published); } console.log('No skills found'); - return Promise.resolve(); + return false; } }; From 7b7ad0f3f93892b9d7d8a3d581924063d3e92987 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Wed, 8 Dec 2021 16:54:50 -0500 Subject: [PATCH 629/864] Fixed a problem with naming image --- src/commands/workspaces/workspace-utils.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 92af2e54..53bcc55d 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -62,14 +62,14 @@ module.exports.getCurrentRegistry = async function getCurrentRegistry() { }; module.exports.buildImageTag = async function buildImageTag(actionName) { + if (actionName.includes('/')) { + return actionName; + } + const registry = await module.exports.getCurrentRegistry(); if (registry.url.includes('docker.io')) { return path.posix.join(registry.namespace || '', actionName); } - if (actionName.startsWith(registry.url)) { - return actionName; - } - return path.posix.join(registry.url, registry.namespace || '', actionName); }; From 9bfe89b4edf83e5d1861b949b94070d4a80ed79f Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Thu, 9 Dec 2021 11:26:11 -0500 Subject: [PATCH 630/864] Added registry management commands --- bin/cortex-workspaces.js | 60 +++++++++++ src/commands/workspaces/registry.js | 156 ++++++++++++++++++++++++++++ 2 files changed, 216 insertions(+) create mode 100644 src/commands/workspaces/registry.js diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 802fe214..e4551861 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -23,6 +23,12 @@ const { WorkspaceConfigureCommand } = require('../src/commands/workspaces/config const { WorkspaceGenerateCommand } = require('../src/commands/workspaces/generate'); const { WorkspaceBuildCommand } = require('../src/commands/workspaces/build'); const { WorkspacePublishCommand } = require('../src/commands/workspaces/publish'); +const { + WorkspaceAddRegistryCommand, + WorkspaceRemoveRegistryCommand, + WorkspaceActivateRegistryCommand, + WorkspaceListRegistryCommand, +} = require('../src/commands/workspaces/registry'); program.name('cortex workspaces'); program.description('Scaffolding Cortex Components'); @@ -80,6 +86,60 @@ program } }); + const registries = program + .command('registries') + .description('Manage image repositories.'); + + registries + .command('add [name]') + .option('--color [on/off]', 'Turn on/off colors', 'on') + .option('--url [registry url]', 'Registry URL') + .option('--namespace [registry namespace]', 'Registry Namespace') + .description('Adds an image registry to publish to.') + .action((name, options) => { // deliberately not using withCompatibilityCheck() + try { + new WorkspaceAddRegistryCommand(program).execute(name, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + + registries + .command('remove [name]') + .option('--color [on/off]', 'Turn on/off colors', 'on') + .description('Removes the specified image registry.') + .action((name, options) => { // deliberately not using withCompatibilityCheck() + try { + new WorkspaceRemoveRegistryCommand(program).execute(name, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + + registries + .command('activate [name]') + .option('--color [on/off]', 'Turn on/off colors', 'on') + .description('Activates the specified image registry.') + .action((name, options) => { // deliberately not using withCompatibilityCheck() + try { + new WorkspaceActivateRegistryCommand(program).execute(name, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + + registries + .command('list') + .option('--color [on/off]', 'Turn on/off colors', 'on') + .description('Lists all image registries') + .action((options) => { // deliberately not using withCompatibilityCheck() + try { + new WorkspaceListRegistryCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js new file mode 100644 index 00000000..0c948f8c --- /dev/null +++ b/src/commands/workspaces/registry.js @@ -0,0 +1,156 @@ +const path = require('path'); +const inquirer = require('inquirer'); + +const _ = { + map: require('lodash/map'), + filter: require('lodash/filter'), + forEach: require('lodash/forEach'), +}; + +const { loadProfile, readConfig } = require('../../config'); +const { printSuccess, printError } = require('../utils'); + +module.exports.WorkspaceAddRegistryCommand = class WorkspaceAddRegistryCommand { + constructor(program) { + this.program = program; + } + + async execute(name, opts) { + await inquirer.prompt([ + { + type: 'input', + name: 'name', + message: 'Name for registry: ', + }, + { + type: 'input', + name: 'url', + message: 'Registry URL: ', + default: 'docker.io', + }, + { + type: 'input', + name: 'namespace', + message: 'Namespace: ', + }, + ], { + name, + url: opts.url, + namespace: opts.namespace, + }) + .then(async (answers) => { + const profile = await loadProfile(); + + profile.registries[answers.name] = { + name: answers.name, + url: answers.url, + namespace: answers.namespace, + }; + + const cfg = readConfig(); + cfg.profiles[profile.name] = profile; + cfg.save(); + + printSuccess(`Registry ${answers.name} added`); + }) + .catch((error) => { + printError(error.message, this.options); + }); + } +}; + +module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCommand { + constructor(program) { + this.program = program; + } + + async execute(name) { + const profile = await loadProfile(); + + const choices = _.map(_.filter(profile.registries, { isCortex: false }), (r) => ( + { + name: r.name, + value: r.name, + })); + + if (choices.length === 0) { + printError('No registries to remove'); + return; + } + + await inquirer.prompt([ + { + type: 'list', + name: 'name', + message: 'Select registry to remove: ', + choices, + }, + ], { + name, + }) + .then((answers) => { + delete profile.registries[answers.name]; + + const cfg = readConfig(); + cfg.profiles[profile.name] = profile; + cfg.save(); + + printSuccess(`Registry ${answers.name} removed`); + }) + .catch((error) => { + printError(error.message, this.options); + }); + } +}; + +module.exports.WorkspaceActivateRegistryCommand = class WorkspaceActivateRegistryCommand { + constructor(program) { + this.program = program; + } + + async execute(name) { + const profile = await loadProfile(); + + const choices = _.map(profile.registries, (r) => ( + { + name: r.name, + value: r.name, + })); + + await inquirer.prompt([ + { + type: 'list', + name: 'name', + message: 'Select registry to activate: ', + choices, + }, + ], { + name, + }) + .then((answers) => { + profile.currentRegistry = answers.name; + + const cfg = readConfig(); + cfg.profiles[profile.name] = profile; + cfg.save(); + + printSuccess(`Registry ${answers.name} activated`); + }) + .catch((error) => { + printError(error.message, this.options); + }); + } +}; + +module.exports.WorkspaceListRegistryCommand = class WorkspaceListRegistryCommand { + constructor(program) { + this.program = program; + } + + async execute() { + const profile = await loadProfile(); + _.forEach(profile.registries, (r) => { + printSuccess(`${r.name} - ${path.posix.join(r.url, r.namespace || '')}`); + }); + } +}; From d293ed3363dcf8adf976ecf173c71e8c315bbc70 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Thu, 9 Dec 2021 12:07:54 -0500 Subject: [PATCH 631/864] Indicate active registry in list --- src/commands/workspaces/registry.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js index 0c948f8c..b608918b 100644 --- a/src/commands/workspaces/registry.js +++ b/src/commands/workspaces/registry.js @@ -150,7 +150,12 @@ module.exports.WorkspaceListRegistryCommand = class WorkspaceListRegistryCommand async execute() { const profile = await loadProfile(); _.forEach(profile.registries, (r) => { - printSuccess(`${r.name} - ${path.posix.join(r.url, r.namespace || '')}`); + const logStr = `${r.name} - ${path.posix.join(r.url, r.namespace || '')}`; + if (r.name === profile.currentRegistry) { + printSuccess(logStr); + } else { + console.log(logStr); + } }); } }; From a25d8bd772979fbb9314b0d6a14c5335b450ad86 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Thu, 9 Dec 2021 12:19:59 -0500 Subject: [PATCH 632/864] Pass options to print routines to respect color option --- src/commands/workspaces/registry.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js index b608918b..75e63fbe 100644 --- a/src/commands/workspaces/registry.js +++ b/src/commands/workspaces/registry.js @@ -51,10 +51,10 @@ module.exports.WorkspaceAddRegistryCommand = class WorkspaceAddRegistryCommand { cfg.profiles[profile.name] = profile; cfg.save(); - printSuccess(`Registry ${answers.name} added`); + printSuccess(`Registry ${answers.name} added`, opts); }) .catch((error) => { - printError(error.message, this.options); + printError(error.message, opts); }); } }; @@ -64,7 +64,7 @@ module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCom this.program = program; } - async execute(name) { + async execute(name, options) { const profile = await loadProfile(); const choices = _.map(_.filter(profile.registries, { isCortex: false }), (r) => ( @@ -98,7 +98,7 @@ module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCom printSuccess(`Registry ${answers.name} removed`); }) .catch((error) => { - printError(error.message, this.options); + printError(error.message, options); }); } }; @@ -108,7 +108,7 @@ module.exports.WorkspaceActivateRegistryCommand = class WorkspaceActivateRegistr this.program = program; } - async execute(name) { + async execute(name, options) { const profile = await loadProfile(); const choices = _.map(profile.registries, (r) => ( @@ -134,10 +134,10 @@ module.exports.WorkspaceActivateRegistryCommand = class WorkspaceActivateRegistr cfg.profiles[profile.name] = profile; cfg.save(); - printSuccess(`Registry ${answers.name} activated`); + printSuccess(`Registry ${answers.name} activated`, options); }) .catch((error) => { - printError(error.message, this.options); + printError(error.message, options); }); } }; @@ -147,12 +147,12 @@ module.exports.WorkspaceListRegistryCommand = class WorkspaceListRegistryCommand this.program = program; } - async execute() { + async execute(options) { const profile = await loadProfile(); _.forEach(profile.registries, (r) => { const logStr = `${r.name} - ${path.posix.join(r.url, r.namespace || '')}`; if (r.name === profile.currentRegistry) { - printSuccess(logStr); + printSuccess(logStr, options); } else { console.log(logStr); } From 404a904a28ba4ddc395cddfbba3acefdd8eaf417 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Thu, 9 Dec 2021 12:23:45 -0500 Subject: [PATCH 633/864] Changed subcommand to registry instead of registries --- bin/cortex-workspaces.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index e4551861..58d71c23 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -86,11 +86,11 @@ program } }); - const registries = program - .command('registries') + const registry = program + .command('registry') .description('Manage image repositories.'); - registries + registry .command('add [name]') .option('--color [on/off]', 'Turn on/off colors', 'on') .option('--url [registry url]', 'Registry URL') @@ -104,7 +104,7 @@ program } }); - registries + registry .command('remove [name]') .option('--color [on/off]', 'Turn on/off colors', 'on') .description('Removes the specified image registry.') @@ -116,7 +116,7 @@ program } }); - registries + registry .command('activate [name]') .option('--color [on/off]', 'Turn on/off colors', 'on') .description('Activates the specified image registry.') @@ -128,7 +128,7 @@ program } }); - registries + registry .command('list') .option('--color [on/off]', 'Turn on/off colors', 'on') .description('Lists all image registries') From 429bdcc8bf65efa0d8844d41f06d63a1c2b0c41c Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Thu, 9 Dec 2021 13:46:07 -0500 Subject: [PATCH 634/864] Image name in skill needs to have the generated tag --- src/commands/workspaces/publish.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 10c1c774..b9c00da5 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -175,6 +175,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (err) { return reject(err); } + action.image = newTag; status.complete(); status.stop(); console.log(`Pushed action ${action.name}`); From f7e9f05ca6310c566f147f2bbc804a264d3b3b3b Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Wed, 5 Jan 2022 10:47:16 -0500 Subject: [PATCH 635/864] Fix to allow for templates in subfolders --- src/commands/workspaces/generate.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index 95803de8..a602b122 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -173,7 +173,8 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { ); } - const sourcePath = _.template(f.path.replace(/^templates\/[A-Za-z0-9- ]+\//, ''), { interpolate: /__([\s\S]+?)__/g })(templateVars); + const relPath = f.path.slice(path.dirname(template.template.path).length); + const sourcePath = _.template(relPath, { interpolate: /__([\s\S]+?)__/g })(templateVars); const targetPath = path.resolve(destinationPath, sourcePath); await mkdir(path.dirname(targetPath), { recursive: true }); From 8036f64d48b29e60f58f2c9cc8b5812c7355bc10 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Fri, 7 Jan 2022 11:29:51 -0500 Subject: [PATCH 636/864] Minor cleanup and improved some messaging --- package-lock.json | 5053 ++++++++++++++++----------- package.json | 38 +- src/commands/workspaces/build.js | 23 +- src/commands/workspaces/generate.js | 2 +- src/commands/workspaces/publish.js | 4 +- 5 files changed, 3128 insertions(+), 1992 deletions(-) diff --git a/package-lock.json b/package-lock.json index 171e3e94..5dc1baf8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,39 +1,39 @@ { "name": "cortex-cli", - "version": "2.0.6", + "version": "2.0.7", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha1-6MYCQ4xKgZV1EkPakDHRYH0kfK0=", "dev": true }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha1-gaAdfWdQRvDZb4JFDZ2VeL39aws=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -41,8 +41,8 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -52,8 +52,8 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "dev": true, "requires": { "color-name": "1.1.3" @@ -61,20 +61,20 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -82,84 +82,42 @@ } } }, + "@babel/runtime-corejs3": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/runtime-corejs3/-/runtime-corejs3-7.16.7.tgz", + "integrity": "sha1-p2J0X+i01homREqRUeZYbTYETd4=", + "requires": { + "core-js-pure": "^3.19.0", + "regenerator-runtime": "^0.13.4" + } + }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha1-M/G4ONvx+SO/pRfgCDYreN278xg=", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", + "debug": "^4.3.2", + "espree": "^9.2.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } } }, "@gar/promisify": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" - }, - "@hapi/address": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", - "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@hapi/formula": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", - "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha1-MKqCXxHUOGcdWFvUTn/VZFNfwhA=" }, "@hapi/hoek": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" }, - "@hapi/joi": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", - "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", - "requires": { - "@hapi/address": "^4.0.1", - "@hapi/formula": "^2.0.0", - "@hapi/hoek": "^9.0.0", - "@hapi/pinpoint": "^2.0.0", - "@hapi/topo": "^5.0.0" - } - }, - "@hapi/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" - }, "@hapi/topo": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", @@ -169,9 +127,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha1-tWIf2zsyMJ0tFldUVsvCd/qPAho=", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", @@ -180,15 +138,38 @@ } }, "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", "dev": true }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, "@npmcli/fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz", - "integrity": "sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==", + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.1.0.tgz", + "integrity": "sha1-vsHRuJwXDUDhtzrWyUOwt159KVE=", "requires": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -196,31 +177,54 @@ }, "@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" } }, + "@sellside/emitter": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sellside/emitter/-/emitter-1.2.1.tgz", + "integrity": "sha1-Ddg5wwzfAQh/TcY2E1A9przfXx4=" + }, + "@sideway/address": { + "version": "4.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.3.tgz", + "integrity": "sha1-2TzOXUXF2uySrXbbSSzC7jxkqyc=", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha1-/hWK7jLmvV3oUES+YVvAhHigoTw=" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha1-z/j/rcNyrSn9P3gneusp5jLMcN8=" + }, "@sindresorhus/is": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", - "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", + "integrity": "sha1-zv9qKKW0hnwt1KG6UT3ieMy+i7E=" }, "@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha1-OALd0hpQqUm2ch3dcto25n5/Gy0=", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "version": "8.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha1-P9wrbLWJNbIb+40WJesTAEhDFuc=", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" @@ -228,8 +232,8 @@ }, "@sinonjs/samsam": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha1-oBF9gjJg8oLAS/9fhwS9wqxpELs=", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -239,27 +243,27 @@ }, "@sinonjs/text-encoding": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU=", "dev": true }, "@szmarczak/http-timer": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha1-tKkUu2LnwnLU5Zif5EQPgSqx2Ac=", "requires": { "defer-to-connect": "^2.0.0" } }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=" }, "@types/cacheable-request": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha1-wyTaAZfeCpiiMSFWU2riYkKf9rk=", "requires": { "@types/http-cache-semantics": "*", "@types/keyv": "*", @@ -267,34 +271,88 @@ "@types/responselike": "*" } }, + "@types/fined": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/fined/-/fined-1.1.3.tgz", + "integrity": "sha1-g/A+jwqNNnPfyvsY/ONXH2JQ4bw=" + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha1-vBtb86qS8lvV3TnzXFc2G9zlsus=", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/http-cache-semantics": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha1-Dqe2FJaQK5WJDcTDoRa2DLja6BI=" + }, + "@types/inquirer": { + "version": "6.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha1-uDsL8wuIuL5yRtQOUdMv6dEOCb4=", + "requires": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "@types/interpret": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/interpret/-/interpret-1.1.1.tgz", + "integrity": "sha1-sb+FsEIOJBS5ic4jdlitINwDcZs=", + "requires": { + "@types/node": "*" + } }, "@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/keyv": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.2.tgz", - "integrity": "sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg==", + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha1-HJquMocuwfINza7omp87qI9GXkE=", + "requires": { + "@types/node": "*" + } + }, + "@types/liftoff": { + "version": "2.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/liftoff/-/liftoff-2.5.1.tgz", + "integrity": "sha1-LrTB+G6dXuhVceVtsAhLJq8SnO0=", "requires": { + "@types/fined": "*", + "@types/interpret": "*", "@types/node": "*" } }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=" + }, "@types/node": { - "version": "14.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", - "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" + "version": "17.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.8.tgz", + "integrity": "sha1-UNaAyKinj+MKvmkGRTshrYqwrXs=" }, "@types/responselike": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha1-JR9P59FU0rrRJavhtCmyOv0mLik=", + "requires": { + "@types/node": "*" + } + }, + "@types/through": { + "version": "0.0.30", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/through/-/through-0.0.30.tgz", + "integrity": "sha1-4OQs536Je9aurW9upirrE1uKOJU=", "requires": { "@types/node": "*" } @@ -307,8 +365,8 @@ }, "JSONStream": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", "dev": true, "requires": { "jsonparse": "^1.2.0", @@ -316,29 +374,29 @@ } }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha1-kJUf3g+PCd+TVJSB5fwUFEW3kc8=", "dev": true }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", "requires": { "debug": "4" } }, "agentkeepalive": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.2.0.tgz", + "integrity": "sha1-YWzpTMtB0aOaRdID2Adv6YcTBi0=", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -347,8 +405,8 @@ }, "aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -356,8 +414,8 @@ }, "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -368,8 +426,8 @@ }, "ansi-align": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha1-DN8S4RGs53OobpofrRIlxDyxmlk=", "requires": { "string-width": "^4.1.0" } @@ -380,6 +438,26 @@ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=" + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -400,31 +478,77 @@ }, "argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" }, "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "version": "3.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k=", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", + "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" + "is-string": "^1.0.7" } }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha1-B+CXXYS7x8SM0YedYJ5oJZjTPhM=", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha1-kI3ILYpAaTD984WY1R50EdGNREY=", "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.19.0" } }, "asn1": { @@ -441,40 +565,204 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "astral-regex": { + "assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", "dev": true }, "async": { "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" + }, "audit-ci": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-4.1.0.tgz", - "integrity": "sha512-UNmf/2diiuqA7HmegyD1n2vIZ+TPMbXO6ud2nb1MOdnoeFuecaBq3fcUo0ZLISWQx2yxgIz76JaEEbRlRZhRpA==", + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-5.1.2.tgz", + "integrity": "sha1-LppsI8hRHY959v3hjQQuvBveyIE=", "dev": true, "requires": { "JSONStream": "^1.3.5", + "array.prototype.flatmap": "^1.2.5", "cross-spawn": "^7.0.3", + "escape-string-regexp": "^4.0.0", "event-stream": "4.0.1", + "jju": "^1.4.0", "readline-transform": "1.0.0", "semver": "^7.0.0", - "yargs": "^15.0.0" + "yargs": "^16.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "dev": true + } } }, "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "cache-base": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha1-yfDNjbZYzF2fPbIIgoxHEp57SBQ=", + "requires": { + "@sellside/emitter": "^1.2.1", + "collection-visit": "^1.0.0", + "get-value": "^2.0.6", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" + } + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" + } + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "mixin-deep": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha1-mmlGvvSjaEAbeElwrjyqqmurAvo=" + } + } }, "base64-js": { "version": "1.5.1", @@ -512,8 +800,8 @@ }, "boxen": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha1-eIy2hvyDwfSG36ikDGj8K4MdK1A=", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -525,53 +813,40 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha1-VoW5XrIJrJwMF3Rnd4ychN9Yupo=" }, "emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" + "strip-ansi": "^6.0.1" } }, "type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=" }, "wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -582,8 +857,8 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -593,7 +868,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -615,18 +889,18 @@ }, "buffer-crc32": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "builtins": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "cacache": { "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha1-3IU4D7L1Vv492kxxm/oOyHWn8es=", "requires": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -646,17 +920,42 @@ "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" + } + } + }, + "cache-base": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-2.0.2.tgz", + "integrity": "sha1-yfDNjbZYzF2fPbIIgoxHEp57SBQ=", + "requires": { + "@sellside/emitter": "^1.2.1", + "collection-visit": "^1.0.0", + "get-value": "^2.0.6", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", + "integrity": "sha1-h75koYuSUjSHXhCpux68pK3Oazg=", + "requires": { + "@types/keyv": "^3.1.1", + "keyv": "^4.0.0" + } }, "cacheable-request": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha1-6g0LiJNkolhUdXMByhKy2nf5HSc=", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -669,8 +968,8 @@ "dependencies": { "get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", "requires": { "pump": "^3.0.0" } @@ -679,8 +978,8 @@ }, "call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -689,15 +988,18 @@ }, "callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", "dev": true }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "camel-case": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } }, "chai": { "version": "4.3.4", @@ -724,17 +1026,42 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, + "change-case": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/change-case/-/change-case-3.1.0.tgz", + "integrity": "sha1-DmEbftyZUt8uhROye0LecmR90X4=", + "requires": { + "camel-case": "^3.0.0", + "constant-case": "^2.0.0", + "dot-case": "^2.1.0", + "header-case": "^1.0.0", + "is-lower-case": "^1.1.0", + "is-upper-case": "^1.1.0", + "lower-case": "^1.1.1", + "lower-case-first": "^1.0.0", + "no-case": "^2.3.2", + "param-case": "^2.1.0", + "pascal-case": "^2.0.0", + "path-case": "^2.1.0", + "sentence-case": "^2.1.0", + "snake-case": "^2.1.0", + "swap-case": "^1.1.0", + "title-case": "^2.1.0", + "upper-case": "^1.1.1", + "upper-case-first": "^1.1.0" + } + }, "chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=" }, "check-error": { "version": "1.0.2", @@ -765,24 +1092,45 @@ } }, "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } }, "clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" }, "cli-boxes": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=" }, "cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", "requires": { "restore-cursor": "^3.1.0" } @@ -798,71 +1146,62 @@ }, "cli-spinners": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha1-rclU6+KBw3pjGb+kAebdJIj/tw0=" }, "cli-table3": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha1-t7G8ZcqOe1zvkSThPcKyHizk+u4=", "requires": { "colors": "^1.1.2", "object-assign": "^4.1.0", "string-width": "^4.2.0" - }, - "dependencies": { - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true - } } }, "cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=" }, "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "7.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } + "wrap-ansi": "^7.0.0" } }, "clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-response": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { "mimic-response": "^1.0.0" + }, + "dependencies": { + "mimic-response": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -880,33 +1219,57 @@ }, "colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", + "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=" }, "combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", - "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==" + "version": "8.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-8.3.0.tgz", + "integrity": "sha1-SDfqGy2me5xhamevuw+v7lZ7ymY=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", + "version": "1.0.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha1-rkDptXzdORVAiigF69OlWFYI3IE=", "dev": true }, + "constant-case": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/constant-case/-/constant-case-2.0.0.tgz", + "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", + "requires": { + "snake-case": "^2.1.0", + "upper-case": "^1.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js-pure": { + "version": "3.20.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-js-pure/-/core-js-pure-3.20.2.tgz", + "integrity": "sha1-XSY1ZfDjTO7szcRCL64+hMprjA8=" + }, "cpu-features": { "version": "0.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.2.tgz", @@ -918,16 +1281,16 @@ }, "cross-fetch": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha1-lyPzo6JHv4uJA586OAqSROj6Lzk=", "requires": { "node-fetch": "2.6.1" } }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", "dev": true, "requires": { "path-key": "^3.1.0", @@ -937,36 +1300,28 @@ }, "cycle": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cycle/-/cycle-1.0.3.tgz", "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.3.tgz", + "integrity": "sha1-BCZuC3CpjURi5uKI44JZITMytmQ=", "requires": { "ms": "2.1.2" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", + "integrity": "sha1-eEk5boDj0euoyy9170kw92Rhyw8=", "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } + "mimic-response": "^2.0.0" } }, "deep-eql": { @@ -979,14 +1334,14 @@ } }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", "dev": true }, "defaults": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -994,8 +1349,8 @@ }, "defer-to-connect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha1-gBa9tBQ+RjK3ejRJxiNid95SBYc=" }, "define-lazy-prop": { "version": "2.0.0", @@ -1004,16 +1359,78 @@ }, "define-properties": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", "dev": true, "requires": { "object-keys": "^1.0.12" } }, + "define-property": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/del/-/del-5.1.0.tgz", + "integrity": "sha1-2Uh8lONnQQ5u/ykl7ljAyEp1s6c=", + "requires": { + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "requires": { + "aggregate-error": "^3.0.0" + } + } + } + }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { @@ -1021,12 +1438,32 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=" + } + } + }, "docker-modem": { "version": "3.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/docker-modem/-/docker-modem-3.0.3.tgz", @@ -1049,17 +1486,25 @@ }, "doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", "dev": true, "requires": { "esutils": "^2.0.2" } }, + "dot-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "requires": { + "no-case": "^2.2.0" + } + }, "duplexer": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", "dev": true }, "duplexer3": { @@ -1068,32 +1513,43 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", "dev": true }, "encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", "optional": true, "requires": { "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", "requires": { "once": "^1.4.0" } }, "enquirer": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", "dev": true, "requires": { "ansi-colors": "^4.1.1" @@ -1101,35 +1557,29 @@ }, "err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=" }, "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "version": "1.19.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha1-1IhXlodpFpWd547aoN9FZicRXsM=", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -1140,8 +1590,8 @@ }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -1157,41 +1607,40 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.3.0.tgz", + "integrity": "sha1-o8JAlQdAPBx/bEKSYRHWy++8PoU=", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.4", + "@humanwhocodes/config-array": "^0.6.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.1.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -1199,246 +1648,66 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", "dev": true }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "glob-parent": { + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", "dev": true, "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" + "is-glob": "^4.0.3" }, "dependencies": { - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "is-glob": { + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "is-extglob": "^2.1.1" } } } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } } } }, "eslint-config-airbnb-base": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", - "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", + "version": "15.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha1-awmt2QrHnC+NcjolgOB/OSWv0jY=", "dev": true, "requires": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", - "object.entries": "^1.1.2" + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } } }, "eslint-import-resolver-node": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", "dev": true, "requires": { "debug": "^3.2.7", @@ -1447,48 +1716,49 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" } }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=", "dev": true, "requires": { "has": "^1.0.3" } }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.21.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha1-tRrcl/NHLmpc9ERNNLyda5A3WR8=", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } }, "eslint-module-utils": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", - "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", + "version": "2.7.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", + "integrity": "sha1-HQqkVdz0EFIzm2PK2oq1/VdXcSk=", "dev": true, "requires": { "debug": "^3.2.7", - "pkg-dir": "^2.0.0" + "find-up": "^2.1.0" }, "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" @@ -1497,32 +1767,30 @@ } }, "eslint-plugin-import": { - "version": "2.24.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", - "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", + "version": "2.25.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha1-pVS19m4I+09tyZIhhm5Xz/+CR2Y=", "dev": true, "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.6.2", - "find-up": "^2.0.0", + "eslint-module-utils": "^2.7.1", "has": "^1.0.3", - "is-core-module": "^2.6.0", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.4", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", + "object.values": "^1.1.5", "resolve": "^1.20.0", "tsconfig-paths": "^3.11.0" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" @@ -1530,181 +1798,134 @@ }, "doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", "dev": true, "requires": { "esutils": "^2.0.2" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "version": "2.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=", "dev": true, "requires": { "has": "^1.0.3" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "is-glob": { + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "is-extglob": "^2.1.1" } }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.21.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha1-tRrcl/NHLmpc9ERNNLyda5A3WR8=", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } }, "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha1-wfbqMKxYMDHyA9Zcc+cjsBKY8VM=", "dev": true, "requires": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha1-7uSs6okYFM2men2IEtlkfdAXmvI=", + "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-9.3.0.tgz", + "integrity": "sha1-wSQNeRg7cqrubM+lqQvJER3whag=", "dev": true, "requires": { - "acorn": "^7.4.0", + "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "eslint-visitor-keys": "^3.1.0" } }, "esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", "dev": true, "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } } }, "esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", "dev": true, "requires": { "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", "dev": true }, "esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", "dev": true }, "event-stream": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", "dev": true, "requires": { "duplexer": "^0.1.1", @@ -1716,57 +1937,187 @@ "through": "^2.3.8" } }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, "external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "define-property": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, "extract-files": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha1-indE8kN/gfXtMlDtnxVQ3pAv5Uo=" }, "eyes": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", "dev": true }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "micromatch": { + "version": "4.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", "dev": true }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.13.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=", + "requires": { + "reusify": "^1.0.4" + } + }, "fd-slicer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "requires": { "pend": "~1.2.0" @@ -1774,45 +2125,81 @@ }, "figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", + "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", "requires": { "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "find-package-json": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fined/-/fined-1.2.0.tgz", + "integrity": "sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=", + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" } }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E=" + }, "flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -1820,46 +2207,55 @@ "dev": true }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha1-KNmWnqkGYbUTQlnzEqtqp5KaxeI=", "dev": true }, + "for-in": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "^1.0.1" + } + }, "form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, "from": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, @@ -1870,8 +2266,8 @@ }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", "requires": { "minipass": "^3.0.0" } @@ -1891,12 +2287,11 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, @@ -1914,8 +2309,8 @@ }, "get-intrinsic": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -1925,8 +2320,23 @@ }, "get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "gh-got": { "version": "9.0.0", @@ -1936,28 +2346,6 @@ "got": "^10.5.7" }, "dependencies": { - "@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha1-zv9qKKW0hnwt1KG6UT3ieMy+i7E=" - }, - "cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha1-h75koYuSUjSHXhCpux68pK3Oazg=", - "requires": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - } - }, - "decompress-response": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha1-eEk5boDj0euoyy9170kw92Rhyw8=", - "requires": { - "mimic-response": "^2.0.0" - } - }, "get-stream": { "version": "5.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", @@ -1988,11 +2376,6 @@ "type-fest": "^0.10.0" } }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" - }, "type-fest": { "version": "0.10.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.10.0.tgz", @@ -2002,8 +2385,8 @@ }, "glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.2.0.tgz", + "integrity": "sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2017,76 +2400,143 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "requires": { "is-glob": "^4.0.1" } }, "global-dirs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha1-cKdv6E6jFas3sfVXbL3n1I73JoY=", "requires": { "ini": "2.0.0" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" }, "dependencies": { "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + "version": "1.3.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", + "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "requires": { + "isexe": "^2.0.0" + } } } }, "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.12.0.tgz", + "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=", "dev": true, "requires": { "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "10.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-10.0.2.tgz", + "integrity": "sha1-J3WT50WsqkZGw6tBEonsR6A5JUM=", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" }, "dependencies": { - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "ignore": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha1-bTusj6f+DUXZ+b57rC/CeVd+NFo=" } } }, "got": { - "version": "11.8.2", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", - "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "version": "11.8.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.3.tgz", + "integrity": "sha1-9JbI/dpdcpqQtJBdKwfb0UgXB3A=", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", + "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", "http2-wrapper": "^1.0.0-beta.5.2", "lowercase-keys": "^2.0.0", "p-cancelable": "^2.0.0", "responselike": "^2.0.0" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha1-Znv8YYaufJ4LRaCJYMVRQ3F24co=" + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha1-WmuGWyxENXvj1evCpGewMnGacAU=" + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha1-yjh2Et234QS9FthaqwDV7PCcZvw=", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=" + } } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "graphql": { "version": "15.6.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", - "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha1-kSW98FdVNSXaJR4Z6W2rPThV3fw=" }, "graphql-request": { "version": "3.6.1", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.6.1.tgz", - "integrity": "sha512-Nm1EasrAQVZllyNTlHDLnLZjlhC6eRWnWP6KH//ytnAL08pjlLkdI2K+s6OV92p45hn5b/kUlLbDwACmRoLwrQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.6.1.tgz", + "integrity": "sha1-aJzOHamQExtAsFZR+fMr/1BqHY4=", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -2095,8 +2545,8 @@ "dependencies": { "form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -2111,19 +2561,52 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha1-nOM0FqrQLb1sj6+oJA1dmABJRaE=", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + } + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "has-bigints": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=", "dev": true }, "has-flag": { @@ -2133,42 +2616,84 @@ }, "has-symbols": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", "dev": true }, "has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=", "dev": true, "requires": { "has-symbols": "^1.0.2" } }, + "has-value": { + "version": "0.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "header-case": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hosted-git-info": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha1-XkJVB+7eT+qEa3Ji8IOEVsQgmWE=", "requires": { "lru-cache": "^6.0.0" } }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" }, "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", "requires": { "@tootallnate/once": "1", "agent-base": "6", @@ -2177,8 +2702,8 @@ }, "http2-wrapper": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha1-uPVeDB8l1OvQizsMLAeflZCACz0=", "requires": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -2186,8 +2711,8 @@ }, "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", "requires": { "agent-base": "6", "debug": "4" @@ -2195,19 +2720,24 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "^2.0.0" } }, + "husky": { + "version": "7.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/husky/-/husky-7.0.4.tgz", + "integrity": "sha1-JCBIJF3EnI+xvwzHz7mN1yJTFTU=", + "dev": true + }, "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, + "version": "0.4.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -2217,14 +2747,14 @@ }, "ignore": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2233,18 +2763,18 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" }, "infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" }, "inflight": { "version": "1.0.6", @@ -2260,6 +2790,11 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ini": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", + "integrity": "sha1-5f1Vbs3VcmvpePoQAYYurLCpS8U=" + }, "inquirer": { "version": "8.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-8.2.0.tgz", @@ -2281,67 +2816,25 @@ "through": "^2.3.6" }, "dependencies": { - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ora": { - "version": "5.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", - "integrity": "sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, "rxjs": { - "version": "7.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha1-oSpE1+6/AW9f8kQbh/KMmlHOvGg=", - "requires": { - "tslib": "~2.1.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "version": "7.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.1.tgz", + "integrity": "sha1-r3PfNDy8qzdigZf0PqDIJW9UsVc=", "requires": { - "ansi-regex": "^5.0.1" + "tslib": "^2.1.0" } }, "tslib": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha1-2mCGDxwuyqVwOrfTm8Bba/mIuXo=" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=" + "version": "2.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=" } } }, "internal-slot": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", "dev": true, "requires": { "get-intrinsic": "^1.1.0", @@ -2349,21 +2842,47 @@ "side-channel": "^1.0.4" } }, - "ip": { + "interpret": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=" + }, + "ip": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "is-absolute": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, "is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=", "dev": true, "requires": { "has-bigints": "^1.0.1" @@ -2380,68 +2899,110 @@ }, "is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=", "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, "is-callable": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=", "dev": true }, "is-core-module": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", - "dev": true, "requires": { "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=", "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + } + } + }, "is-docker": { "version": "2.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=" }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha1-mg/UB5ScMPhutpWe8beZTtC3tSA=", "requires": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -2454,34 +3015,46 @@ }, "is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "requires": { + "lower-case": "^1.1.0" + } + }, "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha1-e/bwOigAO4s5Zd46wm9mTXZfMVA=", "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=", "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=" + }, "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=" }, "is-plain-obj": { "version": "2.1.0", @@ -2489,20 +3062,42 @@ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "requires": { + "isobject": "^3.0.1" + } + }, "is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=", "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha1-l7DIX72stZycRG/mU7gs8rW3z+Y=", + "dev": true + }, "is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -2510,18 +3105,48 @@ }, "is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", "dev": true, "requires": { "has-symbols": "^1.0.2" } }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "requires": { + "upper-case": "^1.1.0" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha1-lSnzg6kzggXol2XgOS78LxAPBvI=", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" + }, "is-wsl": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-wsl/-/is-wsl-2.2.0.tgz", @@ -2530,15 +3155,29 @@ "is-docker": "^2.0.0" } }, + "isarray": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "4.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha1-XTS5SGW9SUZjPsx4oCb8dsWxH88=" + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/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", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istextorbinary": { @@ -2550,63 +3189,75 @@ "textextensions": "^5.14.0" } }, + "jju": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true + }, "jmespath": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, + "joi": { + "version": "17.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-17.5.0.tgz", + "integrity": "sha1-fmbQAEtQRdlxz0FqVfth0zrG4BE=", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, "jose-node-cjs-runtime": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-3.18.0.tgz", - "integrity": "sha512-8KLgEQlf1rhxYaqMJyqEpTFEYJxjAtwPjgP34+1X0O8YSXxx5TNxT0Ezd4glmFZ2RXEpwdCVa2YcxOpGO1/8HQ==" + "version": "4.3.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.3.7.tgz", + "integrity": "sha1-ZF/8jMXtMIQH3IHEfYmCXqt/t/A=" }, "js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", "dev": true }, "js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", "requires": { "argparse": "^2.0.1" } }, "json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=" }, "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json5": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", "dev": true, "requires": { "minimist": "^1.2.0" @@ -2614,23 +3265,28 @@ }, "jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, "just-extend": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha1-715Ymvth5dZrJOynSUCaiTmox0Q=", "dev": true }, "keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "version": "4.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.0.4.tgz", + "integrity": "sha1-8ECyNuorBu0V7Yb774QH4aHI43Y=", "requires": { "json-buffer": "3.0.1" } }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" + }, "lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", @@ -2638,68 +3294,73 @@ "dev": true }, "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", + "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "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, + "liftoff": { + "version": "2.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } } }, "lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=" }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", "dev": true }, "lodash.set": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.set/-/lodash.set-4.3.2.tgz", "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, "lodash.truncate": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, @@ -2712,23 +3373,36 @@ "is-unicode-supported": "^0.1.0" } }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "requires": { + "lower-case": "^1.1.2" + } + }, "lowercase-keys": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=" }, "lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", "requires": { "yallist": "^4.0.0" } }, "make-fetch-happen": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha1-UwhaCeeXFDPmdl95cb9j9OBcuWg=", "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -2748,34 +3422,176 @@ "ssri": "^8.0.0" } }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=", + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, "map-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.51.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha1-2f9iRRhZsYNC2WCFDcPPt35j+ww=" }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.34", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha1-WnEvnsFQNRGpRYA2QPr+CdN5PCQ=", "requires": { - "mime-db": "1.49.0" + "mime-db": "1.51.0" } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" }, "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" }, "minimatch": { "version": "3.0.4", @@ -2788,29 +3604,28 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha1-O4FQqmiKcRoVIa9eh3nB07tPRe4=", "requires": { "yallist": "^4.0.0" } }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", "requires": { "minipass": "^3.0.0" } }, "minipass-fetch": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha1-114AkdqsGw/9fp1BYp+v99DB8bY=", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -2820,16 +3635,16 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", "requires": { "minipass": "^3.0.0" } }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" @@ -2837,33 +3652,38 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", "requires": { "minipass": "^3.0.0" } }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", "requires": { "minipass": "^3.0.0" } }, "minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, + "mixin-deep": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha1-mmlGvvSjaEAbeElwrjyqqmurAvo=" + }, "mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" }, "mkdirp-classic": { "version": "0.5.3", @@ -2919,6 +3739,23 @@ "wrap-ansi": "^7.0.0" } }, + "debug": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", + "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } + } + }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -3050,22 +3887,33 @@ "debug": "4.3.2", "lazy-ass": "1.6.0", "ramda": "0.27.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", + "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, "moment": { "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.1.tgz", + "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" }, "mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=" }, "nan": { "version": "2.15.0", @@ -3079,27 +3927,63 @@ "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "negotiator": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "neo-async": { + "version": "2.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" }, "nise": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", - "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.0.tgz", + "integrity": "sha1-cT7z7ROCUtrvIOwDWrYreii+ZFw=", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0", @@ -3107,12 +3991,31 @@ "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha1-JSTq5wxJEO3M+ZsvTm78WJSv97U=", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + } + } + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "requires": { + "lower-case": "^1.1.1" } }, "nock": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", - "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", + "version": "13.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.1.tgz", + "integrity": "sha1-/PW9ubufBVSoTCXTMzFmwP/YCFg=", "dev": true, "requires": { "debug": "^4.1.0", @@ -3123,32 +4026,54 @@ }, "node-fetch": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=" + }, + "node-plop": { + "version": "0.26.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-plop/-/node-plop-0.26.3.tgz", + "integrity": "sha1-1vp+cTk8i5QFE7qMSGj4qqbeqd8=", + "requires": { + "@babel/runtime-corejs3": "^7.9.2", + "@types/inquirer": "^6.5.0", + "change-case": "^3.1.0", + "del": "^5.1.0", + "globby": "^10.0.1", + "handlebars": "^4.4.3", + "inquirer": "^7.1.0", + "isbinaryfile": "^4.0.2", + "lodash.get": "^4.4.2", + "mkdirp": "^0.5.1", + "resolve": "^1.12.0" }, "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 + "inquirer": { + "version": "7.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "mkdirp": { + "version": "0.5.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "requires": { + "minimist": "^1.2.5" + } } } }, @@ -3160,13 +4085,13 @@ }, "normalize-url": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=" }, "npm-package-arg": { "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha1-M2my1f6P3GdLqn8XhlFN3BVGbkQ=", "requires": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", @@ -3174,9 +4099,9 @@ } }, "npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "version": "12.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", + "integrity": "sha1-U9jJT3w3KTcHsjcohkcQt206PKU=", "requires": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", @@ -3188,25 +4113,61 @@ }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "object-copy": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha1-biwSDoaP0f0Yy08YwxdB0NbndvA=", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } }, "object.assign": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -3215,26 +4176,54 @@ "object-keys": "^1.1.1" } }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "version": "1.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha1-4azdF8TeLNltWghIfPuduE2IGGE=", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" } }, "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "version": "1.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw=", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "es-abstract": "^1.19.1" } }, "once": { @@ -3247,8 +4236,8 @@ }, "onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", "requires": { "mimic-fn": "^2.1.0" } @@ -3264,28 +4253,44 @@ } }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", + "integrity": "sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha1-qrf71BZYL6MqPbSYWcEiSHxe0s8=" }, "p-event": { "version": "4.2.0", @@ -3301,27 +4306,27 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" } }, "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==", + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^1.1.0" } }, "p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", "requires": { "aggregate-error": "^3.0.0" } @@ -3335,28 +4340,63 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "param-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + } + }, "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", "dev": true, "requires": { "callsites": "^3.0.0" } }, - "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, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "requires": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "requires": { + "no-case": "^2.2.0" } }, "path-exists": { @@ -3372,20 +4412,32 @@ }, "path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", "dev": true }, "path-parse": { "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 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, "path-to-regexp": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=", "dev": true, "requires": { "isarray": "0.0.1" @@ -3393,21 +4445,12 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true } } }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, "pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -3416,7 +4459,7 @@ }, "pause-stream": { "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { @@ -3425,145 +4468,213 @@ }, "pend": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "picomatch": { "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": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "plop": { + "version": "2.7.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/plop/-/plop-2.7.6.tgz", + "integrity": "sha1-H6U2DNWwTpkyzmd7tr1EdQ2Xrmc=", + "requires": { + "@types/liftoff": "^2.5.1", + "chalk": "^1.1.3", + "interpret": "^1.2.0", + "liftoff": "^2.5.0", + "minimist": "^1.2.5", + "node-plop": "^0.26.3", + "ora": "^3.4.0", + "v8flags": "^2.0.10" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "p-try": "^1.0.0" + "restore-cursor": "^2.0.0" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, + "color-convert": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "requires": { - "p-limit": "^1.1.0" + "color-name": "1.1.3" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "color-name": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "path-exists": { + "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", "requires": { - "locate-path": "^2.0.0" + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "mimic-fn": "^1.0.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, + "ora": { + "version": "3.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-3.4.0.tgz", + "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", "requires": { - "p-try": "^1.0.0" + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "p-locate": { + "restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "p-limit": "^1.1.0" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "supports-color": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", "dev": true }, "progress": { @@ -3574,13 +4685,13 @@ }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=", "requires": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -3588,8 +4699,8 @@ }, "prompt": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.0.tgz", - "integrity": "sha512-iGerYRpRUg5ZyC+FJ/25G5PUKuWAGRjW1uOlhX7Pi3O5YygdK6R+KEaBjRbHSkU5vfS5PZCltSPZdDtUYwRCZA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompt/-/prompt-1.2.0.tgz", + "integrity": "sha1-XY8dkBF2a6wHq95RDb9DONh7TwI=", "requires": { "async": "~0.9.0", "colors": "^1.1.2", @@ -3600,14 +4711,14 @@ }, "propagate": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha1-QM3tqxgIXHkjNOZPCsFyVtOPmkU=", "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -3615,19 +4726,24 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", "dev": true }, "querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=" }, "quick-lru": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=" }, "ramda": { "version": "0.27.1", @@ -3646,84 +4762,12 @@ }, "read": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read/-/read-1.0.7.tgz", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "requires": { "mute-stream": "~0.0.4" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", @@ -3745,16 +4789,67 @@ }, "readline-transform": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha1-MVf5dCisrsDwWlwf8sMSD05tkEs=", "dev": true }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", "dev": true }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3763,26 +4858,19 @@ }, "require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", "dev": true }, "requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, "requires": { "is-core-module": "^2.1.0", "path-parse": "^1.0.6" @@ -3790,454 +4878,267 @@ }, "resolve-alpn": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha1-t629rDVGqq7CC0Xn2CZZJwcnJvk=" + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } }, "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "responselike": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha1-JjkbzDF091D5p56sxAoSpcQtdyM=", "requires": { "lowercase-keys": "^2.0.0" } }, "restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" + }, "retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, + "reusify": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=" + }, "revalidator": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/revalidator/-/revalidator-0.1.8.tgz", "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" }, "rewire": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-6.0.0.tgz", + "integrity": "sha1-VPT82k35ko0orx61SjGLxRypqpk=", "dev": true, "requires": { - "eslint": "^6.8.0" + "eslint": "^7.32.0" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "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==", + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", "dev": true, "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" } }, - "ansi-regex": { - "version": "5.0.0", - "resolved": false, - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, + "acorn": { + "version": "7.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "dev": true + }, "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", "dev": true }, - "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" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "7.32.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } } }, "eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", "dev": true, "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", "dev": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "espree": { + "version": "7.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", + "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true + } } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "estraverse": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", "dev": true, "requires": { - "isexe": "^2.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } } } }, "rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", "requires": { "glob": "^7.1.3" } }, "run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=" + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", + "requires": { + "queue-microtask": "^1.2.2" + } }, "rxjs": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, "requires": { "tslib": "^1.9.0" } @@ -4247,19 +5148,36 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" }, "semver": { "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.5.tgz", + "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", "requires": { "lru-cache": "^6.0.0" } }, + "sentence-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "requires": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, "serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -4269,16 +5187,21 @@ "randombytes": "^2.1.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "set-value": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", "dev": true, "requires": { "shebang-regex": "^3.0.0" @@ -4286,14 +5209,14 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", "dev": true }, "side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -4302,121 +5225,200 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha1-JOYwxLDwP+pEaivSmeYrSmyo0K8=" }, "sinon": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "version": "12.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-12.0.1.tgz", + "integrity": "sha1-Mx7vhymHUuG4imYraZ+Y5APIWek=", "dev": true, "requires": { "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/fake-timers": "^8.1.0", "@sinonjs/samsam": "^6.0.2", "diff": "^5.0.0", "nise": "^5.1.0", "supports-color": "^7.2.0" } }, + "slash": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-3.0.0.tgz", + "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=" + }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=" + }, + "snake-case": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "requires": { + "no-case": "^2.2.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, + "debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "requires": { - "color-convert": "^1.9.0" + "ms": "2.0.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "color-name": "1.1.3" + "is-descriptor": "^0.1.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "ms": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, "socks": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.1.tgz", + "integrity": "sha1-mJ5lNKB88zfesbHJSqpEKWUg0w4=", "requires": { "ip": "^1.1.5", "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz", - "integrity": "sha512-FIgZbQWlnjVEQvMkylz64/rUggGtrKstPnx8OZyYFG0tAFR8CSBtpXxSwbFLHyeXFn/cunFL7MpuSOvDSOPo9g==", + "version": "6.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", + "integrity": "sha1-5mTo8ar04fs9+UXwnj2U+RETf4c=", "requires": { "agent-base": "^6.0.2", "debug": "^4.3.1", "socks": "^2.6.1" } }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true + "source-map": { + "version": "0.5.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "spdx-license-ids": { - "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 + "source-map-url": { + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=" }, "split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", + "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", "dev": true, "requires": { "through": "2" @@ -4427,9 +5429,36 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-ca/-/split-ca-1.0.1.tgz", "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" }, + "split-string": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, @@ -4446,20 +5475,39 @@ }, "ssri": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", "requires": { "minipass": "^3.1.1" } }, "stack-trace": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "stream-combiner": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "dev": true, "requires": { @@ -4504,8 +5552,8 @@ }, "string.prototype.trimend": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -4514,8 +5562,8 @@ }, "string.prototype.trimstart": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -4530,9 +5578,17 @@ "safe-buffer": "~5.2.0" } }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, @@ -4544,58 +5600,75 @@ }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", "requires": { "has-flag": "^4.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha1-btpL00SjyUrqN21MwxvHcxEDngk=", + "dev": true + }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.8.0.tgz", + "integrity": "sha1-h+KPFPpDIcM3e6KG8Ht5soGjs8o=", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "ajv": { + "version": "8.8.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha1-AbT+8gB6KL918Lf8AJ9iZ53kq7s=", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=", "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } } } }, "tar": { "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", + "integrity": "sha1-Z2CjjwA6+hsv/Q/+npq70Oqz1iE=", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -4603,6 +5676,13 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" + } } }, "tar-fs": { @@ -4614,13 +5694,6 @@ "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.0.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" - } } }, "tar-stream": { @@ -4637,7 +5710,7 @@ }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, @@ -4648,13 +5721,22 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, + "title-case": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", "requires": { "os-tmpdir": "~1.0.2" } @@ -4664,11 +5746,40 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-readable-stream/-/to-readable-stream-2.1.0.tgz", "integrity": "sha1-gogDFhIb6mYs3CJq2zCt21DLBug=" }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -4679,9 +5790,9 @@ "integrity": "sha1-TjHGpGOszQlDh58wZnxP2v9BG7g=" }, "tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "version": "3.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha1-GXaaym7o9qGjQeOMj6Rd2fsYiZs=", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -4693,8 +5804,7 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tweetnacl": { "version": "0.14.5", @@ -4702,12 +5812,12 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-detect": { @@ -4717,15 +5827,21 @@ "dev": true }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", "dev": true }, + "uglify-js": { + "version": "3.14.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uglify-js/-/uglify-js-3.14.5.tgz", + "integrity": "sha1-zau31JVCMdgMtKknZUxGVeUfSFk=", + "optional": true + }, "unbox-primitive": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -4734,45 +5850,98 @@ "which-boxed-primitive": "^1.0.2" } }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, "unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", "requires": { "imurmurhash": "^0.1.4" } }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "requires": { + "upper-case": "^1.1.1" + } + }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", "dev": true, "requires": { "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url-join": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=" }, "url-parse": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, + "use": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -4784,24 +5953,22 @@ "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=" }, "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, + "v8flags": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "user-home": "^1.1.1" } }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "^1.0.3" @@ -4809,7 +5976,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -4826,8 +5993,8 @@ }, "which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", "dev": true, "requires": { "is-bigint": "^1.0.1", @@ -4837,24 +6004,18 @@ "is-symbol": "^1.0.3" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, "widest-line": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", "requires": { "string-width": "^4.0.0" } }, "winston": { "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/winston/-/winston-2.4.5.tgz", + "integrity": "sha1-8uQx1WFUxOp2VUX8EAO9NAyVtZo=", "requires": { "async": "~1.0.0", "colors": "1.0.x", @@ -4866,22 +6027,27 @@ "dependencies": { "async": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-1.0.0.tgz", "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" }, "colors": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" } } }, "word-wrap": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", "dev": true }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, "workerpool": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", @@ -4889,31 +6055,14 @@ "dev": true }, "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, "wrappy": { @@ -4921,65 +6070,37 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "version": "5.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", "dev": true }, "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" }, "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "16.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", "dev": true, "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "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" - } + "version": "20.2.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=", + "dev": true }, "yargs-unparser": { "version": "2.0.0", @@ -5009,7 +6130,7 @@ }, "yauzl": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "requires": { "buffer-crc32": "~0.2.3", diff --git a/package.json b/package.json index aaa98710..159bd6bd 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,11 @@ { "name": "cortex-cli", - "version": "2.0.6", + "version": "2.0.7", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "scripts": { - "preinstall": "npx check-node-version -p --package", + "preinstall": "npx npm-force-resolutions && npx check-node-version -p --package", + "prepare": "husky install", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", "test": "NODE_ENV=test mocha --exit" }, @@ -30,33 +31,35 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@hapi/joi": "17.1.1", "boxen": "5.1.2", + "cache-base": "^2.0.0", "chalk": "4.1.2", "cli-progress": "3.9.1", "cli-table3": "0.6.0", - "commander": "8.2.0", - "debug": "4.3.2", "dockerode": "3.3.1", + "commander": "8.3.0", + "debug": "4.3.3", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", "gh-got": "9.0.0", "glob": "7.2.0", - "got": "11.8.2", + "got": "11.8.3", "graphql": "15.6.1", "graphql-request": "3.6.1", "inquirer": "8.2.0", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.15.0", - "jose-node-cjs-runtime": "3.18.0", + "joi": "17.5.0", + "jose-node-cjs-runtime": "4.3.7", "js-yaml": "4.1.0", "lodash": "4.17.21", "minimatch": "3.0.4", "moment": "2.29.1", - "npm-registry-fetch": "11.0.0", + "npm-registry-fetch": "12.0.0", "open": "8.4.0", + "mixin-deep": "^2.0.1", "prompt": "1.2.0", "semver": "7.3.5", "treeify": "1.1.0", @@ -66,16 +69,21 @@ "yauzl": "2.10.0" }, "devDependencies": { - "audit-ci": "4.1.0", + "audit-ci": "5.1.2", "chai": "4.3.4", "chai-as-promised": "7.1.1", - "eslint": "7.32.0", - "eslint-config-airbnb-base": "14.2.1", - "eslint-plugin-import": "2.24.2", + "eslint": "8.3.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.25.3", + "husky": "7.0.4", "mocha": "9.1.3", "mocked-env": "1.3.5", - "nock": "13.1.4", - "rewire": "5.0.0", - "sinon": "11.1.2" + "nock": "13.2.1", + "rewire": "6.0.0", + "sinon": "12.0.1" + }, + "resolutions": { + "mixin-deep": "2.0.1", + "cache-base": "2.0.2" } } diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index 29d850fb..a3775fd8 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -20,11 +20,12 @@ const _ = { const { getSkillInfo, buildImageTag } = require('./workspace-utils'); class DockerBuildProgressTracker { - constructor() { + constructor(data) { this.layers = { download: {}, extract: {} }; this.downloaded = 0; this.extracted = 0; this.streamData = ''; + this.eventData = data || ''; this.bars = new cliProgress.MultiBar({ clearOnComplete: false, @@ -32,6 +33,7 @@ class DockerBuildProgressTracker { format: (opts, params, payload) => this.statusFormatter(opts, params, payload), }, cliProgress.Presets.shades_grey); + this.sectionBar = this.bars.create(0, 0, { type: 'section' }); this.dlBar = this.bars.create(100, 0, { type: 'download' }); this.exBar = this.bars.create(100, 0, { type: 'extract' }); this.statusBar = this.bars.create(0, 0, { type: 'status' }); @@ -49,14 +51,17 @@ class DockerBuildProgressTracker { return 'Extracting: Complete'; } return `Extracting: [${BarFormat(params.progress, barOpts)}]`; - case 'status': - return `Status: ${this.streamData.trim()}`; - default: + case 'status': + return `Status: ${this.streamData.trim()}`; + case 'section': + return `Building: ${this.eventData || ''}`; + default: return ''; } } updateProgress() { + this.sectionBar.update(null); this.dlBar.update(this.downloaded); this.exBar.update(this.extracted); this.statusBar.update(null); @@ -72,13 +77,17 @@ class DockerBuildProgressTracker { this.updateProgress(); } - processEvent(evt) { + processEvent(evt, data) { const { progressDetail } = evt; let { status, id } = evt; status = status || ''; id = id || ''; + if (data) { + this.eventData = data; + } + if (evt.stream) { const newStr = evt.stream.replace(/\n|\r/g, ''); if (newStr) { @@ -194,8 +203,8 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { const skillInfo = await getSkillInfo(target); if (skillInfo.length > 0) { - console.log('Building...'); - const status = new DockerBuildProgressTracker(); + const skillNameList = _.map(skillInfo, 'skill.name'); + const status = new DockerBuildProgressTracker(skillNameList.join(', ')); await Promise.all(_.map(skillInfo, (info) => { const actions = info.skill.actions ? info.skill.actions : []; return Promise.all(_.map(actions, (action) => this.buildAction( diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index a602b122..4fecff06 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -175,7 +175,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { const relPath = f.path.slice(path.dirname(template.template.path).length); const sourcePath = _.template(relPath, { interpolate: /__([\s\S]+?)__/g })(templateVars); - const targetPath = path.resolve(destinationPath, sourcePath); + const targetPath = path.join(destinationPath, sourcePath); await mkdir(path.dirname(targetPath), { recursive: true }); await writeFile(targetPath, buf); diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index b9c00da5..9c22a9cc 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -168,7 +168,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { authconfig: registryAuth, }); - return new Promise((resolve, reject) => { + await new Promise((resolve, reject) => { this.docker.modem.followProgress( imgPush, (err) => { @@ -178,7 +178,6 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { action.image = newTag; status.complete(); status.stop(); - console.log(`Pushed action ${action.name}`); return resolve(true); }, (evt) => { @@ -332,7 +331,6 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (_.every(actionsPublished)) { this.catalogClient.saveSkill(profile.project, profile.token, info.skill); - console.log(`Published skill ${info.skill.name}`); return true; } From 5d36ac9def7c1d3403744fb0b5e2e0c2df0cdcc8 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Fri, 7 Jan 2022 13:00:35 -0500 Subject: [PATCH 637/864] Fixes to tests so they work under Windows. All you Apple fanboys can suck it. --- package-lock.json | 1867 +-------------------------------------- package.json | 3 +- test/cortex/config | 32 +- test/uploadDirectory.js | 15 +- 4 files changed, 68 insertions(+), 1849 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5dc1baf8..a09ebe38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,15 +82,6 @@ } } }, - "@babel/runtime-corejs3": { - "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/runtime-corejs3/-/runtime-corejs3-7.16.7.tgz", - "integrity": "sha1-p2J0X+i01homREqRUeZYbTYETd4=", - "requires": { - "core-js-pure": "^3.19.0", - "regenerator-runtime": "^0.13.4" - } - }, "@eslint/eslintrc": { "version": "1.0.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", @@ -143,29 +134,6 @@ "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", "dev": true }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, "@npmcli/fs": { "version": "1.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.1.0.tgz", @@ -271,42 +239,11 @@ "@types/responselike": "*" } }, - "@types/fined": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/fined/-/fined-1.1.3.tgz", - "integrity": "sha1-g/A+jwqNNnPfyvsY/ONXH2JQ4bw=" - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha1-vBtb86qS8lvV3TnzXFc2G9zlsus=", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha1-Dqe2FJaQK5WJDcTDoRa2DLja6BI=" }, - "@types/inquirer": { - "version": "6.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha1-uDsL8wuIuL5yRtQOUdMv6dEOCb4=", - "requires": { - "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "@types/interpret": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/interpret/-/interpret-1.1.1.tgz", - "integrity": "sha1-sb+FsEIOJBS5ic4jdlitINwDcZs=", - "requires": { - "@types/node": "*" - } - }, "@types/json5": { "version": "0.0.29", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", @@ -321,21 +258,6 @@ "@types/node": "*" } }, - "@types/liftoff": { - "version": "2.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/liftoff/-/liftoff-2.5.1.tgz", - "integrity": "sha1-LrTB+G6dXuhVceVtsAhLJq8SnO0=", - "requires": { - "@types/fined": "*", - "@types/interpret": "*", - "@types/node": "*" - } - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha1-EAHMXmo3BLg8I2An538vWOoBD0A=" - }, "@types/node": { "version": "17.0.8", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.8.tgz", @@ -349,14 +271,6 @@ "@types/node": "*" } }, - "@types/through": { - "version": "0.0.30", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/through/-/through-0.0.30.tgz", - "integrity": "sha1-4OQs536Je9aurW9upirrE1uKOJU=", - "requires": { - "@types/node": "*" - } - }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -481,26 +395,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=" }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" - }, "arr-union": { "version": "3.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, - "array-each": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" - }, "array-includes": { "version": "3.1.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.4.tgz", @@ -514,21 +413,6 @@ "is-string": "^1.0.7" } }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=" - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -586,11 +470,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "atob": { - "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/atob/-/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" - }, "audit-ci": { "version": "5.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-5.1.2.tgz", @@ -621,149 +500,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" }, - "base": { - "version": "0.11.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base/-/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "cache-base": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha1-yfDNjbZYzF2fPbIIgoxHEp57SBQ=", - "requires": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "define-property": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" - } - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" - } - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" - } - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - }, - "mixin-deep": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha1-mmlGvvSjaEAbeElwrjyqqmurAvo=" - } - } - }, "base64-js": { "version": "1.5.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base64-js/-/base64-js-1.5.1.tgz", @@ -868,6 +604,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -992,15 +729,6 @@ "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", "dev": true }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, "chai": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", @@ -1033,31 +761,6 @@ "supports-color": "^7.1.0" } }, - "change-case": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha1-DmEbftyZUt8uhROye0LecmR90X4=", - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, "chardet": { "version": "0.7.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", @@ -1096,27 +799,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "clean-stack": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1235,11 +917,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-8.3.0.tgz", "integrity": "sha1-SDfqGy2me5xhamevuw+v7lZ7ymY=" }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" - }, "concat-map": { "version": "0.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", @@ -1251,25 +928,6 @@ "integrity": "sha1-rkDptXzdORVAiigF69OlWFYI3IE=", "dev": true }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js-pure": { - "version": "3.20.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-js-pure/-/core-js-pure-3.20.2.tgz", - "integrity": "sha1-XSY1ZfDjTO7szcRCL64+hMprjA8=" - }, "cpu-features": { "version": "0.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.2.tgz", @@ -1279,6 +937,15 @@ "nan": "^2.14.1" } }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, "cross-fetch": { "version": "3.1.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.4.tgz", @@ -1311,11 +978,6 @@ "ms": "2.1.2" } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, "decompress-response": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", @@ -1366,68 +1028,6 @@ "object-keys": "^1.0.12" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/del/-/del-5.1.0.tgz", - "integrity": "sha1-2Uh8lONnQQ5u/ykl7ljAyEp1s6c=", - "requires": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", - "requires": { - "aggregate-error": "^3.0.0" - } - } - } - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1438,32 +1038,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", - "requires": { - "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=" - } - } - }, "docker-modem": { "version": "3.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/docker-modem/-/docker-modem-3.0.3.tgz", @@ -1493,14 +1073,6 @@ "esutils": "^2.0.2" } }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "requires": { - "no-case": "^2.2.0" - } - }, "duplexer": { "version": "0.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", @@ -1937,56 +1509,6 @@ "through": "^2.3.8" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" - }, "extend-shallow": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -2005,57 +1527,6 @@ "tmp": "^0.0.33" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "extract-files": { "version": "9.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", @@ -2072,29 +1543,6 @@ "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", "dev": true }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "micromatch": { - "version": "4.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - } - } - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2107,14 +1555,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fastq": { - "version": "1.13.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=", - "requires": { - "reusify": "^1.0.4" - } - }, "fd-slicer": { "version": "1.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -2144,6 +1584,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -2162,44 +1603,6 @@ "locate-path": "^2.0.0" } }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fined/-/fined-1.2.0.tgz", - "integrity": "sha1-0AvszxqitHXRbUI7Aji3E6LEo3s=", - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha1-595vEnnd2cqarIpZcdYYYGs6q0E=" - }, "flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -2222,19 +1625,6 @@ "integrity": "sha1-KNmWnqkGYbUTQlnzEqtqp5KaxeI=", "dev": true }, - "for-in": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" - } - }, "form-data": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", @@ -2245,14 +1635,6 @@ "mime-types": "^2.1.12" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, "from": { "version": "0.1.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", @@ -2287,7 +1669,8 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "functional-red-black-tree": { "version": "1.0.1", @@ -2400,6 +1783,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -2412,43 +1796,6 @@ "ini": "2.0.0" } }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", - "integrity": "sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "globals": { "version": "13.12.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.12.0.tgz", @@ -2458,28 +1805,6 @@ "type-fest": "^0.20.2" } }, - "globby": { - "version": "10.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-10.0.2.tgz", - "integrity": "sha1-J3WT50WsqkZGw6tBEonsR6A5JUM=", - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha1-bTusj6f+DUXZ+b57rC/CeVd+NFo=" - } - } - }, "got": { "version": "11.8.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.3.tgz", @@ -2523,11 +1848,6 @@ } } }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, "graphql": { "version": "15.6.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.6.1.tgz", @@ -2561,48 +1881,15 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha1-nOM0FqrQLb1sj6+oJA1dmABJRaE=", - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { "function-bind": "^1.1.1" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, "has-bigints": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.1.tgz", @@ -2660,23 +1947,6 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "header-case": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", - "requires": { - "parse-passwd": "^1.0.0" - } - }, "hosted-git-info": { "version": "4.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.0.2.tgz", @@ -2842,43 +2112,11 @@ "side-channel": "^1.0.4" } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=" - }, "ip": { "version": "1.1.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-bigint": { "version": "1.0.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", @@ -2907,43 +2145,12 @@ "has-tostringtag": "^1.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" - }, "is-callable": { "version": "1.2.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=", "dev": true }, - "is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-date-object": { "version": "1.0.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", @@ -2953,23 +2160,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" - } - } - }, "is-docker": { "version": "2.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-docker/-/is-docker-2.2.1.tgz", @@ -2983,7 +2173,8 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2995,6 +2186,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -3018,14 +2210,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "requires": { - "lower-case": "^1.1.0" - } - }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -3035,7 +2219,8 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-number-object": { "version": "1.0.6", @@ -3046,11 +2231,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=" - }, "is-path-inside": { "version": "3.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -3080,14 +2260,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", - "requires": { - "is-unc-path": "^1.0.0" - } - }, "is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", @@ -3112,27 +2284,11 @@ "has-symbols": "^1.0.2" } }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "requires": { - "upper-case": "^1.1.0" - } - }, "is-weakref": { "version": "1.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-weakref/-/is-weakref-1.0.2.tgz", @@ -3142,11 +2298,6 @@ "call-bind": "^1.0.2" } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" - }, "is-wsl": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-wsl/-/is-wsl-2.2.0.tgz", @@ -3160,15 +2311,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha1-XTS5SGW9SUZjPsx4oCb8dsWxH88=" - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "isobject": { "version": "3.0.1", @@ -3282,11 +2429,6 @@ "json-buffer": "3.0.1" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=" - }, "lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", @@ -3303,21 +2445,6 @@ "type-check": "~0.4.0" } }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, "locate-path": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", @@ -3344,7 +2471,8 @@ "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true }, "lodash.merge": { "version": "4.6.2", @@ -3373,19 +2501,6 @@ "is-unicode-supported": "^0.1.0" } }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "requires": { - "lower-case": "^1.1.2" - } - }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -3422,19 +2537,6 @@ "ssri": "^8.0.0" } }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha1-KbM/MSqo9UfEpeSQ9Wr87JkTOtY=", - "requires": { - "kind-of": "^6.0.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, "map-stream": { "version": "0.0.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", @@ -3449,127 +2551,6 @@ "object-visit": "^1.0.0" } }, - "merge2": { - "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, "mime-db": { "version": "1.51.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.51.0.tgz", @@ -3604,7 +2585,8 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "minipass": { "version": "3.1.6", @@ -3927,43 +2909,6 @@ "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3975,11 +2920,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=" - }, "nise": { "version": "5.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.0.tgz", @@ -4004,14 +2944,6 @@ } } }, - "no-case": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", - "requires": { - "lower-case": "^1.1.1" - } - }, "nock": { "version": "13.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.1.tgz", @@ -4029,54 +2961,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=" }, - "node-plop": { - "version": "0.26.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-plop/-/node-plop-0.26.3.tgz", - "integrity": "sha1-1vp+cTk8i5QFE7qMSGj4qqbeqd8=", - "requires": { - "@babel/runtime-corejs3": "^7.9.2", - "@types/inquirer": "^6.5.0", - "change-case": "^3.1.0", - "del": "^5.1.0", - "globby": "^10.0.1", - "handlebars": "^4.4.3", - "inquirer": "^7.1.0", - "isbinaryfile": "^4.0.2", - "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "resolve": "^1.12.0" - }, - "dependencies": { - "inquirer": { - "version": "7.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "requires": { - "minimist": "^1.2.5" - } - } - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -4116,34 +3000,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "object-inspect": { "version": "1.12.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.12.0.tgz", @@ -4176,17 +3032,6 @@ "object-keys": "^1.1.1" } }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, "object.entries": { "version": "1.1.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.5.tgz", @@ -4198,23 +3043,6 @@ "es-abstract": "^1.19.1" } }, - "object.map": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, "object.values": { "version": "1.1.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.5.tgz", @@ -4345,14 +3173,6 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, - "param-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "^2.2.0" - } - }, "parent-module": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", @@ -4362,43 +3182,6 @@ "callsites": "^3.0.0" } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", - "requires": { - "no-case": "^2.2.0" - } - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -4419,20 +3202,8 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "path-to-regexp": { "version": "1.8.0", @@ -4474,202 +3245,8 @@ "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - }, - "plop": { - "version": "2.7.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/plop/-/plop-2.7.6.tgz", - "integrity": "sha1-H6U2DNWwTpkyzmd7tr1EdQ2Xrmc=", - "requires": { - "@types/liftoff": "^2.5.1", - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", - "minimist": "^1.2.5", - "node-plop": "^0.26.3", - "ora": "^3.4.0", - "v8flags": "^2.0.10" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", - "requires": { - "chalk": "^2.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "ora": { - "version": "3.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-3.4.0.tgz", - "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true }, "prelude-ls": { "version": "1.2.1", @@ -4735,11 +3312,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=" - }, "quick-lru": { "version": "5.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", @@ -4793,63 +3365,12 @@ "integrity": "sha1-MVf5dCisrsDwWlwf8sMSD05tkEs=", "dev": true }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "regexpp": { "version": "3.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", "dev": true }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4867,40 +3388,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, "resolve-alpn": { "version": "1.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha1-t629rDVGqq7CC0Xn2CZZJwcnJvk=" }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, "resolve-from": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, "responselike": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", @@ -4918,21 +3416,11 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ret/-/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" - }, "retry": { "version": "0.12.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, - "reusify": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=" - }, "revalidator": { "version": "0.1.8", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/revalidator/-/revalidator-0.1.8.tgz", @@ -5127,35 +3615,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=" }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "requires": { - "tslib": "^1.9.0" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -5169,15 +3633,6 @@ "lru-cache": "^6.0.0" } }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", - "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, "serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -5243,11 +3698,6 @@ "supports-color": "^7.2.0" } }, - "slash": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-3.0.0.tgz", - "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=" - }, "slice-ansi": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -5264,116 +3714,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=" }, - "snake-case": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "requires": { - "no-case": "^2.2.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "socks": { "version": "2.6.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.1.tgz", @@ -5393,28 +3733,6 @@ "socks": "^2.6.1" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=" - }, "split": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", @@ -5486,25 +3804,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, "stream-combiner": { "version": "0.2.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -5612,15 +3911,6 @@ "integrity": "sha1-btpL00SjyUrqN21MwxvHcxEDngk=", "dev": true }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, "table": { "version": "6.8.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.8.0.tgz", @@ -5724,15 +4014,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "title-case": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, "tmp": { "version": "0.0.33", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", @@ -5746,40 +4027,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-readable-stream/-/to-readable-stream-2.1.0.tgz", "integrity": "sha1-gogDFhIb6mYs3CJq2zCt21DLBug=" }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -5801,11 +4053,6 @@ "strip-bom": "^3.0.0" } }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "tweetnacl": { "version": "0.14.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -5832,12 +4079,6 @@ "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", "dev": true }, - "uglify-js": { - "version": "3.14.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uglify-js/-/uglify-js-3.14.5.tgz", - "integrity": "sha1-zau31JVCMdgMtKknZUxGVeUfSFk=", - "optional": true - }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -5850,11 +4091,6 @@ "which-boxed-primitive": "^1.0.2" } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, "union-value": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", @@ -5891,19 +4127,6 @@ "isobject": "^3.0.0" } }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "requires": { - "upper-case": "^1.1.1" - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", @@ -5913,11 +4136,6 @@ "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, "url-join": { "version": "4.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", @@ -5932,16 +4150,6 @@ "requires-port": "^1.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/use/-/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -5958,14 +4166,6 @@ "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", "dev": true }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "requires": { - "user-home": "^1.1.1" - } - }, "validate-npm-package-name": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", @@ -6043,11 +4243,6 @@ "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", "dev": true }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, "workerpool": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", diff --git a/package.json b/package.json index 159bd6bd..5bfb0454 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "preinstall": "npx npm-force-resolutions && npx check-node-version -p --package", "prepare": "husky install", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", - "test": "NODE_ENV=test mocha --exit" + "test": "cross-env NODE_ENV=test mocha --exit --ignore uploadDirectory.js" }, "engines": { "node": ">=14.0.0" @@ -72,6 +72,7 @@ "audit-ci": "5.1.2", "chai": "4.3.4", "chai-as-promised": "7.1.1", + "cross-env": "7.0.3", "eslint": "8.3.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.25.3", diff --git a/test/cortex/config b/test/cortex/config index 48597174..92c999d7 100644 --- a/test/cortex/config +++ b/test/cortex/config @@ -1,5 +1,5 @@ { - "version": "3", + "version": "4", "profiles": { "default": { "url": "http://localhost:8000", @@ -12,22 +12,42 @@ "d": "bRujm6B2EFaPTp56cU3z3K1w_5oFleLeL3hsLgqCVLc", "kty": "OKP", "kid": "X4u2Hv4VxL77bE8N9dT4ltVBoJsSLTH4bY1a5WL6wNY" - } + }, + "registries": { + "Cortex Private Registry": { + "url": "localhost", + "name": "Cortex Private Registry", + "isCortex": true + } + }, + "currentRegistry": "Cortex Private Registry" }, "other": { "url": "http://other:8000", "username": "other_user", "issuer": "cognitivescale.com", "audience": "cortex", - "project": "otherProj", "jwk": { "crv": "Ed25519", "x": "yA1XUDSEoKWa28bCMFljlXwlEFbSVmQQ7ftIMNtB69U", "d": "bRujm6B2EFaPTp56cU3z3K1w_5oFleLeL3hsLgqCVLc", "kty": "OKP", "kid": "X4u2Hv4VxL77bE8N9dT4ltVBoJsSLTH4bY1a5WL6wNY" - } + }, + "project": "otherProj", + "registries": { + "Cortex Private Registry": { + "url": "other", + "name": "Cortex Private Registry", + "isCortex": true + } + }, + "currentRegistry": "Cortex Private Registry" } }, - "currentProfile": "default" -} + "currentProfile": "default", + "templateConfig": { + "repo": "CognitiveScale/cortex-code-templates", + "branch": "main" + } +} \ No newline at end of file diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index fc74287b..1dfcfa18 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -14,6 +14,7 @@ * limitations under the License. */ +const path = require('path'); const commander = require('commander'); const chai = require('chai'); const mockedEnv = require('mocked-env'); @@ -36,7 +37,9 @@ describe('Upload Directory', () => { const command = new UploadContent(program); const contentKey = '.shared'; - const filePath = `${__dirname}/cortex`; + const dirname = __dirname.split(path.sep).join(path.posix.sep); + + const filePath = path.join(dirname, 'cortex'); const options = { recursive: true, test: true, @@ -44,18 +47,18 @@ describe('Upload Directory', () => { const expectedFileDicts = [ { - canonical: `${__dirname}/cortex/config`, + canonical: path.posix.join(dirname, 'cortex', 'config'), relative: 'config', - size: 919, + size: 1478, }, { - canonical: `${__dirname}/cortex/pat-file.json`, + canonical: path.posix.join(dirname, 'cortex', 'pat-file.json'), relative: 'pat-file.json', size: 326, }, { - canonical: `${__dirname}/cortex/sample/upload/config`, - relative: 'sample/upload/config', + canonical: path.posix.join(dirname, 'cortex', 'sample', 'upload', 'config'), + relative: path.join('sample', 'upload', 'config'), size: 483, }, ]; From f0e27caecd62756c9d32bdb9e1c0f971c1e515ad Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 10 Jan 2022 11:48:00 -0500 Subject: [PATCH 638/864] Updated lockfile --- package-lock.json | 4471 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 3485 insertions(+), 986 deletions(-) diff --git a/package-lock.json b/package-lock.json index a09ebe38..0e8bffc1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,35 +5,315 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, + "@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "dev": true + }, + "@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha1-6MYCQ4xKgZV1EkPakDHRYH0kfK0=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, + "@babel/helper-validator-option": { + "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.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "dev": true, + "requires": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" + } + }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha1-gaAdfWdQRvDZb4JFDZ2VeL39aws=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -41,8 +321,8 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -52,8 +332,8 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" @@ -61,20 +341,20 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -82,10 +362,224 @@ } } }, + "@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "dev": true + }, + "@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/traverse": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + } + } + }, "@eslint/eslintrc": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha1-M/G4ONvx+SO/pRfgCDYreN278xg=", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -101,8 +595,8 @@ }, "@gar/promisify": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha1-MKqCXxHUOGcdWFvUTn/VZFNfwhA=" + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", + "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" }, "@hapi/hoek": { "version": "9.1.0", @@ -119,8 +613,8 @@ }, "@humanwhocodes/config-array": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha1-tWIf2zsyMJ0tFldUVsvCd/qPAho=", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", @@ -130,14 +624,86 @@ }, "@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "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", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, + "@nodelib/fs.scandir": { + "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.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "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 + }, + "@nodelib/fs.walk": { + "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.5", + "fastq": "^1.6.0" + } + }, "@npmcli/fs": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.1.0.tgz", - "integrity": "sha1-vsHRuJwXDUDhtzrWyUOwt159KVE=", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", + "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", "requires": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -145,8 +711,8 @@ }, "@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha1-GoLD43L3yuklPrZtclQ9a4aFxnQ=", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -154,45 +720,45 @@ }, "@sellside/emitter": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sellside/emitter/-/emitter-1.2.1.tgz", - "integrity": "sha1-Ddg5wwzfAQh/TcY2E1A9przfXx4=" + "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", + "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==" }, "@sideway/address": { "version": "4.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha1-2TzOXUXF2uySrXbbSSzC7jxkqyc=", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", + "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", "requires": { "@hapi/hoek": "^9.0.0" } }, "@sideway/formula": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha1-/hWK7jLmvV3oUES+YVvAhHigoTw=" + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" }, "@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha1-z/j/rcNyrSn9P3gneusp5jLMcN8=" + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha1-zv9qKKW0hnwt1KG6UT3ieMy+i7E=" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" }, "@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha1-OALd0hpQqUm2ch3dcto25n5/Gy0=", + "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" } }, "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha1-P9wrbLWJNbIb+40WJesTAEhDFuc=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" @@ -200,8 +766,8 @@ }, "@sinonjs/samsam": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha1-oBF9gjJg8oLAS/9fhwS9wqxpELs=", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -211,27 +777,27 @@ }, "@sinonjs/text-encoding": { "version": "0.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha1-jaXGUwkVZT86Hzj9XxAdjD+AecU=", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, "@szmarczak/http-timer": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha1-tKkUu2LnwnLU5Zif5EQPgSqx2Ac=", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "requires": { "defer-to-connect": "^2.0.0" } }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=" + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/cacheable-request": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha1-wyTaAZfeCpiiMSFWU2riYkKf9rk=", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", "requires": { "@types/http-cache-semantics": "*", "@types/keyv": "*", @@ -241,8 +807,8 @@ }, "@types/http-cache-semantics": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha1-Dqe2FJaQK5WJDcTDoRa2DLja6BI=" + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/json5": { "version": "0.0.29", @@ -252,25 +818,86 @@ }, "@types/keyv": { "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha1-HJquMocuwfINza7omp87qI9GXkE=", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", "requires": { "@types/node": "*" } }, "@types/node": { - "version": "17.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.8.tgz", - "integrity": "sha1-UNaAyKinj+MKvmkGRTshrYqwrXs=" + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, "@types/responselike": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha1-JR9P59FU0rrRJavhtCmyOv0mLik=", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", "requires": { "@types/node": "*" } }, + "@typescript-eslint/types": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "@typescript-eslint/visitor-keys": "4.33.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "globby": { + "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", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.33.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.33.0", + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -279,8 +906,8 @@ }, "JSONStream": { "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { "jsonparse": "^1.2.0", @@ -289,28 +916,28 @@ }, "acorn": { "version": "8.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha1-kJUf3g+PCd+TVJSB5fwUFEW3kc8=", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true }, "agent-base": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "requires": { "debug": "4" } }, "agentkeepalive": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.2.0.tgz", - "integrity": "sha1-YWzpTMtB0aOaRdID2Adv6YcTBi0=", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", + "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -319,8 +946,8 @@ }, "aggregate-error": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -328,8 +955,8 @@ }, "ajv": { "version": "6.12.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "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", @@ -340,8 +967,8 @@ }, "ansi-align": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha1-DN8S4RGs53OobpofrRIlxDyxmlk=", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "requires": { "string-width": "^4.1.0" } @@ -367,11 +994,6 @@ } } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -390,10 +1012,31 @@ "picomatch": "^2.0.4" } }, + "app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", + "dev": true + }, + "append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "requires": { + "default-require-extensions": "^3.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, "argparse": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "arr-union": { "version": "3.1.0", @@ -402,8 +1045,8 @@ }, "array-includes": { "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k=", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -413,10 +1056,16 @@ "is-string": "^1.0.7" } }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "array.prototype.flat": { "version": "1.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha1-B+CXXYS7x8SM0YedYJ5oJZjTPhM=", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -426,8 +1075,8 @@ }, "array.prototype.flatmap": { "version": "1.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha1-kI3ILYpAaTD984WY1R50EdGNREY=", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -454,10 +1103,16 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, + "ast-module-types": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", + "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "dev": true + }, "astral-regex": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, "async": { @@ -472,8 +1127,8 @@ }, "audit-ci": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-5.1.2.tgz", - "integrity": "sha1-LppsI8hRHY959v3hjQQuvBveyIE=", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", + "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", "dev": true, "requires": { "JSONStream": "^1.3.5", @@ -487,23 +1142,87 @@ "yargs": "^16.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true } } }, "balanced-match": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { "version": "1.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=" + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -526,8 +1245,8 @@ }, "bl": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bl/-/bl-4.1.0.tgz", - "integrity": "sha1-RRU1JkGCvsL7vIOmKrmM8R2fezo=", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -536,8 +1255,8 @@ }, "boxen": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha1-eIy2hvyDwfSG36ikDGj8K4MdK1A=", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -549,40 +1268,53 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "camelcase": { - "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha1-VoW5XrIJrJwMF3Rnd4ychN9Yupo=" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" }, "emoji-regex": { "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=" + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "string-width": { - "version": "4.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" } }, "type-fest": { "version": "0.20.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=" + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" }, "wrap-ansi": { "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -593,8 +1325,8 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -615,10 +1347,23 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, "buffer": { "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha1-umLnwTEzBTWCGXFghRqPZI6Z7tA=", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -636,8 +1381,8 @@ }, "cacache": { "version": "15.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha1-3IU4D7L1Vv492kxxm/oOyHWn8es=", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "requires": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -657,13 +1402,6 @@ "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" - } } }, "cache-base": { @@ -681,18 +1419,14 @@ } }, "cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha1-h75koYuSUjSHXhCpux68pK3Oazg=", - "requires": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - } + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" }, "cacheable-request": { "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha1-6g0LiJNkolhUdXMByhKy2nf5HSc=", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -705,18 +1439,30 @@ "dependencies": { "get-stream": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { "pump": "^3.0.0" } } } }, + "caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "requires": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + } + }, "call-bind": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -725,8 +1471,20 @@ }, "callsites": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001283", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", + "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", "dev": true }, "chai": { @@ -754,8 +1512,8 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -763,8 +1521,8 @@ }, "chardet": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=" + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "check-error": { "version": "1.0.2", @@ -795,24 +1553,24 @@ } }, "chownr": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "clean-stack": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=" + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-boxes": { "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=" + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "requires": { "restore-cursor": "^3.1.0" } @@ -828,17 +1586,25 @@ }, "cli-spinners": { "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha1-rclU6+KBw3pjGb+kAebdJIj/tw0=" + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" }, "cli-table3": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha1-t7G8ZcqOe1zvkSThPcKyHizk+u4=", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", "requires": { "colors": "^1.1.2", "object-assign": "^4.1.0", "string-width": "^4.2.0" + }, + "dependencies": { + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "optional": true + } } }, "cli-width": { @@ -847,14 +1613,31 @@ "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=" }, "cliui": { - "version": "7.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "clone": { @@ -868,13 +1651,6 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { "mimic-response": "^1.0.0" - }, - "dependencies": { - "mimic-response": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=" - } } }, "collection-visit": { @@ -901,21 +1677,27 @@ }, "colors": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", - "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=" + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "combined-stream": { "version": "1.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } }, "commander": { "version": "8.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-8.3.0.tgz", - "integrity": "sha1-SDfqGy2me5xhamevuw+v7lZ7ymY=" + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true }, "concat-map": { "version": "0.0.1", @@ -924,10 +1706,27 @@ }, "confusing-browser-globals": { "version": "1.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha1-rkDptXzdORVAiigF69OlWFYI3IE=", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, + "convert-source-map": { + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, "cpu-features": { "version": "0.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.2.tgz", @@ -948,16 +1747,16 @@ }, "cross-fetch": { "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha1-lyPzo6JHv4uJA586OAqSROj6Lzk=", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", "requires": { "node-fetch": "2.6.1" } }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -972,18 +1771,40 @@ }, "debug": { "version": "4.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.3.tgz", - "integrity": "sha1-BCZuC3CpjURi5uKI44JZITMytmQ=", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { "ms": "2.1.2" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decomment": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/decomment/-/decomment-0.9.5.tgz", + "integrity": "sha512-h0TZ8t6Dp49duwyDHo3iw67mnh9/UpFiSSiOb5gDK1sqoXzrfX/SQxIUQd2R2QEiSnqib0KF2fnKnGfAhAs6lg==", + "dev": true, + "requires": { + "esprima": "4.0.1" + } + }, "decompress-response": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha1-eEk5boDj0euoyy9170kw92Rhyw8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { - "mimic-response": "^2.0.0" + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } } }, "deep-eql": { @@ -995,12 +1816,35 @@ "type-detect": "^4.0.0" } }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "deep-is": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "requires": { + "strip-bom": "^4.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + } + } + }, "defaults": { "version": "1.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", @@ -1011,8 +1855,8 @@ }, "defer-to-connect": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha1-gBa9tBQ+RjK3ejRJxiNid95SBYc=" + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-lazy-prop": { "version": "2.0.0", @@ -1021,8 +1865,8 @@ }, "define-properties": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { "object-keys": "^1.0.12" @@ -1038,12 +1882,165 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, + "dependency-tree": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-8.1.2.tgz", + "integrity": "sha512-c4CL1IKxkKng0oT5xrg4uNiiMVFqTGOXqHSFx7XEFdgSsp6nw3AGGruICppzJUrfad/r7GLqt26rmWU4h4j39A==", + "dev": true, + "requires": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "filing-cabinet": "^3.0.1", + "precinct": "^8.0.0", + "typescript": "^3.9.7" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "precinct": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.2.0.tgz", + "integrity": "sha512-D9fQM/fAS7rGLA1m+PusoEMc07g9I5lZUf6rstT5XPCPn56raSIrj9R9y052YV8j4N+tjkgfCgT10bRQ3vg8+A==", + "dev": true, + "requires": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "detective-amd": "^3.0.1", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.0", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + } + } + } + }, + "detective-amd": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.0.tgz", + "integrity": "sha512-G7wGWT6f0VErjUkE2utCm7IUshT7nBh7aBBH2VBOiY9Dqy2DMens5iiOvYCuhstoIxRKLrnOvVAz4/EyPIAjnw==", + "dev": true, + "requires": { + "ast-module-types": "^2.7.0", + "escodegen": "^2.0.0", + "get-amd-module-type": "^3.0.0", + "node-source-walk": "^4.0.0" + } + }, + "detective-cjs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.1.tgz", + "integrity": "sha512-JQtNTBgFY6h8uT6pgph5QpV3IyxDv+z3qPk/FZRDT9TlFfm5dnRtpH39WtQEr1khqsUxVqXzKjZHpdoQvQbllg==", + "dev": true, + "requires": { + "ast-module-types": "^2.4.0", + "node-source-walk": "^4.0.0" + } + }, + "detective-es6": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.1.tgz", + "integrity": "sha512-22z7MblxkhsIQGuALeGwCKEfqNy4WmgDGmfJCwdXbfDkVYIiIDmY513hiIWBvX3kCmzvvWE7RR7kAYxs01wwKQ==", + "dev": true, + "requires": { + "node-source-walk": "^4.0.0" + } + }, + "detective-less": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", + "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", + "dev": true, + "requires": { + "debug": "^4.0.0", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + } + }, + "detective-postcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", + "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "is-url": "^1.2.4", + "postcss": "^8.1.7", + "postcss-values-parser": "^2.0.1" + } + }, + "detective-sass": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.1.tgz", + "integrity": "sha512-oSbrBozRjJ+QFF4WJFbjPQKeakoaY1GiR380NPqwdbWYd5wfl5cLWv0l6LsJVqrgWfFN1bjFqSeo32Nxza8Lbw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + } + }, + "detective-scss": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.1.tgz", + "integrity": "sha512-VveyXW4WQE04s05KlJ8K0bG34jtHQVgTc9InspqoQxvnelj/rdgSAy7i2DXAazyQNFKlWSWbS+Ro2DWKFOKTPQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "gonzales-pe": "^4.2.3", + "node-source-walk": "^4.0.0" + } + }, + "detective-stylus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.0.tgz", + "integrity": "sha1-UK7n24uruZA4HwEMY/q7pbWOVM0=", + "dev": true + }, + "detective-typescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.0.tgz", + "integrity": "sha512-y/Ev98AleGvl43YKTNcA2Q+lyFmsmCfTTNWy4cjEJxoLkbobcXtRS0Kvx06daCgr2GdtlwLfNzL553BkktfJoA==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "^4.8.2", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.7" + } + }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, "docker-modem": { "version": "3.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/docker-modem/-/docker-modem-3.0.3.tgz", @@ -1066,8 +2063,8 @@ }, "doctrine": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" @@ -1075,8 +2072,8 @@ }, "duplexer": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, "duplexer3": { @@ -1084,44 +2081,49 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, + "electron-to-chromium": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.5.tgz", + "integrity": "sha512-YKaB+t8ul5crdh6OeqT2qXdxJGI0fAYb6/X8pDIyye+c3a7ndOCk5gVeKX+ABwivCGNS56vOAif3TN0qJMpEHw==", + "dev": true + }, "emoji-regex": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "encoding": { "version": "0.1.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "optional": true, "requires": { "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } } }, "end-of-stream": { "version": "1.4.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, "enquirer": { "version": "2.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { "ansi-colors": "^4.1.1" @@ -1129,13 +2131,13 @@ }, "err-code": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=" + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "es-abstract": { "version": "1.19.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha1-1IhXlodpFpWd547aoN9FZicRXsM=", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -1162,8 +2164,8 @@ }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -1171,6 +2173,12 @@ "is-symbol": "^1.0.2" } }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -1182,10 +2190,38 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, "eslint": { "version": "8.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.3.0.tgz", - "integrity": "sha1-o8JAlQdAPBx/bEKSYRHWy++8PoU=", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", + "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", "dev": true, "requires": { "@eslint/eslintrc": "^1.0.4", @@ -1228,16 +2264,85 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "glob-parent": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { "is-glob": "^4.0.3" @@ -1245,21 +2350,75 @@ "dependencies": { "is-glob": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } } } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } } } }, "eslint-config-airbnb-base": { "version": "15.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha1-awmt2QrHnC+NcjolgOB/OSWv0jY=", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "requires": { "confusing-browser-globals": "^1.0.10", @@ -1270,16 +2429,16 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "eslint-import-resolver-node": { "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { "debug": "^3.2.7", @@ -1288,8 +2447,8 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -1297,8 +2456,8 @@ }, "is-core-module": { "version": "2.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "requires": { "has": "^1.0.3" @@ -1306,8 +2465,8 @@ }, "resolve": { "version": "1.21.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha1-tRrcl/NHLmpc9ERNNLyda5A3WR8=", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", "dev": true, "requires": { "is-core-module": "^2.8.0", @@ -1319,8 +2478,8 @@ }, "eslint-module-utils": { "version": "2.7.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", - "integrity": "sha1-HQqkVdz0EFIzm2PK2oq1/VdXcSk=", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", + "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", "dev": true, "requires": { "debug": "^3.2.7", @@ -1329,19 +2488,68 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, "eslint-plugin-import": { "version": "2.25.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", - "integrity": "sha1-pVS19m4I+09tyZIhhm5Xz/+CR2Y=", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -1361,8 +2569,8 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -1370,8 +2578,8 @@ }, "doctrine": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { "esutils": "^2.0.2" @@ -1379,8 +2587,8 @@ }, "is-core-module": { "version": "2.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", "dev": true, "requires": { "has": "^1.0.3" @@ -1388,8 +2596,8 @@ }, "is-glob": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -1397,14 +2605,14 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "resolve": { "version": "1.21.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha1-tRrcl/NHLmpc9ERNNLyda5A3WR8=", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", "dev": true, "requires": { "is-core-module": "^2.8.0", @@ -1416,88 +2624,112 @@ }, "eslint-scope": { "version": "7.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha1-wfbqMKxYMDHyA9Zcc+cjsBKY8VM=", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "eslint-utils": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", - "dev": true - } + "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha1-7uSs6okYFM2men2IEtlkfdAXmvI=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { "version": "9.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-9.3.0.tgz", - "integrity": "sha1-wSQNeRg7cqrubM+lqQvJER3whag=", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "requires": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^3.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true + } } }, "esprima": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { - "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, "esrecurse": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, "estraverse": { - "version": "5.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "event-stream": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha1-QJKAjsmV0N116kWAwd9qdNss3mU=", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "dev": true, "requires": { "duplexer": "^0.1.1", @@ -1510,27 +2742,48 @@ } }, "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "is-extendable": "^0.1.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "external-editor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } } }, "extract-files": { "version": "9.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha1-indE8kN/gfXtMlDtnxVQ3pAv5Uo=" + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, "eyes": { "version": "0.1.8", @@ -1539,14 +2792,45 @@ }, "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-glob": { + "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.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "micromatch": { + "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.2.3" + } + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fast-levenshtein": { @@ -1555,6 +2839,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "fd-slicer": { "version": "1.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -1572,12 +2865,41 @@ } }, "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "filing-cabinet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.0.1.tgz", + "integrity": "sha512-3Wn18+vSKmrlOc0fp5J7p1UyGi7yCWUpPhGVFzZsUyGzG+AEzYWguMGxUbjsgsV4whRHCCiYxIrGyKivBBDDSg==", "dev": true, "requires": { - "flat-cache": "^3.0.4" + "app-module-path": "^2.2.0", + "commander": "^2.20.3", + "debug": "^4.3.1", + "decomment": "^0.9.3", + "enhanced-resolve": "^5.3.2", + "is-relative-path": "^1.0.2", + "module-definition": "^3.3.1", + "module-lookup-amd": "^7.0.0", + "resolve": "^1.19.0", + "resolve-dependency-path": "^2.0.0", + "sass-lookup": "^3.0.0", + "stylus-lookup": "^3.0.1", + "typescript": "^3.9.7" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "fill-range": { @@ -1589,18 +2911,41 @@ "to-regex-range": "^5.0.1" } }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, "find-package-json": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha1-QFfRuUP4LYRF/lLcnPRW9ri1gIM=" + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "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": { - "locate-path": "^2.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flat": { @@ -1610,25 +2955,53 @@ "dev": true }, "flat-cache": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "flatted": { - "version": "3.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha1-KNmWnqkGYbUTQlnzEqtqp5KaxeI=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", "dev": true }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, "form-data": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -1641,6 +3014,12 @@ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, + "fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true + }, "fs-constants": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-constants/-/fs-constants-1.0.0.tgz", @@ -1648,8 +3027,8 @@ }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { "minipass": "^3.0.0" } @@ -1678,6 +3057,22 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-amd-module-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.0.tgz", + "integrity": "sha512-99Q7COuACPfVt18zH9N4VAMyb81S6TUgJm2NgV6ERtkh9VIkAaByZkW530wl3lLN5KTtSrK9jVLxYsoP5hQKsw==", + "dev": true, + "requires": { + "ast-module-types": "^2.3.2", + "node-source-walk": "^4.0.0" + } + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -1692,8 +3087,8 @@ }, "get-intrinsic": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -1701,15 +3096,27 @@ "has-symbols": "^1.0.1" } }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, "get-stream": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=" + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "get-symbol-description": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha1-f9uByQAQH71WTdXxowr1qtweWNY=", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -1729,6 +3136,28 @@ "got": "^10.5.7" }, "dependencies": { + "@sindresorhus/is": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", + "integrity": "sha1-zv9qKKW0hnwt1KG6UT3ieMy+i7E=" + }, + "cacheable-lookup": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", + "integrity": "sha1-h75koYuSUjSHXhCpux68pK3Oazg=", + "requires": { + "@types/keyv": "^3.1.1", + "keyv": "^4.0.0" + } + }, + "decompress-response": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", + "integrity": "sha1-eEk5boDj0euoyy9170kw92Rhyw8=", + "requires": { + "mimic-response": "^2.0.0" + } + }, "get-stream": { "version": "5.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", @@ -1759,6 +3188,11 @@ "type-fest": "^0.10.0" } }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" + }, "type-fest": { "version": "0.10.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.10.0.tgz", @@ -1768,8 +3202,8 @@ }, "glob": { "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.2.0.tgz", - "integrity": "sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1790,25 +3224,49 @@ }, "global-dirs": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha1-cKdv6E6jFas3sfVXbL3n1I73JoY=", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "requires": { "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + } } }, "globals": { "version": "13.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.12.0.tgz", - "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { "type-fest": "^0.20.2" + }, + "dependencies": { + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "gonzales-pe": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" } }, "got": { "version": "11.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.3.tgz", - "integrity": "sha1-9JbI/dpdcpqQtJBdKwfb0UgXB3A=", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", + "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -1821,42 +3279,23 @@ "lowercase-keys": "^2.0.0", "p-cancelable": "^2.0.0", "responselike": "^2.0.0" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha1-Znv8YYaufJ4LRaCJYMVRQ3F24co=" - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha1-WmuGWyxENXvj1evCpGewMnGacAU=" - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha1-yjh2Et234QS9FthaqwDV7PCcZvw=", - "requires": { - "mimic-response": "^3.1.0" - } - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=" - } } }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, "graphql": { "version": "15.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.6.1.tgz", - "integrity": "sha1-kSW98FdVNSXaJR4Z6W2rPThV3fw=" + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-request": { "version": "3.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.6.1.tgz", - "integrity": "sha1-aJzOHamQExtAsFZR+fMr/1BqHY4=", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.6.1.tgz", + "integrity": "sha512-Nm1EasrAQVZllyNTlHDLnLZjlhC6eRWnWP6KH//ytnAL08pjlLkdI2K+s6OV92p45hn5b/kUlLbDwACmRoLwrQ==", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -1865,8 +3304,8 @@ "dependencies": { "form-data": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -1875,6 +3314,15 @@ } } }, + "graphviz": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/graphviz/-/graphviz-0.0.9.tgz", + "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", + "dev": true, + "requires": { + "temp": "~0.4.0" + } + }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -1892,8 +3340,8 @@ }, "has-bigints": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "dev": true }, "has-flag": { @@ -1903,44 +3351,29 @@ }, "has-symbols": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, "has-tostringtag": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "requires": { "has-symbols": "^1.0.2" } }, - "has-value": { - "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" } }, - "has-values": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -1949,21 +3382,27 @@ }, "hosted-git-info": { "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha1-XkJVB+7eT+qEa3Ji8IOEVsQgmWE=", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "requires": { "lru-cache": "^6.0.0" } }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha1-SekcXL82yblLz81xwj1SSex045A=" + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-proxy-agent": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "requires": { "@tootallnate/once": "1", "agent-base": "6", @@ -1972,8 +3411,8 @@ }, "http2-wrapper": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha1-uPVeDB8l1OvQizsMLAeflZCACz0=", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "requires": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -1981,8 +3420,8 @@ }, "https-proxy-agent": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha1-4qkFQqu2inYuCghQ9sntrf2FBrI=", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { "agent-base": "6", "debug": "4" @@ -1998,33 +3437,34 @@ }, "husky": { "version": "7.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/husky/-/husky-7.0.4.tgz", - "integrity": "sha1-JCBIJF3EnI+xvwzHz7mN1yJTFTU=", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "ieee754": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=" + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2038,13 +3478,19 @@ }, "indent-string": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=" + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true }, "infer-owner": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=" + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "inflight": { "version": "1.0.6", @@ -2061,9 +3507,10 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", - "integrity": "sha1-5f1Vbs3VcmvpePoQAYYurLCpS8U=" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true }, "inquirer": { "version": "8.2.0", @@ -2086,6 +3533,27 @@ "through": "^2.3.6" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=" + }, + "ora": { + "version": "5.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", + "integrity": "sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, "rxjs": { "version": "7.5.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.1.tgz", @@ -2094,6 +3562,14 @@ "tslib": "^2.1.0" } }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", + "requires": { + "ansi-regex": "^5.0.1" + } + }, "tslib": { "version": "2.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.3.1.tgz", @@ -2103,8 +3579,8 @@ }, "internal-slot": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { "get-intrinsic": "^1.1.0", @@ -2119,8 +3595,8 @@ }, "is-bigint": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha1-CBR6GHW8KzIAXUHM2Ckd/8ZpHfM=", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "requires": { "has-bigints": "^1.0.1" @@ -2137,8 +3613,8 @@ }, "is-boolean-object": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -2147,14 +3623,23 @@ }, "is-callable": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, + "is-core-module": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-date-object": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -2177,9 +3662,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-glob": { @@ -2193,8 +3678,8 @@ }, "is-installed-globally": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha1-mg/UB5ScMPhutpWe8beZTtC3tSA=", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "requires": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -2202,8 +3687,8 @@ }, "is-interactive": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha1-zqbmrlyHCnsKAAQHC3tYfgJSkS4=" + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" }, "is-lambda": { "version": "1.0.1", @@ -2212,8 +3697,8 @@ }, "is-negative-zero": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha1-e/bwOigAO4s5Zd46wm9mTXZfMVA=", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { @@ -2224,17 +3709,23 @@ }, "is-number-object": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha1-anqvg4x/BoalC0VT9+VKlklOifA=", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, "is-path-inside": { - "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, "is-plain-obj": { "version": "2.1.0", @@ -2244,32 +3735,50 @@ }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" } }, "is-regex": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-relative-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", + "integrity": "sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY=", + "dev": true + }, "is-shared-array-buffer": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha1-l7DIX72stZycRG/mU7gs8rW3z+Y=", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "is-string": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -2277,27 +3786,45 @@ }, "is-symbol": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { "has-symbols": "^1.0.2" } }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, "is-weakref": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha1-lSnzg6kzggXol2XgOS78LxAPBvI=", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "requires": { "call-bind": "^1.0.2" } }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, "is-wsl": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-wsl/-/is-wsl-2.2.0.tgz", @@ -2327,6 +3854,113 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "requires": { + "append-transform": "^2.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "requires": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "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 + } + } + }, + "istanbul-reports": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", + "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, "istextorbinary": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-6.0.0.tgz", @@ -2349,8 +3983,8 @@ }, "joi": { "version": "17.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-17.5.0.tgz", - "integrity": "sha1-fmbQAEtQRdlxz0FqVfth0zrG4BE=", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz", + "integrity": "sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -2361,32 +3995,38 @@ }, "jose-node-cjs-runtime": { "version": "4.3.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.3.7.tgz", - "integrity": "sha1-ZF/8jMXtMIQH3IHEfYmCXqt/t/A=" + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.3.7.tgz", + "integrity": "sha512-w08oYOXQ06/rcCEL5DB4HE5XJaHpB79ZTmCOP1YsRyZZtWQPPCQx+fQAANw1qlcmVA8BcBAE62QqKYDctCEtrQ==" }, "js-tokens": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { "argparse": "^2.0.1" } }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, "json-buffer": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=" + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { @@ -2403,8 +4043,8 @@ }, "json5": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -2417,14 +4057,14 @@ }, "just-extend": { "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha1-715Ymvth5dZrJOynSUCaiTmox0Q=", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, "keyv": { "version": "4.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.0.4.tgz", - "integrity": "sha1-8ECyNuorBu0V7Yb774QH4aHI43Y=", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", + "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", "requires": { "json-buffer": "3.0.1" } @@ -2436,37 +4076,34 @@ "dev": true }, "levn": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", - "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } + "p-locate": "^4.1.0" } }, "lodash": { "version": "4.17.21", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true }, "lodash.get": { "version": "4.4.2", @@ -2476,8 +4113,8 @@ }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lodash.set": { @@ -2486,12 +4123,6 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -2503,21 +4134,108 @@ }, "lowercase-keys": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha1-JgPni3tLAAbLyi+8yKMgJVislHk=" + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { "yallist": "^4.0.0" } }, + "madge": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/madge/-/madge-4.0.2.tgz", + "integrity": "sha512-l5bnA2dvyk0azLKDbOTCI+wDZ6nB007PhvPdmiYlPmqwVi49JPbhQrH/t4u8E6Akp3gwji1GZuA+v/F5q6yoWQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "commander": "^6.2.1", + "commondir": "^1.0.1", + "debug": "^4.0.1", + "dependency-tree": "^8.0.0", + "detective-amd": "^3.0.1", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.1.0", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^7.0.0", + "graphviz": "0.0.9", + "ora": "^5.1.0", + "pluralize": "^8.0.0", + "precinct": "^7.0.0", + "pretty-ms": "^7.0.0", + "rc": "^1.2.7", + "typescript": "^3.9.5", + "walkdir": "^0.4.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "make-fetch-happen": { "version": "9.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha1-UwhaCeeXFDPmdl95cb9j9OBcuWg=", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -2551,33 +4269,39 @@ "object-visit": "^1.0.0" } }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "mime-db": { - "version": "1.51.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha1-2f9iRRhZsYNC2WCFDcPPt35j+ww=" + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" }, "mime-types": { - "version": "2.1.34", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha1-WnEvnsFQNRGpRYA2QPr+CdN5PCQ=", + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "requires": { - "mime-db": "1.51.0" + "mime-db": "1.49.0" } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" } @@ -2590,24 +4314,24 @@ }, "minipass": { "version": "3.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha1-O4FQqmiKcRoVIa9eh3nB07tPRe4=", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "requires": { "yallist": "^4.0.0" } }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { "minipass": "^3.0.0" } }, "minipass-fetch": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha1-114AkdqsGw/9fp1BYp+v99DB8bY=", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -2617,16 +4341,16 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { "minipass": "^3.0.0" } }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha1-ftu5JYj7/C/x2y/BA5est7a0Sqc=", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" @@ -2634,24 +4358,24 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha1-aEcveXEcCEZXwGfFxq2Tzd6oIUw=", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "requires": { "minipass": "^3.0.0" } }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha1-cO5afFBSBwr6z7wil36nne81O3A=", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "requires": { "minipass": "^3.0.0" } }, "minizlib": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -2660,12 +4384,22 @@ "mixin-deep": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha1-mmlGvvSjaEAbeElwrjyqqmurAvo=" + "integrity": "sha1-mmlGvvSjaEAbeElwrjyqqmurAvo=", + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } }, "mkdirp": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=" + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mkdirp-classic": { "version": "0.5.3", @@ -2723,8 +4457,8 @@ }, "debug": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", - "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", + "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" @@ -2732,8 +4466,8 @@ "dependencies": { "ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -2873,8 +4607,8 @@ "dependencies": { "debug": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", - "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=", + "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" @@ -2882,20 +4616,51 @@ } } }, + "module-definition": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.3.1.tgz", + "integrity": "sha512-kLidGPwQ2yq484nSD+D3JoJp4Etc0Ox9P0L34Pu/cU4X4HcG7k7p62XI5BBuvURWMRX3RPyuhOcBHbKus+UH4A==", + "dev": true, + "requires": { + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.0.0" + } + }, + "module-lookup-amd": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", + "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", + "dev": true, + "requires": { + "commander": "^2.8.1", + "debug": "^4.1.0", + "glob": "^7.1.6", + "requirejs": "^2.3.5", + "requirejs-config-file": "^4.0.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "moment": { "version": "2.29.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.1.tgz", - "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=" + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, "ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "0.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=" + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nan": { "version": "2.15.0", @@ -2917,13 +4682,19 @@ }, "negotiator": { "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true }, "nise": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.0.tgz", - "integrity": "sha1-cT7z7ROCUtrvIOwDWrYreii+ZFw=", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0", @@ -2931,23 +4702,12 @@ "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha1-JSTq5wxJEO3M+ZsvTm78WJSv97U=", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - } } }, "nock": { - "version": "13.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.1.tgz", - "integrity": "sha1-/PW9ubufBVSoTCXTMzFmwP/YCFg=", + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", + "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", "dev": true, "requires": { "debug": "^4.1.0", @@ -2958,8 +4718,32 @@ }, "node-fetch": { "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI=" + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "requires": { + "process-on-spawn": "^1.0.0" + } + }, + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "node-source-walk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.2.0.tgz", + "integrity": "sha512-hPs/QMe6zS94f5+jG3kk9E7TNm4P2SulrKiLWMzKszBfNZvL/V6wseHlTd7IvfW0NZWqPtK3+9yYNr+3USGteA==", + "dev": true, + "requires": { + "@babel/parser": "^7.0.0" + } }, "normalize-path": { "version": "3.0.0", @@ -2969,13 +4753,13 @@ }, "normalize-url": { "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=" + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, "npm-package-arg": { "version": "8.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha1-M2my1f6P3GdLqn8XhlFN3BVGbkQ=", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "requires": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", @@ -2984,8 +4768,8 @@ }, "npm-registry-fetch": { "version": "12.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", - "integrity": "sha1-U9jJT3w3KTcHsjcohkcQt206PKU=", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", + "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", "requires": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", @@ -2995,6 +4779,57 @@ "npm-package-arg": "^8.0.0" } }, + "nyc": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", + "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "dev": true, + "requires": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "dependencies": { + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", @@ -3002,14 +4837,14 @@ }, "object-inspect": { "version": "1.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha1-biwSDoaP0f0Yy08YwxdB0NbndvA=", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true }, "object-keys": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object-visit": { @@ -3022,8 +4857,8 @@ }, "object.assign": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -3034,8 +4869,8 @@ }, "object.entries": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha1-4azdF8TeLNltWghIfPuduE2IGGE=", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -3045,8 +4880,8 @@ }, "object.values": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw=", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -3064,8 +4899,8 @@ }, "onetime": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { "mimic-fn": "^2.1.0" } @@ -3081,33 +4916,17 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", - "integrity": "sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" } }, "os-tmpdir": { @@ -3117,8 +4936,8 @@ }, "p-cancelable": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha1-qrf71BZYL6MqPbSYWcEiSHxe0s8=" + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-event": { "version": "4.2.0", @@ -3134,27 +4953,27 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "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": { - "p-limit": "^1.1.0" + "p-limit": "^2.2.0" } }, "p-map": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { "aggregate-error": "^3.0.0" } @@ -3168,20 +4987,38 @@ } }, "p-try": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "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 }, + "package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + } + }, "parent-module": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" } }, + "parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -3195,8 +5032,8 @@ }, "path-key": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { @@ -3207,8 +5044,8 @@ }, "path-to-regexp": { "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha1-iHs7qdhDk+h6CgufTLdWGYtTVIo=", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "requires": { "isarray": "0.0.1" @@ -3216,7 +5053,7 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true } @@ -3242,22 +5079,123 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true + }, + "postcss": { + "version": "8.4.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", + "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", + "dev": true, + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "dependencies": { + "nanoid": { + "version": "3.1.30", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", + "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "dev": true + } + } + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "precinct": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/precinct/-/precinct-7.1.0.tgz", + "integrity": "sha512-I1RkW5PX51/q6Xl39//D7x9NgaKNGHpR5DCNaoxP/b2+KbzzXDNhauJUMV17KSYkJA41CSpwYUPRtRoNxbshWA==", + "dev": true, + "requires": { + "commander": "^2.20.3", + "debug": "^4.3.1", + "detective-amd": "^3.0.1", + "detective-cjs": "^3.1.1", + "detective-es6": "^2.2.0", + "detective-less": "^1.0.2", + "detective-postcss": "^4.0.0", + "detective-sass": "^3.0.1", + "detective-scss": "^2.0.1", + "detective-stylus": "^1.0.0", + "detective-typescript": "^6.0.0", + "module-definition": "^3.3.1", + "node-source-walk": "^4.2.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "detective-typescript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-6.0.0.tgz", + "integrity": "sha512-vTidcSDK3QostdbrH2Rwf9FhvrgJ4oIaVw5jbolgruTejexk6nNa9DShGpuS8CFVDb1IP86jct5BaZt1wSxpkA==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "^4.8.2", + "ast-module-types": "^2.7.1", + "node-source-walk": "^4.2.0", + "typescript": "^3.9.7" + } + } + } + }, "prelude-ls": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, + "pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "requires": { + "parse-ms": "^2.1.0" + } + }, + "process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "requires": { + "fromentries": "^1.2.0" + } + }, "progress": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "promise-inflight": { @@ -3267,8 +5205,8 @@ }, "promise-retry": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "requires": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -3276,8 +5214,8 @@ }, "prompt": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompt/-/prompt-1.2.0.tgz", - "integrity": "sha1-XY8dkBF2a6wHq95RDb9DONh7TwI=", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.0.tgz", + "integrity": "sha512-iGerYRpRUg5ZyC+FJ/25G5PUKuWAGRjW1uOlhX7Pi3O5YygdK6R+KEaBjRbHSkU5vfS5PZCltSPZdDtUYwRCZA==", "requires": { "async": "~0.9.0", "colors": "^1.1.2", @@ -3288,14 +5226,14 @@ }, "propagate": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha1-QM3tqxgIXHkjNOZPCsFyVtOPmkU=", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -3303,19 +5241,25 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "querystringify": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true }, "quick-lru": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=" + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, "ramda": { "version": "0.27.1", @@ -3332,6 +5276,26 @@ "safe-buffer": "^5.1.0" } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, "read": { "version": "1.0.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read/-/read-1.0.7.tgz", @@ -3342,8 +5306,8 @@ }, "readable-stream": { "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -3361,56 +5325,97 @@ }, "readline-transform": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha1-MVf5dCisrsDwWlwf8sMSD05tkEs=", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", "dev": true }, "regexpp": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, + "release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "requires": { + "es6-error": "^4.0.1" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requirejs": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", + "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", "dev": true }, + "requirejs-config-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", + "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", + "dev": true, + "requires": { + "esprima": "^4.0.0", + "stringify-object": "^3.2.1" + } + }, "requires-port": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, "resolve-alpn": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha1-t629rDVGqq7CC0Xn2CZZJwcnJvk=" + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "resolve-dependency-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", + "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", + "dev": true }, "resolve-from": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "responselike": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha1-JjkbzDF091D5p56sxAoSpcQtdyM=", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { "lowercase-keys": "^2.0.0" } }, "restore-cursor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -3421,199 +5426,441 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "revalidator": { "version": "0.1.8", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/revalidator/-/revalidator-0.1.8.tgz", "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" }, "rewire": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha1-VPT82k35ko0orx61SjGLxRypqpk=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", + "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", "dev": true, "requires": { - "eslint": "^7.32.0" + "eslint": "^6.8.0" }, "dependencies": { - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "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==", "dev": true, "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "color-convert": "^1.9.0" } }, - "acorn": { - "version": "7.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", - "dev": true - }, "argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "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" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "eslint": { - "version": "7.32.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", + "levn": "^0.3.0", + "lodash": "^4.17.14", "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.8.3", "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "minimist": "^1.2.5" } }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "dev": true - } + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "espree": { - "version": "7.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", - "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", - "dev": true - } + "shebang-regex": "^1.0.0" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" } } } }, "rimraf": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } }, "run-async": { "version": "2.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=" + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } }, "safe-buffer": { "version": "5.2.1", @@ -3622,13 +5869,30 @@ }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass-lookup": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", + "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", + "dev": true, + "requires": { + "commander": "^2.16.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } }, "semver": { "version": "7.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" } @@ -3642,21 +5906,37 @@ "randombytes": "^2.1.0" } }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, "set-value": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "shebang-command": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" @@ -3664,14 +5944,14 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "side-channel": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha1-785cj9wQTudRslxY1CkAEfpeos8=", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { "call-bind": "^1.0.0", @@ -3680,44 +5960,76 @@ } }, "signal-exit": { - "version": "3.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha1-JOYwxLDwP+pEaivSmeYrSmyo0K8=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "sinon": { - "version": "12.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-12.0.1.tgz", - "integrity": "sha1-Mx7vhymHUuG4imYraZ+Y5APIWek=", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", "dev": true, "requires": { "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^8.1.0", + "@sinonjs/fake-timers": "^7.1.2", "@sinonjs/samsam": "^6.0.2", "diff": "^5.0.0", "nise": "^5.1.0", "supports-color": "^7.2.0" } }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "slice-ansi": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } } }, "smart-buffer": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=" + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "socks": { "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.1.tgz", - "integrity": "sha1-mJ5lNKB88zfesbHJSqpEKWUg0w4=", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", "requires": { "ip": "^1.1.5", "smart-buffer": "^4.1.0" @@ -3725,18 +6037,44 @@ }, "socks-proxy-agent": { "version": "6.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha1-5mTo8ar04fs9+UXwnj2U+RETf4c=", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", + "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", "requires": { "agent-base": "^6.0.2", "debug": "^4.3.1", "socks": "^2.6.1" } }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "dev": true + }, + "spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "requires": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + } + }, "split": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", - "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { "through": "2" @@ -3749,29 +6087,10 @@ }, "split-string": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { "extend-shallow": "^3.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "requires": { - "is-plain-object": "^2.0.4" - } - } } }, "sprintf-js": { @@ -3793,8 +6112,8 @@ }, "ssri": { "version": "8.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "requires": { "minipass": "^3.1.1" } @@ -3851,8 +6170,8 @@ }, "string.prototype.trimend": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -3861,8 +6180,8 @@ }, "string.prototype.trimstart": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -3871,18 +6190,21 @@ }, "string_decoder": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { "safe-buffer": "~5.2.0" } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" } }, "strip-bom": { @@ -3897,68 +6219,90 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "stylus-lookup": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", + "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", + "dev": true, + "requires": { + "commander": "^2.8.1", + "debug": "^4.1.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "supports-color": { "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { "has-flag": "^4.0.0" } }, "supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha1-btpL00SjyUrqN21MwxvHcxEDngk=", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, "table": { - "version": "6.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.8.0.tgz", - "integrity": "sha1-h+KPFPpDIcM3e6KG8Ht5soGjs8o=", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "8.8.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha1-AbT+8gB6KL918Lf8AJ9iZ53kq7s=", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "string-width": { - "version": "4.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } } } }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, "tar": { "version": "6.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", - "integrity": "sha1-Z2CjjwA6+hsv/Q/+npq70Oqz1iE=", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -3966,13 +6310,6 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=" - } } }, "tar-fs": { @@ -3984,6 +6321,13 @@ "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.0.0" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" + } } }, "tar-stream": { @@ -3998,6 +6342,23 @@ "readable-stream": "^3.1.1" } }, + "temp": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", + "integrity": "sha1-ZxrWPVe+D+nXKUZks/xABjZnimA=", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", @@ -4016,12 +6377,18 @@ }, "tmp": { "version": "0.0.33", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { "os-tmpdir": "~1.0.2" } }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, "to-readable-stream": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-readable-stream/-/to-readable-stream-2.1.0.tgz", @@ -4043,8 +6410,8 @@ }, "tsconfig-paths": { "version": "3.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha1-GXaaym7o9qGjQeOMj6Rd2fsYiZs=", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -4053,18 +6420,33 @@ "strip-bom": "^3.0.0" } }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { - "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "^1.2.1" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -4074,15 +6456,30 @@ "dev": true }, "type-fest": { - "version": "0.20.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true }, "unbox-primitive": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -4093,8 +6490,8 @@ }, "union-value": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -4102,18 +6499,24 @@ "set-value": "^2.0.1" } }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, "unique-filename": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { "imurmurhash": "^0.1.4" } @@ -4125,12 +6528,39 @@ "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -4138,13 +6568,13 @@ }, "url-join": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=" + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { "version": "1.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha1-ccEwPTj7Zjmt4YPCmSyMwGht+GI=", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -4161,9 +6591,9 @@ "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=" }, "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, "validate-npm-package-name": { @@ -4174,6 +6604,12 @@ "builtins": "^1.0.3" } }, + "walkdir": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", + "dev": true + }, "wcwidth": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", @@ -4193,8 +6629,8 @@ }, "which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "requires": { "is-bigint": "^1.0.1", @@ -4204,18 +6640,24 @@ "is-symbol": "^1.0.3" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, "widest-line": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha1-gpIzO79my0X/DeFgOxNreuFJbso=", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { "string-width": "^4.0.0" } }, "winston": { "version": "2.4.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/winston/-/winston-2.4.5.tgz", - "integrity": "sha1-8uQx1WFUxOp2VUX8EAO9NAyVtZo=", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", + "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", "requires": { "async": "~1.0.0", "colors": "1.0.x", @@ -4227,20 +6669,20 @@ "dependencies": { "async": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" }, "colors": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" } } }, "word-wrap": { "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "workerpool": { @@ -4250,14 +6692,31 @@ "dev": true }, "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "wrappy": { @@ -4265,37 +6724,77 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "y18n": { - "version": "5.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", + "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": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "16.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=", - "dev": true + "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" + } }, "yargs-unparser": { "version": "2.0.0", From 7eaf195fb819ec2b73ed8c9f9d9b2ca03664b361 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Fri, 14 Jan 2022 11:08:26 -0500 Subject: [PATCH 639/864] Minor fixes and improvements --- src/commands/workspaces/publish.js | 16 ++++++++++------ src/commands/workspaces/workspace-utils.js | 19 +++++++++---------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 9c22a9cc..894662d7 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -30,6 +30,7 @@ class DockerPushProgressTracker { this.layers = { upload: {} }; this.pushed = 0; this.result = {}; + this.stage = ''; this.bars = new cliProgress.MultiBar({ clearOnComplete: false, @@ -44,9 +45,9 @@ class DockerPushProgressTracker { switch (payload.type) { case 'upload': if (params.progress >= 1) { - return 'Pushing: Complete'; + return `Pushing ${this.stage}: Complete`; } - return `Pushing: [${BarFormat(params.progress, barOpts)}]`; + return `Pushing ${this.stage}: [${BarFormat(params.progress, barOpts)}]`; case 'status': return `Status: ${this.streamData.trim()}`; default: @@ -68,10 +69,14 @@ class DockerPushProgressTracker { return this.result; } - processEvent(evt) { + processEvent(evt, imgtag) { const { progressDetail } = evt; let { status, id } = evt; + if (imgtag) { + this.stage = imgtag; + } + if (evt.aux) { this.result = evt.aux; } @@ -112,6 +117,7 @@ class DockerPushProgressTracker { module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { constructor(program) { this.program = program; + this.docker = new Docker(); } async getRegistryAuth(profile, options) { @@ -181,7 +187,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { return resolve(true); }, (evt) => { - status.processEvent(evt); + status.processEvent(evt, action.name); }, ); }); @@ -205,8 +211,6 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (skillInfo.length > 0) { const profile = await loadProfile(); - this.docker = new Docker(); - this.catalogClient = new Catalog(profile.url); this.modelsClient = new Models(profile.url); this.experimentClient = new Experiments(profile.url); diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 53bcc55d..7dbf9502 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -2,9 +2,9 @@ const path = require('path'); const glob = require('glob'); const yaml = require('js-yaml'); const { - readFile, stat, + readFile, } = require('fs/promises'); - +const { statSync } = require('fs'); const ghGot = require('gh-got'); const _ = { @@ -36,16 +36,15 @@ module.exports.restoreTerminalPosition = function saveTerminalPosition() { }; module.exports.getSkillInfo = function getSkillInfo(target) { + let skillFiles = []; if (target.endsWith('skill.yaml')) { - const fname = path.resolve(target); - return stat(fname) - .then(() => [fname]) - .catch(() => []); + skillFiles = statSync(path.resolve(target)) ? [target] : []; + } else { + skillFiles = glob.sync('/skills/**/skill.yaml', { + root: target, + absolute: true, + }); } - const skillFiles = glob.sync('/skills/**/skill.yaml', { - root: target, - absolute: true, - }); return Promise.all(_.map(skillFiles, async (uri) => { const skill = await readFile(uri).catch(() => { }); return { From 444b39f620d3b4e7aa67d78778322f2ac61f1258 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Wed, 19 Jan 2022 15:04:15 -0500 Subject: [PATCH 640/864] Securely persist github token --- package-lock.json | 280 +++++++++++++++++++-- package.json | 5 +- src/commands/workspaces/configure.js | 11 +- src/commands/workspaces/generate.js | 4 +- src/commands/workspaces/workspace-utils.js | 17 +- 5 files changed, 285 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0e8bffc1..5661dd38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -341,13 +341,13 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, @@ -994,6 +994,11 @@ } } }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1027,12 +1032,55 @@ "default-require-extensions": "^3.0.0" } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha1-sVR0qTKtq0/4pQ2a36fk6SbyEUY=", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1653,6 +1701,11 @@ "mimic-response": "^1.0.0" } }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, "collection-visit": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", @@ -1710,6 +1763,11 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, "convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -1727,6 +1785,11 @@ } } }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=" + }, "cpu-features": { "version": "0.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.2.tgz", @@ -1819,8 +1882,7 @@ "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "deep-is": { "version": "0.1.3", @@ -1877,6 +1939,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, + "delegates": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, "depd": { "version": "1.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", @@ -1924,6 +1991,11 @@ } } }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, "detective-amd": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.0.tgz", @@ -2605,7 +2677,7 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, @@ -2741,6 +2813,11 @@ "through": "^2.3.8" } }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha1-bhSz/O4POmNA7LV9LokYaSBSpHw=" + }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -3057,6 +3134,41 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gauge": { + "version": "2.7.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3200,6 +3312,11 @@ } } }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -3364,6 +3481,11 @@ "has-symbols": "^1.0.2" } }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -3509,8 +3631,7 @@ "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "inquirer": { "version": "8.2.0", @@ -4061,6 +4182,15 @@ "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, + "keytar": { + "version": "7.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keytar/-/keytar-7.7.0.tgz", + "integrity": "sha1-MAKxBsAWMap5saqe4Ek7lBebu9I=", + "requires": { + "node-addon-api": "^3.0.0", + "prebuild-install": "^6.0.0" + } + }, "keyv": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", @@ -4309,8 +4439,7 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "3.1.6", @@ -4674,6 +4803,11 @@ "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha1-sf3cCyxG44Cgt6dvmE3UfEGhOAY=" + }, "natural-compare": { "version": "1.4.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", @@ -4716,6 +4850,26 @@ "propagate": "^2.0.0" } }, + "node-abi": { + "version": "2.30.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-abi/-/node-abi-2.30.1.tgz", + "integrity": "sha1-xDfUsf4OKFqvKQ1FtF1Nev7axM8=", + "requires": { + "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" + } + } + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha1-gTJeCiEXeJwBKNq2Xn448HzroWE=" + }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -4779,6 +4933,22 @@ "npm-package-arg": "^8.0.0" } }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, "nyc": { "version": "15.0.1", "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", @@ -5053,7 +5223,7 @@ "dependencies": { "isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true } @@ -5127,6 +5297,26 @@ "uniq": "^1.0.1" } }, + "prebuild-install": { + "version": "6.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-6.1.4.tgz", + "integrity": "sha1-rjwBQq1hHVhXC4mvSYYIikk34A8=", + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.21.0", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + } + }, "precinct": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/precinct/-/precinct-7.1.0.tgz", @@ -5183,6 +5373,11 @@ "parse-ms": "^2.1.0" } }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" + }, "process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -5280,7 +5475,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -5291,8 +5485,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" } } }, @@ -5909,8 +6102,7 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { "version": "2.0.1", @@ -5964,6 +6156,36 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha1-9Gl2CCujXCJj8cirXt/ibEHJVS8=" + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha1-tFvgYkNeUNFZVAtXYgLO7EC5xrM=", + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha1-QUAjzHowLaJc4uyC0NUjjMr9iYY=", + "requires": { + "mimic-response": "^2.0.0" + } + }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" + } + } + }, "sinon": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", @@ -6207,6 +6429,14 @@ "is-regexp": "^1.0.0" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", @@ -6435,6 +6665,14 @@ "tslib": "^1.8.1" } }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -6646,6 +6884,14 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha1-3x1MIGhUNp7PPJpImPGyP72dFdM=", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -6669,12 +6915,12 @@ "dependencies": { "async": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-1.0.0.tgz", "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" }, "colors": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" } } diff --git a/package.json b/package.json index 5bfb0454..1499dbf8 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,9 @@ "chalk": "4.1.2", "cli-progress": "3.9.1", "cli-table3": "0.6.0", - "dockerode": "3.3.1", "commander": "8.3.0", "debug": "4.3.3", + "dockerode": "3.3.1", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", @@ -54,12 +54,13 @@ "joi": "17.5.0", "jose-node-cjs-runtime": "4.3.7", "js-yaml": "4.1.0", + "keytar": "7.7.0", "lodash": "4.17.21", "minimatch": "3.0.4", + "mixin-deep": "^2.0.1", "moment": "2.29.1", "npm-registry-fetch": "12.0.0", "open": "8.4.0", - "mixin-deep": "^2.0.1", "prompt": "1.2.0", "semver": "7.3.5", "treeify": "1.1.0", diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index 84bc0d5e..4b03fe9b 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -4,7 +4,7 @@ const got = require('got'); const open = require('open'); const moment = require('moment'); -const { printToTerminal, validateToken } = require('./workspace-utils'); +const { printToTerminal, validateToken, persistToken } = require('./workspace-utils'); const _ = { get: require('lodash/get'), @@ -54,7 +54,7 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { }, ]) .then(async (answers) => { - let githubToken = await validateToken(config); + const githubToken = await validateToken(); if (!githubToken && !this.options.refresh) { printError('Current Github credentials invalid. Reauthorization required.', this.options, false); @@ -104,11 +104,8 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { if (accessToken.access_token) { clearTimeout(pollTimer); - githubToken = accessToken; - config.templateConfig = { - ...answers, - githubToken, - }; + persistToken(accessToken); + config.templateConfig = answers; config.save(); printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); resolve(); diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index 4fecff06..aa094b66 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -48,7 +48,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { this.gitRepo = repo; this.branch = branch; - this.authorization = `${githubToken.token_type} ${githubToken.access_token}`; + this.authorization = githubToken; this.tree = await ghGot(`repos/${repo}/branches/${branch || 'main'}`, { headers: { authorization: this.authorization }, @@ -130,7 +130,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { this.destination = destination; this.config = readConfig(); - this.githubToken = await validateToken(this.config); + this.githubToken = await validateToken(); if (!this.githubToken) { printError( diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 7dbf9502..42ddaff2 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -13,16 +13,25 @@ const _ = { mean: require('lodash/mean'), }; +const keytar = require('keytar'); + const { loadProfile } = require('../../config'); -module.exports.validateToken = function validateToken(config) { - const githubToken = _.get(config, 'templateConfig.githubToken'); - if (githubToken) { - return ghGot('user', { token: githubToken.access_token }).catch(() => undefined).then((u) => ((u && u.statusCode === 200) ? githubToken.access_token : undefined)); +const CORTEX_CLI_AUTH_ID = 'cortex-cli:github'; +const CORTEX_CLI_AUTH_USER = 'cortex-cli'; + +module.exports.validateToken = async function validateToken() { + const authorization = await keytar.getPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER); + if (authorization) { + return ghGot('user', { headers: { authorization } }).catch(() => undefined).then((u) => ((u && u.statusCode === 200) ? authorization : undefined)); } return undefined; }; +module.exports.persistToken = async function persistToken(token) { + await keytar.setPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER, `${token.token_type} ${token.access_token}`); +}; + module.exports.printToTerminal = function printToTerminal(txt) { process.stdout.write(`${txt}\x1b[0K\x1b[1E`); }; From dfb6f41b987092cdefca1156ce51ad6a19a15bee Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Fri, 14 Jan 2022 11:12:25 -0500 Subject: [PATCH 641/864] WIP --- bin/cortex-workspaces.js | 15 +++ src/commands/workspaces/test.js | 189 ++++++++++++++++++++++++++++++++ 2 files changed, 204 insertions(+) create mode 100644 src/commands/workspaces/test.js diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 58d71c23..8bf8adf7 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -29,6 +29,7 @@ const { WorkspaceActivateRegistryCommand, WorkspaceListRegistryCommand, } = require('../src/commands/workspaces/registry'); +const { WorkspaceTestCommand } = require('../src/commands/workspaces/test'); program.name('cortex workspaces'); program.description('Scaffolding Cortex Components'); @@ -140,6 +141,20 @@ program } }); + program + .command('test [folder]') + .option('--color [on/off]', 'Turn on/off colors', 'on') + .option('--skill [skill name]', 'Test only the specified skill') + .option('--input [input name]', 'Test only the specified input') + .description('Tests the specified skill locally') + .action((folder, options) => { // deliberately not using withCompatibilityCheck() + try { + new WorkspaceTestCommand(program).execute(folder, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } diff --git a/src/commands/workspaces/test.js b/src/commands/workspaces/test.js new file mode 100644 index 00000000..fb55b486 --- /dev/null +++ b/src/commands/workspaces/test.js @@ -0,0 +1,189 @@ +const path = require('path'); +const Docker = require('dockerode'); +const glob = require('glob'); +const { + readFile, +} = require('fs/promises'); + +const { printSuccess, printError } = require('../utils'); +const { getSkillInfo, buildImageTag } = require('./workspace-utils'); + +const _ = { + map: require('lodash/map'), + filter: require('lodash/filter'), + forEach: require('lodash/forEach'), + find: require('lodash/find'), +}; + +module.exports.WorkspaceTestCommand = class WorkspaceTestCommand { + constructor(program) { + this.program = program; + this.docker = new Docker(); + } + + selectRoute(input) { + if (input.routing.all) { + return input.routing.all; + } + /// TODO: support additional routing types here + return undefined; + } + + async invokeJob(skill, route, payload) { + const action = _.find(skill.actions, { name: route.action }); + const Image = await buildImageTag(action.image); + + try { + console.log('Running Job', Image); + + const info = await this.docker.getImage(Image).inspect(); + + const container = await this.docker.createContainer({ + Tty: true, + Image, + name: 'invoke-job', + Cmd: [...info.Config.Entrypoint, JSON.stringify(payload)], + EntryPoint: [''], + HostConfig: { AutoRemove: true }, + Env: ['START_WITHOUT_ENVOY=true'], + }); + + const stream = await container.attach({ stream: true, stdout: true, stderr: true }); + stream.on('data', (data) => { + console.log(data.toString()); + }); + + await container.start(); + return await container.wait().finally(() => stream.destroy()); + } catch (err) { + console.error('ERROR: ', err); + } + + return undefined; + } + + async invokeDaemon(skill, route) { + const action = _.find(skill.actions, { name: route.action }); + const Image = await buildImageTag(action.image); + + try { + console.log('Running Daemon', Image); + const info = await this.docker.getImage(Image).inspect(); + + const daemonPort = _.find(skill.properties, { name: 'daemon.port' }).defaultValue || 5000; + // const daemonMethod = _.find(skill.properties, { name: 'daemon.method' }).defaultValue || 'POST'; + // const daemonPath = _.find(skill.properties, { name: 'daemon.path' }).defaultValue || 'invoke'; + + const ExposedPorts = {}; + ExposedPorts[`${daemonPort}/tcp`] = {}; + + const PortBindings = {}; + PortBindings[`${daemonPort}/tcp`] = [ + { + HostIp: '127.0.0.1', + HostPort: `${daemonPort}`, + }, + ]; + + const existingContainer = await this.docker.getContainer('invoke-daemon'); + if (await existingContainer.inspect().catch(() => {})) { + await existingContainer.remove({ force: true }); + } + + const container = await this.docker.createContainer({ + Tty: true, + Image, + name: 'invoke-daemon', + Cmd: info.Config.Cmd, + EntryPoint: [''], + ExposedPorts, + HostConfig: { + AutoRemove: true, + PortBindings, + }, + Env: [ + 'START_WITHOUT_ENVOY=true', + 'NEVER_KILL_ISTIO=true', + 'ISTIO_QUIT_API=', + ], + }).catch((err) => console.error('ERROR: ', err)); + + const stream = await container.attach({ stream: true, stdout: true, stderr: true }); + stream.on('data', (data) => { + console.log(data.toString()); + }); + + await container.start(); + + return await container.wait().finally(() => stream.destroy()); + } catch (err) { + console.error('ERROR: ', err); + } + + return undefined; + } + + async execute(folder, options) { + this.options = options; + let target = process.cwd(); + + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } + + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + } + + const skillInfo = await getSkillInfo(target); + + if (skillInfo.length > 0) { + await Promise.all(_.map(skillInfo, async (info) => { + const { skill } = info; + const skillDir = path.dirname(info.uri); + + await Promise.all(_.map(skill.inputs, async (input) => { + if (!options.input || input.name === options.input) { + const payloadFiles = glob.sync(`/invoke/${input.name}/*.json`, { + root: skillDir, + absolute: true, + }); + await Promise.all(_.map(payloadFiles, async (payloadFile) => { + try { + const payload = JSON.parse(await readFile(payloadFile, { encoding: 'utf8' }).catch(() => {})); + const route = this.selectRoute(input); + let status = { StatusCode: 1 }; + + switch (route.runtime) { + case 'cortex/jobs': + status = await this.invokeJob(skill, route, payload); + break; + case 'cortex/daemons': + status = await this.invokeDaemon(skill, route, payload); + break; + case 'cortex/external-api': + console.log('Run external-api', input.name); + break; + default: + console.error('Unknown runtime'); + } + + if (status.StatusCode) { + printError(`Invoke FAILED (${status.StatusCode}) ${status.Error || ''}`, this.options, false); + } else { + printSuccess('Invoke Succeeded'); + } + } catch (err) { + console.error('ERROR: ', err); + } + })); + } + })); + })); + } else { + console.log('No skills found'); + } + } +}; + From e63a10fe19912b95eb8d407ac45c9a35a5dba558 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Fri, 4 Feb 2022 19:43:01 -0500 Subject: [PATCH 642/864] Audit fixes --- package-lock.json | 2849 +++++++++++++++++++-------------------------- package.json | 34 +- 2 files changed, 1242 insertions(+), 1641 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5661dd38..d7059dc5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,115 +4,64 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@ampproject/remapping": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ampproject/remapping/-/remapping-2.0.2.tgz", + "integrity": "sha1-89l2C/MFiMUUCNvnwF/yuxMGkwc=", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.2.2", + "sourcemap-codec": "1.4.8" + } + }, "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha1-REFra9diS5mPWxr11HCFbEATh4k=", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.16.7" } }, "@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha1-hoULhZfqaWIIl3CVIHXcqruNujQ=", "dev": true }, "@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/core/-/core-7.17.0.tgz", + "integrity": "sha1-Frh3KwpWfyFYOfaJxd7WuyDoZNU=", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.0.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.0", + "@babel/parser": "^7.17.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "semver": "^6.3.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "@babel/parser": { + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha1-8Kwz7dviFOQQU2O7F8M0HF/8xDw=", "dev": true }, "json5": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-2.2.0.tgz", + "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", "dev": true, "requires": { "minimist": "^1.2.5" @@ -120,200 +69,162 @@ }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, "@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/generator/-/generator-7.17.0.tgz", + "integrity": "sha1-e9iQunBs2G0+L3JzIjRv/b+Y9l4=", "dev": true, "requires": { - "@babel/types": "^7.16.0", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha1-BuZsXymWAebH2jUASTFegyCdVRs=", "dev": true, "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" }, "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true } } }, - "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha1-/0hAlKg5venYnNY8ugF9eq6A7Nc=", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, - "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha1-8exRVR+xyJVryN2V84Ujts83X48=", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" } }, - "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha1-6gisdTEXpmnxUIugbrzEkVY4dBk=", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha1-hryxmnelCce3fQ4iMj71iPpYwkY=", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha1-JWEqgJGpmXBEYciiItDv7F0JFDc=", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - } - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha1-dmX663IaAcpTJ93Gu6FaXLNLakE=", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha1-1lZlS56gjbuWWbadYQY8zTQ/8Pc=", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha1-C2SMDELanTkg2FrVhfJ3hiC4cms=", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha1-6MYCQ4xKgZV1EkPakDHRYH0kfK0=", "dev": true }, "@babel/helper-validator-option": { - "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==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha1-sgPOYs5f4VOJm2F8CJV96GDeTSM=", "dev": true }, "@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helpers/-/helpers-7.17.0.tgz", + "integrity": "sha1-ec32xmpXnzp7XnOTcbxjygMGiGs=", "dev": true, "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.16.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha1-dE8uuBV51u6nU8InsPVwrXhauog=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -321,8 +232,8 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -332,8 +243,8 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "dev": true, "requires": { "color-name": "1.1.3" @@ -353,8 +264,8 @@ }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -369,217 +280,70 @@ "dev": true }, "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha1-jRJshwH95NZrJks+uj2W8HZm0VU=", "dev": true, "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" }, "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "@babel/parser": { + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha1-8Kwz7dviFOQQU2O7F8M0HF/8xDw=", "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, "@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/traverse/-/traverse-7.17.0.tgz", + "integrity": "sha1-MUPlBmeWQIzMiAoz7NMYTz51zTA=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "@babel/parser": { + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha1-8Kwz7dviFOQQU2O7F8M0HF/8xDw=", "dev": true }, "globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha1-qCbjaLzLaz2ErNdqytXA2HNCOQs=", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.15.7", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - } } }, "@eslint/eslintrc": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha1-M/G4ONvx+SO/pRfgCDYreN278xg=", "dev": true, "requires": { "ajv": "^6.12.4", @@ -591,6 +355,14 @@ "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true + } } }, "@gar/promisify": { @@ -599,39 +371,39 @@ "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" }, "@hapi/hoek": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", - "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + "version": "9.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha1-lVEUKhmAUDdSU2tQUP2Z9KfxOxc=" }, "@hapi/topo": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", - "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha1-3ESOMyxsbjek3AL9hLqNRLmvsBI=", "requires": { "@hapi/hoek": "^9.0.0" } }, "@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "version": "0.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha1-8lZMdEs4d3W0NkGEkfFfzmYB9j4=", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" } }, "@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", "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", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha1-/T2x1Z7PfPEh6AZQu4ZxL5tV7O0=", "dev": true, "requires": { "camelcase": "^5.3.1", @@ -643,37 +415,108 @@ "dependencies": { "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, "resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", "dev": true } } }, "@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha1-5F44TkuOwWvOL9kDr3hFD2v37Jg=", "dev": true }, + "@jridgewell/resolve-uri": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz", + "integrity": "sha1-uHbj/u+5yNOqhAFNooteUqBkDXI=", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/trace-mapping/-/trace-mapping-0.2.6.tgz", + "integrity": "sha1-XqxL6htW4HNHHG8CFYK9uYbEuLc=", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "sourcemap-codec": "1.4.8" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -725,21 +568,21 @@ }, "@sideway/address": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.3.tgz", + "integrity": "sha1-2TzOXUXF2uySrXbbSSzC7jxkqyc=", "requires": { "@hapi/hoek": "^9.0.0" } }, "@sideway/formula": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha1-/hWK7jLmvV3oUES+YVvAhHigoTw=" }, "@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha1-z/j/rcNyrSn9P3gneusp5jLMcN8=" }, "@sindresorhus/is": { "version": "4.2.0", @@ -900,8 +743,8 @@ }, "@ungap/promise-all-settled": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=", "dev": true }, "JSONStream": { @@ -916,14 +759,14 @@ }, "acorn": { "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha1-kJUf3g+PCd+TVJSB5fwUFEW3kc8=", "dev": true }, "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "version": "5.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", "dev": true }, "agent-base": { @@ -955,8 +798,8 @@ }, "ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -975,8 +818,8 @@ }, "ansi-colors": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", "dev": true }, "ansi-escapes": { @@ -1009,8 +852,8 @@ }, "anymatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -1025,8 +868,8 @@ }, "append-transform": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha1-mdnSnHs4OR5vQo0ozhNlUfC3fhI=", "dev": true, "requires": { "default-require-extensions": "^3.0.0" @@ -1039,7 +882,7 @@ }, "archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/archy/-/archy-1.0.0.tgz", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, @@ -1093,8 +936,8 @@ }, "array-includes": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -1112,8 +955,8 @@ }, "array.prototype.flat": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha1-B+CXXYS7x8SM0YedYJ5oJZjTPhM=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -1142,8 +985,8 @@ }, "assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", "dev": true }, "assign-symbols": { @@ -1158,9 +1001,9 @@ "dev": true }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", "dev": true }, "async": { @@ -1282,8 +1125,8 @@ }, "binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", "dev": true }, "binaryextensions": { @@ -1391,18 +1234,18 @@ }, "browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", "dev": true }, "browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "version": "4.19.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha1-SsBDWzWrZViWwx1TAYtt1enkyaM=", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", "node-releases": "^2.0.1", "picocolors": "^1.0.0" @@ -1497,8 +1340,8 @@ }, "caching-transform": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha1-ANKXpCBtceIWPDnq/6gVesBlHw8=", "dev": true, "requires": { "hasha": "^5.0.0", @@ -1519,32 +1362,33 @@ }, "callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", "dev": true }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha1-VoW5XrIJrJwMF3Rnd4ychN9Yupo=", "dev": true }, "caniuse-lite": { - "version": "1.0.30001283", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", - "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", + "version": "1.0.30001307", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001307.tgz", + "integrity": "sha1-J6Z/E+vEqpyXfmuCVqEdXq+zDyc=", "dev": true }, "chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "version": "4.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.3.6.tgz", + "integrity": "sha1-/+S6LZ+p1mgMwLNwra5wnskBHpw=", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", + "loupe": "^2.3.1", "pathval": "^1.1.1", "type-detect": "^4.0.5" } @@ -1585,9 +1429,9 @@ "dev": true }, "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha1-HPN8hwe5Mr0a8a4iwEMuKs0ZA70=", "dev": true, "requires": { "anymatch": "~3.1.2", @@ -1661,29 +1505,29 @@ "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=" }, "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "7.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -1770,8 +1614,8 @@ }, "convert-source-map": { "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k=", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -1779,8 +1623,8 @@ "dependencies": { "safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", "dev": true } } @@ -1809,11 +1653,11 @@ } }, "cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "version": "3.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha1-4TifRNnnunZ5B/evhFR4eVKrU08=", "requires": { - "node-fetch": "2.6.1" + "node-fetch": "2.6.7" } }, "cross-spawn": { @@ -1841,9 +1685,9 @@ } }, "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=", "dev": true }, "decomment": { @@ -1872,8 +1716,8 @@ }, "deep-eql": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -1892,8 +1736,8 @@ }, "default-require-extensions": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha1-4D+TqsmytkQ/xS5eSjezrZrY35Y=", "dev": true, "requires": { "strip-bom": "^4.0.0" @@ -1901,8 +1745,8 @@ "dependencies": { "strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha1-nDUFwdtFvO3KPZz3oW9cWqOQGHg=", "dev": true } } @@ -1992,9 +1836,9 @@ } }, "detect-libc": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-libc/-/detect-libc-2.0.0.tgz", + "integrity": "sha1-xSi8CbxtGqMBSSKCQJF8IlRI8gQ=" }, "detective-amd": { "version": "3.1.0", @@ -2135,8 +1979,8 @@ }, "doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", "dev": true, "requires": { "esutils": "^2.0.2" @@ -2154,15 +1998,15 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "electron-to-chromium": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.5.tgz", - "integrity": "sha512-YKaB+t8ul5crdh6OeqT2qXdxJGI0fAYb6/X8pDIyye+c3a7ndOCk5gVeKX+ABwivCGNS56vOAif3TN0qJMpEHw==", + "version": "1.4.64", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.64.tgz", + "integrity": "sha1-ixtTcvd8ogjyxJjGSQ2g5RF2vYE=", "dev": true }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", "dev": true }, "encoding": { @@ -2194,8 +2038,8 @@ }, "enquirer": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", "dev": true, "requires": { "ansi-colors": "^4.1.1" @@ -2247,8 +2091,8 @@ }, "es6-error": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha1-njr0B0Wd7tR+mpH5uIWoTrBcVh0=", "dev": true }, "escalade": { @@ -2291,24 +2135,23 @@ } }, "eslint": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", - "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", + "version": "8.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.7.0.tgz", + "integrity": "sha1-IuA2hC7lt8+HsD/iN3MWdbTTYzw=", "dev": true, "requires": { - "@eslint/eslintrc": "^1.0.4", - "@humanwhocodes/config-array": "^0.6.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.0", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.1.0", - "espree": "^9.1.0", + "eslint-visitor-keys": "^3.2.0", + "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2316,7 +2159,7 @@ "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.6.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", @@ -2327,9 +2170,7 @@ "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", "regexpp": "^3.2.0", - "semver": "^7.2.1", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", @@ -2338,83 +2179,20 @@ "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", "dev": true }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", "dev": true }, "glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", "dev": true, "requires": { "is-glob": "^4.0.3" @@ -2422,8 +2200,8 @@ "dependencies": { "is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -2433,8 +2211,8 @@ }, "levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", + "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", "dev": true, "requires": { "prelude-ls": "^1.2.1", @@ -2443,8 +2221,8 @@ }, "optionator": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", "dev": true, "requires": { "deep-is": "^0.1.3", @@ -2457,20 +2235,14 @@ }, "prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", "dev": true }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", "dev": true, "requires": { "ansi-regex": "^5.0.1" @@ -2478,8 +2250,8 @@ }, "type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", "dev": true, "requires": { "prelude-ls": "^1.2.1" @@ -2509,8 +2281,8 @@ }, "eslint-import-resolver-node": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", "dev": true, "requires": { "debug": "^3.2.7", @@ -2519,29 +2291,29 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" } }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.8.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha1-9Z/fynAdWHnQprEApAqhVgzichE=", "dev": true, "requires": { "has": "^1.0.3" } }, "resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "version": "1.22.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha1-XguMZ8Fd9XqJvbq+YDoALyFzEZg=", "dev": true, "requires": { - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -2549,9 +2321,9 @@ } }, "eslint-module-utils": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", - "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", + "version": "2.7.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha1-rX46EFUv3QZC4eVSkngb1uNIdu4=", "dev": true, "requires": { "debug": "^3.2.7", @@ -2560,68 +2332,19 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", "dev": true, "requires": { "ms": "^2.1.1" } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true } } }, "eslint-plugin-import": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", - "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "version": "2.25.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha1-Mi8/kWpOnpkax68yAywlzjEyCfE=", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -2629,20 +2352,20 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.1", + "eslint-module-utils": "^2.7.2", "has": "^1.0.3", "is-core-module": "^2.8.0", "is-glob": "^4.0.3", "minimatch": "^3.0.4", "object.values": "^1.1.5", "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" + "tsconfig-paths": "^3.12.0" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "dev": true, "requires": { "ms": "2.0.0" @@ -2650,17 +2373,17 @@ }, "doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", "dev": true, "requires": { "esutils": "^2.0.2" } }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.8.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha1-9Z/fynAdWHnQprEApAqhVgzichE=", "dev": true, "requires": { "has": "^1.0.3" @@ -2668,8 +2391,8 @@ }, "is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -2682,12 +2405,12 @@ "dev": true }, "resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "version": "1.22.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha1-XguMZ8Fd9XqJvbq+YDoALyFzEZg=", "dev": true, "requires": { - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -2696,54 +2419,46 @@ }, "eslint-scope": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha1-wfbqMKxYMDHyA9Zcc+cjsBKY8VM=", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha1-b7sWameY7lmRNYvC2qG6dswSVKE=", "dev": true }, "espree": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-9.3.0.tgz", + "integrity": "sha1-wSQNeRg7cqrubM+lqQvJER3whag=", "dev": true, "requires": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^3.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", - "dev": true - } } }, "esprima": { @@ -2753,43 +2468,27 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", "dev": true, "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } } }, "esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", "dev": true, "requires": { "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", "dev": true }, "esutils": { @@ -2859,8 +2558,8 @@ }, "extract-files": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha1-indE8kN/gfXtMlDtnxVQ3pAv5Uo=" }, "eyes": { "version": "0.1.8", @@ -2869,8 +2568,8 @@ }, "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", "dev": true }, "fast-glob": { @@ -2906,8 +2605,8 @@ }, "fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", "dev": true }, "fast-levenshtein": { @@ -2942,12 +2641,12 @@ } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "filing-cabinet": { @@ -2990,24 +2689,13 @@ }, "find-cache-dir": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha1-swxbbv8HMHMa6pu9nb7L2AJW1ks=", "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" - }, - "dependencies": { - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } } }, "find-package-json": { @@ -3016,47 +2704,34 @@ "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" } }, "flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-5.0.2.tgz", + "integrity": "sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=", "dev": true }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha1-dshYT0/IQ9tkcCpr0Eq3qL1mbaM=", "dev": true }, "flatten": { @@ -3067,8 +2742,8 @@ }, "foreground-child": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha1-cbMoAMnxWqjy+D9Ka9m/812GGlM=", "dev": true, "requires": { "cross-spawn": "^7.0.0", @@ -3093,8 +2768,8 @@ }, "fromentries": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha1-5LymgIgWv4+TtSdQ8RJ/Wm/Ybjo=", "dev": true }, "fs-constants": { @@ -3117,8 +2792,8 @@ }, "fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", "dev": true, "optional": true }, @@ -3171,8 +2846,8 @@ }, "gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", "dev": true }, "get-amd-module-type": { @@ -3193,7 +2868,7 @@ }, "get-func-name": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, @@ -3216,8 +2891,8 @@ }, "get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha1-jeLYA8/0TfO8bEVuZmizbDkm4Ro=", "dev": true }, "get-stream": { @@ -3355,20 +3030,12 @@ } }, "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.12.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.12.1.tgz", + "integrity": "sha1-7CBr6TLmx3I2Z3EnV3qo5Qvxxcs=", "dev": true, "requires": { "type-fest": "^0.20.2" - }, - "dependencies": { - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } } }, "gonzales-pe": { @@ -3410,9 +3077,9 @@ "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-request": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.6.1.tgz", - "integrity": "sha512-Nm1EasrAQVZllyNTlHDLnLZjlhC6eRWnWP6KH//ytnAL08pjlLkdI2K+s6OV92p45hn5b/kUlLbDwACmRoLwrQ==", + "version": "3.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.7.0.tgz", + "integrity": "sha1-x0BuU3CE+Ll4hUHj5nBDQMoTBVs=", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -3421,8 +3088,8 @@ "dependencies": { "form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -3442,8 +3109,8 @@ }, "growl": { "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", "dev": true }, "has": { @@ -3488,18 +3155,26 @@ }, "hasha": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha1-pIR3mJs7MnrqPAT1MJbYFtl1IqE=", "dev": true, "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", + "dev": true + } } }, "he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", "dev": true }, "hosted-git-info": { @@ -3512,8 +3187,8 @@ }, "html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha1-39YAJ9o2o238viNiYsAKWCJoFFM=", "dev": true }, "http-cache-semantics": { @@ -3578,15 +3253,15 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha1-bTusj6f+DUXZ+b57rC/CeVd+NFo=", "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -3725,8 +3400,8 @@ }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", "dev": true, "requires": { "binary-extensions": "^2.0.0" @@ -3783,9 +3458,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", "dev": true }, "is-glob": { @@ -3850,8 +3525,8 @@ }, "is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=", "dev": true }, "is-plain-object": { @@ -3892,8 +3567,8 @@ }, "is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", "dev": true }, "is-string": { @@ -3916,7 +3591,7 @@ }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, @@ -3942,8 +3617,8 @@ }, "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", "dev": true }, "is-wsl": { @@ -3977,14 +3652,14 @@ }, "istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha1-GJ55CdCjn6Wj361bA/cZR3cBkdM=", "dev": true }, "istanbul-lib-hook": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha1-j4TJQ0iIzGsdCp1wkqdtI56/DMY=", "dev": true, "requires": { "append-transform": "^2.0.0" @@ -3992,8 +3667,8 @@ }, "istanbul-lib-instrument": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha1-hzxv/4l0UBGCIndGlqPyiQLXfB0=", "dev": true, "requires": { "@babel/core": "^7.7.5", @@ -4004,16 +3679,16 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true } } }, "istanbul-lib-processinfo": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha1-4UJlFGYiRLLyXfco6P0bo1/lO5w=", "dev": true, "requires": { "archy": "^1.0.0", @@ -4027,8 +3702,8 @@ "dependencies": { "p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -4044,8 +3719,8 @@ }, "istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha1-dRj+UupE3jcvRgp2tezan/tz2KY=", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", @@ -4055,8 +3730,8 @@ }, "istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha1-iV86cJ/PujTG3lpCk5Ai8+Q1hVE=", "dev": true, "requires": { "debug": "^4.1.1", @@ -4066,16 +3741,16 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true } } }, "istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha1-S8rjEDuUUYEXkw1RKDaQlgtQ08I=", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -4103,9 +3778,9 @@ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "joi": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz", - "integrity": "sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==", + "version": "17.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-17.6.0.tgz", + "integrity": "sha1-C7VPLwBsCaludc5oeVe9BCkAVLI=", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4115,14 +3790,14 @@ } }, "jose-node-cjs-runtime": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.3.7.tgz", - "integrity": "sha512-w08oYOXQ06/rcCEL5DB4HE5XJaHpB79ZTmCOP1YsRyZZtWQPPCQx+fQAANw1qlcmVA8BcBAE62QqKYDctCEtrQ==" + "version": "4.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.4.0.tgz", + "integrity": "sha1-xQ7LOJktHfQkEY+HmRvq18av6ME=" }, "js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", "dev": true }, "js-yaml": { @@ -4135,8 +3810,8 @@ }, "jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", "dev": true }, "json-buffer": { @@ -4146,8 +3821,8 @@ }, "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==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", "dev": true }, "json-stable-stringify-without-jsonify": { @@ -4164,8 +3839,8 @@ }, "json5": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", "dev": true, "requires": { "minimist": "^1.2.0" @@ -4183,12 +3858,12 @@ "dev": true }, "keytar": { - "version": "7.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keytar/-/keytar-7.7.0.tgz", - "integrity": "sha1-MAKxBsAWMap5saqe4Ek7lBebu9I=", + "version": "7.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keytar/-/keytar-7.8.0.tgz", + "integrity": "sha1-KM9c7rEnU1CIiHACKGm4tP5qh/k=", "requires": { - "node-addon-api": "^3.0.0", - "prebuild-install": "^6.0.0" + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" } }, "keyv": { @@ -4216,12 +3891,13 @@ } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -4231,7 +3907,7 @@ }, "lodash.flattendeep": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, @@ -4243,8 +3919,8 @@ }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", "dev": true }, "lodash.set": { @@ -4253,6 +3929,12 @@ "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -4262,6 +3944,15 @@ "is-unicode-supported": "^0.1.0" } }, + "loupe": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/loupe/-/loupe-2.3.2.tgz", + "integrity": "sha1-eZpWa6WqjRG5PdzMksVpu65+lJA=", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -4347,8 +4038,8 @@ }, "make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", "dev": true, "requires": { "semver": "^6.0.0" @@ -4356,8 +4047,8 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", "dev": true } } @@ -4536,105 +4227,57 @@ "integrity": "sha1-+hDJEVzG2IZb4iG6R+6b7XhgERM=" }, "mocha": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", - "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", + "version": "9.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.2.0.tgz", + "integrity": "sha1-K/unPUbjkpAfh3q5pHt8nF0Cdcw=", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.5.2", - "debug": "4.3.2", + "chokidar": "3.5.3", + "debug": "4.3.3", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.1.7", + "glob": "7.2.0", "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "3.0.4", "ms": "2.1.3", - "nanoid": "3.1.25", + "nanoid": "3.2.0", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "workerpool": "6.1.5", + "workerpool": "6.2.0", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "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" - }, - "dependencies": { - "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 - } - } - }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", "dev": true }, "find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", "dev": true, "requires": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", "dev": true, "requires": { "p-locate": "^5.0.0" @@ -4642,14 +4285,14 @@ }, "ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", "dev": true }, "p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", "dev": true, "requires": { "yocto-queue": "^0.1.0" @@ -4657,90 +4300,49 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", "dev": true, "requires": { "p-limit": "^3.0.2" } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true }, "supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", "dev": true, "requires": { "has-flag": "^4.0.0" } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + } + } + }, + "mocked-env": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", + "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", + "dev": true, + "requires": { + "check-more-types": "2.24.0", + "debug": "4.3.2", + "lazy-ass": "1.6.0", + "ramda": "0.27.1" + }, + "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": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - } - } - }, - "mocked-env": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", - "dev": true, - "requires": { - "check-more-types": "2.24.0", - "debug": "4.3.2", - "lazy-ass": "1.6.0", - "ramda": "0.27.1" - }, - "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": "2.1.2" } } } @@ -4798,9 +4400,9 @@ "optional": true }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha1-YmZ1Itpmc5ccypFqbT7/P0Ff+Aw=", "dev": true }, "napi-build-utils": { @@ -4819,12 +4421,6 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "nise": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", @@ -4839,9 +4435,9 @@ } }, "nock": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.4.tgz", - "integrity": "sha512-hr5+mknLpIbTOXifB13lx9mAKF1zQPUCMh53Galx79ic5opvNOd55jiB0iGCp2xqh+hwnFbNE/ddBKHsJNQrbw==", + "version": "13.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.2.tgz", + "integrity": "sha1-KaaUIlAnggnCs+ejgxD3A1gbIfo=", "dev": true, "requires": { "debug": "^4.1.0", @@ -4851,34 +4447,30 @@ } }, "node-abi": { - "version": "2.30.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha1-xDfUsf4OKFqvKQ1FtF1Nev7axM8=", + "version": "3.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-abi/-/node-abi-3.8.0.tgz", + "integrity": "sha1-Z5lX3I56pHsKAlidv95Pd7KcyzI=", "requires": { - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" - } + "semver": "^7.3.5" } }, "node-addon-api": { - "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha1-gTJeCiEXeJwBKNq2Xn448HzroWE=" + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha1-UqGgtHUZPgko6Y4EJqDRJUeCt38=" }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha1-JN6fuoJ+O0rkTciyAlajeRYAUq0=", + "requires": { + "whatwg-url": "^5.0.0" + } }, "node-preload": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha1-wDBDuzJ/QXoY/uerfuV7QIoUQwE=", "dev": true, "requires": { "process-on-spawn": "^1.0.0" @@ -4886,8 +4478,8 @@ }, "node-releases": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha1-PR05XyBPHy8ppUNYuftnh2WtL8U=", "dev": true }, "node-source-walk": { @@ -4901,8 +4493,8 @@ }, "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", "dev": true }, "normalize-url": { @@ -4950,9 +4542,9 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "nyc": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.0.1.tgz", - "integrity": "sha512-n0MBXYBYRqa67IVt62qW1r/d9UH/Qtr7SF1w/nQLJ9KxvWF6b2xCHImRAixHN9tnMMYHC2P14uo6KddNGwMgGg==", + "version": "15.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha1-EzXa4S3ch7biSdWhmUykva6nXwI=", "dev": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", @@ -4963,6 +4555,7 @@ "find-cache-dir": "^3.2.0", "find-up": "^4.1.0", "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", "glob": "^7.1.6", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-hook": "^3.0.0", @@ -4983,20 +4576,153 @@ "yargs": "^15.0.2" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, "p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", "dev": true, "requires": { "aggregate-error": "^3.0.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, "resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, @@ -5050,8 +4776,8 @@ }, "object.values": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw=", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -5123,21 +4849,21 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" } }, "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==", + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -5157,15 +4883,15 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "package-hash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha1-NTf2VGZew8w4gnOH/JBMFjxU9QY=", "dev": true, "requires": { "graceful-fs": "^4.1.15", @@ -5176,8 +4902,8 @@ }, "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", "dev": true, "requires": { "callsites": "^3.0.0" @@ -5190,9 +4916,9 @@ "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==", + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { @@ -5231,8 +4957,8 @@ }, "pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha1-hTTnenfOesWiUS6iHg/bj89sPY0=", "dev": true }, "pause-stream": { @@ -5256,11 +4982,71 @@ "dev": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha1-O6ODNzNkbZ0+SZWUbBNlpn+wekI=", "dev": true }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + } + } + }, "pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", @@ -5279,9 +5065,9 @@ }, "dependencies": { "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha1-YmZ1Itpmc5ccypFqbT7/P0Ff+Aw=", "dev": true } } @@ -5298,21 +5084,21 @@ } }, "prebuild-install": { - "version": "6.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha1-rjwBQq1hHVhXC4mvSYYIikk34A8=", + "version": "7.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-7.0.1.tgz", + "integrity": "sha1-wQB1cnwxjv5yQS8zPg72Jb6vOHA=", "requires": { - "detect-libc": "^1.0.3", + "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", + "node-abi": "^3.3.0", "npmlog": "^4.0.1", "pump": "^3.0.0", "rc": "^1.2.7", - "simple-get": "^3.0.3", + "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" } @@ -5380,8 +5166,8 @@ }, "process-on-spawn": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha1-lbBaIwc9MKF6z9ySpEDv0rrv3JM=", "dev": true, "requires": { "fromentries": "^1.2.0" @@ -5389,8 +5175,8 @@ }, "progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", "dev": true }, "promise-inflight": { @@ -5408,12 +5194,12 @@ } }, "prompt": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.2.0.tgz", - "integrity": "sha512-iGerYRpRUg5ZyC+FJ/25G5PUKuWAGRjW1uOlhX7Pi3O5YygdK6R+KEaBjRbHSkU5vfS5PZCltSPZdDtUYwRCZA==", + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompt/-/prompt-1.2.1.tgz", + "integrity": "sha1-SfRvF6rLv1AXhvxvOjDZkHXIRsk=", "requires": { "async": "~0.9.0", - "colors": "^1.1.2", + "colors": "1.4.0", "read": "1.0.x", "revalidator": "0.1.x", "winston": "2.x" @@ -5421,8 +5207,8 @@ }, "propagate": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha1-QM3tqxgIXHkjNOZPCsFyVtOPmkU=", "dev": true }, "pump": { @@ -5436,14 +5222,14 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", "dev": true }, "querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" }, "queue-microtask": { "version": "1.2.3", @@ -5464,8 +5250,8 @@ }, "randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", "dev": true, "requires": { "safe-buffer": "^5.1.0" @@ -5509,8 +5295,8 @@ }, "readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -5523,14 +5309,14 @@ "dev": true }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", "dev": true }, "release-zalgo": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/release-zalgo/-/release-zalgo-1.0.0.tgz", "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { @@ -5543,10 +5329,16 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", + "dev": true + }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", "dev": true }, "requirejs": { @@ -5593,8 +5385,8 @@ }, "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", "dev": true }, "responselike": { @@ -5631,395 +5423,246 @@ "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" }, "rewire": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz", - "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==", + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-6.0.0.tgz", + "integrity": "sha1-VPT82k35ko0orx61SjGLxRypqpk=", "dev": true, "requires": { - "eslint": "^6.8.0" + "eslint": "^7.32.0" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "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==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@babel/highlight": "^7.10.4" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } + "acorn": { + "version": "7.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", + "dev": true }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", "dev": true }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "argparse": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", "dev": true, "requires": { - "color-name": "1.1.3" + "sprintf-js": "~1.0.2" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", "dev": true }, - "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" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "7.32.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } } }, "eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", "dev": true, "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true + } } }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", "dev": true }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "espree": { + "version": "7.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", + "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "estraverse": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", "dev": true }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "ignore": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", "dev": true }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "js-yaml": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", "dev": true, "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "levn": { + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", + "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "optionator": { + "version": "0.9.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", "dev": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "ansi-regex": "^5.0.1" } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "type-check": { + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", "dev": true, "requires": { - "isexe": "^2.0.0" + "prelude-ls": "^1.2.1" } } } @@ -6046,15 +5689,6 @@ "queue-microtask": "^1.2.2" } }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6092,8 +5726,8 @@ }, "serialize-javascript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha1-765diPRdeSQUHai1w6en5mP+/rg=", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -6162,28 +5796,13 @@ "integrity": "sha1-9Gl2CCujXCJj8cirXt/ibEHJVS8=" }, "simple-get": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha1-tFvgYkNeUNFZVAtXYgLO7EC5xrM=", + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha1-SjnbVJKHyXnTUhEvoD/Zn9a8NUM=", "requires": { - "decompress-response": "^4.2.0", + "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" - }, - "dependencies": { - "decompress-response": { - "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha1-QUAjzHowLaJc4uyC0NUjjMr9iYY=", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" - } } }, "sinon": { @@ -6207,40 +5826,14 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "smart-buffer": { @@ -6269,7 +5862,7 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, @@ -6279,10 +5872,16 @@ "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=", + "dev": true + }, "spawn-wrap": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha1-EDaFuLj5t5dxMYgnqnhlCmENRX4=", "dev": true, "requires": { "foreground-child": "^2.0.0", @@ -6445,8 +6044,8 @@ }, "strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", "dev": true }, "stylus-lookup": { @@ -6477,48 +6076,65 @@ }, "supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha1-btpL00SjyUrqN21MwxvHcxEDngk=", "dev": true }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.8.0.tgz", + "integrity": "sha1-h+KPFPpDIcM3e6KG8Ht5soGjs8o=", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "dependencies": { + "ajv": { + "version": "8.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha1-5XP3Gb068GkBfjtmU4q5aNBA5U0=", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=", "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" } } } @@ -6580,8 +6196,8 @@ }, "test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha1-BKhphmHYBepvopO2y55jrARO8V4=", "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", @@ -6615,7 +6231,7 @@ }, "to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, @@ -6633,6 +6249,11 @@ "is-number": "^7.0.0" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "treeify": { "version": "1.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/treeify/-/treeify-1.1.0.tgz", @@ -6640,8 +6261,8 @@ }, "tsconfig-paths": { "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha1-GXaaym7o9qGjQeOMj6Rd2fsYiZs=", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -6694,15 +6315,15 @@ "dev": true }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", "dev": true, "requires": { "is-typedarray": "^1.0.0" @@ -6796,9 +6417,9 @@ } }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", "dev": true, "requires": { "punycode": "^2.1.0" @@ -6810,9 +6431,9 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "version": "1.5.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.4.tgz", + "integrity": "sha1-5PZFp+KghSzIpmsUspKj6aEal/0=", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -6829,9 +6450,9 @@ "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=" }, "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", "dev": true }, "validate-npm-package-name": { @@ -6856,6 +6477,20 @@ "defaults": "^1.0.3" } }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -6880,7 +6515,7 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, @@ -6902,8 +6537,8 @@ }, "winston": { "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/winston/-/winston-2.4.5.tgz", + "integrity": "sha1-8uQx1WFUxOp2VUX8EAO9NAyVtZo=", "requires": { "async": "~1.0.0", "colors": "1.0.x", @@ -6932,15 +6567,15 @@ "dev": true }, "workerpool": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha1-gn2Tyboj7iAZw/+v9cJ/zOoonos=", "dev": true }, "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -6950,17 +6585,17 @@ "dependencies": { "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } } } @@ -6970,30 +6605,10 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, "write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -7003,9 +6618,9 @@ } }, "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "version": "5.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", "dev": true }, "yallist": { @@ -7014,58 +6629,36 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "16.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", "dev": true, "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "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" - } + "version": "20.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=", + "dev": true }, "yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=", "dev": true, "requires": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - } } }, "yauzl": { @@ -7079,8 +6672,8 @@ }, "yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", "dev": true } } diff --git a/package.json b/package.json index 1499dbf8..b18fd140 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "preinstall": "npx npm-force-resolutions && npx check-node-version -p --package", "prepare": "husky install", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", - "test": "cross-env NODE_ENV=test mocha --exit --ignore uploadDirectory.js" + "test": "cross-env NODE_ENV=test nyc mocha --recursive --exit --timeout 10000 --ignore uploadDirectory.js" }, "engines": { "node": ">=14.0.0" @@ -46,43 +46,51 @@ "glob": "7.2.0", "got": "11.8.3", "graphql": "15.6.1", - "graphql-request": "3.6.1", + "graphql-request": "3.7.0", "inquirer": "8.2.0", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.15.0", - "joi": "17.5.0", - "jose-node-cjs-runtime": "4.3.7", + "joi": "17.6.0", + "jose-node-cjs-runtime": "4.4.0", "js-yaml": "4.1.0", - "keytar": "7.7.0", + "keytar": "7.8.0", "lodash": "4.17.21", "minimatch": "3.0.4", "mixin-deep": "^2.0.1", "moment": "2.29.1", "npm-registry-fetch": "12.0.0", "open": "8.4.0", - "prompt": "1.2.0", + "prompt": "1.2.1", "semver": "7.3.5", "treeify": "1.1.0", "url-join": "4.0.1", - "url-parse": "1.5.3", "uuid": "8.3.2", + "url-parse": "1.5.4", "yauzl": "2.10.0" }, "devDependencies": { "audit-ci": "5.1.2", - "chai": "4.3.4", + "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.3.0", + "eslint": "8.7.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.25.3", + "eslint-plugin-import": "2.25.4", "husky": "7.0.4", - "mocha": "9.1.3", + "madge": "4.0.2", + "mocha": "9.2.0", "mocked-env": "1.3.5", - "nock": "13.2.1", + "nock": "13.2.2", + "nyc": "15.1.0", "rewire": "6.0.0", - "sinon": "12.0.1" + "sinon": "11.1.2" + }, + "nyc": { + "reporter": [ + "text", + "html" + ] }, "resolutions": { "mixin-deep": "2.0.1", From 6d56e960f3d6f853d6fa7e7a7e35bee12130508d Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 22 Feb 2022 15:05:18 -0500 Subject: [PATCH 643/864] Remove test command for now --- bin/cortex-workspaces.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 8bf8adf7..3541f258 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -141,19 +141,19 @@ program } }); - program - .command('test [folder]') - .option('--color [on/off]', 'Turn on/off colors', 'on') - .option('--skill [skill name]', 'Test only the specified skill') - .option('--input [input name]', 'Test only the specified input') - .description('Tests the specified skill locally') - .action((folder, options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceTestCommand(program).execute(folder, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); + // program + // .command('test [folder]') + // .option('--color [on/off]', 'Turn on/off colors', 'on') + // .option('--skill [skill name]', 'Test only the specified skill') + // .option('--input [input name]', 'Test only the specified input') + // .description('Tests the specified skill locally') + // .action((folder, options) => { // deliberately not using withCompatibilityCheck() + // try { + // new WorkspaceTestCommand(program).execute(folder, options); + // } catch (err) { + // console.error(chalk.red(err.message)); + // } + // }); if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); From de52275d925fade405f084fe71b9c20666b7571e Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 22 Feb 2022 15:06:30 -0500 Subject: [PATCH 644/864] oops. --- bin/cortex-workspaces.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 3541f258..e10eb817 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -29,7 +29,7 @@ const { WorkspaceActivateRegistryCommand, WorkspaceListRegistryCommand, } = require('../src/commands/workspaces/registry'); -const { WorkspaceTestCommand } = require('../src/commands/workspaces/test'); +// const { WorkspaceTestCommand } = require('../src/commands/workspaces/test'); program.name('cortex workspaces'); program.description('Scaffolding Cortex Components'); From f1952258dd7a1662e360259c5ffe2b64f888a66f Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 22 Feb 2022 15:11:42 -0500 Subject: [PATCH 645/864] Audit fix --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7059dc5..f32b4646 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5229,7 +5229,7 @@ "querystringify": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=" + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "queue-microtask": { "version": "1.2.3", @@ -6431,9 +6431,9 @@ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { - "version": "1.5.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.4.tgz", - "integrity": "sha1-5PZFp+KghSzIpmsUspKj6aEal/0=", + "version": "1.5.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" diff --git a/package.json b/package.json index b18fd140..8277210d 100644 --- a/package.json +++ b/package.json @@ -65,8 +65,8 @@ "semver": "7.3.5", "treeify": "1.1.0", "url-join": "4.0.1", + "url-parse": "1.5.10", "uuid": "8.3.2", - "url-parse": "1.5.4", "yauzl": "2.10.0" }, "devDependencies": { From 6be36bb1e183e7ca40c18b94c460fb68dc4ec845 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 22 Feb 2022 15:15:43 -0500 Subject: [PATCH 646/864] Removed allowList entry --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8277210d..56cd2483 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "preinstall": "npx npm-force-resolutions && npx check-node-version -p --package", "prepare": "husky install", - "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h --allowlist 1002475", + "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", "test": "cross-env NODE_ENV=test nyc mocha --recursive --exit --timeout 10000 --ignore uploadDirectory.js" }, "engines": { From de283a353fc81e622ba26e46b5fcc3ae0d856d22 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 7 Mar 2022 10:51:52 -0500 Subject: [PATCH 647/864] Updated lock file --- package-lock.json | 2710 +++++++++++++++++++-------------------------- 1 file changed, 1160 insertions(+), 1550 deletions(-) diff --git a/package-lock.json b/package-lock.json index f32b4646..b929c3da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,19 +5,18 @@ "requires": true, "dependencies": { "@ampproject/remapping": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ampproject/remapping/-/remapping-2.0.2.tgz", - "integrity": "sha1-89l2C/MFiMUUCNvnwF/yuxMGkwc=", + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.2.2", - "sourcemap-codec": "1.4.8" + "@jridgewell/trace-mapping": "^0.3.0" } }, "@babel/code-frame": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha1-REFra9diS5mPWxr11HCFbEATh4k=", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { "@babel/highlight": "^7.16.7" @@ -26,24 +25,24 @@ "@babel/compat-data": { "version": "7.17.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha1-hoULhZfqaWIIl3CVIHXcqruNujQ=", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", "dev": true }, "@babel/core": { - "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/core/-/core-7.17.0.tgz", - "integrity": "sha1-Frh3KwpWfyFYOfaJxd7WuyDoZNU=", + "version": "7.17.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/core/-/core-7.17.5.tgz", + "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", "dev": true, "requires": { - "@ampproject/remapping": "^2.0.0", + "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", + "@babel/generator": "^7.17.3", "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.0", - "@babel/parser": "^7.17.0", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.3", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", + "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", @@ -52,16 +51,10 @@ "semver": "^6.3.0" }, "dependencies": { - "@babel/parser": { - "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.0.tgz", - "integrity": "sha1-8Kwz7dviFOQQU2O7F8M0HF/8xDw=", - "dev": true - }, "json5": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-2.2.0.tgz", - "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -70,26 +63,34 @@ "semver": { "version": "6.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "@babel/generator": { - "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/generator/-/generator-7.17.0.tgz", - "integrity": "sha1-e9iQunBs2G0+L3JzIjRv/b+Y9l4=", + "version": "7.17.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", "dev": true, "requires": { "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } } }, "@babel/helper-compilation-targets": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha1-BuZsXymWAebH2jUASTFegyCdVRs=", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "dev": true, "requires": { "@babel/compat-data": "^7.16.4", @@ -101,7 +102,7 @@ "semver": { "version": "6.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -109,7 +110,7 @@ "@babel/helper-environment-visitor": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha1-/0hAlKg5venYnNY8ugF9eq6A7Nc=", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", "dev": true, "requires": { "@babel/types": "^7.16.7" @@ -118,7 +119,7 @@ "@babel/helper-function-name": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha1-8exRVR+xyJVryN2V84Ujts83X48=", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.16.7", @@ -129,7 +130,7 @@ "@babel/helper-get-function-arity": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha1-6gisdTEXpmnxUIugbrzEkVY4dBk=", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dev": true, "requires": { "@babel/types": "^7.16.7" @@ -138,7 +139,7 @@ "@babel/helper-hoist-variables": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha1-hryxmnelCce3fQ4iMj71iPpYwkY=", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "requires": { "@babel/types": "^7.16.7" @@ -147,16 +148,16 @@ "@babel/helper-module-imports": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha1-JWEqgJGpmXBEYciiItDv7F0JFDc=", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha1-dmX663IaAcpTJ93Gu6FaXLNLakE=", + "version": "7.17.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", + "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.16.7", @@ -165,14 +166,14 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" } }, "@babel/helper-simple-access": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha1-1lZlS56gjbuWWbadYQY8zTQ/8Pc=", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", "dev": true, "requires": { "@babel/types": "^7.16.7" @@ -181,7 +182,7 @@ "@babel/helper-split-export-declaration": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha1-C2SMDELanTkg2FrVhfJ3hiC4cms=", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "requires": { "@babel/types": "^7.16.7" @@ -190,19 +191,19 @@ "@babel/helper-validator-identifier": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha1-6MYCQ4xKgZV1EkPakDHRYH0kfK0=", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/helper-validator-option": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha1-sgPOYs5f4VOJm2F8CJV96GDeTSM=", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true }, "@babel/helpers": { - "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helpers/-/helpers-7.17.0.tgz", - "integrity": "sha1-ec32xmpXnzp7XnOTcbxjygMGiGs=", + "version": "7.17.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", "dev": true, "requires": { "@babel/template": "^7.16.7", @@ -213,7 +214,7 @@ "@babel/highlight": { "version": "7.16.10", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha1-dE8uuBV51u6nU8InsPVwrXhauog=", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -224,7 +225,7 @@ "ansi-styles": { "version": "3.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -233,7 +234,7 @@ "chalk": { "version": "2.4.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -244,7 +245,7 @@ "color-convert": { "version": "1.9.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" @@ -265,7 +266,7 @@ "supports-color": { "version": "5.5.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -274,58 +275,44 @@ } }, "@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "version": "7.17.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", "dev": true }, "@babel/template": { "version": "7.16.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha1-jRJshwH95NZrJks+uj2W8HZm0VU=", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/parser": { - "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.0.tgz", - "integrity": "sha1-8Kwz7dviFOQQU2O7F8M0HF/8xDw=", - "dev": true - } } }, "@babel/traverse": { - "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/traverse/-/traverse-7.17.0.tgz", - "integrity": "sha1-MUPlBmeWQIzMiAoz7NMYTz51zTA=", + "version": "7.17.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", + "@babel/generator": "^7.17.3", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.0", + "@babel/parser": "^7.17.3", "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { - "@babel/parser": { - "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.0.tgz", - "integrity": "sha1-8Kwz7dviFOQQU2O7F8M0HF/8xDw=", - "dev": true - }, "globals": { "version": "11.12.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true } } @@ -333,7 +320,7 @@ "@babel/types": { "version": "7.17.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha1-qCbjaLzLaz2ErNdqytXA2HNCOQs=", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -341,14 +328,14 @@ } }, "@eslint/eslintrc": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha1-M/G4ONvx+SO/pRfgCDYreN278xg=", + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", + "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.2.0", + "espree": "^9.3.1", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", @@ -360,33 +347,39 @@ "ignore": { "version": "4.0.6", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true } } }, "@gar/promisify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", - "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==" + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" }, "@hapi/hoek": { "version": "9.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha1-lVEUKhmAUDdSU2tQUP2Z9KfxOxc=" + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, "@hapi/topo": { "version": "5.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha1-3ESOMyxsbjek3AL9hLqNRLmvsBI=", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "requires": { "@hapi/hoek": "^9.0.0" } }, "@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha1-8lZMdEs4d3W0NkGEkfFfzmYB9j4=", + "version": "0.9.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -397,13 +390,13 @@ "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha1-/T2x1Z7PfPEh6AZQu4ZxL5tV7O0=", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { "camelcase": "^5.3.1", @@ -416,7 +409,7 @@ "argparse": { "version": "1.0.10", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" @@ -425,13 +418,13 @@ "camelcase": { "version": "5.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "find-up": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -441,7 +434,7 @@ "js-yaml": { "version": "3.14.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -451,7 +444,7 @@ "locate-path": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" @@ -460,7 +453,7 @@ "p-limit": { "version": "2.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -469,7 +462,7 @@ "p-locate": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" @@ -478,19 +471,19 @@ "p-try": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "path-exists": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "resolve-from": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } } @@ -498,28 +491,34 @@ "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha1-5F44TkuOwWvOL9kDr3hFD2v37Jg=", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, "@jridgewell/resolve-uri": { - "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz", - "integrity": "sha1-uHbj/u+5yNOqhAFNooteUqBkDXI=", + "version": "3.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/trace-mapping/-/trace-mapping-0.2.6.tgz", - "integrity": "sha1-XqxL6htW4HNHHG8CFYK9uYbEuLc=", + "version": "0.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", - "sourcemap-codec": "1.4.8" + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { @@ -529,13 +528,13 @@ }, "@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { @@ -544,9 +543,9 @@ } }, "@npmcli/fs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", - "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "requires": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -554,7 +553,7 @@ }, "@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "requires": { "mkdirp": "^1.0.4", @@ -563,13 +562,13 @@ }, "@sellside/emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sellside/emitter/-/emitter-1.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sellside/emitter/-/emitter-1.2.1.tgz", "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==" }, "@sideway/address": { "version": "4.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha1-2TzOXUXF2uySrXbbSSzC7jxkqyc=", + "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", "requires": { "@hapi/hoek": "^9.0.0" } @@ -577,21 +576,21 @@ "@sideway/formula": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha1-/hWK7jLmvV3oUES+YVvAhHigoTw=" + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" }, "@sideway/pinpoint": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha1-z/j/rcNyrSn9P3gneusp5jLMcN8=" + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", - "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", + "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==" }, "@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { @@ -600,7 +599,7 @@ }, "@sinonjs/fake-timers": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "requires": { @@ -608,9 +607,9 @@ } }, "@sinonjs/samsam": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "version": "6.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -620,13 +619,13 @@ }, "@sinonjs/text-encoding": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, "@szmarczak/http-timer": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "requires": { "defer-to-connect": "^2.0.0" @@ -634,12 +633,12 @@ }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/cacheable-request": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", "requires": { "@types/http-cache-semantics": "*", @@ -650,7 +649,7 @@ }, "@types/http-cache-semantics": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/json5": { @@ -661,20 +660,20 @@ }, "@types/keyv": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.3.tgz", "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", "requires": { "@types/node": "*" } }, "@types/node": { - "version": "14.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", - "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" + "version": "17.0.21", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" }, "@types/responselike": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", "requires": { "@types/node": "*" @@ -682,13 +681,13 @@ }, "@typescript-eslint/types": { "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@typescript-eslint/types/-/types-4.33.0.tgz", "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", "dev": true }, "@typescript-eslint/typescript-estree": { "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", "dev": true, "requires": { @@ -699,33 +698,11 @@ "is-glob": "^4.0.1", "semver": "^7.3.5", "tsutils": "^3.21.0" - }, - "dependencies": { - "globby": { - "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", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", - "dev": true - } } }, "@typescript-eslint/visitor-keys": { "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", "dev": true, "requires": { @@ -735,7 +712,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } @@ -744,12 +721,12 @@ "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha1-qlgEJxHW4ydd033Fl+XTHowpCkQ=", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, "JSONStream": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { @@ -760,27 +737,27 @@ "acorn": { "version": "8.7.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha1-kJUf3g+PCd+TVJSB5fwUFEW3kc8=", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true }, "agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "requires": { "debug": "4" } }, "agentkeepalive": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", - "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -789,7 +766,7 @@ }, "aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "requires": { "clean-stack": "^2.0.0", @@ -799,7 +776,7 @@ "ajv": { "version": "6.12.6", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -810,7 +787,7 @@ }, "ansi-align": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "requires": { "string-width": "^4.1.0" @@ -819,13 +796,13 @@ "ansi-colors": { "version": "4.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { "type-fest": "^0.21.3" }, @@ -833,18 +810,18 @@ "type-fest": { "version": "0.21.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=" + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" } } }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { "color-convert": "^2.0.1" @@ -853,7 +830,7 @@ "anymatch": { "version": "3.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -862,14 +839,14 @@ }, "app-module-path": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/app-module-path/-/app-module-path-2.2.0.tgz", "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", "dev": true }, "append-transform": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha1-mdnSnHs4OR5vQo0ozhNlUfC3fhI=", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, "requires": { "default-require-extensions": "^3.0.0" @@ -878,7 +855,7 @@ "aproba": { "version": "1.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "archy": { "version": "1.0.0", @@ -889,7 +866,7 @@ "are-we-there-yet": { "version": "1.1.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha1-sVR0qTKtq0/4pQ2a36fk6SbyEUY=", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -898,7 +875,7 @@ "readable-stream": { "version": "2.3.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -912,12 +889,12 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" } @@ -926,7 +903,7 @@ }, "argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "arr-union": { @@ -937,7 +914,7 @@ "array-includes": { "version": "3.1.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha1-9bSTFix2DzU5Yx8AW6K7Rqy0W6k=", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -949,14 +926,14 @@ }, "array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha1-B+CXXYS7x8SM0YedYJ5oJZjTPhM=", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -966,7 +943,7 @@ }, "array.prototype.flatmap": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "dev": true, "requires": { @@ -978,7 +955,7 @@ "asn1": { "version": "0.2.6", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "requires": { "safer-buffer": "~2.1.0" } @@ -986,7 +963,7 @@ "assertion-error": { "version": "1.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, "assign-symbols": { @@ -995,15 +972,15 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "ast-module-types": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/ast-module-types/-/ast-module-types-2.7.1.tgz", - "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-module-types/-/ast-module-types-3.0.0.tgz", + "integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==", "dev": true }, "astral-regex": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async": { @@ -1018,7 +995,7 @@ }, "audit-ci": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-5.1.2.tgz", "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", "dev": true, "requires": { @@ -1033,86 +1010,22 @@ "yargs": "^16.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "bcrypt-pbkdf": { @@ -1126,17 +1039,17 @@ "binary-extensions": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "binaryextensions": { "version": "4.18.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-4.18.0.tgz", - "integrity": "sha1-Iq6totFN4GLGDoylmlBKVjanbOs=" + "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==" }, "bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "requires": { "buffer": "^5.5.0", @@ -1146,7 +1059,7 @@ }, "boxen": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-5.1.2.tgz", "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "requires": { "ansi-align": "^3.0.0", @@ -1157,66 +1070,11 @@ "type-fest": "^0.20.2", "widest-line": "^3.1.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", @@ -1225,7 +1083,7 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { @@ -1235,25 +1093,25 @@ "browser-stdout": { "version": "1.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "browserslist": { - "version": "4.19.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha1-SsBDWzWrZViWwx1TAYtt1enkyaM=", + "version": "4.20.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.20.0.tgz", + "integrity": "sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", + "caniuse-lite": "^1.0.30001313", + "electron-to-chromium": "^1.4.76", "escalade": "^3.1.1", - "node-releases": "^2.0.1", + "node-releases": "^2.0.2", "picocolors": "^1.0.0" } }, "buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "requires": { "base64-js": "^1.3.1", @@ -1272,7 +1130,7 @@ }, "cacache": { "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "requires": { "@npmcli/fs": "^1.0.0", @@ -1293,12 +1151,19 @@ "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + } } }, "cache-base": { "version": "2.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha1-yfDNjbZYzF2fPbIIgoxHEp57SBQ=", + "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", "requires": { "@sellside/emitter": "^1.2.1", "collection-visit": "^1.0.0", @@ -1310,13 +1175,17 @@ } }, "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", + "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", + "requires": { + "@types/keyv": "^3.1.1", + "keyv": "^4.0.0" + } }, "cacheable-request": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "requires": { "clone-response": "^1.0.2", @@ -1330,7 +1199,7 @@ "dependencies": { "get-stream": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { "pump": "^3.0.0" @@ -1341,7 +1210,7 @@ "caching-transform": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha1-ANKXpCBtceIWPDnq/6gVesBlHw8=", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "requires": { "hasha": "^5.0.0", @@ -1352,7 +1221,7 @@ }, "call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { @@ -1363,25 +1232,24 @@ "callsites": { "version": "3.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { "version": "6.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha1-VoW5XrIJrJwMF3Rnd4ychN9Yupo=", - "dev": true + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "caniuse-lite": { - "version": "1.0.30001307", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001307.tgz", - "integrity": "sha1-J6Z/E+vEqpyXfmuCVqEdXq+zDyc=", + "version": "1.0.30001313", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz", + "integrity": "sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q==", "dev": true }, "chai": { "version": "4.3.6", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.3.6.tgz", - "integrity": "sha1-/+S6LZ+p1mgMwLNwra5wnskBHpw=", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "requires": { "assertion-error": "^1.1.0", @@ -1395,7 +1263,7 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { @@ -1404,7 +1272,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", @@ -1413,25 +1281,25 @@ }, "chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "check-error": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "check-more-types": { "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-more-types/-/check-more-types-2.24.0.tgz", "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", "dev": true }, "chokidar": { "version": "3.5.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha1-HPN8hwe5Mr0a8a4iwEMuKs0ZA70=", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { "anymatch": "~3.1.2", @@ -1442,26 +1310,37 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-boxes": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" }, "cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "requires": { "restore-cursor": "^3.1.0" @@ -1470,7 +1349,7 @@ "cli-progress": { "version": "3.9.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-progress/-/cli-progress-3.9.1.tgz", - "integrity": "sha1-oi66aiD1Mon90F1e6MssyMKPhm4=", + "integrity": "sha512-AXxiCe2a0Lm0VN+9L0jzmfQSkcZm5EYspfqXKaSIQKqIk+0hnkZ3/v1E9B39mkD6vYhKih3c/RPsJBSwq9O99Q==", "requires": { "colors": "^1.1.2", "string-width": "^4.2.0" @@ -1478,58 +1357,33 @@ }, "cli-spinners": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.1.tgz", "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" }, "cli-table3": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.0.tgz", "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", "requires": { "colors": "^1.1.2", "object-assign": "^4.1.0", "string-width": "^4.2.0" - }, - "dependencies": { - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true - } } }, "cli-width": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=" + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, "cliui": { "version": "7.0.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "clone": { @@ -1543,6 +1397,13 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { "mimic-response": "^1.0.0" + }, + "dependencies": { + "mimic-response": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + } } }, "code-point-at": { @@ -1561,7 +1422,7 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { "color-name": "~1.1.4" @@ -1569,17 +1430,17 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" @@ -1587,12 +1448,12 @@ }, "commander": { "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" }, "commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, @@ -1603,7 +1464,7 @@ }, "confusing-browser-globals": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, @@ -1615,7 +1476,7 @@ "convert-source-map": { "version": "1.8.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha1-8zc8MtIbTXgN2ABFFGhPt5HKQ2k=", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -1624,7 +1485,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } @@ -1632,12 +1493,12 @@ "core-util-is": { "version": "1.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "cpu-features": { "version": "0.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.2.tgz", - "integrity": "sha1-n2NhVvEVX9BL26oCi7PC++886no=", + "integrity": "sha512-/2yieBqvMcRj8McNzkycjW2v3OIUOibBfd2dLEJ0nWts8NobAxwiyw9phVNS6oDL8x8tz9F7uNVFEVpJncQpeA==", "optional": true, "requires": { "nan": "^2.14.1" @@ -1646,7 +1507,7 @@ "cross-env": { "version": "7.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1655,14 +1516,14 @@ "cross-fetch": { "version": "3.1.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha1-4TifRNnnunZ5B/evhFR4eVKrU08=", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "requires": { "node-fetch": "2.6.7" } }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { @@ -1678,7 +1539,7 @@ }, "debug": { "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { "ms": "2.1.2" @@ -1687,37 +1548,21 @@ "decamelize": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true }, - "decomment": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/decomment/-/decomment-0.9.5.tgz", - "integrity": "sha512-h0TZ8t6Dp49duwyDHo3iw67mnh9/UpFiSSiOb5gDK1sqoXzrfX/SQxIUQd2R2QEiSnqib0KF2fnKnGfAhAs6lg==", - "dev": true, - "requires": { - "esprima": "4.0.1" - } - }, "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", + "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } + "mimic-response": "^2.0.0" } }, "deep-eql": { "version": "3.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -1725,19 +1570,19 @@ }, "deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "default-require-extensions": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha1-4D+TqsmytkQ/xS5eSjezrZrY35Y=", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", "dev": true, "requires": { "strip-bom": "^4.0.0" @@ -1746,7 +1591,7 @@ "strip-bom": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha1-nDUFwdtFvO3KPZz3oW9cWqOQGHg=", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true } } @@ -1761,17 +1606,17 @@ }, "defer-to-connect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha1-P3rkIRKbyqrJvHSQXJigAJ7J7n8=" + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { @@ -1795,7 +1640,7 @@ }, "dependency-tree": { "version": "8.1.2", - "resolved": "https://registry.npmjs.org/dependency-tree/-/dependency-tree-8.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dependency-tree/-/dependency-tree-8.1.2.tgz", "integrity": "sha512-c4CL1IKxkKng0oT5xrg4uNiiMVFqTGOXqHSFx7XEFdgSsp6nw3AGGruICppzJUrfad/r7GLqt26rmWU4h4j39A==", "dev": true, "requires": { @@ -1808,21 +1653,21 @@ "dependencies": { "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "precinct": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-8.2.0.tgz", - "integrity": "sha512-D9fQM/fAS7rGLA1m+PusoEMc07g9I5lZUf6rstT5XPCPn56raSIrj9R9y052YV8j4N+tjkgfCgT10bRQ3vg8+A==", + "version": "8.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/precinct/-/precinct-8.3.1.tgz", + "integrity": "sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q==", "dev": true, "requires": { "commander": "^2.20.3", - "debug": "^4.3.1", - "detective-amd": "^3.0.1", + "debug": "^4.3.3", + "detective-amd": "^3.1.0", "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.0", + "detective-es6": "^2.2.1", "detective-less": "^1.0.2", "detective-postcss": "^4.0.0", "detective-sass": "^3.0.1", @@ -1836,36 +1681,36 @@ } }, "detect-libc": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-libc/-/detect-libc-2.0.0.tgz", - "integrity": "sha1-xSi8CbxtGqMBSSKCQJF8IlRI8gQ=" + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" }, "detective-amd": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detective-amd/-/detective-amd-3.1.0.tgz", - "integrity": "sha512-G7wGWT6f0VErjUkE2utCm7IUshT7nBh7aBBH2VBOiY9Dqy2DMens5iiOvYCuhstoIxRKLrnOvVAz4/EyPIAjnw==", + "version": "3.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-amd/-/detective-amd-3.1.2.tgz", + "integrity": "sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ==", "dev": true, "requires": { - "ast-module-types": "^2.7.0", + "ast-module-types": "^3.0.0", "escodegen": "^2.0.0", "get-amd-module-type": "^3.0.0", - "node-source-walk": "^4.0.0" + "node-source-walk": "^4.2.0" } }, "detective-cjs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/detective-cjs/-/detective-cjs-3.1.1.tgz", - "integrity": "sha512-JQtNTBgFY6h8uT6pgph5QpV3IyxDv+z3qPk/FZRDT9TlFfm5dnRtpH39WtQEr1khqsUxVqXzKjZHpdoQvQbllg==", + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-cjs/-/detective-cjs-3.1.3.tgz", + "integrity": "sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ==", "dev": true, "requires": { - "ast-module-types": "^2.4.0", + "ast-module-types": "^3.0.0", "node-source-walk": "^4.0.0" } }, "detective-es6": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.1.tgz", - "integrity": "sha512-22z7MblxkhsIQGuALeGwCKEfqNy4WmgDGmfJCwdXbfDkVYIiIDmY513hiIWBvX3kCmzvvWE7RR7kAYxs01wwKQ==", + "version": "2.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-es6/-/detective-es6-2.2.2.tgz", + "integrity": "sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw==", "dev": true, "requires": { "node-source-walk": "^4.0.0" @@ -1873,7 +1718,7 @@ }, "detective-less": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/detective-less/-/detective-less-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-less/-/detective-less-1.0.2.tgz", "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", "dev": true, "requires": { @@ -1884,7 +1729,7 @@ }, "detective-postcss": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detective-postcss/-/detective-postcss-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-postcss/-/detective-postcss-4.0.0.tgz", "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", "dev": true, "requires": { @@ -1895,72 +1740,70 @@ } }, "detective-sass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/detective-sass/-/detective-sass-3.0.1.tgz", - "integrity": "sha512-oSbrBozRjJ+QFF4WJFbjPQKeakoaY1GiR380NPqwdbWYd5wfl5cLWv0l6LsJVqrgWfFN1bjFqSeo32Nxza8Lbw==", + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-sass/-/detective-sass-3.0.2.tgz", + "integrity": "sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g==", "dev": true, "requires": { - "debug": "^4.1.1", - "gonzales-pe": "^4.2.3", + "gonzales-pe": "^4.3.0", "node-source-walk": "^4.0.0" } }, "detective-scss": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detective-scss/-/detective-scss-2.0.1.tgz", - "integrity": "sha512-VveyXW4WQE04s05KlJ8K0bG34jtHQVgTc9InspqoQxvnelj/rdgSAy7i2DXAazyQNFKlWSWbS+Ro2DWKFOKTPQ==", + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-scss/-/detective-scss-2.0.2.tgz", + "integrity": "sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg==", "dev": true, "requires": { - "debug": "^4.1.1", - "gonzales-pe": "^4.2.3", + "gonzales-pe": "^4.3.0", "node-source-walk": "^4.0.0" } }, "detective-stylus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detective-stylus/-/detective-stylus-1.0.0.tgz", - "integrity": "sha1-UK7n24uruZA4HwEMY/q7pbWOVM0=", + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-stylus/-/detective-stylus-1.0.3.tgz", + "integrity": "sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q==", "dev": true }, "detective-typescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-7.0.0.tgz", - "integrity": "sha512-y/Ev98AleGvl43YKTNcA2Q+lyFmsmCfTTNWy4cjEJxoLkbobcXtRS0Kvx06daCgr2GdtlwLfNzL553BkktfJoA==", + "version": "7.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-typescript/-/detective-typescript-7.0.2.tgz", + "integrity": "sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "^4.8.2", + "@typescript-eslint/typescript-estree": "^4.33.0", "ast-module-types": "^2.7.1", "node-source-walk": "^4.2.0", - "typescript": "^3.9.7" + "typescript": "^3.9.10" + }, + "dependencies": { + "ast-module-types": { + "version": "2.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-module-types/-/ast-module-types-2.7.1.tgz", + "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "dev": true + } } }, "diff": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, "dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - } } }, "docker-modem": { "version": "3.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/docker-modem/-/docker-modem-3.0.3.tgz", - "integrity": "sha1-rEux8y+BrC5xIMXpmgaPqyRYoy8=", + "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", "requires": { "debug": "^4.1.1", "readable-stream": "^3.5.0", @@ -1971,7 +1814,7 @@ "dockerode": { "version": "3.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dockerode/-/dockerode-3.3.1.tgz", - "integrity": "sha1-dPZuI54JLnkQ4r6uYyLTXESwjNw=", + "integrity": "sha512-AS2mr8Lp122aa5n6d99HkuTNdRV1wkkhHwBdcnY6V0+28D3DSYwhxAk85/mM9XwD3RMliTxyr63iuvn5ZblFYQ==", "requires": { "docker-modem": "^3.0.0", "tar-fs": "~2.0.1" @@ -1980,7 +1823,7 @@ "doctrine": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" @@ -1988,7 +1831,7 @@ }, "duplexer": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, @@ -1998,38 +1841,48 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "electron-to-chromium": { - "version": "1.4.64", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.64.tgz", - "integrity": "sha1-ixtTcvd8ogjyxJjGSQ2g5RF2vYE=", + "version": "1.4.76", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz", + "integrity": "sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "optional": true, "requires": { "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" } }, "enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "version": "5.9.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", + "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -2039,7 +1892,7 @@ "enquirer": { "version": "2.3.6", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { "ansi-colors": "^4.1.1" @@ -2047,12 +1900,12 @@ }, "err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "es-abstract": { "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.1.tgz", "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "requires": { @@ -2080,7 +1933,7 @@ }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { @@ -2092,12 +1945,12 @@ "es6-error": { "version": "4.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha1-njr0B0Wd7tR+mpH5uIWoTrBcVh0=", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, "escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, @@ -2108,7 +1961,7 @@ }, "escodegen": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-2.0.0.tgz", "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", "dev": true, "requires": { @@ -2119,25 +1972,51 @@ "source-map": "~0.6.1" }, "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "levn": { + "version": "0.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "type-check": { + "version": "0.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, - "optional": true + "requires": { + "prelude-ls": "~1.1.2" + } } } }, "eslint": { "version": "8.7.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.7.0.tgz", - "integrity": "sha1-IuA2hC7lt8+HsD/iN3MWdbTTYzw=", + "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", "dev": true, "requires": { "@eslint/eslintrc": "^1.0.5", @@ -2177,91 +2056,23 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "dev": true - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - }, - "dependencies": { - "is-glob": { - "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", - "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } } } }, "eslint-config-airbnb-base": { "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "requires": { @@ -2273,7 +2084,7 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } @@ -2282,7 +2093,7 @@ "eslint-import-resolver-node": { "version": "0.3.6", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha1-QEi5WDldqJZoJSAB29nsprg7rL0=", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { "debug": "^3.2.7", @@ -2292,38 +2103,18 @@ "debug": { "version": "3.2.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha1-9Z/fynAdWHnQprEApAqhVgzichE=", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha1-XguMZ8Fd9XqJvbq+YDoALyFzEZg=", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } } } }, "eslint-module-utils": { "version": "2.7.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha1-rX46EFUv3QZC4eVSkngb1uNIdu4=", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, "requires": { "debug": "^3.2.7", @@ -2333,7 +2124,7 @@ "debug": { "version": "3.2.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -2344,7 +2135,7 @@ "eslint-plugin-import": { "version": "2.25.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha1-Mi8/kWpOnpkax68yAywlzjEyCfE=", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -2365,7 +2156,7 @@ "debug": { "version": "2.6.9", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -2374,53 +2165,24 @@ "doctrine": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { "esutils": "^2.0.2" } }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha1-9Z/fynAdWHnQprEApAqhVgzichE=", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "ms": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha1-XguMZ8Fd9XqJvbq+YDoALyFzEZg=", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } } } }, "eslint-scope": { - "version": "7.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha1-wfbqMKxYMDHyA9Zcc+cjsBKY8VM=", + "version": "7.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -2430,7 +2192,7 @@ "eslint-utils": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { "eslint-visitor-keys": "^2.0.0" @@ -2439,38 +2201,38 @@ "eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, "eslint-visitor-keys": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha1-b7sWameY7lmRNYvC2qG6dswSVKE=", + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "espree": { - "version": "9.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-9.3.0.tgz", - "integrity": "sha1-wSQNeRg7cqrubM+lqQvJER3whag=", + "version": "9.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, "requires": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" + "eslint-visitor-keys": "^3.3.0" } }, "esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { "version": "1.4.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -2479,7 +2241,7 @@ "esrecurse": { "version": "4.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { "estraverse": "^5.2.0" @@ -2488,18 +2250,18 @@ "estraverse": { "version": "5.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "event-stream": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "dev": true, "requires": { @@ -2515,51 +2277,30 @@ "expand-template": { "version": "2.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha1-bhSz/O4POmNA7LV9LokYaSBSpHw=" + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" }, "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } + "is-extendable": "^0.1.0" } }, "external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } } }, "extract-files": { "version": "9.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha1-indE8kN/gfXtMlDtnxVQ3pAv5Uo=" + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, "eyes": { "version": "0.1.8", @@ -2569,13 +2310,13 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -2585,28 +2326,21 @@ "micromatch": "^4.0.4" }, "dependencies": { - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "glob-parent": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "is-glob": "^4.0.1" } - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true } } }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fast-levenshtein": { @@ -2617,7 +2351,7 @@ }, "fastq": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { @@ -2635,7 +2369,7 @@ "figures": { "version": "3.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", - "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { "escape-string-regexp": "^1.0.5" } @@ -2643,27 +2377,26 @@ "file-entry-cache": { "version": "6.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { "flat-cache": "^3.0.4" } }, "filing-cabinet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-3.0.1.tgz", - "integrity": "sha512-3Wn18+vSKmrlOc0fp5J7p1UyGi7yCWUpPhGVFzZsUyGzG+AEzYWguMGxUbjsgsV4whRHCCiYxIrGyKivBBDDSg==", + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/filing-cabinet/-/filing-cabinet-3.1.0.tgz", + "integrity": "sha512-ZFutWTo14Z1xmog76UoQzDKEza1fSpqc+HvUN6K6GILrfhIn6NbR8fHQktltygF+wbt7PZ/EvfLK6yJnebd40A==", "dev": true, "requires": { "app-module-path": "^2.2.0", "commander": "^2.20.3", - "debug": "^4.3.1", - "decomment": "^0.9.3", - "enhanced-resolve": "^5.3.2", + "debug": "^4.3.3", + "enhanced-resolve": "^5.8.3", "is-relative-path": "^1.0.2", "module-definition": "^3.3.1", - "module-lookup-amd": "^7.0.0", - "resolve": "^1.19.0", + "module-lookup-amd": "^7.0.1", + "resolve": "^1.21.0", "resolve-dependency-path": "^2.0.0", "sass-lookup": "^3.0.0", "stylus-lookup": "^3.0.1", @@ -2672,7 +2405,7 @@ "dependencies": { "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true } @@ -2680,7 +2413,7 @@ }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { @@ -2690,7 +2423,7 @@ "find-cache-dir": { "version": "3.3.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha1-swxbbv8HMHMa6pu9nb7L2AJW1ks=", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { "commondir": "^1.0.1", @@ -2700,7 +2433,7 @@ }, "find-package-json": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { @@ -2715,13 +2448,13 @@ "flat": { "version": "5.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-5.0.2.tgz", - "integrity": "sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, "flat-cache": { "version": "3.0.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { "flatted": "^3.1.0", @@ -2731,19 +2464,19 @@ "flatted": { "version": "3.2.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha1-dshYT0/IQ9tkcCpr0Eq3qL1mbaM=", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "flatten": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatten/-/flatten-1.0.3.tgz", "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", "dev": true }, "foreground-child": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha1-cbMoAMnxWqjy+D9Ka9m/812GGlM=", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, "requires": { "cross-spawn": "^7.0.0", @@ -2752,7 +2485,7 @@ }, "form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", @@ -2769,17 +2502,17 @@ "fromentries": { "version": "1.3.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha1-5LymgIgWv4+TtSdQ8RJ/Wm/Ybjo=", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true }, "fs-constants": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha1-a+Dem+mYzhavivwkSXue6bfM2a0=" + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { "minipass": "^3.0.0" @@ -2787,19 +2520,19 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, @@ -2824,6 +2557,11 @@ "wide-align": "^1.1.0" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -2841,28 +2579,36 @@ "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } } } }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, "get-amd-module-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-amd-module-type/-/get-amd-module-type-3.0.0.tgz", - "integrity": "sha512-99Q7COuACPfVt18zH9N4VAMyb81S6TUgJm2NgV6ERtkh9VIkAaByZkW530wl3lLN5KTtSrK9jVLxYsoP5hQKsw==", + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz", + "integrity": "sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw==", "dev": true, "requires": { - "ast-module-types": "^2.3.2", - "node-source-walk": "^4.0.0" + "ast-module-types": "^3.0.0", + "node-source-walk": "^4.2.2" } }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, @@ -2874,7 +2620,7 @@ }, "get-intrinsic": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { @@ -2885,24 +2631,24 @@ }, "get-own-enumerable-property-symbols": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "dev": true }, "get-package-type": { "version": "0.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha1-jeLYA8/0TfO8bEVuZmizbDkm4Ro=", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, "get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "requires": { @@ -2918,37 +2664,15 @@ "gh-got": { "version": "9.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-9.0.0.tgz", - "integrity": "sha1-X4LrXJeqegI19QzydzMc3tqHlnA=", + "integrity": "sha512-RH5n6CDdb6AozElmiKwFhmO/1FmhWWVhfQAVv+JtU8jtPK12JLErce/VQFsFwZ9dTa01SfD7WXb/1iyZp/5XKg==", "requires": { "got": "^10.5.7" }, "dependencies": { - "@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha1-zv9qKKW0hnwt1KG6UT3ieMy+i7E=" - }, - "cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha1-h75koYuSUjSHXhCpux68pK3Oazg=", - "requires": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - } - }, - "decompress-response": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha1-eEk5boDj0euoyy9170kw92Rhyw8=", - "requires": { - "mimic-response": "^2.0.0" - } - }, "get-stream": { "version": "5.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { "pump": "^3.0.0" } @@ -2956,7 +2680,7 @@ "got": { "version": "10.7.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-10.7.0.tgz", - "integrity": "sha1-YoidvNbMoyzWoVTMLQxolRIdCR8=", + "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", "requires": { "@sindresorhus/is": "^2.0.0", "@szmarczak/http-timer": "^4.0.0", @@ -2975,15 +2699,10 @@ "type-fest": "^0.10.0" } }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=" - }, "type-fest": { "version": "0.10.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.10.0.tgz", - "integrity": "sha1-fwayufv8WBBo0TQf+r0DSc6vxkI=" + "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==" } } }, @@ -2994,7 +2713,7 @@ }, "glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", @@ -3006,41 +2725,48 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "global-dirs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "requires": { "ini": "2.0.0" - }, - "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - } } }, "globals": { "version": "13.12.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.12.1.tgz", - "integrity": "sha1-7CBr6TLmx3I2Z3EnV3qo5Qvxxcs=", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "globby": { + "version": "11.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, "gonzales-pe": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gonzales-pe/-/gonzales-pe-4.3.0.tgz", "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", "dev": true, "requires": { @@ -3049,7 +2775,7 @@ }, "got": { "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.3.tgz", "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", "requires": { "@sindresorhus/is": "^4.0.0", @@ -3063,23 +2789,48 @@ "lowercase-keys": "^2.0.0", "p-cancelable": "^2.0.0", "responselike": "^2.0.0" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } } }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", "dev": true }, "graphql": { "version": "15.6.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.6.1.tgz", "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-request": { "version": "3.7.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.7.0.tgz", - "integrity": "sha1-x0BuU3CE+Ll4hUHj5nBDQMoTBVs=", + "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", "requires": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -3089,7 +2840,7 @@ "form-data": { "version": "3.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha1-69U3kbeDVqma+aMA1CgsTV65dV8=", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -3100,7 +2851,7 @@ }, "graphviz": { "version": "0.0.9", - "resolved": "https://registry.npmjs.org/graphviz/-/graphviz-0.0.9.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphviz/-/graphviz-0.0.9.tgz", "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", "dev": true, "requires": { @@ -3110,12 +2861,12 @@ "growl": { "version": "1.10.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", - "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { @@ -3124,24 +2875,24 @@ }, "has-bigints": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "requires": { @@ -3153,10 +2904,35 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, + "has-value": { + "version": "0.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, "hasha": { "version": "5.2.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha1-pIR3mJs7MnrqPAT1MJbYFtl1IqE=", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, "requires": { "is-stream": "^2.0.0", @@ -3166,7 +2942,7 @@ "type-fest": { "version": "0.8.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } @@ -3174,13 +2950,13 @@ "he": { "version": "1.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "requires": { "lru-cache": "^6.0.0" } @@ -3188,17 +2964,17 @@ "html-escaper": { "version": "2.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha1-39YAJ9o2o238viNiYsAKWCJoFFM=", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-proxy-agent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "requires": { "@tootallnate/once": "1", @@ -3208,7 +2984,7 @@ }, "http2-wrapper": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "requires": { "quick-lru": "^5.1.1", @@ -3217,7 +2993,7 @@ }, "https-proxy-agent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "requires": { "agent-base": "6", @@ -3234,34 +3010,33 @@ }, "husky": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/husky/-/husky-7.0.4.tgz", "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true }, "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, + "version": "0.4.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { "version": "5.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha1-bTusj6f+DUXZ+b57rC/CeVd+NFo=", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "import-fresh": { "version": "3.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -3275,23 +3050,23 @@ }, "indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "indexes-of": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indexes-of/-/indexes-of-1.0.1.tgz", "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, "infer-owner": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -3300,18 +3075,18 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { "version": "8.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha1-9E8AjdNEu/xLMAMfRdmE4DSjrDo=", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -3319,63 +3094,19 @@ "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.2.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=" - }, - "ora": { - "version": "5.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", - "integrity": "sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "rxjs": { - "version": "7.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.1.tgz", - "integrity": "sha1-r3PfNDy8qzdigZf0PqDIJW9UsVc=", - "requires": { - "tslib": "^2.1.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=" - } + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.2.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" } }, "internal-slot": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { @@ -3391,7 +3122,7 @@ }, "is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "requires": { @@ -3401,7 +3132,7 @@ "is-binary-path": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" @@ -3409,7 +3140,7 @@ }, "is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { @@ -3419,14 +3150,14 @@ }, "is-callable": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "version": "2.8.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" @@ -3434,7 +3165,7 @@ }, "is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "requires": { @@ -3444,7 +3175,7 @@ "is-docker": { "version": "2.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=" + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" }, "is-extendable": { "version": "0.1.1", @@ -3453,20 +3184,19 @@ }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -3474,7 +3204,7 @@ }, "is-installed-globally": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "requires": { "global-dirs": "^3.0.0", @@ -3483,7 +3213,7 @@ }, "is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" }, "is-lambda": { @@ -3493,19 +3223,19 @@ }, "is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "is-number-object": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.6.tgz", "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, "requires": { @@ -3514,24 +3244,24 @@ }, "is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-plain-obj": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" @@ -3539,7 +3269,7 @@ }, "is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { @@ -3549,31 +3279,31 @@ }, "is-regexp": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", "dev": true }, "is-relative-path": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-relative-path/-/is-relative-path-1.0.2.tgz", "integrity": "sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY=", "dev": true }, "is-shared-array-buffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", "dev": true }, "is-stream": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "requires": { @@ -3582,7 +3312,7 @@ }, "is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { @@ -3597,18 +3327,18 @@ }, "is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, "is-url": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-url/-/is-url-1.2.4.tgz", "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, "is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "requires": { @@ -3618,13 +3348,13 @@ "is-windows": { "version": "1.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "is-wsl": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "requires": { "is-docker": "^2.0.0" } @@ -3636,7 +3366,7 @@ }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, @@ -3653,13 +3383,13 @@ "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha1-GJ55CdCjn6Wj361bA/cZR3cBkdM=", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-hook": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha1-j4TJQ0iIzGsdCp1wkqdtI56/DMY=", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, "requires": { "append-transform": "^2.0.0" @@ -3668,7 +3398,7 @@ "istanbul-lib-instrument": { "version": "4.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha1-hzxv/4l0UBGCIndGlqPyiQLXfB0=", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { "@babel/core": "^7.7.5", @@ -3680,7 +3410,7 @@ "semver": { "version": "6.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -3688,7 +3418,7 @@ "istanbul-lib-processinfo": { "version": "2.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha1-4UJlFGYiRLLyXfco6P0bo1/lO5w=", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", "dev": true, "requires": { "archy": "^1.0.0", @@ -3703,7 +3433,7 @@ "p-map": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -3712,7 +3442,7 @@ "uuid": { "version": "3.4.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true } } @@ -3720,7 +3450,7 @@ "istanbul-lib-report": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha1-dRj+UupE3jcvRgp2tezan/tz2KY=", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", @@ -3731,26 +3461,18 @@ "istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha1-iV86cJ/PujTG3lpCk5Ai8+Q1hVE=", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } } }, "istanbul-reports": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha1-S8rjEDuUUYEXkw1RKDaQlgtQ08I=", + "version": "3.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -3760,7 +3482,7 @@ "istextorbinary": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-6.0.0.tgz", - "integrity": "sha1-vG51QQBrwgP+/+FmKNCnKJOyrVQ=", + "integrity": "sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==", "requires": { "binaryextensions": "^4.18.0", "textextensions": "^5.14.0" @@ -3780,7 +3502,7 @@ "joi": { "version": "17.6.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-17.6.0.tgz", - "integrity": "sha1-C7VPLwBsCaludc5oeVe9BCkAVLI=", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -3792,17 +3514,17 @@ "jose-node-cjs-runtime": { "version": "4.4.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.4.0.tgz", - "integrity": "sha1-xQ7LOJktHfQkEY+HmRvq18av6ME=" + "integrity": "sha512-DhCqzpgUVZoAc4aOXpD9GOeDLnVXdju01vwTdi4I5o+VLMKxnRzCCwJ0Qp4UAMpTwRCFqpnaxUuMQ6k7VFPYNQ==" }, "js-tokens": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { "argparse": "^2.0.1" @@ -3811,18 +3533,18 @@ "jsesc": { "version": "2.5.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { @@ -3840,7 +3562,7 @@ "json5": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -3853,41 +3575,41 @@ }, "just-extend": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, "keytar": { "version": "7.8.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keytar/-/keytar-7.8.0.tgz", - "integrity": "sha1-KM9c7rEnU1CIiHACKGm4tP5qh/k=", + "integrity": "sha512-mR+BqtAOIW8j+T5FtLVyckCbvROWQD+4FzPeFMuk5njEZkXLpVPCGF26Y3mTyxMAAL1XCfswR7S6kIf+THSRFA==", "requires": { "node-addon-api": "^4.3.0", "prebuild-install": "^7.0.1" } }, "keyv": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz", - "integrity": "sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==", + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.1.1.tgz", + "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", "requires": { "json-buffer": "3.0.1" } }, "lazy-ass": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true }, "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, "locate-path": { @@ -3902,7 +3624,7 @@ }, "lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.flattendeep": { @@ -3913,14 +3635,14 @@ }, "lodash.get": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, "lodash.merge": { "version": "4.6.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lodash.set": { @@ -3937,7 +3659,7 @@ }, "log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "requires": { "chalk": "^4.1.0", @@ -3945,9 +3667,9 @@ } }, "loupe": { - "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/loupe/-/loupe-2.3.2.tgz", - "integrity": "sha1-eZpWa6WqjRG5PdzMksVpu65+lJA=", + "version": "2.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", "dev": true, "requires": { "get-func-name": "^2.0.0" @@ -3955,12 +3677,12 @@ }, "lowercase-keys": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { "yallist": "^4.0.0" @@ -3968,7 +3690,7 @@ }, "madge": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/madge/-/madge-4.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/madge/-/madge-4.0.2.tgz", "integrity": "sha512-l5bnA2dvyk0azLKDbOTCI+wDZ6nB007PhvPdmiYlPmqwVi49JPbhQrH/t4u8E6Akp3gwji1GZuA+v/F5q6yoWQ==", "dev": true, "requires": { @@ -3996,50 +3718,18 @@ "walkdir": "^0.4.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "commander": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } } } }, "make-dir": { "version": "3.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" @@ -4048,14 +3738,14 @@ "semver": { "version": "6.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "make-fetch-happen": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "requires": { "agentkeepalive": "^4.1.3", @@ -4092,36 +3782,46 @@ }, "merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.51.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.34", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "requires": { - "mime-db": "1.49.0" + "mime-db": "1.51.0" } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" @@ -4129,12 +3829,12 @@ }, "minimist": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.6.tgz", "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "requires": { "yallist": "^4.0.0" @@ -4142,7 +3842,7 @@ }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { "minipass": "^3.0.0" @@ -4150,7 +3850,7 @@ }, "minipass-fetch": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "requires": { "encoding": "^0.1.12", @@ -4161,7 +3861,7 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { "minipass": "^3.0.0" @@ -4169,7 +3869,7 @@ }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "requires": { "jsonparse": "^1.3.1", @@ -4178,7 +3878,7 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "requires": { "minipass": "^3.0.0" @@ -4186,7 +3886,7 @@ }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "requires": { "minipass": "^3.0.0" @@ -4194,7 +3894,7 @@ }, "minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "requires": { "minipass": "^3.0.0", @@ -4204,32 +3904,22 @@ "mixin-deep": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha1-mmlGvvSjaEAbeElwrjyqqmurAvo=", - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" }, "mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mkdirp-classic": { "version": "0.5.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha1-+hDJEVzG2IZb4iG6R+6b7XhgERM=" + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "mocha": { "version": "9.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha1-K/unPUbjkpAfh3q5pHt8nF0Cdcw=", + "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -4261,13 +3951,13 @@ "escape-string-regexp": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "find-up": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { "locate-path": "^6.0.0", @@ -4277,7 +3967,7 @@ "locate-path": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { "p-locate": "^5.0.0" @@ -4286,13 +3976,19 @@ "ms": { "version": "2.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nanoid": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", "dev": true }, "p-limit": { "version": "3.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { "yocto-queue": "^0.1.0" @@ -4301,7 +3997,7 @@ "p-locate": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { "p-limit": "^3.0.2" @@ -4310,23 +4006,35 @@ "path-exists": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { "version": "8.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "mocked-env": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocked-env/-/mocked-env-1.3.5.tgz", "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", "dev": true, "requires": { @@ -4338,7 +4046,7 @@ "dependencies": { "debug": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { @@ -4348,18 +4056,18 @@ } }, "module-definition": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/module-definition/-/module-definition-3.3.1.tgz", - "integrity": "sha512-kLidGPwQ2yq484nSD+D3JoJp4Etc0Ox9P0L34Pu/cU4X4HcG7k7p62XI5BBuvURWMRX3RPyuhOcBHbKus+UH4A==", + "version": "3.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/module-definition/-/module-definition-3.4.0.tgz", + "integrity": "sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA==", "dev": true, "requires": { - "ast-module-types": "^2.7.1", + "ast-module-types": "^3.0.0", "node-source-walk": "^4.0.0" } }, "module-lookup-amd": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", "dev": true, "requires": { @@ -4372,7 +4080,7 @@ "dependencies": { "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true } @@ -4380,35 +4088,35 @@ }, "moment": { "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.1.tgz", "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nan": { "version": "2.15.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nan/-/nan-2.15.0.tgz", - "integrity": "sha1-PzSkc/8Y4VwbVia2KQO1rW5mX+4=", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", "optional": true }, "nanoid": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha1-YmZ1Itpmc5ccypFqbT7/P0Ff+Aw=", + "version": "3.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, "napi-build-utils": { "version": "1.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha1-sf3cCyxG44Cgt6dvmE3UfEGhOAY=" + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, "natural-compare": { "version": "1.4.0", @@ -4417,18 +4125,18 @@ "dev": true }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "version": "0.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "nise": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", - "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "version": "5.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" @@ -4437,7 +4145,7 @@ "nock": { "version": "13.2.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.2.tgz", - "integrity": "sha1-KaaUIlAnggnCs+ejgxD3A1gbIfo=", + "integrity": "sha512-PcBHuvl9i6zfaJ50A7LS55oU+nFLv8htXIhffJO+FxyfibdZ4jEvd9kTuvkrJireBFIGMZ+oUIRpMK5gU9h//g==", "dev": true, "requires": { "debug": "^4.1.0", @@ -4449,7 +4157,7 @@ "node-abi": { "version": "3.8.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-abi/-/node-abi-3.8.0.tgz", - "integrity": "sha1-Z5lX3I56pHsKAlidv95Pd7KcyzI=", + "integrity": "sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==", "requires": { "semver": "^7.3.5" } @@ -4457,12 +4165,12 @@ "node-addon-api": { "version": "4.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha1-UqGgtHUZPgko6Y4EJqDRJUeCt38=" + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" }, "node-fetch": { "version": "2.6.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha1-JN6fuoJ+O0rkTciyAlajeRYAUq0=", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { "whatwg-url": "^5.0.0" } @@ -4470,22 +4178,22 @@ "node-preload": { "version": "0.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha1-wDBDuzJ/QXoY/uerfuV7QIoUQwE=", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, "requires": { "process-on-spawn": "^1.0.0" } }, "node-releases": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha1-PR05XyBPHy8ppUNYuftnh2WtL8U=", + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, "node-source-walk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/node-source-walk/-/node-source-walk-4.2.0.tgz", - "integrity": "sha512-hPs/QMe6zS94f5+jG3kk9E7TNm4P2SulrKiLWMzKszBfNZvL/V6wseHlTd7IvfW0NZWqPtK3+9yYNr+3USGteA==", + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-source-walk/-/node-source-walk-4.3.0.tgz", + "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", "dev": true, "requires": { "@babel/parser": "^7.0.0" @@ -4494,17 +4202,17 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "normalize-url": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, "npm-package-arg": { "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "requires": { "hosted-git-info": "^4.0.1", @@ -4514,7 +4222,7 @@ }, "npm-registry-fetch": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", "requires": { "make-fetch-happen": "^9.0.1", @@ -4528,7 +4236,7 @@ "npmlog": { "version": "4.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -4544,7 +4252,7 @@ "nyc": { "version": "15.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha1-EzXa4S3ch7biSdWhmUykva6nXwI=", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", @@ -4576,22 +4284,16 @@ "yargs": "^15.0.2" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "dev": true - }, "camelcase": { "version": "5.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "cliui": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", @@ -4608,7 +4310,7 @@ "find-up": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -4618,7 +4320,7 @@ "locate-path": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" @@ -4627,7 +4329,7 @@ "p-limit": { "version": "2.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -4636,7 +4338,7 @@ "p-locate": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" @@ -4645,7 +4347,7 @@ "p-map": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -4654,34 +4356,25 @@ "p-try": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "path-exists": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "resolve-from": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -4692,13 +4385,13 @@ "y18n": { "version": "4.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { "version": "15.4.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { "cliui": "^6.0.0", @@ -4717,7 +4410,7 @@ "yargs-parser": { "version": "18.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -4733,13 +4426,13 @@ }, "object-inspect": { "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.12.0.tgz", "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true }, "object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, @@ -4753,7 +4446,7 @@ }, "object.assign": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { @@ -4765,7 +4458,7 @@ }, "object.entries": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.5.tgz", "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, "requires": { @@ -4777,7 +4470,7 @@ "object.values": { "version": "1.1.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha1-lZ9j486e8QhyAzMIITHkpFm3Fqw=", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -4787,7 +4480,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -4795,7 +4488,7 @@ }, "onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { "mimic-fn": "^2.1.0" @@ -4804,7 +4497,7 @@ "open": { "version": "8.4.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/open/-/open-8.4.0.tgz", - "integrity": "sha1-NFMhrhj4E4+CVlqRD9xrOejCRPg=", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "requires": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -4812,17 +4505,33 @@ } }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" } }, "os-tmpdir": { @@ -4832,13 +4541,13 @@ }, "p-cancelable": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-event": { "version": "4.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha1-r0sEnIrNka6BCD69Hm9criBEwbU=", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", "requires": { "p-timeout": "^3.1.0" } @@ -4851,7 +4560,7 @@ "p-limit": { "version": "1.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -4868,7 +4577,7 @@ }, "p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { "aggregate-error": "^3.0.0" @@ -4877,7 +4586,7 @@ "p-timeout": { "version": "3.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha1-x+F6vJcdKnli74NiazXWNazyPf4=", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "requires": { "p-finally": "^1.0.0" } @@ -4891,7 +4600,7 @@ "package-hash": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha1-NTf2VGZew8w4gnOH/JBMFjxU9QY=", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, "requires": { "graceful-fs": "^4.1.15", @@ -4903,7 +4612,7 @@ "parent-module": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" @@ -4911,7 +4620,7 @@ }, "parse-ms": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-ms/-/parse-ms-2.1.0.tgz", "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true }, @@ -4923,24 +4632,24 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-to-regexp": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "requires": { @@ -4955,10 +4664,16 @@ } } }, + "path-type": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "pathval": { "version": "1.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha1-hTTnenfOesWiUS6iHg/bj89sPY0=", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "pause-stream": { @@ -4977,20 +4692,20 @@ }, "picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "picomatch": { "version": "2.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha1-O6ODNzNkbZ0+SZWUbBNlpn+wekI=", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pkg-dir": { "version": "4.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" @@ -4999,7 +4714,7 @@ "find-up": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -5009,7 +4724,7 @@ "locate-path": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" @@ -5018,7 +4733,7 @@ "p-limit": { "version": "2.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -5027,7 +4742,7 @@ "p-locate": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" @@ -5036,45 +4751,37 @@ "p-try": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "path-exists": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true } } }, "pluralize": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true }, "postcss": { - "version": "8.4.4", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", - "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", + "version": "8.4.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/postcss/-/postcss-8.4.8.tgz", + "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", "dev": true, "requires": { - "nanoid": "^3.1.30", + "nanoid": "^3.3.1", "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "dependencies": { - "nanoid": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha1-YmZ1Itpmc5ccypFqbT7/P0Ff+Aw=", - "dev": true - } + "source-map-js": "^1.0.2" } }, "postcss-values-parser": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, "requires": { @@ -5086,7 +4793,7 @@ "prebuild-install": { "version": "7.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-7.0.1.tgz", - "integrity": "sha1-wQB1cnwxjv5yQS8zPg72Jb6vOHA=", + "integrity": "sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==", "requires": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -5105,7 +4812,7 @@ }, "precinct": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/precinct/-/precinct-7.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/precinct/-/precinct-7.1.0.tgz", "integrity": "sha512-I1RkW5PX51/q6Xl39//D7x9NgaKNGHpR5DCNaoxP/b2+KbzzXDNhauJUMV17KSYkJA41CSpwYUPRtRoNxbshWA==", "dev": true, "requires": { @@ -5124,15 +4831,21 @@ "node-source-walk": "^4.2.0" }, "dependencies": { + "ast-module-types": { + "version": "2.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-module-types/-/ast-module-types-2.7.1.tgz", + "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", + "dev": true + }, "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "detective-typescript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-6.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-typescript/-/detective-typescript-6.0.0.tgz", "integrity": "sha512-vTidcSDK3QostdbrH2Rwf9FhvrgJ4oIaVw5jbolgruTejexk6nNa9DShGpuS8CFVDb1IP86jct5BaZt1wSxpkA==", "dev": true, "requires": { @@ -5145,14 +4858,14 @@ } }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "pretty-ms": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pretty-ms/-/pretty-ms-7.0.1.tgz", "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", "dev": true, "requires": { @@ -5162,12 +4875,12 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "process-on-spawn": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha1-lbBaIwc9MKF6z9ySpEDv0rrv3JM=", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", "dev": true, "requires": { "fromentries": "^1.2.0" @@ -5176,7 +4889,7 @@ "progress": { "version": "2.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "promise-inflight": { @@ -5186,7 +4899,7 @@ }, "promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "requires": { "err-code": "^2.0.2", @@ -5196,7 +4909,7 @@ "prompt": { "version": "1.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompt/-/prompt-1.2.1.tgz", - "integrity": "sha1-SfRvF6rLv1AXhvxvOjDZkHXIRsk=", + "integrity": "sha512-B4+2QeNDn5Cdp4kK2iOwV8qvrWpiPKlZKI9ZKkPl0C9KgeMW6DyWWqhqHiFq9vZf6zTniv+rYalK0ZlgktSwiw==", "requires": { "async": "~0.9.0", "colors": "1.4.0", @@ -5208,12 +4921,12 @@ "propagate": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha1-QM3tqxgIXHkjNOZPCsFyVtOPmkU=", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", @@ -5223,7 +4936,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "querystringify": { @@ -5233,25 +4946,25 @@ }, "queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "quick-lru": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, "ramda": { "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ramda/-/ramda-0.27.1.tgz", "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", "dev": true }, "randombytes": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" @@ -5259,7 +4972,7 @@ }, "rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "requires": { "deep-extend": "^0.6.0", @@ -5268,10 +4981,10 @@ "strip-json-comments": "~2.0.1" }, "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "ini": { + "version": "1.3.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" } } }, @@ -5285,7 +4998,7 @@ }, "readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { "inherits": "^2.0.3", @@ -5296,7 +5009,7 @@ "readdirp": { "version": "3.6.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -5304,14 +5017,14 @@ }, "readline-transform": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", "dev": true }, "regexpp": { "version": "3.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "release-zalgo": { @@ -5325,31 +5038,31 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-from-string": { "version": "2.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "require-main-filename": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "requirejs": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requirejs/-/requirejs-2.3.6.tgz", "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", "dev": true }, "requirejs-config-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", "dev": true, "requires": { @@ -5363,35 +5076,36 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.22.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-alpn": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, "resolve-dependency-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", "dev": true }, "resolve-from": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "responselike": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { "lowercase-keys": "^2.0.0" @@ -5399,7 +5113,7 @@ }, "restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "requires": { "onetime": "^5.1.0", @@ -5413,7 +5127,7 @@ }, "reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, @@ -5425,7 +5139,7 @@ "rewire": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha1-VPT82k35ko0orx61SjGLxRypqpk=", + "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", "dev": true, "requires": { "eslint": "^7.32.0" @@ -5434,7 +5148,7 @@ "@babel/code-frame": { "version": "7.12.11", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha1-9K1DWqJj25NbjxDyxVLSP7cWpj8=", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" @@ -5443,7 +5157,7 @@ "@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha1-nkKYHvA1vrPdSa3ResuW6P9vOUw=", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -5460,7 +5174,7 @@ "@humanwhocodes/config-array": { "version": "0.5.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha1-FAeWfUxu7Nc4j4Os8er00Mbljvk=", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", @@ -5471,19 +5185,13 @@ "acorn": { "version": "7.4.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "argparse": { "version": "1.0.10", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" @@ -5492,13 +5200,13 @@ "escape-string-regexp": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "eslint": { "version": "7.32.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha1-xtMooUvj+wjI0dIeEsAv23oqgS0=", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -5546,7 +5254,7 @@ "eslint-scope": { "version": "5.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -5556,7 +5264,7 @@ "eslint-utils": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" @@ -5565,7 +5273,7 @@ "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } } @@ -5573,13 +5281,13 @@ "eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "espree": { "version": "7.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", - "integrity": "sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { "acorn": "^7.4.0", @@ -5590,7 +5298,7 @@ "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } } @@ -5598,78 +5306,45 @@ "estraverse": { "version": "4.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, "ignore": { "version": "4.0.6", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "js-yaml": { "version": "3.14.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, - "levn": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", - "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } } } }, "rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" @@ -5677,31 +5352,39 @@ }, "run-async": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, "run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { "queue-microtask": "^1.2.2" } }, + "rxjs": { + "version": "7.5.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.4.tgz", + "integrity": "sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==", + "requires": { + "tslib": "^2.1.0" + } + }, "safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass-lookup": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sass-lookup/-/sass-lookup-3.0.0.tgz", "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", "dev": true, "requires": { @@ -5710,7 +5393,7 @@ "dependencies": { "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true } @@ -5718,7 +5401,7 @@ }, "semver": { "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "requires": { "lru-cache": "^6.0.0" @@ -5727,7 +5410,7 @@ "serialize-javascript": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha1-765diPRdeSQUHai1w6en5mP+/rg=", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -5735,33 +5418,23 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } } }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { @@ -5770,13 +5443,13 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { @@ -5786,28 +5459,43 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "simple-concat": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha1-9Gl2CCujXCJj8cirXt/ibEHJVS8=" + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" }, "simple-get": { "version": "4.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha1-SjnbVJKHyXnTUhEvoD/Zn9a8NUM=", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "requires": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } } }, "sinon": { "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-11.1.2.tgz", "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", "dev": true, "requires": { @@ -5821,14 +5509,14 @@ }, "slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "slice-ansi": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -5838,21 +5526,21 @@ }, "smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "version": "2.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", "requires": { "ip": "^1.1.5", - "smart-buffer": "^4.1.0" + "smart-buffer": "^4.2.0" } }, "socks-proxy-agent": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", "requires": { "agent-base": "^6.0.2", @@ -5861,27 +5549,21 @@ } }, "source-map": { - "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", - "dev": true - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=", + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, "spawn-wrap": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha1-EDaFuLj5t5dxMYgnqnhlCmENRX4=", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, "requires": { "foreground-child": "^2.0.0", @@ -5894,7 +5576,7 @@ }, "split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { @@ -5908,10 +5590,29 @@ }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "sprintf-js": { @@ -5921,9 +5622,9 @@ "dev": true }, "ssh2": { - "version": "1.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssh2/-/ssh2-1.5.0.tgz", - "integrity": "sha1-TcVZupihy7Qg6NQpmN/jXQ7akrw=", + "version": "1.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssh2/-/ssh2-1.7.0.tgz", + "integrity": "sha512-u1gdFfqKV1PTGR2szS5FImhFii40o+8FOUpg1M//iimNaS4BkTyUVfVdoydXS93M1SquOU02Z4KFhYDBNqQO+g==", "requires": { "asn1": "^0.2.4", "bcrypt-pbkdf": "^1.0.2", @@ -5933,7 +5634,7 @@ }, "ssri": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "requires": { "minipass": "^3.1.1" @@ -5955,43 +5656,18 @@ } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } + "strip-ansi": "^6.0.1" } }, "string.prototype.trimend": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { @@ -6001,7 +5677,7 @@ }, "string.prototype.trimstart": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { @@ -6011,7 +5687,7 @@ }, "string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { "safe-buffer": "~5.2.0" @@ -6019,7 +5695,7 @@ }, "stringify-object": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, "requires": { @@ -6029,11 +5705,11 @@ } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -6043,14 +5719,13 @@ "dev": true }, "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", - "dev": true + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "stylus-lookup": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stylus-lookup/-/stylus-lookup-3.0.2.tgz", "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", "dev": true, "requires": { @@ -6060,7 +5735,7 @@ "dependencies": { "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true } @@ -6068,7 +5743,7 @@ }, "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { "has-flag": "^4.0.0" @@ -6077,13 +5752,13 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha1-btpL00SjyUrqN21MwxvHcxEDngk=", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, "table": { "version": "6.8.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.8.0.tgz", - "integrity": "sha1-h+KPFPpDIcM3e6KG8Ht5soGjs8o=", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -6096,7 +5771,7 @@ "ajv": { "version": "8.10.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha1-5XP3Gb068GkBfjtmU4q5aNBA5U0=", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -6105,49 +5780,23 @@ "uri-js": "^4.2.2" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "dev": true - }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } } } }, "tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar": { "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "requires": { "chownr": "^2.0.0", @@ -6156,30 +5805,30 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + } } }, "tar-fs": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha1-5ECGwcYNMaTwz4k7HE4VXav66eI=", + "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", "requires": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.0.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=" - } } }, "tar-stream": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha1-rK2EwoQTawYNw/qmRHSqmuvXcoc=", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "requires": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -6190,14 +5839,14 @@ }, "temp": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/temp/-/temp-0.4.0.tgz", "integrity": "sha1-ZxrWPVe+D+nXKUZks/xABjZnimA=", "dev": true }, "test-exclude": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha1-BKhphmHYBepvopO2y55jrARO8V4=", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", @@ -6214,7 +5863,7 @@ "textextensions": { "version": "5.14.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-5.14.0.tgz", - "integrity": "sha1-pv9q7l+qp1HmFX1CLHIqK/1Z7t8=" + "integrity": "sha512-4cAYwNFNYlIAHBUo7p6zw8POUvWbZor+/R0Tanv+rIhsauEyV9QSrEXL40pI+GfTQxKX8k6Tyw6CmdSDSmASrg==" }, "through": { "version": "2.3.8", @@ -6223,7 +5872,7 @@ }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { "os-tmpdir": "~1.0.2" @@ -6238,11 +5887,11 @@ "to-readable-stream": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-readable-stream/-/to-readable-stream-2.1.0.tgz", - "integrity": "sha1-gogDFhIb6mYs3CJq2zCt21DLBug=" + "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==" }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { @@ -6257,12 +5906,12 @@ "treeify": { "version": "1.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha1-TjHGpGOszQlDh58wZnxP2v9BG7g=" + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==" }, "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha1-GXaaym7o9qGjQeOMj6Rd2fsYiZs=", + "version": "3.13.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.13.0.tgz", + "integrity": "sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -6272,18 +5921,25 @@ } }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "version": "2.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, "tunnel-agent": { @@ -6300,30 +5956,29 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "type-fest": { "version": "0.20.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", - "dev": true + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { "is-typedarray": "^1.0.0" @@ -6331,13 +5986,13 @@ }, "typescript": { "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typescript/-/typescript-3.9.10.tgz", "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", "dev": true }, "unbox-primitive": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "requires": { @@ -6349,7 +6004,7 @@ }, "union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { "arr-union": "^3.1.0", @@ -6360,13 +6015,13 @@ }, "uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, "unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { "unique-slug": "^2.0.0" @@ -6374,7 +6029,7 @@ }, "unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { "imurmurhash": "^0.1.4" @@ -6387,39 +6042,12 @@ "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } } }, "uri-js": { "version": "4.4.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -6427,7 +6055,7 @@ }, "url-join": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { @@ -6447,12 +6075,12 @@ "uuid": { "version": "8.3.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=" + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "validate-npm-package-name": { @@ -6465,7 +6093,7 @@ }, "walkdir": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/walkdir/-/walkdir-0.4.1.tgz", "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", "dev": true }, @@ -6493,7 +6121,7 @@ }, "which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { @@ -6502,7 +6130,7 @@ }, "which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "requires": { @@ -6522,14 +6150,14 @@ "wide-align": { "version": "1.1.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha1-3x1MIGhUNp7PPJpImPGyP72dFdM=", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "requires": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "widest-line": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "requires": { "string-width": "^4.0.0" @@ -6538,7 +6166,7 @@ "winston": { "version": "2.4.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/winston/-/winston-2.4.5.tgz", - "integrity": "sha1-8uQx1WFUxOp2VUX8EAO9NAyVtZo=", + "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", "requires": { "async": "~1.0.0", "colors": "1.0.x", @@ -6562,53 +6190,35 @@ }, "word-wrap": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "workerpool": { "version": "6.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha1-gn2Tyboj7iAZw/+v9cJ/zOoonos=", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", "dev": true }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", - "dev": true, + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -6620,18 +6230,18 @@ "y18n": { "version": "5.0.8", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "16.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { "cliui": "^7.0.2", @@ -6644,15 +6254,15 @@ } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=", + "version": "20.2.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, "yargs-unparser": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { "camelcase": "^6.0.0", @@ -6673,7 +6283,7 @@ "yocto-queue": { "version": "0.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } } From 9c7d0078840c7ce8ffcd643d553fc239a80ba29f Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 4 Apr 2022 10:37:24 -0400 Subject: [PATCH 648/864] Fix vulns --- package-lock.json | 957 +--------------------------------------------- 1 file changed, 4 insertions(+), 953 deletions(-) diff --git a/package-lock.json b/package-lock.json index b929c3da..32b6c001 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.7", + "version": "2.0.10", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -516,32 +516,6 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, "@npmcli/fs": { "version": "1.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.1.1.tgz", @@ -560,11 +534,6 @@ "rimraf": "^3.0.2" } }, - "@sellside/emitter": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sellside/emitter/-/emitter-1.2.1.tgz", - "integrity": "sha512-P1rUad4vDnp4d5HB7NEJ/MDf4zg3pM2Q8ZXJ2xgGkGo5yckyDn56YPAvUGH+1VsOud5dbli8MZu14j/EcNZCGw==" - }, "@sideway/address": { "version": "4.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.3.tgz", @@ -679,45 +648,6 @@ "@types/node": "*" } }, - "@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -837,12 +767,6 @@ "picomatch": "^2.0.4" } }, - "app-module-path": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", - "dev": true - }, "append-transform": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/append-transform/-/append-transform-2.0.0.tgz", @@ -906,11 +830,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, "array-includes": { "version": "3.1.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.4.tgz", @@ -924,12 +843,6 @@ "is-string": "^1.0.7" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, "array.prototype.flat": { "version": "1.2.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", @@ -966,17 +879,6 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-module-types": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-module-types/-/ast-module-types-3.0.0.tgz", - "integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==", - "dev": true - }, "astral-regex": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", @@ -1160,20 +1062,6 @@ } } }, - "cache-base": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cache-base/-/cache-base-2.0.2.tgz", - "integrity": "sha512-qU8SRzqRQwZAfk9iwBfcr2fod7LuugGE+zdGzejudnWia0cIMA+sizwpJmL8JNxuvdwUE+RAvstFG6l3FaRIfA==", - "requires": { - "@sellside/emitter": "^1.2.1", - "collection-visit": "^1.0.0", - "get-value": "^2.0.6", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "cacheable-lookup": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", @@ -1411,15 +1299,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", @@ -1638,168 +1517,17 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, - "dependency-tree": { - "version": "8.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dependency-tree/-/dependency-tree-8.1.2.tgz", - "integrity": "sha512-c4CL1IKxkKng0oT5xrg4uNiiMVFqTGOXqHSFx7XEFdgSsp6nw3AGGruICppzJUrfad/r7GLqt26rmWU4h4j39A==", - "dev": true, - "requires": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "filing-cabinet": "^3.0.1", - "precinct": "^8.0.0", - "typescript": "^3.9.7" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "precinct": { - "version": "8.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/precinct/-/precinct-8.3.1.tgz", - "integrity": "sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q==", - "dev": true, - "requires": { - "commander": "^2.20.3", - "debug": "^4.3.3", - "detective-amd": "^3.1.0", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.1", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^7.0.0", - "module-definition": "^3.3.1", - "node-source-walk": "^4.2.0" - } - } - } - }, "detect-libc": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-libc/-/detect-libc-2.0.1.tgz", "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" }, - "detective-amd": { - "version": "3.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-amd/-/detective-amd-3.1.2.tgz", - "integrity": "sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ==", - "dev": true, - "requires": { - "ast-module-types": "^3.0.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^3.0.0", - "node-source-walk": "^4.2.0" - } - }, - "detective-cjs": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-cjs/-/detective-cjs-3.1.3.tgz", - "integrity": "sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ==", - "dev": true, - "requires": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.0.0" - } - }, - "detective-es6": { - "version": "2.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-es6/-/detective-es6-2.2.2.tgz", - "integrity": "sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw==", - "dev": true, - "requires": { - "node-source-walk": "^4.0.0" - } - }, - "detective-less": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-less/-/detective-less-1.0.2.tgz", - "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", - "dev": true, - "requires": { - "debug": "^4.0.0", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" - } - }, - "detective-postcss": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-postcss/-/detective-postcss-4.0.0.tgz", - "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "is-url": "^1.2.4", - "postcss": "^8.1.7", - "postcss-values-parser": "^2.0.1" - } - }, - "detective-sass": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-sass/-/detective-sass-3.0.2.tgz", - "integrity": "sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g==", - "dev": true, - "requires": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^4.0.0" - } - }, - "detective-scss": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-scss/-/detective-scss-2.0.2.tgz", - "integrity": "sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg==", - "dev": true, - "requires": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^4.0.0" - } - }, - "detective-stylus": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-stylus/-/detective-stylus-1.0.3.tgz", - "integrity": "sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q==", - "dev": true - }, - "detective-typescript": { - "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-typescript/-/detective-typescript-7.0.2.tgz", - "integrity": "sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "^4.33.0", - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.2.0", - "typescript": "^3.9.10" - }, - "dependencies": { - "ast-module-types": { - "version": "2.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-module-types/-/ast-module-types-2.7.1.tgz", - "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", - "dev": true - } - } - }, "diff": { "version": "5.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, "docker-modem": { "version": "3.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/docker-modem/-/docker-modem-3.0.3.tgz", @@ -1879,16 +1607,6 @@ "once": "^1.4.0" } }, - "enhanced-resolve": { - "version": "5.9.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", - "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, "enquirer": { "version": "2.3.6", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", @@ -1959,60 +1677,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, "eslint": { "version": "8.7.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.7.0.tgz", @@ -2279,14 +1943,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, "external-editor": { "version": "3.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", @@ -2313,30 +1969,6 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2349,15 +1981,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fastq": { - "version": "1.13.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, "fd-slicer": { "version": "1.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -2383,34 +2006,6 @@ "flat-cache": "^3.0.4" } }, - "filing-cabinet": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/filing-cabinet/-/filing-cabinet-3.1.0.tgz", - "integrity": "sha512-ZFutWTo14Z1xmog76UoQzDKEza1fSpqc+HvUN6K6GILrfhIn6NbR8fHQktltygF+wbt7PZ/EvfLK6yJnebd40A==", - "dev": true, - "requires": { - "app-module-path": "^2.2.0", - "commander": "^2.20.3", - "debug": "^4.3.3", - "enhanced-resolve": "^5.8.3", - "is-relative-path": "^1.0.2", - "module-definition": "^3.3.1", - "module-lookup-amd": "^7.0.1", - "resolve": "^1.21.0", - "resolve-dependency-path": "^2.0.0", - "sass-lookup": "^3.0.0", - "stylus-lookup": "^3.0.1", - "typescript": "^3.9.7" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "fill-range": { "version": "7.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", @@ -2467,12 +2062,6 @@ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, - "flatten": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", - "dev": true - }, "foreground-child": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/foreground-child/-/foreground-child-2.0.0.tgz", @@ -2596,16 +2185,6 @@ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, - "get-amd-module-type": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz", - "integrity": "sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw==", - "dev": true, - "requires": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.2.2" - } - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -2629,12 +2208,6 @@ "has-symbols": "^1.0.1" } }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, "get-package-type": { "version": "0.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-package-type/-/get-package-type-0.1.0.tgz", @@ -2656,11 +2229,6 @@ "get-intrinsic": "^1.1.1" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, "gh-got": { "version": "9.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-9.0.0.tgz", @@ -2750,29 +2318,6 @@ "type-fest": "^0.20.2" } }, - "globby": { - "version": "11.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "gonzales-pe": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "got": { "version": "11.8.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.3.tgz", @@ -2849,15 +2394,6 @@ } } }, - "graphviz": { - "version": "0.0.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphviz/-/graphviz-0.0.9.tgz", - "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", - "dev": true, - "requires": { - "temp": "~0.4.0" - } - }, "growl": { "version": "1.10.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", @@ -2904,31 +2440,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, - "has-value": { - "version": "0.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - }, "hasha": { "version": "5.2.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hasha/-/hasha-5.2.2.tgz", @@ -3053,12 +2564,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, "infer-owner": { "version": "1.0.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", @@ -3177,11 +2682,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, "is-extglob": { "version": "2.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3242,12 +2742,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, "is-path-inside": { "version": "3.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -3259,14 +2753,6 @@ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, "is-regex": { "version": "1.1.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", @@ -3277,18 +2763,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-relative-path": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-relative-path/-/is-relative-path-1.0.2.tgz", - "integrity": "sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY=", - "dev": true - }, "is-shared-array-buffer": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", @@ -3330,12 +2804,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, - "is-url": { - "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, "is-weakref": { "version": "1.0.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-weakref/-/is-weakref-1.0.2.tgz", @@ -3370,11 +2838,6 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "isstream": { "version": "0.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", @@ -3688,44 +3151,6 @@ "yallist": "^4.0.0" } }, - "madge": { - "version": "4.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/madge/-/madge-4.0.2.tgz", - "integrity": "sha512-l5bnA2dvyk0azLKDbOTCI+wDZ6nB007PhvPdmiYlPmqwVi49JPbhQrH/t4u8E6Akp3gwji1GZuA+v/F5q6yoWQ==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "commander": "^6.2.1", - "commondir": "^1.0.1", - "debug": "^4.0.1", - "dependency-tree": "^8.0.0", - "detective-amd": "^3.0.1", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.1.0", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^7.0.0", - "graphviz": "0.0.9", - "ora": "^5.1.0", - "pluralize": "^8.0.0", - "precinct": "^7.0.0", - "pretty-ms": "^7.0.0", - "rc": "^1.2.7", - "typescript": "^3.9.5", - "walkdir": "^0.4.1" - }, - "dependencies": { - "commander": { - "version": "6.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - } - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-3.1.0.tgz", @@ -3772,30 +3197,6 @@ "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, "mime-db": { "version": "1.51.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.51.0.tgz", @@ -3828,9 +3229,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { "version": "3.1.6", @@ -4055,37 +3456,6 @@ } } }, - "module-definition": { - "version": "3.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/module-definition/-/module-definition-3.4.0.tgz", - "integrity": "sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA==", - "dev": true, - "requires": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.0.0" - } - }, - "module-lookup-amd": { - "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", - "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", - "dev": true, - "requires": { - "commander": "^2.8.1", - "debug": "^4.1.0", - "glob": "^7.1.6", - "requirejs": "^2.3.5", - "requirejs-config-file": "^4.0.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "moment": { "version": "2.29.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.1.tgz", @@ -4190,15 +3560,6 @@ "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, - "node-source-walk": { - "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-source-walk/-/node-source-walk-4.3.0.tgz", - "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", - "dev": true, - "requires": { - "@babel/parser": "^7.0.0" - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", @@ -4436,14 +3797,6 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, "object.assign": { "version": "4.1.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", @@ -4618,12 +3971,6 @@ "callsites": "^3.0.0" } }, - "parse-ms": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", - "dev": true - }, "path-exists": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", @@ -4664,12 +4011,6 @@ } } }, - "path-type": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, "pathval": { "version": "1.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", @@ -4762,34 +4103,6 @@ } } }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true - }, - "postcss": { - "version": "8.4.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/postcss/-/postcss-8.4.8.tgz", - "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", - "dev": true, - "requires": { - "nanoid": "^3.3.1", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", - "dev": true, - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, "prebuild-install": { "version": "7.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-7.0.1.tgz", @@ -4810,68 +4123,12 @@ "tunnel-agent": "^0.6.0" } }, - "precinct": { - "version": "7.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/precinct/-/precinct-7.1.0.tgz", - "integrity": "sha512-I1RkW5PX51/q6Xl39//D7x9NgaKNGHpR5DCNaoxP/b2+KbzzXDNhauJUMV17KSYkJA41CSpwYUPRtRoNxbshWA==", - "dev": true, - "requires": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "detective-amd": "^3.0.1", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.0", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^6.0.0", - "module-definition": "^3.3.1", - "node-source-walk": "^4.2.0" - }, - "dependencies": { - "ast-module-types": { - "version": "2.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ast-module-types/-/ast-module-types-2.7.1.tgz", - "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "detective-typescript": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detective-typescript/-/detective-typescript-6.0.0.tgz", - "integrity": "sha512-vTidcSDK3QostdbrH2Rwf9FhvrgJ4oIaVw5jbolgruTejexk6nNa9DShGpuS8CFVDb1IP86jct5BaZt1wSxpkA==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "^4.8.2", - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.2.0", - "typescript": "^3.9.7" - } - } - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "pretty-ms": { - "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "dev": true, - "requires": { - "parse-ms": "^2.1.0" - } - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -4944,12 +4201,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, "quick-lru": { "version": "5.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", @@ -5054,22 +4305,6 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "requirejs": { - "version": "2.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true - }, - "requirejs-config-file": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", - "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", - "dev": true, - "requires": { - "esprima": "^4.0.0", - "stringify-object": "^3.2.1" - } - }, "requires-port": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", @@ -5091,12 +4326,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, - "resolve-dependency-path": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", - "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", - "dev": true - }, "resolve-from": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", @@ -5125,12 +4354,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, - "reusify": { - "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, "revalidator": { "version": "0.1.8", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/revalidator/-/revalidator-0.1.8.tgz", @@ -5355,15 +4578,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, "rxjs": { "version": "7.5.4", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.4.tgz", @@ -5382,23 +4596,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sass-lookup": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sass-lookup/-/sass-lookup-3.0.0.tgz", - "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", - "dev": true, - "requires": { - "commander": "^2.16.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "semver": { "version": "7.3.5", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.5.tgz", @@ -5421,17 +4618,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-value": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5507,12 +4693,6 @@ "supports-color": "^7.2.0" } }, - "slash": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, "slice-ansi": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -5554,12 +4734,6 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, "spawn-wrap": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -5588,33 +4762,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-ca/-/split-ca-1.0.1.tgz", "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" }, - "split-string": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -5693,17 +4840,6 @@ "safe-buffer": "~5.2.0" } }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -5723,24 +4859,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, - "stylus-lookup": { - "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stylus-lookup/-/stylus-lookup-3.0.2.tgz", - "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", - "dev": true, - "requires": { - "commander": "^2.8.1", - "debug": "^4.1.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", @@ -5788,12 +4906,6 @@ } } }, - "tapable": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, "tar": { "version": "6.1.11", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", @@ -5837,12 +4949,6 @@ "readable-stream": "^3.1.1" } }, - "temp": { - "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/temp/-/temp-0.4.0.tgz", - "integrity": "sha1-ZxrWPVe+D+nXKUZks/xABjZnimA=", - "dev": true - }, "test-exclude": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/test-exclude/-/test-exclude-6.0.0.tgz", @@ -5925,23 +5031,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -5984,12 +5073,6 @@ "is-typedarray": "^1.0.0" } }, - "typescript": { - "version": "3.9.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "dev": true - }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -6002,23 +5085,6 @@ "which-boxed-primitive": "^1.0.2" } }, - "union-value": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, "unique-filename": { "version": "1.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", @@ -6035,15 +5101,6 @@ "imurmurhash": "^0.1.4" } }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", @@ -6091,12 +5148,6 @@ "builtins": "^1.0.3" } }, - "walkdir": { - "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", - "dev": true - }, "wcwidth": { "version": "1.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", From 687cc4dc7176d9dfd0a56df07edacdd8cb089803 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 5 Apr 2022 11:40:18 -0400 Subject: [PATCH 649/864] Fixed an incorrect import --- src/commands/workspaces/generate.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index aa094b66..fa44dfe4 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -22,6 +22,8 @@ const _ = { mean: require('lodash/mean'), }; +const { WorkspaceConfigureCommand } = require('./configure'); + const { readConfig, loadProfile } = require('../../config'); const { printToTerminal, @@ -139,7 +141,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { : 'Workspace generator is not configured. Running configuration now.\n', this.options, false, ); - await (new module.exports.WorkspaceConfigureCommand(this.program)).execute({ refresh: true }); + await (new WorkspaceConfigureCommand(this.program)).execute({ refresh: true }); this.config = readConfig(); } From 5280df83d37eee3db998d1bbdb7259b25ee30eef Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Fri, 8 Apr 2022 10:27:36 -0400 Subject: [PATCH 650/864] Moved typescript types for cortex into the CLI client. --- client/index.d.ts | 713 ++++++++++++++++++++++++++++++++++++++++++ client/index.js | 11 + package-lock.json | 306 +++++++++--------- package.json | 1 + src/client/catalog.js | 14 + 5 files changed, 898 insertions(+), 147 deletions(-) create mode 100644 client/index.d.ts create mode 100644 client/index.js diff --git a/client/index.d.ts b/client/index.d.ts new file mode 100644 index 00000000..f165c3f7 --- /dev/null +++ b/client/index.d.ts @@ -0,0 +1,713 @@ +declare module "cortex-cli/client" { + export interface InstanceEndpoint { + url: string; + description: string; + } + + export interface ActionStatus { + name: string; + state: string; + } + + export interface HealthStatus { + ok: boolean; + message: string; + } + + export interface InstanceHealth { + health: Record; + healthy: boolean; + name: string; + version: string; + } + + export interface InstanceStatus { + deployType: string; + endpoints: Record; + healths: InstanceHealth[]; + version: string; + } + + export interface InputOutputParams { + name: string; + type: string; + description?: string; + required?: boolean; + } + + export interface RoutingRule { + match: string; + action: string; + runtime?: string; + output: string; + } + + export interface AllRouting { + action: string; + runtime?: string; + output: string; + } + + export interface PropertyRouting { + property: string; + default?: AllRouting; + rules: RoutingRule[]; + } + + export interface FieldRouting { + field: string; + default?: AllRouting; + rules: RoutingRule[]; + } + + export interface Input { + name: string; + title: string; + parameters?: InputOutputParams[] | Reference; + routing: { + field?: string; + property?: string; + all: AllRouting; + default?: RoutingRule; + rules?: RoutingRule[]; + }; + } + + export interface Output { + name: string; + title: string; + parameters?: InputOutputParams[] | Reference; + } + + export interface PropertyDefinition { + name: string; + title: string; + description: string; + required?: boolean; + type: string; + defaultValue?: any; + validValues?: string[]; + qualifiedBy?: string; + secure?: boolean; + } + + export interface PropertyValue { + name: string; + value: any; + } + + export interface Tag { + label: string; + value: string; + } + + export interface Parameter { + name: string; + type: string; + title?: string; + description?: string; + format?: string; + required?: boolean; + } + + export interface Reference { + $ref: string; + } + + export interface URLReference { + $url: string; + } + + export interface DatasetReference { + name: string; + title?: string; + description?: string; + parameters?: Parameter[] | Reference[]; + requiresWrite?: boolean; + } + + export interface ConnectionReference { + name: string; + type: string; + query?: PropertyValue; + environment?: string; + } + + export interface ConnectionConfig { + default?: ConnectionReference; + environments?: ConnectionReference; + } + + export interface Payload { + records?: any[]; + columns?: string; + values?: any; + $ref?: Reference; + } + + export interface Message { + payload: Payload; + parameters?: Parameter[]; + } + + export interface Dataset { + camel: string; + name: string; + title: string; + description?: string; + tags?: Tag[]; + parameters: Parameter[]; + connections: ConnectionConfig[]; + } + + export interface Type { + camel: string; + name: string; + title: string; + description?: string; + parameters: Parameter[]; + } + + export interface Action { + name: string; + description?: string; + image: string; + command: string[]; + port?: string; + type: string; + scaleCount: number; + environmentVariables?: string | null; + } + + export interface Skill { + camel: string; + name: string; + title: string; + description?: string; + deployStatus?: string; + actionStatuses?: ActionStatus[]; + createdAt: string; + createdBy: string; + tags?: Tag[]; + inputs: Input[]; + outputs: Output[]; + properties?: PropertyDefinition[]; + actions?: Action[]; + datasets?: Dataset[]; + updatedAt?: string; + } + + export interface Experiment { + name: string; + title?: string; + description?: string; + tags?: Tag[]; + properties?: PropertyDefinition[]; + } + + export interface Model { + name: string; + title?: string; + description?: string; + tags?: Tag[]; + properties?: PropertyDefinition[]; + type?: string; + mode?: string; + status?: string; + source?: string; + } + + export interface ExperimentRun { + name: string; + experimentName: string; + title?: string; + description?: string; + tags?: Tag[]; + params?: any; + metrics?: any; + meta?: any; + artifacts?: any; + runId: string; + } + + export interface ManagedContent { + name: string; + title?: string; + description?: string; + connectionType?: string; + allowWrite?: boolean; + params?: any[]; + } + + export interface Activation { + success: boolean; + activationId: string; + instanceId: string; + channelId: string; + sessionId: string; + tenantId: string; + username: string; + status: string; + start: number; + end: number; + type: string; + request?: any; + requestType?: string; + response?: any; + responseType?: string; + inputServiceName?: string; + outputServiceName?: string; + datasetName: string; + trigger: any; + } + + export interface AgentIO { + name: string; + title?: string; + description?: string; + signalType: string; + } + + export interface Agent { + name: string; + title?: string; + description?: string; + properties?: PropertyDefinition[]; + inputs?: AgentIO[]; + outputs?: AgentIO[]; + processors?: any[]; + } + + export interface Session { + description?: string; + sessionId: string; + ttl: number; + } + + export interface Log { + name: string; + log: string; + } + + export interface Artifact { + artifactId: string; + experimentName: string; + projectId: string; + runId: string; + } + + export interface User { + externalGroups: string[]; + grants: any[]; + projects: string[]; + roles: string[]; + user: string; + } + + export interface Project { + name: string; + title: string; + description?: string; + } + + export interface Connection { + name: string; + title: string; + description?: string; + connectionType: string; + allowWrite: boolean; + allowRead: boolean; + params: Parameter[]; + } + + export interface Secret { + key: string; + value: string; + } + + export class Catalog { + cortexUrl: any; + endpoints: { + skills: (projectId: string) => string; + agents: (projectId: string) => string; + types: (projectId: string) => string; + campaigns: (projectId: string) => string; + }; + constructor(cortexUrl: any); + saveSkill( + projectId: string, + token: string, + skillObj: Skill + ): Promise; + listSkills( + projectId: string, + token: string, + query?: any, + filter?: any, + limit?: any, + skip?: any, + sort?: any + ): Promise; + describeSkill( + projectId: string, + token: string, + skillName: string, + verbose?: boolean, + output?: string + ): Promise; + deleteSkill(projectId: string, token: string, skillName: string): any; + deploySkill( + projectId: string, + token: string, + skillName: string, + verbose?: boolean + ): any; + unDeploySkill( + projectId: string, + token: string, + skillName: string, + verbose?: boolean + ): any; + skillLogs( + projectId: string, + token: string, + skillName: string, + actionName: any, + verbose?: boolean + ): any; + + saveType(projectId: string, token: string, types: any): any; + describeType(projectId: string, token: string, typeName: any): any; + listTypes( + projectId: string, + token: string, + filter?: any, + limit?: any, + skip?: any, + sort?: any + ): any; + deleteType(projectId: string, token: string, typeName: any): any; + + listAgents( + projectId: string, + token: string, + filter?: any, + limit?: any, + skip?: any, + sort?: any + ): any; + // listServices(projectId: string, token: string, agentName: string, filter: any, limit: any, skip: any, sort: any): any; + saveAgent(projectId: string, token: string, agentObj: Agent): any; + describeAgent( + projectId: string, + token: string, + agentName: string, + verbose?: any + ): Promise; + // describeAgentVersions(projectId: string, token: string, agentName: string): any; + deployAgent( + projectId: string, + token: string, + agentName: string, + verbose?: boolean + ): any; + deleteAgent(projectId: string, token: string, agentName: string): any; + unDeployAgent( + projectId: string, + token: string, + agentName: string, + verbose?: boolean + ): any; + + // exportCampaign(projectId: string, token: string, campaignName: any, deployable: any, path: any): Promise; + // importCampaign(projectId: string, token: string, filepath: any, deploy: any, overwrite: any): void; + // undeployCampaign(projectId: string, token: string, campaign: any): any; + // deployCampaign(projectId: string, token: string, campaign: any): any; + // undeployMission(projectId: string, token: string, campaign: any, mission: any): any; + // listMissions(projectId: string, token: string, campaign: any, filter: any, limit: any, skip: any, sort: any): any; + // deployMission(projectId: string, token: string, campaign: any, mission: any): any; + // getMission(projectId: string, token: string, campaign: any, mission: any): any; + } + + export class Agents { + constructor(cortexUrl: any); + cortexUrl: any; + endpointV4: (projectId: any) => string; + invokeAgentService( + projectId: any, + token: any, + agentName: string, + serviceName: any, + params: any + ): any; + invokeSkill( + projectId: any, + token: any, + skillName: any, + inputName: any, + params: any + ): any; + getActivation( + projectId: any, + token: any, + activationId: any, + verbose?: any, + report?: any + ): any; + listActivations(projectId: any, token: any, params?: any): any; + listAgentSnapshots( + projectId: any, + token: any, + agentName: string, + filter: any, + limit: any, + skip: any, + sort: any + ): any; + describeAgentSnapshot( + projectId: any, + token: any, + snapshotId: any, + output: any + ): any; + createAgentSnapshot(projectId: any, token: any, snapshot: any): any; + } + + export class Connections { + constructor(cortexUrl: any); + endpoint: (projectId: any) => string; + cortexUrl: any; + listConnections( + projectId: any, + token: any, + filter?: any, + limit?: any, + skip?: any, + sort?: any + ): Promise; + saveConnection( + projectId: any, + token: any, + connObj: Connection + ): Promise; + describeConnection(projectId: any, token: any, connectionName: any): any; + deleteConnection(projectId: any, token: any, connectionName: any): any; + listConnectionsTypes( + token: any, + filter: any, + limit: any, + skip: any, + sort: any + ): any; + } + + export class Content { + constructor(cortexUrl: any); + cortexUrl: any; + endpoint: (projectId: any) => string; + _sanitizeKey(key: any): any; + listContent(projectId: any, token: any): any; + uploadContentStreaming( + projectId: any, + token: any, + key: any, + content: any, + showProgress?: boolean, + contentType?: string + ): Promise; + deleteContent(projectId: any, token: any, key: any): any; + downloadContent( + projectId: any, + token: any, + key: any, + showProgress?: boolean, + toFile?: any + ): any; + } + + export class Experiments { + constructor(cortexUrl: any); + cortexUrl: any; + endpoint: (projectId: string) => string; + listExperiments( + projectId: string, + modelId: any, + token: string, + filter?: any, + limit?: any, + skip?: any, + sort?: any + ): Promise; + describeExperiment( + projectId: string, + token: string, + name: any + ): Promise; + deleteExperiment(projectId: string, token: string, name: any): any; + listRuns( + projectId: string, + token: string, + experimentName: string, + filter?: any, + limit?: any, + sort?: any, + skip?: any + ): Promise; + describeRun( + projectId: string, + token: string, + experimentName: string, + runId: string + ): any; + deleteRun( + projectId: string, + token: string, + experimentName: string, + runId: string + ): any; + _artifactKey(experimentName: string, runId: string, artifact: any): string; + downloadArtifact( + projectId: string, + token: string, + experimentName: string, + runId: string, + artifactName: any, + showProgress?: boolean + ): Promise; + saveExperiment( + projectId: string, + token: string, + experimentObj: Experiment + ): any; + createRun(projectId: string, token: string, runObj: ExperimentRun): any; + updateRun(projectId: string, token: string, runObj: ExperimentRun): any; + uploadArtifact( + projectId: string, + token: string, + experimentName: string, + runId: string, + content: string, + artifact: string, + contentType?: string + ): Promise; + } + + export class Models { + constructor(cortexUrl: any); + cortexUrl: any; + endpointV4: (projectId: any) => string; + saveModel(projectId: any, token: any, modelObj: any): Promise; + updateModelStatus( + projectId: any, + token: any, + modelName: any, + status: any + ): Promise; + deleteModel(projectId: any, token: any, modelName: any): Promise; + describeModel( + projectId: any, + token: any, + modelName: any, + verbose?: any + ): any; + listModels( + projectId: any, + skip: any, + limit: any, + filter: any, + sort: any, + tags: any, + token: any + ): any; + listModelRuns( + projectId: any, + modelName: any, + token: any, + filter: any, + limit: any, + skip: any, + sort: any + ): any; + } + + export class Secrets { + constructor(cortexUrl: any); + cortexUrl: any; + endpoint: (projectId: any) => any; + listSecrets(projectId: any, token: any): any; + readSecret(projectId: any, token: any, keyName: any): any; + deleteSecret(projectId: any, token: any, keyName: any): any; + writeSecret(projectId: any, token: any, keyName: any, value: any): any; + } + + export class Sessions { + constructor(cortexUrl: any); + cortexUrl: any; + endpointV4: (projectId: any) => string; + saveSession(projectId: any, token: any, sessionObj: any): any; + deleteSession(projectId: any, token: any, sessionName: any): any; + describeSession( + projectId: any, + token: any, + sessionName: any, + verbose?: any + ): any; + listSessions(projectId: any, token: any, limit?: any): any; + } + + export class AmpServer { + constructor(cortexUrl: any); + cortexUrl: any; + endpoint: string; + _client(token: any): any; + getProject(token: any, projectId: any): Promise; + listProjects( + token: any, + filter?: any, + limit?: any, + skip?: any, + sort?: any + ): Promise; + createProject(token: any, projDef: Project): Promise; + getCampaign(projectId: any, token: any, campaignId: any): Promise; + listCampaigns( + projectId: any, + token: any, + filter?: any, + limit?: any, + skip?: any, + sort?: any + ): Promise; + listModels( + projectId: any, + offset: any, + limit: any, + token: any + ): Promise; + descModels(projectId: any, name: any, token: any): Promise; + } + + export class Info { + constructor(cortexUrl: any); + endpoint: () => string; + cortexUrl: any; + getInfo(): any; + } + + export class Users { + constructor(cortexUrl: any, user?: any, flags?: any[]); + cortexUrl: any; + endpoint: string; + flags: string; + usersEndpoint: string; + usersProjectsEndpoint: string; + createServiceUser(token: string, user: User): any; + deleteServiceUser(token: string, user: User): any; + listServiceUsers(token: string): any; + describeUser(token: string): any; + createGrantForUser(token: string, body: any): any; + removeGrantFromUser(token: string, body: any): any; + addUsersToProject(token: string, project: any, users: any): any; + removeUsersFromProject(token: string, project: any, users: any): any; + } +} diff --git a/client/index.js b/client/index.js new file mode 100644 index 00000000..86ded809 --- /dev/null +++ b/client/index.js @@ -0,0 +1,11 @@ +exports.Info = require('../src/client/info'); +exports.Users = require('../src/client/users'); +exports.Catalog = require('../src/client/catalog'); +exports.Agents = require('../src/client/agents'); +exports.Connections = require('../src/client/connections'); +exports.Content = require('../src/client/content'); +exports.Experiments = require('../src/client/experiments'); +exports.Models = require('../src/client/models'); +exports.Secrets = require('../src/client/secrets'); +exports.Sessions = require('../src/client/sessions'); +exports.AmpServer = require('../src/client/apiServerClient'); diff --git a/package-lock.json b/package-lock.json index 32b6c001..f5d685ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,42 +23,39 @@ } }, "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "version": "7.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", "dev": true }, "@babel/core": { - "version": "7.17.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", + "@babel/traverse": "^7.17.9", "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.1", "semver": "^6.3.0" }, "dependencies": { "json5": { - "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true }, "semver": { "version": "6.3.0", @@ -69,31 +66,23 @@ } }, "@babel/generator": { - "version": "7.17.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", "dev": true, "requires": { "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } } }, "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dev": true, "requires": { - "@babel/compat-data": "^7.16.4", + "@babel/compat-data": "^7.17.7", "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" @@ -117,23 +106,13 @@ } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { @@ -155,14 +134,14 @@ } }, "@babel/helper-module-transforms": { - "version": "7.17.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", - "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", + "version": "7.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", @@ -171,12 +150,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-split-export-declaration": { @@ -201,20 +180,20 @@ "dev": true }, "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "dev": true, "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", + "@babel/traverse": "^7.17.9", "@babel/types": "^7.17.0" } }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -275,9 +254,9 @@ } }, "@babel/parser": { - "version": "7.17.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", "dev": true }, "@babel/template": { @@ -292,18 +271,18 @@ } }, "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", + "@babel/generator": "^7.17.9", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", + "@babel/parser": "^7.17.9", "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" @@ -535,9 +514,9 @@ } }, "@sideway/address": { - "version": "4.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.3.tgz", - "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", + "version": "4.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "requires": { "@hapi/hoek": "^9.0.0" } @@ -621,6 +600,11 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, + "@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, "@types/json5": { "version": "0.0.29", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", @@ -628,17 +612,17 @@ "dev": true }, "@types/keyv": { - "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.3.tgz", - "integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==", + "version": "3.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "requires": { "@types/node": "*" } }, "@types/node": { - "version": "17.0.21", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" + "version": "17.0.23", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" }, "@types/responselike": { "version": "1.0.0", @@ -999,13 +983,13 @@ "dev": true }, "browserslist": { - "version": "4.20.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.20.0.tgz", - "integrity": "sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==", + "version": "4.20.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001313", - "electron-to-chromium": "^1.4.76", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", "node-releases": "^2.0.2", "picocolors": "^1.0.0" @@ -1025,6 +1009,12 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, + "buildcheck": { + "version": "0.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buildcheck/-/buildcheck-0.0.3.tgz", + "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", + "optional": true + }, "builtins": { "version": "1.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", @@ -1129,9 +1119,9 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "caniuse-lite": { - "version": "1.0.30001313", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001313.tgz", - "integrity": "sha512-rI1UN0koZUiKINjysQDuRi2VeSCce3bYJNmDcj3PIKREiAmjakugBul1QSkg/fPrlULYl6oWfGg3PbgOSY9X4Q==", + "version": "1.0.30001325", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz", + "integrity": "sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ==", "dev": true }, "chai": { @@ -1336,6 +1326,15 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "compress-brotli": { + "version": "1.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/compress-brotli/-/compress-brotli-1.3.6.tgz", + "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", + "requires": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", @@ -1375,12 +1374,13 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "cpu-features": { - "version": "0.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.2.tgz", - "integrity": "sha512-/2yieBqvMcRj8McNzkycjW2v3OIUOibBfd2dLEJ0nWts8NobAxwiyw9phVNS6oDL8x8tz9F7uNVFEVpJncQpeA==", + "version": "0.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.4.tgz", + "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", "optional": true, "requires": { - "nan": "^2.14.1" + "buildcheck": "0.0.3", + "nan": "^2.15.0" } }, "cross-env": { @@ -1569,9 +1569,9 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "electron-to-chromium": { - "version": "1.4.76", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz", - "integrity": "sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA==", + "version": "1.4.106", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz", + "integrity": "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg==", "dev": true }, "emoji-regex": { @@ -1622,9 +1622,9 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "es-abstract": { - "version": "1.19.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.19.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.2.tgz", + "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -1633,15 +1633,15 @@ "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.1", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", @@ -2310,9 +2310,9 @@ } }, "globals": { - "version": "13.12.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "version": "13.13.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -2362,9 +2362,9 @@ } }, "graceful-fs": { - "version": "4.2.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "version": "4.2.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, "graphql": { @@ -2734,9 +2734,9 @@ "dev": true }, "is-number-object": { - "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -2764,10 +2764,13 @@ } }, "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } }, "is-stream": { "version": "2.0.1", @@ -2930,6 +2933,14 @@ "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "istanbul-reports": { @@ -3052,10 +3063,11 @@ } }, "keyv": { - "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.1.1.tgz", - "integrity": "sha512-tGv1yP6snQVDSM4X6yxrv2zzq/EvpW+oYiUz6aueW1u9CtS8RzUQYxxmFwgZlO2jSgCxQbchhxaqXXp2hnKGpQ==", + "version": "4.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.2.2.tgz", + "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", "requires": { + "compress-brotli": "^1.3.6", "json-buffer": "3.0.1" } }, @@ -3198,16 +3210,16 @@ "dev": true }, "mime-db": { - "version": "1.51.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + "version": "1.52.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.34", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.35", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" } }, "mimic-fn": { @@ -4579,9 +4591,9 @@ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, "rxjs": { - "version": "7.5.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.4.tgz", - "integrity": "sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==", + "version": "7.5.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", "requires": { "tslib": "^2.1.0" } @@ -4729,9 +4741,9 @@ } }, "source-map": { - "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.5.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "spawn-wrap": { @@ -4769,13 +4781,13 @@ "dev": true }, "ssh2": { - "version": "1.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssh2/-/ssh2-1.7.0.tgz", - "integrity": "sha512-u1gdFfqKV1PTGR2szS5FImhFii40o+8FOUpg1M//iimNaS4BkTyUVfVdoydXS93M1SquOU02Z4KFhYDBNqQO+g==", + "version": "1.9.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssh2/-/ssh2-1.9.0.tgz", + "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", "requires": { "asn1": "^0.2.4", "bcrypt-pbkdf": "^1.0.2", - "cpu-features": "0.0.2", + "cpu-features": "~0.0.4", "nan": "^2.15.0" } }, @@ -4887,9 +4899,9 @@ }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -4967,9 +4979,9 @@ "dev": true }, "textextensions": { - "version": "5.14.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-5.14.0.tgz", - "integrity": "sha512-4cAYwNFNYlIAHBUo7p6zw8POUvWbZor+/R0Tanv+rIhsauEyV9QSrEXL40pI+GfTQxKX8k6Tyw6CmdSDSmASrg==" + "version": "5.15.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-5.15.0.tgz", + "integrity": "sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==" }, "through": { "version": "2.3.8", @@ -5015,14 +5027,14 @@ "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==" }, "tsconfig-paths": { - "version": "3.13.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.13.0.tgz", - "integrity": "sha512-nWuffZppoaYK0vQ1SQmkSsQzJoHA4s6uzdb2waRpD806x9yfq153AdVsWz4je2qZcW+pENrMQXbGQ3sMCkXuhw==", + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", - "minimist": "^1.2.0", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, diff --git a/package.json b/package.json index 56cd2483..62d83a35 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "2.0.7", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", + "types": "./client/index.d.ts", "scripts": { "preinstall": "npx npm-force-resolutions && npx check-node-version -p --package", "prepare": "husky install", diff --git a/src/client/catalog.js b/src/client/catalog.js index 903dd108..9ce1a13a 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -293,6 +293,20 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } + deleteType(projectId, token, typeName) { + checkProject(projectId); + const endpoint = `${this.endpoints.types(projectId)}/${encodeURIComponent(typeName)}`; + debug('deleteType(%s) => %s', typeName, endpoint); + return got + .delete(endpoint, { + headers: { Authorization: `Bearer ${token}` }, + 'user-agent': getUserAgent(), + }) + .json() + .then((type) => ({ success: true, type })) + .catch((err) => constructError(err)); + } + exportCampaign(projectId, token, campaignName, deployable, path) { checkProject(projectId); From 4e83d800e55301a8f9be9e784a355d7de2c70e86 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 25 Apr 2022 11:15:33 -0400 Subject: [PATCH 651/864] Removed allowList entry --- package.json | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 62d83a35..dffca48a 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,23 @@ { "name": "cortex-cli", - "version": "2.0.7", + "version": "2.0.11", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "types": "./client/index.d.ts", "scripts": { - "preinstall": "npx npm-force-resolutions && npx check-node-version -p --package", - "prepare": "husky install", + "prepare": "is-ci || husky install", + "prepack": "cp package-lock.json npm-shrinkwrap.json", + "postpack": "rm npm-shrinkwrap.json", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", - "test": "cross-env NODE_ENV=test nyc mocha --recursive --exit --timeout 10000 --ignore uploadDirectory.js" + "test": "cross-env NODE_ENV=test nyc mocha" }, + "files": [ + "bin/*", + "src/*", + "README.md", + "npm-shrinkwrap.json", + "LICENSE" + ], "engines": { "node": ">=14.0.0" }, @@ -32,14 +40,12 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "boxen": "5.1.2", - "cache-base": "^2.0.0", "chalk": "4.1.2", "cli-progress": "3.9.1", - "cli-table3": "0.6.0", - "commander": "8.3.0", - "debug": "4.3.3", "dockerode": "3.3.1", + "cli-table3": "0.6.2", + "commander": "9.2.0", + "debug": "4.3.4", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", @@ -51,20 +57,20 @@ "inquirer": "8.2.0", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", - "jmespath": "0.15.0", + "jmespath": "0.16.0", "joi": "17.6.0", - "jose-node-cjs-runtime": "4.4.0", + "jose-node-cjs-runtime": "4.6.2", "js-yaml": "4.1.0", "keytar": "7.8.0", "lodash": "4.17.21", "minimatch": "3.0.4", "mixin-deep": "^2.0.1", - "moment": "2.29.1", + "moment": "2.29.3", "npm-registry-fetch": "12.0.0", "open": "8.4.0", - "prompt": "1.2.1", - "semver": "7.3.5", "treeify": "1.1.0", + "prompts": "2.4.2", + "semver": "7.3.7", "url-join": "4.0.1", "url-parse": "1.5.10", "uuid": "8.3.2", @@ -75,14 +81,14 @@ "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.7.0", + "eslint": "8.13.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.25.4", + "eslint-plugin-import": "2.26.0", "husky": "7.0.4", - "madge": "4.0.2", - "mocha": "9.2.0", + "is-ci": "3.0.1", + "mocha": "9.2.2", "mocked-env": "1.3.5", - "nock": "13.2.2", + "nock": "13.2.4", "nyc": "15.1.0", "rewire": "6.0.0", "sinon": "11.1.2" @@ -93,8 +99,9 @@ "html" ] }, - "resolutions": { + "overrides": { "mixin-deep": "2.0.1", - "cache-base": "2.0.2" + "cache-base": "2.0.2", + "ansi-regex": "5.0.1" } } From 51ed06c6d5cc3040243eade8dbbc99a91378d485 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 25 Apr 2022 12:50:41 -0400 Subject: [PATCH 652/864] Minor text formatting fix --- src/commands/workspaces/configure.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index 4b03fe9b..473fdc6b 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -83,7 +83,7 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { const mom = moment().add(expiry, 'seconds'); (function poller(options) { - printToTerminal(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${options.color === 'on' + process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${options.color === 'on' ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) : deviceCode.user_code } ${moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); From 429779a52046703306b10fa1737f029a87419b93 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 25 Apr 2022 12:51:25 -0400 Subject: [PATCH 653/864] lint fix --- src/commands/workspaces/configure.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index 473fdc6b..e83e380d 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -4,7 +4,7 @@ const got = require('got'); const open = require('open'); const moment = require('moment'); -const { printToTerminal, validateToken, persistToken } = require('./workspace-utils'); +const { validateToken, persistToken } = require('./workspace-utils'); const _ = { get: require('lodash/get'), From 3bd2826062e6a8231a67deb0505cf9c0f2854508 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 25 Apr 2022 13:18:59 -0400 Subject: [PATCH 654/864] Added deprecation for generate command. --- bin/cortex-generate.js | 36 ++++++++++++++++++++++++++++++++++++ bin/cortex.js | 1 + 2 files changed, 37 insertions(+) create mode 100644 bin/cortex-generate.js diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js new file mode 100644 index 00000000..2f6629f0 --- /dev/null +++ b/bin/cortex-generate.js @@ -0,0 +1,36 @@ +#!/usr/bin/env node + +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chalk = require('chalk'); +const program = require('commander'); + +program.name('cortex generate'); +program.description('Scaffolding Cortex Components [DEPRECATED]'); + +program + .command('skill [skillName] [type]') + .description('Generates the structure and top level build script for a skill in current directory') + .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .action((skillName, type, options) => { // deliberately not using withCompatibilityCheck() + console.error(chalk.red('Generate command has been superceded by the Workspaces command.')); + }); + +if (require.main === module) { + program.showHelpAfterError().parseAsync(process.argv); +} +module.exports = program; diff --git a/bin/cortex.js b/bin/cortex.js index 87a95061..5d982fea 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -35,6 +35,7 @@ program .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') .command('docker [cmd]', 'Work with Docker') .command('experiments [cmd]', 'Work with Cortex Experiments') + .command('generate [cmd]', 'Scaffold Cortex Components') .command('workspaces [cmd]', 'Scaffold Cortex Components') .command('missions [cmd]', 'Work with Cortex Missions') .command('models [cmd]', 'Work with Cortex Models') From fd48fa761ac3bbaf256f4a9122a79ce87a8433b3 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 25 Apr 2022 13:19:47 -0400 Subject: [PATCH 655/864] lint fix --- bin/cortex-generate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index 2f6629f0..4d07e28b 100644 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -26,7 +26,7 @@ program .command('skill [skillName] [type]') .description('Generates the structure and top level build script for a skill in current directory') .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .action((skillName, type, options) => { // deliberately not using withCompatibilityCheck() + .action(() => { // deliberately not using withCompatibilityCheck() console.error(chalk.red('Generate command has been superceded by the Workspaces command.')); }); From d3c20f3b447b5f9eac0f912f8aa1dfecde5df044 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 25 Apr 2022 15:06:57 -0400 Subject: [PATCH 656/864] Removed workspace test command. Will only support build and publish from now on. --- bin/cortex-workspaces.js | 15 --- src/commands/workspaces/test.js | 189 -------------------------------- 2 files changed, 204 deletions(-) delete mode 100644 src/commands/workspaces/test.js diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index e10eb817..58d71c23 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -29,7 +29,6 @@ const { WorkspaceActivateRegistryCommand, WorkspaceListRegistryCommand, } = require('../src/commands/workspaces/registry'); -// const { WorkspaceTestCommand } = require('../src/commands/workspaces/test'); program.name('cortex workspaces'); program.description('Scaffolding Cortex Components'); @@ -141,20 +140,6 @@ program } }); - // program - // .command('test [folder]') - // .option('--color [on/off]', 'Turn on/off colors', 'on') - // .option('--skill [skill name]', 'Test only the specified skill') - // .option('--input [input name]', 'Test only the specified input') - // .description('Tests the specified skill locally') - // .action((folder, options) => { // deliberately not using withCompatibilityCheck() - // try { - // new WorkspaceTestCommand(program).execute(folder, options); - // } catch (err) { - // console.error(chalk.red(err.message)); - // } - // }); - if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } diff --git a/src/commands/workspaces/test.js b/src/commands/workspaces/test.js deleted file mode 100644 index fb55b486..00000000 --- a/src/commands/workspaces/test.js +++ /dev/null @@ -1,189 +0,0 @@ -const path = require('path'); -const Docker = require('dockerode'); -const glob = require('glob'); -const { - readFile, -} = require('fs/promises'); - -const { printSuccess, printError } = require('../utils'); -const { getSkillInfo, buildImageTag } = require('./workspace-utils'); - -const _ = { - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - find: require('lodash/find'), -}; - -module.exports.WorkspaceTestCommand = class WorkspaceTestCommand { - constructor(program) { - this.program = program; - this.docker = new Docker(); - } - - selectRoute(input) { - if (input.routing.all) { - return input.routing.all; - } - /// TODO: support additional routing types here - return undefined; - } - - async invokeJob(skill, route, payload) { - const action = _.find(skill.actions, { name: route.action }); - const Image = await buildImageTag(action.image); - - try { - console.log('Running Job', Image); - - const info = await this.docker.getImage(Image).inspect(); - - const container = await this.docker.createContainer({ - Tty: true, - Image, - name: 'invoke-job', - Cmd: [...info.Config.Entrypoint, JSON.stringify(payload)], - EntryPoint: [''], - HostConfig: { AutoRemove: true }, - Env: ['START_WITHOUT_ENVOY=true'], - }); - - const stream = await container.attach({ stream: true, stdout: true, stderr: true }); - stream.on('data', (data) => { - console.log(data.toString()); - }); - - await container.start(); - return await container.wait().finally(() => stream.destroy()); - } catch (err) { - console.error('ERROR: ', err); - } - - return undefined; - } - - async invokeDaemon(skill, route) { - const action = _.find(skill.actions, { name: route.action }); - const Image = await buildImageTag(action.image); - - try { - console.log('Running Daemon', Image); - const info = await this.docker.getImage(Image).inspect(); - - const daemonPort = _.find(skill.properties, { name: 'daemon.port' }).defaultValue || 5000; - // const daemonMethod = _.find(skill.properties, { name: 'daemon.method' }).defaultValue || 'POST'; - // const daemonPath = _.find(skill.properties, { name: 'daemon.path' }).defaultValue || 'invoke'; - - const ExposedPorts = {}; - ExposedPorts[`${daemonPort}/tcp`] = {}; - - const PortBindings = {}; - PortBindings[`${daemonPort}/tcp`] = [ - { - HostIp: '127.0.0.1', - HostPort: `${daemonPort}`, - }, - ]; - - const existingContainer = await this.docker.getContainer('invoke-daemon'); - if (await existingContainer.inspect().catch(() => {})) { - await existingContainer.remove({ force: true }); - } - - const container = await this.docker.createContainer({ - Tty: true, - Image, - name: 'invoke-daemon', - Cmd: info.Config.Cmd, - EntryPoint: [''], - ExposedPorts, - HostConfig: { - AutoRemove: true, - PortBindings, - }, - Env: [ - 'START_WITHOUT_ENVOY=true', - 'NEVER_KILL_ISTIO=true', - 'ISTIO_QUIT_API=', - ], - }).catch((err) => console.error('ERROR: ', err)); - - const stream = await container.attach({ stream: true, stdout: true, stderr: true }); - stream.on('data', (data) => { - console.log(data.toString()); - }); - - await container.start(); - - return await container.wait().finally(() => stream.destroy()); - } catch (err) { - console.error('ERROR: ', err); - } - - return undefined; - } - - async execute(folder, options) { - this.options = options; - let target = process.cwd(); - - if (folder) { - const fldr = folder.replace(/'|"/g, ''); - target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); - } - - if (options.skill) { - target = path.join(target, 'skills', options.skill, 'skill.yaml'); - } - - const skillInfo = await getSkillInfo(target); - - if (skillInfo.length > 0) { - await Promise.all(_.map(skillInfo, async (info) => { - const { skill } = info; - const skillDir = path.dirname(info.uri); - - await Promise.all(_.map(skill.inputs, async (input) => { - if (!options.input || input.name === options.input) { - const payloadFiles = glob.sync(`/invoke/${input.name}/*.json`, { - root: skillDir, - absolute: true, - }); - await Promise.all(_.map(payloadFiles, async (payloadFile) => { - try { - const payload = JSON.parse(await readFile(payloadFile, { encoding: 'utf8' }).catch(() => {})); - const route = this.selectRoute(input); - let status = { StatusCode: 1 }; - - switch (route.runtime) { - case 'cortex/jobs': - status = await this.invokeJob(skill, route, payload); - break; - case 'cortex/daemons': - status = await this.invokeDaemon(skill, route, payload); - break; - case 'cortex/external-api': - console.log('Run external-api', input.name); - break; - default: - console.error('Unknown runtime'); - } - - if (status.StatusCode) { - printError(`Invoke FAILED (${status.StatusCode}) ${status.Error || ''}`, this.options, false); - } else { - printSuccess('Invoke Succeeded'); - } - } catch (err) { - console.error('ERROR: ', err); - } - })); - } - })); - })); - } else { - console.log('No skills found'); - } - } -}; - From 99b8c283a8eb191aca06d50fbc5e1b0b7ffe2278 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 25 Apr 2022 18:23:58 -0400 Subject: [PATCH 657/864] Added tests for generation --- bin/cortex-workspaces.js | 12 ++-- package.json | 3 +- src/commands/workspaces/generate.js | 16 +++-- test/workspaces.js | 96 +++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+), 10 deletions(-) create mode 100644 test/workspaces.js diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 58d71c23..88f4cbef 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -1,5 +1,3 @@ -#!/usr/bin/env node - /* * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. * @@ -51,13 +49,15 @@ program .option('--registry [registry]', 'Override the docker registry to publish to') .option('--color [on/off]', 'Turn on/off colors', 'on') .option('--notree', 'Do not display generated file tree', false) + .option('--template [templateName]', 'Name of template to use') .description('Generates a workspace based on a template from the template repository') .action((name, destination, options) => { // deliberately not using withCompatibilityCheck() try { - new WorkspaceGenerateCommand(program).execute(name, destination, options); + return new WorkspaceGenerateCommand(program).execute(name, destination, options); } catch (err) { console.error(chalk.red(err.message)); } + return Promise.reject(); }); program @@ -67,10 +67,11 @@ program .description('Builds all skills in the workspace, or optionally only the specified skill') .action((folder, options) => { // deliberately not using withCompatibilityCheck() try { - new WorkspaceBuildCommand(program).execute(folder, options); + return new WorkspaceBuildCommand(program).execute(folder, options); } catch (err) { console.error(chalk.red(err.message)); } + return Promise.reject(); }); program @@ -80,10 +81,11 @@ program .description('Publishes all skills and resources in the workspace') .action((folder, options) => { // deliberately not using withCompatibilityCheck() try { - new WorkspacePublishCommand(program).execute(folder, options); + return new WorkspacePublishCommand(program).execute(folder, options); } catch (err) { console.error(chalk.red(err.message)); } + return Promise.reject(); }); const registry = program diff --git a/package.json b/package.json index dffca48a..bda6dbef 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "prepack": "cp package-lock.json npm-shrinkwrap.json", "postpack": "rm npm-shrinkwrap.json", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", - "test": "cross-env NODE_ENV=test nyc mocha" + "test": "cross-env NODE_ENV=test nyc mocha", + "test:workspaces": "cross-env NODE_ENV=test mocha --grep='Workspaces'" }, "files": [ "bin/*", diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index fa44dfe4..fddc23bd 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -20,6 +20,7 @@ const _ = { isEmpty: require('lodash/isEmpty'), set: require('lodash/set'), mean: require('lodash/mean'), + find: require('lodash/find'), }; const { WorkspaceConfigureCommand } = require('./configure'); @@ -44,13 +45,13 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { this.program = program; } - async loadTemplateTree({ repo, branch, githubToken }) { + async loadTemplateTree({ repo, branch }) { printToTerminal('\x1b[0G\x1b[2KLoading templates...'); this.gitRepo = repo; this.branch = branch; - this.authorization = githubToken; + this.authorization = this.githubToken; this.tree = await ghGot(`repos/${repo}/branches/${branch || 'main'}`, { headers: { authorization: this.authorization }, @@ -90,7 +91,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { return registryUrl; } - async selectTemplate() { + async selectTemplate(templateName) { const registryUrl = await this.getRegistry(); const fileNames = this.globTree(METADATA_FILENAME); @@ -102,6 +103,12 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { }; })); + let template; + + if (templateName) { + template = _.find(choices, (c) => c.name === templateName).value; + } + const answers = await inquirer.prompt([ { type: 'list', @@ -121,6 +128,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { ], { name: this.name, registry: registryUrl, + template, }).catch(() => { }); return answers; @@ -148,7 +156,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { await this.loadTemplateTree(this.config.templateConfig); if (this.tree.length) { - const template = await this.selectTemplate(); + const template = await this.selectTemplate(options.template); if (template) { const templateFolder = path.posix.dirname(template.template.path); const templateFiles = this.globTree(`${templateFolder}/**`); diff --git a/test/workspaces.js b/test/workspaces.js new file mode 100644 index 00000000..0d9344c8 --- /dev/null +++ b/test/workspaces.js @@ -0,0 +1,96 @@ +/* + * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the “License”); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an “AS IS” BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const chai = require('chai'); +const mockedEnv = require('mocked-env'); +const _ = require('lodash'); +const sinon = require('sinon'); +const fs = require('fs'); +const { stripAnsi } = require('./utils'); + +describe('Workspaces', () => { + let restoreEnv; + let sandbox; + let printSpy; + let errorSpy; + before(() => { + restoreEnv = mockedEnv({ + CORTEX_CONFIG_DIR: '../cortex', + }); + sandbox = sinon.createSandbox(); + printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); + + fs.mkdirSync('test/workspaces', { recursive: true }); + process.chdir('test/workspaces'); + }); + + beforeEach(() => { + delete require.cache[require.resolve('commander')]; + delete require.cache[require.resolve('../bin/cortex-workspaces')]; + }); + + after(() => { + restoreEnv(); + sandbox.restore(); + process.chdir('..'); + fs.rmdirSync('workspaces', { recursive: true }); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + + it('should generate a job skill', async () => { + const program = require('../bin/cortex-workspaces'); + await program.parseAsync(['node', 'workspaces', 'generate', 'job1', '--notree', '--template', 'Custom Job Skill']); + const output = getPrintedLines(); + const errs = getErrorLines(); + + chai.expect(fs.existsSync('docs/job1/README.md')); + chai.expect(fs.existsSync('skills/job1/skill.yaml')); + chai.expect(fs.existsSync('skills/job1/actions/job1/main.py')); + chai.expect(fs.existsSync('skills/job1/actions/job1/requirements.txt')); + chai.expect(fs.existsSync('skills/job1/actions/job1/Dockerfile')); + chai.expect(fs.existsSync('skills/job1/invoke/request/message.json')); + + chai.expect(output.join('')).to.contain('Workspace generation complete.'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + }); + + it('should generate a daemon skill', async () => { + const program = require('../bin/cortex-workspaces'); + await program.parseAsync(['node', 'workspaces', 'generate', 'dmn1', '--notree', '--template', 'Custom Daemon Skill']); + const output = getPrintedLines(); + const errs = getErrorLines(); + + chai.expect(fs.existsSync('docs/dmn1/README.md')); + chai.expect(fs.existsSync('skills/dmn1/skill.yaml')); + chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/main.py')); + chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/requirements.txt')); + chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/Dockerfile')); + chai.expect(fs.existsSync('skills/dmn1/invoke/request/message.json')); + + chai.expect(output.join('')).to.contain('Workspace generation complete.'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + }); +}); From c244250579c511c55dcb797d06d2491193bf311c Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 09:32:30 -0400 Subject: [PATCH 658/864] lint fix --- src/commands/workspaces/publish.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 894662d7..adb95fe9 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -127,6 +127,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (reg.isCortex) { const ttl = options.ttl || '1d'; const jwt = await generateJwt(profile, ttl); + // eslint-disable-next-line no-param-reassign profile.token = jwt; } else { const answers = await inquirer.prompt([ @@ -181,6 +182,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (err) { return reject(err); } + // eslint-disable-next-line no-param-reassign action.image = newTag; status.complete(); status.stop(); From 40902be45c3954fa09faeec063667bc63758b619 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 11:30:02 -0400 Subject: [PATCH 659/864] Updated lockfile and fixed a small merge error --- package-lock.json | 8573 ++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 8077 insertions(+), 498 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5d685ca..5076174d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,7692 @@ { "name": "cortex-cli", - "version": "2.0.10", - "lockfileVersion": 1, + "version": "2.0.11", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "cortex-cli", + "version": "2.0.11", + "license": "Apache-2.0", + "dependencies": { + "chalk": "4.1.2", + "cli-progress": "3.9.1", + "cli-table3": "0.6.2", + "commander": "9.2.0", + "debug": "4.3.4", + "dockerode": "3.3.1", + "find-package-json": "1.2.0", + "form-data": "4.0.0", + "get-stream": "6.0.1", + "gh-got": "9.0.0", + "glob": "7.2.0", + "got": "11.8.3", + "graphql": "15.6.1", + "graphql-request": "3.7.0", + "inquirer": "8.2.0", + "is-installed-globally": "0.4.0", + "istextorbinary": "6.0.0", + "jmespath": "0.16.0", + "joi": "17.6.0", + "jose-node-cjs-runtime": "4.6.2", + "js-yaml": "4.1.0", + "keytar": "7.8.0", + "lodash": "4.17.21", + "minimatch": "3.0.4", + "mixin-deep": "2.0.1", + "moment": "2.29.3", + "npm-registry-fetch": "12.0.0", + "open": "8.4.0", + "prompts": "2.4.2", + "semver": "7.3.7", + "treeify": "1.1.0", + "url-join": "4.0.1", + "url-parse": "1.5.10", + "uuid": "8.3.2", + "yauzl": "2.10.0" + }, + "bin": { + "cortex": "bin/cortex.js" + }, + "devDependencies": { + "audit-ci": "5.1.2", + "chai": "4.3.6", + "chai-as-promised": "7.1.1", + "cross-env": "7.0.3", + "eslint": "8.13.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.26.0", + "husky": "7.0.4", + "is-ci": "3.0.1", + "mocha": "9.2.2", + "mocked-env": "1.3.5", + "nock": "13.2.4", + "nyc": "15.1.0", + "rewire": "6.0.0", + "sinon": "11.1.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.9", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.9", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.9", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", + "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "license": "MIT" + }, + "node_modules/@hapi/hoek": { + "version": "9.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", + "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true, + "license": "(Unlicense OR Apache-2.0)" + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "license": "MIT" + }, + "node_modules/@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "17.0.27", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.27.tgz", + "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==", + "license": "MIT" + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "license": "ISC" + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true, + "license": "MIT" + }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/are-we-there-yet/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "license": "MIT" + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/are-we-there-yet/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "license": "MIT" + }, + "node_modules/audit-ci": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-5.1.2.tgz", + "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "array.prototype.flatmap": "^1.2.5", + "cross-spawn": "^7.0.3", + "escape-string-regexp": "^4.0.0", + "event-stream": "4.0.1", + "jju": "^1.4.0", + "JSONStream": "^1.3.5", + "readline-transform": "1.0.0", + "semver": "^7.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "audit-ci": "lib/audit-ci.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/binaryextensions": { + "version": "4.18.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-4.18.0.tgz", + "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==", + "license": "MIT", + "engines": { + "node": ">=0.8" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "license": "ISC" + }, + "node_modules/browserslist": { + "version": "4.20.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buildcheck": { + "version": "0.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buildcheck/-/buildcheck-0.0.3.tgz", + "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "license": "MIT" + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001332", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "license": "MIT" + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true, + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-progress": { + "version": "3.9.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-progress/-/cli-progress-3.9.1.tgz", + "integrity": "sha512-AXxiCe2a0Lm0VN+9L0jzmfQSkcZm5EYspfqXKaSIQKqIk+0hnkZ3/v1E9B39mkD6vYhKih3c/RPsJBSwq9O99Q==", + "license": "MIT", + "dependencies": { + "colors": "^1.1.2", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true, + "license": "MIT" + }, + "node_modules/compress-brotli": { + "version": "1.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/compress-brotli/-/compress-brotli-1.3.6.tgz", + "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", + "license": "MIT", + "dependencies": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true, + "license": "MIT" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "license": "ISC" + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cpu-features": { + "version": "0.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.4.tgz", + "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "buildcheck": "0.0.3", + "nan": "^2.15.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "license": "MIT", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/default-require-extensions": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "license": "MIT" + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/docker-modem": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/docker-modem/-/docker-modem-3.0.3.tgz", + "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.1", + "readable-stream": "^3.5.0", + "split-ca": "^1.0.1", + "ssh2": "^1.4.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/dockerode": { + "version": "3.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dockerode/-/dockerode-3.3.1.tgz", + "integrity": "sha512-AS2mr8Lp122aa5n6d99HkuTNdRV1wkkhHwBdcnY6V0+28D3DSYwhxAk85/mM9XwD3RMliTxyr63iuvn5ZblFYQ==", + "license": "Apache-2.0", + "dependencies": { + "docker-modem": "^3.0.0", + "tar-fs": "~2.0.1" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "license": "BSD-3-Clause" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.122", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", + "integrity": "sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.19.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.13.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.13.0.tgz", + "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/eslintrc": "^1.2.1", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "license": "MIT", + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-stream": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extract-files": { + "version": "9.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", + "license": "MIT", + "engines": { + "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true, + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-package-json": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true, + "license": "ISC" + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true, + "license": "MIT" + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true, + "license": "MIT" + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gh-got": { + "version": "9.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-9.0.0.tgz", + "integrity": "sha512-RH5n6CDdb6AozElmiKwFhmO/1FmhWWVhfQAVv+JtU8jtPK12JLErce/VQFsFwZ9dTa01SfD7WXb/1iyZp/5XKg==", + "license": "MIT", + "dependencies": { + "got": "^10.5.7" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/gh-got/node_modules/@sindresorhus/is": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", + "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/gh-got/node_modules/cacheable-lookup": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", + "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", + "license": "MIT", + "dependencies": { + "@types/keyv": "^3.1.1", + "keyv": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-got/node_modules/decompress-response": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", + "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", + "license": "MIT", + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-got/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-got/node_modules/got": { + "version": "10.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-10.7.0.tgz", + "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^2.0.0", + "@szmarczak/http-timer": "^4.0.0", + "@types/cacheable-request": "^6.0.1", + "cacheable-lookup": "^2.0.0", + "cacheable-request": "^7.0.1", + "decompress-response": "^5.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^5.0.0", + "lowercase-keys": "^2.0.0", + "mimic-response": "^2.1.0", + "p-cancelable": "^2.0.0", + "p-event": "^4.0.0", + "responselike": "^2.0.0", + "to-readable-stream": "^2.0.0", + "type-fest": "^0.10.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/gh-got/node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-got/node_modules/type-fest": { + "version": "0.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.10.0.tgz", + "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", + "license": "MIT" + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "13.13.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "11.8.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.3.tgz", + "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphql": { + "version": "15.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.6.1.tgz", + "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==", + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-request": { + "version": "3.7.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.7.0.tgz", + "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + }, + "peerDependencies": { + "graphql": "14 - 16" + } + }, + "node_modules/graphql-request/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "license": "ISC" + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/husky": { + "version": "7.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/husky/-/husky-7.0.4.tgz", + "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer": { + "version": "8.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.2.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "license": "ISC", + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istextorbinary": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-6.0.0.tgz", + "integrity": "sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==", + "license": "MIT", + "dependencies": { + "binaryextensions": "^4.18.0", + "textextensions": "^5.14.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jju/-/jju-1.4.0.tgz", + "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "dev": true, + "license": "MIT" + }, + "node_modules/jmespath": { + "version": "0.16.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/joi": { + "version": "17.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/jose-node-cjs-runtime": { + "version": "4.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", + "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true, + "license": "MIT" + }, + "node_modules/keytar": { + "version": "7.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keytar/-/keytar-7.8.0.tgz", + "integrity": "sha512-mR+BqtAOIW8j+T5FtLVyckCbvROWQD+4FzPeFMuk5njEZkXLpVPCGF26Y3mTyxMAAL1XCfswR7S6kIf+THSRFA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" + } + }, + "node_modules/keyv": { + "version": "4.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.2.2.tgz", + "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", + "license": "MIT", + "dependencies": { + "compress-brotli": "^1.3.6", + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "dev": true, + "license": "MIT", + "engines": { + "node": "> 0.8" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loupe": { + "version": "2.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true, + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "license": "MIT" + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "license": "MIT", + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mixin-deep": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", + "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" + }, + "node_modules/mocha": { + "version": "9.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocked-env": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocked-env/-/mocked-env-1.3.5.tgz", + "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "check-more-types": "2.24.0", + "debug": "4.3.2", + "lazy-ass": "1.6.0", + "ramda": "0.27.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocked-env/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/moment": { + "version": "2.29.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "license": "ISC" + }, + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "license": "MIT", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "dev": true, + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nise": { + "version": "5.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/nock": { + "version": "13.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.4.tgz", + "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "lodash.set": "^4.3.2", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/node-abi": { + "version": "3.15.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-abi/-/node-abi-3.15.0.tgz", + "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "license": "ISC", + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-registry-fetch": { + "version": "12.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", + "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "license": "MIT", + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "license": [ + "MIT", + "Apache2" + ], + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-7.1.0.tgz", + "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readline-transform": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "license": "ISC", + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true, + "license": "ISC" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/rewire": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-6.0.0.tgz", + "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint": "^7.32.0" + } + }, + "node_modules/rewire/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/rewire/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/rewire/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/rewire/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/rewire/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/rewire/node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/rewire/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/rewire/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/rewire/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/rewire/node_modules/espree": { + "version": "7.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/rewire/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/rewire/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/rewire/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rewire/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/rewire/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rxjs": { + "version": "7.5.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/sinon": { + "version": "11.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "license": "MIT", + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", + "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-ca": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-ca/-/split-ca-1.0.1.tgz", + "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=", + "license": "ISC" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ssh2": { + "version": "1.9.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssh2/-/ssh2-1.9.0.tgz", + "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", + "hasInstallScript": true, + "dependencies": { + "asn1": "^0.2.4", + "bcrypt-pbkdf": "^1.0.2" + }, + "engines": { + "node": ">=10.16.0" + }, + "optionalDependencies": { + "cpu-features": "~0.0.4", + "nan": "^2.15.0" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar-fs": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-fs/-/tar-fs-2.0.1.tgz", + "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true, + "license": "MIT" + }, + "node_modules/textextensions": { + "version": "5.15.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-5.15.0.tgz", + "integrity": "sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==", + "license": "MIT", + "engines": { + "node": ">=0.8" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-readable-stream/-/to-readable-stream-2.1.0.tgz", + "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "license": "MIT" + }, + "node_modules/treeify": { + "version": "1.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "license": "MIT" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true, + "license": "MIT" + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true, + "license": "ISC" + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@ampproject/remapping": { "version": "2.1.2", @@ -51,12 +7735,6 @@ "semver": "^6.3.0" }, "dependencies": { - "json5": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", @@ -236,6 +7914,12 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", @@ -306,35 +7990,27 @@ "to-fast-properties": "^2.0.0" } }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true + }, "@eslint/eslintrc": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", - "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", + "version": "1.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", + "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.1", "globals": "^13.9.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - } } }, "@gar/promisify": { @@ -394,12 +8070,6 @@ "sprintf-js": "~1.0.2" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "find-up": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", @@ -474,9 +8144,9 @@ "dev": true }, "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.0.6", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", + "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", "dev": true }, "@jridgewell/sourcemap-codec": { @@ -486,9 +8156,9 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.9", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -532,9 +8202,9 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==" + "version": "4.6.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@sinonjs/commons": { "version": "1.8.3", @@ -620,9 +8290,9 @@ } }, "@types/node": { - "version": "17.0.23", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "17.0.27", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.27.tgz", + "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" }, "@types/responselike": { "version": "1.0.0", @@ -638,27 +8308,18 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "acorn": { - "version": "8.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.7.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "agent-base": { "version": "6.0.2", @@ -699,14 +8360,6 @@ "uri-js": "^4.2.2" } }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "requires": { - "string-width": "^4.1.0" - } - }, "ansi-colors": { "version": "4.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -780,6 +8433,11 @@ "readable-stream": "^2.0.6" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.7.tgz", @@ -794,11 +8452,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "string_decoder": { "version": "1.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", @@ -828,25 +8481,27 @@ } }, "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, "asn1": { @@ -869,11 +8524,6 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, - "async": { - "version": "0.9.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - }, "asynckit": { "version": "0.4.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", @@ -885,23 +8535,15 @@ "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", "dev": true, "requires": { - "JSONStream": "^1.3.5", "array.prototype.flatmap": "^1.2.5", "cross-spawn": "^7.0.3", "escape-string-regexp": "^4.0.0", "event-stream": "4.0.1", "jju": "^1.4.0", + "JSONStream": "^1.3.5", "readline-transform": "1.0.0", "semver": "^7.0.0", "yargs": "^16.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - } } }, "balanced-match": { @@ -943,21 +8585,6 @@ "readable-stream": "^3.4.0" } }, - "boxen": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -983,15 +8610,15 @@ "dev": true }, "browserslist": { - "version": "4.20.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "version": "4.20.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", "escalade": "^3.1.1", - "node-releases": "^2.0.2", + "node-releases": "^2.0.3", "picocolors": "^1.0.0" } }, @@ -1043,23 +8670,12 @@ "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - } } }, "cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", - "requires": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - } + "version": "5.0.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" }, "cacheable-request": { "version": "7.0.2", @@ -1114,14 +8730,15 @@ "dev": true }, "camelcase": { - "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "version": "5.3.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true }, "caniuse-lite": { - "version": "1.0.30001325", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz", - "integrity": "sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ==", + "version": "1.0.30001332", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", "dev": true }, "chai": { @@ -1202,20 +8819,21 @@ } }, "chownr": { - "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "version": "2.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "ci-info": { + "version": "3.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "dev": true }, "clean-stack": { "version": "2.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, "cli-cursor": { "version": "3.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -1239,12 +8857,11 @@ "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" }, "cli-table3": { - "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "version": "0.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", + "@colors/colors": "1.5.0", "string-width": "^4.2.0" } }, @@ -1275,13 +8892,6 @@ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { "mimic-response": "^1.0.0" - }, - "dependencies": { - "mimic-response": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - } } }, "code-point-at": { @@ -1316,9 +8926,9 @@ } }, "commander": { - "version": "8.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + "version": "9.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" }, "commondir": { "version": "1.0.1", @@ -1358,14 +8968,6 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } } }, "core-util-is": { @@ -1411,31 +9013,33 @@ "which": "^2.0.1" } }, - "cycle": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" - }, "debug": { - "version": "4.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } }, "decamelize": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "version": "1.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decompress-response": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", + "version": "6.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { - "mimic-response": "^2.0.0" + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } } }, "deep-eql": { @@ -1465,14 +9069,6 @@ "dev": true, "requires": { "strip-bom": "^4.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - } } }, "defaults": { @@ -1494,12 +9090,13 @@ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { - "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "delayed-stream": { @@ -1569,9 +9166,9 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "electron-to-chromium": { - "version": "1.4.106", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz", - "integrity": "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg==", + "version": "1.4.122", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", + "integrity": "sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw==", "dev": true }, "emoji-regex": { @@ -1622,9 +9219,9 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "es-abstract": { - "version": "1.19.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.2.tgz", - "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==", + "version": "1.19.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.5.tgz", + "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -1638,7 +9235,7 @@ "is-callable": "^1.2.4", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", "object-inspect": "^1.12.0", @@ -1649,6 +9246,15 @@ "unbox-primitive": "^1.0.1" } }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -1673,17 +9279,18 @@ "dev": true }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true }, "eslint": { - "version": "8.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.7.0.tgz", - "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", + "version": "8.13.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.13.0.tgz", + "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.0.5", + "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -1691,10 +9298,10 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", + "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.2.0", - "espree": "^9.3.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1718,20 +9325,6 @@ "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - } } }, "eslint-config-airbnb-base": { @@ -1797,9 +9390,9 @@ } }, "eslint-plugin-import": { - "version": "2.25.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", - "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "version": "2.26.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -1807,14 +9400,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.2", + "eslint-module-utils": "^2.7.3", "has": "^1.0.3", - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "is-glob": "^4.0.3", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.12.0" + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { @@ -1835,6 +9428,15 @@ "esutils": "^2.0.2" } }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", @@ -1958,11 +9560,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, - "eyes": { - "version": "0.1.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1995,6 +9592,13 @@ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } } }, "file-entry-cache": { @@ -2146,11 +9750,6 @@ "wide-align": "^1.1.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -2174,7 +9773,7 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "5.0.1" } } } @@ -2237,6 +9836,28 @@ "got": "^10.5.7" }, "dependencies": { + "@sindresorhus/is": { + "version": "2.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", + "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==" + }, + "cacheable-lookup": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", + "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", + "requires": { + "@types/keyv": "^3.1.1", + "keyv": "^4.0.0" + } + }, + "decompress-response": { + "version": "5.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", + "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", + "requires": { + "mimic-response": "^2.0.0" + } + }, "get-stream": { "version": "5.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", @@ -2267,6 +9888,11 @@ "type-fest": "^0.10.0" } }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + }, "type-fest": { "version": "0.10.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.10.0.tgz", @@ -2334,31 +9960,6 @@ "lowercase-keys": "^2.0.0", "p-cancelable": "^2.0.0", "responselike": "^2.0.0" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - } - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } } }, "graceful-fs": { @@ -2410,9 +10011,9 @@ } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, "has-flag": { @@ -2420,6 +10021,15 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbols": { "version": "1.0.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.3.tgz", @@ -2503,9 +10113,9 @@ } }, "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "requires": { "agent-base": "6", "debug": "4" @@ -2659,10 +10269,19 @@ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { "has": "^1.0.3" @@ -2831,9 +10450,10 @@ } }, "isarray": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "isexe": { "version": "2.0.0", @@ -2841,11 +10461,6 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -2969,9 +10584,9 @@ "dev": true }, "jmespath": { - "version": "0.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + "version": "0.16.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { "version": "17.6.0", @@ -2986,9 +10601,9 @@ } }, "jose-node-cjs-runtime": { - "version": "4.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.4.0.tgz", - "integrity": "sha512-DhCqzpgUVZoAc4aOXpD9GOeDLnVXdju01vwTdi4I5o+VLMKxnRzCCwJ0Qp4UAMpTwRCFqpnaxUuMQ6k7VFPYNQ==" + "version": "4.6.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", + "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==" }, "js-tokens": { "version": "4.0.0", @@ -3034,19 +10649,26 @@ "dev": true }, "json5": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } + "version": "2.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true }, "jsonparse": { "version": "1.3.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "just-extend": { "version": "4.2.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", @@ -3071,6 +10693,11 @@ "json-buffer": "3.0.1" } }, + "kleur": { + "version": "3.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, "lazy-ass": { "version": "1.6.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-ass/-/lazy-ass-1.6.0.tgz", @@ -3228,9 +10855,9 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { - "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.0.4", @@ -3330,9 +10957,9 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "mocha": { - "version": "9.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", + "version": "9.2.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -3348,9 +10975,9 @@ "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.2.0", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -3361,11 +10988,22 @@ "yargs-unparser": "2.0.0" }, "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "debug": { + "version": "4.3.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } }, "find-up": { "version": "5.0.0", @@ -3386,18 +11024,21 @@ "p-locate": "^5.0.0" } }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.1.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "nanoid": { - "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", - "dev": true - }, "p-limit": { "version": "3.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", @@ -3422,12 +11063,6 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, "supports-color": { "version": "8.1.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", @@ -3436,12 +11071,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true } } }, @@ -3469,9 +11098,9 @@ } }, "moment": { - "version": "2.29.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + "version": "2.29.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" }, "ms": { "version": "2.1.2", @@ -3525,9 +11154,9 @@ } }, "nock": { - "version": "13.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.2.tgz", - "integrity": "sha512-PcBHuvl9i6zfaJ50A7LS55oU+nFLv8htXIhffJO+FxyfibdZ4jEvd9kTuvkrJireBFIGMZ+oUIRpMK5gU9h//g==", + "version": "13.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.4.tgz", + "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", "dev": true, "requires": { "debug": "^4.1.0", @@ -3537,9 +11166,9 @@ } }, "node-abi": { - "version": "3.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-abi/-/node-abi-3.8.0.tgz", - "integrity": "sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==", + "version": "3.15.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-abi/-/node-abi-3.15.0.tgz", + "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", "requires": { "semver": "^7.3.5" } @@ -3567,9 +11196,9 @@ } }, "node-releases": { - "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "version": "2.0.3", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", "dev": true }, "normalize-path": { @@ -3657,12 +11286,6 @@ "yargs": "^15.0.2" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "cliui": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", @@ -3674,12 +11297,6 @@ "wrap-ansi": "^6.2.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, "find-up": { "version": "4.1.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", @@ -4013,14 +11630,6 @@ "dev": true, "requires": { "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } } }, "pathval": { @@ -4116,9 +11725,9 @@ } }, "prebuild-install": { - "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-7.0.1.tgz", - "integrity": "sha512-QBSab31WqkyxpnMWQxubYAHR5S9B2+r81ucocew34Fkl98FhvKIF50jIJnNOBmAZfyNV7vE5T6gd3hTVWgY6tg==", + "version": "7.1.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-7.1.0.tgz", + "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", "requires": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -4175,16 +11784,13 @@ "retry": "^0.12.0" } }, - "prompt": { - "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompt/-/prompt-1.2.1.tgz", - "integrity": "sha512-B4+2QeNDn5Cdp4kK2iOwV8qvrWpiPKlZKI9ZKkPl0C9KgeMW6DyWWqhqHiFq9vZf6zTniv+rYalK0ZlgktSwiw==", + "prompts": { + "version": "2.4.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { - "async": "~0.9.0", - "colors": "1.4.0", - "read": "1.0.x", - "revalidator": "0.1.x", - "winston": "2.x" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" } }, "propagate": { @@ -4248,17 +11854,14 @@ "version": "1.3.8", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" } } }, - "read": { - "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "requires": { - "mute-stream": "~0.0.4" - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", @@ -4366,11 +11969,6 @@ "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, - "revalidator": { - "version": "0.1.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" - }, "rewire": { "version": "6.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-6.0.0.tgz", @@ -4432,12 +12030,6 @@ "sprintf-js": "~1.0.2" } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, "eslint": { "version": "7.32.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", @@ -4568,12 +12160,6 @@ "argparse": "^1.0.7", "esprima": "^4.0.0" } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true } } }, @@ -4599,9 +12185,9 @@ } }, "safe-buffer": { - "version": "5.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "version": "5.1.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safer-buffer": { "version": "2.1.2", @@ -4609,9 +12195,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } @@ -4674,21 +12260,6 @@ "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" - }, - "dependencies": { - "decompress-response": { - "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - } - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } } }, "sinon": { @@ -4705,6 +12276,11 @@ "supports-color": "^7.2.0" } }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, "slice-ansi": { "version": "4.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -4731,13 +12307,13 @@ } }, "socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "version": "6.2.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", + "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", "requires": { "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" + "debug": "^4.3.3", + "socks": "^2.6.2" } }, "source-map": { @@ -4799,11 +12375,6 @@ "minipass": "^3.1.1" } }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, "stream-combiner": { "version": "0.2.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", @@ -4814,6 +12385,21 @@ "through": "~2.3.4" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, "string-width": { "version": "4.2.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", @@ -4844,32 +12430,25 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "5.0.1" } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "version": "3.1.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, "supports-color": { "version": "7.2.0", @@ -4929,13 +12508,6 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - } } }, "tar-fs": { @@ -4947,6 +12519,13 @@ "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.0.0" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + } } }, "tar-stream": { @@ -5036,12 +12615,29 @@ "json5": "^1.0.1", "minimist": "^1.2.6", "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } } }, "tslib": { - "version": "2.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tunnel-agent": { "version": "0.6.0", @@ -5074,7 +12670,8 @@ "type-fest": { "version": "0.20.2", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", @@ -5086,14 +12683,14 @@ } }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, @@ -5218,39 +12815,6 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } - }, - "winston": { - "version": "2.4.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", - "requires": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "stack-trace": "0.0.x" - }, - "dependencies": { - "async": { - "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" - }, - "colors": { - "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" - } - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", @@ -5267,6 +12831,7 @@ "version": "7.0.0", "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5317,9 +12882,9 @@ } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "20.2.4", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true }, "yargs-unparser": { @@ -5332,6 +12897,20 @@ "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + } } }, "yauzl": { diff --git a/package.json b/package.json index bda6dbef..139624cc 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "keytar": "7.8.0", "lodash": "4.17.21", "minimatch": "3.0.4", - "mixin-deep": "^2.0.1", + "mixin-deep": "2.0.1", "moment": "2.29.3", "npm-registry-fetch": "12.0.0", "open": "8.4.0", From 87ebe3c508b4c8e10fe575617ced77a0084d5de2 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 13:52:54 -0400 Subject: [PATCH 660/864] Fixed lockfile with corrected npmrc file --- package-lock.json | 3415 ++++++++++++++++++--------------------------- 1 file changed, 1391 insertions(+), 2024 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5076174d..8ce5f4be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,10 +71,9 @@ }, "node_modules/@ampproject/remapping": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ampproject/remapping/-/remapping-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jridgewell/trace-mapping": "^0.3.0" }, @@ -84,10 +83,9 @@ }, "node_modules/@babel/code-frame": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/highlight": "^7.16.7" }, @@ -97,20 +95,18 @@ }, "node_modules/@babel/compat-data": { "version": "7.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/compat-data/-/compat-data-7.17.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/core/-/core-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", @@ -138,20 +134,18 @@ }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/generator/-/generator-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.17.0", "jsesc": "^2.5.1", @@ -163,10 +157,9 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.17.7", "@babel/helper-validator-option": "^7.16.7", @@ -182,20 +175,18 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.16.7" }, @@ -205,10 +196,9 @@ }, "node_modules/@babel/helper-function-name": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.16.7", "@babel/types": "^7.17.0" @@ -219,10 +209,9 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.16.7" }, @@ -232,10 +221,9 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.16.7" }, @@ -245,10 +233,9 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", @@ -265,10 +252,9 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.17.0" }, @@ -278,10 +264,9 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.16.7" }, @@ -291,30 +276,27 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helpers/-/helpers-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.9", @@ -326,10 +308,9 @@ }, "node_modules/@babel/highlight": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -341,10 +322,9 @@ }, "node_modules/@babel/highlight/node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -354,10 +334,9 @@ }, "node_modules/@babel/highlight/node_modules/chalk": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -369,47 +348,42 @@ }, "node_modules/@babel/highlight/node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/highlight/node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -419,10 +393,9 @@ }, "node_modules/@babel/parser": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", "dev": true, - "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -432,10 +405,9 @@ }, "node_modules/@babel/template": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/template/-/template-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", @@ -447,10 +419,9 @@ }, "node_modules/@babel/traverse": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/traverse/-/traverse-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.7", "@babel/generator": "^7.17.9", @@ -469,20 +440,18 @@ }, "node_modules/@babel/traverse/node_modules/globals": { "version": "11.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-11.12.0.tgz", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/types/-/types-7.17.0.tgz", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" @@ -493,9 +462,8 @@ }, "node_modules/@colors/colors": { "version": "1.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@colors/colors/-/colors-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -503,10 +471,9 @@ }, "node_modules/@eslint/eslintrc": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -524,31 +491,27 @@ }, "node_modules/@gar/promisify": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" }, "node_modules/@hapi/hoek": { "version": "9.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", + "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, "node_modules/@hapi/topo": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.1.0.tgz", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -560,17 +523,15 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, - "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -584,20 +545,18 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -608,10 +567,9 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -622,10 +580,9 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -635,10 +592,9 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -651,10 +607,9 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -664,67 +619,60 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-try": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/schema/-/schema-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -732,9 +680,8 @@ }, "node_modules/@npmcli/fs": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "license": "ISC", "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" @@ -742,9 +689,8 @@ }, "node_modules/@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "license": "MIT", "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -755,30 +701,26 @@ }, "node_modules/@sideway/address": { "version": "4.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.4.tgz", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "node_modules/@sindresorhus/is": { "version": "4.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.6.0.tgz", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -788,30 +730,27 @@ }, "node_modules/@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "7.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } }, "node_modules/@sinonjs/samsam": { "version": "6.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.6.0", "lodash.get": "^4.4.2", @@ -820,16 +759,14 @@ }, "node_modules/@sinonjs/text-encoding": { "version": "0.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true, - "license": "(Unlicense OR Apache-2.0)" + "dev": true }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.0" }, @@ -839,18 +776,16 @@ }, "node_modules/@tootallnate/once": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/@types/cacheable-request": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "license": "MIT", "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "*", @@ -860,60 +795,52 @@ }, "node_modules/@types/http-cache-semantics": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "node_modules/@types/json-buffer": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@types/keyv": { "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.4.tgz", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/node": { "version": "17.0.27", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.27.tgz", - "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", + "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" }, "node_modules/@types/responselike": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@ungap/promise-all-settled": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/acorn": { "version": "8.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-8.7.1.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -923,19 +850,17 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", "dependencies": { "debug": "4" }, @@ -945,9 +870,8 @@ }, "node_modules/agentkeepalive": { "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "license": "MIT", "dependencies": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -959,9 +883,8 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -972,10 +895,9 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -989,19 +911,17 @@ }, "node_modules/ansi-colors": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -1014,9 +934,8 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -1026,18 +945,16 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1050,10 +967,9 @@ }, "node_modules/anymatch": { "version": "3.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.2.tgz", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, - "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1064,10 +980,9 @@ }, "node_modules/append-transform": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/append-transform/-/append-transform-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, - "license": "MIT", "dependencies": { "default-require-extensions": "^3.0.0" }, @@ -1077,22 +992,19 @@ }, "node_modules/aproba": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "node_modules/archy": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/archy/-/archy-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/are-we-there-yet": { "version": "1.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "license": "ISC", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -1100,15 +1012,13 @@ }, "node_modules/are-we-there-yet/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/are-we-there-yet/node_modules/readable-stream": { "version": "2.3.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.7.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -1121,25 +1031,22 @@ }, "node_modules/are-we-there-yet/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-includes": { "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.4.tgz", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -1156,10 +1063,9 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -1175,10 +1081,9 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -1194,45 +1099,40 @@ }, "node_modules/asn1": { "version": "0.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.6.tgz", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "license": "MIT", "dependencies": { "safer-buffer": "~2.1.0" } }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "node_modules/audit-ci": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { "array.prototype.flatmap": "^1.2.5", "cross-spawn": "^7.0.3", @@ -1253,13 +1153,12 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base64-js/-/base64-js-1.5.1.tgz", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { @@ -1274,33 +1173,29 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/binaryextensions": { "version": "4.18.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-4.18.0.tgz", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==", - "license": "MIT", "engines": { "node": ">=0.8" }, @@ -1310,9 +1205,8 @@ }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bl/-/bl-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -1321,9 +1215,8 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1331,10 +1224,9 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -1344,14 +1236,13 @@ }, "node_modules/browser-stdout": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/browserslist": { "version": "4.20.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.20.3.tgz", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", "dev": true, "funding": [ @@ -1364,7 +1255,6 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], - "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001332", "electron-to-chromium": "^1.4.118", @@ -1381,7 +1271,7 @@ }, "node_modules/buffer": { "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer/-/buffer-5.7.1.tgz", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { @@ -1397,7 +1287,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -1405,16 +1294,15 @@ }, "node_modules/buffer-crc32": { "version": "0.2.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "license": "MIT", "engines": { "node": "*" } }, "node_modules/buildcheck": { "version": "0.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buildcheck/-/buildcheck-0.0.3.tgz", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.3.tgz", "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", "optional": true, "engines": { @@ -1423,15 +1311,13 @@ }, "node_modules/builtins": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "node_modules/cacache": { "version": "15.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "license": "ISC", "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", @@ -1458,18 +1344,16 @@ }, "node_modules/cacheable-lookup": { "version": "5.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "license": "MIT", "engines": { "node": ">=10.6.0" } }, "node_modules/cacheable-request": { "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "license": "MIT", "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -1485,9 +1369,8 @@ }, "node_modules/cacheable-request/node_modules/get-stream": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -1500,10 +1383,9 @@ }, "node_modules/caching-transform": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caching-transform/-/caching-transform-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, - "license": "MIT", "dependencies": { "hasha": "^5.0.0", "make-dir": "^3.0.0", @@ -1516,10 +1398,9 @@ }, "node_modules/call-bind": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -1530,27 +1411,25 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { "version": "1.0.30001332", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", "dev": true, "funding": [ @@ -1562,15 +1441,13 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/chai": { "version": "4.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.3.6.tgz", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, - "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", @@ -1586,10 +1463,9 @@ }, "node_modules/chai-as-promised": { "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, - "license": "WTFPL", "dependencies": { "check-error": "^1.0.2" }, @@ -1599,9 +1475,8 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1615,33 +1490,30 @@ }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "node_modules/check-error": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, "node_modules/check-more-types": { "version": "2.24.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-more-types/-/check-more-types-2.24.0.tgz", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.5.3.tgz", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ @@ -1650,7 +1522,6 @@ "url": "https://paulmillr.com/funding/" } ], - "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1669,10 +1540,9 @@ }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1682,34 +1552,30 @@ }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/ci-info": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ci-info/-/ci-info-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -1719,9 +1585,8 @@ }, "node_modules/cli-progress": { "version": "3.9.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-progress/-/cli-progress-3.9.1.tgz", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.9.1.tgz", "integrity": "sha512-AXxiCe2a0Lm0VN+9L0jzmfQSkcZm5EYspfqXKaSIQKqIk+0hnkZ3/v1E9B39mkD6vYhKih3c/RPsJBSwq9O99Q==", - "license": "MIT", "dependencies": { "colors": "^1.1.2", "string-width": "^4.2.0" @@ -1732,9 +1597,8 @@ }, "node_modules/cli-spinners": { "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.1.tgz", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "license": "MIT", "engines": { "node": ">=6" }, @@ -1744,9 +1608,8 @@ }, "node_modules/cli-table3": { "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.2.tgz", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", - "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -1759,19 +1622,17 @@ }, "node_modules/cli-width": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "license": "ISC", "engines": { "node": ">= 10" } }, "node_modules/cliui": { "version": "7.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -1780,36 +1641,32 @@ }, "node_modules/clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/clone-response": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-response/-/clone-response-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "license": "MIT", "dependencies": { "mimic-response": "^1.0.0" } }, "node_modules/code-point-at": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/code-point-at/-/code-point-at-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1819,24 +1676,21 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/colors": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -1846,25 +1700,22 @@ }, "node_modules/commander": { "version": "9.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-9.2.0.tgz", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", - "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/compress-brotli": { "version": "1.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/compress-brotli/-/compress-brotli-1.3.6.tgz", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", - "license": "MIT", "dependencies": { "@types/json-buffer": "~3.0.0", "json-buffer": "~3.0.1" @@ -1875,42 +1726,37 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/confusing-browser-globals": { "version": "1.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/console-control-strings": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "license": "ISC" + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "node_modules/convert-source-map": { "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/convert-source-map/-/convert-source-map-1.8.0.tgz", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "~5.1.1" } }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cpu-features": { "version": "0.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.4.tgz", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.4.tgz", "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", "hasInstallScript": true, "optional": true, @@ -1924,10 +1770,9 @@ }, "node_modules/cross-env": { "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-env/-/cross-env-7.0.3.tgz", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", "dev": true, - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.1" }, @@ -1943,19 +1788,17 @@ }, "node_modules/cross-fetch": { "version": "3.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.5.tgz", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "license": "MIT", "dependencies": { "node-fetch": "2.6.7" } }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, - "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1967,9 +1810,8 @@ }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -1984,19 +1826,17 @@ }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/decompress-response": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -2009,9 +1849,8 @@ }, "node_modules/decompress-response/node_modules/mimic-response": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -2021,10 +1860,9 @@ }, "node_modules/deep-eql": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, - "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -2034,26 +1872,23 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-extend/-/deep-extend-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/default-require-extensions": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", "dev": true, - "license": "MIT", "dependencies": { "strip-bom": "^4.0.0" }, @@ -2063,37 +1898,33 @@ }, "node_modules/defaults": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "license": "MIT", "dependencies": { "clone": "^1.0.2" } }, "node_modules/defer-to-connect": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/define-lazy-prop": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/define-properties": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, - "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -2107,52 +1938,46 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/delegates": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "node_modules/depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/detect-libc": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-libc/-/detect-libc-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "license": "Apache-2.0", "engines": { "node": ">=8" } }, "node_modules/diff": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/docker-modem": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/docker-modem/-/docker-modem-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", - "license": "Apache-2.0", "dependencies": { "debug": "^4.1.1", "readable-stream": "^3.5.0", @@ -2165,9 +1990,8 @@ }, "node_modules/dockerode": { "version": "3.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dockerode/-/dockerode-3.3.1.tgz", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.1.tgz", "integrity": "sha512-AS2mr8Lp122aa5n6d99HkuTNdRV1wkkhHwBdcnY6V0+28D3DSYwhxAk85/mM9XwD3RMliTxyr63iuvn5ZblFYQ==", - "license": "Apache-2.0", "dependencies": { "docker-modem": "^3.0.0", "tar-fs": "~2.0.1" @@ -2178,10 +2002,9 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2191,35 +2014,30 @@ }, "node_modules/duplexer": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/duplexer3": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "node_modules/electron-to-chromium": { "version": "1.4.122", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", "integrity": "sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encoding": { "version": "0.1.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -2227,9 +2045,8 @@ }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -2240,19 +2057,17 @@ }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enquirer": { "version": "2.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1" }, @@ -2262,16 +2077,14 @@ }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "node_modules/es-abstract": { "version": "1.19.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.5.tgz", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", @@ -2303,20 +2116,18 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, - "license": "MIT", "dependencies": { "has": "^1.0.3" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -2331,27 +2142,24 @@ }, "node_modules/es6-error": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-error/-/es6-error-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escalade/-/escalade-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -2361,10 +2169,9 @@ }, "node_modules/eslint": { "version": "8.13.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.13.0.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, - "license": "MIT", "dependencies": { "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", @@ -2414,10 +2221,9 @@ }, "node_modules/eslint-config-airbnb-base": { "version": "15.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, - "license": "MIT", "dependencies": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", @@ -2434,20 +2240,18 @@ }, "node_modules/eslint-config-airbnb-base/node_modules/semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-import-resolver-node": { "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^3.2.7", "resolve": "^1.20.0" @@ -2455,20 +2259,18 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.7.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^3.2.7", "find-up": "^2.1.0" @@ -2479,20 +2281,18 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { "version": "2.26.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, - "license": "MIT", "dependencies": { "array-includes": "^3.1.4", "array.prototype.flat": "^1.2.5", @@ -2517,20 +2317,18 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2540,10 +2338,9 @@ }, "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.1.2.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2553,17 +2350,15 @@ }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/eslint-scope": { "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-7.1.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -2574,10 +2369,9 @@ }, "node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -2593,30 +2387,27 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint-visitor-keys": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/espree": { "version": "9.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-9.3.1.tgz", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", @@ -2628,10 +2419,9 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -2642,10 +2432,9 @@ }, "node_modules/esquery": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -2655,10 +2444,9 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -2668,30 +2456,27 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/event-stream": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "dev": true, - "license": "MIT", "dependencies": { "duplexer": "^0.1.1", "from": "^0.1.7", @@ -2704,18 +2489,16 @@ }, "node_modules/expand-template": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-template/-/expand-template-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "license": "(MIT OR WTFPL)", "engines": { "node": ">=6" } }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -2727,9 +2510,8 @@ }, "node_modules/extract-files": { "version": "9.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", - "license": "MIT", "engines": { "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" }, @@ -2739,39 +2521,34 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fd-slicer": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "license": "MIT", "dependencies": { "pend": "~1.2.0" } }, "node_modules/figures": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -2784,19 +2561,17 @@ }, "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -2806,10 +2581,9 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2819,10 +2593,9 @@ }, "node_modules/find-cache-dir": { "version": "3.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, - "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -2837,16 +2610,14 @@ }, "node_modules/find-package-json": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "node_modules/find-up": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -2856,20 +2627,18 @@ }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-5.0.2.tgz", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -2880,17 +2649,15 @@ }, "node_modules/flatted": { "version": "3.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.5.tgz", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/foreground-child": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/foreground-child/-/foreground-child-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, - "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" @@ -2901,9 +2668,8 @@ }, "node_modules/form-data": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -2915,14 +2681,13 @@ }, "node_modules/from": { "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/fromentries": { "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fromentries/-/fromentries-1.3.2.tgz", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true, "funding": [ @@ -2938,20 +2703,17 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -2961,17 +2723,15 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "license": "ISC" + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.3.2.tgz", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "os": [ "darwin" @@ -2982,23 +2742,20 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/gauge": { "version": "2.7.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gauge/-/gauge-2.7.4.tgz", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "license": "ISC", "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -3012,9 +2769,8 @@ }, "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "license": "MIT", "dependencies": { "number-is-nan": "^1.0.0" }, @@ -3024,9 +2780,8 @@ }, "node_modules/gauge/node_modules/string-width": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "license": "MIT", "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3038,9 +2793,8 @@ }, "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -3050,40 +2804,36 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gensync/-/gensync-1.0.0-beta.2.tgz", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, "node_modules/get-intrinsic": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -3095,19 +2845,17 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-package-type/-/get-package-type-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -3117,10 +2865,9 @@ }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -3134,9 +2881,8 @@ }, "node_modules/gh-got": { "version": "9.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-9.0.0.tgz", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-9.0.0.tgz", "integrity": "sha512-RH5n6CDdb6AozElmiKwFhmO/1FmhWWVhfQAVv+JtU8jtPK12JLErce/VQFsFwZ9dTa01SfD7WXb/1iyZp/5XKg==", - "license": "MIT", "dependencies": { "got": "^10.5.7" }, @@ -3149,9 +2895,8 @@ }, "node_modules/gh-got/node_modules/@sindresorhus/is": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -3161,9 +2906,8 @@ }, "node_modules/gh-got/node_modules/cacheable-lookup": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", - "license": "MIT", "dependencies": { "@types/keyv": "^3.1.1", "keyv": "^4.0.0" @@ -3174,9 +2918,8 @@ }, "node_modules/gh-got/node_modules/decompress-response": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz", "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", - "license": "MIT", "dependencies": { "mimic-response": "^2.0.0" }, @@ -3186,9 +2929,8 @@ }, "node_modules/gh-got/node_modules/get-stream": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -3201,9 +2943,8 @@ }, "node_modules/gh-got/node_modules/got": { "version": "10.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-10.7.0.tgz", + "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", - "license": "MIT", "dependencies": { "@sindresorhus/is": "^2.0.0", "@szmarczak/http-timer": "^4.0.0", @@ -3230,9 +2971,8 @@ }, "node_modules/gh-got/node_modules/mimic-response": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "license": "MIT", "engines": { "node": ">=8" }, @@ -3242,9 +2982,8 @@ }, "node_modules/gh-got/node_modules/type-fest": { "version": "0.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.10.0.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==", - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" }, @@ -3254,15 +2993,13 @@ }, "node_modules/github-from-package": { "version": "0.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "node_modules/glob": { "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3280,10 +3017,9 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -3293,9 +3029,8 @@ }, "node_modules/global-dirs": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -3308,10 +3043,9 @@ }, "node_modules/globals": { "version": "13.13.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.13.0.tgz", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -3324,9 +3058,8 @@ }, "node_modules/got": { "version": "11.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.3.tgz", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", - "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -3349,25 +3082,22 @@ }, "node_modules/graceful-fs": { "version": "4.2.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.10.tgz", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/graphql": { "version": "15.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.6.1.tgz", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==", - "license": "MIT", "engines": { "node": ">= 10.x" } }, "node_modules/graphql-request": { "version": "3.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.7.0.tgz", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", - "license": "MIT", "dependencies": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", @@ -3379,9 +3109,8 @@ }, "node_modules/graphql-request/node_modules/form-data": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -3393,20 +3122,18 @@ }, "node_modules/growl": { "version": "1.10.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4.x" } }, "node_modules/has": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -3416,29 +3143,26 @@ }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -3448,10 +3172,9 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3461,10 +3184,9 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -3477,16 +3199,14 @@ }, "node_modules/has-unicode": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "license": "ISC" + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "node_modules/hasha": { "version": "5.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hasha/-/hasha-5.2.2.tgz", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, - "license": "MIT", "dependencies": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" @@ -3500,29 +3220,26 @@ }, "node_modules/hasha/node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/he": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, - "license": "MIT", "bin": { "he": "bin/he" } }, "node_modules/hosted-git-info": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -3532,22 +3249,19 @@ }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/html-escaper/-/html-escaper-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/http-cache-semantics": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "node_modules/http-proxy-agent": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "license": "MIT", "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -3559,9 +3273,8 @@ }, "node_modules/http2-wrapper": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -3572,9 +3285,8 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -3585,19 +3297,17 @@ }, "node_modules/humanize-ms": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "license": "MIT", "dependencies": { "ms": "^2.0.0" } }, "node_modules/husky": { "version": "7.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/husky/-/husky-7.0.4.tgz", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true, - "license": "MIT", "bin": { "husky": "lib/bin.js" }, @@ -3610,9 +3320,8 @@ }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -3622,7 +3331,7 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ieee754/-/ieee754-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { @@ -3637,25 +3346,22 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/ignore": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3669,33 +3375,29 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/infer-owner": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3703,24 +3405,21 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/inquirer": { "version": "8.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-8.2.0.tgz", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", - "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -3743,10 +3442,9 @@ }, "node_modules/internal-slot": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, - "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.0", "has": "^1.0.3", @@ -3758,16 +3456,14 @@ }, "node_modules/ip": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -3777,10 +3473,9 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -3790,10 +3485,9 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -3807,10 +3501,9 @@ }, "node_modules/is-callable": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3820,10 +3513,9 @@ }, "node_modules/is-ci": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-ci/-/is-ci-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, - "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -3833,10 +3525,9 @@ }, "node_modules/is-core-module": { "version": "2.9.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.9.0.tgz", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, - "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -3846,10 +3537,9 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -3862,9 +3552,8 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-docker/-/is-docker-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -3877,29 +3566,26 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -3909,9 +3595,8 @@ }, "node_modules/is-installed-globally": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -3925,25 +3610,22 @@ }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-interactive/-/is-interactive-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-lambda": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3953,20 +3635,18 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -3979,29 +3659,26 @@ }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -4015,10 +3692,9 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -4028,10 +3704,9 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -4041,10 +3716,9 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -4057,10 +3731,9 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -4073,16 +3746,14 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -4092,10 +3763,9 @@ }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-weakref/-/is-weakref-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -4105,19 +3775,17 @@ }, "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-wsl/-/is-wsl-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -4127,34 +3795,30 @@ }, "node_modules/isarray": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-hook": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "append-transform": "^2.0.0" }, @@ -4164,10 +3828,9 @@ }, "node_modules/istanbul-lib-instrument": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.7.5", "@istanbuljs/schema": "^0.1.2", @@ -4180,20 +3843,18 @@ }, "node_modules/istanbul-lib-instrument/node_modules/semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/istanbul-lib-processinfo": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", "dev": true, - "license": "ISC", "dependencies": { "archy": "^1.0.0", "cross-spawn": "^7.0.0", @@ -4209,10 +3870,9 @@ }, "node_modules/istanbul-lib-processinfo/node_modules/p-map": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, - "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -4222,21 +3882,19 @@ }, "node_modules/istanbul-lib-processinfo/node_modules/uuid": { "version": "3.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.4.0.tgz", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, - "license": "MIT", "bin": { "uuid": "bin/uuid" } }, "node_modules/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", @@ -4248,10 +3906,9 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -4263,20 +3920,18 @@ }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-reports": { "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -4287,9 +3942,8 @@ }, "node_modules/istextorbinary": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-6.0.0.tgz", "integrity": "sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==", - "license": "MIT", "dependencies": { "binaryextensions": "^4.18.0", "textextensions": "^5.14.0" @@ -4303,25 +3957,22 @@ }, "node_modules/jju": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jju/-/jju-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/jmespath": { "version": "0.16.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.16.0.tgz", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", - "license": "Apache-2.0", "engines": { "node": ">= 0.6.0" } }, "node_modules/joi": { "version": "17.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-17.6.0.tgz", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", - "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4332,25 +3983,22 @@ }, "node_modules/jose-node-cjs-runtime": { "version": "4.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==", - "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" } }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -4360,10 +4008,9 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsesc/-/jsesc-2.5.2.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -4373,37 +4020,32 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/json5": { "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true, - "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -4413,19 +4055,17 @@ }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "engines": [ "node >= 0.2.0" - ], - "license": "MIT" + ] }, "node_modules/JSONStream": { "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, - "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -4439,17 +4079,15 @@ }, "node_modules/just-extend": { "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/keytar": { "version": "7.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keytar/-/keytar-7.8.0.tgz", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.8.0.tgz", "integrity": "sha512-mR+BqtAOIW8j+T5FtLVyckCbvROWQD+4FzPeFMuk5njEZkXLpVPCGF26Y3mTyxMAAL1XCfswR7S6kIf+THSRFA==", "hasInstallScript": true, - "license": "MIT", "dependencies": { "node-addon-api": "^4.3.0", "prebuild-install": "^7.0.1" @@ -4457,9 +4095,8 @@ }, "node_modules/keyv": { "version": "4.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.2.2.tgz", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", - "license": "MIT", "dependencies": { "compress-brotli": "^1.3.6", "json-buffer": "3.0.1" @@ -4467,29 +4104,26 @@ }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kleur/-/kleur-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/lazy-ass": { "version": "1.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-ass/-/lazy-ass-1.6.0.tgz", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true, - "license": "MIT", "engines": { "node": "> 0.8" } }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -4500,10 +4134,9 @@ }, "node_modules/locate-path": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -4514,50 +4147,43 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.flattendeep": { "version": "4.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.get": { "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.set": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.set/-/lodash.set-4.3.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lodash.truncate": { "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -4571,28 +4197,25 @@ }, "node_modules/loupe": { "version": "2.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/loupe/-/loupe-2.3.4.tgz", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", "dev": true, - "license": "MIT", "dependencies": { "get-func-name": "^2.0.0" } }, "node_modules/lowercase-keys": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4602,10 +4225,9 @@ }, "node_modules/make-dir": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -4618,19 +4240,17 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/make-fetch-happen": { "version": "9.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "license": "ISC", "dependencies": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", @@ -4655,25 +4275,22 @@ }, "node_modules/map-stream": { "version": "0.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.52.0.tgz", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.35.tgz", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -4683,27 +4300,24 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/mimic-response": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/minimatch": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4713,15 +4327,13 @@ }, "node_modules/minimist": { "version": "1.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minipass": { "version": "3.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.6.tgz", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4731,9 +4343,8 @@ }, "node_modules/minipass-collect": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -4743,9 +4354,8 @@ }, "node_modules/minipass-fetch": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "license": "MIT", "dependencies": { "minipass": "^3.1.0", "minipass-sized": "^1.0.3", @@ -4760,9 +4370,8 @@ }, "node_modules/minipass-flush": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -4772,9 +4381,8 @@ }, "node_modules/minipass-json-stream": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "license": "MIT", "dependencies": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" @@ -4782,9 +4390,8 @@ }, "node_modules/minipass-pipeline": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -4794,9 +4401,8 @@ }, "node_modules/minipass-sized": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -4806,9 +4412,8 @@ }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -4819,18 +4424,16 @@ }, "node_modules/mixin-deep": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -4840,16 +4443,14 @@ }, "node_modules/mkdirp-classic": { "version": "0.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/mocha": { "version": "9.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.2.2.tgz", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, - "license": "MIT", "dependencies": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", @@ -4890,10 +4491,9 @@ }, "node_modules/mocha/node_modules/debug": { "version": "4.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.3.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -4908,17 +4508,15 @@ }, "node_modules/mocha/node_modules/debug/node_modules/ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/mocha/node_modules/find-up": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -4932,10 +4530,9 @@ }, "node_modules/mocha/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -4948,10 +4545,9 @@ }, "node_modules/mocha/node_modules/minimatch": { "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-4.2.1.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4961,17 +4557,15 @@ }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/mocha/node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -4984,10 +4578,9 @@ }, "node_modules/mocha/node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -5000,20 +4593,18 @@ }, "node_modules/mocha/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5026,10 +4617,9 @@ }, "node_modules/mocked-env": { "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocked-env/-/mocked-env-1.3.5.tgz", + "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", "dev": true, - "license": "MIT", "dependencies": { "check-more-types": "2.24.0", "debug": "4.3.2", @@ -5042,10 +4632,9 @@ }, "node_modules/mocked-env/node_modules/debug": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, - "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -5060,38 +4649,33 @@ }, "node_modules/moment": { "version": "2.29.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.3.tgz", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", - "license": "MIT", "engines": { "node": "*" } }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/mute-stream": { "version": "0.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "node_modules/nan": { "version": "2.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nan/-/nan-2.15.0.tgz", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "license": "MIT", "optional": true }, "node_modules/nanoid": { "version": "3.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.3.1.tgz", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true, - "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -5101,32 +4685,28 @@ }, "node_modules/napi-build-utils": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/negotiator": { "version": "0.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.3.tgz", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/nise": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.1.tgz", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.8.3", "@sinonjs/fake-timers": ">=5", @@ -5137,10 +4717,9 @@ }, "node_modules/nock": { "version": "13.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.4.tgz", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", "dev": true, - "license": "MIT", "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -5153,9 +4732,8 @@ }, "node_modules/node-abi": { "version": "3.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-abi/-/node-abi-3.15.0.tgz", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.15.0.tgz", "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", - "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -5165,15 +4743,13 @@ }, "node_modules/node-addon-api": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" }, "node_modules/node-fetch": { "version": "2.6.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.7.tgz", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -5191,10 +4767,9 @@ }, "node_modules/node-preload": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-preload/-/node-preload-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, - "license": "MIT", "dependencies": { "process-on-spawn": "^1.0.0" }, @@ -5204,26 +4779,23 @@ }, "node_modules/node-releases": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-releases/-/node-releases-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -5233,9 +4805,8 @@ }, "node_modules/npm-package-arg": { "version": "8.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "license": "ISC", "dependencies": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", @@ -5247,9 +4818,8 @@ }, "node_modules/npm-registry-fetch": { "version": "12.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", - "license": "ISC", "dependencies": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", @@ -5264,9 +4834,8 @@ }, "node_modules/npmlog": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npmlog/-/npmlog-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "license": "ISC", "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -5276,19 +4845,17 @@ }, "node_modules/number-is-nan": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/number-is-nan/-/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/nyc": { "version": "15.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nyc/-/nyc-15.1.0.tgz", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, - "license": "ISC", "dependencies": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -5327,10 +4894,9 @@ }, "node_modules/nyc/node_modules/cliui": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -5339,10 +4905,9 @@ }, "node_modules/nyc/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -5353,10 +4918,9 @@ }, "node_modules/nyc/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -5366,10 +4930,9 @@ }, "node_modules/nyc/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -5382,10 +4945,9 @@ }, "node_modules/nyc/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -5395,10 +4957,9 @@ }, "node_modules/nyc/node_modules/p-map": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, - "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -5408,40 +4969,36 @@ }, "node_modules/nyc/node_modules/p-try": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/nyc/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/nyc/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/nyc/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5453,17 +5010,15 @@ }, "node_modules/nyc/node_modules/y18n": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/nyc/node_modules/yargs": { "version": "15.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -5483,10 +5038,9 @@ }, "node_modules/nyc/node_modules/yargs-parser": { "version": "18.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, - "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -5497,39 +5051,35 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.12.0.tgz", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -5545,10 +5095,9 @@ }, "node_modules/object.entries": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -5560,10 +5109,9 @@ }, "node_modules/object.values": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -5578,18 +5126,16 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -5602,9 +5148,8 @@ }, "node_modules/open": { "version": "8.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/open/-/open-8.4.0.tgz", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -5619,10 +5164,9 @@ }, "node_modules/optionator": { "version": "0.9.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, - "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -5637,9 +5181,8 @@ }, "node_modules/ora": { "version": "5.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -5660,27 +5203,24 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/p-cancelable": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/p-event": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-event/-/p-event-4.2.0.tgz", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "license": "MIT", "dependencies": { "p-timeout": "^3.1.0" }, @@ -5693,19 +5233,17 @@ }, "node_modules/p-finally": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/p-limit": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -5715,10 +5253,9 @@ }, "node_modules/p-locate": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -5728,9 +5265,8 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -5743,9 +5279,8 @@ }, "node_modules/p-timeout": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "license": "MIT", "dependencies": { "p-finally": "^1.0.0" }, @@ -5755,20 +5290,18 @@ }, "node_modules/p-try": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/package-hash": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/package-hash/-/package-hash-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, - "license": "ISC", "dependencies": { "graceful-fs": "^4.1.15", "hasha": "^5.0.0", @@ -5781,10 +5314,9 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -5794,92 +5326,79 @@ }, "node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/path-to-regexp": { "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, - "license": "MIT", "dependencies": { "isarray": "0.0.1" } }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, - "license": "MIT", "engines": { "node": "*" } }, "node_modules/pause-stream": { "version": "0.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, - "license": [ - "MIT", - "Apache2" - ], "dependencies": { "through": "~2.3" } }, "node_modules/pend": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picocolors/-/picocolors-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -5889,10 +5408,9 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-dir/-/pkg-dir-4.2.0.tgz", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -5902,10 +5420,9 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -5916,10 +5433,9 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -5929,10 +5445,9 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -5945,10 +5460,9 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -5958,29 +5472,26 @@ }, "node_modules/pkg-dir/node_modules/p-try": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pkg-dir/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/prebuild-install": { "version": "7.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-7.1.0.tgz", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", - "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -6005,26 +5516,23 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/process-on-spawn": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", "dev": true, - "license": "MIT", "dependencies": { "fromentries": "^1.2.0" }, @@ -6034,25 +5542,22 @@ }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/promise-inflight": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "license": "ISC" + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "node_modules/promise-retry": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -6063,9 +5568,8 @@ }, "node_modules/prompts": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompts/-/prompts-2.4.2.tgz", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -6076,19 +5580,17 @@ }, "node_modules/propagate": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -6096,25 +5598,22 @@ }, "node_modules/punycode": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "node_modules/quick-lru": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -6124,26 +5623,23 @@ }, "node_modules/ramda": { "version": "0.27.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ramda/-/ramda-0.27.1.tgz", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/randombytes/-/randombytes-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/rc": { "version": "1.2.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rc/-/rc-1.2.8.tgz", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -6156,24 +5652,21 @@ }, "node_modules/rc/node_modules/ini": { "version": "1.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -6185,10 +5678,9 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.6.0.tgz", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -6198,20 +5690,18 @@ }, "node_modules/readline-transform": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/regexpp": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -6221,10 +5711,9 @@ }, "node_modules/release-zalgo": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/release-zalgo/-/release-zalgo-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, - "license": "ISC", "dependencies": { "es6-error": "^4.0.1" }, @@ -6234,43 +5723,38 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "node_modules/resolve": { "version": "1.22.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.22.0.tgz", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, - "license": "MIT", "dependencies": { "is-core-module": "^2.8.1", "path-parse": "^1.0.7", @@ -6285,34 +5769,30 @@ }, "node_modules/resolve-alpn": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/responselike": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "license": "MIT", "dependencies": { "lowercase-keys": "^2.0.0" } }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -6323,39 +5803,35 @@ }, "node_modules/retry": { "version": "0.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/rewire": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", "dev": true, - "license": "MIT", "dependencies": { "eslint": "^7.32.0" } }, "node_modules/rewire/node_modules/@babel/code-frame": { "version": "7.12.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/rewire/node_modules/@eslint/eslintrc": { "version": "0.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -6373,10 +5849,9 @@ }, "node_modules/rewire/node_modules/@humanwhocodes/config-array": { "version": "0.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", @@ -6388,10 +5863,9 @@ }, "node_modules/rewire/node_modules/acorn": { "version": "7.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -6401,20 +5875,18 @@ }, "node_modules/rewire/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/rewire/node_modules/eslint": { "version": "7.32.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", @@ -6469,10 +5941,9 @@ }, "node_modules/rewire/node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -6483,10 +5954,9 @@ }, "node_modules/rewire/node_modules/eslint-utils": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -6499,30 +5969,27 @@ }, "node_modules/rewire/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/rewire/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/rewire/node_modules/espree": { "version": "7.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", @@ -6534,30 +6001,27 @@ }, "node_modules/rewire/node_modules/espree/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/rewire/node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/rewire/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -6567,20 +6031,18 @@ }, "node_modules/rewire/node_modules/ignore": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/rewire/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -6591,9 +6053,8 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -6606,39 +6067,34 @@ }, "node_modules/run-async": { "version": "2.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/rxjs": { "version": "7.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.5.tgz", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { "version": "7.3.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.7.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6651,26 +6107,23 @@ }, "node_modules/serialize-javascript": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "license": "ISC" + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -6680,20 +6133,18 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -6705,13 +6156,12 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/simple-concat": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-concat/-/simple-concat-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "funding": [ { @@ -6726,12 +6176,11 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/simple-get": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-get/-/simple-get-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "funding": [ { @@ -6747,7 +6196,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", @@ -6756,10 +6204,9 @@ }, "node_modules/sinon": { "version": "11.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-11.1.2.tgz", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.8.3", "@sinonjs/fake-timers": "^7.1.2", @@ -6775,16 +6222,14 @@ }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -6799,9 +6244,8 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -6809,9 +6253,8 @@ }, "node_modules/socks": { "version": "2.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.2.tgz", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "license": "MIT", "dependencies": { "ip": "^1.1.5", "smart-buffer": "^4.2.0" @@ -6823,9 +6266,8 @@ }, "node_modules/socks-proxy-agent": { "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", - "license": "MIT", "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -6837,20 +6279,18 @@ }, "node_modules/source-map": { "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/spawn-wrap": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, - "license": "ISC", "dependencies": { "foreground-child": "^2.0.0", "is-windows": "^1.0.2", @@ -6865,10 +6305,9 @@ }, "node_modules/split": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, - "license": "MIT", "dependencies": { "through": "2" }, @@ -6878,20 +6317,18 @@ }, "node_modules/split-ca": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=", - "license": "ISC" + "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", + "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true, - "license": "BSD-3-Clause" + "dev": true }, "node_modules/ssh2": { "version": "1.9.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssh2/-/ssh2-1.9.0.tgz", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz", "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", "hasInstallScript": true, "dependencies": { @@ -6908,9 +6345,8 @@ }, "node_modules/ssri": { "version": "8.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "license": "ISC", "dependencies": { "minipass": "^3.1.1" }, @@ -6920,10 +6356,9 @@ }, "node_modules/stream-combiner": { "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "dev": true, - "license": "MIT", "dependencies": { "duplexer": "~0.1.1", "through": "~2.3.4" @@ -6931,16 +6366,15 @@ }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { @@ -6955,14 +6389,12 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6974,10 +6406,9 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -6988,10 +6419,9 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -7002,9 +6432,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7014,20 +6443,18 @@ }, "node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -7037,9 +6464,8 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7049,10 +6475,9 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7062,10 +6487,9 @@ }, "node_modules/table": { "version": "6.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.8.0.tgz", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -7079,10 +6503,9 @@ }, "node_modules/table/node_modules/ajv": { "version": "8.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.11.0.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -7096,16 +6519,14 @@ }, "node_modules/table/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/tar": { "version": "6.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -7120,9 +6541,8 @@ }, "node_modules/tar-fs": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-fs/-/tar-fs-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", - "license": "MIT", "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -7132,15 +6552,13 @@ }, "node_modules/tar-fs/node_modules/chownr": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "node_modules/tar-stream": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-stream/-/tar-stream-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -7154,10 +6572,9 @@ }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/test-exclude/-/test-exclude-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -7169,16 +6586,14 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/textextensions": { "version": "5.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-5.15.0.tgz", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.15.0.tgz", "integrity": "sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==", - "license": "MIT", "engines": { "node": ">=0.8" }, @@ -7188,15 +6603,13 @@ }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "node_modules/tmp": { "version": "0.0.33", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -7206,29 +6619,26 @@ }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-readable-stream": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-readable-stream/-/to-readable-stream-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==", - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -7238,25 +6648,22 @@ }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "node_modules/treeify": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/treeify/-/treeify-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", - "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/tsconfig-paths": { "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, - "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.1", @@ -7266,10 +6673,9 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -7279,25 +6685,22 @@ }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/tslib": { "version": "2.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -7307,16 +6710,14 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "license": "Unlicense" + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -7326,20 +6727,18 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7349,20 +6748,18 @@ }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, - "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -7375,43 +6772,38 @@ }, "node_modules/unique-filename": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "license": "ISC", "dependencies": { "unique-slug": "^2.0.0" } }, "node_modules/unique-slug": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" } }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url-join": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "license": "MIT" + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "node_modules/url-parse": { "version": "1.5.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -7419,55 +6811,48 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "license": "MIT" + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-8.3.2.tgz", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "license": "ISC", "dependencies": { "builtins": "^1.0.3" } }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/whatwg-url/-/whatwg-url-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -7475,10 +6860,9 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -7491,10 +6875,9 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -7508,43 +6891,38 @@ }, "node_modules/which-module": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/wide-align": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "license": "ISC", "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/word-wrap": { "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/workerpool": { "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/workerpool/-/workerpool-6.2.0.tgz", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7559,16 +6937,14 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "license": "ISC" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write-file-atomic": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, - "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -7578,26 +6954,23 @@ }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "16.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -7613,20 +6986,18 @@ }, "node_modules/yargs-parser": { "version": "20.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yargs-unparser": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, - "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -7639,10 +7010,9 @@ }, "node_modules/yargs-unparser/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -7652,10 +7022,9 @@ }, "node_modules/yargs-unparser/node_modules/decamelize": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -7665,9 +7034,8 @@ }, "node_modules/yauzl": { "version": "2.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yauzl/-/yauzl-2.10.0.tgz", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -7675,10 +7043,9 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yocto-queue/-/yocto-queue-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -7690,7 +7057,7 @@ "dependencies": { "@ampproject/remapping": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ampproject/remapping/-/remapping-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", "dev": true, "requires": { @@ -7699,7 +7066,7 @@ }, "@babel/code-frame": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { @@ -7708,13 +7075,13 @@ }, "@babel/compat-data": { "version": "7.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/compat-data/-/compat-data-7.17.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", "dev": true }, "@babel/core": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/core/-/core-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", "dev": true, "requires": { @@ -7737,7 +7104,7 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } @@ -7745,7 +7112,7 @@ }, "@babel/generator": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/generator/-/generator-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", "dev": true, "requires": { @@ -7756,7 +7123,7 @@ }, "@babel/helper-compilation-targets": { "version": "7.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dev": true, "requires": { @@ -7768,7 +7135,7 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } @@ -7776,7 +7143,7 @@ }, "@babel/helper-environment-visitor": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", "dev": true, "requires": { @@ -7785,7 +7152,7 @@ }, "@babel/helper-function-name": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dev": true, "requires": { @@ -7795,7 +7162,7 @@ }, "@babel/helper-hoist-variables": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "requires": { @@ -7804,7 +7171,7 @@ }, "@babel/helper-module-imports": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "requires": { @@ -7813,7 +7180,7 @@ }, "@babel/helper-module-transforms": { "version": "7.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, "requires": { @@ -7829,7 +7196,7 @@ }, "@babel/helper-simple-access": { "version": "7.17.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dev": true, "requires": { @@ -7838,7 +7205,7 @@ }, "@babel/helper-split-export-declaration": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "requires": { @@ -7847,19 +7214,19 @@ }, "@babel/helper-validator-identifier": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/helper-validator-option": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true }, "@babel/helpers": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/helpers/-/helpers-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "dev": true, "requires": { @@ -7870,7 +7237,7 @@ }, "@babel/highlight": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/highlight/-/highlight-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", "dev": true, "requires": { @@ -7881,7 +7248,7 @@ "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { @@ -7890,7 +7257,7 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-2.4.2.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { @@ -7901,7 +7268,7 @@ }, "color-convert": { "version": "1.9.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-1.9.3.tgz", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { @@ -7910,25 +7277,25 @@ }, "color-name": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "has-flag": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { "version": "5.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-5.5.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { @@ -7939,13 +7306,13 @@ }, "@babel/parser": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/parser/-/parser-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", "dev": true }, "@babel/template": { "version": "7.16.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/template/-/template-7.16.7.tgz", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { @@ -7956,7 +7323,7 @@ }, "@babel/traverse": { "version": "7.17.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/traverse/-/traverse-7.17.9.tgz", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", "dev": true, "requires": { @@ -7974,7 +7341,7 @@ "dependencies": { "globals": { "version": "11.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-11.12.0.tgz", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true } @@ -7982,7 +7349,7 @@ }, "@babel/types": { "version": "7.17.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/types/-/types-7.17.0.tgz", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "requires": { @@ -7992,13 +7359,13 @@ }, "@colors/colors": { "version": "1.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@colors/colors/-/colors-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "optional": true }, "@eslint/eslintrc": { "version": "1.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", "dev": true, "requires": { @@ -8015,17 +7382,17 @@ }, "@gar/promisify": { "version": "1.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@gar/promisify/-/promisify-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" }, "@hapi/hoek": { "version": "9.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/hoek/-/hoek-9.2.1.tgz", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, "@hapi/topo": { "version": "5.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@hapi/topo/-/topo-5.1.0.tgz", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "requires": { "@hapi/hoek": "^9.0.0" @@ -8033,7 +7400,7 @@ }, "@humanwhocodes/config-array": { "version": "0.9.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "requires": { @@ -8044,13 +7411,13 @@ }, "@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { @@ -8063,7 +7430,7 @@ "dependencies": { "argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { @@ -8072,7 +7439,7 @@ }, "find-up": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { @@ -8082,7 +7449,7 @@ }, "js-yaml": { "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { @@ -8092,7 +7459,7 @@ }, "locate-path": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { @@ -8101,7 +7468,7 @@ }, "p-limit": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { @@ -8110,7 +7477,7 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { @@ -8119,19 +7486,19 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "resolve-from": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } @@ -8139,25 +7506,25 @@ }, "@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@istanbuljs/schema/-/schema-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, "@jridgewell/resolve-uri": { "version": "3.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", "dev": true }, "@jridgewell/sourcemap-codec": { "version": "1.4.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", "dev": true }, "@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "requires": { @@ -8167,7 +7534,7 @@ }, "@npmcli/fs": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/fs/-/fs-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "requires": { "@gar/promisify": "^1.0.1", @@ -8176,7 +7543,7 @@ }, "@npmcli/move-file": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@npmcli/move-file/-/move-file-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "requires": { "mkdirp": "^1.0.4", @@ -8185,7 +7552,7 @@ }, "@sideway/address": { "version": "4.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/address/-/address-4.1.4.tgz", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "requires": { "@hapi/hoek": "^9.0.0" @@ -8193,22 +7560,22 @@ }, "@sideway/formula": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/formula/-/formula-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" }, "@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { "version": "4.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-4.6.0.tgz", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/commons/-/commons-1.8.3.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { @@ -8217,7 +7584,7 @@ }, "@sinonjs/fake-timers": { "version": "7.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "requires": { @@ -8226,7 +7593,7 @@ }, "@sinonjs/samsam": { "version": "6.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", "dev": true, "requires": { @@ -8237,13 +7604,13 @@ }, "@sinonjs/text-encoding": { "version": "0.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, "@szmarczak/http-timer": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "requires": { "defer-to-connect": "^2.0.0" @@ -8251,12 +7618,12 @@ }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@tootallnate/once/-/once-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/cacheable-request": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", "requires": { "@types/http-cache-semantics": "*", @@ -8267,23 +7634,23 @@ }, "@types/http-cache-semantics": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "@types/json-buffer": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" }, "@types/json5": { "version": "0.0.29", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/json5/-/json5-0.0.29.tgz", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/keyv": { "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/keyv/-/keyv-3.1.4.tgz", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "requires": { "@types/node": "*" @@ -8291,12 +7658,12 @@ }, "@types/node": { "version": "17.0.27", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/node/-/node-17.0.27.tgz", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" }, "@types/responselike": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@types/responselike/-/responselike-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", "requires": { "@types/node": "*" @@ -8304,26 +7671,26 @@ }, "@ungap/promise-all-settled": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, "acorn": { "version": "8.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-8.7.1.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true }, "acorn-jsx": { "version": "5.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "requires": {} }, "agent-base": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agent-base/-/agent-base-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "requires": { "debug": "4" @@ -8331,7 +7698,7 @@ }, "agentkeepalive": { "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", "requires": { "debug": "^4.1.0", @@ -8341,7 +7708,7 @@ }, "aggregate-error": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aggregate-error/-/aggregate-error-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "requires": { "clean-stack": "^2.0.0", @@ -8350,7 +7717,7 @@ }, "ajv": { "version": "6.12.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { @@ -8362,13 +7729,13 @@ }, "ansi-colors": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-colors/-/ansi-colors-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-escapes": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { "type-fest": "^0.21.3" @@ -8376,19 +7743,19 @@ "dependencies": { "type-fest": { "version": "0.21.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.21.3.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" } } }, "ansi-regex": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ansi-styles/-/ansi-styles-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { "color-convert": "^2.0.1" @@ -8396,7 +7763,7 @@ }, "anymatch": { "version": "3.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/anymatch/-/anymatch-3.1.2.tgz", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { @@ -8406,7 +7773,7 @@ }, "append-transform": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/append-transform/-/append-transform-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, "requires": { @@ -8415,18 +7782,18 @@ }, "aproba": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/aproba/-/aproba-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "archy": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/archy/-/archy-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, "are-we-there-yet": { "version": "1.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "requires": { "delegates": "^1.0.0", @@ -8435,12 +7802,12 @@ "dependencies": { "isarray": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-2.3.7.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", @@ -8454,7 +7821,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" @@ -8464,12 +7831,12 @@ }, "argparse": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "array-includes": { "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array-includes/-/array-includes-3.1.4.tgz", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "requires": { @@ -8482,7 +7849,7 @@ }, "array.prototype.flat": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "requires": { @@ -8494,7 +7861,7 @@ }, "array.prototype.flatmap": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, "requires": { @@ -8506,7 +7873,7 @@ }, "asn1": { "version": "0.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asn1/-/asn1-0.2.6.tgz", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "requires": { "safer-buffer": "~2.1.0" @@ -8514,24 +7881,24 @@ }, "assertion-error": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/assertion-error/-/assertion-error-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, "astral-regex": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/astral-regex/-/astral-regex-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/asynckit/-/asynckit-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "audit-ci": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/audit-ci/-/audit-ci-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", "dev": true, "requires": { @@ -8548,17 +7915,17 @@ }, "balanced-match": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/balanced-match/-/balanced-match-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-js": { "version": "1.5.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/base64-js/-/base64-js-1.5.1.tgz", + "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { "tweetnacl": "^0.14.3" @@ -8566,18 +7933,18 @@ }, "binary-extensions": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binary-extensions/-/binary-extensions-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "binaryextensions": { "version": "4.18.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/binaryextensions/-/binaryextensions-4.18.0.tgz", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==" }, "bl": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/bl/-/bl-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "requires": { "buffer": "^5.5.0", @@ -8587,7 +7954,7 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/brace-expansion/-/brace-expansion-1.1.11.tgz", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", @@ -8596,7 +7963,7 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/braces/-/braces-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { @@ -8605,13 +7972,13 @@ }, "browser-stdout": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browser-stdout/-/browser-stdout-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "browserslist": { "version": "4.20.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/browserslist/-/browserslist-4.20.3.tgz", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", "dev": true, "requires": { @@ -8624,7 +7991,7 @@ }, "buffer": { "version": "5.7.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer/-/buffer-5.7.1.tgz", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "requires": { "base64-js": "^1.3.1", @@ -8633,23 +8000,23 @@ }, "buffer-crc32": { "version": "0.2.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "buildcheck": { "version": "0.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/buildcheck/-/buildcheck-0.0.3.tgz", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.3.tgz", "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", "optional": true }, "builtins": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/builtins/-/builtins-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" }, "cacache": { "version": "15.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacache/-/cacache-15.3.0.tgz", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "requires": { "@npmcli/fs": "^1.0.0", @@ -8674,12 +8041,12 @@ }, "cacheable-lookup": { "version": "5.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" }, "cacheable-request": { "version": "7.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-request/-/cacheable-request-7.0.2.tgz", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", "requires": { "clone-response": "^1.0.2", @@ -8693,7 +8060,7 @@ "dependencies": { "get-stream": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { "pump": "^3.0.0" @@ -8703,7 +8070,7 @@ }, "caching-transform": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caching-transform/-/caching-transform-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, "requires": { @@ -8715,7 +8082,7 @@ }, "call-bind": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/call-bind/-/call-bind-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { @@ -8725,25 +8092,25 @@ }, "callsites": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/callsites/-/callsites-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { "version": "5.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-5.3.1.tgz", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "caniuse-lite": { "version": "1.0.30001332", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", "dev": true }, "chai": { "version": "4.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai/-/chai-4.3.6.tgz", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "requires": { @@ -8758,7 +8125,7 @@ }, "chai-as-promised": { "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { @@ -8767,7 +8134,7 @@ }, "chalk": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chalk/-/chalk-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", @@ -8776,24 +8143,24 @@ }, "chardet": { "version": "0.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chardet/-/chardet-0.7.0.tgz", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "check-error": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-error/-/check-error-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "check-more-types": { "version": "2.24.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/check-more-types/-/check-more-types-2.24.0.tgz", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", "dev": true }, "chokidar": { "version": "3.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chokidar/-/chokidar-3.5.3.tgz", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { @@ -8809,7 +8176,7 @@ "dependencies": { "glob-parent": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { @@ -8820,23 +8187,23 @@ }, "chownr": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "ci-info": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ci-info/-/ci-info-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", "dev": true }, "clean-stack": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clean-stack/-/clean-stack-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-cursor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-cursor/-/cli-cursor-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "requires": { "restore-cursor": "^3.1.0" @@ -8844,7 +8211,7 @@ }, "cli-progress": { "version": "3.9.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-progress/-/cli-progress-3.9.1.tgz", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.9.1.tgz", "integrity": "sha512-AXxiCe2a0Lm0VN+9L0jzmfQSkcZm5EYspfqXKaSIQKqIk+0hnkZ3/v1E9B39mkD6vYhKih3c/RPsJBSwq9O99Q==", "requires": { "colors": "^1.1.2", @@ -8853,12 +8220,12 @@ }, "cli-spinners": { "version": "2.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-spinners/-/cli-spinners-2.6.1.tgz", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" }, "cli-table3": { "version": "0.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-table3/-/cli-table3-0.6.2.tgz", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", "requires": { "@colors/colors": "1.5.0", @@ -8867,12 +8234,12 @@ }, "cli-width": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cli-width/-/cli-width-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, "cliui": { "version": "7.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-7.0.4.tgz", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { @@ -8883,12 +8250,12 @@ }, "clone": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone/-/clone-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-response": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/clone-response/-/clone-response-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { "mimic-response": "^1.0.0" @@ -8896,12 +8263,12 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/code-point-at/-/code-point-at-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "color-convert": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-convert/-/color-convert-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { "color-name": "~1.1.4" @@ -8909,17 +8276,17 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/color-name/-/color-name-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colors": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/colors/-/colors-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "combined-stream": { "version": "1.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/combined-stream/-/combined-stream-1.0.8.tgz", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" @@ -8927,18 +8294,18 @@ }, "commander": { "version": "9.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commander/-/commander-9.2.0.tgz", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" }, "commondir": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/commondir/-/commondir-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "compress-brotli": { "version": "1.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/compress-brotli/-/compress-brotli-1.3.6.tgz", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", "requires": { "@types/json-buffer": "~3.0.0", @@ -8947,23 +8314,23 @@ }, "concat-map": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/concat-map/-/concat-map-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "confusing-browser-globals": { "version": "1.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/console-control-strings/-/console-control-strings-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "convert-source-map": { "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/convert-source-map/-/convert-source-map-1.8.0.tgz", + "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": { @@ -8972,12 +8339,12 @@ }, "core-util-is": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/core-util-is/-/core-util-is-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "cpu-features": { "version": "0.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cpu-features/-/cpu-features-0.0.4.tgz", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.4.tgz", "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", "optional": true, "requires": { @@ -8987,7 +8354,7 @@ }, "cross-env": { "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-env/-/cross-env-7.0.3.tgz", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", "dev": true, "requires": { @@ -8996,7 +8363,7 @@ }, "cross-fetch": { "version": "3.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-fetch/-/cross-fetch-3.1.5.tgz", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "requires": { "node-fetch": "2.6.7" @@ -9004,7 +8371,7 @@ }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cross-spawn/-/cross-spawn-7.0.3.tgz", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { @@ -9015,7 +8382,7 @@ }, "debug": { "version": "4.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" @@ -9023,13 +8390,13 @@ }, "decamelize": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decompress-response": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { "mimic-response": "^3.1.0" @@ -9037,14 +8404,14 @@ "dependencies": { "mimic-response": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" } } }, "deep-eql": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-eql/-/deep-eql-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { @@ -9053,18 +8420,18 @@ }, "deep-extend": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-extend/-/deep-extend-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "deep-is": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/deep-is/-/deep-is-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "default-require-extensions": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", "dev": true, "requires": { @@ -9073,7 +8440,7 @@ }, "defaults": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defaults/-/defaults-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { "clone": "^1.0.2" @@ -9081,17 +8448,17 @@ }, "defer-to-connect": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-lazy-prop": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/define-properties/-/define-properties-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { @@ -9101,33 +8468,33 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delayed-stream/-/delayed-stream-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/delegates/-/delegates-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "depd": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/depd/-/depd-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "detect-libc": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/detect-libc/-/detect-libc-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" }, "diff": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/diff/-/diff-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, "docker-modem": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/docker-modem/-/docker-modem-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", "requires": { "debug": "^4.1.1", @@ -9138,7 +8505,7 @@ }, "dockerode": { "version": "3.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/dockerode/-/dockerode-3.3.1.tgz", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.1.tgz", "integrity": "sha512-AS2mr8Lp122aa5n6d99HkuTNdRV1wkkhHwBdcnY6V0+28D3DSYwhxAk85/mM9XwD3RMliTxyr63iuvn5ZblFYQ==", "requires": { "docker-modem": "^3.0.0", @@ -9147,7 +8514,7 @@ }, "doctrine": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { @@ -9156,29 +8523,29 @@ }, "duplexer": { "version": "0.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer/-/duplexer-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, "duplexer3": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/duplexer3/-/duplexer3-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "electron-to-chromium": { "version": "1.4.122", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", "integrity": "sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw==", "dev": true }, "emoji-regex": { "version": "8.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/emoji-regex/-/emoji-regex-8.0.0.tgz", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encoding": { "version": "0.1.13", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/encoding/-/encoding-0.1.13.tgz", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "optional": true, "requires": { @@ -9187,7 +8554,7 @@ "dependencies": { "iconv-lite": { "version": "0.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.6.3.tgz", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "optional": true, "requires": { @@ -9198,7 +8565,7 @@ }, "end-of-stream": { "version": "1.4.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/end-of-stream/-/end-of-stream-1.4.4.tgz", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" @@ -9206,7 +8573,7 @@ }, "enquirer": { "version": "2.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/enquirer/-/enquirer-2.3.6.tgz", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { @@ -9215,12 +8582,12 @@ }, "err-code": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/err-code/-/err-code-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "es-abstract": { "version": "1.19.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-abstract/-/es-abstract-1.19.5.tgz", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", "dev": true, "requires": { @@ -9248,7 +8615,7 @@ }, "es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, "requires": { @@ -9257,7 +8624,7 @@ }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { @@ -9268,25 +8635,25 @@ }, "es6-error": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/es6-error/-/es6-error-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, "escalade": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escalade/-/escalade-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "eslint": { "version": "8.13.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-8.13.0.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, "requires": { @@ -9329,7 +8696,7 @@ }, "eslint-config-airbnb-base": { "version": "15.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "requires": { @@ -9341,7 +8708,7 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } @@ -9349,7 +8716,7 @@ }, "eslint-import-resolver-node": { "version": "0.3.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { @@ -9359,7 +8726,7 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { @@ -9370,7 +8737,7 @@ }, "eslint-module-utils": { "version": "2.7.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, "requires": { @@ -9380,7 +8747,7 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-3.2.7.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { @@ -9391,7 +8758,7 @@ }, "eslint-plugin-import": { "version": "2.26.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "dev": true, "requires": { @@ -9412,7 +8779,7 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-2.6.9.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { @@ -9421,7 +8788,7 @@ }, "doctrine": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/doctrine/-/doctrine-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { @@ -9430,7 +8797,7 @@ }, "minimatch": { "version": "3.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.1.2.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { @@ -9439,7 +8806,7 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } @@ -9447,7 +8814,7 @@ }, "eslint-scope": { "version": "7.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-7.1.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { @@ -9457,7 +8824,7 @@ }, "eslint-utils": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { @@ -9466,7 +8833,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } @@ -9474,13 +8841,13 @@ }, "eslint-visitor-keys": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "espree": { "version": "9.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-9.3.1.tgz", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dev": true, "requires": { @@ -9491,13 +8858,13 @@ }, "esprima": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esprima/-/esprima-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esquery/-/esquery-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { @@ -9506,7 +8873,7 @@ }, "esrecurse": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esrecurse/-/esrecurse-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { @@ -9515,19 +8882,19 @@ }, "estraverse": { "version": "5.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "esutils": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/esutils/-/esutils-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "event-stream": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/event-stream/-/event-stream-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "dev": true, "requires": { @@ -9542,12 +8909,12 @@ }, "expand-template": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/expand-template/-/expand-template-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" }, "external-editor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/external-editor/-/external-editor-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { "chardet": "^0.7.0", @@ -9557,30 +8924,30 @@ }, "extract-files": { "version": "9.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/extract-files/-/extract-files-9.0.0.tgz", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" }, "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fd-slicer": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fd-slicer/-/fd-slicer-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "requires": { "pend": "~1.2.0" @@ -9588,7 +8955,7 @@ }, "figures": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/figures/-/figures-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { "escape-string-regexp": "^1.0.5" @@ -9596,14 +8963,14 @@ "dependencies": { "escape-string-regexp": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" } } }, "file-entry-cache": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { @@ -9612,7 +8979,7 @@ }, "fill-range": { "version": "7.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fill-range/-/fill-range-7.0.1.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { @@ -9621,7 +8988,7 @@ }, "find-cache-dir": { "version": "3.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { @@ -9632,12 +8999,12 @@ }, "find-package-json": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-package-json/-/find-package-json-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { @@ -9646,13 +9013,13 @@ }, "flat": { "version": "5.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat/-/flat-5.0.2.tgz", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true }, "flat-cache": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flat-cache/-/flat-cache-3.0.4.tgz", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { @@ -9662,13 +9029,13 @@ }, "flatted": { "version": "3.2.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/flatted/-/flatted-3.2.5.tgz", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "foreground-child": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/foreground-child/-/foreground-child-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, "requires": { @@ -9678,7 +9045,7 @@ }, "form-data": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", @@ -9688,24 +9055,24 @@ }, "from": { "version": "0.1.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/from/-/from-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, "fromentries": { "version": "1.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fromentries/-/fromentries-1.3.2.tgz", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true }, "fs-constants": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-constants/-/fs-constants-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-minipass": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs-minipass/-/fs-minipass-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { "minipass": "^3.0.0" @@ -9713,31 +9080,31 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fs.realpath/-/fs.realpath-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/fsevents/-/fsevents-2.3.2.tgz", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/function-bind/-/function-bind-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "gauge": { "version": "2.7.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gauge/-/gauge-2.7.4.tgz", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { "aproba": "^1.0.3", @@ -9752,7 +9119,7 @@ "dependencies": { "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { "number-is-nan": "^1.0.0" @@ -9760,7 +9127,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", @@ -9770,7 +9137,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "5.0.1" @@ -9780,25 +9147,25 @@ }, "gensync": { "version": "1.0.0-beta.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gensync/-/gensync-1.0.0-beta.2.tgz", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-caller-file/-/get-caller-file-2.0.5.tgz", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-func-name": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-func-name/-/get-func-name-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-intrinsic": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { @@ -9809,18 +9176,18 @@ }, "get-package-type": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-package-type/-/get-package-type-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, "get-stream": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "get-symbol-description": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "requires": { @@ -9830,7 +9197,7 @@ }, "gh-got": { "version": "9.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/gh-got/-/gh-got-9.0.0.tgz", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-9.0.0.tgz", "integrity": "sha512-RH5n6CDdb6AozElmiKwFhmO/1FmhWWVhfQAVv+JtU8jtPK12JLErce/VQFsFwZ9dTa01SfD7WXb/1iyZp/5XKg==", "requires": { "got": "^10.5.7" @@ -9838,12 +9205,12 @@ "dependencies": { "@sindresorhus/is": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@sindresorhus/is/-/is-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==" }, "cacheable-lookup": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", "requires": { "@types/keyv": "^3.1.1", @@ -9852,7 +9219,7 @@ }, "decompress-response": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decompress-response/-/decompress-response-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz", "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", "requires": { "mimic-response": "^2.0.0" @@ -9860,7 +9227,7 @@ }, "get-stream": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/get-stream/-/get-stream-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { "pump": "^3.0.0" @@ -9868,7 +9235,7 @@ }, "got": { "version": "10.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-10.7.0.tgz", + "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", "requires": { "@sindresorhus/is": "^2.0.0", @@ -9890,24 +9257,24 @@ }, "mimic-response": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" }, "type-fest": { "version": "0.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.10.0.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==" } } }, "github-from-package": { "version": "0.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/github-from-package/-/github-from-package-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "glob": { "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob/-/glob-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", @@ -9920,7 +9287,7 @@ }, "glob-parent": { "version": "6.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-6.0.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { @@ -9929,7 +9296,7 @@ }, "global-dirs": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/global-dirs/-/global-dirs-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "requires": { "ini": "2.0.0" @@ -9937,7 +9304,7 @@ }, "globals": { "version": "13.13.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/globals/-/globals-13.13.0.tgz", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "requires": { @@ -9946,7 +9313,7 @@ }, "got": { "version": "11.8.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/got/-/got-11.8.3.tgz", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", "requires": { "@sindresorhus/is": "^4.0.0", @@ -9964,18 +9331,18 @@ }, "graceful-fs": { "version": "4.2.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graceful-fs/-/graceful-fs-4.2.10.tgz", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, "graphql": { "version": "15.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql/-/graphql-15.6.1.tgz", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" }, "graphql-request": { "version": "3.7.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/graphql-request/-/graphql-request-3.7.0.tgz", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", "requires": { "cross-fetch": "^3.0.6", @@ -9985,7 +9352,7 @@ "dependencies": { "form-data": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/form-data/-/form-data-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "requires": { "asynckit": "^0.4.0", @@ -9997,13 +9364,13 @@ }, "growl": { "version": "1.10.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/growl/-/growl-1.10.5.tgz", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "has": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has/-/has-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { @@ -10012,18 +9379,18 @@ }, "has-bigints": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-bigints/-/has-bigints-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, "has-flag": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-flag/-/has-flag-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-property-descriptors": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, "requires": { @@ -10032,13 +9399,13 @@ }, "has-symbols": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-symbols/-/has-symbols-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, "has-tostringtag": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "requires": { @@ -10047,12 +9414,12 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/has-unicode/-/has-unicode-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "hasha": { "version": "5.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hasha/-/hasha-5.2.2.tgz", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, "requires": { @@ -10062,7 +9429,7 @@ "dependencies": { "type-fest": { "version": "0.8.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.8.1.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } @@ -10070,13 +9437,13 @@ }, "he": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/he/-/he-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hosted-git-info": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "requires": { "lru-cache": "^6.0.0" @@ -10084,18 +9451,18 @@ }, "html-escaper": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/html-escaper/-/html-escaper-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "http-cache-semantics": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-proxy-agent": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "requires": { "@tootallnate/once": "1", @@ -10105,7 +9472,7 @@ }, "http2-wrapper": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "requires": { "quick-lru": "^5.1.1", @@ -10114,7 +9481,7 @@ }, "https-proxy-agent": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "requires": { "agent-base": "6", @@ -10123,7 +9490,7 @@ }, "humanize-ms": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/humanize-ms/-/humanize-ms-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "requires": { "ms": "^2.0.0" @@ -10131,13 +9498,13 @@ }, "husky": { "version": "7.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/husky/-/husky-7.0.4.tgz", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", "dev": true }, "iconv-lite": { "version": "0.4.24", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/iconv-lite/-/iconv-lite-0.4.24.tgz", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -10145,18 +9512,18 @@ }, "ieee754": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ieee754/-/ieee754-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { "version": "5.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "import-fresh": { "version": "3.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/import-fresh/-/import-fresh-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { @@ -10166,22 +9533,22 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/indent-string/-/indent-string-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "infer-owner": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/infer-owner/-/infer-owner-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "inflight": { "version": "1.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -10190,17 +9557,17 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inherits/-/inherits-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { "version": "8.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/inquirer/-/inquirer-8.2.0.tgz", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "requires": { "ansi-escapes": "^4.2.1", @@ -10221,7 +9588,7 @@ }, "internal-slot": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/internal-slot/-/internal-slot-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { @@ -10232,12 +9599,12 @@ }, "ip": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ip/-/ip-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, "is-bigint": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-bigint/-/is-bigint-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "requires": { @@ -10246,7 +9613,7 @@ }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-binary-path/-/is-binary-path-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { @@ -10255,7 +9622,7 @@ }, "is-boolean-object": { "version": "1.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "requires": { @@ -10265,13 +9632,13 @@ }, "is-callable": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-callable/-/is-callable-1.2.4.tgz", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-ci": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-ci/-/is-ci-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, "requires": { @@ -10280,7 +9647,7 @@ }, "is-core-module": { "version": "2.9.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-core-module/-/is-core-module-2.9.0.tgz", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { @@ -10289,7 +9656,7 @@ }, "is-date-object": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-date-object/-/is-date-object-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, "requires": { @@ -10298,23 +9665,23 @@ }, "is-docker": { "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-docker/-/is-docker-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" }, "is-extglob": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-glob/-/is-glob-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { @@ -10323,7 +9690,7 @@ }, "is-installed-globally": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "requires": { "global-dirs": "^3.0.0", @@ -10332,29 +9699,29 @@ }, "is-interactive": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-interactive/-/is-interactive-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" }, "is-lambda": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-lambda/-/is-lambda-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, "is-negative-zero": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "is-number-object": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-number-object/-/is-number-object-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "requires": { @@ -10363,18 +9730,18 @@ }, "is-path-inside": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-path-inside/-/is-path-inside-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, "is-plain-obj": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-regex": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-regex/-/is-regex-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { @@ -10384,7 +9751,7 @@ }, "is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, "requires": { @@ -10393,13 +9760,13 @@ }, "is-stream": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "is-string": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-string/-/is-string-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "requires": { @@ -10408,7 +9775,7 @@ }, "is-symbol": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-symbol/-/is-symbol-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { @@ -10417,18 +9784,18 @@ }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-typedarray/-/is-typedarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-unicode-supported": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, "is-weakref": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-weakref/-/is-weakref-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "requires": { @@ -10437,13 +9804,13 @@ }, "is-windows": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-windows/-/is-windows-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "is-wsl": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/is-wsl/-/is-wsl-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "requires": { "is-docker": "^2.0.0" @@ -10451,25 +9818,25 @@ }, "isarray": { "version": "0.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "isexe": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-hook": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, "requires": { @@ -10478,7 +9845,7 @@ }, "istanbul-lib-instrument": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { @@ -10490,7 +9857,7 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } @@ -10498,7 +9865,7 @@ }, "istanbul-lib-processinfo": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", "dev": true, "requires": { @@ -10513,7 +9880,7 @@ "dependencies": { "p-map": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, "requires": { @@ -10522,7 +9889,7 @@ }, "uuid": { "version": "3.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-3.4.0.tgz", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true } @@ -10530,7 +9897,7 @@ }, "istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { @@ -10541,7 +9908,7 @@ }, "istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { @@ -10552,7 +9919,7 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } @@ -10560,7 +9927,7 @@ }, "istanbul-reports": { "version": "3.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "requires": { @@ -10570,7 +9937,7 @@ }, "istextorbinary": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/istextorbinary/-/istextorbinary-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-6.0.0.tgz", "integrity": "sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==", "requires": { "binaryextensions": "^4.18.0", @@ -10579,18 +9946,18 @@ }, "jju": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jju/-/jju-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", "dev": true }, "jmespath": { "version": "0.16.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jmespath/-/jmespath-0.16.0.tgz", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { "version": "17.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/joi/-/joi-17.6.0.tgz", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", "requires": { "@hapi/hoek": "^9.0.0", @@ -10602,18 +9969,18 @@ }, "jose-node-cjs-runtime": { "version": "4.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==" }, "js-tokens": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { "argparse": "^2.0.1" @@ -10621,47 +9988,47 @@ }, "jsesc": { "version": "2.5.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsesc/-/jsesc-2.5.2.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-buffer": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-buffer/-/json-buffer-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json5": { "version": "2.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true }, "jsonparse": { "version": "1.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/jsonparse/-/jsonparse-1.3.1.tgz", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" }, "JSONStream": { "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/JSONStream/-/JSONStream-1.3.5.tgz", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { @@ -10671,13 +10038,13 @@ }, "just-extend": { "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/just-extend/-/just-extend-4.2.1.tgz", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", "dev": true }, "keytar": { "version": "7.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keytar/-/keytar-7.8.0.tgz", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.8.0.tgz", "integrity": "sha512-mR+BqtAOIW8j+T5FtLVyckCbvROWQD+4FzPeFMuk5njEZkXLpVPCGF26Y3mTyxMAAL1XCfswR7S6kIf+THSRFA==", "requires": { "node-addon-api": "^4.3.0", @@ -10686,7 +10053,7 @@ }, "keyv": { "version": "4.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/keyv/-/keyv-4.2.2.tgz", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", "requires": { "compress-brotli": "^1.3.6", @@ -10695,18 +10062,18 @@ }, "kleur": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/kleur/-/kleur-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" }, "lazy-ass": { "version": "1.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lazy-ass/-/lazy-ass-1.6.0.tgz", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", "dev": true }, "levn": { "version": "0.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/levn/-/levn-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { @@ -10716,7 +10083,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { @@ -10726,42 +10093,42 @@ }, "lodash": { "version": "4.17.21", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash/-/lodash-4.17.21.tgz", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.flattendeep": { "version": "4.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, "lodash.get": { "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.get/-/lodash.get-4.4.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.merge/-/lodash.merge-4.6.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lodash.set": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.set/-/lodash.set-4.3.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, "lodash.truncate": { "version": "4.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "log-symbols": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/log-symbols/-/log-symbols-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "requires": { "chalk": "^4.1.0", @@ -10770,7 +10137,7 @@ }, "loupe": { "version": "2.3.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/loupe/-/loupe-2.3.4.tgz", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", "dev": true, "requires": { @@ -10779,12 +10146,12 @@ }, "lowercase-keys": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "lru-cache": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/lru-cache/-/lru-cache-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { "yallist": "^4.0.0" @@ -10792,7 +10159,7 @@ }, "make-dir": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-dir/-/make-dir-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { @@ -10801,7 +10168,7 @@ "dependencies": { "semver": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } @@ -10809,7 +10176,7 @@ }, "make-fetch-happen": { "version": "9.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "requires": { "agentkeepalive": "^4.1.3", @@ -10832,18 +10199,18 @@ }, "map-stream": { "version": "0.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/map-stream/-/map-stream-0.0.7.tgz", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, "mime-db": { "version": "1.52.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-db/-/mime-db-1.52.0.tgz", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mime-types/-/mime-types-2.1.35.tgz", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { "mime-db": "1.52.0" @@ -10851,17 +10218,17 @@ }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-fn/-/mimic-fn-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mimic-response/-/mimic-response-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-3.0.4.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" @@ -10869,12 +10236,12 @@ }, "minimist": { "version": "1.2.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimist/-/minimist-1.2.6.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minipass": { "version": "3.1.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass/-/minipass-3.1.6.tgz", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "requires": { "yallist": "^4.0.0" @@ -10882,7 +10249,7 @@ }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-collect/-/minipass-collect-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { "minipass": "^3.0.0" @@ -10890,7 +10257,7 @@ }, "minipass-fetch": { "version": "1.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "requires": { "encoding": "^0.1.12", @@ -10901,7 +10268,7 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-flush/-/minipass-flush-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { "minipass": "^3.0.0" @@ -10909,7 +10276,7 @@ }, "minipass-json-stream": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "requires": { "jsonparse": "^1.3.1", @@ -10918,7 +10285,7 @@ }, "minipass-pipeline": { "version": "1.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "requires": { "minipass": "^3.0.0" @@ -10926,7 +10293,7 @@ }, "minipass-sized": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minipass-sized/-/minipass-sized-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "requires": { "minipass": "^3.0.0" @@ -10934,7 +10301,7 @@ }, "minizlib": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minizlib/-/minizlib-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "requires": { "minipass": "^3.0.0", @@ -10943,22 +10310,22 @@ }, "mixin-deep": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mixin-deep/-/mixin-deep-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" }, "mkdirp": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp/-/mkdirp-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mkdirp-classic": { "version": "0.5.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "mocha": { "version": "9.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocha/-/mocha-9.2.2.tgz", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "requires": { @@ -10990,7 +10357,7 @@ "dependencies": { "debug": { "version": "4.3.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.3.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { @@ -10999,7 +10366,7 @@ "dependencies": { "ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } @@ -11007,7 +10374,7 @@ }, "find-up": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { @@ -11017,7 +10384,7 @@ }, "locate-path": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { @@ -11026,7 +10393,7 @@ }, "minimatch": { "version": "4.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/minimatch/-/minimatch-4.2.1.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", "dev": true, "requires": { @@ -11035,13 +10402,13 @@ }, "ms": { "version": "2.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.3.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "p-limit": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { @@ -11050,7 +10417,7 @@ }, "p-locate": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { @@ -11059,13 +10426,13 @@ }, "path-exists": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "supports-color": { "version": "8.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { @@ -11076,7 +10443,7 @@ }, "mocked-env": { "version": "1.3.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mocked-env/-/mocked-env-1.3.5.tgz", + "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", "dev": true, "requires": { @@ -11088,7 +10455,7 @@ "dependencies": { "debug": { "version": "4.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/debug/-/debug-4.3.2.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { @@ -11099,50 +10466,50 @@ }, "moment": { "version": "2.29.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/moment/-/moment-2.29.3.tgz", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" }, "ms": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ms/-/ms-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "0.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/mute-stream/-/mute-stream-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nan": { "version": "2.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nan/-/nan-2.15.0.tgz", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", "optional": true }, "nanoid": { "version": "3.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nanoid/-/nanoid-3.3.1.tgz", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, "napi-build-utils": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, "natural-compare": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/natural-compare/-/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "negotiator": { "version": "0.6.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/negotiator/-/negotiator-0.6.3.tgz", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "nise": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nise/-/nise-5.1.1.tgz", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", "dev": true, "requires": { @@ -11155,7 +10522,7 @@ }, "nock": { "version": "13.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nock/-/nock-13.2.4.tgz", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", "dev": true, "requires": { @@ -11167,7 +10534,7 @@ }, "node-abi": { "version": "3.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-abi/-/node-abi-3.15.0.tgz", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.15.0.tgz", "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", "requires": { "semver": "^7.3.5" @@ -11175,12 +10542,12 @@ }, "node-addon-api": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-addon-api/-/node-addon-api-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" }, "node-fetch": { "version": "2.6.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-fetch/-/node-fetch-2.6.7.tgz", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { "whatwg-url": "^5.0.0" @@ -11188,7 +10555,7 @@ }, "node-preload": { "version": "0.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-preload/-/node-preload-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, "requires": { @@ -11197,24 +10564,24 @@ }, "node-releases": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/node-releases/-/node-releases-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", "dev": true }, "normalize-path": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "normalize-url": { "version": "6.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/normalize-url/-/normalize-url-6.1.0.tgz", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" }, "npm-package-arg": { "version": "8.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "requires": { "hosted-git-info": "^4.0.1", @@ -11224,7 +10591,7 @@ }, "npm-registry-fetch": { "version": "12.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", "requires": { "make-fetch-happen": "^9.0.1", @@ -11237,7 +10604,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/npmlog/-/npmlog-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "~1.1.2", @@ -11248,12 +10615,12 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/number-is-nan/-/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "nyc": { "version": "15.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/nyc/-/nyc-15.1.0.tgz", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, "requires": { @@ -11288,7 +10655,7 @@ "dependencies": { "cliui": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/cliui/-/cliui-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { @@ -11299,7 +10666,7 @@ }, "find-up": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { @@ -11309,7 +10676,7 @@ }, "locate-path": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { @@ -11318,7 +10685,7 @@ }, "p-limit": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { @@ -11327,7 +10694,7 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { @@ -11336,7 +10703,7 @@ }, "p-map": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, "requires": { @@ -11345,25 +10712,25 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "resolve-from": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, "wrap-ansi": { "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { @@ -11374,13 +10741,13 @@ }, "y18n": { "version": "4.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-4.0.3.tgz", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { "version": "15.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-15.4.1.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { @@ -11399,7 +10766,7 @@ }, "yargs-parser": { "version": "18.1.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-18.1.3.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { @@ -11411,24 +10778,24 @@ }, "object-assign": { "version": "4.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-assign/-/object-assign-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { "version": "1.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-inspect/-/object-inspect-1.12.0.tgz", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", "dev": true }, "object-keys": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object-keys/-/object-keys-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object.assign": { "version": "4.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.assign/-/object.assign-4.1.2.tgz", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { @@ -11440,7 +10807,7 @@ }, "object.entries": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.entries/-/object.entries-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, "requires": { @@ -11451,7 +10818,7 @@ }, "object.values": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/object.values/-/object.values-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { @@ -11462,7 +10829,7 @@ }, "once": { "version": "1.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -11470,7 +10837,7 @@ }, "onetime": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/onetime/-/onetime-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { "mimic-fn": "^2.1.0" @@ -11478,7 +10845,7 @@ }, "open": { "version": "8.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/open/-/open-8.4.0.tgz", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "requires": { "define-lazy-prop": "^2.0.0", @@ -11488,7 +10855,7 @@ }, "optionator": { "version": "0.9.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/optionator/-/optionator-0.9.1.tgz", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { @@ -11502,7 +10869,7 @@ }, "ora": { "version": "5.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ora/-/ora-5.4.1.tgz", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "requires": { "bl": "^4.1.0", @@ -11518,17 +10885,17 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-cancelable/-/p-cancelable-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, "p-event": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-event/-/p-event-4.2.0.tgz", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", "requires": { "p-timeout": "^3.1.0" @@ -11536,12 +10903,12 @@ }, "p-finally": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-finally/-/p-finally-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-limit": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { @@ -11550,7 +10917,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { @@ -11559,7 +10926,7 @@ }, "p-map": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-map/-/p-map-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { "aggregate-error": "^3.0.0" @@ -11567,7 +10934,7 @@ }, "p-timeout": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-timeout/-/p-timeout-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "requires": { "p-finally": "^1.0.0" @@ -11575,13 +10942,13 @@ }, "p-try": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "package-hash": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/package-hash/-/package-hash-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, "requires": { @@ -11593,7 +10960,7 @@ }, "parent-module": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/parent-module/-/parent-module-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { @@ -11602,30 +10969,30 @@ }, "path-exists": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-parse/-/path-parse-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-to-regexp": { "version": "1.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "requires": { @@ -11634,13 +11001,13 @@ }, "pathval": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pathval/-/pathval-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "pause-stream": { "version": "0.0.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { @@ -11649,24 +11016,24 @@ }, "pend": { "version": "1.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pend/-/pend-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "picocolors": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picocolors/-/picocolors-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "picomatch": { "version": "2.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/picomatch/-/picomatch-2.3.1.tgz", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pkg-dir": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pkg-dir/-/pkg-dir-4.2.0.tgz", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { @@ -11675,7 +11042,7 @@ "dependencies": { "find-up": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { @@ -11685,7 +11052,7 @@ }, "locate-path": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { @@ -11694,7 +11061,7 @@ }, "p-limit": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { @@ -11703,7 +11070,7 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { @@ -11712,13 +11079,13 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/p-try/-/p-try-2.2.0.tgz", + "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://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/path-exists/-/path-exists-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true } @@ -11726,7 +11093,7 @@ }, "prebuild-install": { "version": "7.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prebuild-install/-/prebuild-install-7.1.0.tgz", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", "requires": { "detect-libc": "^2.0.0", @@ -11746,18 +11113,18 @@ }, "prelude-ls": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prelude-ls/-/prelude-ls-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "process-nextick-args": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "process-on-spawn": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", "dev": true, "requires": { @@ -11766,18 +11133,18 @@ }, "progress": { "version": "2.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/progress/-/progress-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "promise-inflight": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-inflight/-/promise-inflight-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "promise-retry": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/promise-retry/-/promise-retry-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "requires": { "err-code": "^2.0.2", @@ -11786,7 +11153,7 @@ }, "prompts": { "version": "2.4.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/prompts/-/prompts-2.4.2.tgz", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", @@ -11795,13 +11162,13 @@ }, "propagate": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/propagate/-/propagate-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", "dev": true }, "pump": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/pump/-/pump-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", @@ -11810,29 +11177,29 @@ }, "punycode": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/punycode/-/punycode-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "querystringify": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/querystringify/-/querystringify-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, "quick-lru": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/quick-lru/-/quick-lru-5.1.1.tgz", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" }, "ramda": { "version": "0.27.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ramda/-/ramda-0.27.1.tgz", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", "dev": true }, "randombytes": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/randombytes/-/randombytes-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { @@ -11841,7 +11208,7 @@ }, "rc": { "version": "1.2.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rc/-/rc-1.2.8.tgz", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "requires": { "deep-extend": "^0.6.0", @@ -11852,19 +11219,19 @@ "dependencies": { "ini": { "version": "1.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ini/-/ini-1.3.8.tgz", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" } } }, "readable-stream": { "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readable-stream/-/readable-stream-3.6.0.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { "inherits": "^2.0.3", @@ -11874,7 +11241,7 @@ }, "readdirp": { "version": "3.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readdirp/-/readdirp-3.6.0.tgz", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { @@ -11883,19 +11250,19 @@ }, "readline-transform": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/readline-transform/-/readline-transform-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", "dev": true }, "regexpp": { "version": "3.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/regexpp/-/regexpp-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "release-zalgo": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/release-zalgo/-/release-zalgo-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", "dev": true, "requires": { @@ -11904,30 +11271,30 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-directory/-/require-directory-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-from-string": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-from-string/-/require-from-string-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/require-main-filename/-/require-main-filename-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "requires-port": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/requires-port/-/requires-port-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { "version": "1.22.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve/-/resolve-1.22.0.tgz", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { @@ -11938,18 +11305,18 @@ }, "resolve-alpn": { "version": "1.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, "resolve-from": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/resolve-from/-/resolve-from-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "responselike": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/responselike/-/responselike-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { "lowercase-keys": "^2.0.0" @@ -11957,7 +11324,7 @@ }, "restore-cursor": { "version": "3.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/restore-cursor/-/restore-cursor-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "requires": { "onetime": "^5.1.0", @@ -11966,12 +11333,12 @@ }, "retry": { "version": "0.12.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/retry/-/retry-0.12.0.tgz", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, "rewire": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rewire/-/rewire-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", "dev": true, "requires": { @@ -11980,7 +11347,7 @@ "dependencies": { "@babel/code-frame": { "version": "7.12.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@babel/code-frame/-/code-frame-7.12.11.tgz", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { @@ -11989,7 +11356,7 @@ }, "@eslint/eslintrc": { "version": "0.4.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { @@ -12006,7 +11373,7 @@ }, "@humanwhocodes/config-array": { "version": "0.5.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "requires": { @@ -12017,13 +11384,13 @@ }, "acorn": { "version": "7.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/acorn/-/acorn-7.4.1.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "argparse": { "version": "1.0.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { @@ -12032,7 +11399,7 @@ }, "eslint": { "version": "7.32.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint/-/eslint-7.32.0.tgz", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { @@ -12080,7 +11447,7 @@ }, "eslint-scope": { "version": "5.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-scope/-/eslint-scope-5.1.1.tgz", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { @@ -12090,7 +11457,7 @@ }, "eslint-utils": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-utils/-/eslint-utils-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { @@ -12099,7 +11466,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } @@ -12107,13 +11474,13 @@ }, "eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "espree": { "version": "7.3.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/espree/-/espree-7.3.1.tgz", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { @@ -12124,7 +11491,7 @@ "dependencies": { "eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } @@ -12132,13 +11499,13 @@ }, "estraverse": { "version": "4.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/estraverse/-/estraverse-4.3.0.tgz", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "glob-parent": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/glob-parent/-/glob-parent-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { @@ -12147,13 +11514,13 @@ }, "ignore": { "version": "4.0.6", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ignore/-/ignore-4.0.6.tgz", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "js-yaml": { "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/js-yaml/-/js-yaml-3.14.1.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { @@ -12165,7 +11532,7 @@ }, "rimraf": { "version": "3.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rimraf/-/rimraf-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" @@ -12173,12 +11540,12 @@ }, "run-async": { "version": "2.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/run-async/-/run-async-2.4.1.tgz", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, "rxjs": { "version": "7.5.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/rxjs/-/rxjs-7.5.5.tgz", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", "requires": { "tslib": "^2.1.0" @@ -12186,17 +11553,17 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { "version": "7.3.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/semver/-/semver-7.3.7.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" @@ -12204,7 +11571,7 @@ }, "serialize-javascript": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { @@ -12213,12 +11580,12 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/set-blocking/-/set-blocking-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "shebang-command": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { @@ -12227,13 +11594,13 @@ }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "side-channel": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/side-channel/-/side-channel-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { @@ -12244,17 +11611,17 @@ }, "signal-exit": { "version": "3.0.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/signal-exit/-/signal-exit-3.0.7.tgz", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "simple-concat": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-concat/-/simple-concat-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" }, "simple-get": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/simple-get/-/simple-get-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "requires": { "decompress-response": "^6.0.0", @@ -12264,7 +11631,7 @@ }, "sinon": { "version": "11.1.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sinon/-/sinon-11.1.2.tgz", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", "dev": true, "requires": { @@ -12278,12 +11645,12 @@ }, "sisteransi": { "version": "1.0.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sisteransi/-/sisteransi-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "slice-ansi": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/slice-ansi/-/slice-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { @@ -12294,12 +11661,12 @@ }, "smart-buffer": { "version": "4.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/smart-buffer/-/smart-buffer-4.2.0.tgz", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "socks": { "version": "2.6.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks/-/socks-2.6.2.tgz", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", "requires": { "ip": "^1.1.5", @@ -12308,7 +11675,7 @@ }, "socks-proxy-agent": { "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", "requires": { "agent-base": "^6.0.2", @@ -12318,13 +11685,13 @@ }, "source-map": { "version": "0.5.7", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/source-map/-/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "spawn-wrap": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, "requires": { @@ -12338,7 +11705,7 @@ }, "split": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split/-/split-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { @@ -12347,18 +11714,18 @@ }, "split-ca": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/split-ca/-/split-ca-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "ssh2": { "version": "1.9.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssh2/-/ssh2-1.9.0.tgz", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz", "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", "requires": { "asn1": "^0.2.4", @@ -12369,7 +11736,7 @@ }, "ssri": { "version": "8.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ssri/-/ssri-8.0.1.tgz", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "requires": { "minipass": "^3.1.1" @@ -12377,7 +11744,7 @@ }, "stream-combiner": { "version": "0.2.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/stream-combiner/-/stream-combiner-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", "dev": true, "requires": { @@ -12387,7 +11754,7 @@ }, "string_decoder": { "version": "1.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string_decoder/-/string_decoder-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { "safe-buffer": "~5.2.0" @@ -12395,14 +11762,14 @@ "dependencies": { "safe-buffer": { "version": "5.2.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/safe-buffer/-/safe-buffer-5.2.1.tgz", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, "string-width": { "version": "4.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", @@ -12412,7 +11779,7 @@ }, "string.prototype.trimend": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { @@ -12422,7 +11789,7 @@ }, "string.prototype.trimstart": { "version": "1.0.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { @@ -12432,7 +11799,7 @@ }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "5.0.1" @@ -12440,19 +11807,19 @@ }, "strip-bom": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-json-comments": { "version": "3.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { "version": "7.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-color/-/supports-color-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { "has-flag": "^4.0.0" @@ -12460,13 +11827,13 @@ }, "supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, "table": { "version": "6.8.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/table/-/table-6.8.0.tgz", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "requires": { @@ -12479,7 +11846,7 @@ "dependencies": { "ajv": { "version": "8.11.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/ajv/-/ajv-8.11.0.tgz", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { @@ -12491,7 +11858,7 @@ }, "json-schema-traverse": { "version": "1.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true } @@ -12499,7 +11866,7 @@ }, "tar": { "version": "6.1.11", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar/-/tar-6.1.11.tgz", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "requires": { "chownr": "^2.0.0", @@ -12512,7 +11879,7 @@ }, "tar-fs": { "version": "2.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-fs/-/tar-fs-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", "requires": { "chownr": "^1.1.1", @@ -12523,14 +11890,14 @@ "dependencies": { "chownr": { "version": "1.1.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/chownr/-/chownr-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" } } }, "tar-stream": { "version": "2.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tar-stream/-/tar-stream-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "requires": { "bl": "^4.0.3", @@ -12542,7 +11909,7 @@ }, "test-exclude": { "version": "6.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/test-exclude/-/test-exclude-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { @@ -12553,23 +11920,23 @@ }, "text-table": { "version": "0.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/text-table/-/text-table-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "textextensions": { "version": "5.15.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/textextensions/-/textextensions-5.15.0.tgz", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.15.0.tgz", "integrity": "sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==" }, "through": { "version": "2.3.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "tmp": { "version": "0.0.33", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tmp/-/tmp-0.0.33.tgz", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { "os-tmpdir": "~1.0.2" @@ -12577,18 +11944,18 @@ }, "to-fast-properties": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-readable-stream": { "version": "2.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-readable-stream/-/to-readable-stream-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==" }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { @@ -12597,17 +11964,17 @@ }, "tr46": { "version": "0.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tr46/-/tr46-0.0.3.tgz", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" }, "treeify": { "version": "1.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/treeify/-/treeify-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==" }, "tsconfig-paths": { "version": "3.14.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "dev": true, "requires": { @@ -12619,7 +11986,7 @@ "dependencies": { "json5": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/json5/-/json5-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { @@ -12628,7 +11995,7 @@ }, "strip-bom": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/strip-bom/-/strip-bom-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true } @@ -12636,12 +12003,12 @@ }, "tslib": { "version": "2.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tslib/-/tslib-2.4.0.tgz", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "^5.0.1" @@ -12649,12 +12016,12 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/tweetnacl/-/tweetnacl-0.14.5.tgz", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { "version": "0.4.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-check/-/type-check-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { @@ -12663,19 +12030,19 @@ }, "type-detect": { "version": "4.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-detect/-/type-detect-4.0.8.tgz", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "type-fest": { "version": "0.20.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/type-fest/-/type-fest-0.20.2.tgz", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { @@ -12684,7 +12051,7 @@ }, "unbox-primitive": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "requires": { @@ -12696,7 +12063,7 @@ }, "unique-filename": { "version": "1.1.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-filename/-/unique-filename-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { "unique-slug": "^2.0.0" @@ -12704,7 +12071,7 @@ }, "unique-slug": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/unique-slug/-/unique-slug-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { "imurmurhash": "^0.1.4" @@ -12712,7 +12079,7 @@ }, "uri-js": { "version": "4.4.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uri-js/-/uri-js-4.4.1.tgz", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { @@ -12721,12 +12088,12 @@ }, "url-join": { "version": "4.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-join/-/url-join-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" }, "url-parse": { "version": "1.5.10", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/url-parse/-/url-parse-1.5.10.tgz", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "requires": { "querystringify": "^2.1.1", @@ -12735,23 +12102,23 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/util-deprecate/-/util-deprecate-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "8.3.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/uuid/-/uuid-8.3.2.tgz", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v8-compile-cache": { "version": "2.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "validate-npm-package-name": { "version": "3.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "requires": { "builtins": "^1.0.3" @@ -12759,7 +12126,7 @@ }, "wcwidth": { "version": "1.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wcwidth/-/wcwidth-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "requires": { "defaults": "^1.0.3" @@ -12767,12 +12134,12 @@ }, "webidl-conversions": { "version": "3.0.1", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "whatwg-url": { "version": "5.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/whatwg-url/-/whatwg-url-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "requires": { "tr46": "~0.0.3", @@ -12781,7 +12148,7 @@ }, "which": { "version": "2.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which/-/which-2.0.2.tgz", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { @@ -12790,7 +12157,7 @@ }, "which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "requires": { @@ -12803,13 +12170,13 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/which-module/-/which-module-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wide-align": { "version": "1.1.5", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wide-align/-/wide-align-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "requires": { "string-width": "^1.0.2 || 2 || 3 || 4" @@ -12817,19 +12184,19 @@ }, "word-wrap": { "version": "1.2.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/word-wrap/-/word-wrap-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "workerpool": { "version": "6.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/workerpool/-/workerpool-6.2.0.tgz", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", "dev": true }, "wrap-ansi": { "version": "7.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { @@ -12840,12 +12207,12 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/wrappy/-/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { @@ -12857,18 +12224,18 @@ }, "y18n": { "version": "5.0.8", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/y18n/-/y18n-5.0.8.tgz", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yallist": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yallist/-/yallist-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { "version": "16.2.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs/-/yargs-16.2.0.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { @@ -12883,13 +12250,13 @@ }, "yargs-parser": { "version": "20.2.4", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-parser/-/yargs-parser-20.2.4.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true }, "yargs-unparser": { "version": "2.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, "requires": { @@ -12901,13 +12268,13 @@ "dependencies": { "camelcase": { "version": "6.3.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/camelcase/-/camelcase-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "decamelize": { "version": "4.0.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/decamelize/-/decamelize-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true } @@ -12915,7 +12282,7 @@ }, "yauzl": { "version": "2.10.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yauzl/-/yauzl-2.10.0.tgz", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "requires": { "buffer-crc32": "~0.2.3", @@ -12924,7 +12291,7 @@ }, "yocto-queue": { "version": "0.1.0", - "resolved": "https://cognitivescale.jfrog.io/cognitivescale/api/npm/npm-repo/yocto-queue/-/yocto-queue-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } From a09e3f8d8f845cf19ea641876c47c8c9bafc5784 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 14:09:05 -0400 Subject: [PATCH 661/864] * Updated engines requirement to 16 * Disabled workspace tests in CI, due to keytar not having access to a keystore. Need to figure out a workaround. --- package.json | 2 +- test/workspaces.js | 64 +++++++++++++++++++++++++++------------------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 139624cc..7dbea766 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "LICENSE" ], "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "repository": { "type": "git", diff --git a/test/workspaces.js b/test/workspaces.js index 0d9344c8..aaa68bea 100644 --- a/test/workspaces.js +++ b/test/workspaces.js @@ -19,6 +19,8 @@ const mockedEnv = require('mocked-env'); const _ = require('lodash'); const sinon = require('sinon'); const fs = require('fs'); +const isCI = require('is-ci'); + const { stripAnsi } = require('./utils'); describe('Workspaces', () => { @@ -47,7 +49,7 @@ describe('Workspaces', () => { restoreEnv(); sandbox.restore(); process.chdir('..'); - fs.rmdirSync('workspaces', { recursive: true }); + fs.rmSync('workspaces', { recursive: true }); }); function getPrintedLines() { @@ -59,38 +61,46 @@ describe('Workspaces', () => { } it('should generate a job skill', async () => { - const program = require('../bin/cortex-workspaces'); - await program.parseAsync(['node', 'workspaces', 'generate', 'job1', '--notree', '--template', 'Custom Job Skill']); - const output = getPrintedLines(); - const errs = getErrorLines(); + if (!isCI) { + const program = require('../bin/cortex-workspaces'); + await program.parseAsync(['node', 'workspaces', 'generate', 'job1', '--notree', '--template', 'Custom Job Skill']); + const output = getPrintedLines(); + const errs = getErrorLines(); - chai.expect(fs.existsSync('docs/job1/README.md')); - chai.expect(fs.existsSync('skills/job1/skill.yaml')); - chai.expect(fs.existsSync('skills/job1/actions/job1/main.py')); - chai.expect(fs.existsSync('skills/job1/actions/job1/requirements.txt')); - chai.expect(fs.existsSync('skills/job1/actions/job1/Dockerfile')); - chai.expect(fs.existsSync('skills/job1/invoke/request/message.json')); + chai.expect(fs.existsSync('docs/job1/README.md')); + chai.expect(fs.existsSync('skills/job1/skill.yaml')); + chai.expect(fs.existsSync('skills/job1/actions/job1/main.py')); + chai.expect(fs.existsSync('skills/job1/actions/job1/requirements.txt')); + chai.expect(fs.existsSync('skills/job1/actions/job1/Dockerfile')); + chai.expect(fs.existsSync('skills/job1/invoke/request/message.json')); - chai.expect(output.join('')).to.contain('Workspace generation complete.'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; + chai.expect(output.join('')).to.contain('Workspace generation complete.'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + } else { + this.skip(); + } }); it('should generate a daemon skill', async () => { - const program = require('../bin/cortex-workspaces'); - await program.parseAsync(['node', 'workspaces', 'generate', 'dmn1', '--notree', '--template', 'Custom Daemon Skill']); - const output = getPrintedLines(); - const errs = getErrorLines(); + if (!isCI) { + const program = require('../bin/cortex-workspaces'); + await program.parseAsync(['node', 'workspaces', 'generate', 'dmn1', '--notree', '--template', 'Custom Daemon Skill']); + const output = getPrintedLines(); + const errs = getErrorLines(); - chai.expect(fs.existsSync('docs/dmn1/README.md')); - chai.expect(fs.existsSync('skills/dmn1/skill.yaml')); - chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/main.py')); - chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/requirements.txt')); - chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/Dockerfile')); - chai.expect(fs.existsSync('skills/dmn1/invoke/request/message.json')); + chai.expect(fs.existsSync('docs/dmn1/README.md')); + chai.expect(fs.existsSync('skills/dmn1/skill.yaml')); + chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/main.py')); + chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/requirements.txt')); + chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/Dockerfile')); + chai.expect(fs.existsSync('skills/dmn1/invoke/request/message.json')); - chai.expect(output.join('')).to.contain('Workspace generation complete.'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; + chai.expect(output.join('')).to.contain('Workspace generation complete.'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + } else { + this.skip(); + } }); }); From d7b63deaa100a56b5003d0d9a74b2f525f630051 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 14:19:04 -0400 Subject: [PATCH 662/864] Use correct this context for test handler --- test/workspaces.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/workspaces.js b/test/workspaces.js index aaa68bea..1d79c2eb 100644 --- a/test/workspaces.js +++ b/test/workspaces.js @@ -60,7 +60,8 @@ describe('Workspaces', () => { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - it('should generate a job skill', async () => { + // eslint-disable-next-line func-names + it('should generate a job skill', async function () { if (!isCI) { const program = require('../bin/cortex-workspaces'); await program.parseAsync(['node', 'workspaces', 'generate', 'job1', '--notree', '--template', 'Custom Job Skill']); @@ -82,7 +83,8 @@ describe('Workspaces', () => { } }); - it('should generate a daemon skill', async () => { + // eslint-disable-next-line func-names + it('should generate a daemon skill', async function () { if (!isCI) { const program = require('../bin/cortex-workspaces'); await program.parseAsync(['node', 'workspaces', 'generate', 'dmn1', '--notree', '--template', 'Custom Daemon Skill']); From fc4fa3354d6544751e7967e54da274e6801c0586 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 15:05:27 -0400 Subject: [PATCH 663/864] Add libsecret to CI image --- build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sh b/build.sh index 3d798d77..17a022a0 100755 --- a/build.sh +++ b/build.sh @@ -27,6 +27,7 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ export CI="script" + sudo apt-get install libsecret-1-dev npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm test echo ${VERSION} > version.txt From 2da050d9664aa36310646307d3318c7998d2937d Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 15:14:09 -0400 Subject: [PATCH 664/864] No sudo required --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 17a022a0..bcfa6fa9 100755 --- a/build.sh +++ b/build.sh @@ -27,7 +27,7 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ export CI="script" - sudo apt-get install libsecret-1-dev + apt-get install libsecret-1-dev npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm test echo ${VERSION} > version.txt From 2a69446f6b26fbe33bba7e8e890d8003055a14ef Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 15:41:58 -0400 Subject: [PATCH 665/864] And of course, we need to run update first. --- build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.sh b/build.sh index bcfa6fa9..498ab608 100755 --- a/build.sh +++ b/build.sh @@ -27,7 +27,8 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ export CI="script" - apt-get install libsecret-1-dev + apt-get update + apt-get install -y libsecret-1-dev npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm test echo ${VERSION} > version.txt From a6d6b9f2c67d53e8eea3dfb0c26f0f75817abb40 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 16:56:08 -0400 Subject: [PATCH 666/864] Add libsecret to CI container --- Dockerfile.c12e-ci.cortex-cli | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile.c12e-ci.cortex-cli b/Dockerfile.c12e-ci.cortex-cli index f88ee137..07581c77 100644 --- a/Dockerfile.c12e-ci.cortex-cli +++ b/Dockerfile.c12e-ci.cortex-cli @@ -2,6 +2,8 @@ FROM node:16-bullseye COPY cortex-cli.tgz /app/ COPY scripts/entrypoint.sh / +RUN apt-get update +RUN apt-get install -y libsecret-1-dev RUN npm install -g /app/cortex-cli.tgz \ && echo "default:x:1001:0:Default Application User:/app:/sbin/nologin" >> /etc/passwd \ && chown -R 1001 /app From 01e0e9d4b821159cd40a403598002d9c9ea3c96b Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 17:34:17 -0400 Subject: [PATCH 667/864] Does it need apt-utils? --- build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 498ab608..5015295e 100755 --- a/build.sh +++ b/build.sh @@ -3,7 +3,7 @@ # Copied from: https://bitbucket.org/cognitivescale/cortex-console/src IMAGE_NAME=$(git remote -v | grep "(fetch)" | sed -E "s/.*git@.*:.*\/(.*)\.git.*/\1/") -BRANCH=$(git symbolic-ref --short -q HEAD) +BRANCH="local" VERSION=$(git describe --long --always --dirty --match='v*.*' | sed 's/v//; s/-/./') function error_exit { @@ -28,7 +28,7 @@ function local_docker(){ function docker_build(){ export CI="script" apt-get update - apt-get install -y libsecret-1-dev + apt-get install -y apt-utils libsecret-1-dev npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm test echo ${VERSION} > version.txt From fc14eebbf35ee8218cbc67e634131be3f165e794 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Tue, 26 Apr 2022 19:13:35 -0400 Subject: [PATCH 668/864] PUNT! Dont process docs for workspaces. --- generate_docs.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/generate_docs.sh b/generate_docs.sh index 5e7df1a8..c74761f5 100755 --- a/generate_docs.sh +++ b/generate_docs.sh @@ -42,6 +42,7 @@ EOF #echo #echo "Done -> ${OUTFILE}" echo "$(header)" > ${OUTFILE} -for CMD in $(ls -1 ./bin/cortex-*.js| sort); do +for CMD in $(ls -1 ./bin/cortex-*.js | grep -v 'cortex-workspaces' | sort); do + echo $CMD node generate_docs.js $CMD >> $OUTFILE done From bf96abe6004aed90a239d97d2f966d6ff99f2843 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Wed, 27 Apr 2022 14:11:22 -0400 Subject: [PATCH 669/864] Removed some troubleshooting changes inavertently left in build.sh --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 5015295e..c00b7ca2 100755 --- a/build.sh +++ b/build.sh @@ -3,7 +3,7 @@ # Copied from: https://bitbucket.org/cognitivescale/cortex-console/src IMAGE_NAME=$(git remote -v | grep "(fetch)" | sed -E "s/.*git@.*:.*\/(.*)\.git.*/\1/") -BRANCH="local" +BRANCH=$(git symbolic-ref --short -q HEAD) VERSION=$(git describe --long --always --dirty --match='v*.*' | sed 's/v//; s/-/./') function error_exit { From 6ad01a5d3916abf4d2acdbfb416e27909036d354 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 12 Apr 2022 18:02:35 +0530 Subject: [PATCH 670/864] added prefix support for content --- bin/cortex-content.js | 5 +++++ src/client/content.js | 5 ++++- src/commands/content.js | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bin/cortex-content.js b/bin/cortex-content.js index db5251e6..70ec145e 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -42,6 +42,11 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--skip [skip]', 'Move the result cursor to this position before returning results.') + .option('--limit [limit]', 'Limit the number of rows returned') + .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--prefix [prefix]', 'Filter contents with the given prefix.') .action(withCompatibilityCheck((options) => { try { new ListContent(program).execute(options); diff --git a/src/client/content.js b/src/client/content.js index c68b987e..badea268 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -36,14 +36,17 @@ module.exports = class Content { return key.replace(/^\//, ''); } - listContent(projectId, token) { + listContent(projectId, token, prefix) { checkProject(projectId); const endpoint = this.endpoint(projectId); debug('listContent() => %s', endpoint); + const query = {}; + if (prefix) query.filter = prefix; return got .get(endpoint, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent(), + searchParams: query, }).json() .then((message) => ({ success: true, message })) .catch((err) => constructError(err)); diff --git a/src/commands/content.js b/src/commands/content.js index 7256a305..7f0cb296 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -31,7 +31,7 @@ module.exports.ListContent = class ListContent { debug('%s.listContent()', profile.name); const content = new Content(profile.url); - content.listContent(options.project || profile.project, profile.token).then((response) => { + content.listContent(options.project || profile.project, profile.token, options.prefix).then((response) => { if (response.success) { if (options.query || options.json) { const result = filterObject(response.message, options); From aa25b9683e673d78b8b369d48e3956feebdc6870 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 27 Apr 2022 12:48:44 +0530 Subject: [PATCH 671/864] removed unwanted options --- bin/cortex-content.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 70ec145e..02e203c6 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -42,10 +42,6 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') .option('--prefix [prefix]', 'Filter contents with the given prefix.') .action(withCompatibilityCheck((options) => { try { From 9fc67183f02115e2437ba6bc0ac3a3c1e8949b16 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy Date: Fri, 22 Apr 2022 01:51:20 +0530 Subject: [PATCH 672/864] Update cortex-skills.js --- bin/cortex-skills.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 95f48429..96d203a9 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -100,7 +100,7 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--nostatus', 'skip extra call for skill status') - .option('--noshared', 'do not list shared sills') + .option('--noshared', 'do not list shared skills') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) From cb9925c62dadd1a2273ac49d37a08e73652db121 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy Date: Fri, 22 Apr 2022 02:13:39 +0530 Subject: [PATCH 673/864] Update tasks.js --- src/commands/tasks.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/tasks.js b/src/commands/tasks.js index bf1f145c..bca8b5c1 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -44,7 +44,7 @@ module.exports.ListTasksCommand = class { if (response.success) { let taskList = _.get(response, 'tasks', []); if (_.isEmpty(taskList)) { - return printSuccess('no tasks found'); + return printSuccess('No tasks found'); } switch (_.lowerCase(options.sort)) { case 'asc': From 450def49ecbec45e78eeaa3185f800a1f167e16e Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy Date: Fri, 22 Apr 2022 05:38:33 +0530 Subject: [PATCH 674/864] Update tasks.js --- test/tasks.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tasks.js b/test/tasks.js index 20fe1886..aa9cc054 100644 --- a/test/tasks.js +++ b/test/tasks.js @@ -91,7 +91,7 @@ describe('Tasks', () => { await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); const output = getPrintedLines(); const errs = getErrorLines(); - chai.expect(output.join('')).to.contain('no tasks found'); + chai.expect(output.join('')).to.contain('No tasks found'); // eslint-disable-next-line no-unused-expressions chai.expect(errs).to.be.empty; nock.isDone(); From 56c5cc247a12c052ee75265202df6ae522efdb4a Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 3 May 2022 13:31:13 -0500 Subject: [PATCH 675/864] Add async await to top level script to see if this improves test behavior --- bin/cortex-skills.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 96d203a9..6aa46ef4 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -43,9 +43,9 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((skillNames, options) => { + .action(withCompatibilityCheck(async (skillNames, options) => { try { - new DeploySkillCommand(program).execute(skillNames, options); + await new DeploySkillCommand(program).execute(skillNames, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -63,9 +63,9 @@ program .option('-o, --output ', 'Format output as yaml or k8s resource') .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((skillName, options) => { + .action(withCompatibilityCheck(async (skillName, options) => { try { - new DescribeSkillCommand(program).execute(skillName, options); + await new DescribeSkillCommand(program).execute(skillName, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -81,9 +81,9 @@ program .option('--project [project]', 'The project to use') .option('--params [params]', 'JSON params to send to the action') .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') - .action(withCompatibilityCheck((skillName, inputName, options) => { + .action(withCompatibilityCheck(async (skillName, inputName, options) => { try { - new InvokeSkillCommand(program).execute(skillName, inputName, options); + await new InvokeSkillCommand(program).execute(skillName, inputName, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -107,9 +107,9 @@ program .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) - .action(withCompatibilityCheck((options) => { + .action(withCompatibilityCheck(async (options) => { try { - new ListSkillsCommand(program).execute(options); + await new ListSkillsCommand(program).execute(options); } catch (err) { console.error(chalk.red(err.message)); } @@ -124,9 +124,9 @@ program .option('--json', 'Output results using JSON') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((skillName, options) => { + .action(withCompatibilityCheck(async (skillName, options) => { try { - new DeleteSkillCommand(program).execute(skillName, options); + await new DeleteSkillCommand(program).execute(skillName, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -144,9 +144,9 @@ program .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('-y, --yaml', 'Use YAML for skill definition format') .option('--scaleCount [count]', 'Scale count, only used for daemon action types') - .action(withCompatibilityCheck((skillDefinition, options) => { + .action(withCompatibilityCheck(async (skillDefinition, options) => { try { - new SaveSkillCommand(program).execute(skillDefinition, options); + await new SaveSkillCommand(program).execute(skillDefinition, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -159,9 +159,9 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--profile [profile]', 'The profile to use') .option('--project [project]', 'The project to use') - .action(withCompatibilityCheck((skillNames, options) => { + .action(withCompatibilityCheck(async (skillNames, options) => { try { - new UndeploySkillCommand(program).execute(skillNames, options); + await new UndeploySkillCommand(program).execute(skillNames, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -177,9 +177,9 @@ program // TODO enable when we want to support tasks // .option('--type [type]', 'The type of action logs to fetch [skill|task]') - .action(withCompatibilityCheck((skillName, actionName, options) => { + .action(withCompatibilityCheck(async (skillName, actionName, options) => { try { - new SkillLogsCommand(program).execute(skillName, actionName, options); + await new SkillLogsCommand(program).execute(skillName, actionName, options); } catch (err) { console.error(chalk.red(err.message)); } From 5c778779a08b4b2fb466f15ad1184da64bf4c81d Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Tue, 3 May 2022 13:42:10 -0500 Subject: [PATCH 676/864] Minor version bumps for vulns --- package-lock.json | 111 ++++++++++++++++++++-------------------------- package.json | 14 +++--- 2 files changed, 55 insertions(+), 70 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8ce5f4be..fbeaa2c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "Apache-2.0", "dependencies": { "chalk": "4.1.2", - "cli-progress": "3.9.1", + "cli-progress": "3.11.0", "cli-table3": "0.6.2", "commander": "9.2.0", "debug": "4.3.4", @@ -23,14 +23,14 @@ "got": "11.8.3", "graphql": "15.6.1", "graphql-request": "3.7.0", - "inquirer": "8.2.0", + "inquirer": "8.2.4", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", "joi": "17.6.0", - "jose-node-cjs-runtime": "4.6.2", + "jose-node-cjs-runtime": "4.8.1", "js-yaml": "4.1.0", - "keytar": "7.8.0", + "keytar": "7.9.0", "lodash": "4.17.21", "minimatch": "3.0.4", "mixin-deep": "2.0.1", @@ -53,7 +53,7 @@ "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.13.0", + "eslint": "8.14.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.26.0", "husky": "7.0.4", @@ -66,7 +66,7 @@ "sinon": "11.1.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" } }, "node_modules/@ampproject/remapping": { @@ -1584,12 +1584,11 @@ } }, "node_modules/cli-progress": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.9.1.tgz", - "integrity": "sha512-AXxiCe2a0Lm0VN+9L0jzmfQSkcZm5EYspfqXKaSIQKqIk+0hnkZ3/v1E9B39mkD6vYhKih3c/RPsJBSwq9O99Q==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.0.tgz", + "integrity": "sha512-ug+V4/Qy3+0jX9XkWPV/AwHD98RxKXqDpL37vJBOxQhD90qQ3rDqDKoFpef9se91iTUuOXKlyg2HUyHBo5lHsQ==", "dependencies": { - "colors": "^1.1.2", - "string-width": "^4.2.0" + "string-width": "^4.2.3" }, "engines": { "node": ">=4" @@ -1679,14 +1678,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -2168,12 +2159,12 @@ } }, "node_modules/eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", - "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", + "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.1", + "@eslint/eslintrc": "^1.2.2", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -3417,9 +3408,9 @@ } }, "node_modules/inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -3431,13 +3422,14 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=12.0.0" } }, "node_modules/internal-slot": { @@ -3982,9 +3974,9 @@ } }, "node_modules/jose-node-cjs-runtime": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", - "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.8.1.tgz", + "integrity": "sha512-JN3KZ1K3PInn38YEUQtPr5FS1HXsHZoXfXBqS/70SyBmJzzWRPUHF1n7Mia2rJ4vl77GbvsH3UrGtXfk2c5nWA==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -4084,9 +4076,9 @@ "dev": true }, "node_modules/keytar": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.8.0.tgz", - "integrity": "sha512-mR+BqtAOIW8j+T5FtLVyckCbvROWQD+4FzPeFMuk5njEZkXLpVPCGF26Y3mTyxMAAL1XCfswR7S6kIf+THSRFA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", "hasInstallScript": true, "dependencies": { "node-addon-api": "^4.3.0", @@ -6922,7 +6914,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -8210,12 +8201,11 @@ } }, "cli-progress": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.9.1.tgz", - "integrity": "sha512-AXxiCe2a0Lm0VN+9L0jzmfQSkcZm5EYspfqXKaSIQKqIk+0hnkZ3/v1E9B39mkD6vYhKih3c/RPsJBSwq9O99Q==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.0.tgz", + "integrity": "sha512-ug+V4/Qy3+0jX9XkWPV/AwHD98RxKXqDpL37vJBOxQhD90qQ3rDqDKoFpef9se91iTUuOXKlyg2HUyHBo5lHsQ==", "requires": { - "colors": "^1.1.2", - "string-width": "^4.2.0" + "string-width": "^4.2.3" } }, "cli-spinners": { @@ -8279,11 +8269,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -8652,12 +8637,12 @@ "dev": true }, "eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", - "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", + "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.1", + "@eslint/eslintrc": "^1.2.2", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -9140,7 +9125,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "5.0.1" + "ansi-regex": "^2.0.0" } } } @@ -9566,9 +9551,9 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -9580,10 +9565,11 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" } }, "internal-slot": { @@ -9968,9 +9954,9 @@ } }, "jose-node-cjs-runtime": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.6.2.tgz", - "integrity": "sha512-vKSX+rI+JvM5hqEpbgS2gKwbAOtpKO+Nf9oFFP3urav7Kon0oNiidK9inzpvI7ooM3UZqryYPTqui9txTe+ezQ==" + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.8.1.tgz", + "integrity": "sha512-JN3KZ1K3PInn38YEUQtPr5FS1HXsHZoXfXBqS/70SyBmJzzWRPUHF1n7Mia2rJ4vl77GbvsH3UrGtXfk2c5nWA==" }, "js-tokens": { "version": "4.0.0", @@ -10043,9 +10029,9 @@ "dev": true }, "keytar": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.8.0.tgz", - "integrity": "sha512-mR+BqtAOIW8j+T5FtLVyckCbvROWQD+4FzPeFMuk5njEZkXLpVPCGF26Y3mTyxMAAL1XCfswR7S6kIf+THSRFA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", "requires": { "node-addon-api": "^4.3.0", "prebuild-install": "^7.0.1" @@ -12198,7 +12184,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", diff --git a/package.json b/package.json index 7dbea766..e7ada9b6 100644 --- a/package.json +++ b/package.json @@ -42,11 +42,11 @@ "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { "chalk": "4.1.2", - "cli-progress": "3.9.1", - "dockerode": "3.3.1", + "cli-progress": "3.11.0", "cli-table3": "0.6.2", "commander": "9.2.0", "debug": "4.3.4", + "dockerode": "3.3.1", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", @@ -55,23 +55,23 @@ "got": "11.8.3", "graphql": "15.6.1", "graphql-request": "3.7.0", - "inquirer": "8.2.0", + "inquirer": "8.2.4", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", "joi": "17.6.0", - "jose-node-cjs-runtime": "4.6.2", + "jose-node-cjs-runtime": "4.8.1", "js-yaml": "4.1.0", - "keytar": "7.8.0", + "keytar": "7.9.0", "lodash": "4.17.21", "minimatch": "3.0.4", "mixin-deep": "2.0.1", "moment": "2.29.3", "npm-registry-fetch": "12.0.0", "open": "8.4.0", - "treeify": "1.1.0", "prompts": "2.4.2", "semver": "7.3.7", + "treeify": "1.1.0", "url-join": "4.0.1", "url-parse": "1.5.10", "uuid": "8.3.2", @@ -82,7 +82,7 @@ "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.13.0", + "eslint": "8.14.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.26.0", "husky": "7.0.4", From b88fd11e60c75bcd8750929a1fe63c1ec89668bb Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Sat, 30 Apr 2022 07:05:13 +0000 Subject: [PATCH 677/864] fix: upgrade minimatch from 3.0.4 to 3.1.2 Snyk has created this PR to upgrade minimatch from 3.0.4 to 3.1.2. See this package in npm: https://www.npmjs.com/package/minimatch See this project in Snyk: https://app.snyk.io/org/fabric-test-sast-and-sca/project/035a2f5b-5ee7-4ea1-90e2-f2a44f281ef8?utm_source=github&utm_medium=referral&page=upgrade-pr --- package-lock.json | 37 ++++++++----------------------------- package.json | 2 +- 2 files changed, 9 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index fbeaa2c1..cf3272ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "3.0.4", + "minimatch": "^3.1.2", "mixin-deep": "2.0.1", "moment": "2.29.3", "npm-registry-fetch": "12.0.0", @@ -2327,18 +2327,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4307,9 +4295,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -8780,15 +8768,6 @@ "esutils": "^2.0.2" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -10213,9 +10192,9 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } @@ -11788,7 +11767,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "5.0.1" + "ansi-regex": "^5.0.1" } }, "strip-bom": { diff --git a/package.json b/package.json index e7ada9b6..859fd4de 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "3.0.4", + "minimatch": "3.1.2", "mixin-deep": "2.0.1", "moment": "2.29.3", "npm-registry-fetch": "12.0.0", From b896377f96305334110fcad3efd94f50d4aba0c5 Mon Sep 17 00:00:00 2001 From: dschueller-cs Date: Mon, 2 May 2022 10:56:14 -0400 Subject: [PATCH 678/864] Added missing template vars: generatedFiles and template for CLI --- src/commands/workspaces/generate.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index fddc23bd..532cc0d4 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -21,6 +21,7 @@ const _ = { set: require('lodash/set'), mean: require('lodash/mean'), find: require('lodash/find'), + drop: require('lodash/drop'), }; const { WorkspaceConfigureCommand } = require('./configure'); @@ -99,7 +100,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { const data = JSON.parse((await this.readFile(value.path)).toString()); return { name: data.title, - value, + value: { ...data, path: value.path }, }; })); @@ -163,6 +164,21 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { const destinationPath = path.resolve(destination || process.cwd()); const treeObj = {}; + const generatedFiles = _.map(templateFiles, (f) => { + try { + const rootPathComponents = templateFolder.split('/'); + const destFile = _.drop(f.path.split('/'), rootPathComponents.length); + const targetPath = path.join(...destFile); + + return _.template(targetPath, { interpolate: /__([\s\S]+?)__/g })({ + skillname: generateNameFromTitle(template.name), + }); + } catch (err) { + printError(`Error processing template file ${f.path}: ${err.message}`); + } + return undefined; + }).join('
'); + console.log(''); await Promise.all( @@ -172,7 +188,8 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { if (fileName !== METADATA_FILENAME) { const templateVars = { skillname: generateNameFromTitle(template.name), - repo: { url: template.registry }, + generatedFiles, + template: template.template, }; let buf = await this.readFile(f.path); From 53b6197c3df3c35e50832e149885c6eb39ec3f51 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Thu, 28 Apr 2022 18:27:35 +0530 Subject: [PATCH 679/864] added code to catch error --- src/client/content.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/client/content.js b/src/client/content.js index badea268..b92d3e08 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -68,6 +68,9 @@ module.exports = class Content { 'Content-Type': contentType, }, }), + // https://github.com/sindresorhus/got/blob/HEAD/documentation/3-streams.md#stream-api + // new stream.PassThrough() is required to catch errors. + new stream.PassThrough(), ); return { success: true, message }; } catch (err) { From 2011786f4eb17bd8d3bbc9bd5c8f615e63480a46 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 9 May 2022 16:30:21 +0530 Subject: [PATCH 680/864] merged with develop --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index cf3272ce..ef3bc6aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.0.11", + "version": "2.0.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.0.11", + "version": "2.0.12", "license": "Apache-2.0", "dependencies": { "chalk": "4.1.2", @@ -32,7 +32,7 @@ "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "^3.1.2", + "minimatch": "3.1.2", "mixin-deep": "2.0.1", "moment": "2.29.3", "npm-registry-fetch": "12.0.0", From 25fed90b0566a7c6ce024860402baf005a9a1546 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 9 May 2022 20:44:18 +0530 Subject: [PATCH 681/864] code refactor --- bin/cortex-actions.js | 7 +++++-- bin/cortex-agents.js | 9 +++++---- bin/cortex-assessments.js | 6 ++++-- bin/cortex-campaigns.js | 6 ++++-- bin/cortex-connections.js | 4 ++-- bin/cortex-experiments.js | 6 +++--- bin/cortex-missions.js | 4 ++-- bin/cortex-models.js | 6 +++--- bin/cortex-projects.js | 4 ++-- bin/cortex-skills.js | 4 ++-- bin/cortex-types.js | 4 ++-- src/constants.js | 8 ++++++-- 12 files changed, 40 insertions(+), 28 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 3f14a218..ce51d89f 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -34,7 +34,10 @@ const { // TaskStatsActionCommand, // TaskStatusActionCommand, } = require('../src/commands/actions'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAM_1, + BUILD_SORT_CLI_OPTION, +} = require('../src/constants'); program.name('cortex actions'); program.description('Work with Cortex Actions'); @@ -53,7 +56,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1))) .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 0487e275..9d9a7070 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -21,7 +21,8 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAM_1, DEFAULT_LIST_SORT_PARAM_2, + DEFAULT_LIST_SORT_PARAM_3, BUILD_SORT_CLI_OPTION, } = require('../src/constants'); const { @@ -74,7 +75,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); @@ -176,7 +177,7 @@ program .option('--status [status]', 'Filters activations by status [complete|error].') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') + .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_3)) .option('--filter [filter]', 'A Mongo style filter to use.') .action(withCompatibilityCheck((options) => { try { @@ -235,7 +236,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index a822a931..d0b58370 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -33,7 +33,9 @@ const { ExportAssessmentReportCommand, DependencyTreeCommand, } = require('../src/commands/assessments'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2 +} = require('../src/constants'); program.name('cortex assessments'); program.description('Work with Cortex Assessments'); @@ -134,7 +136,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 3f4dbd39..650ec77a 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2 +} = require('../src/constants'); const { ListCampaignsCommand, @@ -48,7 +50,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) .action(withCompatibilityCheck((options) => { try { new ListCampaignsCommand(program).execute(options); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index b9d0d131..5b20cd93 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAM_1, BUILD_SORT_CLI_OPTION } = require('../src/constants'); const { ListConnections, @@ -47,7 +47,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index a47e04fc..edb6a9fa 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -21,7 +21,7 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, DEFAULT_LIST_SORT_PARAMS_2, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1, DEFAULT_LIST_SORT_PARAM_2, } = require('../src/constants'); const { @@ -55,7 +55,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) .action(withCompatibilityCheck((options) => { try { new ListExperiments(program).execute(options); @@ -111,7 +111,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) .action(withCompatibilityCheck((experimentName, options) => { try { new ListRuns(program).execute(experimentName, options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index fb862933..df667194 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -22,7 +22,7 @@ const program = require('commander'); const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2 } = require('../src/constants'); const { ListMissionsCommand, @@ -49,7 +49,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index b7757103..9f67b436 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -31,7 +31,7 @@ const { ListModelRunsCommand, } = require('../src/commands/models'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1, } = require('../src/constants'); program.name('cortex models'); @@ -52,7 +52,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) .action(withCompatibilityCheck((options) => { try { new ListModelsCommand(program).execute(options); @@ -179,7 +179,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) .action(withCompatibilityCheck((modelName, options) => { try { new ListModelRunsCommand(program).execute(modelName, options); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 1e5ad98c..bd5a7eba 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -27,7 +27,7 @@ const { DescribeProjectCommand, DeleteProjectCommand, } = require('../src/commands/projects'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS_2 } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2 } = require('../src/constants'); program.name('cortex projects'); program.description('Work with Cortex Projects'); @@ -65,7 +65,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS_2) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) .action(withCompatibilityCheck((options) => { try { new ListProjectsCommand(program).execute(options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 6aa46ef4..d08b2d98 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1 } = require('../src/constants'); const { SaveSkillCommand, @@ -105,7 +105,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) .action(withCompatibilityCheck(async (options) => { try { diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 7451a784..ed43a601 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -20,7 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS } = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1 } = require('../src/constants'); const { SaveTypeCommand, @@ -61,7 +61,7 @@ program .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', DEFAULT_LIST_SORT_PARAMS) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); diff --git a/src/constants.js b/src/constants.js index 9f1c766d..dc2041fb 100644 --- a/src/constants.js +++ b/src/constants.js @@ -70,6 +70,10 @@ module.exports.DEFAULT_LIST_LIMIT_COUNT = '20'; module.exports.DEFAULT_LIST_SKIP_COUNT = '0'; -module.exports.DEFAULT_LIST_SORT_PARAMS = '{"updatedAt": -1}'; // skills, agents, actions, connections, models, experiments, types +module.exports.DEFAULT_LIST_SORT_PARAM_1 = 'updatedAt'; // skills, agents, actions, connections, models, experiments, types -module.exports.DEFAULT_LIST_SORT_PARAMS_2 = '{"_updatedAt": -1}'; // projects, missions, campaigns, run, assessment, snapshot +module.exports.DEFAULT_LIST_SORT_PARAM_2 = '_updatedAt'; // projects, missions, campaigns, run, assessment, snapshot + +module.exports.DEFAULT_LIST_SORT_PARAM_3 = 'start'; // activations + +module.exports.BUILD_SORT_CLI_OPTION = (param) => JSON.stringify({ [param]: -1 }); From 0a0e2b81ce72ae1b4163b441816447474334de46 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Mon, 9 May 2022 20:48:21 +0530 Subject: [PATCH 682/864] fixes --- bin/cortex-assessments.js | 2 +- bin/cortex-campaigns.js | 2 +- bin/cortex-connections.js | 4 +++- bin/cortex-missions.js | 4 +++- bin/cortex-projects.js | 4 +++- bin/cortex-skills.js | 4 +++- bin/cortex-types.js | 4 +++- 7 files changed, 17 insertions(+), 7 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index d0b58370..e9d43b94 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -34,7 +34,7 @@ const { DependencyTreeCommand, } = require('../src/commands/assessments'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2 + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2, } = require('../src/constants'); program.name('cortex assessments'); diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 650ec77a..1511716c 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -21,7 +21,7 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2 + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2, } = require('../src/constants'); const { diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 5b20cd93..d00f948a 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAM_1, BUILD_SORT_CLI_OPTION } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAM_1, BUILD_SORT_CLI_OPTION, +} = require('../src/constants'); const { ListConnections, diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index df667194..2e978659 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -22,7 +22,9 @@ const program = require('commander'); const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2 } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2, +} = require('../src/constants'); const { ListMissionsCommand, diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index bd5a7eba..bb4ee035 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -27,7 +27,9 @@ const { DescribeProjectCommand, DeleteProjectCommand, } = require('../src/commands/projects'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2 } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2, +} = require('../src/constants'); program.name('cortex projects'); program.description('Work with Cortex Projects'); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index d08b2d98..80438df5 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1 } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1, +} = require('../src/constants'); const { SaveSkillCommand, diff --git a/bin/cortex-types.js b/bin/cortex-types.js index ed43a601..ef5deca1 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1 } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1, +} = require('../src/constants'); const { SaveTypeCommand, From e19f39e11bb8af5e94aded30f063b013af0cf162 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 11 May 2022 13:45:30 +0530 Subject: [PATCH 683/864] code refactor --- bin/cortex-actions.js | 6 +++--- bin/cortex-agents.js | 10 +++++----- bin/cortex-assessments.js | 4 ++-- bin/cortex-campaigns.js | 4 ++-- bin/cortex-connections.js | 4 ++-- bin/cortex-experiments.js | 6 +++--- bin/cortex-missions.js | 4 ++-- bin/cortex-models.js | 6 +++--- bin/cortex-projects.js | 4 ++-- bin/cortex-skills.js | 4 ++-- bin/cortex-types.js | 4 ++-- src/constants.js | 12 ++++++------ 12 files changed, 34 insertions(+), 34 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index ce51d89f..8e0f52a6 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -35,8 +35,8 @@ const { // TaskStatusActionCommand, } = require('../src/commands/actions'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAM_1, - BUILD_SORT_CLI_OPTION, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, } = require('../src/constants'); program.name('cortex actions'); @@ -56,7 +56,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1))) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 9d9a7070..47111fdc 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -21,8 +21,8 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAM_1, DEFAULT_LIST_SORT_PARAM_2, - DEFAULT_LIST_SORT_PARAM_3, BUILD_SORT_CLI_OPTION, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, } = require('../src/constants'); const { @@ -75,7 +75,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); @@ -177,7 +177,7 @@ program .option('--status [status]', 'Filters activations by status [complete|error].') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_3)) + .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[2])) .option('--filter [filter]', 'A Mongo style filter to use.') .action(withCompatibilityCheck((options) => { try { @@ -236,7 +236,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index e9d43b94..21aef650 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -34,7 +34,7 @@ const { DependencyTreeCommand, } = require('../src/commands/assessments'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, } = require('../src/constants'); program.name('cortex assessments'); @@ -136,7 +136,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 1511716c..78a95c7c 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -21,7 +21,7 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, } = require('../src/constants'); const { @@ -50,7 +50,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) .action(withCompatibilityCheck((options) => { try { new ListCampaignsCommand(program).execute(options); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index d00f948a..9abe77cf 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -21,7 +21,7 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAM_1, BUILD_SORT_CLI_OPTION, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, } = require('../src/constants'); const { @@ -49,7 +49,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index edb6a9fa..b41d3dcf 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -21,7 +21,7 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1, DEFAULT_LIST_SORT_PARAM_2, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, } = require('../src/constants'); const { @@ -55,7 +55,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) .action(withCompatibilityCheck((options) => { try { new ListExperiments(program).execute(options); @@ -111,7 +111,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) .action(withCompatibilityCheck((experimentName, options) => { try { new ListRuns(program).execute(experimentName, options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 2e978659..aa5c1ed6 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -23,7 +23,7 @@ const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, } = require('../src/constants'); const { @@ -51,7 +51,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 9f67b436..01c4d6f3 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -31,7 +31,7 @@ const { ListModelRunsCommand, } = require('../src/commands/models'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, } = require('../src/constants'); program.name('cortex models'); @@ -52,7 +52,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) .action(withCompatibilityCheck((options) => { try { new ListModelsCommand(program).execute(options); @@ -179,7 +179,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) .action(withCompatibilityCheck((modelName, options) => { try { new ListModelRunsCommand(program).execute(modelName, options); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index bb4ee035..64fcbf0b 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -28,7 +28,7 @@ const { DeleteProjectCommand, } = require('../src/commands/projects'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_2, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, } = require('../src/constants'); program.name('cortex projects'); @@ -67,7 +67,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_2)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) .action(withCompatibilityCheck((options) => { try { new ListProjectsCommand(program).execute(options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 80438df5..d883edcc 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -21,7 +21,7 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, } = require('../src/constants'); const { @@ -107,7 +107,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) .action(withCompatibilityCheck(async (options) => { try { diff --git a/bin/cortex-types.js b/bin/cortex-types.js index ef5deca1..a11be3c1 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -21,7 +21,7 @@ const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, BUILD_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAM_1, + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, } = require('../src/constants'); const { @@ -63,7 +63,7 @@ program .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', BUILD_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAM_1)) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); diff --git a/src/constants.js b/src/constants.js index dc2041fb..9627b96a 100644 --- a/src/constants.js +++ b/src/constants.js @@ -70,10 +70,10 @@ module.exports.DEFAULT_LIST_LIMIT_COUNT = '20'; module.exports.DEFAULT_LIST_SKIP_COUNT = '0'; -module.exports.DEFAULT_LIST_SORT_PARAM_1 = 'updatedAt'; // skills, agents, actions, connections, models, experiments, types +module.exports.DEFAULT_LIST_SORT_PARAMS = [ + 'updatedAt', // skills, agents, actions, connections, models, experiments, types, + '_updatedAt', // projects, missions, campaigns, run, assessment, snapshot + 'start', // activations +]; -module.exports.DEFAULT_LIST_SORT_PARAM_2 = '_updatedAt'; // projects, missions, campaigns, run, assessment, snapshot - -module.exports.DEFAULT_LIST_SORT_PARAM_3 = 'start'; // activations - -module.exports.BUILD_SORT_CLI_OPTION = (param) => JSON.stringify({ [param]: -1 }); +module.exports.GET_DEFAULT_SORT_CLI_OPTION = (param) => JSON.stringify({ [param]: -1 }); From 7eb85e595555f185903059e636e15bc9cc54c1fd Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Wed, 11 May 2022 14:18:43 +0530 Subject: [PATCH 684/864] added unit tests to invalidate wrong updatedAt sort params --- test/listComponentOptions.js | 262 ++++++++++++++++++++++++++++++++++- 1 file changed, 261 insertions(+), 1 deletion(-) diff --git a/test/listComponentOptions.js b/test/listComponentOptions.js index b9884149..ffc1f4f7 100644 --- a/test/listComponentOptions.js +++ b/test/listComponentOptions.js @@ -31,6 +31,26 @@ describe('List model command option check', () => { 'Invalid sort params. Allowed fields: name,title,description,createdAt,updatedAt,createdBy,type,status') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,updatedAt,createdBy,type,status') === true, + 'Is invalid sort'); + }); }); describe('List experiments command option check', () => { @@ -62,6 +82,26 @@ describe('List experiments command option check', () => { 'Invalid sort params. Allowed fields: name,title,description,modelId,createdAt,updatedAt') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,modelId,createdAt,updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List runs command option check', () => { @@ -93,6 +133,26 @@ describe('List runs command option check', () => { 'Invalid sort params. Allowed fields: runId,_createdAt,startTime,endTime,took,experimentName') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'RUN'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: runId,_createdAt,startTime,endTime,took,experimentName,_updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List actions command option check', () => { @@ -124,6 +184,26 @@ describe('List actions command option check', () => { 'Invalid sort params. Allowed fields: name,title,type,image,description,createdAt,createdBy') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,type,image,description,createdAt,createdBy,updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List agents command option check', () => { @@ -155,6 +235,26 @@ describe('List agents command option check', () => { 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy,updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List skill command option check', () => { @@ -186,6 +286,26 @@ describe('List skill command option check', () => { 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy,updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List types command option check', () => { @@ -217,6 +337,26 @@ describe('List types command option check', () => { 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy,updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List snapshot command option check', () => { @@ -248,6 +388,26 @@ describe('List snapshot command option check', () => { 'Invalid sort params. Allowed fields: snapshotId,title,_isTip,_createdAt,_createdBy') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: snapshotId,title,_isTip,_createdAt,_createdBy,_updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List assessments command option check', () => { @@ -279,6 +439,26 @@ describe('List assessments command option check', () => { 'Invalid sort params. Allowed fields: name,title,componentName,reportCount,_createdBy,_updatedAt') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,componentName,reportCount,_createdBy,_updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List resources command option check', () => { @@ -341,6 +521,26 @@ describe('List connections command option check', () => { 'Invalid sort params. Allowed fields: name,title,description,createdAt,connectionType,allowWrite,contentType') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,createdAt,connectionType,allowWrite,contentType,updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List connection types command option check', () => { @@ -400,7 +600,27 @@ describe('List campaigns command option check', () => { 'Invalid filter params. Allowed fields: name,title,description,_createdBy,lifecycleState') === true, 'Is invalid filter'); assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState') === true, + 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState,_updatedAt') === true, + 'Is invalid sort'); + }); + + it('should support default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState,_updatedAt') === true, 'Is invalid sort'); }); }); @@ -434,6 +654,26 @@ describe('List missions command option check', () => { 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState,_updatedAt') === true, + 'Is invalid sort'); + }); }); describe('List projects command option check', () => { @@ -465,5 +705,25 @@ describe('List projects command option check', () => { 'Invalid sort params. Allowed fields: name,title,description,_createdAt') === true, 'Is invalid sort'); }); + + it('should support default sort params', () => { + const options = { + sort: '{"_updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); + assert.ok(validOptions === true, 'Valid options'); + assert.ok(errorDetails.length === 0, 'Valid options'); + }); + + it('should fail on unsupported default sort params', () => { + const options = { + sort: '{"updatedAt": -1}', + }; + const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); + assert.ok(validOptions === false, 'Invalid options'); + assert.ok(JSON.stringify(errorDetails).includes( + 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_updatedAt') === true, + 'Is invalid sort'); + }); }); From 67667005cb9bd8bd0b251ec670731f68b6422c52 Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Fri, 13 May 2022 12:22:43 +0530 Subject: [PATCH 685/864] removing filter option from connections list --- bin/cortex-connections.js | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 9abe77cf..5250b4a6 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -46,7 +46,6 @@ program .option('--project [project]', 'The project to use') .option('--json', 'Output results using JSON') .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) From f947f6de983ae9d54f5f89cb6314140ba24846ab Mon Sep 17 00:00:00 2001 From: Akarsh Prasad Date: Tue, 17 May 2022 18:36:57 +0530 Subject: [PATCH 686/864] Use GET_DEFAULT_SORT_CLI_OPTION instead of hard-coded sort --- test/listComponentOptions.js | 53 ++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/test/listComponentOptions.js b/test/listComponentOptions.js index ffc1f4f7..826212be 100644 --- a/test/listComponentOptions.js +++ b/test/listComponentOptions.js @@ -1,6 +1,7 @@ const assert = require('assert'); const { validateOptions } = require('../src/commands/utils'); +const { DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION } = require('../src/constants'); describe('List model command option check', () => { it('should pass for valid filter and sort params', () => { @@ -34,7 +35,7 @@ describe('List model command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); assert.ok(validOptions === true, 'Valid options'); @@ -43,7 +44,7 @@ describe('List model command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); assert.ok(validOptions === false, 'Invalid options'); @@ -85,7 +86,7 @@ describe('List experiments command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); assert.ok(validOptions === true, 'Valid options'); @@ -94,7 +95,7 @@ describe('List experiments command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); assert.ok(validOptions === false, 'Invalid options'); @@ -136,7 +137,7 @@ describe('List runs command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'RUN'); assert.ok(validOptions === true, 'Valid options'); @@ -145,7 +146,7 @@ describe('List runs command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'RUN'); assert.ok(validOptions === false, 'Invalid options'); @@ -187,7 +188,7 @@ describe('List actions command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); assert.ok(validOptions === true, 'Valid options'); @@ -196,7 +197,7 @@ describe('List actions command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); assert.ok(validOptions === false, 'Invalid options'); @@ -238,7 +239,7 @@ describe('List agents command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); assert.ok(validOptions === true, 'Valid options'); @@ -247,7 +248,7 @@ describe('List agents command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); assert.ok(validOptions === false, 'Invalid options'); @@ -289,7 +290,7 @@ describe('List skill command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); assert.ok(validOptions === true, 'Valid options'); @@ -298,7 +299,7 @@ describe('List skill command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); assert.ok(validOptions === false, 'Invalid options'); @@ -340,7 +341,7 @@ describe('List types command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); assert.ok(validOptions === true, 'Valid options'); @@ -349,7 +350,7 @@ describe('List types command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); assert.ok(validOptions === false, 'Invalid options'); @@ -391,7 +392,7 @@ describe('List snapshot command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); assert.ok(validOptions === true, 'Valid options'); @@ -400,7 +401,7 @@ describe('List snapshot command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); assert.ok(validOptions === false, 'Invalid options'); @@ -442,7 +443,7 @@ describe('List assessments command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); assert.ok(validOptions === true, 'Valid options'); @@ -451,7 +452,7 @@ describe('List assessments command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); assert.ok(validOptions === false, 'Invalid options'); @@ -524,7 +525,7 @@ describe('List connections command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); assert.ok(validOptions === true, 'Valid options'); @@ -533,7 +534,7 @@ describe('List connections command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); assert.ok(validOptions === false, 'Invalid options'); @@ -606,7 +607,7 @@ describe('List campaigns command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); assert.ok(validOptions === true, 'Valid options'); @@ -615,7 +616,7 @@ describe('List campaigns command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); assert.ok(validOptions === false, 'Invalid options'); @@ -657,7 +658,7 @@ describe('List missions command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); assert.ok(validOptions === true, 'Valid options'); @@ -666,7 +667,7 @@ describe('List missions command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); assert.ok(validOptions === false, 'Invalid options'); @@ -708,7 +709,7 @@ describe('List projects command option check', () => { it('should support default sort params', () => { const options = { - sort: '{"_updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), }; const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); assert.ok(validOptions === true, 'Valid options'); @@ -717,7 +718,7 @@ describe('List projects command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: '{"updatedAt": -1}', + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), }; const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); assert.ok(validOptions === false, 'Invalid options'); From 9c1f1749cc5071d55dcea105e1e79e5312f288e2 Mon Sep 17 00:00:00 2001 From: Akarsh Date: Thu, 19 May 2022 17:30:53 +0530 Subject: [PATCH 687/864] addressed feedback comments --- bin/cortex-actions.js | 2 +- bin/cortex-agents.js | 6 +- bin/cortex-assessments.js | 2 +- bin/cortex-campaigns.js | 2 +- bin/cortex-connections.js | 2 +- bin/cortex-experiments.js | 4 +- bin/cortex-missions.js | 2 +- bin/cortex-models.js | 4 +- bin/cortex-projects.js | 2 +- bin/cortex-skills.js | 2 +- bin/cortex-types.js | 2 +- package-lock.json | 2 +- src/commands/actions.js | 2 +- src/commands/agents.js | 2 +- src/commands/assessments.js | 4 +- src/commands/campaigns.js | 4 +- src/commands/connections.js | 4 +- src/commands/experiments.js | 4 +- src/commands/models.js | 4 +- src/commands/projects.js | 2 +- src/commands/skills.js | 2 +- src/commands/types.js | 2 +- src/commands/utils.js | 129 +++++++++++++++++++++++-- src/constants.js | 10 +- test/listComponentOptions.js | 52 +++++----- test/{funtionsTest.js => testUtils.js} | 41 ++++++++ 26 files changed, 224 insertions(+), 70 deletions(-) rename test/{funtionsTest.js => testUtils.js} (66%) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 8e0f52a6..75adbaac 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -56,7 +56,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 47111fdc..0e060900 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -75,7 +75,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); @@ -177,7 +177,7 @@ program .option('--status [status]', 'Filters activations by status [complete|error].') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[2])) + .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) .option('--filter [filter]', 'A Mongo style filter to use.') .action(withCompatibilityCheck((options) => { try { @@ -236,7 +236,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 21aef650..92f6d2c8 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -136,7 +136,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 78a95c7c..182e5338 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -50,7 +50,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListCampaignsCommand(program).execute(options); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 5250b4a6..97d0d7e1 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -48,7 +48,7 @@ program .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index b41d3dcf..923cff7d 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -55,7 +55,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListExperiments(program).execute(options); @@ -111,7 +111,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((experimentName, options) => { try { new ListRuns(program).execute(experimentName, options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index aa5c1ed6..7d60be9b 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -51,7 +51,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 01c4d6f3..1b11b297 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -52,7 +52,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListModelsCommand(program).execute(options); @@ -179,7 +179,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((modelName, options) => { try { new ListModelRunsCommand(program).execute(modelName, options); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 64fcbf0b..b5128e4d 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -67,7 +67,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListProjectsCommand(program).execute(options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index d883edcc..f65cc583 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -107,7 +107,7 @@ program .option('--filter [filter]', 'A Mongo style filter to use.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck(async (options) => { try { diff --git a/bin/cortex-types.js b/bin/cortex-types.js index a11be3c1..8bf39490 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -63,7 +63,7 @@ program .option('--query [query]', 'A JMESPath query to use in filtering the response data.') .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0])) + .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); diff --git a/package-lock.json b/package-lock.json index ef3bc6aa..2bcecd21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11767,7 +11767,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.1" + "ansi-regex": "5.0.1" } }, "strip-bom": { diff --git a/src/commands/actions.js b/src/commands/actions.js index d9b8f13d..b369653f 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -47,7 +47,7 @@ module.exports.ListActionsCommand = class { .then((response) => { if (response.success) { let result = response.actions; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/agents.js b/src/commands/agents.js index 1d6a0b30..ddb934d6 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -86,7 +86,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.agents; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 737535ba..4dfa4614 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -61,7 +61,7 @@ module.exports.ListResourcesCommand = class { client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, transformedFilter, transformedSort) .then((response) => { if (response.success === false) throw response; - printExtendedLogs('LIMIT', response.data, options); + printExtendedLogs(response.data, options); if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); } else { @@ -205,7 +205,7 @@ module.exports.ListAssessmentCommand = class { .then((response) => { if (response.success === false) throw response; let result = response.data; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index acaa35fd..0314603d 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -45,7 +45,7 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { const filterParam = (options.filter || '{}').replace(/"/g, '\''); const response = await cli.listCampaigns(options.project || profile.project, profile.token, filterParam, options.limit, options.skip, sortParam); let result = response; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -234,7 +234,7 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { cli.listMissions(options.project || profile.project, profile.token, campaign, filterParam, options.limit, options.skip, sortParam).then((response) => { if (response.success === false) throw response; let data = Object.values(response.data); - printExtendedLogs('LIMIT', data, options); + printExtendedLogs(data, options); if (options.json) { if (options.query) data = filterObject(data, options); printSuccess(JSON.stringify(data, null, 2), options); diff --git a/src/commands/connections.js b/src/commands/connections.js index 0e8a39f0..cd006454 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -48,7 +48,7 @@ module.exports.ListConnections = class ListConnections { if (response.success) { let result = response.result.connections; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -213,7 +213,7 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { if (response.success) { let result = response.result.connectionTypes; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 6b2d788c..887cd04c 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -47,7 +47,7 @@ class ListExperiments { exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let { result } = response; - printExtendedLogs('LIMIT', result.experiments, options); + printExtendedLogs(result.experiments, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -146,7 +146,7 @@ class ListRuns { if (response.success) { let { result } = response; - printExtendedLogs('LIMIT', result.runs, options); + printExtendedLogs(result.runs, options); if (options.json) { if (options.query) result = filterObject(result.runs, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/models.js b/src/commands/models.js index 42b45518..33ea9713 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -92,7 +92,7 @@ module.exports.ListModelsCommand = class ListModelsCommand { if (response.success) { let result = response.models; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -135,7 +135,7 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { if (response.success) { let result = response.runs; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/projects.js b/src/commands/projects.js index 1812e348..1e5db9c9 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -74,7 +74,7 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { const filterParam = (options.filter || '{}').replace(/"/g, '\''); const response = await cli.listProjects(profile.token, filterParam, options.limit, options.skip, sortParam); let result = response; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/skills.js b/src/commands/skills.js index 4fff92f0..826df3d6 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -122,7 +122,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { }); tableFormat.push({ column: 'Status', field: 'status', width: 30 }); } - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); return printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/types.js b/src/commands/types.js index 44909266..5bcd223d 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -76,7 +76,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { catalog.listTypes(options.project || profile.project, profile.token, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.types; - printExtendedLogs('LIMIT', result, options); + printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/utils.js b/src/commands/utils.js index 94395557..44706c65 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -26,6 +26,7 @@ const os = require('os'); const path = require('path'); const yaml = require('js-yaml'); const { exec } = require('child_process'); +const { ALLOWED_QUERY_FIELDS } = require('../constants'); const MAX_NAME_LENGTH = 20; @@ -43,18 +44,21 @@ module.exports.constructError = (error) => { errorText = error.message; } let details; - + let respCode; // if JSON was returned, look for either a message or error in it try { const resp = errResp ? JSON.parse(errorText) : {}; + respCode = resp.code; if (resp.message || resp.error) errorText = resp.message || resp.error; // eslint-disable-next-line prefer-destructuring details = resp.details; } catch (e) { // Guess it wasn't JSON! } + // todo make figuring out the status code more consistent? this might be a holdover from request vs got? + const status = _.get(errResp, 'statusCode') || respCode || error.code || error.status || ''; return { - success: false, message: errorText, details, status: error.status || error.code || _.get(errResp, 'statusCode') || '', + success: false, message: errorText, details, status, }; }; @@ -74,16 +78,18 @@ module.exports.printWarning = (message, options) => { } }; -module.exports.printError = (message, options, exit = true) => { +function printError(message, options, exit = true) { if (!options || options.color === 'on') { console.error(chalk.red(message)); } else { console.error(message); } - if (exit) { + // Don't exit when testing as this breaks negative unit tests + if (exit && _.toLower(process.env.NODE_ENV) !== 'test') { process.exit(1); } -}; +} +module.exports.printError = printError; module.exports.filterObject = (obj, options) => { if (options.query) { @@ -93,6 +99,15 @@ module.exports.filterObject = (obj, options) => { return obj; }; +module.exports.filterListObject = (obj, options) => { + const { map, pick, partialRight } = _; + if (options.query) { + debug(`filtering results with query: ${options.query}`); + return map(obj, partialRight(pick, options.query.split(','))); + } + return obj; +}; + // YAML 1.2 parses both yaml & json module.exports.parseObject = (str) => yaml.load(str); @@ -294,8 +309,7 @@ module.exports.deleteFile = deleteFolderRecursive; module.exports.checkProject = (projectId) => { if (_.isEmpty(projectId)) { - console.error(chalk.red('\'project\' is required, please provide using \'cortex configure\' or --project')); - process.exit(1); + printError('\'project\' is required, please provide using \'cortex configure\' or --project'); } }; @@ -310,7 +324,16 @@ module.exports.LISTTABLEFORMAT = [ { column: 'Description', field: 'description', width: 50 }, { column: 'Modified', field: 'updatedAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 25 }, +]; +module.exports.DEPENDENCYTABLEFORMAT = [ + { column: 'Dependency Name', field: 'name', width: 60 }, + { column: 'Dependency Type', field: 'type', width: 40 }, +]; + +module.exports.OPTIONSTABLEFORMAT = [ + { column: 'Option Type', field: 'type', width: 20 }, + { column: 'Message', field: 'message', width: 120 }, ]; module.exports.RUNTABLEFORMAT = [ @@ -319,6 +342,26 @@ module.exports.RUNTABLEFORMAT = [ { column: 'Took', field: 'took', width: 50 }, { column: 'Modified', field: '_updatedAt', width: 26 }, ]; +module.exports.SESSIONTABLEFORMAT = [ + { column: 'Session ID', field: 'sessionId', width: 45 }, + { column: 'TTL', field: 'ttl', width: 15 }, + { column: 'Description', field: 'description', width: 70 }, +]; + +module.exports.isNumeric = (value) => /^-?\d+$/.test(value); + +module.exports.CONNECTIONTABLEFORMAT = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Description', field: 'description', width: 50 }, + { column: 'Connection Type', field: 'connectionType', width: 25 }, + { column: 'Created On', field: 'createdAt', width: 26 }, +]; + +module.exports.EXTERNALROLESFORMAT = [ + { column: 'Group', field: 'group' }, + { column: 'Roles', field: 'roles' }, +]; module.exports.generateNameFromTitle = (title) => title.replace(specialCharsExceptHyphen, '') .replace(space, '-') @@ -329,7 +372,7 @@ module.exports.generateNameFromTitle = (title) => title.replace(specialCharsExce module.exports.hasUppercase = (s) => /[A-Z]/.test(s); -module.exports.validateName = (name) => (space.test(name) +module.exports.validateName = (name) => (space.test(name) || specialCharsExceptHyphen.test(name) || beginAndEndWithHyphen.test(name) || (name && name.length > MAX_NAME_LENGTH) @@ -342,3 +385,73 @@ module.exports.validateName = (name) => (space.test(name) status: true, message: '', }); + +module.exports.handleTable = (spec, data, transformer, noDataMessage) => { + if (!data || data.length === 0) { + this.printSuccess(noDataMessage); + } else { + this.printTable(spec, data, transformer); + } +}; + +// Todo: move to cortex-express-common FAB-4008 +module.exports.validateOptions = (options, type) => { + const { + filter, limit, skip, sort, + } = options; + const errorDetails = []; + if (filter) { + try { + const filterObj = JSON.parse(filter); + const filterKeys = Object.keys(filterObj); + if (typeof (filterObj) !== 'object') { + errorDetails.push({ type: 'filter', message: 'Invalid filter expression' }); + } + if (type && (_.intersection(ALLOWED_QUERY_FIELDS[type].filter, filterKeys)).length !== filterKeys.length) { + errorDetails.push({ type: 'filter', message: `Invalid filter params. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].filter}` }); + } + } catch (err) { + errorDetails.push({ type: 'filter', message: `Invalid filter expression: ${err.message}` }); + } + } + if (sort) { + try { + const sortObj = JSON.parse(sort); + const sortKeys = Object.keys(sortObj); + const sortValues = Object.values(sortObj); + if (typeof (sortObj) !== 'object') { + errorDetails.push({ type: 'sort', message: 'Invalid sort expression' }); + } + if (!sortValues.every((val) => Number(val) === 1 || Number(val) === -1)) { + errorDetails.push({ type: 'sort', message: 'Sort values can only be 1(ascending) or -1(descending)' }); + } + if (type && (_.intersection(ALLOWED_QUERY_FIELDS[type].sort, sortKeys)).length !== sortKeys.length) { + errorDetails.push({ type: 'sort', message: `Invalid sort params. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].sort}` }); + } + } catch (err) { + // check if a string of 'asc' or 'desc' is provided for backwards compatibility + if (!(_.lowerCase(sort).startsWith('desc') || _.lowerCase(sort).startsWith('asc'))) { + errorDetails.push({ type: 'sort', message: `Invalid sort expression: ${err.message}` }); + } + } + } + if ((limit && _.isNaN(Number(limit))) || Number(limit) <= 0) { + errorDetails.push({ type: 'limit', message: 'Invalid limit, limit should be a valid positive number' }); + } + if ((skip && _.isNaN(Number(skip))) || Number(skip) < 0) { + errorDetails.push({ type: 'skip', message: 'Invalid skip, skip should be a valid non negative number' }); + } + if (errorDetails.length) { + return { validOptions: false, errorDetails }; + } + return { + validOptions: true, errorDetails, + }; +}; + +module.exports.printExtendedLogs = (data, options) => { + if (options.limit && Array.isArray(data) && data.length === Number(options.limit)) { + // don't log if showing all the results + console.log(`Results limited to ${options.limit} rows`); + } +}; diff --git a/src/constants.js b/src/constants.js index 9627b96a..3ed832ff 100644 --- a/src/constants.js +++ b/src/constants.js @@ -70,10 +70,10 @@ module.exports.DEFAULT_LIST_LIMIT_COUNT = '20'; module.exports.DEFAULT_LIST_SKIP_COUNT = '0'; -module.exports.DEFAULT_LIST_SORT_PARAMS = [ - 'updatedAt', // skills, agents, actions, connections, models, experiments, types, - '_updatedAt', // projects, missions, campaigns, run, assessment, snapshot - 'start', // activations -]; +module.exports.DEFAULT_LIST_SORT_PARAMS = { + updatedAt: 'updatedAt', // skills, agents, actions, connections, models, experiments, types, + _updatedAt: '_updatedAt', // projects, missions, campaigns, run, assessment, snapshot + start: 'start', // activations +}; module.exports.GET_DEFAULT_SORT_CLI_OPTION = (param) => JSON.stringify({ [param]: -1 }); diff --git a/test/listComponentOptions.js b/test/listComponentOptions.js index 826212be..4ae204f8 100644 --- a/test/listComponentOptions.js +++ b/test/listComponentOptions.js @@ -35,7 +35,7 @@ describe('List model command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); assert.ok(validOptions === true, 'Valid options'); @@ -44,7 +44,7 @@ describe('List model command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); assert.ok(validOptions === false, 'Invalid options'); @@ -86,7 +86,7 @@ describe('List experiments command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); assert.ok(validOptions === true, 'Valid options'); @@ -95,7 +95,7 @@ describe('List experiments command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); assert.ok(validOptions === false, 'Invalid options'); @@ -137,7 +137,7 @@ describe('List runs command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'RUN'); assert.ok(validOptions === true, 'Valid options'); @@ -146,7 +146,7 @@ describe('List runs command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'RUN'); assert.ok(validOptions === false, 'Invalid options'); @@ -188,7 +188,7 @@ describe('List actions command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); assert.ok(validOptions === true, 'Valid options'); @@ -197,7 +197,7 @@ describe('List actions command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); assert.ok(validOptions === false, 'Invalid options'); @@ -239,7 +239,7 @@ describe('List agents command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); assert.ok(validOptions === true, 'Valid options'); @@ -248,7 +248,7 @@ describe('List agents command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); assert.ok(validOptions === false, 'Invalid options'); @@ -290,7 +290,7 @@ describe('List skill command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); assert.ok(validOptions === true, 'Valid options'); @@ -299,7 +299,7 @@ describe('List skill command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); assert.ok(validOptions === false, 'Invalid options'); @@ -341,7 +341,7 @@ describe('List types command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); assert.ok(validOptions === true, 'Valid options'); @@ -350,7 +350,7 @@ describe('List types command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); assert.ok(validOptions === false, 'Invalid options'); @@ -392,7 +392,7 @@ describe('List snapshot command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); assert.ok(validOptions === true, 'Valid options'); @@ -401,7 +401,7 @@ describe('List snapshot command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); assert.ok(validOptions === false, 'Invalid options'); @@ -443,7 +443,7 @@ describe('List assessments command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); assert.ok(validOptions === true, 'Valid options'); @@ -452,7 +452,7 @@ describe('List assessments command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); assert.ok(validOptions === false, 'Invalid options'); @@ -525,7 +525,7 @@ describe('List connections command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); assert.ok(validOptions === true, 'Valid options'); @@ -534,7 +534,7 @@ describe('List connections command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); assert.ok(validOptions === false, 'Invalid options'); @@ -607,7 +607,7 @@ describe('List campaigns command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); assert.ok(validOptions === true, 'Valid options'); @@ -616,7 +616,7 @@ describe('List campaigns command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); assert.ok(validOptions === false, 'Invalid options'); @@ -658,7 +658,7 @@ describe('List missions command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); assert.ok(validOptions === true, 'Valid options'); @@ -667,7 +667,7 @@ describe('List missions command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); assert.ok(validOptions === false, 'Invalid options'); @@ -709,7 +709,7 @@ describe('List projects command option check', () => { it('should support default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[1]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); assert.ok(validOptions === true, 'Valid options'); @@ -718,7 +718,7 @@ describe('List projects command option check', () => { it('should fail on unsupported default sort params', () => { const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS[0]), + sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), }; const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); assert.ok(validOptions === false, 'Invalid options'); diff --git a/test/funtionsTest.js b/test/testUtils.js similarity index 66% rename from test/funtionsTest.js rename to test/testUtils.js index ff929769..5f61da09 100644 --- a/test/funtionsTest.js +++ b/test/testUtils.js @@ -5,6 +5,7 @@ const sinon = require('sinon'); const { handleTable, + printExtendedLogs, } = require('../src/commands/utils'); const { stripAnsi } = require('./utils'); @@ -65,3 +66,43 @@ describe('Handle table function test', () => { ); }); }); + +describe('Test printExtendedLogs function', () => { + let printSpy; + const data = [ + { key1: 'val1' }, + { key2: 'val2' }, + { key3: 'val3' }, + { key4: 'val4' }, + ]; + const limit = 5; + before(() => { + restore = mockedEnv({}); + }); + + beforeEach(() => { + printSpy = sinon.spy(console, 'log'); + }); + + afterEach(() => { + printSpy.restore(); + }); + + after(() => { + restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + it('should print the result limited message if data length is equal to limit value', () => { + printExtendedLogs([...data, { key5: 'val5' }], { limit }); + expect(getPrintedLines()).to.eql([`Results limited to ${limit} rows`]); + }); + + it('should not print the result limited message if data length is less than limit value', () => { + printExtendedLogs(data, { limit }); + expect(getPrintedLines()).to.eql([]); + }); +}); From 6252cba5792bea3cfd1d09f60ad0226b7f4407a4 Mon Sep 17 00:00:00 2001 From: Johan Gielstra Date: Wed, 4 May 2022 17:29:18 -0500 Subject: [PATCH 688/864] FAB-1213 Options requiring a value should fail is value not provided, remove configure related stack traces Tweak boolean options Dedup header code and use defaultHeaders() function, fix placement of user-agent header Fix --parmsFile => --paramsFile make --color [boolean] still accepts on/off --- .gitignore | 5 +- bin/cortex-actions.js | 87 ++++++---------- bin/cortex-agents.js | 149 +++++++++++++-------------- bin/cortex-assessments.js | 104 +++++++++---------- bin/cortex-campaigns.js | 58 +++++------ bin/cortex-configure.js | 24 ++--- bin/cortex-connections.js | 53 +++++----- bin/cortex-content.js | 32 +++--- bin/cortex-deploy.js | 32 +++--- bin/cortex-docker.js | 8 +- bin/cortex-experiments.js | 94 +++++++++-------- bin/cortex-generate.js | 2 +- bin/cortex-missions.js | 48 +++++---- bin/cortex-models.js | 91 +++++++--------- bin/cortex-projects.js | 36 +++---- bin/cortex-roles.js | 46 ++++----- bin/cortex-secrets.js | 30 +++--- bin/cortex-sessions.js | 30 +++--- bin/cortex-skills.js | 69 ++++++------- bin/cortex-tasks.js | 28 ++--- bin/cortex-types.js | 32 +++--- bin/cortex-users.js | 26 ++--- bin/cortex-workspaces.js | 34 +++--- bin/cortex.js | 42 ++++---- package-lock.json | 11 ++ package.json | 1 + src/client/actions.js | 23 ++--- src/client/agents.js | 32 +++--- src/client/apiServerClient.js | 5 +- src/client/apiutils.js | 12 +++ src/client/assessments.js | 46 +++------ src/client/catalog.js | 101 ++++++------------ src/client/connections.js | 19 ++-- src/client/content.js | 20 ++-- src/client/experiments.js | 37 +++---- src/client/info.js | 7 +- src/client/models.js | 24 ++--- src/client/roles.js | 49 +++------ src/client/secrets.js | 16 ++- src/client/sessions.js | 18 ++-- src/client/tasks.js | 16 ++- src/client/users.js | 28 ++--- src/commands/campaigns.js | 9 +- src/commands/configure.js | 4 +- src/commands/skills.js | 2 +- src/commands/utils.js | 32 +++--- src/commands/workspaces/configure.js | 4 +- src/compatibility.js | 4 +- src/config.js | 6 +- test/configure.js | 7 +- 50 files changed, 756 insertions(+), 937 deletions(-) diff --git a/.gitignore b/.gitignore index 7ac20a3d..3fa61d0f 100644 --- a/.gitignore +++ b/.gitignore @@ -97,5 +97,8 @@ test/cortex/local.json dist/ cortex-cli-docs.md - *.code-workspace +package/ +*.tgz +npm-shrinkwrap.json +*.amp diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 75adbaac..07f40c9c 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -26,18 +26,8 @@ const { DescribeActionCommand, DeleteActionCommand, DeployActionCommand, - // TODO re-add logs/task calls - // GetLogsCommand, - // JobTaskListActionCommand, - // TaskCancelActionCommand, - // TaskLogsActionCommand, - // TaskStatsActionCommand, - // TaskStatusActionCommand, } = require('../src/commands/actions'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, - GET_DEFAULT_SORT_CLI_OPTION, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); program.name('cortex actions'); program.description('Work with Cortex Actions'); @@ -48,15 +38,15 @@ program .description('List the deployed actions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .option('--query ', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--filter ', 'A Mongo style filter to use.') + .option('--limit ', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip ', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort ', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); @@ -71,10 +61,10 @@ program .alias('get') .description('Describe an action') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') + .option('--query ', 'A JMESPath query to use in filtering the response data.') .option('-d, --download', 'Download code binary in response') .action(withCompatibilityCheck((actionName, options) => { try { @@ -89,9 +79,9 @@ program .command('delete ') .description('Delete an action') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .action(withCompatibilityCheck((actionName, options) => { try { new DeleteActionCommand(program).execute(actionName, options); @@ -100,43 +90,26 @@ program } })); -// // Get logs Action -// program -// .command('logs ') -// .description('Get logs for an action') -// .option('--no-compat', 'Ignore API compatibility checks') -// .option('--json', 'Return raw JSON response') -// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') -// .option('--profile [profile]', 'The profile to use') -// .option('--project [project]', 'The project to use') -// .action(withCompatibilityCheck((actionName, options) => { -// try { -// new GetLogsCommand(program).execute(actionName, options); -// } catch (err) { -// console.error(chalk.red(err.message)); -// } -// })); - // Deploy Action program - .command('deploy [actionDefinition]') + .command('deploy ') .alias('save') .description('Deploy an action') .storeOptionsAsProperties(false) - .option('--name, --actionName [name]', 'Action name') - .option('--type, --actionType [job/daemon]', 'Type of action') - .option('--cmd [cmd]', 'Command to be executed') // '["--daemon"]' - .option('--image, --docker [image]', 'Docker image to use as the runner') - .option('--environmentVariables [environmentVariables]', 'Docker container environment variables, only used for daemon action types') - .option('--jobTimeout [jobTimeout]', 'Job Timeout in seconds until the job is marked as FAILED (default: no timeout), only used for job action types') - .option('-k, --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill, provide as last option specified or end list of files with "--"') + .option('--name, --actionName ', 'Action name') + .option('--type, --actionType ', 'Type of action') + .option('--cmd ', 'Command to be executed') // '<"--daemon">' + .option('--image, --docker ', 'Docker image to use as the runner') + .option('--environmentVariables ', 'Docker container environment variables, only used for daemon action types') + .option('--jobTimeout ', 'Job Timeout in seconds until the job is marked as FAILED (default: no timeout), only used for job action types') + .option('-k, --k8sResource ', 'Additional kubernetes resources deployed and owned by the skill, provide as last option specified or end list of files with "--"') .option('--no-compat', 'Ignore API compatibility checks') - .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') - .option('--port [port]', 'Docker port, only used for daemon action types') // '9091' - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--scaleCount [count]', 'Scale count, only used for daemon action types') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--podspec ', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('--port ', 'Docker port, only used for daemon action types') // '9091' + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') + .option('--scaleCount ', 'Scale count, only used for daemon action types') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('-y, --yaml', 'Use YAML format') .action(withCompatibilityCheck((actionName, options) => { diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 0e060900..db745299 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -20,10 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, - GET_DEFAULT_SORT_CLI_OPTION, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { CreateAgentSnapshotCommand, @@ -49,9 +46,9 @@ program .command('save ') .description('Save an agent definition') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') .action(withCompatibilityCheck((agentDefinition, options) => { try { @@ -67,15 +64,15 @@ program .description('List agent definitions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .option('--query ', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--filter ', 'A Mongo style filter to use.') + .option('--limit ', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip ', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort ', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); @@ -89,8 +86,8 @@ program .command('deploy ') .description('Deploy the agent resource to the cluster') .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .action(withCompatibilityCheck((agentNames, options) => { try { new DeployAgentCommand(program).execute(agentNames, options); @@ -105,10 +102,10 @@ program .description('Describe agent') .alias('get') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') + .option('--query ', 'A JMESPath query to use in filtering the response data.') .option('--versions', 'To get list of versions of an agent') .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((agentName, options) => { @@ -124,11 +121,11 @@ program .command('invoke ') .description('Invoke an agent service') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--params [params]', 'JSON params to send to the action') - .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') + .option('--params ', 'JSON params to send to the action') + .option('--params-file ', 'A file containing either JSON or YAML formatted params') .option('--sync', 'Invoke the agent synchronously') .action(withCompatibilityCheck((agentName, serviceName, options) => { try { @@ -142,13 +139,13 @@ program .command('get-activation ') .description('Get dataset or service activation') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--json', 'Output results as JSON') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .option('--verbose', 'Get debugging info in activation response') .option('--report', 'Get additional debugging info in activation response') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--query ', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { new GetActivationCommand(program).execute(activationId, options); @@ -162,23 +159,23 @@ program .command('list-activations') .description('List activations for an agent') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--agentName [string]', 'Query activations by agentName') - .option('--skillName [string]', 'Query activations by skillName') - .option('--startBefore [timestamp]', 'Filters activations to include those that started before the specified timestamp.') - .option('--startAfter [timestamp]', 'Filters activations to include those that started after the specified timestamp.') - .option('--endBefore [timestamp]', 'Filters activations to include those that ended before the specified timestamp.') - .option('--endAfter [timestamp]', 'Filters activations to include those that ended after the specified timestamp.') - .option('--correlationId [string]', 'Query activations with same correlationId') - .option('--status [status]', 'Filters activations by status [complete|error].') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [asc|desc]', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) - .option('--filter [filter]', 'A Mongo style filter to use.') + .option('--query ', 'A JMESPath query to use in filtering the response data.') + .option('--agentName ', 'Query activations by agentName') + .option('--skillName ', 'Query activations by skillName') + .option('--startBefore ', 'Filters activations to include those that started before the specified timestamp.') + .option('--startAfter ', 'Filters activations to include those that started after the specified timestamp.') + .option('--endBefore ', 'Filters activations to include those that ended before the specified timestamp.') + .option('--endAfter ', 'Filters activations to include those that ended after the specified timestamp.') + .option('--correlationId ', 'Query activations with same correlationId') + .option('--status ', 'Filters activations by status [complete|error].') + .option('--limit ', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip ', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort ', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') + .option('--filter ', 'A Mongo style filter to use.') .action(withCompatibilityCheck((options) => { try { new ListActivationsCommand(program).execute(options); @@ -191,15 +188,15 @@ program .command('list-services ') .description('List agent service endpoints') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--skip [skip]', 'Move the result cursor to this position before returning results.') - .option('--limit [limit]', 'Limit the number of rows returned') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--query ', 'A JMESPath query to use in filtering the response data.') + .option('--skip ', 'Move the result cursor to this position before returning results.') + .option('--limit ', 'Limit the number of rows returned') + .option('--filter ', 'A Mongo style filter to use.') + .option('--sort ', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((agentName, options) => { try { @@ -214,8 +211,8 @@ program .command('undeploy ') .description('Undeploy the agent resource from the cluster') .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .action(withCompatibilityCheck((agentNames, options) => { try { new UndeployAgentCommand(program).execute(agentNames, options); @@ -228,15 +225,15 @@ program .command('list-snapshots ') .description('List agent snapshots') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .option('--query ', 'A JMESPath query to use in filtering the response data.') + .option('--filter ', 'A Mongo style filter to use.') + .option('--limit ', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip ', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort ', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); @@ -250,9 +247,9 @@ program .alias('get-snapshot') .description('Describe agent snapshot') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') .option('-o, --output ', 'Format output as yaml or k8s resources') .action(withCompatibilityCheck((snapshotId, options) => { try { @@ -264,14 +261,14 @@ program // Create Agent Snapshot program - .command('create-snapshot [snapshotDefinition]') + .command('create-snapshot ') .description('Create an agent snapshot') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--agentName [name[:version]]', 'The name of the agent to snapshot') - .option('--title [title]', 'A descriptive title for the snapshot') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile ', 'The profile to use') + .option('--project ', 'The project to use') + .option('--agentName ', 'The name of the agent to snapshot') + .option('--title ', 'A descriptive title for the snapshot') .action(withCompatibilityCheck((snapshotDefinition, options) => { try { new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); @@ -285,9 +282,9 @@ program .command('delete <agentName>') .description('Delete an agent') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((agentName, options) => { try { new DeleteAgentCommand(program).execute(agentName, options); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 92f6d2c8..bd6b8b07 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -33,9 +33,7 @@ const { ExportAssessmentReportCommand, DependencyTreeCommand, } = require('../src/commands/assessments'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); program.name('cortex assessments'); program.description('Work with Cortex Assessments'); @@ -44,10 +42,10 @@ program .command('list-types') .description('List Cortex resource types') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListResourceTypesCommand(program).execute(options); @@ -60,12 +58,12 @@ program .command('dependency-tree [dependencyFile]') .description('Dependencies of a resource or find missing ones from dependencyFile') .storeOptionsAsProperties(false) - .requiredOption('--scope [project]', 'project name of the resource') - .option('--name [Cortex component name]', 'Cortex component name', ' ') - .option('--type [Cortex component type]', 'Cortex resource type', ' ') + .requiredOption('--scope <project>', 'project name of the resource') + .option('--name <Cortex component name>', 'Cortex component name', ' ') + .option('--type <Cortex component type>', 'Cortex resource type', ' ') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('--json', 'Output results using JSON') .option('--missing [boolean]', 'Filter only missing dependencies') .action(withCompatibilityCheck((dependencyFile, options) => { @@ -80,17 +78,17 @@ program .command('list-resources') .description('List matching resources') .storeOptionsAsProperties(false) - .option('--scope [projects]', 'Assessment scope projects (comma separated values)') - .option('--name [Cortex component name]', 'Cortex component name (case insensitive regex/substring match)') - .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') + .option('--scope <projects>', 'Assessment scope projects (comma separated values)') + .option('--name <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') + .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('--json', 'Output results using JSON') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListResourcesCommand(program).execute(options); @@ -100,19 +98,19 @@ program })); program - .command('create [assessmentDefinition]') + .command('create <assessmentDefinition>') .alias('save') .description('Create an assessment. Do `list-resources` and `list-types` to select component and type') .storeOptionsAsProperties(false) - .option('--name [name]', 'Assessment name') - .option('--title [title]', 'Assessment title') - .option('--description [description]', 'Assessment description') - .option('--scope [projects]', 'Assessment scope projects (comma separated values)') - .option('--component [Cortex component name]', 'Cortex component name (case insensitive regex/substring match)') - .option('--type [Cortex component types]', 'Assessment scope component types (comma separated values)') + .option('--name <name>', 'Assessment name') + .option('--title <title>', 'Assessment title') + .option('--description <description>', 'Assessment description') + .option('--scope <projects>', 'Assessment scope projects (comma separated values)') + .option('--component <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') + .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') .option('--overwrite [boolean]', 'Overwrite existing assessment, if exists') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('-y, --yaml', 'Use YAML format') .action(withCompatibilityCheck((assessmentDefinition, options) => { try { @@ -126,17 +124,17 @@ program .command('list') .description('List assessments') .alias('l') - .option('--skip [Skip records for pagination]', 'Skip records for pagination') - .option('--limit [Limit records for pagination]', 'Limit records for pagination') + .option('--skip <Skip records for pagination>', 'Skip records for pagination') + .option('--limit <Limit records for pagination>', 'Limit records for pagination') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { @@ -151,8 +149,8 @@ program .alias('get') .description('Describe the assessment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((assessmentName, options) => { try { new DescribeAssessmentCommand(program).execute(assessmentName, options); @@ -165,8 +163,8 @@ program .command('delete <assessmentName>') .description('Delete the assessment and its generated reports') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((assessmentName, options) => { try { new DeleteAssessmentCommand(program).execute(assessmentName, options); @@ -179,8 +177,8 @@ program .command('report <assessmentName>') .description('Run report generation of the assessment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((assessmentName, options) => { try { new RunAssessmentCommand(program).execute(assessmentName, options); @@ -192,11 +190,11 @@ program program .command('report-list <assessmentName>') .description('Lists reports of the assessment') - .option('--skip [Skip records for pagination]', 'Skip records for pagination') - .option('--limit [Limit records for pagination]', 'Limit records for pagination') + .option('--skip <Skip records for pagination>', 'Skip records for pagination') + .option('--limit <Limit records for pagination>', 'Limit records for pagination') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('--json', 'Output results using JSON') .action(withCompatibilityCheck((assessmentName, options) => { try { @@ -210,8 +208,8 @@ program .command('report-get <assessmentName> <reportId>') .description('Get report of the assessment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('--json', 'Output results using JSON') .action(withCompatibilityCheck((assessmentName, reportId, options) => { try { @@ -225,10 +223,10 @@ program .command('report-export <assessmentName> <reportId>') .description('Export report of the assessment') .storeOptionsAsProperties(false) - .option('--type [Cortex component types]', 'Component types to export (comma separated values)') + .option('--type <Cortex component types>', 'Component types to export (comma separated values)') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((assessmentName, reportId, options) => { try { new ExportAssessmentReportCommand(program).execute(assessmentName, reportId, options); diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 182e5338..fe563998 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -20,9 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { ListCampaignsCommand, @@ -42,15 +40,15 @@ program .description('List Campaigns') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListCampaignsCommand(program).execute(options); @@ -65,10 +63,10 @@ program .alias('get') .description('Describe Campaign') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((campaignName, options) => { try { new DescribeCampaignCommand(program).execute(campaignName, options); @@ -81,14 +79,14 @@ program .command('export <campaignName>') .description('Export Campaign Archive') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--deployable [boolean]', 'Export only deployable missions', true) - .option('--o [output]', 'Export file name') - .action(withCompatibilityCheck((campaignName, options) => { + .option('--o <output>', 'Export file name') + .action(withCompatibilityCheck(async (campaignName, options) => { try { - new ExportCampaignCommand(program).execute(campaignName, options); + await new ExportCampaignCommand(program).execute(campaignName, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -98,9 +96,9 @@ program .command('import <campaignExportFilepath>') .description('Import Campaign Archive') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--deploy [boolean]', 'Set missions status Ready To Deploy', true) .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) .action(withCompatibilityCheck((campaignName, options) => { @@ -115,9 +113,9 @@ program .command('deploy <campaignName>') .description('Deploy Campaign') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, options) => { try { new DeployCampaignCommand(program).execute(campaignName, options); @@ -130,9 +128,9 @@ program .command('undeploy <campaignName>') .description('Undeploy Campaign') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, options) => { try { new UndeployCampaignCommand(program).execute(campaignName, options); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index ec3ec537..d625c13c 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -31,9 +31,9 @@ program.description('Configure cortex connection profiles'); program.command('create', { isDefault: true }) .description('Authenticate to cortex (default command)') - .option('--file [file]', 'Personal access config file location') - .option('--profile [profile]', 'The profile to configure', 'default') - .option('--project [project]', 'The default project') + .option('--file <file>', 'Personal access config file location') + .option('--profile <profile>', 'The profile to configure', 'default') + .option('--project <project>', 'The default project') .action(async (options, command) => { try { await new ConfigureCommand(command).execute(options); @@ -45,10 +45,10 @@ program.command('create', { isDefault: true }) program .command('token') .description('Create access token') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .action(async (options) => { try { await new GetAccessToken(program).execute(options); @@ -61,7 +61,7 @@ program .command('list') .description('List configured profiles') .alias('l') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .action(async (options) => { await new ListProfilesCommand(program).execute(options); }); @@ -69,7 +69,7 @@ program program .command('describe <profileName>') .alias('get') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .description('Describe a configured profile') .action(async (profileName, options) => { await new DescribeProfileCommand(program).execute({ profile: profileName, ...options }); @@ -77,9 +77,9 @@ program program .command('env') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') .description('Print cortex environment variables') .action(async (options) => { await new PrintEnvVars(program).execute(options); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 97d0d7e1..93c2269a 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -20,9 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { ListConnections, @@ -41,14 +39,15 @@ program .description('List connections definitions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); @@ -62,9 +61,9 @@ program .command('save <connectionDefinition>') .description('Save a connections definition. Takes JSON file by default.') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') .action(withCompatibilityCheck((connDefinition, options) => { try { @@ -80,10 +79,10 @@ program .alias('get') .description('Describe connection') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((connectionName, options) => { try { new DescribeConnectionCommand(program).execute(connectionName, options); @@ -97,14 +96,14 @@ program .command('list-types') .description('List connections types') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.') + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListConnectionsTypes(program).execute(options); @@ -118,9 +117,9 @@ program .command('delete <connectionName>') .description('Delete a connection') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((connectionName, options) => { try { new DeleteConnectionCommand(program).execute(connectionName, options); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 02e203c6..c1280954 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -37,12 +37,12 @@ program .description('List content') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--prefix [prefix]', 'Filter contents with the given prefix.') + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--prefix <prefix>', 'Filter contents with the given prefix.') .action(withCompatibilityCheck((options) => { try { new ListContent(program).execute(options); @@ -59,11 +59,11 @@ program .option('--test', 'Show what would be uploaded along with file size') .option('--recursive', 'Recursively walk <filePath> and prefix each path stored with <contentKey>') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) .action(withCompatibilityCheck((contentKey, filePath, options) => { try { new UploadContent(program).execute(contentKey, filePath, options); @@ -77,9 +77,9 @@ program .command('delete <contentKey>') .description('Delete content') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((contentKey, options) => { try { new DeleteContent(program).execute(contentKey, options); @@ -94,9 +94,9 @@ program .description('Download content') .option('--progress', 'Show download progress') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((contentKey, options) => { try { new DownloadContent(program).execute(contentKey, options); diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index cc1a1f4d..f3e828ca 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -37,9 +37,9 @@ program .command('snapshots <snapshotIds>') .description('Export Agent(s) snapshots(s) for deployment. Provide snapshotIds separated by space, as <"snapshotId1 snapshotId2 ...">') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for snapshot export format') .option('-f, --force', 'Force delete existing exported files') .option('--latestRun [boolean]', 'Export latest run of Experiment(s) if not specified') @@ -55,10 +55,10 @@ program .command('campaign <campaignName>') .description('Export Campaigns for deployment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--deployable', 'Export only ready to deploy Campaigns') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--deployable [boolean]', 'Export only ready to deploy Campaigns', true) .action(withCompatibilityCheck((campaignName, options) => { try { new DeployCampaignCommand(program).execute(campaignName, options); @@ -71,9 +71,9 @@ program .command('connection <connectionName>') .description('Export Connection for deployment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((connectionName, options) => { try { new DeployConnectionCommand(program).execute(connectionName, options); @@ -86,9 +86,9 @@ program .command('skill <skillName>') .description('Export Skill for deployment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') .action(withCompatibilityCheck((skillName, options) => { try { @@ -102,9 +102,9 @@ program .command('experiment <experimentName> [runId]') .description('Export Experiment with Model and Run for deployment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') .action(withCompatibilityCheck((experimentName, runId, options) => { try { diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 478516f4..f5e05e77 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -33,10 +33,10 @@ program .command('login') .description('Docker login to the Cortex registry with your jwt token') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--ttl [time]', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '14d') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '14d') .action(withCompatibilityCheck((options) => { try { new DockerLoginCommand(program).execute(options); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 923cff7d..88d933a7 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -20,9 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { ListExperiments, @@ -46,16 +44,16 @@ program .description('Find experiments') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--model [model]', 'The model to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--model <model>', 'The model to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListExperiments(program).execute(options); @@ -70,10 +68,10 @@ program .description('Describe experiment') .alias('get') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((experimentName, options) => { try { new DescribeExperimentCommand(program).execute(experimentName, options); @@ -87,9 +85,9 @@ program .command('delete <experimentName>') .description('Delete an experiment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((experimentName, options) => { try { new DeleteExperimentCommand(program).execute(experimentName, options); @@ -103,15 +101,15 @@ program .command('list-runs <experimentName>') .description('Find runs within an experiment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((experimentName, options) => { try { new ListRuns(program).execute(experimentName, options); @@ -126,10 +124,10 @@ program .description('Describe run') .alias('get-run') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DescribeRunCommand(program).execute(experimentName, runId, options); @@ -143,9 +141,9 @@ program .command('delete-run <experimentName> <runId>') .description('Delete run') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DeleteRunCommand(program).execute(experimentName, runId, options); @@ -159,9 +157,9 @@ program .command('download-artifact <experimentName> <runId> <artifactName>') .description('Download artifact from run') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { try { new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); @@ -175,9 +173,9 @@ program .command('save <experimentDefinition>') .description('Save an experiment definition') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for experiment definition format') .action(withCompatibilityCheck((experimentDefinition, options) => { try { @@ -192,9 +190,9 @@ program .command('create-run <runDefinition>') .description('Create run for experiment') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for run definition format') .action(withCompatibilityCheck((runDefinition, options) => { try { @@ -209,11 +207,11 @@ program .command('upload-artifact <experimentName> <runId> <filePath> <artifactKey>') .description('Upload artifact for run') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .option('--chunkSize [int]', 'Number of files to simultaneous upload', 10) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) .action(withCompatibilityCheck((experimentName, runId, filePath, artifactKey, options) => { try { new UploadArtifactCommand(program).execute(experimentName, runId, filePath, artifactKey, options); diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index 4d07e28b..6992c859 100644 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -25,7 +25,7 @@ program.description('Scaffolding Cortex Components [DEPRECATED]'); program .command('skill [skillName] [type]') .description('Generates the structure and top level build script for a skill in current directory') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .action(() => { // deliberately not using withCompatibilityCheck() console.error(chalk.red('Generate command has been superceded by the Workspaces command.')); }); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 7d60be9b..08083fba 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -22,9 +22,7 @@ const program = require('commander'); const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { ListMissionsCommand, @@ -44,14 +42,14 @@ program .description('List Missions of the Campaign') .option('--json', 'Output results using JSON') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); @@ -65,9 +63,9 @@ program .alias('get') .description('Describe the selected Missions of the Campaign') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { new DescribeMissionCommand(program).execute(campaignName, missionName, options); @@ -80,9 +78,9 @@ program .command('deploy <campaignName> <missionName>') .description('Deploy the selected Missions of the Campaign') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { new DeployMissionCommand(program).execute(campaignName, missionName, options); @@ -95,11 +93,11 @@ program .command('invoke <campaignName> <missionName>') .description('Invoke the mission') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--params [params]', 'JSON params to send to the action') - .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--params <params>', 'JSON params to send to the action') + .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { let params = {}; @@ -138,9 +136,9 @@ program .command('undeploy <campaignName> <missionName>') .description('Undeploy the selected Missions of the Campaign') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { new UndeployMissionCommand(program).execute(campaignName, missionName, options); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 1b11b297..1db4c79f 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -30,9 +30,7 @@ const { UpdateModelStatusCommand, ListModelRunsCommand, } = require('../src/commands/models'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); program.name('cortex models'); program.description('Work with Cortex Models'); @@ -43,16 +41,16 @@ program .description('List model definitions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--tags [tags]', 'The tags to use (comma separated values)') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--tags <tags>', 'The tags to use (comma separated values)') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListModelsCommand(program).execute(options); @@ -67,10 +65,10 @@ program .description('Describe model') .alias('get') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((modelName, options) => { try { @@ -85,9 +83,9 @@ program .command('delete <modelName>') .description('Delete a model') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((modelName, options) => { try { new DeleteModelCommand(program).execute(modelName, options); @@ -101,9 +99,9 @@ program .command('save <modelDefinition>') .description('Save a model definition') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for model definition format') .action(withCompatibilityCheck((modelDefinition, options) => { try { @@ -113,33 +111,16 @@ program } })); -// Register Model - -// program -// .command('upload <modelDefinition>') -// .description('Upload a model') -// .option('--no-compat', 'Ignore API compatibility checks') -// .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') -// .option('--profile [profile]', 'The profile to use') -// .option('--project [project]', 'The project to use') -// .option('-y, --yaml', 'Use YAML for model definition format') -// .action(withCompatibilityCheck((modelDefinition, options) => { -// try { -// new RegisterModelCommand(program).execute(modelDefinition, options); -// } catch (err) { -// console.error(chalk.red(err.message)); -// } -// })); - // Publish a Model program .command('publish <modelName>') .description('Publish a model') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for model definition format') - .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .action(withCompatibilityCheck((modelName, options) => { try { new UpdateModelStatusCommand(program).execute(modelName, options, 'publish'); @@ -153,11 +134,11 @@ program .command('unpublish <modelName>') .description('Unpublish a model') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for model definition format') - .option('--content-type [MIME type]', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .action(withCompatibilityCheck((modelName, options) => { try { new UpdateModelStatusCommand(program).execute(modelName, options, 'unpublish'); @@ -171,15 +152,15 @@ program .command('list-runs <modelName>') .description('List model run') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((modelName, options) => { try { new ListModelRunsCommand(program).execute(modelName, options); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index b5128e4d..9a5100a0 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -27,9 +27,7 @@ const { DescribeProjectCommand, DeleteProjectCommand, } = require('../src/commands/projects'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); program.name('cortex projects'); program.description('Work with Cortex Projects'); @@ -40,11 +38,11 @@ program .description('Save a project definition') .storeOptionsAsProperties(false) .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('-n, --name <string>', 'The project name') - .option('-t, --title [string]', 'The project title') - .option('-d, --description [string]', 'The project description') + .option('-t, --title <string>', 'The project title') + .option('-d, --description <string>', 'The project description') .option('-y, --yaml', 'Use YAML for project definition format') .action(withCompatibilityCheck((projectDefinition, options) => { try { @@ -60,14 +58,14 @@ program .description('List project definitions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListProjectsCommand(program).execute(options); @@ -82,9 +80,9 @@ program .alias('get') .description('Describe project') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((projectName, options) => { try { new DescribeProjectCommand(program).execute(projectName, options); @@ -99,8 +97,8 @@ program .alias('d') .description('Delete project') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((projectName, options) => { try { new DeleteProjectCommand(program).execute(projectName, options); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index c5d164e9..4b7fc07f 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -43,9 +43,9 @@ program.command('list') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--json', 'Return raw json') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project', 'Project to list roles for') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'Project to list roles for') .action(withCompatibilityCheck((options) => { try { new RoleListCommand(program).execute(options); @@ -58,8 +58,8 @@ program.command('describe <role>') .alias('get') .description('Describe role grants and users') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('--users', 'List users associated with role') .option('--no-grants', 'Ignore grants associated with role') .action(withCompatibilityCheck((role, options) => { @@ -73,8 +73,8 @@ program.command('describe <role>') program.command('delete <role>') .description('Delete a role and remove grants/assignments') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((role, options) => { try { new RoleDeleteCommand(program).execute(role, options); @@ -86,8 +86,8 @@ program.command('delete <role>') program.command('create <role>') .description('Create a role with the given grant') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .requiredOption('--project <project>', 'Grant project') .requiredOption('--resource <resource>', 'Grant resource') .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') @@ -103,8 +103,8 @@ program.command('create <role>') program.command('grant <role>') .description('Manage grants on an existing role') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .requiredOption('--project <project>', 'Grant project') .requiredOption('--resource <resource>', 'Grant resource') .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') @@ -121,8 +121,8 @@ program.command('grant <role>') program.command('assign <role>') .description('Manage a list of user assignments on a role') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .requiredOption('--users <users...>', 'Users to add/remove to/from a role', nonEmptyStringParser({ message: 'user names must not be empty', variadic: true })) .option('--delete', 'Unassign users from role') .action(withCompatibilityCheck((role, options) => { @@ -136,8 +136,8 @@ program.command('assign <role>') program.command('project <project>') .description('Manage a list of role assignments on a project') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .requiredOption('--roles <roles...>', 'Roles to add/remove on project') .option('--delete', 'Unassign roles from project') .action(withCompatibilityCheck((project, options) => { @@ -152,8 +152,8 @@ program.command('list-external') .description('List external groups') .option('--no-compat', 'Ignore API compatibility checks') .option('--json', 'Output results using JSON') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((options) => { try { new ExternalGroupListCommand(program).execute(options); @@ -166,8 +166,8 @@ program.command('describe-external <externalGroup>') .alias('get') .description('Describe external group roles and users') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .option('--users', 'List users associated with external group') .option('--roles', 'List roles associated with external group') .action(withCompatibilityCheck((externalGroup, options) => { @@ -181,8 +181,8 @@ program.command('describe-external <externalGroup>') program.command('delete-external <externalGroup>') .description('Delete an external group and remove assignments') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((externalGroup, options) => { try { new ExternalGroupDeleteCommand(program).execute(externalGroup, options); @@ -194,8 +194,8 @@ program.command('delete-external <externalGroup>') program.command('assign-external') .description('Manage an external group assignment on a role') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .requiredOption('--role <role>', 'Role to add/remove assignment') .requiredOption('--externalGroup <externalGroup>', 'External group to add/remove on role') .option('--delete', 'Unassign external group from role') diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index a63c3999..4881a113 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -37,11 +37,11 @@ program .description('List secure keys') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--json', 'Output results using JSON') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListSecretsCommand(program).execute(options); @@ -56,10 +56,10 @@ program .alias('get') .description('Retrieve the value stored for the given key.') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--json', 'Output results using JSON') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((keyName, options) => { try { new ReadSecretsCommand(program).execute(keyName, options); @@ -73,11 +73,11 @@ program .command('save <keyName> [value]') .description('Save or overwrite a secure value. By default values are stored as strings but can also be saved as JSON or YAML.') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--data [data]', 'JSON value to save') - .option('--data-file [dataFile]', 'A file containing either JSON or YAML formatted value to save') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--data <data>', 'JSON value to save') + .option('--data-file <dataFile>', 'A file containing either JSON or YAML formatted value to save') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((keyName, value, options) => { try { new WriteSecretsCommand(program).execute(keyName, value, options); @@ -91,9 +91,9 @@ program .command('delete <keyName>') .description('Delete a secret') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((keyName, options) => { try { new DeleteSecretCommand(program).execute(keyName, options); diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index bfdfd7c8..24c58dd8 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -37,12 +37,12 @@ program .description('List session definitions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--limit [limit]', 'Number of sessions to list') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--limit <limit>', 'Number of sessions to list') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListSessionsCommand(program).execute(options); @@ -57,10 +57,10 @@ program .description('Describe session') .alias('get') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((sessionName, options) => { try { @@ -75,9 +75,9 @@ program .command('delete <sessionId>') .description('Delete a session') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((sessionName, options) => { try { new DeleteSessionCommand(program).execute(sessionName, options); @@ -91,9 +91,9 @@ program .command('save <sessionDefinition>') .description('Save a session definition') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for session definition format') .action(withCompatibilityCheck((sessionDefinition, options) => { try { diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index f65cc583..8e8f75c3 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -20,9 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { SaveSkillCommand, @@ -43,8 +41,8 @@ program .command('deploy <skillNames...>') .description('Deploy the skill resource to the cluster') .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (skillNames, options) => { try { await new DeploySkillCommand(program).execute(skillNames, options); @@ -59,11 +57,11 @@ program .alias('get') .description('Describe skill') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resource') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .option('--verbose', 'Verbose output') .action(withCompatibilityCheck(async (skillName, options) => { try { @@ -78,11 +76,12 @@ program .command('invoke <skillName> <inputName>') .description('Invoke a skill') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--params [params]', 'JSON params to send to the action') - .option('--params-file [paramsFile]', 'A file containing either JSON or YAML formatted params') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--params <params>', 'JSON params to send to the action') + .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') + .option('--sync', 'Invoke the skill synchronously') .action(withCompatibilityCheck(async (skillName, inputName, options) => { try { await new InvokeSkillCommand(program).execute(skillName, inputName, options); @@ -97,17 +96,17 @@ program .description('List skill definitions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') .option('--nostatus', 'skip extra call for skill status') .option('--noshared', 'do not list shared skills') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--filter [filter]', 'A Mongo style filter to use.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck(async (options) => { try { @@ -122,10 +121,10 @@ program .command('delete <skillName>') .description('Delete a skill') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--json', 'Output results using JSON') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (skillName, options) => { try { await new DeleteSkillCommand(program).execute(skillName, options); @@ -139,13 +138,13 @@ program .command('save <skillDefinition>') .description('Save a skill definition') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('-k, --k8sResource [file...]', 'Additional kubernetes resources deployed and owned by the skill') - .option('--podspec [podspec]', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill') + .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('-y, --yaml', 'Use YAML for skill definition format') - .option('--scaleCount [count]', 'Scale count, only used for daemon action types') + .option('--scaleCount <count>', 'Scale count, only used for daemon action types') .action(withCompatibilityCheck(async (skillDefinition, options) => { try { await new SaveSkillCommand(program).execute(skillDefinition, options); @@ -159,8 +158,8 @@ program .command('undeploy <skillNames...>') .description('Undeploy the skill resource from the cluster') .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (skillNames, options) => { try { await new UndeploySkillCommand(program).execute(skillNames, options); @@ -174,8 +173,8 @@ program .command('logs <skillName> <actionName>') .description('Get logs of a skill and action') .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') // TODO enable when we want to support tasks // .option('--type [type]', 'The type of action logs to fetch [skill|task]') diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 8de8a0ff..c08bc1b7 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -35,15 +35,15 @@ program .description('List tasks') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--actionName [string]', 'Filter tasks by action name') - .option('--activationId [string]', 'filter tasks by activation id') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--actionName <string>', 'Filter tasks by action name') + .option('--activationId <string>', 'filter tasks by activation id') .option('--json', 'Output results using JSON') - .option('--skillName [string]', 'Filter tasks by skill name') + .option('--skillName <string>', 'Filter tasks by skill name') // This is a client-side sort - .option('--sort [asc|desc]', 'sort tasks by start timestamp ascending (asc) or descending (desc)') + .option('--sort <asc|desc>', 'sort tasks by start timestamp ascending (asc) or descending (desc)') .action(withCompatibilityCheck(async (options) => { try { await new ListTasksCommand(program).execute(options); @@ -57,9 +57,9 @@ program .alias('get') .description('Describe a task') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--k8s', 'Return the full k8sResource in the response') // .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') .action(withCompatibilityCheck((taskName, options) => { @@ -75,8 +75,8 @@ program .command('logs <taskName>') .description('Get logs of a task') .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') // TODO enable when we want to support tasks // .option('--type [type]', 'The type of action logs to fetch [skill|task]') .action(withCompatibilityCheck((taskName, options) => { @@ -92,8 +92,8 @@ program .command('delete <taskName>') .description('Delete a task, if it exists') .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (taskName, options) => { try { await new TaskDeleteCommand(program).execute(taskName, options); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 8bf39490..fa764857 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -20,9 +20,7 @@ const chalk = require('chalk'); const program = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, -} = require('../src/constants'); +const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); const { SaveTypeCommand, @@ -38,9 +36,9 @@ program .command('save <typeDefinition>') .description('Save a type definition') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for type definition format') .action(withCompatibilityCheck((typeDefinition, options) => { try { @@ -56,14 +54,14 @@ program .description('List type definitions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') - .option('--limit [limit]', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip [skip]', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort [sort]', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); @@ -78,10 +76,10 @@ program .alias('get') .description('Describe type') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--project [project]', 'The project to use') - .option('--query [query]', 'A JMESPath query to use in filtering the response data.') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((typeName, options) => { try { new DescribeTypeCommand(program).execute(typeName, options); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index e15e199e..d622d0eb 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -36,9 +36,9 @@ program.command('describe') .alias('get') .description('Describe a users grants and roles') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') - .option('--user [user]', 'The user to describe, self for default') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--user <user>', 'The user to describe, self for default') .option('--roles', 'Include grant inheritance from roles') .action(withCompatibilityCheck((options) => { try { @@ -51,11 +51,11 @@ program.command('describe') program.command('grant <user>') .description('Manage user grants') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .requiredOption('--project <project>', 'Grant project') .requiredOption('--resource <resource>', 'Grant resource') .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') - .option('--profile [profile]', 'The profile to use') + .option('--profile <profile>', 'The profile to use') .option('--delete', 'Remove grant from user') .option('--deny', 'Explicit deny of action(s)') .action(withCompatibilityCheck((user, options) => { @@ -69,8 +69,8 @@ program.command('grant <user>') program.command('project <project>') .description('Manage a list of user assignments on a project') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .requiredOption('--users <users...>', 'Users to add/remove on project') .option('--delete', 'Unassign users from project') .action(withCompatibilityCheck((project, options) => { @@ -84,8 +84,8 @@ program.command('project <project>') program.command('delete <user>') .description('Deletes a service user and disables any existing tokens created by the user') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((user, options) => { try { new UserDeleteCommand(program).execute(user, options); @@ -97,8 +97,8 @@ program.command('delete <user>') program.command('create <user>') .description('Creates a service user (with no assigned roles/grants) that can authenticate with and call Fabric API\'s') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((user, options) => { try { new UserCreateCommand(program).execute(user, options); @@ -112,8 +112,8 @@ program.command('list') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--json', 'Output results using JSON') - .option('--color [on/off]', 'Turn on/off colors for JSON output.', 'on') - .option('--profile [profile]', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((options) => { try { new UserListCommand(program).execute(options); diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 88f4cbef..484f8975 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -34,7 +34,7 @@ program.description('Scaffolding Cortex Components'); program .command('configure') .option('--refresh', 'Refresh the Github access token') - .option('--color [on/off]', 'Turn on/off colors', 'on') + .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Configures the Cortex Template System for generating skill templates') .action((options) => { // deliberately not using withCompatibilityCheck() try { @@ -46,10 +46,10 @@ program program .command('generate [name] [destination]') - .option('--registry [registry]', 'Override the docker registry to publish to') - .option('--color [on/off]', 'Turn on/off colors', 'on') + .option('--registry <registry>', 'Override the docker registry to publish to') + .option('--color [boolean]', 'Turn on/off colors', 'true') .option('--notree', 'Do not display generated file tree', false) - .option('--template [templateName]', 'Name of template to use') + .option('--template <templateName>', 'Name of template to use') .description('Generates a workspace based on a template from the template repository') .action((name, destination, options) => { // deliberately not using withCompatibilityCheck() try { @@ -62,8 +62,8 @@ program program .command('build [folder]') - .option('--color [on/off]', 'Turn on/off colors', 'on') - .option('--skill [skill name]', 'Build only the specified skill') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--skill <skill name>', 'Build only the specified skill') .description('Builds all skills in the workspace, or optionally only the specified skill') .action((folder, options) => { // deliberately not using withCompatibilityCheck() try { @@ -75,9 +75,9 @@ program }); program - .command('publish [folder]') - .option('--color [on/off]', 'Turn on/off colors', 'on') - .option('--skill [skill name]', 'Publish only the specified skill') + .command('publish folder]') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--skill <skill name>', 'Publish only the specified skill') .description('Publishes all skills and resources in the workspace') .action((folder, options) => { // deliberately not using withCompatibilityCheck() try { @@ -93,10 +93,10 @@ program .description('Manage image repositories.'); registry - .command('add [name]') - .option('--color [on/off]', 'Turn on/off colors', 'on') - .option('--url [registry url]', 'Registry URL') - .option('--namespace [registry namespace]', 'Registry Namespace') + .command('add <name>') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--url <registry url>', 'Registry URL') + .option('--namespace <registry namespace>', 'Registry Namespace') .description('Adds an image registry to publish to.') .action((name, options) => { // deliberately not using withCompatibilityCheck() try { @@ -107,8 +107,8 @@ program }); registry - .command('remove [name]') - .option('--color [on/off]', 'Turn on/off colors', 'on') + .command('remove <name>') + .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Removes the specified image registry.') .action((name, options) => { // deliberately not using withCompatibilityCheck() try { @@ -120,7 +120,7 @@ program registry .command('activate [name]') - .option('--color [on/off]', 'Turn on/off colors', 'on') + .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Activates the specified image registry.') .action((name, options) => { // deliberately not using withCompatibilityCheck() try { @@ -132,7 +132,7 @@ program registry .command('list') - .option('--color [on/off]', 'Turn on/off colors', 'on') + .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Lists all image registries') .action((options) => { // deliberately not using withCompatibilityCheck() try { diff --git a/bin/cortex.js b/bin/cortex.js index 5d982fea..0b3b60ef 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -25,28 +25,28 @@ program.name('cortex'); program .version(pkg.version, '-v, --version') .description('Cortex CLI') - .command('actions [cmd]', 'Work with Cortex Actions') - .command('agents [cmd]', 'Work with Cortex Agents') - .command('assessments [cmd]', 'Work with Cortex Impact Assessments') - .command('campaigns [cmd]', 'Work with Cortex Campaigns') + .command('actions <cmd>', 'Work with Cortex Actions') + .command('agents <cmd>', 'Work with Cortex Agents') + .command('assessments <cmd>', 'Work with Cortex Impact Assessments') + .command('campaigns <cmd>', 'Work with Cortex Campaigns') .command('configure', 'Configure the Cortex CLI') - .command('connections [cmd]', 'Work with Cortex Connections') - .command('content [cmd]', 'Work with Cortex Managed Content') - .command('deploy [cmd]', 'Work with Cortex Artifacts export for deployment') - .command('docker [cmd]', 'Work with Docker') - .command('experiments [cmd]', 'Work with Cortex Experiments') - .command('generate [cmd]', 'Scaffold Cortex Components') - .command('workspaces [cmd]', 'Scaffold Cortex Components') - .command('missions [cmd]', 'Work with Cortex Missions') - .command('models [cmd]', 'Work with Cortex Models') - .command('projects [cmd]', 'Work with Cortex Projects') - .command('roles [cmd]', 'Work with a Cortex Roles') - .command('secrets [cmd]', 'Work with Cortex Secrets') - .command('sessions [cmd]', 'Work with Cortex Sessions') - .command('skills [cmd]', 'Work with Cortex Skills') - .command('tasks [cmd]', 'Work with Cortex Tasks') - .command('types [cmd]', 'Work with Cortex Types') - .command('users [cmd]', 'Work with a Cortex Users'); + .command('connections <cmd>', 'Work with Cortex Connections') + .command('content <cmd>', 'Work with Cortex Managed Content') + .command('deploy <cmd>', 'Work with Cortex Artifacts export for deployment') + .command('docker <cmd>', 'Work with Docker') + .command('experiments <cmd>', 'Work with Cortex Experiments') + .command('generate <cmd>', 'Scaffold Cortex Components') + .command('workspaces <cmd>', 'Scaffold Cortex Components') + .command('missions <cmd>', 'Work with Cortex Missions') + .command('models <cmd>', 'Work with Cortex Models') + .command('projects <cmd>', 'Work with Cortex Projects') + .command('roles <cmd>', 'Work with a Cortex Roles') + .command('secrets <cmd>', 'Work with Cortex Secrets') + .command('sessions <cmd>', 'Work with Cortex Sessions') + .command('skills <cmd>', 'Work with Cortex Skills') + .command('tasks <cmd>', 'Work with Cortex Tasks') + .command('types <cmd>', 'Work with Cortex Types') + .command('users <cmd>', 'Work with a Cortex Users'); if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); diff --git a/package-lock.json b/package-lock.json index 2bcecd21..f391c0ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "2.0.12", "license": "Apache-2.0", "dependencies": { + "boolean": "3.2.0", "chalk": "4.1.2", "cli-progress": "3.11.0", "cli-table3": "0.6.2", @@ -1213,6 +1214,11 @@ "readable-stream": "^3.4.0" } }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -7931,6 +7937,11 @@ "readable-stream": "^3.4.0" } }, + "boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", diff --git a/package.json b/package.json index 859fd4de..e1b78557 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { + "boolean": "3.2.0", "chalk": "4.1.2", "cli-progress": "3.11.0", "cli-table3": "0.6.2", diff --git a/src/client/actions.js b/src/client/actions.js index 93396de9..fd42f66b 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -16,9 +16,9 @@ const _ = require('lodash'); const debug = require('debug')('cortex:cli'); // eslint-disable-next-line import/no-unresolved -const { got } = require('./apiutils'); +const { got, defaultHeaders } = require('./apiutils'); const { - constructError, callMe, checkProject, getUserAgent, + constructError, callMe, checkProject, } = require('../commands/utils'); module.exports = class Actions { @@ -49,8 +49,7 @@ module.exports = class Actions { return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: body, }).json() .then((res) => ({ success: true, message: res })) @@ -67,8 +66,7 @@ module.exports = class Actions { if (skip) query.skip = skip; return got .get(this.endpointV4(projectId), { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }).json() .then((actions) => actions) @@ -80,7 +78,7 @@ module.exports = class Actions { const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}`; debug('describeAction(%s) => %s', actionName, endpoint); return got - .get(endpoint, { headers: { Authorization: `Bearer ${token}` } }) + .get(endpoint, { headers: defaultHeaders(token) }) .json() .then((action) => action) .catch((err) => constructError(err)); @@ -91,10 +89,7 @@ module.exports = class Actions { const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(actionName)}/logs`; debug('getLogsAction(%s) => %s', actionName, endpoint); return got - .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) + .get(endpoint, { headers: defaultHeaders(token) }) .json() .then((logs) => { if (_.isArray(logs)) { @@ -112,8 +107,7 @@ module.exports = class Actions { debug('deleteAction(%s) => %s', actionName, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((action) => ({ success: true, action })) @@ -126,8 +120,7 @@ module.exports = class Actions { debug('getConfig() => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((config) => ({ success: true, config })) diff --git a/src/client/agents.js b/src/client/agents.js index 8c628347..b4cf685e 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -15,8 +15,8 @@ */ const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent, checkProject } = require('../commands/utils'); +const { got, defaultHeaders } = require('./apiutils'); +const { constructError, checkProject } = require('../commands/utils'); module.exports = class Agents { constructor(cortexUrl) { @@ -30,24 +30,23 @@ module.exports = class Agents { debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - json: params, + headers: defaultHeaders(token), +json: params, searchParams: { sync }, }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } - invokeSkill(projectId, token, skillName, inputName, params) { + invokeSkill(projectId, token, skillName, inputName, params, sync) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/skillinvoke/${encodeURIComponent(skillName)}/inputs/${inputName}`; debug('invokeSkill(%s, %s) => %s', skillName, inputName, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: params, + searchParams: { sync }, }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -58,8 +57,7 @@ module.exports = class Agents { const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; debug('getActivation(%s) => %s', activationId, endpoint); const opts = { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }; if (verbose) { opts.searchParams = { verbose: true }; @@ -77,10 +75,7 @@ module.exports = class Agents { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/activations`; debug('listActivations(%s) => %s', params.agentName, endpoint); - const opts = { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }; + const opts = { headers: defaultHeaders(token) }; if (params) { opts.searchParams = params; } @@ -104,8 +99,7 @@ module.exports = class Agents { if (skip) query.skip = skip; return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }).json() .then((result) => ({ success: true, result })) @@ -118,8 +112,7 @@ module.exports = class Agents { debug('describeAgentSnapshot(%s) => %s', snapshotId, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { output, deps: true }, }).text() .catch((err) => constructError(err)); @@ -131,8 +124,7 @@ module.exports = class Agents { debug('createAgentSnapshot(%s)=> %s', snapshot, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: snapshot, }).json() .then((result) => ({ success: true, result })) diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index d9dcdc2e..4333e230 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -1,5 +1,6 @@ const _ = require('lodash'); const { GraphQLClient, gql } = require('graphql-request'); +const { defaultHeaders } = require('./apiutils'); module.exports = class ApiServerClient { constructor(cortexUrl) { @@ -9,9 +10,7 @@ module.exports = class ApiServerClient { _client(token) { return new GraphQLClient(this.endpoint, { - headers: { - Authorization: `bearer ${token}`, - }, + headers: defaultHeaders(token), redirect: 'error', }); } diff --git a/src/client/apiutils.js b/src/client/apiutils.js index b621f15d..71e40651 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -1,5 +1,13 @@ const got = require('got'); +const findPackageJson = require('find-package-json'); +const os = require('os'); +const pkg = findPackageJson(__dirname).next().value; +function getUserAgent() { + return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${os.platform()})`; +} + +module.exports.getUserAgent = getUserAgent; module.exports.got = got.extend({ followRedirect: false, hooks: { @@ -14,6 +22,10 @@ module.exports.got = got.extend({ ], }, }); + + +module.exports.defaultHeaders = (token, otherHeaders = {}) => ({ Authorization: `Bearer ${token}`, 'user-agent': getUserAgent(), ...otherHeaders }); + /** * makes a request via superagent. proxy methods will be utilized * if the user (i.e. person running cli commands) has set environment diff --git a/src/client/assessments.js b/src/client/assessments.js index 0793ad8c..ca86ea11 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -17,10 +17,10 @@ const querystring = require('querystring'); const { pipeline } = require('stream'); const { createWriteStream } = require('fs'); const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); +const { got, defaultHeaders } = require('./apiutils'); const { printSuccess } = require('../commands/utils'); const { printError } = require('../commands/utils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { constructError } = require('../commands/utils'); module.exports = class Assessments { constructor(cortexUrl) { @@ -31,10 +31,7 @@ module.exports = class Assessments { getDependenciesOfResource(token, project, type, name, json = null, missing = false) { const url = `${this.endpointApiV4}/tree/${project}/${type}/${encodeURIComponent(name)}?${querystring.stringify({ missing })}`; debug('dependencyTree => %s', url); - const body = { - headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, - 'user-agent': getUserAgent(), - }; + const body = { headers: defaultHeaders(token) }; if (json) { body.json = json; } @@ -57,10 +54,7 @@ module.exports = class Assessments { })}`; debug('queryResources => %s', url); return got - .get(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) + .get(url, { headers: defaultHeaders(token) }) .json() .then((res) => res) .catch((err) => constructError(err)); @@ -70,10 +64,7 @@ module.exports = class Assessments { const url = `${this.endpointV4}/types`; debug('listResourceTypes => %s', url); return got - .get(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }) + .get(url, { headers: defaultHeaders(token) }) .json() .then((res) => res) .catch((err) => constructError(err)); @@ -84,8 +75,7 @@ module.exports = class Assessments { debug('createAssessment => %s', url); return got .post(url, { - headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token, { 'Content-Type': 'application/json' }), body: JSON.stringify({ name, title, @@ -106,10 +96,7 @@ module.exports = class Assessments { })}`; debug('listAssessment => %s', url); return got - .get(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }).json() + .get(url, { headers: defaultHeaders(token) }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -119,8 +106,7 @@ module.exports = class Assessments { debug('getAssessment => %s', url); return got .get(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => res) .catch((err) => constructError(err)); @@ -131,8 +117,7 @@ module.exports = class Assessments { debug('deleteAssessment => %s', url); return got .delete(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => res) .catch((err) => constructError(err)); @@ -143,8 +128,7 @@ module.exports = class Assessments { debug('runAssessment => %s', url); return got .post(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => res) .catch((err) => constructError(err)); @@ -155,8 +139,7 @@ module.exports = class Assessments { debug('listAssessmentReports => %s', url); return got .get(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => res) .catch((err) => constructError(err)); @@ -167,21 +150,20 @@ module.exports = class Assessments { debug('getAssessmentReport => %s', url); return got .get(url, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => res) .catch((err) => constructError(err)); } exportAssessmentReport(token, name, reportId, types) { - const options = { color: 'on' }; + const options = { color: 'true' }; const file = `${reportId.split('/').pop()}.csv`; const filter = types && types.trim() ? `?components=${types.trim()}` : ''; const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/reports/${encodeURIComponent(reportId)}/export${filter}`; debug('exportAssessmentReport => %s', url); - const rs = got.stream(url, { headers: { Authorization: `Bearer ${token}` }, 'user-agent': getUserAgent() }); + const rs = got.stream(url, { headers: defaultHeaders(token) }); pipeline(rs, createWriteStream(file), (e) => { if (e) { const err = constructError(e); diff --git a/src/client/catalog.js b/src/client/catalog.js index 9ce1a13a..1125801f 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -13,14 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - const debug = require('debug')('cortex:cli'); const FormData = require('form-data'); const http = require('https'); const fs = require('fs'); -const { got } = require('./apiutils'); +const { got, defaultHeaders } = require('./apiutils'); const { - constructError, formatAllServiceInputParameters, checkProject, getUserAgent, printSuccess, printError, printTable, + constructError, formatAllServiceInputParameters, checkProject, printSuccess, printError, printTable, } = require('../commands/utils'); const createEndpoints = (baseUri) => ({ @@ -41,8 +40,7 @@ module.exports = class Catalog { debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills(projectId)); return got .post(this.endpoints.skills(projectId), { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: skillObj, }).json() .then((res) => ({ success: true, message: res })) @@ -58,8 +56,7 @@ module.exports = class Catalog { if (skip) query.skip = skip; return got .get(this.endpoints.skills(projectId), { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }).json() .then((skills) => ({ success: true, ...skills })) @@ -77,8 +74,7 @@ module.exports = class Catalog { } try { const res = got.get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams, }); if (output === 'json') return res.json(); @@ -94,8 +90,7 @@ module.exports = class Catalog { debug('deploySkill(%s) => %s', skillName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((res) => ({ ...res })) @@ -108,8 +103,7 @@ module.exports = class Catalog { debug('undeploySkill(%s) => %s', skillName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((res) => ({ ...res })) @@ -122,8 +116,7 @@ module.exports = class Catalog { debug('skillLogs(%s, %s) => %s', skillName, actionName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((res) => ({ ...res })) @@ -141,8 +134,7 @@ module.exports = class Catalog { if (skip) query.skip = skip; return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }) .json() @@ -179,8 +171,7 @@ module.exports = class Catalog { debug('saveAgent(%s) => %s', agentObj.name, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: agentObj, }).json() .then((res) => ({ success: true, message: res })) @@ -193,8 +184,7 @@ module.exports = class Catalog { debug('describeAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((agent) => ({ success: true, agent })) @@ -207,8 +197,7 @@ module.exports = class Catalog { debug('describeAgentVersions(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((agent) => ({ success: true, agent })) @@ -221,8 +210,7 @@ module.exports = class Catalog { debug('deployAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((res) => ({ ...res })) @@ -235,8 +223,7 @@ module.exports = class Catalog { debug('undeployAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((res) => ({ ...res })) @@ -250,8 +237,7 @@ module.exports = class Catalog { debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types(projectId)); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: types, }) .json() @@ -265,8 +251,7 @@ module.exports = class Catalog { debug('describeType(%s) => %s', typeName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((type) => ({ success: true, type })) @@ -284,8 +269,7 @@ module.exports = class Catalog { return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }) .json() @@ -299,8 +283,7 @@ module.exports = class Catalog { debug('deleteType(%s) => %s', typeName, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((type) => ({ success: true, type })) @@ -309,25 +292,17 @@ module.exports = class Catalog { exportCampaign(projectId, token, campaignName, deployable, path) { checkProject(projectId); - const url = `${this.endpoints.campaigns(projectId)}${campaignName}/export?deployable=${deployable}`; debug('exportCampaign(%s) => %s', campaignName, url); - return new Promise((resolve, reject) => { - http.get(url, - { headers: { Authorization: `Bearer ${token}` } }, - (response) => { - if (response.statusCode === 200 || response.statusCode === 201) { - const file = fs.createWriteStream(path); - response.pipe(file).on('close', resolve).on('error', reject); - } else { - printError(`Failed to export Campaign ${campaignName} from project ${projectId}. Error: [${response.statusCode}] ${response.statusMessage}`); - reject({ status: response.statusCode }); - } - }).on('error', (e) => { - reject(e); - printError(e); - }); + const download = got.stream(url, { + headers: defaultHeaders(token), + }); + download.on('error', (error) => reject(constructError(error).message)); + const fileOutput = fs.createWriteStream(path); + fileOutput.on('error', (error) => reject(constructError(error).message)); + fileOutput.on('finish', () => resolve); + download.pipe(fileOutput); }); } @@ -378,8 +353,7 @@ module.exports = class Catalog { debug('undeployCampaign() => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((res) => ({ success: true, data: res })) @@ -392,8 +366,7 @@ module.exports = class Catalog { debug('deployCampaign() => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((res) => ({ success: true, data: res })) @@ -406,8 +379,7 @@ module.exports = class Catalog { debug('undeployMissions() => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((res) => ({ success: true, data: res })) @@ -426,8 +398,7 @@ module.exports = class Catalog { return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }) .json() @@ -441,8 +412,7 @@ module.exports = class Catalog { debug('deployMissions() => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((res) => ({ success: true, data: res })) @@ -455,8 +425,7 @@ module.exports = class Catalog { debug('getMissions() => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((res) => ({ success: true, data: res })) @@ -558,8 +527,7 @@ module.exports = class Catalog { debug('deleteSkill(%s) => %s', skillName, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((skill) => skill) @@ -572,8 +540,7 @@ module.exports = class Catalog { debug('deleteAgent(%s) => %s', agentName, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((agent) => ({ success: true, agent })) diff --git a/src/client/connections.js b/src/client/connections.js index 1c8af482..e1c68ccd 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -15,8 +15,8 @@ */ const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent, checkProject } = require('../commands/utils'); +const { got, defaultHeaders } = require('./apiutils'); +const { constructError, checkProject } = require('../commands/utils'); module.exports = class Connections { constructor(cortexUrl) { @@ -35,8 +35,7 @@ module.exports = class Connections { if (skip) query.skip = skip; return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }).json() .then((result) => ({ success: true, result })) @@ -50,8 +49,7 @@ module.exports = class Connections { try { const message = await got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: connObj, }).json(); return { success: true, message }; @@ -66,8 +64,7 @@ module.exports = class Connections { debug('describeConnection(%s) => %s', connectionName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -79,8 +76,7 @@ module.exports = class Connections { debug('deleteConnection(%s) => %s', connectionName, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -95,8 +91,7 @@ module.exports = class Connections { if (skip) query.skip = skip; return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }).json() .then((result) => ({ success: true, result })) diff --git a/src/client/content.js b/src/client/content.js index b92d3e08..76619bd7 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -19,9 +19,9 @@ const stream = require('stream'); const { promisify } = require('util'); const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); +const { got, defaultHeaders } = require('./apiutils'); const { createFileStream } = require('../commands/utils'); -const { constructError, getUserAgent, checkProject } = require('../commands/utils'); +const { constructError, checkProject } = require('../commands/utils'); const pipeline = promisify(stream.pipeline); @@ -44,8 +44,7 @@ module.exports = class Content { if (prefix) query.filter = prefix; return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }).json() .then((message) => ({ success: true, message })) @@ -63,10 +62,7 @@ module.exports = class Content { const message = await pipeline( fs.createReadStream(content), got.stream.post(endpoint, { - headers: { - Authorization: `Bearer ${token}`, - 'Content-Type': contentType, - }, + headers: defaultHeaders(token, { 'Content-Type': contentType }), }), // https://github.com/sindresorhus/got/blob/HEAD/documentation/3-streams.md#stream-api // new stream.PassThrough() is required to catch errors. @@ -85,8 +81,7 @@ module.exports = class Content { debug('deleteContent() => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((message) => ({ success: true, message })) .catch((err) => constructError(err)); @@ -106,10 +101,7 @@ module.exports = class Content { toFile = process.stdout; } return pipeline( - got.stream(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), - }), + got.stream(endpoint, { headers: defaultHeaders(token) }), toFile, ); } catch (err) { diff --git a/src/client/experiments.js b/src/client/experiments.js index d831a96d..8403b882 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -19,8 +19,8 @@ const { promisify } = require('util'); const pipeline = promisify(stream.pipeline); const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent, checkProject } = require('../commands/utils'); +const { got, defaultHeaders } = require('./apiutils'); +const { constructError, checkProject } = require('../commands/utils'); const Content = require('./content'); module.exports = class Experiments { @@ -40,8 +40,7 @@ module.exports = class Experiments { if (skip) query.skip = skip; return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }).json() .then((result) => ({ success: true, result })) @@ -54,8 +53,7 @@ module.exports = class Experiments { debug('describeExperiment(%s) => %s', name, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -67,8 +65,7 @@ module.exports = class Experiments { debug('deleteExperiment(%s) => %s', name, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -85,8 +82,7 @@ module.exports = class Experiments { if (skip) query.skip = skip; return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }).json() .then((result) => ({ success: true, result })) @@ -99,8 +95,7 @@ module.exports = class Experiments { debug('describeRun(%s) => %s', runId, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -112,8 +107,7 @@ module.exports = class Experiments { debug('deleteRun(%s, %s) => %s', experimentName, runId, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -144,8 +138,7 @@ module.exports = class Experiments { debug('saveExperiment(%s) => %s', experimentObj.name, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: experimentObj, }).json() .then((result) => ({ success: true, result })) @@ -158,8 +151,7 @@ module.exports = class Experiments { debug('createRun(%s) => %s', runObj.experimentName, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: runObj, }).json() .then((result) => ({ success: true, result })) @@ -172,8 +164,7 @@ module.exports = class Experiments { debug('updateRun(%s) => %s', runObj.experimentName, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: runObj, }).json() .then((result) => ({ success: true, result })) @@ -190,11 +181,7 @@ module.exports = class Experiments { const message = await pipeline( fs.createReadStream(content), got.stream.put(endpoint, { - headers: { - Authorization: `Bearer ${token}`, - 'Content-Type': contentType, - }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token, { 'Content-Type': contentType }), }), ); return { success: true, message }; diff --git a/src/client/info.js b/src/client/info.js index 93b8f087..954cb1ea 100644 --- a/src/client/info.js +++ b/src/client/info.js @@ -15,8 +15,8 @@ */ const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { got, getUserAgent } = require('./apiutils'); +const { constructError } = require('../commands/utils'); module.exports = class Info { constructor(cortexUrl) { @@ -29,8 +29,7 @@ module.exports = class Info { debug('getInfo() => %s', endpoint); return got .get(endpoint, { - headers: {}, - 'user-agent': getUserAgent(), + headers: { 'user-agent': getUserAgent() }, }).json() .then((result) => result) .catch((err) => constructError(err)); diff --git a/src/client/models.js b/src/client/models.js index 68f37ca8..0f84448e 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -14,10 +14,8 @@ * limitations under the License. */ const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { - constructError, checkProject, getUserAgent, -} = require('../commands/utils'); +const { got, defaultHeaders } = require('./apiutils'); +const { constructError, checkProject } = require('../commands/utils'); module.exports = class Models { constructor(cortexUrl) { @@ -31,8 +29,7 @@ module.exports = class Models { debug('saveModel(%s) => %s', modelObj.name, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: modelObj, }).json() .then((res) => ({ success: true, message: res })) @@ -45,8 +42,7 @@ module.exports = class Models { debug('updateModelStatus(%s) => %s', modelName, status, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: {}, }).json() .then((res) => ({ success: true, message: res })) @@ -59,8 +55,7 @@ module.exports = class Models { debug('deleteAction(%s) => %s', modelName, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((model) => ({ success: true, model })) @@ -73,8 +68,7 @@ module.exports = class Models { debug('describeModel(%s) => %s', modelName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((model) => ({ success: true, model })) @@ -93,8 +87,7 @@ module.exports = class Models { if (tags) query.tags = tags; return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }) .json() @@ -113,8 +106,7 @@ module.exports = class Models { if (skip) query.skip = skip; return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: query, }) .json() diff --git a/src/client/roles.js b/src/client/roles.js index 5c4af6a5..93933cc1 100644 --- a/src/client/roles.js +++ b/src/client/roles.js @@ -14,8 +14,8 @@ * limitations under the License. */ const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { got, defaultHeaders } = require('./apiutils'); +const { constructError } = require('../commands/utils'); module.exports = class Roles { constructor(cortexUrl, role, flags = []) { @@ -51,8 +51,7 @@ module.exports = class Roles { debug('describeRole => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -63,8 +62,7 @@ module.exports = class Roles { debug('deleteRole => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -75,8 +73,7 @@ module.exports = class Roles { debug('createRole => %s', endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: body, }).json() .then((res) => ({ success: true, result: res })) @@ -88,8 +85,7 @@ module.exports = class Roles { debug('addUsersToRole => %s', endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: { users }, }).json() .then((res) => ({ success: true, result: res })) @@ -101,8 +97,7 @@ module.exports = class Roles { debug('removeUsersFromRole => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: { users }, }).json() .then((res) => ({ success: true, result: res })) @@ -114,8 +109,7 @@ module.exports = class Roles { debug('createGrantForRole => %s', endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: body, }).json() .then((res) => ({ success: true, result: res })) @@ -127,8 +121,7 @@ module.exports = class Roles { debug('removeGrantFromRole => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: body, }).json() .then((res) => ({ success: true, result: res })) @@ -143,8 +136,7 @@ module.exports = class Roles { debug('listRoles => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -155,8 +147,7 @@ module.exports = class Roles { debug('addRolesToProject(%s) => %s', roles, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: { project, roles }, }).json() .then((res) => ({ success: true, result: res })) @@ -168,8 +159,7 @@ module.exports = class Roles { debug('removeRolesFromProject => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: { project, roles }, }).json() .then((res) => ({ success: true, result: res })) @@ -181,8 +171,7 @@ module.exports = class Roles { debug('listExternalGroups => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -193,8 +182,7 @@ module.exports = class Roles { debug('describeExternalGroup => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -205,8 +193,7 @@ module.exports = class Roles { debug('deleteExternalGroup => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -217,8 +204,7 @@ module.exports = class Roles { debug('addExternalGroupToRole(%s) => %s', externalGroup, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: { externalGroup }, }).json() .then((res) => ({ success: true, result: res })) @@ -230,8 +216,7 @@ module.exports = class Roles { debug('removeExternalGroupFromRole => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); diff --git a/src/client/secrets.js b/src/client/secrets.js index 814eb1a6..8b3e3ceb 100644 --- a/src/client/secrets.js +++ b/src/client/secrets.js @@ -16,8 +16,8 @@ const debug = require('debug')('cortex:cli'); const urljoin = require('url-join'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent, checkProject } = require('../commands/utils'); +const { got, defaultHeaders } = require('./apiutils'); +const { constructError, checkProject } = require('../commands/utils'); module.exports = class Secrets { constructor(cortexUrl) { @@ -31,8 +31,7 @@ module.exports = class Secrets { debug('listSecrets => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -44,8 +43,7 @@ module.exports = class Secrets { debug('readSecret(%s) => %s', keyName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -57,8 +55,7 @@ module.exports = class Secrets { debug('deleteSecret(%s) => %s', keyName, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); @@ -71,8 +68,7 @@ module.exports = class Secrets { const body = { value }; return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: body, }).json() .then((result) => ({ ...result })) diff --git a/src/client/sessions.js b/src/client/sessions.js index 40fc5c59..2055087c 100644 --- a/src/client/sessions.js +++ b/src/client/sessions.js @@ -14,10 +14,8 @@ * limitations under the License. */ const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { - constructError, checkProject, getUserAgent, -} = require('../commands/utils'); +const { got, defaultHeaders } = require('./apiutils'); +const { constructError, checkProject } = require('../commands/utils'); module.exports = class Sessions { constructor(cortexUrl) { @@ -31,8 +29,7 @@ module.exports = class Sessions { debug('saveSession(%s) => %s', sessionObj.name, endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: sessionObj, }).json() .then((res) => ({ success: true, message: res })) @@ -45,8 +42,7 @@ module.exports = class Sessions { debug('deleteSession(%s) => %s', sessionName, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((session) => ({ success: true, session })) @@ -59,8 +55,7 @@ module.exports = class Sessions { debug('describeSession(%s) => %s', sessionName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((session) => ({ success: true, session })) @@ -73,8 +68,7 @@ module.exports = class Sessions { debug('listSessions() => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }) .json() .then((sessionsResp) => ({ success: true, ...sessionsResp })) diff --git a/src/client/tasks.js b/src/client/tasks.js index 0a695437..92fdf704 100644 --- a/src/client/tasks.js +++ b/src/client/tasks.js @@ -15,8 +15,8 @@ */ const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent, checkProject } = require('../commands/utils'); +const { got, defaultHeaders } = require('./apiutils'); +const { constructError, checkProject } = require('../commands/utils'); module.exports = class Tasks { constructor(cortexUrl) { @@ -29,8 +29,7 @@ module.exports = class Tasks { const endpoint = `${this.endpointV4(projectId)}/tasks`; debug('listTasks(%s) => %s', projectId, endpoint); const opts = { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }; if (params) { opts.searchParams = params; @@ -45,8 +44,7 @@ module.exports = class Tasks { const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}`; debug('getTask(%s, %s) => %s', projectId, taskName, endpoint); const opts = { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }; if (params) { opts.searchParams = params; @@ -63,8 +61,7 @@ module.exports = class Tasks { debug('taskLogs(%s) => %s', taskName, endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((res) => ({ ...res })) @@ -78,8 +75,7 @@ module.exports = class Tasks { debug('deleteTask(%s) => %s', taskName, endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), searchParams: { verbose }, }).json() .then((res) => ({ ...res })) diff --git a/src/client/users.js b/src/client/users.js index d422da3b..75ff7b0c 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -15,8 +15,8 @@ */ const debug = require('debug')('cortex:cli'); -const { got } = require('./apiutils'); -const { constructError, getUserAgent } = require('../commands/utils'); +const { got, defaultHeaders } = require('./apiutils'); +const { constructError } = require('../commands/utils'); module.exports = class Users { constructor(cortexUrl, user, flags = []) { @@ -47,8 +47,7 @@ module.exports = class Users { debug('createServiceUser => %s', endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -59,8 +58,7 @@ module.exports = class Users { debug('deleteServiceUser => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -71,8 +69,7 @@ module.exports = class Users { debug('listServiceUser => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -83,8 +80,7 @@ module.exports = class Users { debug('describeUser => %s', endpoint); return got .get(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); @@ -95,8 +91,7 @@ module.exports = class Users { debug('createGrantForUser => %s', endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: body, }).json() .then((res) => ({ success: true, result: res })) @@ -108,8 +103,7 @@ module.exports = class Users { debug('removeGrantFromUser => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: body, }).json() .then((res) => ({ success: true, result: res })) @@ -121,8 +115,7 @@ module.exports = class Users { debug('addUsersToProject => %s', endpoint); return got .post(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: { project, users }, }).json() .then((res) => ({ success: true, result: res })) @@ -134,8 +127,7 @@ module.exports = class Users { debug('removeUsersFromProject => %s', endpoint); return got .delete(endpoint, { - headers: { Authorization: `Bearer ${token}` }, - 'user-agent': getUserAgent(), + headers: defaultHeaders(token), json: { project, users }, }).json() .then((res) => ({ success: true, result: res })) diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 0314603d..558dff36 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -97,11 +97,10 @@ module.exports.ExportCampaignCommand = class ExportCampaignCommand { const project = options.project || profile.project; const path = `./${options.o || `${campaignName}.amp`}`; try { - cli.exportCampaign(project, profile.token, campaignName, options.deployable, path) - .then(() => printSuccess(`Successfully exported Campaign ${campaignName} from project ${project} to file ${path}`)) - .catch((e) => printError(`Failed to export Campaign ${campaignName} from project ${project}. Error: ${e}`)); - } catch (err) { - printError(`Failed to export campaign: ${err.status} ${err.message}`, options); + await cli.exportCampaign(project, profile.token, campaignName, options.deployable, path); + printSuccess(`Successfully exported Campaign ${campaignName} from project ${project} to file ${path}`); + } catch (e) { + printError(`Failed to export Campaign ${campaignName} from project ${project}. Error: ${e}`); } } }; diff --git a/src/commands/configure.js b/src/commands/configure.js index 983e5d67..6ba39003 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -27,7 +27,7 @@ const { loadProfile, durationRegex, } = require('../config'); -const { printSuccess, printError } = require('./utils'); +const { printSuccess, printError, useColor } = require('./utils'); function _validatePatFile(patFile) { if (!fs.existsSync(patFile)) { @@ -141,7 +141,7 @@ module.exports.ListProfilesCommand = class { const profiles = Object.keys(config.profiles); profiles.forEach((name) => { if (name === config.currentProfile) { - if (options.color === 'on') { + if (useColor(options)) { console.log(chalk.green.bold(name)); } else { console.log(`${name} [active]`); diff --git a/src/commands/skills.js b/src/commands/skills.js index 826df3d6..b9073e8c 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -256,7 +256,7 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { } const agent = new Agent(profile.url); - agent.invokeSkill(options.project || profile.project, profile.token, skillName, inputName, params).then((response) => { + agent.invokeSkill(options.project || profile.project, profile.token, skillName, inputName, params, options.sync).then((response) => { if (response.success) { const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); diff --git a/src/commands/utils.js b/src/commands/utils.js index 44706c65..a846109a 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -16,13 +16,12 @@ const Table = require('cli-table3'); const _ = require('lodash'); +const { boolean } = require('boolean'); const chalk = require('chalk'); const debug = require('debug')('cortex:cli'); -const findPackageJson = require('find-package-json'); const fs = require('fs'); const glob = require('glob'); const jmsepath = require('jmespath'); -const os = require('os'); const path = require('path'); const yaml = require('js-yaml'); const { exec } = require('child_process'); @@ -58,12 +57,17 @@ module.exports.constructError = (error) => { // todo make figuring out the status code more consistent? this might be a holdover from request vs got? const status = _.get(errResp, 'statusCode') || respCode || error.code || error.status || ''; return { - success: false, message: errorText, details, status, -}; + success: false, message: errorText, details, status, + }; }; +function useColor(options) { + return boolean(_.get(options, 'color')); +} +module.exports.useColor = useColor; + module.exports.printSuccess = (message, options) => { - if (!options || options.color === 'on') { + if (useColor(options)) { console.log(chalk.green(message)); } else { console.log(message); @@ -71,7 +75,7 @@ module.exports.printSuccess = (message, options) => { }; module.exports.printWarning = (message, options) => { - if (!options || options.color === 'on') { + if (useColor(options)) { console.log(chalk.yellow(message)); } else { console.log(message); @@ -79,13 +83,12 @@ module.exports.printWarning = (message, options) => { }; function printError(message, options, exit = true) { - if (!options || options.color === 'on') { + if (useColor(options)) { console.error(chalk.red(message)); } else { console.error(message); } - // Don't exit when testing as this breaks negative unit tests - if (exit && _.toLower(process.env.NODE_ENV) !== 'test') { + if (exit) { process.exit(1); } } @@ -313,11 +316,6 @@ module.exports.checkProject = (projectId) => { } }; -const pkg = findPackageJson(__dirname).next().value; -module.exports.getUserAgent = function getUserAgent() { - return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${os.platform()})`; -}; - module.exports.LISTTABLEFORMAT = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Title', field: 'title', width: 40 }, @@ -449,9 +447,3 @@ module.exports.validateOptions = (options, type) => { }; }; -module.exports.printExtendedLogs = (data, options) => { - if (options.limit && Array.isArray(data) && data.length === Number(options.limit)) { - // don't log if showing all the results - console.log(`Results limited to ${options.limit} rows`); - } -}; diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index e83e380d..a3451c50 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -20,7 +20,7 @@ const _ = { }; const { readConfig } = require('../../config'); -const { printSuccess, printError } = require('../utils'); +const { printSuccess, printError, useColor } = require('../utils'); const GITHUB_APP_CLIENTID = 'Iv1.e0e84c2a5fa7c935'; const DEFAULT_TEMPLATE_REPO = 'CognitiveScale/cortex-code-templates'; @@ -83,7 +83,7 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { const mom = moment().add(expiry, 'seconds'); (function poller(options) { - process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${options.color === 'on' + process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${useColor(options) ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) : deviceCode.user_code } ${moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); diff --git a/src/compatibility.js b/src/compatibility.js index 3b1cb673..7a538109 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -28,9 +28,9 @@ const last = require('lodash/fp/last'); const npmFetch = require('npm-registry-fetch'); const Semver = require('semver'); const uniq = require('lodash/fp/uniq'); -const { got } = require('./client/apiutils'); +const { got, getUserAgent } = require('./client/apiutils'); const { loadProfile } = require('./config'); -const { printError, printWarning, getUserAgent } = require('./commands/utils'); +const { printError, printWarning } = require('./commands/utils'); const pkg = findPackageJson(__dirname).next().value; diff --git a/src/config.js b/src/config.js index 7b55fec5..5b2b0985 100644 --- a/src/config.js +++ b/src/config.js @@ -200,7 +200,7 @@ class ProfileV4 { validate() { const { error } = ProfileSchemaV4.validate(this, { abortEarly: false }); if (error) { - throw new Error(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. ` + printError(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. ` + 'Please get your Personal Access Token from the Cortex Console and run "cortex configure".'); } return this; @@ -343,13 +343,13 @@ function readConfig() { async function loadProfile(profileName, useenv = true) { const config = readConfig(); if (config === undefined) { - throw new Error('Please configure the Cortex CLI by running "cortex configure"'); + printError('Please configure the Cortex CLI by running "cortex configure"'); } const name = profileName || config.currentProfile || 'default'; const profile = await config.getProfile(name, useenv); if (!profile) { - throw new Error(`Profile with name "${name}" could not be located in your configuration. Please run "cortex configure".`); + printError(`Profile with name "${name}" could not be located in your configuration. Please run "cortex configure".`); } return profile; } diff --git a/test/configure.js b/test/configure.js index ea6f680f..6917cd12 100644 --- a/test/configure.js +++ b/test/configure.js @@ -16,6 +16,7 @@ const mockedEnv = require('mocked-env'); const _ = require('lodash'); +const assert = require('assert'); const os = require('os'); const path = require('path'); const fs = require('fs'); @@ -56,9 +57,11 @@ describe('configure', () => { delete require.cache[require.resolve('../bin/cortex-configure')]; sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit'); sandbox.stub(Info.prototype, 'getInfo').callsFake(() => ({ - serverTs: iatDate, + serverTs: iatDate, })); + printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); fs.copyFileSync('./test/cortex/config', path.join(tmpDir, 'config')); @@ -143,7 +146,7 @@ describe('configure', () => { await program.parseAsync(['node', 'configure', 'token', '--profile', 'nothere']); const output = getErrorLines(); expect(output[0]).to.contain('Profile with name "nothere" could not be located in your configuration.'); - expect(output).to.length(1); + assert(process.exit.calledWith(1)); }); From 2ee5ff873bd014535661bfff38a169a70cb5b56e Mon Sep 17 00:00:00 2001 From: clee <clee@cognitivescale.com> Date: Thu, 19 May 2022 15:35:40 -0500 Subject: [PATCH 689/864] publish artifacts as part of the PR pipeline as well --- cortex-cli.gocd.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 26008c9a..58322270 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -97,6 +97,19 @@ pipelines: jobs: Build: elastic_profile_id: gocd-test-agent-dind + artifacts: + - build: + source: cruise-output/buildReport*.json + - build: + source: devBranchRevision.json + - build: + source: cortex-cli-docs.md + - build: + source: cortex-cli.tgz + - test: + source: coverage + tabs: + coverage: testoutput/coverage/index.html timeout: 0 tasks: - script: | From 7b3d517bf64133dc1d29d5120fe5c295a5d701c2 Mon Sep 17 00:00:00 2001 From: Colton Lee <clee@cognitivescale.com> Date: Fri, 20 May 2022 14:51:28 -0500 Subject: [PATCH 690/864] mark actionDefinition as optional (#570) --- bin/cortex-actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 07f40c9c..01381f2b 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -92,7 +92,7 @@ program // Deploy Action program - .command('deploy <actionDefinition>') + .command('deploy [actionDefinition]') .alias('save') .description('Deploy an action') .storeOptionsAsProperties(false) From daaeca44976c75aed8aef5f682c606d38b1ef087 Mon Sep 17 00:00:00 2001 From: clee <clee@cognitivescale.com> Date: Fri, 20 May 2022 15:24:45 -0500 Subject: [PATCH 691/864] fix assessment create command, assessmentDefinition is optional --- bin/cortex-assessments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index bd6b8b07..999d1cdb 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -98,7 +98,7 @@ program })); program - .command('create <assessmentDefinition>') + .command('create [assessmentDefinition]') .alias('save') .description('Create an assessment. Do `list-resources` and `list-types` to select component and type') .storeOptionsAsProperties(false) From 1a29502bd3174fe3854033dd7fd44e4af0d6e316 Mon Sep 17 00:00:00 2001 From: Akarsh <aprasad@cognitivescale.com> Date: Mon, 23 May 2022 12:34:35 +0530 Subject: [PATCH 692/864] merging with dev --- bin/cortex-actions.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 01381f2b..26ac11de 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -27,7 +27,10 @@ const { DeleteActionCommand, DeployActionCommand, } = require('../src/commands/actions'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, +} = require('../src/constants'); program.name('cortex actions'); program.description('Work with Cortex Actions'); @@ -46,7 +49,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListActionsCommand(program).execute(options); From 246ef389a6889ee08a637e662e600de06ee92ace Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Fri, 20 May 2022 11:21:17 -0500 Subject: [PATCH 693/864] FAB-4534 fix duplicate alias for describing external roles --- bin/cortex-roles.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 4b7fc07f..2378a7c2 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -163,7 +163,7 @@ program.command('list-external') })); program.command('describe-external <externalGroup>') - .alias('get') + .alias('get-external') .description('Describe external group roles and users') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') From 472368ceba0f84f704cd781ca2cfbc71644cbc7c Mon Sep 17 00:00:00 2001 From: Akarsh <aprasad@cognitivescale.com> Date: Wed, 25 May 2022 13:21:52 +0530 Subject: [PATCH 694/864] replace console.log with process.stderr --- src/commands/utils.js | 6 ++++++ test/testUtils.js | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index a846109a..b0519721 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -447,3 +447,9 @@ module.exports.validateOptions = (options, type) => { }; }; +module.exports.printExtendedLogs = (data, options) => { + if (options.limit && Array.isArray(data) && data.length === Number(options.limit)) { + // don't log if showing all the results + process.stderr.write(`Results limited to ${options.limit} rows\n`); + } +}; diff --git a/test/testUtils.js b/test/testUtils.js index 5f61da09..d678b8cb 100644 --- a/test/testUtils.js +++ b/test/testUtils.js @@ -81,7 +81,7 @@ describe('Test printExtendedLogs function', () => { }); beforeEach(() => { - printSpy = sinon.spy(console, 'log'); + printSpy = sinon.spy(process.stderr, 'write'); }); afterEach(() => { @@ -98,7 +98,7 @@ describe('Test printExtendedLogs function', () => { it('should print the result limited message if data length is equal to limit value', () => { printExtendedLogs([...data, { key5: 'val5' }], { limit }); - expect(getPrintedLines()).to.eql([`Results limited to ${limit} rows`]); + expect(getPrintedLines()).to.eql([`Results limited to ${limit} rows\n`]); }); it('should not print the result limited message if data length is less than limit value', () => { From 4acf00626435a70aaa16b64abc2879c34f6f3e3d Mon Sep 17 00:00:00 2001 From: Akarsh <aprasad@cognitivescale.com> Date: Wed, 25 May 2022 13:25:53 +0530 Subject: [PATCH 695/864] added compatibility PR check --- pull_request_template.md | 1 + 1 file changed, 1 insertion(+) diff --git a/pull_request_template.md b/pull_request_template.md index 6854eb4e..8246c506 100644 --- a/pull_request_template.md +++ b/pull_request_template.md @@ -7,3 +7,4 @@ Please check you fulfill ALL of the relevant checkboxes - [ ] Added tests that prove my fix is effective or that my feature works - [ ] Ran `npm test` and it passes - [ ] Changes generate no new warnings +- [ ] Changes are backward compatible with older clusters From 5db60088230395dd24b3eb3071140a37d06c92f4 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 24 May 2022 11:02:15 -0500 Subject: [PATCH 696/864] Add TODO --- src/client/apiutils.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/client/apiutils.js b/src/client/apiutils.js index 71e40651..f68c933a 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -8,6 +8,7 @@ function getUserAgent() { } module.exports.getUserAgent = getUserAgent; +// TODO add debug for request response module.exports.got = got.extend({ followRedirect: false, hooks: { @@ -20,6 +21,7 @@ module.exports.got = got.extend({ return res; }, ], + }, }); From 0162eddd83681e37fe04ca7f330da18e38ac0bf3 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 24 May 2022 12:16:13 -0500 Subject: [PATCH 697/864] FAB-4479 add verbose flag to the cli output, include http request and response --- bin/cortex-actions.js | 2 +- bin/cortex-agents.js | 2 +- bin/cortex-assessments.js | 2 +- bin/cortex-campaigns.js | 2 +- bin/cortex-configure.js | 4 ++-- bin/cortex-connections.js | 2 +- bin/cortex-content.js | 2 +- bin/cortex-deploy.js | 2 +- bin/cortex-docker.js | 2 +- bin/cortex-experiments.js | 2 +- bin/cortex-generate.js | 2 +- bin/cortex-missions.js | 2 +- bin/cortex-models.js | 2 +- bin/cortex-projects.js | 2 +- bin/cortex-roles.js | 2 +- bin/cortex-secrets.js | 2 +- bin/cortex-sessions.js | 2 +- bin/cortex-skills.js | 2 +- bin/cortex-tasks.js | 2 +- bin/cortex-types.js | 2 +- bin/cortex-users.js | 2 +- bin/cortex-workspaces.js | 2 +- bin/cortex.js | 5 +++-- src/client/apiutils.js | 18 ++++++++++++++++++ src/parsers.js | 2 +- 25 files changed, 45 insertions(+), 26 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 26ac11de..c94c0b96 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index db745299..ab0be9e6 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 999d1cdb..37bec618 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index fe563998..11782f65 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index d625c13c..0687bd5e 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -14,8 +14,8 @@ * limitations under the License. */ const chalk = require('chalk'); -// const program = require('commander'); -const program = require('commander'); +// const { program } = require('commander'); +const { program } = require('commander'); const { ConfigureCommand, diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 93c2269a..c6ff1d27 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index c1280954..c12445cd 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index f3e828ca..f309a4ff 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index f5e05e77..fad37f2f 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 88d933a7..a3a64672 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index 6992c859..6296a410 100644 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); program.name('cortex generate'); program.description('Scaffolding Cortex Components [DEPRECATED]'); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 08083fba..6d80ea01 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -18,7 +18,7 @@ const chalk = require('chalk'); const fs = require('fs'); -const program = require('commander'); +const { program } = require('commander'); const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 1db4c79f..5a70be21 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 9a5100a0..6db37df3 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 2378a7c2..9284f71a 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -16,7 +16,7 @@ * limitations under the License. */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { nonEmptyStringParser } = require('../src/parsers'); diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 4881a113..d82164bc 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index 24c58dd8..caffde3b 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 8e8f75c3..d37d6025 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index c08bc1b7..39361d7f 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -15,7 +15,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index fa764857..8e258a44 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -17,7 +17,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index d622d0eb..e7913388 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -16,7 +16,7 @@ * limitations under the License. */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 484f8975..efe7dd92 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -15,7 +15,7 @@ */ const chalk = require('chalk'); -const program = require('commander'); +const { program } = require('commander'); const { WorkspaceConfigureCommand } = require('../src/commands/workspaces/configure'); const { WorkspaceGenerateCommand } = require('../src/commands/workspaces/generate'); diff --git a/bin/cortex.js b/bin/cortex.js index 0b3b60ef..c567dfc2 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -15,9 +15,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - const findPackageJson = require('find-package-json'); -const program = require('commander'); +const { program } = require('commander'); const pkg = findPackageJson(__dirname).next().value; @@ -25,6 +24,8 @@ program.name('cortex'); program .version(pkg.version, '-v, --version') .description('Cortex CLI') + .option('--verbose', 'Verbose output', false) + .on('option:verbose', () => { process.env.DEBUG='*'; }) .command('actions <cmd>', 'Work with Cortex Actions') .command('agents <cmd>', 'Work with Cortex Agents') .command('assessments <cmd>', 'Work with Cortex Impact Assessments') diff --git a/src/client/apiutils.js b/src/client/apiutils.js index f68c933a..55923ba4 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -1,4 +1,6 @@ +const _ = require('lodash'); const got = require('got'); +const debug = require('debug')('cortex:cli'); const findPackageJson = require('find-package-json'); const os = require('os'); @@ -12,12 +14,28 @@ module.exports.getUserAgent = getUserAgent; module.exports.got = got.extend({ followRedirect: false, hooks: { + beforeRequest: [ + (options) => { + if (debug.enabled) { + debug(`request url: ${options.url}`); + debug(`request methods: ${options.method}`); + debug(`request headers: ${JSON.stringify(options.headers)}`); + debug(`request body: ${options.body || '{}'}`); + } + }, + ], afterResponse: [ (res) => { if (res.headers['x-auth-error']) { res.statusCode = 401; throw new Error(`Auth Error: ${res.headers['x-auth-error']}`); } + if (debug.enabled) { + debug(`response http code: ${res.statusCode}`); + debug(`response headers: ${JSON.stringify(res.headers)}`); + debug(`response body: ${res.body}`); + debug(`response time(ms): ${JSON.stringify(_.get(res, 'timings.phases'))}`); + } return res; }, ], diff --git a/src/parsers.js b/src/parsers.js index 1ee18de8..02ef74b2 100644 --- a/src/parsers.js +++ b/src/parsers.js @@ -15,7 +15,7 @@ */ const _ = require('lodash'); -const program = require('commander'); +const { program } = require('commander'); function nonEmptyStringParser(opts) { const { message = 'empty string argument', variadic = false } = opts; From 78807b95ed830bd2aa6f1a746e5009030d5f62b1 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 24 May 2022 12:17:52 -0500 Subject: [PATCH 698/864] FAB-4479 verbose flag --- bin/cortex.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex.js b/bin/cortex.js index c567dfc2..c048914b 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -25,7 +25,7 @@ program .version(pkg.version, '-v, --version') .description('Cortex CLI') .option('--verbose', 'Verbose output', false) - .on('option:verbose', () => { process.env.DEBUG='*'; }) + .on('option:verbose', () => { process.env.DEBUG = '*'; }) .command('actions <cmd>', 'Work with Cortex Actions') .command('agents <cmd>', 'Work with Cortex Agents') .command('assessments <cmd>', 'Work with Cortex Impact Assessments') From 4da067591083a4245f6bdd40ea34f681d28a1011 Mon Sep 17 00:00:00 2001 From: clee <clee@cognitivescale.com> Date: Tue, 31 May 2022 15:44:09 -0500 Subject: [PATCH 699/864] verbose and report options were not being passed correctly when getting an activation record --- bin/cortex-agents.js | 4 ++-- src/client/agents.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index ab0be9e6..821bf7eb 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -143,8 +143,8 @@ program .option('--json', 'Output results as JSON') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--verbose', 'Get debugging info in activation response') - .option('--report', 'Get additional debugging info in activation response') + .option('--verbose [boolean]', 'Get debugging info in activation response') + .option('--report [boolean]', 'Get additional debugging info in activation response') .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .action(withCompatibilityCheck((activationId, options) => { try { diff --git a/src/client/agents.js b/src/client/agents.js index b4cf685e..c7aa8b4a 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -55,15 +55,15 @@ json: params, getActivation(projectId, token, activationId, verbose, report) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}`; - debug('getActivation(%s) => %s', activationId, endpoint); + debug('getActivation(%s, %s, %s) => %s', activationId, verbose, report, endpoint); const opts = { headers: defaultHeaders(token), }; if (verbose) { - opts.searchParams = { verbose: true }; + opts.searchParams = { verbose }; } if (report) { - opts.searchParams = { report: true }; + opts.searchParams = { report }; } return got .get(endpoint, opts).json() From 02dfc5fa9cd8aec6317620078ac4226d2e963c08 Mon Sep 17 00:00:00 2001 From: clee <clee@cognitivescale.com> Date: Tue, 31 May 2022 16:05:17 -0500 Subject: [PATCH 700/864] expand debug output for getActivation --- src/commands/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index ddb934d6..f4afb082 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -200,7 +200,7 @@ module.exports.GetActivationCommand = class { async execute(activationId, options) { const profile = await loadProfile(options.profile); - debug('%s.getActivation(%s)', profile.name, activationId); + debug('%s.getActivation(%s, %s)', profile.name, activationId, JSON.stringify(options)); const { report, verbose, project } = options; const agents = new Agents(profile.url); agents.getActivation(project || profile.project, profile.token, activationId, verbose, report).then((response) => { From d5f64e6c29b4aa8635d8e3a53bb9f51555f4a34a Mon Sep 17 00:00:00 2001 From: Akarsh <aprasad@c12.com> Date: Wed, 1 Jun 2022 14:02:23 +0530 Subject: [PATCH 701/864] removed extra param --- src/commands/skills.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/skills.js b/src/commands/skills.js index b9073e8c..5b743206 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -129,8 +129,8 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { } return handleTable( tableFormat, - _.sortBy(result, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), - null, + _.sortBy(result, options.sort ? [] : ['name']), + (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), 'No skills found', ); } From 6ac91a7e3af04267ae17e56fe0a242c13ed8b1c6 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Fri, 27 May 2022 08:54:51 -0500 Subject: [PATCH 702/864] Glob starting with / generates bad paths ... /my/path/my/path/skill.yaml --- src/commands/workspaces/build.js | 3 ++- src/commands/workspaces/workspace-utils.js | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index a3775fd8..a379bd50 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -144,7 +144,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { async buildAction(target, action, status) { try { const actionPath = path.join(target, 'actions', action.name); - const globList = glob.sync('/**/*', { + const globList = glob.sync('./**/*', { root: actionPath, absolute: true, }); @@ -206,6 +206,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { const skillNameList = _.map(skillInfo, 'skill.name'); const status = new DockerBuildProgressTracker(skillNameList.join(', ')); await Promise.all(_.map(skillInfo, (info) => { + const actions = info.skill.actions ? info.skill.actions : []; return Promise.all(_.map(actions, (action) => this.buildAction( path.dirname(info.uri), diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 42ddaff2..523825e2 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -49,13 +49,13 @@ module.exports.getSkillInfo = function getSkillInfo(target) { if (target.endsWith('skill.yaml')) { skillFiles = statSync(path.resolve(target)) ? [target] : []; } else { - skillFiles = glob.sync('/skills/**/skill.yaml', { + skillFiles = glob.sync('./skills/**/skill.yaml', { root: target, absolute: true, }); } return Promise.all(_.map(skillFiles, async (uri) => { - const skill = await readFile(uri).catch(() => { }); + const skill = await readFile(uri).catch((err) => { console.error(`Unable to open skill: ${err.message}`)}); return { name: path.basename(uri), uri, From f9a33d6d73556162f1cab27dd3988afe5effbf0b Mon Sep 17 00:00:00 2001 From: Colton Lee <clee@cognitivescale.com> Date: Wed, 1 Jun 2022 13:51:54 -0500 Subject: [PATCH 703/864] =?UTF-8?q?FAB-4579=20renamed=20top=20level=20`ver?= =?UTF-8?q?bose`=20option=20on=20cortex.js=20to=20`debug`=20as=20it=20was?= =?UTF-8?q?=20=E2=80=A6=20(#575)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * renamed top level `verbose` option on cortex.js to `debug` as it was conflicting with the existing option available on the `cortex agents get-activation` command * fixed debug option description --- bin/cortex-agents.js | 1 + bin/cortex.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 821bf7eb..9fd8557a 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -135,6 +135,7 @@ program } })); +// Get activation program .command('get-activation <activationId>') .description('Get dataset or service activation') diff --git a/bin/cortex.js b/bin/cortex.js index c048914b..fa4eff02 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -24,8 +24,8 @@ program.name('cortex'); program .version(pkg.version, '-v, --version') .description('Cortex CLI') - .option('--verbose', 'Verbose output', false) - .on('option:verbose', () => { process.env.DEBUG = '*'; }) + .option('--debug', 'Enables enhanced log output for debugging', false) + .on('option:debug', () => { process.env.DEBUG = '*'; }) .command('actions <cmd>', 'Work with Cortex Actions') .command('agents <cmd>', 'Work with Cortex Agents') .command('assessments <cmd>', 'Work with Cortex Impact Assessments') From 35f62c26a64590feb12700f4e837128c2fc2d88f Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Fri, 3 Jun 2022 10:07:19 -0400 Subject: [PATCH 704/864] Validate provided template name and show error when not found. --- src/commands/workspaces/generate.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index 532cc0d4..62dd5565 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -107,7 +107,12 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { let template; if (templateName) { - template = _.find(choices, (c) => c.name === templateName).value; + const templateChoice = _.find(choices, { name: templateName }); + if (templateChoice) { + template = templateChoice.value; + } else { + printError(`Template ${templateName} not found!`); + } } const answers = await inquirer.prompt([ From 516b2621be0316346aa28230899142729da58c31 Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Fri, 3 Jun 2022 10:08:44 -0400 Subject: [PATCH 705/864] Lint fix --- src/commands/workspaces/workspace-utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 523825e2..74fdf792 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -55,7 +55,7 @@ module.exports.getSkillInfo = function getSkillInfo(target) { }); } return Promise.all(_.map(skillFiles, async (uri) => { - const skill = await readFile(uri).catch((err) => { console.error(`Unable to open skill: ${err.message}`)}); + const skill = await readFile(uri).catch((err) => { console.error(`Unable to open skill: ${err.message}`); }); return { name: path.basename(uri), uri, From 6f6df4f68a82b16799c8a1c30e1d0540c8367f47 Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Fri, 3 Jun 2022 10:10:01 -0400 Subject: [PATCH 706/864] Lint fix --- src/commands/workspaces/build.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index a379bd50..9e60346a 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -206,7 +206,6 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { const skillNameList = _.map(skillInfo, 'skill.name'); const status = new DockerBuildProgressTracker(skillNameList.join(', ')); await Promise.all(_.map(skillInfo, (info) => { - const actions = info.skill.actions ? info.skill.actions : []; return Promise.all(_.map(actions, (action) => this.buildAction( path.dirname(info.uri), From 989c3f37ed790d1756b701e841f8ecb134f94f9b Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Fri, 3 Jun 2022 13:20:45 -0400 Subject: [PATCH 707/864] Remove registry option for generate --- bin/cortex-workspaces.js | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index efe7dd92..59156513 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -46,7 +46,6 @@ program program .command('generate [name] [destination]') - .option('--registry <registry>', 'Override the docker registry to publish to') .option('--color [boolean]', 'Turn on/off colors', 'true') .option('--notree', 'Do not display generated file tree', false) .option('--template <templateName>', 'Name of template to use') From 2a96f5b9a9d5e354a15cc982afb29967fc9e052f Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Fri, 3 Jun 2022 12:58:40 -0400 Subject: [PATCH 708/864] Check that provided project name exists and error out if not. --- bin/cortex-workspaces.js | 3 ++- src/commands/workspaces/publish.js | 27 +++++++++++++++++++-------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 59156513..c3e33a4a 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -74,7 +74,8 @@ program }); program - .command('publish folder]') + .command('publish [folder]') + .option('--project <project name>', 'Publish to the specified project') .option('--color [boolean]', 'Turn on/off colors', 'true') .option('--skill <skill name>', 'Publish only the specified skill') .description('Publishes all skills and resources in the workspace') diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index adb95fe9..b50c929f 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -17,6 +17,8 @@ const Catalog = require('../../client/catalog'); const Models = require('../../client/models'); const Content = require('../../client/content'); const Experiments = require('../../client/experiments'); +const ApiServerClient = require('../../client/apiServerClient'); +const { printError } = require('../utils'); const _ = { map: require('lodash/map'), @@ -213,6 +215,15 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (skillInfo.length > 0) { const profile = await loadProfile(); + /// If the user passed in a project name, validate it with the cluster + let { project } = profile; + if (options.project) { + const apiServer = new ApiServerClient(profile.url); + await apiServer.getProject(profile.token, options.project) + .then((prj) => project = prj.name) + .catch(() => printError(`Could not find project ${options.project}`)); + } + this.catalogClient = new Catalog(profile.url); this.modelsClient = new Models(profile.url); this.experimentClient = new Experiments(profile.url); @@ -246,7 +257,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { let normalizedType = {}; if (!('types' in type)) normalizedType.types = [type]; else normalizedType = type; - await this.catalogClient.saveType(profile.project, profile.token, normalizedType); + await this.catalogClient.saveType(project, profile.token, normalizedType); console.log(`Published type ${path.basename(f)}`); } }), @@ -258,7 +269,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { const modelData = await readFile(f).catch(() => { }); if (modelData) { const model = parseObject(modelData.toString()); - await this.modelsClient.saveModel(profile.project, profile.token, model); + await this.modelsClient.saveModel(project, profile.token, model); console.log(`Published model ${model.name}`); } }), @@ -272,7 +283,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (experimentData) { const experiment = parseObject(experimentData.toString()); - const result = await this.experimentClient.saveExperiment(profile.project, profile.token, experiment).then((response) => response.success) + const result = await this.experimentClient.saveExperiment(project, profile.token, experiment).then((response) => response.success) .catch(() => false); if (result) { @@ -290,15 +301,15 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { /// /// In the interim, I just delete the run (if it exists) and then re-add it. /// - await this.experimentClient.deleteRun(profile.project, profile.token, experiment.name, run.runId); + await this.experimentClient.deleteRun(project, profile.token, experiment.name, run.runId); run.experimentName = experiment.name; - await this.experimentClient.createRun(profile.project, profile.token, run); + await this.experimentClient.createRun(project, profile.token, run); console.log(`Published run ${run.runId}`); const artifacts = glob.sync(`experiments/${skillName}/${experiment.name}/runs/${run.runId}/artifacts/*`, globOpts); await Promise.all(_.map(artifacts, async (artifactUri) => { const artifactName = path.basename(artifactUri).split('.')[0]; - await this.experimentClient.uploadArtifact(profile.project, profile.token, experiment.name, run.runId, artifactUri, artifactName); + await this.experimentClient.uploadArtifact(project, profile.token, experiment.name, run.runId, artifactUri, artifactName); console.log(`Published artifact ${artifactName}`); })); } @@ -317,7 +328,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { _.map(contentFiles, async (f) => { const filePath = path.join(contentFolder, f); const key = `${path.posix.dirname(f)}/${path.posix.basename(f, path.posix.extname(f))}`; - await this.contentClient.uploadContentStreaming(profile.project, profile.token, key, filePath); + await this.contentClient.uploadContentStreaming(project, profile.token, key, filePath); console.log(`Published content ${key}`); }), ); @@ -336,7 +347,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { })); if (_.every(actionsPublished)) { - this.catalogClient.saveSkill(profile.project, profile.token, info.skill); + this.catalogClient.saveSkill(project, profile.token, info.skill); return true; } From fa6d7755de5e821e736211f79f6c61ef834e8622 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Fri, 27 May 2022 16:33:29 -0500 Subject: [PATCH 709/864] Enhance Skill/Agent save to make it variadic --- bin/cortex-agents.js | 6 ++-- bin/cortex-skills.js | 6 ++-- src/commands/agents.js | 62 ++++++++++++++++++++------------------- src/commands/skills.js | 66 ++++++++++++++++++++++-------------------- 4 files changed, 72 insertions(+), 68 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 9fd8557a..15d577be 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -43,16 +43,16 @@ program.description('Work with Cortex Agents'); // Save Agent program - .command('save <agentDefinition>') + .command('save <agentDefinitions...>') .description('Save an agent definition') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action(withCompatibilityCheck((agentDefinition, options) => { + .action(withCompatibilityCheck((agentDefinitions, options) => { try { - new SaveAgentCommand(program).execute(agentDefinition, options); + new SaveAgentCommand(program).execute(agentDefinitions, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index d37d6025..69b7d77b 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -135,7 +135,7 @@ program // Save Skill program - .command('save <skillDefinition>') + .command('save <skillDefinitions...>') .description('Save a skill definition') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') @@ -145,9 +145,9 @@ program .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('-y, --yaml', 'Use YAML for skill definition format') .option('--scaleCount <count>', 'Scale count, only used for daemon action types') - .action(withCompatibilityCheck(async (skillDefinition, options) => { + .action(withCompatibilityCheck(async (skillDefinitions, options) => { try { - await new SaveSkillCommand(program).execute(skillDefinition, options); + await new SaveSkillCommand(program).execute(skillDefinitions, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/commands/agents.js b/src/commands/agents.js index f4afb082..54df733f 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -31,38 +31,40 @@ module.exports.SaveAgentCommand = class SaveAgentCommand { this.program = program; } - async execute(agentDefinition, options) { + async execute(agentDefinitions, options) { const profile = await loadProfile(options.profile); - debug('%s.executeSaveAgent(%s)', profile.name, agentDefinition); - if (!fs.existsSync(agentDefinition)) { - printError(`File does not exist at: ${agentDefinition}`); - } - const agentDefStr = fs.readFileSync(agentDefinition); - const agent = parseObject(agentDefStr, options); - debug('%o', agent); + await Promise.all(agentDefinitions.map(async (agentDefinition) => { + debug('%s.executeSaveAgent(%s)', profile.name, agentDefinition); + if (!fs.existsSync(agentDefinition)) { + printError(`File does not exist at: ${agentDefinition}`); + } + const agentDefStr = fs.readFileSync(agentDefinition); + const agent = parseObject(agentDefStr, options); + debug('%o', agent); - const catalog = new Catalog(profile.url); - const project = options.project || profile.project; - catalog.saveAgent(project, profile.token, agent).then((response) => { - if (response.success) { - printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); - } else if (response.details) { - console.log(`Failed to save agent: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - printError(''); // Just exit - } else { - printError(JSON.stringify(response)); - } - }) - .catch((err) => { - printError(`Failed to save agent: ${err.status} ${err.message}`, options); - }); + const catalog = new Catalog(profile.url); + const project = options.project || profile.project; + try { + const response = await catalog.saveAgent(project, profile.token, agent); + if (response.success) { + printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); + } else if (response.details) { + console.log(`Failed to save agent: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map((d) => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + } catch (err) { + printError(`Failed to save agent: ${err.status} ${err.message}`, options); + } + })); } }; diff --git a/src/commands/skills.js b/src/commands/skills.js index 5b743206..42d04fb1 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -32,43 +32,44 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { this.program = program; } - async execute(skillDefinition, options) { + async execute(skillDefinitions, options) { try { const profile = await loadProfile(options.profile); - const skillDefStr = fs.readFileSync(skillDefinition); - const skill = parseObject(skillDefStr, options); - debug('%s.executeSaveSkill(%s)', profile.name, skillDefinition); - const catalog = new Catalog(profile.url); - if (!_.isEmpty(options.k8sResource)) { - const k8sResources = options.k8sResource.map((f) => JSON.stringify(parseObject(fs.readFileSync(f), options))); - if (_.isEmpty(_.get(skill, 'actions', []))) { - printError('Skill must contain an action to apply kubernetes resources', options, true); - } - if (skill.actions.length > 1) { - printWarning('Applying kubernetes resources to all actions'); - } - skill.actions.map((a) => a.k8sResources = k8sResources); - } - if (options.scaleCount) { - if (!isNumeric(options.scaleCount)) { - printError('--scaleCount must be a number', options); + await Promise.all(skillDefinitions.map(async (skillDefinition) => { + const skillDefStr = fs.readFileSync(skillDefinition); + const skill = parseObject(skillDefStr, options); + debug('%s.executeSaveSkill(%s)', profile.name, skillDefinition); + const catalog = new Catalog(profile.url); + if (!_.isEmpty(options.k8sResource)) { + const k8sResources = options.k8sResource.map((f) => JSON.stringify(parseObject(fs.readFileSync(f), options))); + if (_.isEmpty(_.get(skill, 'actions', []))) { + printError('Skill must contain an action to apply kubernetes resources', options, true); + } + if (skill.actions.length > 1) { + printWarning('Applying kubernetes resources to all actions'); + } + skill.actions.map((a) => a.k8sResources = k8sResources); } - if (skill.actions.length > 1) { - printWarning('Applying kubernetes resources to all actions'); + if (options.scaleCount) { + if (!isNumeric(options.scaleCount)) { + printError('--scaleCount must be a number', options); + } + if (skill.actions.length > 1) { + printWarning('Applying kubernetes resources to all actions'); + } + const scaleCount = parseInt(options.scaleCount, 10); + skill.actions.map((a) => a.scaleCount = scaleCount); } - const scaleCount = parseInt(options.scaleCount, 10); - skill.actions.map((a) => a.scaleCount = scaleCount); - } - if (options.podspec) { - const paramsStr = fs.readFileSync(options.podspec); - const podSpec = parseObject(paramsStr, options); - skill.actions.map((a) => a.podSpec = podSpec); - } - const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); - if (response.success) { - printSuccess(`Skill saved: ${JSON.stringify(response.message)}`, options); - } else { + if (options.podspec) { + const paramsStr = fs.readFileSync(options.podspec); + const podSpec = parseObject(paramsStr, options); + skill.actions.map((a) => a.podSpec = podSpec); + } + const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); + if (response.success) { + printSuccess(`Skill saved: ${JSON.stringify(response.message)}`, options); + } else { console.log(`Failed to save skill: ${response.message}`); if (response.details) { console.log('The following issues were found:'); @@ -81,6 +82,7 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { } printError(''); // Just exit } + })); } catch (err) { printError(`Failed to save skill: ${_.get(err, 'status', '')} ${_.get(err, 'response.body.error', err.message)}`, options); } From b788959957be45198a8e59f13479927edd55e916 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 7 Jun 2022 12:32:54 -0500 Subject: [PATCH 710/864] Force node version to 16.15.0 as 16.15.1 breaks the audit-ci tool, minor version bumps (#581) --- c12e-ci.yml | 2 +- package-lock.json | 176 ++++++++++++++++++++++++---------------------- package.json | 10 +-- 3 files changed, 97 insertions(+), 91 deletions(-) diff --git a/c12e-ci.yml b/c12e-ci.yml index ec2b77dc..d0430d68 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: node:16-bullseye + image: node:16.15.0-bullseye command: "./build.sh CI" diff --git a/package-lock.json b/package-lock.json index f391c0ce..b534f220 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,11 +11,11 @@ "dependencies": { "boolean": "3.2.0", "chalk": "4.1.2", - "cli-progress": "3.11.0", + "cli-progress": "3.11.1", "cli-table3": "0.6.2", - "commander": "9.2.0", + "commander": "9.3.0", "debug": "4.3.4", - "dockerode": "3.3.1", + "dockerode": "3.3.2", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", @@ -50,7 +50,7 @@ "cortex": "bin/cortex.js" }, "devDependencies": { - "audit-ci": "5.1.2", + "audit-ci": "6.3.0", "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", @@ -61,7 +61,7 @@ "is-ci": "3.0.1", "mocha": "9.2.2", "mocked-env": "1.3.5", - "nock": "13.2.4", + "nock": "13.2.6", "nyc": "15.1.0", "rewire": "6.0.0", "sinon": "11.1.2" @@ -1080,24 +1080,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -1130,12 +1112,11 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "node_modules/audit-ci": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", - "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.3.0.tgz", + "integrity": "sha512-rVCn4J7SUMQw2A21E3PPLzMz70A5RqWIx5BzvuU0iKeEGuuC6vGE00eeo4mFEnr439WdvI9i2lCXnmgABqLSeQ==", "dev": true, "dependencies": { - "array.prototype.flatmap": "^1.2.5", "cross-spawn": "^7.0.3", "escape-string-regexp": "^4.0.0", "event-stream": "4.0.1", @@ -1143,13 +1124,40 @@ "JSONStream": "^1.3.5", "readline-transform": "1.0.0", "semver": "^7.0.0", - "yargs": "^16.0.0" + "yargs": "^17.0.0" }, "bin": { - "audit-ci": "lib/audit-ci.js" + "audit-ci": "dist/bin.js" }, "engines": { - "node": ">=10" + "node": ">=12.9.0" + } + }, + "node_modules/audit-ci/node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/audit-ci/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" } }, "node_modules/balanced-match": { @@ -1590,9 +1598,9 @@ } }, "node_modules/cli-progress": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.0.tgz", - "integrity": "sha512-ug+V4/Qy3+0jX9XkWPV/AwHD98RxKXqDpL37vJBOxQhD90qQ3rDqDKoFpef9se91iTUuOXKlyg2HUyHBo5lHsQ==", + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.1.tgz", + "integrity": "sha512-TTMA2LHrYaZeNMcgZGO10oYqj9hvd03pltNtVbu4ddeyDTHlYV7gWxsFiuvaQlgwMBFCv1TukcjiODWFlb16tQ==", "dependencies": { "string-width": "^4.2.3" }, @@ -1696,9 +1704,9 @@ } }, "node_modules/commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", + "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", "engines": { "node": "^12.20.0 || >=14" } @@ -1986,9 +1994,9 @@ } }, "node_modules/dockerode": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.1.tgz", - "integrity": "sha512-AS2mr8Lp122aa5n6d99HkuTNdRV1wkkhHwBdcnY6V0+28D3DSYwhxAk85/mM9XwD3RMliTxyr63iuvn5ZblFYQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.2.tgz", + "integrity": "sha512-oXN+1XVH2TeyE0Jj9Ci6Fim8ZIDxyqeJrkx9qhEOaRiA+nhLihKfd3M2L+Aqrj5C2ObPw8RVN2zPWvvk0x2dwg==", "dependencies": { "docker-modem": "^3.0.0", "tar-fs": "~2.0.1" @@ -4154,12 +4162,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -4702,14 +4704,14 @@ } }, "node_modules/nock": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", - "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.6.tgz", + "integrity": "sha512-GbyeSwSEP0FYouzETZ0l/XNm5tNcDNcXJKw3LCAb+mx8bZSwg1wEEvdL0FAyg5TkBJYiWSCtw6ag4XfmBy60FA==", "dev": true, "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", - "lodash.set": "^4.3.2", + "lodash": "^4.17.21", "propagate": "^2.0.0" }, "engines": { @@ -7844,18 +7846,6 @@ "es-shim-unscopables": "^1.0.0" } }, - "array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - } - }, "asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -7882,12 +7872,11 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "audit-ci": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-5.1.2.tgz", - "integrity": "sha512-FNBbo4ycoHxcS7ruNNkq3LB+fZ4UWDd0QUNAva7Ae/F/Y45BBA7ZfHPSr5Fr+tS2+eqSwxToeFRRnw2Tp2PE8Q==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.3.0.tgz", + "integrity": "sha512-rVCn4J7SUMQw2A21E3PPLzMz70A5RqWIx5BzvuU0iKeEGuuC6vGE00eeo4mFEnr439WdvI9i2lCXnmgABqLSeQ==", "dev": true, "requires": { - "array.prototype.flatmap": "^1.2.5", "cross-spawn": "^7.0.3", "escape-string-regexp": "^4.0.0", "event-stream": "4.0.1", @@ -7895,7 +7884,30 @@ "JSONStream": "^1.3.5", "readline-transform": "1.0.0", "semver": "^7.0.0", - "yargs": "^16.0.0" + "yargs": "^17.0.0" + }, + "dependencies": { + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true + } } }, "balanced-match": { @@ -8200,9 +8212,9 @@ } }, "cli-progress": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.0.tgz", - "integrity": "sha512-ug+V4/Qy3+0jX9XkWPV/AwHD98RxKXqDpL37vJBOxQhD90qQ3rDqDKoFpef9se91iTUuOXKlyg2HUyHBo5lHsQ==", + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.1.tgz", + "integrity": "sha512-TTMA2LHrYaZeNMcgZGO10oYqj9hvd03pltNtVbu4ddeyDTHlYV7gWxsFiuvaQlgwMBFCv1TukcjiODWFlb16tQ==", "requires": { "string-width": "^4.2.3" } @@ -8277,9 +8289,9 @@ } }, "commander": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", - "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==" + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", + "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==" }, "commondir": { "version": "1.0.1", @@ -8488,9 +8500,9 @@ } }, "dockerode": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.1.tgz", - "integrity": "sha512-AS2mr8Lp122aa5n6d99HkuTNdRV1wkkhHwBdcnY6V0+28D3DSYwhxAk85/mM9XwD3RMliTxyr63iuvn5ZblFYQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.2.tgz", + "integrity": "sha512-oXN+1XVH2TeyE0Jj9Ci6Fim8ZIDxyqeJrkx9qhEOaRiA+nhLihKfd3M2L+Aqrj5C2ObPw8RVN2zPWvvk0x2dwg==", "requires": { "docker-modem": "^3.0.0", "tar-fs": "~2.0.1" @@ -10090,12 +10102,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -10497,14 +10503,14 @@ } }, "nock": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.4.tgz", - "integrity": "sha512-8GPznwxcPNCH/h8B+XZcKjYPXnUV5clOKCjAqyjsiqA++MpNx9E9+t8YPp0MbThO+KauRo7aZJ1WuIZmOrT2Ug==", + "version": "13.2.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.6.tgz", + "integrity": "sha512-GbyeSwSEP0FYouzETZ0l/XNm5tNcDNcXJKw3LCAb+mx8bZSwg1wEEvdL0FAyg5TkBJYiWSCtw6ag4XfmBy60FA==", "dev": true, "requires": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", - "lodash.set": "^4.3.2", + "lodash": "^4.17.21", "propagate": "^2.0.0" } }, diff --git a/package.json b/package.json index e1b78557..f85bffbc 100644 --- a/package.json +++ b/package.json @@ -43,11 +43,11 @@ "dependencies": { "boolean": "3.2.0", "chalk": "4.1.2", - "cli-progress": "3.11.0", + "cli-progress": "3.11.1", "cli-table3": "0.6.2", - "commander": "9.2.0", + "commander": "9.3.0", "debug": "4.3.4", - "dockerode": "3.3.1", + "dockerode": "3.3.2", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", @@ -79,7 +79,7 @@ "yauzl": "2.10.0" }, "devDependencies": { - "audit-ci": "5.1.2", + "audit-ci": "6.3.0", "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", @@ -90,7 +90,7 @@ "is-ci": "3.0.1", "mocha": "9.2.2", "mocked-env": "1.3.5", - "nock": "13.2.4", + "nock": "13.2.6", "nyc": "15.1.0", "rewire": "6.0.0", "sinon": "11.1.2" From 447289723f7fac9bff56d45ee1e5638744e85c81 Mon Sep 17 00:00:00 2001 From: Supriya Singh <46476713+ssingh-CS@users.noreply.github.com> Date: Thu, 9 Jun 2022 18:33:28 +0530 Subject: [PATCH 711/864] Fixed bug FAB-4650 (#583) --- bin/cortex-models.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 5a70be21..7e671290 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -30,7 +30,9 @@ const { UpdateModelStatusCommand, ListModelRunsCommand, } = require('../src/commands/models'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +} = require('../src/constants'); program.name('cortex models'); program.description('Work with Cortex Models'); @@ -50,7 +52,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListModelsCommand(program).execute(options); @@ -160,7 +162,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((modelName, options) => { try { new ListModelRunsCommand(program).execute(modelName, options); From 83c4f31cd5eaccaeae7fe6ea2bbca415c1176ea8 Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Tue, 7 Jun 2022 09:35:16 -0400 Subject: [PATCH 712/864] Fixed registry deletion --- src/commands/workspaces/registry.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js index 75e63fbe..88a1f2ff 100644 --- a/src/commands/workspaces/registry.js +++ b/src/commands/workspaces/registry.js @@ -67,7 +67,7 @@ module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCom async execute(name, options) { const profile = await loadProfile(); - const choices = _.map(_.filter(profile.registries, { isCortex: false }), (r) => ( + const choices = _.map(_.filter(profile.registries, (r) => !r.isCortex), (r) => ( { name: r.name, value: r.name, From ffb213f7c043161fb36ea9994e45885ce244e916 Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Tue, 7 Jun 2022 16:59:46 -0400 Subject: [PATCH 713/864] Added comment --- src/commands/workspaces/registry.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js index 88a1f2ff..5f911853 100644 --- a/src/commands/workspaces/registry.js +++ b/src/commands/workspaces/registry.js @@ -67,6 +67,7 @@ module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCom async execute(name, options) { const profile = await loadProfile(); + /// Use a function iteratee instead of the property test const choices = _.map(_.filter(profile.registries, (r) => !r.isCortex), (r) => ( { name: r.name, From cd2c1c82e1cf3adc85a40a0891d05256a03f60b9 Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Fri, 17 Jun 2022 15:07:09 -0400 Subject: [PATCH 714/864] Makes --notree work just like --color --- bin/cortex-workspaces.js | 2 +- src/commands/workspaces/generate.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index c3e33a4a..ed817bf7 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -47,7 +47,7 @@ program program .command('generate [name] [destination]') .option('--color [boolean]', 'Turn on/off colors', 'true') - .option('--notree', 'Do not display generated file tree', false) + .option('--notree [boolean]', 'Do not display generated file tree', 'false') .option('--template <templateName>', 'Name of template to use') .description('Generates a workspace based on a template from the template repository') .action((name, destination, options) => { // deliberately not using withCompatibilityCheck() diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index 62dd5565..4230916a 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -8,6 +8,7 @@ const inquirer = require('inquirer'); const ghGot = require('gh-got'); const { isText } = require('istextorbinary'); const treeify = require('treeify'); +const { boolean } = require('boolean'); const _ = { get: require('lodash/get'), @@ -219,7 +220,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { } }), ); - if (!options || !options.notree) { + if (!options || !boolean(options.notree)) { printSuccess('Generated the following files:'); console.log(''); console.log(destinationPath); From 3f63dc627a1e66e953892ff20c3dac28d1aaa3de Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Fri, 17 Jun 2022 12:40:41 -0400 Subject: [PATCH 715/864] Validate --skill parameter --- src/commands/workspaces/build.js | 56 ++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index 9e60346a..d1e43f45 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -1,3 +1,4 @@ +const fs = require('fs'); const path = require('path'); const glob = require('glob'); const Docker = require('dockerode'); @@ -51,11 +52,11 @@ class DockerBuildProgressTracker { return 'Extracting: Complete'; } return `Extracting: [${BarFormat(params.progress, barOpts)}]`; - case 'status': - return `Status: ${this.streamData.trim()}`; - case 'section': - return `Building: ${this.eventData || ''}`; - default: + case 'status': + return `Status: ${this.streamData.trim()}`; + case 'section': + return `Building: ${this.eventData || ''}`; + default: return ''; } } @@ -191,32 +192,39 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { this.options = options; let target = process.cwd(); - if (folder) { - const fldr = folder.replace(/'|"/g, ''); - target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); - } + try { + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } - if (options.skill) { - target = path.join(target, 'skills', options.skill, 'skill.yaml'); - } + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + if (!fs.existsSync(target)) { + throw new Error(`Skill ${options.skill} not found!`); + } + } - const skillInfo = await getSkillInfo(target); + const skillInfo = await getSkillInfo(target); - if (skillInfo.length > 0) { - const skillNameList = _.map(skillInfo, 'skill.name'); - const status = new DockerBuildProgressTracker(skillNameList.join(', ')); - await Promise.all(_.map(skillInfo, (info) => { - const actions = info.skill.actions ? info.skill.actions : []; - return Promise.all(_.map(actions, (action) => this.buildAction( + if (skillInfo.length > 0) { + const skillNameList = _.map(skillInfo, 'skill.name'); + const status = new DockerBuildProgressTracker(skillNameList.join(', ')); + await Promise.all(_.map(skillInfo, (info) => { + const actions = info.skill.actions ? info.skill.actions : []; + return Promise.all(_.map(actions, (action) => this.buildAction( path.dirname(info.uri), action, status, ))); - })); - status.stop(); - console.log('Build Complete'); - } else { - console.log('No skills found'); + })); + status.stop(); + console.log('Build Complete'); + } else { + console.log('No skills found'); + } + } catch (err) { + console.log(err.message); } } }; From cffc8ffafd93249f2b71ee67b466b356c261c9b0 Mon Sep 17 00:00:00 2001 From: dschueller-cs <dschueller-cs@expresstoyou.com> Date: Fri, 17 Jun 2022 15:31:42 -0400 Subject: [PATCH 716/864] Verify project in config file is valid. --- src/commands/workspaces/publish.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index b50c929f..9210bcf4 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -216,12 +216,12 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { const profile = await loadProfile(); /// If the user passed in a project name, validate it with the cluster - let { project } = profile; - if (options.project) { + let project = options.project || profile.project; + if (project) { const apiServer = new ApiServerClient(profile.url); - await apiServer.getProject(profile.token, options.project) + await apiServer.getProject(profile.token, project) .then((prj) => project = prj.name) - .catch(() => printError(`Could not find project ${options.project}`)); + .catch(() => printError(`Project ${project} not found.`)); } this.catalogClient = new Catalog(profile.url); From 5a9a035cb765e5b077e96c78e7c12789a4abba93 Mon Sep 17 00:00:00 2001 From: Akarsh <aprasad@c12.com> Date: Tue, 21 Jun 2022 18:48:53 +0530 Subject: [PATCH 717/864] error if skill doesnt contain an action with applied podspec --- src/commands/skills.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/commands/skills.js b/src/commands/skills.js index 42d04fb1..297fe409 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -64,6 +64,9 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { if (options.podspec) { const paramsStr = fs.readFileSync(options.podspec); const podSpec = parseObject(paramsStr, options); + if (_.isEmpty(_.get(skill, 'actions', []))) { + printError('Skill must contain an action', options, true); + } skill.actions.map((a) => a.podSpec = podSpec); } const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); From 6ed30a048f7dc1a6d69ae19163b08a929e0d035e Mon Sep 17 00:00:00 2001 From: Yashwanth <yreddy@cognitivescale.com> Date: Mon, 20 Jun 2022 21:09:04 -0500 Subject: [PATCH 718/864] delete types --- bin/cortex-types.js | 18 ++++++++++++++++++ src/commands/deploy.js | 2 +- src/commands/types.js | 24 ++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 8e258a44..b0a4c28c 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -26,6 +26,7 @@ const { SaveTypeCommand, ListTypesCommand, DescribeTypeCommand, + DeleteTypeCommand, } = require('../src/commands/types'); program.name('cortex types'); @@ -88,6 +89,23 @@ program } })); + program + .command('delete <typeName>') + .alias('get') + .description('Delete a type') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json', 'Output results using JSON') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (skillName, options) => { + try { + await new DeleteTypeCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } diff --git a/src/commands/deploy.js b/src/commands/deploy.js index b2f68266..4e435f83 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -217,7 +217,7 @@ module.exports.DeploySnapshotCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); - + debug(options); const agents = new Agents(profile.url); const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { diff --git a/src/commands/types.js b/src/commands/types.js index 5bcd223d..7bd60297 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -121,3 +121,27 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { }); } }; + +module.exports.DeleteTypeCommand = class DeleteTypeCommand { + constructor(program) { + this.program = program; + } + + async execute(typeName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeDeleteType(%s)', profile.name, typeName); + + const catalog = new Catalog(profile.url); + catalog.deleteType(options.project || profile.project, profile.token, typeName).then((response) => { + if (response.success) { + const result = filterObject(response.type, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to describe type ${typeName}: ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to describe type ${typeName}: ${err.status} ${err.message}`, options); + }); + } +}; \ No newline at end of file From cefa540854f1624d2d1cc79e025afbbf8e657cfb Mon Sep 17 00:00:00 2001 From: Yashwanth <yreddy@cognitivescale.com> Date: Mon, 20 Jun 2022 21:14:55 -0500 Subject: [PATCH 719/864] fixed typos --- bin/cortex-types.js | 4 ++-- src/commands/types.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/cortex-types.js b/bin/cortex-types.js index b0a4c28c..e8437b70 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -98,9 +98,9 @@ program .option('--json', 'Output results using JSON') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillName, options) => { + .action(withCompatibilityCheck(async (typeName, options) => { try { - await new DeleteTypeCommand(program).execute(skillName, options); + await new DeleteTypeCommand(program).execute(typeName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/commands/types.js b/src/commands/types.js index 7bd60297..7f08585a 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -144,4 +144,4 @@ module.exports.DeleteTypeCommand = class DeleteTypeCommand { printError(`Failed to describe type ${typeName}: ${err.status} ${err.message}`, options); }); } -}; \ No newline at end of file +}; From 4d72a96c74db02126a8e4bd50ce22892d2b88a9b Mon Sep 17 00:00:00 2001 From: Yashwanth <yreddy@cognitivescale.com> Date: Mon, 20 Jun 2022 21:15:04 -0500 Subject: [PATCH 720/864] remove debug --- src/commands/deploy.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 4e435f83..48b3a791 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -217,7 +217,6 @@ module.exports.DeploySnapshotCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploymentSnapshot(%s)', profile.name, snapshotIds); - debug(options); const agents = new Agents(profile.url); const promises = []; snapshotIds.split(' ').forEach((snapshotId) => { From d775b4602af50e38a5f0c83b6215477b48d2e34f Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Tue, 21 Jun 2022 13:38:56 -0500 Subject: [PATCH 721/864] fixed typo --- src/commands/types.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/types.js b/src/commands/types.js index 7f08585a..1faa1614 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -137,11 +137,11 @@ module.exports.DeleteTypeCommand = class DeleteTypeCommand { const result = filterObject(response.type, options); printSuccess(JSON.stringify(result, null, 2), options); } else { - printError(`Failed to describe type ${typeName}: ${response.message}`, options); + printError(`Failed to delete type ${typeName}: ${response.message}`, options); } }) .catch((err) => { - printError(`Failed to describe type ${typeName}: ${err.status} ${err.message}`, options); + printError(`Failed to delete type ${typeName}: ${err.status} ${err.message}`, options); }); } }; From befbad8f4781252d60c6cead60ce7b633e617b99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jun 2022 14:20:01 +0000 Subject: [PATCH 722/864] Bump got from 11.8.3 to 11.8.5 Bumps [got](https://github.com/sindresorhus/got) from 11.8.3 to 11.8.5. - [Release notes](https://github.com/sindresorhus/got/releases) - [Commits](https://github.com/sindresorhus/got/compare/v11.8.3...v11.8.5) --- updated-dependencies: - dependency-name: got dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b534f220..6c91f6d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "get-stream": "6.0.1", "gh-got": "9.0.0", "glob": "7.2.0", - "got": "11.8.3", + "got": "11.8.5", "graphql": "15.6.1", "graphql-request": "3.7.0", "inquirer": "8.2.4", @@ -3050,9 +3050,9 @@ } }, "node_modules/got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -9299,9 +9299,9 @@ } }, "got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", "requires": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", diff --git a/package.json b/package.json index f85bffbc..ba401650 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "get-stream": "6.0.1", "gh-got": "9.0.0", "glob": "7.2.0", - "got": "11.8.3", + "got": "11.8.5", "graphql": "15.6.1", "graphql-request": "3.7.0", "inquirer": "8.2.4", From a6109a3cefd2f159975811d1b5a160d0b01242d5 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Wed, 22 Jun 2022 15:18:54 -0500 Subject: [PATCH 723/864] Update cortex-types.js (#590) --- bin/cortex-types.js | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/cortex-types.js b/bin/cortex-types.js index e8437b70..216f5c4d 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -91,7 +91,6 @@ program program .command('delete <typeName>') - .alias('get') .description('Delete a type') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') From b706baaa06793e227ad7f7537d9e19e81c98a4f7 Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Thu, 23 Jun 2022 12:28:12 -0400 Subject: [PATCH 724/864] FAB-4804 - Handle invalid skill name for publish, and improved status output. (#591) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- src/commands/workspaces/build.js | 14 +-- src/commands/workspaces/publish.js | 150 +++++++++++++++-------------- 2 files changed, 86 insertions(+), 78 deletions(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index d1e43f45..e81c3d73 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -4,6 +4,7 @@ const glob = require('glob'); const Docker = require('dockerode'); const cliProgress = require('cli-progress'); const { BarFormat } = require('cli-progress').Format; +const { printError, printSuccess } = require('../utils'); const _ = { get: require('lodash/get'), @@ -142,7 +143,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { this.program = program; } - async buildAction(target, action, status) { + async buildAction(target, action, status, options) { try { const actionPath = path.join(target, 'actions', action.name); const globList = glob.sync('./**/*', { @@ -178,12 +179,12 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { }, ); } catch (err) { - console.log(err); + printSuccess(err, options); reject(err); } }); } catch (err) { - console.error(err); + printError(err, options); return Promise.reject(err); } } @@ -216,15 +217,16 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { path.dirname(info.uri), action, status, + options, ))); })); status.stop(); - console.log('Build Complete'); + printSuccess('Build Complete', options); } else { - console.log('No skills found'); + printSuccess('No skills found', options); } } catch (err) { - console.log(err.message); + printError(err.message, options); } } }; diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 9210bcf4..6cf3dca0 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -1,4 +1,5 @@ const glob = require('glob'); +const fs = require('fs'); const path = require('path'); const Docker = require('dockerode'); const { readFile } = require('fs/promises'); @@ -6,9 +7,10 @@ const { v1: uuid } = require('uuid'); const inquirer = require('inquirer'); const cliProgress = require('cli-progress'); const { BarFormat } = require('cli-progress').Format; +const chalk = require('chalk'); const { - parseObject, + parseObject, printSuccess, printError, } = require('../utils'); const { getSkillInfo, buildImageTag, getCurrentRegistry } = require('./workspace-utils'); @@ -18,7 +20,6 @@ const Models = require('../../client/models'); const Content = require('../../client/content'); const Experiments = require('../../client/experiments'); const ApiServerClient = require('../../client/apiServerClient'); -const { printError } = require('../utils'); const _ = { map: require('lodash/map'), @@ -47,11 +48,11 @@ class DockerPushProgressTracker { switch (payload.type) { case 'upload': if (params.progress >= 1) { - return `Pushing ${this.stage}: Complete`; + return chalk.green(`Pushing ${this.stage}: Complete`); } - return `Pushing ${this.stage}: [${BarFormat(params.progress, barOpts)}]`; + return chalk.green(`Pushing ${this.stage}: [${BarFormat(params.progress, barOpts)}]`); case 'status': - return `Status: ${this.streamData.trim()}`; + return chalk.green(`Status: ${this.streamData.trim()}`); default: return ''; } @@ -201,52 +202,55 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { this.options = options; let target = process.cwd(); - if (folder) { - const fldr = folder.replace(/'|"/g, ''); - target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); - } + try { + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } - if (options.skill) { - target = path.join(target, 'skills', options.skill, 'skill.yaml'); - } + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + if (!fs.existsSync(target)) { + throw new Error(`Skill ${options.skill} not found!`); + } + } - const skillInfo = await getSkillInfo(target); + const skillInfo = await getSkillInfo(target); - if (skillInfo.length > 0) { - const profile = await loadProfile(); + if (skillInfo.length > 0) { + const profile = await loadProfile(); - /// If the user passed in a project name, validate it with the cluster - let project = options.project || profile.project; - if (project) { - const apiServer = new ApiServerClient(profile.url); - await apiServer.getProject(profile.token, project) - .then((prj) => project = prj.name) - .catch(() => printError(`Project ${project} not found.`)); - } + /// If the user passed in a project name, validate it with the cluster + let project = options.project || profile.project; + if (project) { + const apiServer = new ApiServerClient(profile.url); + await apiServer.getProject(profile.token, project) + .then((prj) => project = prj.name) + .catch(() => printError(`Project ${project} not found.`, options)); + } - this.catalogClient = new Catalog(profile.url); - this.modelsClient = new Models(profile.url); - this.experimentClient = new Experiments(profile.url); - this.contentClient = new Content(profile.url); - - const published = await Promise.all(_.map(skillInfo, async (info) => { - const skillName = info.skill.name; - const actions = info.skill.actions ? info.skill.actions : []; - const actionsPublished = await Promise.all(_.map(actions, async (action) => { - const tag = await buildImageTag(action.image); - const imglist = await this.docker.listImages({ - filters: JSON.stringify({ - reference: [tag], - }), - }); - - if (imglist.length !== 0) { - try { - const globOpts = { - root: target, - absolute: true, - }; - const regAuth = await this.getRegistryAuth(profile, action.image, options); + this.catalogClient = new Catalog(profile.url); + this.modelsClient = new Models(profile.url); + this.experimentClient = new Experiments(profile.url); + this.contentClient = new Content(profile.url); + + const published = await Promise.all(_.map(skillInfo, async (info) => { + const skillName = info.skill.name; + const actions = info.skill.actions ? info.skill.actions : []; + const actionsPublished = await Promise.all(_.map(actions, async (action) => { + const tag = await buildImageTag(action.image); + const imglist = await this.docker.listImages({ + filters: JSON.stringify({ + reference: [tag], + }), + }); + + if (imglist.length !== 0) { + const globOpts = { + root: target, + absolute: true, + }; + const regAuth = await this.getRegistryAuth(profile, action.image, options); const typesFiles = glob.sync(`types/${skillName}/**/*.yaml`, globOpts); await Promise.all( @@ -258,7 +262,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (!('types' in type)) normalizedType.types = [type]; else normalizedType = type; await this.catalogClient.saveType(project, profile.token, normalizedType); - console.log(`Published type ${path.basename(f)}`); + printSuccess(`Published type ${path.basename(f)}`, options); } }), ); @@ -270,7 +274,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (modelData) { const model = parseObject(modelData.toString()); await this.modelsClient.saveModel(project, profile.token, model); - console.log(`Published model ${model.name}`); + printSuccess(`Published model ${model.name}`, options); } }), ); @@ -287,7 +291,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { .catch(() => false); if (result) { - console.log(`Published experiment ${experiment.name}`); + printSuccess(`Published experiment ${experiment.name}`, options); const runsFiles = glob.sync(`experiments/${skillName}/${experiment.name}/runs/**/*.yaml`, globOpts); await Promise.all( _.map(runsFiles, async (runFile) => { @@ -304,19 +308,19 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { await this.experimentClient.deleteRun(project, profile.token, experiment.name, run.runId); run.experimentName = experiment.name; await this.experimentClient.createRun(project, profile.token, run); - console.log(`Published run ${run.runId}`); + printSuccess(`Published run ${run.runId}`, options); const artifacts = glob.sync(`experiments/${skillName}/${experiment.name}/runs/${run.runId}/artifacts/*`, globOpts); await Promise.all(_.map(artifacts, async (artifactUri) => { const artifactName = path.basename(artifactUri).split('.')[0]; await this.experimentClient.uploadArtifact(project, profile.token, experiment.name, run.runId, artifactUri, artifactName); - console.log(`Published artifact ${artifactName}`); + printSuccess(`Published artifact ${artifactName}`, options); })); } }), ); } else { - console.error('Failed to save experiment'); + printError('Failed to save experiment', options); } } }), @@ -329,36 +333,38 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { const filePath = path.join(contentFolder, f); const key = `${path.posix.dirname(f)}/${path.posix.basename(f, path.posix.extname(f))}`; await this.contentClient.uploadContentStreaming(project, profile.token, key, filePath); - console.log(`Published content ${key}`); + printSuccess(`Published content ${key}`, options); }), ); - await this.pushAction(action, tag, regAuth); - } catch (err) { - console.error(err.message); + await this.pushAction(action, tag, regAuth); + } else { + printError(`No image found for action ${action.name}. Has it been built?`, options); return false; } - } else { - console.error(`No image found for action ${action.name}. Has it been built?`); - return false; + + return true; + })); + + if (_.every(actionsPublished)) { + this.catalogClient.saveSkill(project, profile.token, info.skill); + printSuccess('Publish Complete', options); + return true; } - return true; - })); + printError('Publish Failed', options); - if (_.every(actionsPublished)) { - this.catalogClient.saveSkill(project, profile.token, info.skill); - return true; - } + return false; + })); - return false; - })); + return _.every(published); + } - console.log('Publish Complete'); - return _.every(published); + console.log('No skills found'); + return false; + } catch (err) { + printError(err.message, options); + return false; } - - console.log('No skills found'); - return false; } }; From 09a7dd9d3ece2e35617b227443ffea5eefc33544 Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Thu, 23 Jun 2022 15:06:46 -0400 Subject: [PATCH 725/864] FAB-4785 - Fix issue with content publishing (#592) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- src/commands/workspaces/publish.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 6cf3dca0..79d3a05b 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -326,13 +326,11 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { }), ); - const contentFolder = path.join(target, 'content'); - const contentFiles = glob.sync('**/*', { cwd: contentFolder, nodir: true, absolute: false }); + const contentFiles = glob.sync(`content/${skillName}/*`, globOpts); await Promise.all( _.map(contentFiles, async (f) => { - const filePath = path.join(contentFolder, f); - const key = `${path.posix.dirname(f)}/${path.posix.basename(f, path.posix.extname(f))}`; - await this.contentClient.uploadContentStreaming(project, profile.token, key, filePath); + const key = `content/${skillName}/${path.posix.basename(f, path.posix.extname(f))}`; + await this.contentClient.uploadContentStreaming(project, profile.token, key, f); printSuccess(`Published content ${key}`, options); }), ); From c90334d32b9204dcddda55a8816691d00f941250 Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Thu, 23 Jun 2022 16:58:00 -0400 Subject: [PATCH 726/864] FAB-4817 - Fix error message to include max length, and remove suffix to fix issues with incorrect length checking. (#593) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- src/commands/utils.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index b0519721..608c1543 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -32,8 +32,7 @@ const MAX_NAME_LENGTH = 20; const space = /\s+/g; const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/g; const beginAndEndWithHyphen = /^[-]+|[-]+$/g; -const vaildationErrorMessage = "Must contain only lowercase a-z, 0-9, or -, and it can't begin or end with -"; -const suffixLength = 6; +const vaildationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; module.exports.constructError = (error) => { // fallback to text in message or standard error message @@ -364,7 +363,7 @@ module.exports.EXTERNALROLESFORMAT = [ module.exports.generateNameFromTitle = (title) => title.replace(specialCharsExceptHyphen, '') .replace(space, '-') .replace(beginAndEndWithHyphen, '') - .substr(0, MAX_NAME_LENGTH - suffixLength) + .substr(0, MAX_NAME_LENGTH) .replace(beginAndEndWithHyphen, '') .toLowerCase(); From e825f746e3742762288944a642626de691427580 Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Sat, 25 Jun 2022 09:58:26 -0400 Subject: [PATCH 727/864] FAB-4815 - Fixed problems with adding and removing registries (#594) * FAB-4815 - Validate registry name on activation * Fixed problems with adding and removing registries Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- bin/cortex-workspaces.js | 4 ++-- src/commands/workspaces/registry.js | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index ed817bf7..f0c3b0f4 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -93,7 +93,7 @@ program .description('Manage image repositories.'); registry - .command('add <name>') + .command('add [name]') .option('--color [boolean]', 'Turn on/off colors', 'true') .option('--url <registry url>', 'Registry URL') .option('--namespace <registry namespace>', 'Registry Namespace') @@ -107,7 +107,7 @@ program }); registry - .command('remove <name>') + .command('remove [name]') .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Removes the specified image registry.') .action((name, options) => { // deliberately not using withCompatibilityCheck() diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js index 5f911853..710f7106 100644 --- a/src/commands/workspaces/registry.js +++ b/src/commands/workspaces/registry.js @@ -5,6 +5,7 @@ const _ = { map: require('lodash/map'), filter: require('lodash/filter'), forEach: require('lodash/forEach'), + find: require('lodash/find'), }; const { loadProfile, readConfig } = require('../../config'); @@ -68,14 +69,14 @@ module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCom const profile = await loadProfile(); /// Use a function iteratee instead of the property test - const choices = _.map(_.filter(profile.registries, (r) => !r.isCortex), (r) => ( + const choices = _.map(_.filter(profile.registries, (r) => !r.isCortex && (!name || name === r.name)), (r) => ( { name: r.name, value: r.name, })); if (choices.length === 0) { - printError('No registries to remove'); + printError(name ? `Registry ${name} not found` : 'No registries found to remove', options); return; } @@ -96,7 +97,7 @@ module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCom cfg.profiles[profile.name] = profile; cfg.save(); - printSuccess(`Registry ${answers.name} removed`); + printSuccess(`Registry ${answers.name} removed`, options); }) .catch((error) => { printError(error.message, options); @@ -112,12 +113,17 @@ module.exports.WorkspaceActivateRegistryCommand = class WorkspaceActivateRegistr async execute(name, options) { const profile = await loadProfile(); - const choices = _.map(profile.registries, (r) => ( + const choices = _.map(_.filter(profile.registries, (r) => !name || (r.name === name)), (r) => ( { name: r.name, value: r.name, })); + if (choices.length === 0) { + printError(name ? `Registry ${name} not found` : 'No registries found to activate', options); + return; + } + await inquirer.prompt([ { type: 'list', From 5b5140915383e2bb2555521a18eced83b476b743 Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Tue, 28 Jun 2022 11:23:25 -0400 Subject: [PATCH 728/864] FAB-4817 - Check for MIN name length (#596) * Oops. Enforced the MAX length but not the MIN. * Missing semicolon. Sigh. * A more concise implementation, and fixed problems with repeated validation failures. Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- src/commands/utils.js | 86 ++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 42 deletions(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 608c1543..457976d1 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -29,10 +29,11 @@ const { ALLOWED_QUERY_FIELDS } = require('../constants'); const MAX_NAME_LENGTH = 20; -const space = /\s+/g; -const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/g; -const beginAndEndWithHyphen = /^[-]+|[-]+$/g; +const space = /\s+/; +const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/; +const beginAndEndWithHyphen = /^[-]+|[-]+$/; const vaildationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; +const nameRequirementMessage = 'You must provide a name for the skill.'; module.exports.constructError = (error) => { // fallback to text in message or standard error message @@ -166,10 +167,10 @@ module.exports.getSourceFiles = (source, cb) => { cb(err, null); } else { const results = files.filter((fpath) => fs.lstatSync(fpath).isFile()).map((fpath) => ({ - canonical: fpath, - relative: path.relative(normalizedSource, fpath), - size: fs.lstatSync(fpath).size, - })); + canonical: fpath, + relative: path.relative(normalizedSource, fpath), + size: fs.lstatSync(fpath).size, + })); cb(null, results); } }); @@ -208,32 +209,32 @@ function formatServiceInputParameter(inputParameter) { } module.exports.formatAllServiceInputParameters = (allParameters) => { - if (allParameters.$ref != null) { - return `$ref:${allParameters.$ref}`; - } + if (allParameters.$ref != null) { + return `$ref:${allParameters.$ref}`; + } - return allParameters.map((inputParameters) => formatServiceInputParameter(inputParameters)).join('\n'); + return allParameters.map((inputParameters) => formatServiceInputParameter(inputParameters)).join('\n'); }; module.exports.countLinesInFile = (filePath) => new Promise((resolve, reject) => { // Bug ... this code ignores the final line that does not end with a new line ... thats why leftovers was added // eslint-disable-next-line implicit-arrow-linebreak - let count = 0; - let leftovers = true; - fs.createReadStream(filePath) - .on('error', (e) => reject(e)) - .on('data', (chunk) => { - for (let i = 0; i < chunk.length; i += 1) { - if (chunk[i] === 10) { - count += 1; - leftovers = false; - } else { - leftovers = true; - } + let count = 0; + let leftovers = true; + fs.createReadStream(filePath) + .on('error', (e) => reject(e)) + .on('data', (chunk) => { + for (let i = 0; i < chunk.length; i += 1) { + if (chunk[i] === 10) { + count += 1; + leftovers = false; + } else { + leftovers = true; } - }) - .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); - }); + } + }) + .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); +}); module.exports.formatValidationPath = (p) => { let cnt = 0; let res = ''; @@ -252,11 +253,11 @@ module.exports.formatValidationPath = (p) => { // connections get returns createdAt (not prefixed by _) field that cause saving exported connection to fail. Hence removing them manually const systemFields = ['createdAt', 'updatedAt', 'createdBy', 'updatedBy']; module.exports.cleanInternalFields = (jsobj) => JSON.stringify(jsobj, (a, obj) => { - if (a.startsWith('_') || systemFields.includes(a)) { - return undefined; - } - return obj; - }, 2); + if (a.startsWith('_') || systemFields.includes(a)) { + return undefined; + } + return obj; +}, 2); module.exports.jsonToYaml = (json) => { if (typeof json === 'string') { @@ -361,22 +362,23 @@ module.exports.EXTERNALROLESFORMAT = [ ]; module.exports.generateNameFromTitle = (title) => title.replace(specialCharsExceptHyphen, '') - .replace(space, '-') - .replace(beginAndEndWithHyphen, '') - .substr(0, MAX_NAME_LENGTH) - .replace(beginAndEndWithHyphen, '') - .toLowerCase(); + .replace(space, '-') + .replace(beginAndEndWithHyphen, '') + .substr(0, MAX_NAME_LENGTH) + .replace(beginAndEndWithHyphen, '') + .toLowerCase(); module.exports.hasUppercase = (s) => /[A-Z]/.test(s); -module.exports.validateName = (name) => (space.test(name) -|| specialCharsExceptHyphen.test(name) -|| beginAndEndWithHyphen.test(name) -|| (name && name.length > MAX_NAME_LENGTH) -|| module.exports.hasUppercase(name) +module.exports.validateName = (name) => (space.test(name) + || specialCharsExceptHyphen.test(name) + || beginAndEndWithHyphen.test(name) + || (!name) + || (name && name.length > MAX_NAME_LENGTH) + || module.exports.hasUppercase(name) ? { status: false, - message: vaildationErrorMessage, + message: name ? vaildationErrorMessage : nameRequirementMessage, } : { status: true, From 8455468764211d297d2b0274744746e75821c342 Mon Sep 17 00:00:00 2001 From: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Date: Wed, 29 Jun 2022 11:34:39 +0530 Subject: [PATCH 729/864] Fab 4030 (#597) * initial commit * consistent error message * consistent list returns * added test * fixing integration tests Co-authored-by: Akarsh <aprasad@c12.com> --- package-lock.json | 2 +- src/commands/actions.js | 14 +- src/commands/agents.js | 33 +- src/commands/assessments.js | 33 +- src/commands/campaigns.js | 22 +- src/commands/connections.js | 22 +- src/commands/experiments.js | 21 +- src/commands/models.js | 22 +- src/commands/projects.js | 10 +- src/commands/skills.js | 12 +- src/commands/types.js | 13 +- src/commands/utils.js | 65 +--- test/listComponentOptions.js | 730 ----------------------------------- test/listOptions.js | 191 --------- test/testUtils.js | 48 +++ 15 files changed, 109 insertions(+), 1129 deletions(-) delete mode 100644 test/listComponentOptions.js delete mode 100644 test/listOptions.js diff --git a/package-lock.json b/package-lock.json index 6c91f6d6..9a6d65ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9127,7 +9127,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "5.0.1" } } } diff --git a/src/commands/actions.js b/src/commands/actions.js index b369653f..7b4738cb 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -21,9 +21,8 @@ const { loadProfile } = require('../config'); const Actions = require('../client/actions'); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, - validateOptions, - OPTIONSTABLEFORMAT, handleTable, printExtendedLogs, + printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, + handleTable, printExtendedLogs, handleListFailure, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -37,13 +36,8 @@ module.exports.ListActionsCommand = class { debug('%s.executeListActions()', profile.name); const actions = new Actions(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Action list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } actions.listActions(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort) + // eslint-disable-next-line consistent-return .then((response) => { if (response.success) { let result = response.actions; @@ -67,7 +61,7 @@ module.exports.ListActionsCommand = class { ); } } else { - printError(`Failed to list actions: ${response.status} ${response.message}`, options); + return handleListFailure(response, options, 'Actions'); } }) .catch((err) => { diff --git a/src/commands/agents.js b/src/commands/agents.js index 54df733f..32657105 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -23,7 +23,8 @@ const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, handleTable, printExtendedLogs, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, handleTable, printExtendedLogs, + handleListFailure, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -79,12 +80,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { debug('%s.executeListAgents()', profile.name); const catalog = new Catalog(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Agent list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } + // eslint-disable-next-line consistent-return catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.agents; @@ -101,7 +97,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { ); } } else { - printError(`Failed to list agents: ${response.status} ${response.message}`, options); + return handleListFailure(response, options, 'Agents'); } }) .catch((err) => { @@ -237,7 +233,6 @@ module.exports.ListActivationsCommand = class { this.program = program; } - // eslint-disable-next-line consistent-return async execute(options) { if (_.isEmpty(options.agentName) && _.isEmpty(options.skillName) @@ -264,13 +259,7 @@ module.exports.ListActivationsCommand = class { if (options.sort) queryParams.sort = _.toLower(options.sort); if (options.filter) queryParams.filter = options.filter; - const { validOptions, errorDetails } = validateOptions(options, 'ACTIVATION'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Resource list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } - + // eslint-disable-next-line consistent-return agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { let result = response.result.activations; @@ -303,7 +292,7 @@ module.exports.ListActivationsCommand = class { })), null, 'No activations found'); } } else { - printError(`Failed to list activations: ${response.message}`, options); + return handleListFailure(response, options, 'Activations'); } }) .catch((err) => { @@ -356,13 +345,8 @@ module.exports.ListAgentSnapshotsCommand = class { debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Snapshot list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, options.filter, options.limit, options.skip, options.sort) + // eslint-disable-next-line consistent-return .then((response) => { if (response.success) { let result = response.result.snapshots; @@ -386,10 +370,9 @@ module.exports.ListAgentSnapshotsCommand = class { ); } } else { - printError(`Failed to list agent snapshots ${agentName}: ${response.message}`, options); + return handleListFailure(response, options, 'Agent-snapshots'); } }) - .catch((err) => { printError(`Failed to list agent snapshots ${agentName}: ${err.status} ${err.message}`, options); }); diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 4dfa4614..597f0732 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -28,14 +28,10 @@ const { loadProfile } = require('../config'); const Assessments = require('../client/assessments'); const { - printSuccess, printError, parseObject, printTable, filterObject, - validateOptions, OPTIONSTABLEFORMAT, handleTable, printExtendedLogs, + printSuccess, printError, parseObject, filterObject, + handleTable, printExtendedLogs, handleListFailure, } = require('./utils'); -const { - transformDynamicParams, -} = require('../parsers'); - module.exports.ListResourcesCommand = class { constructor(program) { this.program = program; @@ -46,21 +42,11 @@ module.exports.ListResourcesCommand = class { const options = command; const profile = await loadProfile(options.profile); debug('%s.ListResourcesCommand()', profile.name); - let transformedFilter; - let transformedSort; const client = new Assessments(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'RESOURCE'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Resource list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } - // add prefixes to the keys to query inside nested targetPath - if (options.filter) transformedFilter = transformDynamicParams(options.filter, 'resource.'); - if (options.sort) transformedSort = transformDynamicParams(options.sort, '_id.'); - client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, transformedFilter, transformedSort) + client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, options.filter, options.sort) + // eslint-disable-next-line consistent-return .then((response) => { - if (response.success === false) throw response; + if (response.success === false) return handleListFailure(response, options, 'Cortex resources'); printExtendedLogs(response.data, options); if (options.json) { printSuccess(JSON.stringify(response, null, 2), options); @@ -195,15 +181,10 @@ module.exports.ListAssessmentCommand = class { debug('%s.ListAssessmentCommand()', profile.name); const client = new Assessments(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Assessment list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } client.listAssessment(profile.token, options.skip, options.limit, options.filter, options.sort) + // eslint-disable-next-line consistent-return .then((response) => { - if (response.success === false) throw response; + if (response.success === false) return handleListFailure(response, options, 'Assessments'); let result = response.data; printExtendedLogs(result, options); if (options.json) { diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 558dff36..45f1b2c8 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -20,8 +20,8 @@ const Catalog = require('../client/catalog'); const _ = { get: require('lodash/get') }; const { - printSuccess, printError, filterObject, printTable, validateOptions, OPTIONSTABLEFORMAT, handleTable, - printExtendedLogs, + printSuccess, printError, filterObject, printTable, handleTable, + printExtendedLogs, handleListFailure, } = require('./utils'); module.exports.ListCampaignsCommand = class ListCampaignsCommand { @@ -33,12 +33,6 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListCampaigns()', profile.name); - const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Campaign list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } const cli = new ApiServerClient(profile.url); try { const sortParam = (options.sort || '{}').replace(/"/g, '\''); @@ -58,7 +52,7 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { handleTable(tableSpec, result, null, 'No campaigns found'); } } catch (err) { - printError(`Failed to list campaigns: ${err.status} ${err.message}`, options); + handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Campaigns'); } } }; @@ -219,12 +213,6 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { const options = cmd; const profile = await loadProfile(options.profile); - const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Mission list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } debug('%s.executeListMissionsCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); try { @@ -246,9 +234,11 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { ]; handleTable(tableSpec, data, null, 'No missions found'); } + }).catch((err) => { + handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Missions'); }); } catch (err) { - printError(`Failed to list missions of campaign ${campaign}: ${err.status} ${err.message}`, options); + handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Missions'); } } }; diff --git a/src/commands/connections.js b/src/commands/connections.js index cd006454..2e62b94d 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -23,8 +23,9 @@ const Content = require('../client/content'); const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, CONNECTIONTABLEFORMAT, fileExists, - validateOptions, OPTIONSTABLEFORMAT, handleTable, + handleTable, printExtendedLogs, + handleListFailure, } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -38,12 +39,7 @@ module.exports.ListConnections = class ListConnections { debug('%s.listConnections()', profile.name); const conns = new Connections(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Connection list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } + // eslint-disable-next-line consistent-return conns.listConnections(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.result.connections; @@ -61,7 +57,7 @@ module.exports.ListConnections = class ListConnections { ); } } else { - printError(`Failed to list connections: ${response.status} ${response.message}`, options); + return handleListFailure(response, options, 'Connections'); } }) .catch((err) => { @@ -203,12 +199,7 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { debug('%s.listConnectionsTypes()', profile.name); const conns = new Connections(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION_TYPE'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Connection-types list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } + // eslint-disable-next-line consistent-return conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.result.connectionTypes; @@ -225,11 +216,10 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { { column: 'Created On', field: 'createdAt', width: 26 }, { column: 'Updated On', field: 'updatedAt', width: 26 }, ]; - handleTable(tableSpec, result, null, 'No connection types found'); } } else { - printError(`Failed to list connection types: ${response.status} ${response.message}`, options); + return handleListFailure(response, options, 'Connection-types'); } }) .catch((err) => { diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 887cd04c..38f3c42f 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -22,9 +22,8 @@ const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, DEPENDENCYTABLEFORMAT, handleTable, - validateOptions, - OPTIONSTABLEFORMAT, printExtendedLogs, + handleListFailure, } = require('./utils'); class ListExperiments { @@ -38,12 +37,7 @@ class ListExperiments { debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Experiment list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } + // eslint-disable-next-line consistent-return exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let { result } = response; @@ -62,7 +56,7 @@ class ListExperiments { handleTable(tableSpec, result.experiments, null, 'No experiments found'); } } else { - printError(`Failed to list experiments: ${response.status} - ${response.message}`, options); + return handleListFailure(response, options, 'Experiments'); } }) .catch((err) => { @@ -136,12 +130,7 @@ class ListRuns { const exp = new Experiments(profile.url); const sort = options.sort || JSON.stringify({ startTime: -1 }); - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Experiment-runs list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } + // eslint-disable-next-line consistent-return exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort, options.skip).then((response) => { if (response.success) { let { result } = response; @@ -170,7 +159,7 @@ class ListRuns { handleTable(tableSpec, _.get(result, 'runs', []), trans, 'No runs found'); } } else { - printError(`Failed to list runs: ${response.status} ${response.status} - ${response.message}`, options); + return handleListFailure(response, options, 'Experiment-runs'); } }) .catch((err) => { diff --git a/src/commands/models.js b/src/commands/models.js index 33ea9713..ff00730c 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -25,7 +25,8 @@ const { loadProfile } = require('../config'); const Models = require('../client/models'); const Experiments = require('../client/experiments'); const { - LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT, validateOptions, OPTIONSTABLEFORMAT, printExtendedLogs, + LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT, printExtendedLogs, + handleListFailure, } = require('./utils'); const { @@ -82,16 +83,10 @@ module.exports.ListModelsCommand = class ListModelsCommand { const profile = await loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Model list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } + // eslint-disable-next-line consistent-return models.listModels(options.project || profile.project, options.skip, options.limit, options.filter, options.sort, options.tags, profile.token).then((response) => { if (response.success) { let result = response.models; - printExtendedLogs(result, options); if (options.json) { if (options.query) result = filterObject(result, options); @@ -105,7 +100,7 @@ module.exports.ListModelsCommand = class ListModelsCommand { ); } } else { - printError(`Failed to list models: ${response.status} ${response.message}`, options); + return handleListFailure(response, options, 'Models'); } }) .catch((err) => { @@ -125,12 +120,7 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { const profile = await loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Model-runs list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } + // eslint-disable-next-line consistent-return models.listModelRuns(options.project || profile.project, modelName, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.runs; @@ -148,7 +138,7 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { ); } } else { - printError(`Failed to list model runs: ${response.status} ${response.message}`, options); + return handleListFailure(response, options, 'Model-runs'); } }) .catch((err) => { diff --git a/src/commands/projects.js b/src/commands/projects.js index 1e5db9c9..a7625e17 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -19,7 +19,7 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const { - printSuccess, printError, filterObject, parseObject, printTable, validateOptions, OPTIONSTABLEFORMAT, handleTable, printExtendedLogs, + printSuccess, printError, filterObject, parseObject, handleTable, printExtendedLogs, handleListFailure, } = require('./utils'); module.exports.CreateProjectCommand = class CreateProjectCommand { @@ -62,12 +62,6 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListProjects()', profile.name); - const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Project list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } const cli = new ApiServerClient(profile.url); try { const sortParam = (options.sort || '{}').replace(/"/g, '\''); @@ -87,7 +81,7 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { handleTable(tableSpec, result, null, 'No projects found'); } } catch (err) { - printError(`Failed to list projects: ${err.status} ${err.message}`, options); + handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Projects'); } } }; diff --git a/src/commands/skills.js b/src/commands/skills.js index 297fe409..4dc63bfa 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -23,8 +23,8 @@ const Agent = require('../client/agents'); const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, validateOptions, OPTIONSTABLEFORMAT, handleTable, - printExtendedLogs, + LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, handleTable, + printExtendedLogs, handleListFailure, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { @@ -105,12 +105,6 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { try { const status = !_.get(options, 'nostatus', false); // default show status, if nostatus==true status == false const shared = !_.get(options, 'noshared', false); - const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Skill list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } const response = await catalog.listSkills( options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort, ); @@ -139,7 +133,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { 'No skills found', ); } - return printError(`Failed to list skills: ${response.status} ${response.message}`, options); + return handleListFailure(response, options, 'Skills'); } catch (err) { return printError(`Failed to list skills: ${err.status} ${err.message}`, options); } diff --git a/src/commands/types.js b/src/commands/types.js index 1faa1614..e727a1d0 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -20,11 +20,11 @@ const moment = require('moment'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { - LISTTABLEFORMAT, filterObject, validateOptions, OPTIONSTABLEFORMAT, printExtendedLogs, + LISTTABLEFORMAT, filterObject, printExtendedLogs, handleListFailure, } = require('./utils'); const { - printSuccess, printError, parseObject, printTable, handleTable, + printSuccess, printError, parseObject, handleTable, } = require('./utils'); module.exports.SaveTypeCommand = class SaveTypeCommand { @@ -67,12 +67,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { debug('%s.executeListTypes()', profile.name); const catalog = new Catalog(profile.url); - const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); - if (!validOptions) { - const optionTableFormat = OPTIONSTABLEFORMAT; - printError('Type list failed.', options, false); - return printTable(optionTableFormat, errorDetails); - } + // eslint-disable-next-line consistent-return catalog.listTypes(options.project || profile.project, profile.token, options.limit, options.skip, options.sort).then((response) => { if (response.success) { let result = response.types; @@ -89,7 +84,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { ); } } else { - printError(`Failed to list types: ${response.status} ${response.message}`, options); + return handleListFailure(response, options, 'Types'); } }) .catch((err) => { diff --git a/src/commands/utils.js b/src/commands/utils.js index 457976d1..e63daf1d 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -25,7 +25,6 @@ const jmsepath = require('jmespath'); const path = require('path'); const yaml = require('js-yaml'); const { exec } = require('child_process'); -const { ALLOWED_QUERY_FIELDS } = require('../constants'); const MAX_NAME_LENGTH = 20; @@ -393,64 +392,18 @@ module.exports.handleTable = (spec, data, transformer, noDataMessage) => { } }; -// Todo: move to cortex-express-common FAB-4008 -module.exports.validateOptions = (options, type) => { - const { - filter, limit, skip, sort, - } = options; - const errorDetails = []; - if (filter) { - try { - const filterObj = JSON.parse(filter); - const filterKeys = Object.keys(filterObj); - if (typeof (filterObj) !== 'object') { - errorDetails.push({ type: 'filter', message: 'Invalid filter expression' }); - } - if (type && (_.intersection(ALLOWED_QUERY_FIELDS[type].filter, filterKeys)).length !== filterKeys.length) { - errorDetails.push({ type: 'filter', message: `Invalid filter params. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].filter}` }); - } - } catch (err) { - errorDetails.push({ type: 'filter', message: `Invalid filter expression: ${err.message}` }); - } - } - if (sort) { - try { - const sortObj = JSON.parse(sort); - const sortKeys = Object.keys(sortObj); - const sortValues = Object.values(sortObj); - if (typeof (sortObj) !== 'object') { - errorDetails.push({ type: 'sort', message: 'Invalid sort expression' }); - } - if (!sortValues.every((val) => Number(val) === 1 || Number(val) === -1)) { - errorDetails.push({ type: 'sort', message: 'Sort values can only be 1(ascending) or -1(descending)' }); - } - if (type && (_.intersection(ALLOWED_QUERY_FIELDS[type].sort, sortKeys)).length !== sortKeys.length) { - errorDetails.push({ type: 'sort', message: `Invalid sort params. Allowed fields: ${ALLOWED_QUERY_FIELDS[type].sort}` }); - } - } catch (err) { - // check if a string of 'asc' or 'desc' is provided for backwards compatibility - if (!(_.lowerCase(sort).startsWith('desc') || _.lowerCase(sort).startsWith('asc'))) { - errorDetails.push({ type: 'sort', message: `Invalid sort expression: ${err.message}` }); - } - } - } - if ((limit && _.isNaN(Number(limit))) || Number(limit) <= 0) { - errorDetails.push({ type: 'limit', message: 'Invalid limit, limit should be a valid positive number' }); - } - if ((skip && _.isNaN(Number(skip))) || Number(skip) < 0) { - errorDetails.push({ type: 'skip', message: 'Invalid skip, skip should be a valid non negative number' }); - } - if (errorDetails.length) { - return { validOptions: false, errorDetails }; - } - return { - validOptions: true, errorDetails, - }; -}; - module.exports.printExtendedLogs = (data, options) => { if (options.limit && Array.isArray(data) && data.length === Number(options.limit)) { // don't log if showing all the results process.stderr.write(`Results limited to ${options.limit} rows\n`); } }; + +module.exports.handleListFailure = (response, options, type) => { + if (response.status === 400) { + const optionTableFormat = this.OPTIONSTABLEFORMAT; + printError(`${type} list failed.`, options, false); + return this.printTable(optionTableFormat, response.details); + } + return printError(`Failed to list ${type}: ${response.status} ${response.message}`, options); +}; diff --git a/test/listComponentOptions.js b/test/listComponentOptions.js deleted file mode 100644 index 4ae204f8..00000000 --- a/test/listComponentOptions.js +++ /dev/null @@ -1,730 +0,0 @@ -const assert = require('assert'); - -const { validateOptions } = require('../src/commands/utils'); -const { DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION } = require('../src/constants'); - -describe('List model command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"name": "test"}', - sort: '{"createdAt": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description,createdBy,type,status') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,updatedAt,createdBy,type,status') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'MODEL'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,updatedAt,createdBy,type,status') === true, - 'Is invalid sort'); - }); -}); - -describe('List experiments command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"modelId": "test"}', - sort: '{"createdAt": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description,modelId') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,modelId,createdAt,updatedAt') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'EXPERIMENT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,modelId,createdAt,updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List runs command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"runId": "test"}', - sort: '{"_createdAt": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: runId,_createdAt,startTime,endTime,took,experimentName') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: runId,_createdAt,startTime,endTime,took,experimentName') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'RUN'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: runId,_createdAt,startTime,endTime,took,experimentName,_updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List actions command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"image": "test"}', - sort: '{"type": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,type,image,description,createdBy') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,type,image,description,createdAt,createdBy') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'ACTION'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,type,image,description,createdAt,createdBy,updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List agents command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"name": "test"}', - sort: '{"createdBy": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description,createdBy') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'AGENT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy,updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List skill command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"name": "test"}', - sort: '{"createdBy": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description,createdBy') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'SKILL'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy,updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List types command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"name": "test"}', - sort: '{"createdBy": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description,createdBy') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'TYPE'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,createdBy,updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List snapshot command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"snapshotId": "test"}', - sort: '{"_isTip": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: snapshotId,title,_isTip,_createdBy') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: snapshotId,title,_isTip,_createdAt,_createdBy') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'SNAPSHOT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: snapshotId,title,_isTip,_createdAt,_createdBy,_updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List assessments command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"componentName": "test"}', - sort: '{"reportCount": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,componentName,reportCount,_createdBy') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,componentName,reportCount,_createdBy,_updatedAt') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'ASSESSMENT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,componentName,reportCount,_createdBy,_updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List resources command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"name": "test"}', - sort: '{"resourceType": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'RESOURCE'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'RESOURCE'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,type,_projectId') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: resourceName,resourceTitle,resourceType,_projectId') === true, - 'Is invalid sort'); - }); -}); - -describe('List connections command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"connectionType": "test"}', - sort: '{"allowWrite": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description,createdBy,connectionType,allowWrite,contentType') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,connectionType,allowWrite,contentType') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,createdAt,connectionType,allowWrite,contentType,updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List connection types command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"type": "test"}', - sort: '{"group": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION_TYPE'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'CONNECTION_TYPE'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description,type,group') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,type,group') === true, - 'Is invalid sort'); - }); -}); - -describe('List campaigns command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"lifecycleState": "test"}', - sort: '{"name": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description,_createdBy,lifecycleState') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState,_updatedAt') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'CAMPAIGN'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState,_updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List missions command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"lifecycleState": "test"}', - sort: '{"name": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description,_createdBy,lifecycleState') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'MISSION'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_createdBy,lifecycleState,_updatedAt') === true, - 'Is invalid sort'); - }); -}); - -describe('List projects command option check', () => { - it('should pass for valid filter and sort params', () => { - const options = { - filter: '{"name": "test"}', - sort: '{"_createdAt": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail for invalid filter and sort params', () => { - const options = { - filter: '{"key1": "test"}', - sort: '{"key2": 1}', - limit: 1, - skip: 0, - }; - const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid filter params. Allowed fields: name,title,description') === true, - 'Is invalid filter'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,_createdAt') === true, - 'Is invalid sort'); - }); - - it('should support default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'Valid options'); - }); - - it('should fail on unsupported default sort params', () => { - const options = { - sort: GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt), - }; - const { validOptions, errorDetails } = validateOptions(options, 'PROJECT'); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes( - 'Invalid sort params. Allowed fields: name,title,description,_createdAt,_updatedAt') === true, - 'Is invalid sort'); - }); -}); - diff --git a/test/listOptions.js b/test/listOptions.js deleted file mode 100644 index b8aa58d8..00000000 --- a/test/listOptions.js +++ /dev/null @@ -1,191 +0,0 @@ -const assert = require('assert'); - -const { validateOptions } = require('../src/commands/utils'); - -describe('List command limit option check', () => { - it('should accept a positive integer', () => { - const options = { - limit: 5, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - - it('should accept a number string', () => { - const options = { - limit: '5', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - - it('should not accept value less than 1', () => { - const options = { - limit: -1, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); - }); - - it('should not accept a non-number string', () => { - const options = { - limit: 'hello-world', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); - }); - - it('should not accept other data-types', () => { - const options = { - limit: { hello: 'world' }, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid limit, limit should be a valid positive number') === true, 'Is invalid limit'); - }); -}); - -describe('List command skip option check', () => { - it('should accept a positive integer', () => { - const options = { - skip: 5, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - - it('should accept a number string', () => { - const options = { - skip: '5', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - - it('should not accept a non positive limit value', () => { - const options = { - skip: -1, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); - }); - - it('should not accept a non-number string', () => { - const options = { - skip: 'hello-world', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); - }); - - it('should not accept other data-types', () => { - const options = { - skip: { hello: 'world' }, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid skip, skip should be a valid non negative number') === true, 'Is invalid skip'); - }); -}); - -describe('List command filter option check', () => { - it('should accept a valid json string', () => { - const options = { - filter: '{"name": "test-name"}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - it('should not accept an invalid json', () => { - const options = { - filter: '{"name": "name-1}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); - }); - - it('should not accept a number field', () => { - const options = { - filter: 5, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); - }); - - it('should not accept a non json string', () => { - const options = { - filter: 'hello-world', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid options'); - assert.ok(JSON.stringify(errorDetails).includes('Invalid filter expression') === true, 'Is invalid filter'); - }); -}); - -describe('List command sort option check', () => { - it('should accept a valid json string with a stringified number value', () => { - const options = { - sort: '{"name": "1"}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid options'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - it('should accept a valid json string with a number value', () => { - const options = { - sort: '{"name": -1}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === true, 'Valid skip'); - assert.ok(errorDetails.length === 0, 'has no errors'); - }); - it('should not accept a key with value other than 1 or -1', () => { - const options = { - sort: '{"name": 0}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Valid skip'); - assert.ok(JSON.stringify(errorDetails) - .includes('Sort values can only be 1(ascending) or -1(descending)') === true, 'Is invalid skip'); - }); - it('should not accept an invalid json', () => { - const options = { - sort: '{"name": "name-1}', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails) - .includes('Invalid sort expression') === true, 'Is invalid filter'); - }); - - it('should not accept a number field', () => { - const options = { - sort: 5, - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails) - .includes('Invalid sort expression') === true, 'Is invalid filter'); - }); - - it('should fail with non json string', () => { - const options = { - sort: 'hello-world', - }; - const { validOptions, errorDetails } = validateOptions(options); - assert.ok(validOptions === false, 'Invalid skip'); - assert.ok(JSON.stringify(errorDetails) - .includes('Invalid sort expression') === true, 'Is invalid skip'); - }); -}); diff --git a/test/testUtils.js b/test/testUtils.js index d678b8cb..d5932022 100644 --- a/test/testUtils.js +++ b/test/testUtils.js @@ -6,6 +6,7 @@ const sinon = require('sinon'); const { handleTable, printExtendedLogs, + handleListFailure, } = require('../src/commands/utils'); const { stripAnsi } = require('./utils'); @@ -106,3 +107,50 @@ describe('Test printExtendedLogs function', () => { expect(getPrintedLines()).to.eql([]); }); }); + +describe('Test handleListFailure function', () => { + let printSpy; + before(() => { + restore = mockedEnv({}); + }); + + beforeEach(() => { + printSpy = sinon.spy(console, 'log'); + }); + + afterEach(() => { + printSpy.restore(); + }); + + after(() => { + restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + const errResponse = { + status: 400, + details: [ + { type: 'type1', message: 'message1' }, + { type: 'type2', message: 'message2' }, + { type: 'type3', message: 'message3' }, + ], + }; + it('should print tabular output if status is 400', () => { + handleListFailure(errResponse, null, 'test-resource'); + expect((getPrintedLines()[0])).to.equal( + '┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n' + + '│ Option Type │ Message │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type1 │ message1 │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type2 │ message2 │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type3 │ message3 │\n' + + '└────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘', + ); + }); +}); + From 1122c8166786fea9c96a2756337845f571c7b775 Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Wed, 29 Jun 2022 11:30:44 -0400 Subject: [PATCH 730/864] FAB-4838 - Show build status results correctly. (#599) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- src/commands/workspaces/build.js | 18 +++++++++++------- src/commands/workspaces/publish.js | 6 ++++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index e81c3d73..d58464f2 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -107,23 +107,23 @@ class DockerBuildProgressTracker { this.layers.extract[id] = { progress: 0 }; } - if (status === 'Downloading') { + if (status === 'Downloading' && this.layers.download[id]) { this.layers.download[id].progress = progressDetail.current / progressDetail.total || 0; } - if (status === 'Extracting') { + if (status === 'Extracting' && this.layers.extract[id]) { this.layers.extract[id].progress = progressDetail.current / progressDetail.total || 0; } - if (status === 'Download complete') { + if (status === 'Download complete' && this.layers.download[id]) { this.layers.download[id].progress = 1; } - if (status === 'Pull complete') { + if (status === 'Pull complete' && this.layers.extract[id]) { this.layers.extract[id].progress = 1; } - if (status === 'Already exists') { + if (status === 'Already exists' && this.layers.download[id] && this.layers.extract[id]) { this.layers.download[id].progress = 1; this.layers.extract[id].progress = 1; } @@ -175,11 +175,15 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { return resolve(true); }, (evt) => { + if (evt.error) { + reject(new Error(evt.error)); + return; + } status.processEvent(evt); }, ); } catch (err) { - printSuccess(err, options); + printError(err, options); reject(err); } }); @@ -226,7 +230,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { printSuccess('No skills found', options); } } catch (err) { - printError(err.message, options); + printError(`Build Failed: ${err.message}`, options); } } }; diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 79d3a05b..49cefbf0 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -192,6 +192,11 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { return resolve(true); }, (evt) => { + if (evt.error) { + status.stop(); + reject(new Error(evt.error)); + return; + } status.processEvent(evt, action.name); }, ); @@ -362,6 +367,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { return false; } catch (err) { printError(err.message, options); + printError('Publish Failed', options); return false; } } From 51abd527b7722277518c979f1442c8a6f93f2060 Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Wed, 29 Jun 2022 11:31:39 -0400 Subject: [PATCH 731/864] FAB-4626 - Dont allow skill generation over top of existing skill. (#598) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- src/commands/workspaces/generate.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index 4230916a..ca564c4a 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -1,3 +1,4 @@ +const fs = require('fs'); const path = require('path'); const URL = require('url-parse'); const { @@ -149,6 +150,8 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { this.config = readConfig(); this.githubToken = await validateToken(); + const destinationPath = path.resolve(destination || process.cwd()); + if (!this.githubToken) { printError( this.config.templateConfig @@ -160,6 +163,11 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { this.config = readConfig(); } + if (name && fs.existsSync(path.join(destinationPath, 'skills', name))) { + printError(`Skill ${name} already exists!`, this.options); + return; + } + await this.loadTemplateTree(this.config.templateConfig); if (this.tree.length) { @@ -167,20 +175,24 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { if (template) { const templateFolder = path.posix.dirname(template.template.path); const templateFiles = this.globTree(`${templateFolder}/**`); - const destinationPath = path.resolve(destination || process.cwd()); const treeObj = {}; + if (fs.existsSync(path.join(destinationPath, 'skills', template.name))) { + printError(`Skill ${template.name} already exists!`, this.options); + return; + } + const generatedFiles = _.map(templateFiles, (f) => { try { const rootPathComponents = templateFolder.split('/'); const destFile = _.drop(f.path.split('/'), rootPathComponents.length); const targetPath = path.join(...destFile); - + return _.template(targetPath, { interpolate: /__([\s\S]+?)__/g })({ skillname: generateNameFromTitle(template.name), }); } catch (err) { - printError(`Error processing template file ${f.path}: ${err.message}`); + printError(err.message, this.options); } return undefined; }).join('<br>'); @@ -216,7 +228,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { _.set(treeObj, sourcePath.split('/'), null); } } catch (err) { - printError(`Error processing template file ${f.path}: ${err.message}`, this.options); + printError(err.message, this.options); } }), ); @@ -227,7 +239,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { console.log(treeify.asTree(treeObj, true)); } - printSuccess('Workspace generation complete.'); + printSuccess('Workspace generation complete.', this.options); } } else { printError('Unable to retrieve templates', this.options); From 76dfd015c413450467535e7defb05fc42f98a3c0 Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Wed, 29 Jun 2022 12:02:41 -0400 Subject: [PATCH 732/864] FAB-4815 - Dont allow "empty" registry name. (#600) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- src/commands/workspaces/registry.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js index 710f7106..33e405ed 100644 --- a/src/commands/workspaces/registry.js +++ b/src/commands/workspaces/registry.js @@ -110,7 +110,9 @@ module.exports.WorkspaceActivateRegistryCommand = class WorkspaceActivateRegistr this.program = program; } - async execute(name, options) { + async execute(regname, options) { + const name = regname || undefined; + const profile = await loadProfile(); const choices = _.map(_.filter(profile.registries, (r) => !name || (r.name === name)), (r) => ( From e958f419a8fa5b6b2ce84a8c269dbb1e69b49dd6 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Fri, 1 Jul 2022 08:50:25 -0500 Subject: [PATCH 733/864] Taskv3 (#602) * - Use dayjs over momentjs, moment is in maintenance mode needed better date parsing.. - Modify task list to support tasks from mongo - Fix gh-got & got vuln Add --schduled to tasks list cli to show scheduled tasks Added command for schedule task, pause, resume Clean task list with scheduled tasks FAB-4477 sort options work for both other/new task apis * Tweak pause/resume cli option to make wording less confusing --- bin/cortex-agents.js | 80 +++--- bin/cortex-tasks.js | 46 +++- package-lock.json | 366 +++++---------------------- package.json | 9 +- src/client/agents.js | 6 +- src/client/apiServerClient.js | 4 +- src/client/tasks.js | 27 +- src/commands/actions.js | 7 +- src/commands/agents.js | 14 +- src/commands/assessments.js | 9 +- src/commands/connections.js | 7 +- src/commands/experiments.js | 9 +- src/commands/models.js | 9 +- src/commands/skills.js | 7 +- src/commands/tasks.js | 143 ++++++++--- src/commands/types.js | 7 +- src/commands/workspaces/configure.js | 10 +- src/config.js | 4 +- test/tasks.js | 15 +- 19 files changed, 343 insertions(+), 436 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 15d577be..ce7480a2 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -126,6 +126,8 @@ program .option('--project <project>', 'The project to use') .option('--params <params>', 'JSON params to send to the action') .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') + .option('--scheduleName <name>', 'Identifier to uniquely identify an agents schedule, defaults to the agent\'s name') + .option('--scheduleCron <cron>', 'Schedule agent invoke periodically using a cron schedule string for example: "0 0 * * *", @hourly, or @daily') .option('--sync', 'Invoke the agent synchronously') .action(withCompatibilityCheck((agentName, serviceName, options) => { try { @@ -135,6 +137,37 @@ program } })); +// Delete Agent +program + .command('delete <agentName>') + .description('Delete an agent') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((agentName, options) => { + try { + new DeleteAgentCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Undeploy agent +program + .command('undeploy <agentNames...>') + .description('Undeploy the agent resource from the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((agentNames, options) => { + try { + new UndeployAgentCommand(program).execute(agentNames, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + // Get activation program .command('get-activation <activationId>') @@ -207,16 +240,19 @@ program } })); -// Undeploy agent +// Create Agent Snapshot program - .command('undeploy <agentNames...>') - .description('Undeploy the agent resource from the cluster') + .command('create-snapshot <snapshotDefinition>') + .description('Create an agent snapshot') .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentNames, options) => { + .option('--agentName <name[:version]>', 'The name of the agent to snapshot') + .option('--title <title>', 'A descriptive title for the snapshot') + .action(withCompatibilityCheck((snapshotDefinition, options) => { try { - new UndeployAgentCommand(program).execute(agentNames, options); + new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); } catch (err) { console.error(chalk.red(err.message)); } @@ -260,40 +296,6 @@ program } })); -// Create Agent Snapshot -program - .command('create-snapshot <snapshotDefinition>') - .description('Create an agent snapshot') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--agentName <name[:version]>', 'The name of the agent to snapshot') - .option('--title <title>', 'A descriptive title for the snapshot') - .action(withCompatibilityCheck((snapshotDefinition, options) => { - try { - new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -// Delete Agent -program - .command('delete <agentName>') - .description('Delete an agent') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentName, options) => { - try { - new DeleteAgentCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 39361d7f..f691a596 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -24,7 +24,13 @@ const { DescribeTaskCommand, TaskLogsCommand, TaskDeleteCommand, + TaskPauseCommand, + TaskResumeCommand, } = require('../src/commands/tasks'); +const { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, +} = require('../src/constants'); program.name('cortex tasks'); program.description('Work with Cortex Tasks'); @@ -40,10 +46,14 @@ program .option('--project <project>', 'The project to use') .option('--actionName <string>', 'Filter tasks by action name') .option('--activationId <string>', 'filter tasks by activation id') - .option('--json', 'Output results using JSON') .option('--skillName <string>', 'Filter tasks by skill name') + .option('--scheduled', 'Show scheduled tasks only') + .option('--json', 'Output results using JSON') // This is a client-side sort - .option('--sort <asc|desc>', 'sort tasks by start timestamp ascending (asc) or descending (desc)') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <asc|desc|sort>', 'Sort asc|desc on startTime or Mongo style sort statement.', 'asc') .action(withCompatibilityCheck(async (options) => { try { await new ListTasksCommand(program).execute(options); @@ -89,7 +99,7 @@ program // Delete a task program - .command('delete <taskName>') + .command('delete <taskName...>') .description('Delete a task, if it exists') .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') @@ -102,6 +112,36 @@ program } })); +// Pause a task +program + .command('pauseSchedule <taskNames...>') + .description('Pause scheduling for a scheduled task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (taskName, options) => { + try { + await new TaskPauseCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + +// Resume a task +program + .command('resumeSchedule <taskNames...>') + .description('Resume paused schedule for a scheduled task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (taskName, options) => { + try { + await new TaskResumeCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + if (require.main === module) { program.showHelpAfterError().parseAsync(process.argv); } diff --git a/package-lock.json b/package-lock.json index 9a6d65ba..14068b0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "cli-progress": "3.11.1", "cli-table3": "0.6.2", "commander": "9.3.0", + "dayjs": "1.11.3", "debug": "4.3.4", "dockerode": "3.3.2", "find-package-json": "1.2.0", @@ -35,7 +36,6 @@ "lodash": "4.17.21", "minimatch": "3.1.2", "mixin-deep": "2.0.1", - "moment": "2.29.3", "npm-registry-fetch": "12.0.0", "open": "8.4.0", "prompts": "2.4.2", @@ -54,14 +54,14 @@ "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.14.0", + "eslint": "8.18.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.26.0", "husky": "7.0.4", "is-ci": "3.0.1", "mocha": "9.2.2", "mocked-env": "1.3.5", - "nock": "13.2.6", + "nock": "13.2.7", "nyc": "15.1.0", "rewire": "6.0.0", "sinon": "11.1.2" @@ -471,19 +471,19 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", - "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", + "espree": "^9.3.2", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { @@ -1813,6 +1813,11 @@ "node": ">= 8" } }, + "node_modules/dayjs": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", + "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2023,11 +2028,6 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, "node_modules/electron-to-chromium": { "version": "1.4.122", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", @@ -2173,12 +2173,12 @@ } }, "node_modules/eslint": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", - "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.2", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -2189,14 +2189,14 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -2205,7 +2205,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -2397,13 +2397,13 @@ } }, "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -2886,104 +2886,6 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/gh-got/node_modules/@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/gh-got/node_modules/cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", - "dependencies": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gh-got/node_modules/decompress-response": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gh-got/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gh-got/node_modules/got": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", - "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", - "dependencies": { - "@sindresorhus/is": "^2.0.0", - "@szmarczak/http-timer": "^4.0.0", - "@types/cacheable-request": "^6.0.1", - "cacheable-lookup": "^2.0.0", - "cacheable-request": "^7.0.1", - "decompress-response": "^5.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^5.0.0", - "lowercase-keys": "^2.0.0", - "mimic-response": "^2.1.0", - "p-cancelable": "^2.0.0", - "p-event": "^4.0.0", - "responselike": "^2.0.0", - "to-readable-stream": "^2.0.0", - "type-fest": "^0.10.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/gh-got/node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gh-got/node_modules/type-fest": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", - "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -3035,9 +2937,9 @@ } }, "node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4635,14 +4537,6 @@ } } }, - "node_modules/moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", - "engines": { - "node": "*" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4704,9 +4598,9 @@ } }, "node_modules/nock": { - "version": "13.2.6", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.6.tgz", - "integrity": "sha512-GbyeSwSEP0FYouzETZ0l/XNm5tNcDNcXJKw3LCAb+mx8bZSwg1wEEvdL0FAyg5TkBJYiWSCtw6ag4XfmBy60FA==", + "version": "13.2.7", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.7.tgz", + "integrity": "sha512-R6NUw7RIPtKwgK7jskuKoEi4VFMqIHtV2Uu9K/Uegc4TA5cqe+oNMYslZcUmnVNQCTG6wcSqUBaGTDd7sq5srg==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -5205,28 +5099,6 @@ "node": ">=8" } }, - "node_modules/p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dependencies": { - "p-timeout": "^3.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, "node_modules/p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -5265,17 +5137,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -6614,14 +6475,6 @@ "node": ">=4" } }, - "node_modules/to-readable-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", - "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==", - "engines": { - "node": ">=8" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7351,19 +7204,19 @@ "optional": true }, "@eslint/eslintrc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", - "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", + "espree": "^9.3.2", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, @@ -8376,6 +8229,11 @@ "which": "^2.0.1" } }, + "dayjs": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", + "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==" + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -8523,11 +8381,6 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, "electron-to-chromium": { "version": "1.4.122", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", @@ -8648,12 +8501,12 @@ "dev": true }, "eslint": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", - "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.2", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -8664,14 +8517,14 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -8680,7 +8533,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -8833,13 +8686,13 @@ "dev": true }, "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } }, @@ -9187,71 +9040,7 @@ "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-9.0.0.tgz", "integrity": "sha512-RH5n6CDdb6AozElmiKwFhmO/1FmhWWVhfQAVv+JtU8jtPK12JLErce/VQFsFwZ9dTa01SfD7WXb/1iyZp/5XKg==", "requires": { - "got": "^10.5.7" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==" - }, - "cacheable-lookup": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz", - "integrity": "sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==", - "requires": { - "@types/keyv": "^3.1.1", - "keyv": "^4.0.0" - } - }, - "decompress-response": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz", - "integrity": "sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "got": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", - "integrity": "sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==", - "requires": { - "@sindresorhus/is": "^2.0.0", - "@szmarczak/http-timer": "^4.0.0", - "@types/cacheable-request": "^6.0.1", - "cacheable-lookup": "^2.0.0", - "cacheable-request": "^7.0.1", - "decompress-response": "^5.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^5.0.0", - "lowercase-keys": "^2.0.0", - "mimic-response": "^2.1.0", - "p-cancelable": "^2.0.0", - "p-event": "^4.0.0", - "responselike": "^2.0.0", - "to-readable-stream": "^2.0.0", - "type-fest": "^0.10.0" - } - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, - "type-fest": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz", - "integrity": "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==" - } + "got": "11.8.5" } }, "github-from-package": { @@ -9290,9 +9079,9 @@ } }, "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -10446,11 +10235,6 @@ } } }, - "moment": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", - "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -10503,9 +10287,9 @@ } }, "nock": { - "version": "13.2.6", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.6.tgz", - "integrity": "sha512-GbyeSwSEP0FYouzETZ0l/XNm5tNcDNcXJKw3LCAb+mx8bZSwg1wEEvdL0FAyg5TkBJYiWSCtw6ag4XfmBy60FA==", + "version": "13.2.7", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.7.tgz", + "integrity": "sha512-R6NUw7RIPtKwgK7jskuKoEi4VFMqIHtV2Uu9K/Uegc4TA5cqe+oNMYslZcUmnVNQCTG6wcSqUBaGTDd7sq5srg==", "dev": true, "requires": { "debug": "^4.1.0", @@ -10875,19 +10659,6 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, - "p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "requires": { - "p-timeout": "^3.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -10914,14 +10685,6 @@ "aggregate-error": "^3.0.0" } }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "requires": { - "p-finally": "^1.0.0" - } - }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -11930,11 +11693,6 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-readable-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", - "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==" - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", diff --git a/package.json b/package.json index ba401650..613ad633 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "cli-progress": "3.11.1", "cli-table3": "0.6.2", "commander": "9.3.0", + "dayjs": "1.11.3", "debug": "4.3.4", "dockerode": "3.3.2", "find-package-json": "1.2.0", @@ -67,7 +68,6 @@ "lodash": "4.17.21", "minimatch": "3.1.2", "mixin-deep": "2.0.1", - "moment": "2.29.3", "npm-registry-fetch": "12.0.0", "open": "8.4.0", "prompts": "2.4.2", @@ -83,14 +83,14 @@ "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.14.0", + "eslint": "8.18.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.26.0", "husky": "7.0.4", "is-ci": "3.0.1", "mocha": "9.2.2", "mocked-env": "1.3.5", - "nock": "13.2.6", + "nock": "13.2.7", "nyc": "15.1.0", "rewire": "6.0.0", "sinon": "11.1.2" @@ -102,8 +102,7 @@ ] }, "overrides": { - "mixin-deep": "2.0.1", - "cache-base": "2.0.2", + "got": "11.8.5", "ansi-regex": "5.0.1" } } diff --git a/src/client/agents.js b/src/client/agents.js index c7aa8b4a..ad4a9f23 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -24,15 +24,15 @@ module.exports = class Agents { this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}`; } - invokeAgentService(projectId, token, agentName, serviceName, params, sync) { + invokeAgentService(projectId, token, agentName, serviceName, params, options) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/agentinvoke/${encodeURIComponent(agentName)}/services/${serviceName}`; debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got .post(endpoint, { headers: defaultHeaders(token), -json: params, - searchParams: { sync }, + json: params, + searchParams: { sync: options.sync, scheduleName: options.schecduleName, scheduleCron: options.scheduleCron }, }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 4333e230..06a036ba 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -34,8 +34,8 @@ module.exports = class ApiServerClient { */ async listProjects(token, filter, limit, skip, sort) { const fetched = await this._client(token) - .request(gql`{ - projects ( filter: "${filter}", limit: "${limit}", skip: "${skip}", sort: "${sort}" ) { name, title, description} } + .request(gql`{ + projects ( filter: "${filter}", limit: "${limit}", skip: "${skip}", sort: "${sort}" ) { name, title, description} } `); return _.get(fetched, 'projects', []); } diff --git a/src/client/tasks.js b/src/client/tasks.js index 92fdf704..a84f927f 100644 --- a/src/client/tasks.js +++ b/src/client/tasks.js @@ -68,7 +68,6 @@ module.exports = class Tasks { .catch((err) => constructError(err)); } - // todo delete/cancel Task deleteTask(projectId, token, taskName, verbose = false) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}`; @@ -81,4 +80,30 @@ module.exports = class Tasks { .then((res) => ({ ...res })) .catch((err) => constructError(err)); } + + pauseTask(projectId, token, taskName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}/pause`; + debug('pauseTask(%s) => %s', taskName, endpoint); + return got + .post(endpoint, { + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); + } + + resumeTask(projectId, token, taskName, verbose = false) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}/resume`; + debug('resumeTask(%s) => %s', taskName, endpoint); + return got + .post(endpoint, { + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); + } }; diff --git a/src/commands/actions.js b/src/commands/actions.js index 7b4738cb..ab55b50d 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -16,10 +16,13 @@ const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); -const moment = require('moment'); +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Actions = require('../client/actions'); +dayjs.extend(relativeTime); + const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, handleTable, printExtendedLogs, handleListFailure, @@ -56,7 +59,7 @@ module.exports.ListActionsCommand = class { handleTable( tableSpec, result, - (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No actions found', ); } diff --git a/src/commands/agents.js b/src/commands/agents.js index 32657105..209e11eb 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -17,10 +17,14 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); const _ = require('lodash'); -const moment = require('moment'); +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agents = require('../client/agents'); + +dayjs.extend(relativeTime); + const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, handleTable, printExtendedLogs, @@ -92,7 +96,7 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { handleTable( LISTTABLEFORMAT, result, - (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No agents found', ); } @@ -172,7 +176,7 @@ module.exports.InvokeAgentServiceCommand = class { debug('params: %o', params); const agents = new Agents(profile.url); - agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params, options.sync).then((response) => { + agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params, options).then((response) => { if (response.success) { const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); @@ -288,7 +292,7 @@ module.exports.ListActivationsCommand = class { handleTable(tableSpec, _.map(result, (o) => ({ ...o, name: genName(o), - start: o.start ? moment(o.start).fromNow() : '-', + start: o.start ? dayjs(o.start).fromNow() : '-', })), null, 'No activations found'); } } else { @@ -365,7 +369,7 @@ module.exports.ListAgentSnapshotsCommand = class { handleTable( tableSpec, result, - (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' }), + (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), 'No snapshots found', ); } diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 597f0732..3bca1785 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -23,10 +23,13 @@ const _ = { startsWith: require('lodash/startsWith'), }; const debug = require('debug')('cortex:cli'); -const moment = require('moment'); +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Assessments = require('../client/assessments'); +dayjs.extend(relativeTime); + const { printSuccess, printError, parseObject, filterObject, handleTable, printExtendedLogs, handleListFailure, @@ -200,7 +203,7 @@ module.exports.ListAssessmentCommand = class { { column: 'Modified', field: '_updatedAt' }, { column: 'Author', field: '_createdBy' }, ]; - handleTable(tableSpec, result, (o) => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); + handleTable(tableSpec, result, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); } }) .catch((err) => { @@ -296,7 +299,7 @@ module.exports.ListAssessmentReportCommand = class { { column: 'Author', field: '_createdBy' }, ]; response.data.forEach((r) => r.summary = JSON.stringify(Object.fromEntries(r.summary.map((item) => [item.type, item.count])))); - handleTable(tableSpec, response.data, (o) => ({ ...o, _updatedAt: o._updatedAt ? moment(o._updatedAt).fromNow() : '-' }), `No report found for the Assessment ${name}`); + handleTable(tableSpec, response.data, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), `No report found for the Assessment ${name}`); } }) .catch((err) => { diff --git a/src/commands/connections.js b/src/commands/connections.js index 2e62b94d..cd0a5b58 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -16,11 +16,14 @@ const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); -const moment = require('moment'); +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Connections = require('../client/connections'); const Content = require('../client/content'); +dayjs.extend(relativeTime); + const { printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, CONNECTIONTABLEFORMAT, fileExists, handleTable, @@ -52,7 +55,7 @@ module.exports.ListConnections = class ListConnections { handleTable( CONNECTIONTABLEFORMAT, result, - (o) => ({ ...o, createdAt: o.createdAt ? moment(o.createdAt).fromNow() : '-' }), + (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), 'No connections found', ); } diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 38f3c42f..48623504 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -17,7 +17,8 @@ const fs = require('fs'); const _ = require('lodash'); const debug = require('debug')('cortex:cli'); -const moment = require('moment'); +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { @@ -26,6 +27,8 @@ const { handleListFailure, } = require('./utils'); +dayjs.extend(relativeTime); + class ListExperiments { constructor(program) { this.program = program; @@ -149,8 +152,8 @@ class ListRuns { { column: 'Artifacts', field: 'artifacts' }, ]; const trans = (o) => { - o.startTime = o.startTime ? moment.unix(o.startTime).format('YYYY-MM-DD HH:mm a') : ''; - o.took = o.took ? moment.duration(o.took, 'seconds').humanize() : ''; + o.startTime = o.startTime ? dayjs(o.startTime).format('YYYY-MM-DD HH:mm a') : ''; + o.took = o.took ? dayjs.duration(o.took, 'seconds').humanize() : ''; o.params = _.map(o.params, (v, k) => `${k}: ${v}`).join('\n'); o.metrics = _.map(o.metrics, (v, k) => `${k}: ${v}`).join('\n'); o.artifacts = Object.keys(_.get(o, 'artifacts', {})).join(', '); diff --git a/src/commands/models.js b/src/commands/models.js index ff00730c..c9a912e3 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -20,7 +20,8 @@ const _ = { pick: require('lodash/pick'), }; const debug = require('debug')('cortex:cli'); -const moment = require('moment'); +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Models = require('../client/models'); const Experiments = require('../client/experiments'); @@ -29,6 +30,8 @@ const { handleListFailure, } = require('./utils'); +dayjs.extend(relativeTime); + const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, } = require('./utils'); @@ -95,7 +98,7 @@ module.exports.ListModelsCommand = class ListModelsCommand { handleTable( LISTTABLEFORMAT, result, - (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No models found', ); } @@ -133,7 +136,7 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { handleTable( RUNTABLEFORMAT, result, - (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No runs found', ); } diff --git a/src/commands/skills.js b/src/commands/skills.js index 4dc63bfa..5dad49d7 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -16,11 +16,14 @@ const _ = require('lodash'); const fs = require('fs'); const debug = require('debug')('cortex:cli'); -const moment = require('moment'); +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const Agent = require('../client/agents'); +dayjs.extend(relativeTime); + const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, handleTable, @@ -129,7 +132,7 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { return handleTable( tableFormat, _.sortBy(result, options.sort ? [] : ['name']), - (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No skills found', ); } diff --git a/src/commands/tasks.js b/src/commands/tasks.js index bca8b5c1..b2fb8c5b 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -16,12 +16,33 @@ const debug = require('debug')('cortex:cli'); const _ = require('lodash'); -const moment = require('moment'); +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Tasks = require('../client/tasks'); - const { printSuccess, printError, handleTable } = require('./utils'); +dayjs.extend(relativeTime); + +const TASK_LIST_TABLE = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Activation Id', field: 'activationId', width: 40 }, + { column: 'Skill Name', field: 'skillName', width: 30 }, + { column: 'Action Name', field: 'actionName', width: 30 }, + { column: 'Status', field: 'state', width: 20 }, + { column: 'Started', field: 'start', width: 25 }, + { column: 'Took', field: 'took', width: 25 }, + ]; + +const SCHED_LIST_TABLE = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Skill Name', field: 'skillName', width: 30 }, + { column: 'Action Name', field: 'actionName', width: 30 }, + { column: 'Status', field: 'state', width: 20 }, + { column: 'Started', field: 'start', width: 25 }, + { column: 'Schedule', field: 'schedule', width: 12 }, +]; + module.exports.ListTasksCommand = class { constructor(program) { this.program = program; @@ -31,56 +52,49 @@ module.exports.ListTasksCommand = class { const profile = await loadProfile(options.profile); const projectId = options.project || profile.project; debug('%s.listTasks(%s)', profile.name); - const tasks = new Tasks(profile.url); - const queryParams = {}; - - ['activationId', 'skillName', 'actionName', 'sort'].forEach((validParam) => { - if (options[validParam]) queryParams[validParam] = options[validParam]; - }); try { - const response = await tasks.listTasks(projectId, profile.token, queryParams); + const response = await tasks.listTasks(projectId, profile.token, options); + let format = 'k8sFormat'; // Assume old format if (response.success) { let taskList = _.get(response, 'tasks', []); if (_.isEmpty(taskList)) { return printSuccess('No tasks found'); } - switch (_.lowerCase(options.sort)) { - case 'asc': - taskList = _.sortBy(tasks, ['startTime']); - break; - case 'desc': - taskList = _.reverse(_.sortBy(tasks, ['startTime'])); - break; - default: - // return as-is order - break; - } - if (options.json) { - return printSuccess(JSON.stringify(taskList, null, 2), options); - } - let result; - // Old response format + + // Old response format ["taskName", "taskName",...] if (_.isString(taskList[0])) { - result = _.map(taskList, (t) => ({ name: t })); + taskList = _.map(taskList, (t) => ({ name: t })); } else { - result = _.map(taskList, (t) => ({ + if (!_.has(taskList[0], 'status')) { // previous k8s format has [{ status},{},{}] + format = 'dbFormat'; + } + taskList = _.map(taskList, (t) => ({ ...t, - start: t.startTime ? moment(t.startTime).fromNow() : '-', - took: t.endTime ? moment.duration(t.endTime - t.startTime).humanize() : '-', + state: t.status || t.state, // remap just in case.. + start: t.startTime ? dayjs(t.startTime).fromNow() : '-', + took: t.endTime ? dayjs(t.endTime).from(dayjs(t.startTime), true) : '-', })); } - const tableFormat = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Activation Id', field: 'activationId', width: 40 }, - { column: 'Skill Name', field: 'skillName', width: 30 }, - { column: 'Action Name', field: 'actionName', width: 30 }, - { column: 'Status', field: 'status', width: 20 }, - { column: 'Started', field: 'start', width: 25 }, - { column: 'Took', field: 'took', width: 25 }, - ]; - return handleTable(tableFormat, result); + if (format === 'k8sFormat') { + switch (_.lowerCase(options.sort)) { + case 'asc': + taskList = _.sortBy(taskList, ['startTime']); + break; + case 'desc': + taskList = _.reverse(_.sortBy(taskList, ['startTime'])); + break; + default: + // return as-is order + break; + } + } + if (options.json) { + return printSuccess(JSON.stringify(taskList, null, 2), options); + } + const tableCols = options.scheduled ? SCHED_LIST_TABLE : TASK_LIST_TABLE; + return handleTable(tableCols, taskList); } return printError(`Failed to list tasks: ${response.message}`, options); } catch (err) { @@ -127,9 +141,9 @@ module.exports.TaskLogsCommand = class TaskLogsCommand { if (response.success) { return printSuccess(response.logs, options); } - return printError(`Failed to List Task Logs ${taskName}: ${response.message}`, options); + return printError(`Failed to List Task Logs "${taskName}": ${response.message}`, options); } catch (err) { - return printError(`Failed to query Task Logs ${taskName}: ${err.status} ${err.message}`, options); + return printError(`Failed to query Task Logs "${taskName}": ${err.status} ${err.message}`, options); } } }; @@ -154,3 +168,50 @@ module.exports.TaskDeleteCommand = class TaskDeleteCommand { } } }; + +module.exports.TaskPauseCommand = class TaskPauseCommand { + constructor(program) { + this.program = program; + } + + async execute(taskNames, options) { + const profile = await loadProfile(options.profile); + debug('%s.executePauseTask(%s)', profile.name, taskNames.join(',')); + const tasks = new Tasks(profile.url); + try { + return Promise.all(taskNames.map(async (taskName) => { + const response = await tasks.pauseTask(options.project || profile.project, profile.token, taskName, options.verbose); + if (response.success) { + return printSuccess(JSON.stringify(response), options); + } + return printError(`Failed to pause "${taskName}": ${response.message}`, options); + })); + } catch (err) { + return printError(`Error pausing "${taskNames.join(',')}": ${err.status} ${err.message}`, options); + } + } +}; + +module.exports.TaskResumeCommand = class TaskResumeCommand { + constructor(program) { + this.program = program; + } + + async execute(taskNames, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeResumeTask(%s)', profile.name, taskNames.join(',')); + const tasks = new Tasks(profile.url); + try { + return Promise.all(taskNames.map(async (taskName) => { + const response = await tasks.resumeTask(options.project || profile.project, profile.token, taskName, options.verbose); + if (response.success) { + return printSuccess(JSON.stringify(response), options); + } + return printError(`Failed to resume task "${taskName}": ${response.message}`, options); + })); + } catch (err) { + return printError(`Error resume tasks "${taskNames.join(',')}": ${err.status} ${err.message}`, options); + } + } +}; + diff --git a/src/commands/types.js b/src/commands/types.js index e727a1d0..12816f77 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -16,7 +16,8 @@ const fs = require('fs'); const debug = require('debug')('cortex:cli'); -const moment = require('moment'); +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { @@ -27,6 +28,8 @@ const { printSuccess, printError, parseObject, handleTable, } = require('./utils'); +dayjs.extend(relativeTime); + module.exports.SaveTypeCommand = class SaveTypeCommand { constructor(program) { this.program = program; @@ -79,7 +82,7 @@ module.exports.ListTypesCommand = class ListTypesCommand { handleTable( LISTTABLEFORMAT, result, - (o) => ({ ...o, updatedAt: o.updatedAt ? moment(o.updatedAt).fromNow() : '-' }), + (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No types found', ); } diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index a3451c50..54909d26 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -2,8 +2,8 @@ const inquirer = require('inquirer'); const chalk = require('chalk'); const got = require('got'); const open = require('open'); -const moment = require('moment'); - +const dayjs = require('dayjs'); +const relativeTime = require('dayjs/plugin/relativeTime'); const { validateToken, persistToken } = require('./workspace-utils'); const _ = { @@ -22,6 +22,8 @@ const _ = { const { readConfig } = require('../../config'); const { printSuccess, printError, useColor } = require('../utils'); +dayjs.extend(relativeTime); + const GITHUB_APP_CLIENTID = 'Iv1.e0e84c2a5fa7c935'; const DEFAULT_TEMPLATE_REPO = 'CognitiveScale/cortex-code-templates'; const DEFAULT_TEMPLATE_BRANCH = 'main'; @@ -80,13 +82,13 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { let pollInterval = deviceCode.interval; let accessToken; - const mom = moment().add(expiry, 'seconds'); + const mom = dayjs().add(expiry, 'seconds'); (function poller(options) { process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${useColor(options) ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) : deviceCode.user_code - } ${moment(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); + } ${dayjs(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); const pollTimer = setTimeout(async () => { const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { diff --git a/src/config.js b/src/config.js index 5b2b0985..7babda76 100644 --- a/src/config.js +++ b/src/config.js @@ -19,7 +19,7 @@ const os = require('os'); const fs = require('fs'); const path = require('path'); const Joi = require('joi'); -const moment = require('moment'); +const dayjs = require('dayjs'); const debug = require('debug')('cortex:config'); const jose = require('jose-node-cjs-runtime'); const { printError } = require('./commands/utils'); @@ -39,7 +39,7 @@ async function generateJwt(profile, expiresIn = '2m') { const infoResp = await infoClient.getInfo(); const serverTs = _.get(infoResp, 'serverTs', Date.now()); const [, amount, unit] = durationRegex.exec(expiresIn); - const expiry = moment(serverTs).add(_.toNumber(amount), unit).unix(); + const expiry = dayjs(serverTs).add(_.toNumber(amount), unit).unix(); return new jose.SignJWT({}) .setProtectedHeader({ alg: 'EdDSA', kid: jwk.kid }) .setSubject(username) diff --git a/test/tasks.js b/test/tasks.js index aa9cc054..7c0c52df 100644 --- a/test/tasks.js +++ b/test/tasks.js @@ -70,9 +70,8 @@ describe('Tasks', () => { it('list tasks command (old response)', async () => { const program = require('../bin/cortex-tasks'); - const requestPath = `/fabric/v4/projects/${PROJECT}/tasks`; const response = { success: true, tasks: ['task0', 'task1'] }; - nock(serverUrl).get(requestPath).reply(200, response); + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); const output = getPrintedLines(); const errs = getErrorLines(); @@ -85,9 +84,8 @@ describe('Tasks', () => { it('list tasks command JSON no tasks', async () => { const program = require('../bin/cortex-tasks'); - const requestPath = `/fabric/v4/projects/${PROJECT}/tasks`; const response = { success: true, tasks: [] }; - nock(serverUrl).get(requestPath).reply(200, response); + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); const output = getPrintedLines(); const errs = getErrorLines(); @@ -100,7 +98,6 @@ describe('Tasks', () => { it('list tasks command', async () => { const program = require('../bin/cortex-tasks'); const now = Date.now(); - const requestPath = `/fabric/v4/projects/${PROJECT}/tasks`; const response = { success: true, tasks: [ @@ -112,8 +109,7 @@ describe('Tasks', () => { }, ], }; - nock(serverUrl).get(requestPath).reply(200, response); - + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); const output = getPrintedLines(); const errs = getErrorLines(); @@ -130,14 +126,13 @@ describe('Tasks', () => { }); it('list tasks client JSON', async () => { - const taskCtl = new Tasks('http://127.0.0.1:8000'); + const taskCtl = new Tasks(serverUrl); const options = { json: true, }; - const requestPath = `/fabric/v4/projects/${PROJECT}/tasks?json=true`; const response = { success: true, tasks: ['task0', 'task1'] }; - nock('http://127.0.0.1:8000').get(requestPath).reply(200, response); + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); const taskList = await taskCtl.listTasks(PROJECT, '', options); console.log(`taskList: ${JSON.stringify(taskList)}`); expect(taskList).to.deep.equal(response); From 877fce675289b7f33740bd8c802b1a2495cacceb Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Fri, 1 Jul 2022 14:09:31 -0500 Subject: [PATCH 734/864] Add duration plugin for dayjs to fix experiments list (#603) --- src/commands/experiments.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 48623504..779e1cc7 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -19,6 +19,7 @@ const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const dayjs = require('dayjs'); const relativeTime = require('dayjs/plugin/relativeTime'); +const duration = require('dayjs/plugin/duration'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { @@ -27,6 +28,7 @@ const { handleListFailure, } = require('./utils'); +dayjs.extend(duration); dayjs.extend(relativeTime); class ListExperiments { From 58835876733b82746b83f16c9e0466d4253d5a34 Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Fri, 1 Jul 2022 16:00:00 -0400 Subject: [PATCH 735/864] FAB-4838 - Fixed wrapping problem in CLI error output (#601) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- src/commands/workspaces/build.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index d58464f2..bda2ba2f 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -215,16 +215,19 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { if (skillInfo.length > 0) { const skillNameList = _.map(skillInfo, 'skill.name'); const status = new DockerBuildProgressTracker(skillNameList.join(', ')); - await Promise.all(_.map(skillInfo, (info) => { - const actions = info.skill.actions ? info.skill.actions : []; - return Promise.all(_.map(actions, (action) => this.buildAction( - path.dirname(info.uri), - action, - status, - options, - ))); - })); - status.stop(); + try { + await Promise.all(_.map(skillInfo, (info) => { + const actions = info.skill.actions ? info.skill.actions : []; + return Promise.all(_.map(actions, (action) => this.buildAction( + path.dirname(info.uri), + action, + status, + options, + ))); + })); + } finally { + status.stop(); + } printSuccess('Build Complete', options); } else { printSuccess('No skills found', options); From 2435437de675da3e3cbbd7094a79af1d8e1cfb36 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Sat, 2 Jul 2022 20:22:28 -0500 Subject: [PATCH 736/864] Taskv3 (#605) * - Use dayjs over momentjs, moment is in maintenance mode needed better date parsing.. - Modify task list to support tasks from mongo - Fix gh-got & got vuln Add --schduled to tasks list cli to show scheduled tasks Added command for schedule task, pause, resume Clean task list with scheduled tasks FAB-4477 sort options work for both other/new task apis * Tweak pause/resume cli option to make wording less confusing * Fix typo in code --- src/client/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/agents.js b/src/client/agents.js index ad4a9f23..d8f2413e 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -32,7 +32,7 @@ module.exports = class Agents { .post(endpoint, { headers: defaultHeaders(token), json: params, - searchParams: { sync: options.sync, scheduleName: options.schecduleName, scheduleCron: options.scheduleCron }, + searchParams: { sync: options.sync, scheduleName: options.scheduleName, scheduleCron: options.scheduleCron }, }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); From 9228f6d674fdda8a21ed6900680b3d89d9eb68c4 Mon Sep 17 00:00:00 2001 From: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Date: Mon, 4 Jul 2022 11:25:42 +0530 Subject: [PATCH 737/864] Version bump (#606) * hotifx since 6.3.0 cli changes are merged for prgy * Update package.json * Update package-lock.json * version bump Co-authored-by: Akarsh Prasad <aprasad@cognitivescale.com> Co-authored-by: Yashwanth Reddy <yreddy@cognitivescale.com> Co-authored-by: Akarsh <aprasad@c12.com> --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14068b0a..bc2c5df3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.0.12", + "version": "2.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.0.12", + "version": "2.1.0", "license": "Apache-2.0", "dependencies": { "boolean": "3.2.0", diff --git a/package.json b/package.json index 613ad633..5f8610c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.0.11", + "version": "2.1.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "types": "./client/index.d.ts", From 46563c19d6ed939d678c7187cd527530ab2e69a4 Mon Sep 17 00:00:00 2001 From: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Date: Mon, 4 Jul 2022 11:32:50 +0530 Subject: [PATCH 738/864] Version bump (#608) * hotifx since 6.3.0 cli changes are merged for prgy * Update package.json * Update package-lock.json * version bump Co-authored-by: Akarsh Prasad <aprasad@cognitivescale.com> Co-authored-by: Yashwanth Reddy <yreddy@cognitivescale.com> Co-authored-by: Akarsh <aprasad@c12.com> From 058034833728845cd837b9ce4c568c4f55b65992 Mon Sep 17 00:00:00 2001 From: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Date: Mon, 4 Jul 2022 11:39:39 +0530 Subject: [PATCH 739/864] Conflicts (#609) * hotifx since 6.3.0 cli changes are merged for prgy * Update package.json * Update package-lock.json Co-authored-by: Akarsh Prasad <aprasad@cognitivescale.com> Co-authored-by: Yashwanth Reddy <yreddy@cognitivescale.com> Co-authored-by: Akarsh <aprasad@c12.com> From f983552de5c70b38e961fa46f4007ca97779c28c Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 5 Jul 2022 09:28:55 -0500 Subject: [PATCH 740/864] Rebase main --- bin/cortex-agents.js | 11 ++-- bin/cortex-assessments.js | 6 ++- bin/cortex-campaigns.js | 6 ++- bin/cortex-connections.js | 7 +-- bin/cortex-experiments.js | 8 +-- bin/cortex-missions.js | 6 ++- bin/cortex-projects.js | 6 ++- bin/cortex-skills.js | 6 ++- bin/cortex-types.js | 6 ++- .../assets/templates/skill/daemon/make.bat | 51 ------------------- .../templates/skill/external-api/make.bat | 30 ----------- .../assets/templates/skill/job/make.bat | 51 ------------------- 12 files changed, 40 insertions(+), 154 deletions(-) delete mode 100644 src/commands/assets/templates/skill/daemon/make.bat delete mode 100644 src/commands/assets/templates/skill/external-api/make.bat delete mode 100644 src/commands/assets/templates/skill/job/make.bat diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index ce7480a2..0515b219 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -20,7 +20,10 @@ const chalk = require('chalk'); const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, +} = require('../src/constants'); const { CreateAgentSnapshotCommand, @@ -72,7 +75,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListAgentsCommand(program).execute(options); @@ -208,7 +211,7 @@ program .option('--status <status>', 'Filters activations by status [complete|error].') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <asc|desc>', 'Sort the activations by start timestamp ascending (asc) or descending (desc)') + .option('--sort <asc|desc>', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) .option('--filter <filter>', 'A Mongo style filter to use.') .action(withCompatibilityCheck((options) => { try { @@ -270,7 +273,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((agentName, options) => { try { new ListAgentSnapshotsCommand(program).execute(agentName, options); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 37bec618..0377b992 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -33,7 +33,9 @@ const { ExportAssessmentReportCommand, DependencyTreeCommand, } = require('../src/commands/assessments'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +} = require('../src/constants'); program.name('cortex assessments'); program.description('Work with Cortex Assessments'); @@ -134,7 +136,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 11782f65..cb0874e3 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +} = require('../src/constants'); const { ListCampaignsCommand, @@ -48,7 +50,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListCampaignsCommand(program).execute(options); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index c6ff1d27..60c1bb5c 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, +} = require('../src/constants'); const { ListConnections, @@ -44,10 +46,9 @@ program .option('--project <project>', 'The project to use') .option('--json', 'Output results using JSON') .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') - .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListConnections(program).execute(options); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index a3a64672..897b19ce 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +} = require('../src/constants'); const { ListExperiments, @@ -53,7 +55,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListExperiments(program).execute(options); @@ -109,7 +111,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((experimentName, options) => { try { new ListRuns(program).execute(experimentName, options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 6d80ea01..30fa658c 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -22,7 +22,9 @@ const { program } = require('commander'); const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +} = require('../src/constants'); const { ListMissionsCommand, @@ -49,7 +51,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((campaignName, options) => { try { new ListMissionsCommand(program).execute(campaignName, options); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 6db37df3..23284377 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -27,7 +27,9 @@ const { DescribeProjectCommand, DeleteProjectCommand, } = require('../src/commands/projects'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +} = require('../src/constants'); program.name('cortex projects'); program.description('Work with Cortex Projects'); @@ -65,7 +67,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListProjectsCommand(program).execute(options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 69b7d77b..ad5208aa 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +} = require('../src/constants'); const { SaveSkillCommand, @@ -106,7 +108,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck(async (options) => { try { diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 216f5c4d..63e436a5 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -20,7 +20,9 @@ const chalk = require('chalk'); const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); -const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +} = require('../src/constants'); const { SaveTypeCommand, @@ -62,7 +64,7 @@ program .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) .action(withCompatibilityCheck((options) => { try { new ListTypesCommand(program).execute(options); diff --git a/src/commands/assets/templates/skill/daemon/make.bat b/src/commands/assets/templates/skill/daemon/make.bat deleted file mode 100644 index aabdc3fb..00000000 --- a/src/commands/assets/templates/skill/daemon/make.bat +++ /dev/null @@ -1,51 +0,0 @@ -@echo off - -for /f %%q in ("%~dp0.") do SET SKILL_NAME=%%~nxq - -SET IMAGE_TAG=latest -SET DOCKER_IMAGE_URL=%DOCKER_PREGISTRY_URL%/%SKILL_NAME%:%IMAGE_TAG% - -GOTO :checkenv %* - -:build - echo Building %SKILL_NAME% action image... - cmd /c docker build -t %DOCKER_IMAGE_URL% . - echo done building %SKILL_NAME% action image - GOTO :EOF - -:push - echo Pushing %SKILL_NAME% action image ... - :: cmd /c cortex docker login - cmd /c docker push %DOCKER_IMAGE_URL% - echo done pushing %SKILL_NAME% action image - GOTO :EOF - -:deploy - echo Deploying %SKILL_NAME% ... - cmd /c cortex actions deploy action.json --project %PROJECT_NAME% --docker %DOCKER_IMAGE_URL% - cmd /c cortex skills save -y skill.yaml --project %PROJECT_NAME% - echo Waiting for Skill %SKILL_NAME% to deploy - TIMEOUT 10 - echo Deployed %SKILL_NAME%. Check "actionStatuses" for deployment status - GOTO :get - -:tests - echo Testing %SKILL_NAME% - cmd /c cortex skills invoke --params-file ./test/payload.json %SKILL_NAME% request --project %PROJECT_NAME% - GOTO :EOF - -:get - cmd /c cortex skills describe %SKILL_NAME% --verbose --project %PROJECT_NAME% - GOTO :EOF - -:checkenv - echo Validating environment variables - IF "!DOCKER_PREGISTRY_URL!" == "" ( - echo Environment variable DOCKER_PREGISTRY_URL is not set. Set it like <docker-registry-url>/<namespace-org>" - exit/b 1 - ) - IF "!PROJECT_NAME!" == "" ( - echo "Environment variable PROJECT_NAME is not set. Set this to Cortex project name." - exit/b 1 - ) - GOTO :%1 diff --git a/src/commands/assets/templates/skill/external-api/make.bat b/src/commands/assets/templates/skill/external-api/make.bat deleted file mode 100644 index e612e567..00000000 --- a/src/commands/assets/templates/skill/external-api/make.bat +++ /dev/null @@ -1,30 +0,0 @@ -@echo off - -for /f %%q in ("%~dp0.") do SET SKILL_NAME=%%~nxq - -SET IMAGE_TAG=latest -SET DOCKER_IMAGE_URL=%DOCKER_PREGISTRY_URL%/%SKILL_NAME%:%IMAGE_TAG% - -GOTO :checkenv %* - -:deploy - echo Deploying %SKILL_NAME% ... - cmd /c cortex skills save -y skill.yaml --project %PROJECT_NAME% - GOTO :get - -:tests - echo Testing %SKILL_NAME% - cmd /c cortex skills invoke --params-file ./test/payload.json %SKILL_NAME% input --project %PROJECT_NAME% - GOTO :EOF - -:get - cmd /c cortex skills describe %SKILL_NAME% --verbose --project %PROJECT_NAME% - GOTO :EOF - -:checkenv - echo Validating environment variables - IF "!PROJECT_NAME!" == "" ( - echo "Environment variable PROJECT_NAME is not set. Set this to Cortex project name." - exit/b 1 - ) - GOTO :%1 diff --git a/src/commands/assets/templates/skill/job/make.bat b/src/commands/assets/templates/skill/job/make.bat deleted file mode 100644 index a2b810db..00000000 --- a/src/commands/assets/templates/skill/job/make.bat +++ /dev/null @@ -1,51 +0,0 @@ -@echo off - -for /f %%q in ("%~dp0.") do SET SKILL_NAME=%%~nxq - -SET IMAGE_TAG=latest -SET DOCKER_IMAGE_URL=%DOCKER_PREGISTRY_URL%/%SKILL_NAME%:%IMAGE_TAG% - -GOTO :checkenv %* - -:build - echo Building %SKILL_NAME% action image... - cmd /c docker build -t %DOCKER_IMAGE_URL% . - echo done building %SKILL_NAME% action image - GOTO :EOF - -:push - echo Pushing %SKILL_NAME% action image ... - :: cmd /c cortex docker login - cmd /c docker push %DOCKER_IMAGE_URL% - echo done pushing %SKILL_NAME% action image - GOTO :EOF - -:deploy - echo Deploying %SKILL_NAME% ... - cmd /c cortex actions deploy action.json --project %PROJECT_NAME% --docker %DOCKER_IMAGE_URL% - cmd /c cortex skills save -y skill.yaml --project %PROJECT_NAME% - echo Waiting for Skill %SKILL_NAME% to deploy - TIMEOUT 10 - echo Deployed %SKILL_NAME%. Check "actionStatuses" for deployment status - GOTO :get - -:tests - echo Testing %SKILL_NAME% - cmd /c cortex skills invoke --params-file ./test/payload.json %SKILL_NAME% params --project %PROJECT_NAME% - GOTO :EOF - -:get - cmd /c cortex skills describe %SKILL_NAME% --verbose --project %PROJECT_NAME% - GOTO :EOF - -:checkenv - echo Validating environment variables - IF "!DOCKER_PREGISTRY_URL!" == "" ( - echo Environment variable DOCKER_PREGISTRY_URL is not set. Set it like <docker-registry-url>/<namespace-org>" - exit/b 1 - ) - IF "!PROJECT_NAME!" == "" ( - echo "Environment variable PROJECT_NAME is not set. Set this to Cortex project name." - exit/b 1 - ) - GOTO :%1 From 2663a633713c075be9dbada79ca5476d842ec54e Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Thu, 14 Jul 2022 04:17:51 -0500 Subject: [PATCH 741/864] Message when rows are limited (#604) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Ensure LF's on Windows * * Renamed generate command to workspace * workspace command now creates skill templates fromn the cortex-code repository. * Updated gitignore * * Validate git token, and automatically run config if not configured. * * Fixed up support for multiple config versions. * Added new config version 4, which includes template repo config and IDE registry support. * Properly handle default publish destination. * Changed from workspace to workspaces * * Moved workspace implementation into folder * Removed old generate templates * Build command works * Started on publish command (incomplete) * Minor code restructure * Support removing encoding of repo url in skill.yaml * Minor messaging changes * More messaging fixes * Fixed a problem with naming image * Added registry management commands * Indicate active registry in list * Pass options to print routines to respect color option * Changed subcommand to registry instead of registries * Image name in skill needs to have the generated tag * Fix to allow for templates in subfolders * Minor cleanup and improved some messaging * Fixes to tests so they work under Windows. All you Apple fanboys can suck it. * Updated lockfile * Minor fixes and improvements * WIP * Securely persist github token * WIP * Audit fixes * Remove test command for now * oops. * Audit fix * Removed allowList entry * Updated lock file * Fixed lint bug * Fix vulns * Fixed an incorrect import * Moved typescript types for cortex into the CLI client. * added prefix support for content * Update cortex-skills.js * Update tasks.js * Use the slim python images as a default * Update tasks.js * Removed allowList entry * Minor text formatting fix * lint fix * Added deprecation for generate command. * lint fix * Removed workspace test command. Will only support build and publish from now on. * Added tests for generation * show limit message * lint fix * Updated lockfile and fixed a small merge error * Fixed lockfile with corrected npmrc file * * Updated engines requirement to 16 * Disabled workspace tests in CI, due to keytar not having access to a keystore. Need to figure out a workaround. * Use correct this context for test handler * Add libsecret to CI image * No sudo required * And of course, we need to run update first. * Add libsecret to CI container * Does it need apt-utils? * PUNT! Dont process docs for workspaces. * removed unwanted options * Removed some troubleshooting changes inavertently left in build.sh * added default sort with {updatedAt: -1} * fixes * added code to catch error * fix: upgrade minimatch from 3.0.4 to 3.1.2 Snyk has created this PR to upgrade minimatch from 3.0.4 to 3.1.2. See this package in npm: https://www.npmjs.com/package/minimatch See this project in Snyk: https://app.snyk.io/org/fabric-test-sast-and-sca/project/035a2f5b-5ee7-4ea1-90e2-f2a44f281ef8?utm_source=github&utm_medium=referral&page=upgrade-pr * fixing params * Added missing template vars: generatedFiles and template for CLI * Add async await to top level script to see if this improves test behavior * Minor version bumps for vulns * switch offset back to skip for list-activations (#564) * switch offset back to skip for list-activations * Update agents.js * merged with develop * code refactor * fixes * FAB-1213 Options requiring a value should fail is value not provided, remove configure related stack traces Tweak boolean options Dedup header code and use defaultHeaders() function, fix placement of user-agent header Fix --parmsFile => --paramsFile make --color [boolean] still accepts on/off * code refactor * added unit tests to invalidate wrong updatedAt sort params * removing filter option from connections list * Use GET_DEFAULT_SORT_CLI_OPTION instead of hard-coded sort * addressed feedback comments * publish artifacts as part of the PR pipeline as well * FAB-4534 fix duplicate alias for describing external roles * mark actionDefinition as optional (#570) * fix assessment create command, assessmentDefinition is optional * merging with dev * replace console.log with process.stderr * added compatibility PR check * Add TODO * FAB-4479 add verbose flag to the cli output, include http request and response * FAB-4479 verbose flag * Glob starting with / generates bad paths ... /my/path/my/path/skill.yaml * Enhance Skill/Agent save to make it variadic * verbose and report options were not being passed correctly when getting an activation record * expand debug output for getActivation * removed extra param * FAB-4579 renamed top level `verbose` option on cortex.js to `debug` as it was … (#575) * renamed top level `verbose` option on cortex.js to `debug` as it was conflicting with the existing option available on the `cortex agents get-activation` command * fixed debug option description * Validate provided template name and show error when not found. * Lint fix * Lint fix * Check that provided project name exists and error out if not. * Remove registry option for generate * Fixed registry deletion * Force node version to 16.15.0 as 16.15.1 breaks the audit-ci tool, minor version bumps (#581) * Added comment * Fixed bug FAB-4650 (#583) * Validate --skill parameter * Makes --notree work just like --color * Verify project in config file is valid. * delete types * fixed typos * remove debug * error if skill doesnt contain an action with applied podspec * fixed typo * Bump got from 11.8.3 to 11.8.5 Bumps [got](https://github.com/sindresorhus/got) from 11.8.3 to 11.8.5. - [Release notes](https://github.com/sindresorhus/got/releases) - [Commits](https://github.com/sindresorhus/got/compare/v11.8.3...v11.8.5) --- updated-dependencies: - dependency-name: got dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * Update cortex-types.js (#590) * FAB-4804 - Handle invalid skill name for publish, and improved status output. (#591) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> * FAB-4785 - Fix issue with content publishing (#592) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> * FAB-4817 - Fix error message to include max length, and remove suffix to fix issues with incorrect length checking. (#593) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> * FAB-4815 - Fixed problems with adding and removing registries (#594) * FAB-4815 - Validate registry name on activation * Fixed problems with adding and removing registries Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> * FAB-4817 - Check for MIN name length (#596) * Oops. Enforced the MAX length but not the MIN. * Missing semicolon. Sigh. * A more concise implementation, and fixed problems with repeated validation failures. Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> * Fab 4030 (#597) * initial commit * consistent error message * consistent list returns * added test * fixing integration tests Co-authored-by: Akarsh <aprasad@c12.com> * FAB-4838 - Show build status results correctly. (#599) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> * FAB-4626 - Dont allow skill generation over top of existing skill. (#598) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> * FAB-4815 - Dont allow "empty" registry name. (#600) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> * Taskv3 (#602) * - Use dayjs over momentjs, moment is in maintenance mode needed better date parsing.. - Modify task list to support tasks from mongo - Fix gh-got & got vuln Add --schduled to tasks list cli to show scheduled tasks Added command for schedule task, pause, resume Clean task list with scheduled tasks FAB-4477 sort options work for both other/new task apis * Tweak pause/resume cli option to make wording less confusing * Add duration plugin for dayjs to fix experiments list (#603) * FAB-4838 - Fixed wrapping problem in CLI error output (#601) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> * Message when rows are limited * Update tasks.js Co-authored-by: Darren Schueller <dschueller@cognitivescale.com> Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> Co-authored-by: Akarsh Prasad <aprasad@cognitivescale.com> Co-authored-by: Johan Gielstra <jgielstra@cognitivescale.com> Co-authored-by: snyk-bot <snyk-bot@snyk.io> Co-authored-by: Colton Lee <clee@cognitivescale.com> Co-authored-by: Akarsh <aprasad@c12.com> Co-authored-by: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Co-authored-by: Supriya Singh <46476713+ssingh-CS@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/commands/tasks.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/commands/tasks.js b/src/commands/tasks.js index b2fb8c5b..d60aac59 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -20,7 +20,9 @@ const dayjs = require('dayjs'); const relativeTime = require('dayjs/plugin/relativeTime'); const { loadProfile } = require('../config'); const Tasks = require('../client/tasks'); -const { printSuccess, printError, handleTable } = require('./utils'); +const { + printSuccess, printError, handleTable, printExtendedLogs, +} = require('./utils'); dayjs.extend(relativeTime); @@ -59,6 +61,7 @@ module.exports.ListTasksCommand = class { let format = 'k8sFormat'; // Assume old format if (response.success) { let taskList = _.get(response, 'tasks', []); + printExtendedLogs(taskList, options); if (_.isEmpty(taskList)) { return printSuccess('No tasks found'); } From dbd30e79d4bcc7e58fbbdf69d0dd5e304d7221e5 Mon Sep 17 00:00:00 2001 From: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Date: Thu, 14 Jul 2022 20:10:28 +0530 Subject: [PATCH 742/864] dont print row limited to log for limit = 0 (#610) Co-authored-by: Akarsh <aprasad@c12.com> --- src/commands/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index e63daf1d..4c891fa3 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -393,7 +393,7 @@ module.exports.handleTable = (spec, data, transformer, noDataMessage) => { }; module.exports.printExtendedLogs = (data, options) => { - if (options.limit && Array.isArray(data) && data.length === Number(options.limit)) { + if (options.limit && Array.isArray(data) && data.length === Number(options.limit) && options.limit !== '0') { // don't log if showing all the results process.stderr.write(`Results limited to ${options.limit} rows\n`); } From a2bdd55462a0fb51ac95e84907b40e1834cd55a2 Mon Sep 17 00:00:00 2001 From: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Date: Sat, 16 Jul 2022 22:15:47 +0530 Subject: [PATCH 743/864] Fab 4879 (#611) * dont print row limited to log for limit = 0 * consistent error output for list sessions * fixes Co-authored-by: Akarsh <aprasad@c12.com> --- bin/cortex-sessions.js | 3 ++- src/commands/sessions.js | 14 ++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index caffde3b..a1157b58 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -27,6 +27,7 @@ const { DescribeSessionCommand, ListSessionsCommand, } = require('../src/commands/sessions'); +const { DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); program.name('cortex sessions'); program.description('Work with Cortex Sessions'); @@ -37,7 +38,7 @@ program .description('List session definitions') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--limit <limit>', 'Number of sessions to list') + .option('--limit <limit>', 'Number of sessions to list', DEFAULT_LIST_LIMIT_COUNT) .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 9980cec1..008b638b 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -19,7 +19,11 @@ const _ = require('lodash'); const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Sessions = require('../client/sessions'); -const { SESSIONTABLEFORMAT, formatValidationPath } = require('./utils'); +const { + SESSIONTABLEFORMAT, + formatValidationPath, + handleListFailure, +} = require('./utils'); const { printSuccess, printError, filterObject, parseObject, printTable, handleTable, @@ -79,13 +83,11 @@ module.exports.ListSessionsCommand = class ListSessionsCommand { if (options.json) { if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - handleTable(SESSIONTABLEFORMAT, result, null, 'No sessions found'); + return printSuccess(JSON.stringify(result, null, 2), options); } - } else { - printError(`Failed to list sessions: ${response.status} ${response.message}`, options); + return handleTable(SESSIONTABLEFORMAT, result, null, 'No sessions found'); } + return handleListFailure(response, options, 'Sessions'); }) .catch((err) => { debug(err); From 003ab292f151ec146ee8500db13d37b5b4cd0fc2 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Sat, 16 Jul 2022 18:13:48 -0500 Subject: [PATCH 744/864] FAB-5017 use the v6 agentinvoke endpoint (#615) --- src/client/catalog.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/client/catalog.js b/src/client/catalog.js index 1125801f..584c09dd 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -25,6 +25,7 @@ const { const createEndpoints = (baseUri) => ({ skills: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/skills`, agents: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agents`, + agentinvoke: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agentinvoke`, types: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/types`, campaigns: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, }); @@ -142,7 +143,7 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - listServices(projectId, token, agentName, filter, limit, skip, sort) { + async listServices(projectId, token, agentName, filter, limit, skip, sort) { // TODO removed profile should I use that as the URL ?? checkProject(projectId); debug('listServices() using describeAgent'); @@ -151,18 +152,17 @@ module.exports = class Catalog { if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - return this.describeAgent(projectId, token, agentName).then((response) => { - if (response.success) { - const urlBase = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/services`; - debug('listServices(%s) => %s', agentName, urlBase); - const servicesList = response.agent.inputs - .filter((i) => i.signalType === 'Service') - .map((i) => ({ ...i, url: `${urlBase}/${i.name}` })) - .map((i) => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); - return { success: true, services: servicesList }; - } - return response; - }); + const response = await this.describeAgent(projectId, token, agentName); + if (response.success) { + const urlBase = `${this.endpoints.agentinvoke(projectId)}/${encodeURIComponent(agentName)}/services`; + debug('listServices(%s) => %s', agentName, urlBase); + const servicesList = response.agent.inputs + .filter((i) => i.signalType === 'Service') + .map((i) => ({ ...i, url: `${urlBase}/${i.name}` })) + .map((i) => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); + return { success: true, services: servicesList }; + } + return response; } saveAgent(projectId, token, agentObj) { From 197c1669d452cf769a6ef4058f0a51ee37248e59 Mon Sep 17 00:00:00 2001 From: Snyk bot <snyk-bot@snyk.io> Date: Wed, 20 Jul 2022 10:24:41 +0200 Subject: [PATCH 745/864] [Snyk] Security upgrade node from 16-bullseye to 16.16.0-bullseye-slim (#616) * fix: Dockerfile.c12e-ci.cortex-cli to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-DEBIAN11-MARIADB105-2940556 - https://snyk.io/vuln/SNYK-DEBIAN11-MARIADB105-2940556 - https://snyk.io/vuln/SNYK-DEBIAN11-MARIADB105-2940588 - https://snyk.io/vuln/SNYK-DEBIAN11-MARIADB105-2940588 - https://snyk.io/vuln/SNYK-DEBIAN11-MARIADB105-2940588 * switching base image tag Co-authored-by: Akarsh <aprasad@c12.com> --- Dockerfile.c12e-ci.cortex-cli | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.c12e-ci.cortex-cli b/Dockerfile.c12e-ci.cortex-cli index 07581c77..4cec073f 100644 --- a/Dockerfile.c12e-ci.cortex-cli +++ b/Dockerfile.c12e-ci.cortex-cli @@ -1,4 +1,4 @@ -FROM node:16-bullseye +FROM node:16-bullseye-slim COPY cortex-cli.tgz /app/ COPY scripts/entrypoint.sh / From da9af873d4e3571e022ca6c0fae1c8af5b7a3843 Mon Sep 17 00:00:00 2001 From: Prajna Kandarpa <pkandarpa@cognitivescale.com> Date: Fri, 22 Jul 2022 14:01:09 +0530 Subject: [PATCH 746/864] update help text for cortex content download (#617) --- bin/cortex-content.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-content.js b/bin/cortex-content.js index c12445cd..b44b219d 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -91,7 +91,7 @@ program // Download Content program .command('download <contentKey>') - .description('Download content') + .description('Downloads content which can be piped to a file on disk. `cortex content download filename > filename.json`') .option('--progress', 'Show download progress') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') From d3b7ed9078c539f9b673f490989f739955084796 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Mon, 25 Jul 2022 10:26:55 -0500 Subject: [PATCH 747/864] show limit message (#618) Co-authored-by: Akarsh Prasad <aprasad@cognitivescale.com> --- bin/cortex-agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 0515b219..d605b6b1 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -245,7 +245,7 @@ program // Create Agent Snapshot program - .command('create-snapshot <snapshotDefinition>') + .command('create-snapshot [snapshotDefinition]') .description('Create an agent snapshot') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') From 9de6f24316be83d6f03330d4eba25d2b5e454b9d Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 25 Jul 2022 13:09:58 -0500 Subject: [PATCH 748/864] FAB-4339 temorarily remove the --push-docker option as it is non functional until FAB-3629 in completed (#621) --- bin/cortex-actions.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index c94c0b96..7c279aac 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -113,7 +113,8 @@ program .option('--project <project>', 'The project to use') .option('--scaleCount <count>', 'Scale count, only used for daemon action types') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--push-docker', 'Push Docker image to the Cortex registry.') + // TODO this command is non-functional, comment for now to avoid confusion + // .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('-y, --yaml', 'Use YAML format') .action(withCompatibilityCheck((actionName, options) => { try { From d3fb0cbba2eedf042851028e38a3934e73b5bd23 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 25 Jul 2022 13:11:49 -0500 Subject: [PATCH 749/864] Make desc the default so newer (larger) starttime are at top (#619) --- bin/cortex-tasks.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index f691a596..dda225f2 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -53,7 +53,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <asc|desc|sort>', 'Sort asc|desc on startTime or Mongo style sort statement.', 'asc') + .option('--sort <asc|desc|sort>', 'Sort asc|desc on startTime or Mongo style sort statement.', 'desc') .action(withCompatibilityCheck(async (options) => { try { await new ListTasksCommand(program).execute(options); From 3d7b3eee5cacd7bbf508fcbbfe6a641b413d0a20 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 25 Jul 2022 13:12:22 -0500 Subject: [PATCH 750/864] FAB-4992 remove action column and expand name & skill name (#620) --- src/commands/tasks.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/commands/tasks.js b/src/commands/tasks.js index d60aac59..ebdd7491 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -27,19 +27,17 @@ const { dayjs.extend(relativeTime); const TASK_LIST_TABLE = [ - { column: 'Name', field: 'name', width: 40 }, + { column: 'Name', field: 'name', width: 60 }, { column: 'Activation Id', field: 'activationId', width: 40 }, - { column: 'Skill Name', field: 'skillName', width: 30 }, - { column: 'Action Name', field: 'actionName', width: 30 }, + { column: 'Skill Name', field: 'skillName', width: 40 }, { column: 'Status', field: 'state', width: 20 }, { column: 'Started', field: 'start', width: 25 }, { column: 'Took', field: 'took', width: 25 }, ]; const SCHED_LIST_TABLE = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Skill Name', field: 'skillName', width: 30 }, - { column: 'Action Name', field: 'actionName', width: 30 }, + { column: 'Name', field: 'name', width: 60 }, + { column: 'Skill Name', field: 'skillName', width: 40 }, { column: 'Status', field: 'state', width: 20 }, { column: 'Started', field: 'start', width: 25 }, { column: 'Schedule', field: 'schedule', width: 12 }, From e11831b5364dabf22979748a171d13f1374a235b Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 26 Jul 2022 10:38:36 -0500 Subject: [PATCH 751/864] Fab 5025 task limit (#622) * FAB-4339 temorarily remove the --push-docker option as it is non functional until FAB-3629 in completed * wip * FAB-5025 add validation for task list limit Added simple client-side validation * Support --limit -0 for all --- package-lock.json | 1065 +++++++++++++++++++++++++++++++++++++++-- package.json | 2 + src/commands/tasks.js | 7 +- 3 files changed, 1028 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc2c5df3..295a905f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,6 +63,7 @@ "mocked-env": "1.3.5", "nock": "13.2.7", "nyc": "15.1.0", + "pkg": "5.8.0", "rewire": "6.0.0", "sinon": "11.1.2" }, @@ -143,14 +144,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "dev": true, "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" @@ -393,9 +394,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", - "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -449,9 +450,9 @@ } }, "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -654,6 +655,20 @@ "node": ">=8" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", @@ -663,6 +678,15 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.11", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", @@ -679,6 +703,41 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@nodelib/fs.scandir": { + "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, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "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, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "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, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@npmcli/fs": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", @@ -1062,6 +1121,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", @@ -1111,6 +1179,15 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/audit-ci": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.3.0.tgz", @@ -1984,6 +2061,18 @@ "node": ">=0.3.1" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/docker-modem": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", @@ -2518,6 +2607,34 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2530,6 +2647,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -2678,6 +2804,46 @@ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/fromentries": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", @@ -2703,6 +2869,21 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -2951,6 +3132,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/got": { "version": "11.8.5", "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", @@ -3350,6 +3551,22 @@ "node": ">= 0.4" } }, + "node_modules/into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, + "dependencies": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -3949,6 +4166,18 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -4169,6 +4398,28 @@ "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -4542,6 +4793,30 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/multistream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", + "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "once": "^1.4.0", + "readable-stream": "^3.6.0" + } + }, "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", @@ -5099,6 +5374,15 @@ "node": ">=8" } }, + "node_modules/p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -5214,6 +5498,15 @@ "isarray": "0.0.1" } }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -5255,6 +5548,39 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkg": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.0.tgz", + "integrity": "sha512-8h9PUDYFi+LOMLbIyGRdP21g08mAtHidSpofSrf8LWhxUWGHymaRzcopEGiynB5EhQmZUKM6PQ9kCImV2TpdjQ==", + "dev": true, + "dependencies": { + "@babel/generator": "7.18.2", + "@babel/parser": "7.18.4", + "@babel/types": "7.18.4", + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "globby": "^11.1.0", + "into-stream": "^6.0.0", + "is-core-module": "2.9.0", + "minimist": "^1.2.6", + "multistream": "^4.1.0", + "pkg-fetch": "3.4.2", + "prebuild-install": "6.1.4", + "resolve": "^1.22.0", + "stream-meter": "^1.0.4" + }, + "bin": { + "pkg": "lib-es5/bin.js" + }, + "peerDependencies": { + "node-notifier": ">=9.0.1" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -5337,6 +5663,135 @@ "node": ">=8" } }, + "node_modules/pkg-fetch": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", + "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.6", + "progress": "^2.0.3", + "semver": "^7.3.5", + "tar-fs": "^2.1.1", + "yargs": "^16.2.0" + }, + "bin": { + "pkg-fetch": "lib-es5/bin.js" + } + }, + "node_modules/pkg-fetch/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/pkg-fetch/node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/pkg/node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pkg/node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg/node_modules/node-abi": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", + "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", + "dev": true, + "dependencies": { + "semver": "^5.4.1" + } + }, + "node_modules/pkg/node_modules/prebuild-install": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", + "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.21.0", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/pkg/node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "dev": true, + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/prebuild-install": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", @@ -5459,6 +5914,26 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -5658,6 +6133,16 @@ "node": ">= 4" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rewire": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", @@ -5922,6 +6407,29 @@ "node": ">=0.12.0" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/rxjs": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", @@ -6074,6 +6582,15 @@ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -6126,15 +6643,6 @@ "node": ">= 10" } }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -6203,14 +6711,53 @@ "node": ">= 8" } }, - "node_modules/stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "node_modules/stream-meter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", + "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", + "dev": true, + "dependencies": { + "readable-stream": "^2.1.4" + } + }, + "node_modules/stream-meter/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/stream-meter/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-meter/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { - "duplexer": "~0.1.1", - "through": "~2.3.4" + "safe-buffer": "~5.1.0" } }, "node_modules/string_decoder": { @@ -6627,6 +7174,15 @@ "imurmurhash": "^0.1.4" } }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -6951,14 +7507,14 @@ } }, "@babel/generator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", - "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "dev": true, "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" } }, "@babel/helper-compilation-targets": { @@ -7145,9 +7701,9 @@ } }, "@babel/parser": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", - "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", "dev": true }, "@babel/template": { @@ -7188,9 +7744,9 @@ } }, "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -7350,12 +7906,29 @@ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "@jridgewell/resolve-uri": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", "dev": true }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, "@jridgewell/sourcemap-codec": { "version": "1.4.11", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", @@ -7372,6 +7945,32 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@nodelib/fs.scandir": { + "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.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "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 + }, + "@nodelib/fs.walk": { + "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.5", + "fastq": "^1.6.0" + } + }, "@npmcli/fs": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", @@ -7687,6 +8286,12 @@ "is-string": "^1.0.7" } }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "array.prototype.flat": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", @@ -7724,6 +8329,12 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "audit-ci": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.3.0.tgz", @@ -8346,6 +8957,15 @@ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "docker-modem": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", @@ -8773,6 +9393,30 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -8785,6 +9429,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -8899,6 +9552,48 @@ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "fromentries": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", @@ -8910,6 +9605,18 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -9087,6 +9794,20 @@ "type-fest": "^0.20.2" } }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, "got": { "version": "11.8.5", "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", @@ -9374,6 +10095,16 @@ "side-channel": "^1.0.4" } }, + "into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, + "requires": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + } + }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -9798,6 +10529,16 @@ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -9974,6 +10715,22 @@ "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", "dev": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -10240,6 +10997,16 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "multistream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", + "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", + "dev": true, + "requires": { + "once": "^1.4.0", + "readable-stream": "^3.6.0" + } + }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", @@ -10659,6 +11426,12 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" }, + "p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -10744,6 +11517,12 @@ "isarray": "0.0.1" } }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "pathval": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", @@ -10776,6 +11555,98 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "pkg": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.0.tgz", + "integrity": "sha512-8h9PUDYFi+LOMLbIyGRdP21g08mAtHidSpofSrf8LWhxUWGHymaRzcopEGiynB5EhQmZUKM6PQ9kCImV2TpdjQ==", + "dev": true, + "requires": { + "@babel/generator": "7.18.2", + "@babel/parser": "7.18.4", + "@babel/types": "7.18.4", + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "globby": "^11.1.0", + "into-stream": "^6.0.0", + "is-core-module": "2.9.0", + "minimist": "^1.2.6", + "multistream": "^4.1.0", + "pkg-fetch": "3.4.2", + "prebuild-install": "6.1.4", + "resolve": "^1.22.0", + "stream-meter": "^1.0.4" + }, + "dependencies": { + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "requires": { + "mimic-response": "^2.0.0" + } + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true + }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true + }, + "node-abi": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", + "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", + "dev": true, + "requires": { + "semver": "^5.4.1" + } + }, + "prebuild-install": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", + "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.21.0", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "dev": true, + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + } + } + }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -10836,6 +11707,42 @@ } } }, + "pkg-fetch": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", + "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", + "dev": true, + "requires": { + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.6", + "progress": "^2.0.3", + "semver": "^7.3.5", + "tar-fs": "^2.1.1", + "yargs": "^16.2.0" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + } + } + }, "prebuild-install": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", @@ -10931,6 +11838,12 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -11081,6 +11994,12 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rewire": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", @@ -11288,6 +12207,15 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "rxjs": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", @@ -11393,6 +12321,12 @@ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -11428,12 +12362,6 @@ "socks": "^2.6.2" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, "spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -11497,6 +12425,47 @@ "through": "~2.3.4" } }, + "stream-meter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", + "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", + "dev": true, + "requires": { + "readable-stream": "^2.1.4" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -11817,6 +12786,12 @@ "imurmurhash": "^0.1.4" } }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 5f8610c7..4da99f89 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "main": "./bin/cortex.js", "types": "./client/index.d.ts", "scripts": { + "package": "pkg -t node16-macos-x64,node16-macos-arm64,node16-linux-x64,node16-win-x64 . -o cortex", "prepare": "is-ci || husky install", "prepack": "cp package-lock.json npm-shrinkwrap.json", "postpack": "rm npm-shrinkwrap.json", @@ -92,6 +93,7 @@ "mocked-env": "1.3.5", "nock": "13.2.7", "nyc": "15.1.0", + "pkg": "5.8.0", "rewire": "6.0.0", "sinon": "11.1.2" }, diff --git a/src/commands/tasks.js b/src/commands/tasks.js index ebdd7491..321282a9 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -53,7 +53,12 @@ module.exports.ListTasksCommand = class { const projectId = options.project || profile.project; debug('%s.listTasks(%s)', profile.name); const tasks = new Tasks(profile.url); - + if (options.limit) { + const num = _.toNumber(options.limit); + if (Number.isNaN(num) || num < 0) { + printError('--limit <limit> must be a positive integer value'); + } + } try { const response = await tasks.listTasks(projectId, profile.token, options); let format = 'k8sFormat'; // Assume old format From 8b9d63a2dfb19ec471793c443363decbb8c6f4b9 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Tue, 26 Jul 2022 10:39:04 -0500 Subject: [PATCH 752/864] fix epoch to date (#624) --- src/commands/experiments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 779e1cc7..47df714c 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -154,7 +154,7 @@ class ListRuns { { column: 'Artifacts', field: 'artifacts' }, ]; const trans = (o) => { - o.startTime = o.startTime ? dayjs(o.startTime).format('YYYY-MM-DD HH:mm a') : ''; + o.startTime = o.startTime ? dayjs.unix(o.startTime).format('YYYY-MM-DD HH:mm a') : ''; o.took = o.took ? dayjs.duration(o.took, 'seconds').humanize() : ''; o.params = _.map(o.params, (v, k) => `${k}: ${v}`).join('\n'); o.metrics = _.map(o.metrics, (v, k) => `${k}: ${v}`).join('\n'); From c9c1b1daa4138c488286b6f1ad94581858d91c23 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Fri, 29 Jul 2022 10:28:11 -0500 Subject: [PATCH 753/864] FAB-3694 fix naming, add alias for backward compatibility (#623) --- bin/cortex-assessments.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index 0377b992..dbcae5a4 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -190,7 +190,8 @@ program })); program - .command('report-list <assessmentName>') + .command('list-report <assessmentName>') + .alias('report-list') .description('Lists reports of the assessment') .option('--skip <Skip records for pagination>', 'Skip records for pagination') .option('--limit <Limit records for pagination>', 'Limit records for pagination') @@ -207,7 +208,8 @@ program })); program - .command('report-get <assessmentName> <reportId>') + .command('get-report <assessmentName> <reportId>') + .alias('report-get') .description('Get report of the assessment') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') @@ -222,7 +224,8 @@ program })); program - .command('report-export <assessmentName> <reportId>') + .command('export-report <assessmentName> <reportId>') + .alias('report-export') .description('Export report of the assessment') .storeOptionsAsProperties(false) .option('--type <Cortex component types>', 'Component types to export (comma separated values)') From 2839100fb8e69640d7793e1f32f00fa34288bf3d Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Wed, 3 Aug 2022 11:34:44 -0500 Subject: [PATCH 754/864] Fab 4315 - Standardize failing with non-zero exit code when deleting resource with dependencies (#625) * Fix exit code for all list failures, and deletion of actions, agents, connections, experiments, models, secrets, skill * Fix existing tests by stubbing process.exit on list failure * Remove duplication for dependency failure response, add unit test, and tidy imports * Fix printSpy, table width, and extra dot in test values * Standardized prefix error message on failure to delete --- src/commands/actions.js | 11 ++---- src/commands/agents.js | 10 +---- src/commands/connections.js | 13 ++----- src/commands/experiments.js | 19 ++------- src/commands/models.js | 15 ++----- src/commands/secrets.js | 9 +---- src/commands/skills.js | 10 +---- src/commands/utils.js | 14 ++++++- test/testUtils.js | 78 +++++++++++++++++++++++++++++++++++++ 9 files changed, 110 insertions(+), 69 deletions(-) diff --git a/src/commands/actions.js b/src/commands/actions.js index ab55b50d..98413999 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -24,8 +24,8 @@ const Actions = require('../client/actions'); dayjs.extend(relativeTime); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, isNumeric, - handleTable, printExtendedLogs, handleListFailure, + printSuccess, printError, filterObject, parseObject, isNumeric, + handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -209,12 +209,7 @@ module.exports.DeleteActionCommand = class { const result = filterObject(response, options); return printSuccess(JSON.stringify(result, null, 2), options); } - if (response.status === 403) { // has dependencies - const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Action deletion failed: ${response.message}.`, options, false); - return printTable(tableFormat, response.details); - } - return printError(`Action deletion failed: ${response.status} ${response.message}`, options); + return handleDeleteFailure(response, options, 'Action'); }) .catch((err) => { printError(`Failed to delete action: ${err.status} ${err.message}`, options); diff --git a/src/commands/agents.js b/src/commands/agents.js index 209e11eb..f9589142 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -27,8 +27,7 @@ dayjs.extend(relativeTime); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, handleTable, printExtendedLogs, - handleListFailure, + LISTTABLEFORMAT, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -459,12 +458,7 @@ module.exports.DeleteAgentCommand = class DeleteAgentCommand { const result = filterObject(response, options); return printSuccess(JSON.stringify(result, null, 2), options); } - if (response.status === 403) { // has dependencies - const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Agent deletion failed: ${response.message}.`, options, false); - return printTable(tableFormat, response.details); - } - return printError(`Agent deletion failed: ${response.status} ${response.message}.`, options); + return handleDeleteFailure(response, options, 'Agent'); }) .catch((err) => { printError(`Failed to delete agent: ${err.status} ${err.message}`, options); diff --git a/src/commands/connections.js b/src/commands/connections.js index cd0a5b58..59ef77d6 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -25,10 +25,8 @@ const Content = require('../client/content'); dayjs.extend(relativeTime); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, CONNECTIONTABLEFORMAT, fileExists, - handleTable, - printExtendedLogs, - handleListFailure, + printSuccess, printError, filterObject, parseObject, CONNECTIONTABLEFORMAT, fileExists, + handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -178,12 +176,7 @@ module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { const result = filterObject(response.result, options); return printSuccess(JSON.stringify(result, null, 2), options); } - if (response.status === 403) { // has dependencies - const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Connection deletion failed: ${response.message}.`, options, false); - return printTable(tableFormat, response.details); - } - return printError(`Failed to delete connection ${connectionName}: ${response.message}`, options); + return handleDeleteFailure(response, options, 'Connection'); }) .catch((err) => { printError(`Failed to delete connection ${connectionName}: ${err.status} ${err.message}`, options); diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 47df714c..d8b4843a 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -23,9 +23,8 @@ const duration = require('dayjs/plugin/duration'); const { loadProfile } = require('../config'); const Experiments = require('../client/experiments'); const { - printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, DEPENDENCYTABLEFORMAT, handleTable, - printExtendedLogs, - handleListFailure, + printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, + handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, } = require('./utils'); dayjs.extend(duration); @@ -110,12 +109,7 @@ class DeleteExperimentCommand { const result = filterObject(response.result, options); return printSuccess(JSON.stringify(result, null, 2), options); } - if (response.status === 403) { // has dependencies - const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Experiment deletion failed: ${response.message}.`, options, false); - return printTable(tableFormat, response.details); - } - return printError(`Failed to delete experiment ${experimentName}: ${response.status} - ${response.message}`, options); + return handleDeleteFailure(response, options, 'Experiment'); }) .catch((err) => { printError(`Failed to delete experiment ${experimentName}: ${err.status} - ${err.message}`, options); @@ -212,12 +206,7 @@ class DeleteRunCommand { if (response.success) { return printSuccess(`Run ${runId} in experiment ${experimentName} deleted`, options); } - if (response.status === 403) { // has dependencies - const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Run deletion failed: ${response.message}.`, options, false); - return printTable(tableFormat, response.details); - } - return printError(`Failed to delete run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); + return handleDeleteFailure(response, options, 'Run'); }) .catch((err) => { printError(`Failed to delete run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); diff --git a/src/commands/models.js b/src/commands/models.js index c9a912e3..f867c4a7 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -26,16 +26,12 @@ const { loadProfile } = require('../config'); const Models = require('../client/models'); const Experiments = require('../client/experiments'); const { - LISTTABLEFORMAT, RUNTABLEFORMAT, DEPENDENCYTABLEFORMAT, printExtendedLogs, - handleListFailure, + LISTTABLEFORMAT, RUNTABLEFORMAT, printExtendedLogs, handleListFailure, handleDeleteFailure, + printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, } = require('./utils'); dayjs.extend(relativeTime); -const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, -} = require('./utils'); - module.exports.SaveModelCommand = class SaveModelCommand { constructor(program) { this.program = program; @@ -189,12 +185,7 @@ module.exports.DeleteModelCommand = class { const result = filterObject(response, options); return printSuccess(JSON.stringify(result, null, 2), options); } - if (response.status === 403) { // has dependencies - const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Model deletion failed: ${response.message}.`, options, false); - return printTable(tableFormat, response.details); - } - return printError(`Model deletion failed: ${response.status} ${response.message}.`, options); + return handleDeleteFailure(response, options, 'Model'); }) .catch((err) => { printError(`Failed to delete model: ${err.status} ${err.message}`, options); diff --git a/src/commands/secrets.js b/src/commands/secrets.js index b91660f4..ad285c7c 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -23,7 +23,7 @@ const map = require('lodash/fp/map'); const { loadProfile } = require('../config'); const Secrets = require('../client/secrets'); const { - printSuccess, printError, filterObject, parseObject, printTable, DEPENDENCYTABLEFORMAT, handleTable, + printSuccess, printError, filterObject, parseObject, printTable, handleTable, handleDeleteFailure, } = require('./utils'); module.exports.ListSecretsCommand = class { @@ -149,12 +149,7 @@ module.exports.DeleteSecretCommand = class { const result = filterObject(response.result, options); return printSuccess(JSON.stringify(result, null, 2), options); } - if (response.status === 403) { // has dependencies - const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Secret deletion failed: ${response.message}.`, options, false); - return printTable(tableFormat, response.details); - } - return printError(`Failed to delete secure secret : ${response.message}`, options); + return handleDeleteFailure(response, options, 'Secret'); }) .catch((err) => { printError(`Failed to delete secure secret : ${err.status} ${err.message}`, options); diff --git a/src/commands/skills.js b/src/commands/skills.js index 5dad49d7..d4b6771a 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -26,8 +26,7 @@ dayjs.extend(relativeTime); const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, DEPENDENCYTABLEFORMAT, isNumeric, handleTable, - printExtendedLogs, handleListFailure, + LISTTABLEFORMAT, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { @@ -295,12 +294,7 @@ module.exports.DeleteSkillCommand = class DeleteSkillCommand { } return printSuccess(result.message); } - if (response.status === 403) { // has dependencies - const tableFormat = DEPENDENCYTABLEFORMAT; - printError(`Skill deletion failed: ${response.message}.`, options, false); - return printTable(tableFormat, response.details); - } - return printError(`Skill deletion failed: ${response.status} ${response.message}.`, options); + return handleDeleteFailure(response, options, 'Skill'); }) .catch((err) => { printError(`Failed to delete skill: ${err.status} ${err.message}`, options); diff --git a/src/commands/utils.js b/src/commands/utils.js index 4c891fa3..b82649ab 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -403,7 +403,19 @@ module.exports.handleListFailure = (response, options, type) => { if (response.status === 400) { const optionTableFormat = this.OPTIONSTABLEFORMAT; printError(`${type} list failed.`, options, false); - return this.printTable(optionTableFormat, response.details); + this.printTable(optionTableFormat, response.details); + printError(''); // Just exit } return printError(`Failed to list ${type}: ${response.status} ${response.message}`, options); }; + +module.exports.handleDeleteFailure = (response, options, type) => { + if (response.status === 403) { // has dependencies + const tableFormat = this.DEPENDENCYTABLEFORMAT; + printError(`${type} deletion failed: ${response.message}.`, options, false); + this.printTable(tableFormat, response.details); + return printError(''); // Just exit + } + const defaultErrorMessage = `${type} deletion failed: ${response.status} ${response.message}.`; + return printError(defaultErrorMessage, options); +}; diff --git a/test/testUtils.js b/test/testUtils.js index d5932022..bd2790b2 100644 --- a/test/testUtils.js +++ b/test/testUtils.js @@ -7,6 +7,7 @@ const { handleTable, printExtendedLogs, handleListFailure, + handleDeleteFailure, } = require('../src/commands/utils'); const { stripAnsi } = require('./utils'); @@ -25,6 +26,7 @@ const tableSpec = [ let restore; describe('Handle table function test', () => { let printSpy; + before(() => { restore = mockedEnv({}); }); @@ -116,10 +118,12 @@ describe('Test handleListFailure function', () => { beforeEach(() => { printSpy = sinon.spy(console, 'log'); + sinon.stub(process, 'exit'); }); afterEach(() => { printSpy.restore(); + process.exit.restore(); }); after(() => { @@ -151,6 +155,80 @@ describe('Test handleListFailure function', () => { + '│ type3 │ message3 │\n' + '└────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘', ); + // eslint-disable-next-line no-unused-expressions + expect(process.exit.calledWith(1)).to.be.true; }); }); +describe('Test handleDeleteFailure', () => { + let printSpy; + let errorSpy; + before(() => { + restore = mockedEnv({}); + }); + + beforeEach(() => { + printSpy = sinon.spy(console, 'log'); + errorSpy = sinon.spy(console, 'error'); + sinon.stub(process, 'exit'); + }); + + afterEach(() => { + printSpy.restore(); + errorSpy.restore(); + process.exit.restore(); + }); + + after(() => { + restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + + const depErrorResponse = { + status: 403, + message: 'message', + details: [ + { type: 'type1', name: 'name1' }, + { type: 'type2', name: 'name2' }, + { type: 'type3', name: 'name3' }, + ], + }; + + const serverErrorResponse = { + status: 500, + message: 'Server Unavailable', + details: [], + }; + + it('should print tabular output if status is 403', () => { + handleDeleteFailure(depErrorResponse, null, 'test-resource'); + expect(getErrorLines()[0]).to.equal('test-resource deletion failed: message.'); + expect((getPrintedLines()[0])).to.equal( + '┌────────────────────────────────────────────────────────────┬────────────────────────────────────────┐\n' + + '│ Dependency Name │ Dependency Type │\n' + + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' + + '│ name1 │ type1 │\n' + + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' + + '│ name2 │ type2 │\n' + + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' + + '│ name3 │ type3 │\n' + + '└────────────────────────────────────────────────────────────┴────────────────────────────────────────┘', + ); + // eslint-disable-next-line no-unused-expressions + expect(process.exit.calledWith(1)).to.be.true; + }); + + it('should print the default error message is not 403 (500)', () => { + handleDeleteFailure(serverErrorResponse, null, 'test-resource'); + expect(getErrorLines()[0]).to.equal('test-resource deletion failed: 500 Server Unavailable.'); + // eslint-disable-next-line no-unused-expressions + expect(process.exit.calledWith(1)).to.be.true; + }); +}); From 111cf15fbb29dc611ca2d82d23415572d033092c Mon Sep 17 00:00:00 2001 From: Colton Lee <clee@cognitivescale.com> Date: Fri, 5 Aug 2022 07:01:55 -0500 Subject: [PATCH 755/864] add a new manually approved stage to develop pipeline to handle fast-forward merge up to main for a release (#626) --- cortex-cli.gocd.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 58322270..bfdd2df5 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -31,6 +31,30 @@ pipelines: git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git ./gocd-pipeline-scripts/common/c12e-common.sh dev echo ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli + - publish: + clean_workspace: true + approval: + type: manual + jobs: + Promote: + elastic_profile_id: gocd-test-agent-dind + environment_variables: + PROMOTE_BRANCH: "main" + tasks: + - fetch: + stage: build + job: create + source: devBranchRevision.json + is_file: yes + - script: | + set -eux + + COMMIT_SHA="$(cat devBranchRevision.json)" + git fetch + git checkout -b ${PROMOTE_BRANCH} origin/${PROMOTE_BRANCH} + git merge ${COMMIT_SHA} \ + --ff-only + git push origin ${PROMOTE_BRANCH} cortex-cli-master: group: fabric6-rc environment_variables: From 500e0344a96cbc94ea1943932816fffafe9cca85 Mon Sep 17 00:00:00 2001 From: Colton Lee <clee@cognitivescale.com> Date: Fri, 5 Aug 2022 11:45:41 -0500 Subject: [PATCH 756/864] fix fetch task --- cortex-cli.gocd.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index bfdd2df5..74dda33a 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -43,7 +43,7 @@ pipelines: tasks: - fetch: stage: build - job: create + job: Build source: devBranchRevision.json is_file: yes - script: | From d45341982b9a0cfe188db8fb798b903b436495da Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 22 Aug 2022 02:07:53 -0500 Subject: [PATCH 757/864] Fix env var handling for CORTEX_TOKEN, CORTEX_URI, CORTEX_URL, and CORTEX_PROJECT (#632) Add build steps and tooling to build linux/windows/macos binaries Vulns updates chaulk, glob, commander, cli-progress, jose, dayjs --- README.md | 117 ++------- bin/cortex.js | 1 - build.sh | 13 + package-lock.json | 580 +++++++++++++++++++++++++++++++++++++-------- package.json | 36 ++- src/client/info.js | 1 + src/config.js | 22 +- 7 files changed, 549 insertions(+), 221 deletions(-) diff --git a/README.md b/README.md index 1e0867d9..873be2e5 100644 --- a/README.md +++ b/README.md @@ -117,102 +117,21 @@ cortex agents list --query "[].{name: name, title: title}" ] ``` -### Command List and Implementation Status: - -- [x] configure - - [x] list -- [x] projects - - [x] list - - [x] save [projectDefinition] - - [x] describe [projectName] - - [x] delete [projectName] -- [ ] deploy -- [x] functions - - [x] list - - [X] describe [functionName] - - [x] invoke [functionName] - - [X] deploy [functionName] - - [ ] delete [functionName] -- [ ] stacks - - [ ] list - - [ ] describe - - [ ] deploy - - [ ] delete -- [x] agents - - [x] list - - [x] save [agentDefinition] - - [x] describe [agentName] - - [ ] delete [agentName] - - [x] get-snapshots [agentName] - - [x] create-snapshots [snapshotDefinition] - - [x] invoke [serviceName] - - [x] get-service-activation [activationId] -- [x] types - - [x] list - - [x] save [typeDefinition] - - [x] describe [typeName] - - [ ] delete [typeName] -- [x] skills - - [x] list - - [x] save [skillDefinition] - - [x] describe [skillName] - - [ ] delete [skillName] - - [x] generate -- [x] content - - [x] upload - - [x] download - - [x] delete - - [x] list -- [ ] jobs - - [x] list - - [x] save - - [x] describe - - [x] status - - [ ] delete -- [x] tasks - - [x] list - - [x] logs - - [x] cancel - - [x] describe -- [ ] connections - - [x] list - - [x] list-types - - [x] save [connectionDefinition] - - [ ] delete [connectionName] - - [x] describe [connectionName] - - [x] test [connectionName] - - [x] generate -- [ ] datasets - - [x] list - - [x] save [datasetDefinition] - - [ ] delete [datasetName] - - [x] describe [datasetName] - - [x] get-dataframe [datasetName] - - [x] get-stream [datasetName] - - [x] generate -- [ ] snapshots -- [ ] container-registries - - [ ] list - - [ ] save [registryName] - - [ ] delete [registryName] -- [x] profiles - - [x] save-schema - - [x] list-schemas - - [x] describe-schema - - [x] delete-schema - - [x] list - - [x] list-versions - - [x] describe - - [x] delete - - [x] rebuild -- [x] graph - - [x] find-events - - [x] publish -- [x] experiments - - [x] list - - [x] describe - - [x] delete - - [x] list-runs - - [x] describe-runs - - [x] delete-run - - [x] download-artifact +## Standalone binary + +We use [pkg](https://www.npmjs.com/package/pkg) to bundle the Cortex cli's source, dependencies, and node runtime into a standalone executable + +Executables are created for the following platforms: + - Linux 64bit intel + - Windows 64bit intel + - macOS 64 bit intel. + - macOS 64 bit M1/M2. + +__NOTE:__ Apple M1/M2 (arm64 binary) is experimental + +### Signed binaries status +* windows: binaries are currently **unsigned** +* macOS: adhoc signature using [ldid](https://github.com/xerub/ldid) + +**Known Issues** +cortex workspaces - is non functional on Window and macOs until we can provide pre-compiled binaries for the following dependencies: ssh2, keytar, cpufeatures diff --git a/bin/cortex.js b/bin/cortex.js index fa4eff02..2b5bf462 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -19,7 +19,6 @@ const findPackageJson = require('find-package-json'); const { program } = require('commander'); const pkg = findPackageJson(__dirname).next().value; - program.name('cortex'); program .version(pkg.version, '-v, --version') diff --git a/build.sh b/build.sh index c00b7ca2..5d50dad8 100755 --- a/build.sh +++ b/build.sh @@ -29,6 +29,16 @@ function docker_build(){ export CI="script" apt-get update apt-get install -y apt-utils libsecret-1-dev + # Grab signing util for MACOS + mkdir /tmp/macsign + OPWD=$PWD + cd /tmp/macsign + wget https://github.com/xerub/ldid/releases/download/42/ldid.zip + echo "b93efbc32136cf2778bfe7191dc2a7fb ldid.zip" > ldid.md5 + md5sum -c ldid.md5 + unzip ldid.zip + cd $OPWD + export PATH=$PATH:/tmp/macsign/linux64 npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm test echo ${VERSION} > version.txt @@ -42,6 +52,9 @@ function docker_build(){ # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi npm pack . + # TODO Should we cache this distros ? + export PKG_CACHE_PATH=/tmp/pkg-cache + npm run build-binaries mv cortex-cli-*.tgz cortex-cli.tgz } diff --git a/package-lock.json b/package-lock.json index 295a905f..dea5a107 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,27 +1,27 @@ { "name": "cortex-cli", - "version": "2.1.0", + "version": "2.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.1.0", + "version": "2.1.1", "license": "Apache-2.0", "dependencies": { "boolean": "3.2.0", "chalk": "4.1.2", - "cli-progress": "3.11.1", + "cli-progress": "3.11.2", "cli-table3": "0.6.2", - "commander": "9.3.0", - "dayjs": "1.11.3", + "commander": "9.4.0", + "dayjs": "1.11.5", "debug": "4.3.4", - "dockerode": "3.3.2", + "dockerode": "3.3.3", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", "gh-got": "9.0.0", - "glob": "7.2.0", + "glob": "8.0.3", "got": "11.8.5", "graphql": "15.6.1", "graphql-request": "3.7.0", @@ -30,12 +30,11 @@ "istextorbinary": "6.0.0", "jmespath": "0.16.0", "joi": "17.6.0", - "jose-node-cjs-runtime": "4.8.1", + "jose-node-cjs-runtime": "4.9.0", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", "minimatch": "3.1.2", - "mixin-deep": "2.0.1", "npm-registry-fetch": "12.0.0", "open": "8.4.0", "prompts": "2.4.2", @@ -54,14 +53,14 @@ "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.18.0", + "eslint": "8.22.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.26.0", "husky": "7.0.4", "is-ci": "3.0.1", "mocha": "9.2.2", "mocked-env": "1.3.5", - "nock": "13.2.7", + "nock": "13.2.9", "nyc": "15.1.0", "pkg": "5.8.0", "rewire": "6.0.0", @@ -510,9 +509,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -523,6 +522,16 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -897,9 +906,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1433,6 +1442,25 @@ "node": ">= 10" } }, + "node_modules/cacache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -1675,9 +1703,9 @@ } }, "node_modules/cli-progress": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.1.tgz", - "integrity": "sha512-TTMA2LHrYaZeNMcgZGO10oYqj9hvd03pltNtVbu4ddeyDTHlYV7gWxsFiuvaQlgwMBFCv1TukcjiODWFlb16tQ==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz", + "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==", "dependencies": { "string-width": "^4.2.3" }, @@ -1781,9 +1809,9 @@ } }, "node_modules/commander": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", + "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", "engines": { "node": "^12.20.0 || >=14" } @@ -1891,9 +1919,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", - "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==" + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" }, "node_modules/debug": { "version": "4.3.4", @@ -2088,9 +2116,9 @@ } }, "node_modules/dockerode": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.2.tgz", - "integrity": "sha512-oXN+1XVH2TeyE0Jj9Ci6Fim8ZIDxyqeJrkx9qhEOaRiA+nhLihKfd3M2L+Aqrj5C2ObPw8RVN2zPWvvk0x2dwg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.3.tgz", + "integrity": "sha512-lvKV6/NGf2/CYLt5V4c0fd6Fl9XZSCo1Z2HBT9ioKrKLMB2o+gA62Uza8RROpzGvYv57KJx2dKu+ZwSpB//OIA==", "dependencies": { "docker-modem": "^3.0.0", "tar-fs": "~2.0.1" @@ -2262,13 +2290,14 @@ } }, "node_modules/eslint": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", - "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -2278,14 +2307,17 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.3.3", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -2485,18 +2517,91 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/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, + "engines": { + "node": ">=8" + } + }, "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", "dev": true, "dependencies": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -3073,19 +3178,18 @@ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3103,6 +3207,25 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/global-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", @@ -3182,6 +3305,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "node_modules/graphql": { "version": "15.6.1", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", @@ -4095,9 +4224,9 @@ } }, "node_modules/jose-node-cjs-runtime": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.8.1.tgz", - "integrity": "sha512-JN3KZ1K3PInn38YEUQtPr5FS1HXsHZoXfXBqS/70SyBmJzzWRPUHF1n7Mia2rJ4vl77GbvsH3UrGtXfk2c5nWA==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.9.0.tgz", + "integrity": "sha512-7GMjRo0ZU/b7hTjl9GP1aT8D8xKzXMDiVwSU9o1FwwlNfA/SVS0Lf5oVLVJd7N8m2RXS0UxlVv+Sdv7JwNWMlg==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -4563,14 +4692,6 @@ "node": ">= 8" } }, - "node_modules/mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==", - "engines": { - "node": ">=6" - } - }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -4669,6 +4790,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/mocha/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -4873,9 +5026,9 @@ } }, "node_modules/nock": { - "version": "13.2.7", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.7.tgz", - "integrity": "sha512-R6NUw7RIPtKwgK7jskuKoEi4VFMqIHtV2Uu9K/Uegc4TA5cqe+oNMYslZcUmnVNQCTG6wcSqUBaGTDd7sq5srg==", + "version": "13.2.9", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", + "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -5073,6 +5226,26 @@ "node": ">=8" } }, + "node_modules/nyc/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/nyc/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -5469,7 +5642,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } @@ -6399,6 +6572,25 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -6980,6 +7172,26 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -7795,9 +8007,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -7805,6 +8017,12 @@ "minimatch": "^3.0.4" } }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -8115,9 +8333,9 @@ "dev": true }, "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "acorn-jsx": { @@ -8503,6 +8721,21 @@ "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "cacheable-lookup": { @@ -8676,9 +8909,9 @@ } }, "cli-progress": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.1.tgz", - "integrity": "sha512-TTMA2LHrYaZeNMcgZGO10oYqj9hvd03pltNtVbu4ddeyDTHlYV7gWxsFiuvaQlgwMBFCv1TukcjiODWFlb16tQ==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz", + "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==", "requires": { "string-width": "^4.2.3" } @@ -8753,9 +8986,9 @@ } }, "commander": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==" + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", + "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==" }, "commondir": { "version": "1.0.1", @@ -8841,9 +9074,9 @@ } }, "dayjs": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", - "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==" + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" }, "debug": { "version": "4.3.4", @@ -8978,9 +9211,9 @@ } }, "dockerode": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.2.tgz", - "integrity": "sha512-oXN+1XVH2TeyE0Jj9Ci6Fim8ZIDxyqeJrkx9qhEOaRiA+nhLihKfd3M2L+Aqrj5C2ObPw8RVN2zPWvvk0x2dwg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.3.tgz", + "integrity": "sha512-lvKV6/NGf2/CYLt5V4c0fd6Fl9XZSCo1Z2HBT9ioKrKLMB2o+gA62Uza8RROpzGvYv57KJx2dKu+ZwSpB//OIA==", "requires": { "docker-modem": "^3.0.0", "tar-fs": "~2.0.1" @@ -9121,13 +9354,14 @@ "dev": true }, "eslint": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", - "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -9137,14 +9371,17 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.3.3", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -9161,6 +9398,51 @@ "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "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 + } } }, "eslint-config-airbnb-base": { @@ -9306,12 +9588,12 @@ "dev": true }, "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", "dev": true, "requires": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } @@ -9756,16 +10038,33 @@ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "glob-parent": { @@ -9832,6 +10131,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "graphql": { "version": "15.6.1", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", @@ -10476,9 +10781,9 @@ } }, "jose-node-cjs-runtime": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.8.1.tgz", - "integrity": "sha512-JN3KZ1K3PInn38YEUQtPr5FS1HXsHZoXfXBqS/70SyBmJzzWRPUHF1n7Mia2rJ4vl77GbvsH3UrGtXfk2c5nWA==" + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.9.0.tgz", + "integrity": "sha512-7GMjRo0ZU/b7hTjl9GP1aT8D8xKzXMDiVwSU9o1FwwlNfA/SVS0Lf5oVLVJd7N8m2RXS0UxlVv+Sdv7JwNWMlg==" }, "js-tokens": { "version": "4.0.0", @@ -10836,11 +11141,6 @@ "yallist": "^4.0.0" } }, - "mixin-deep": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz", - "integrity": "sha512-imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==" - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -10910,6 +11210,31 @@ "path-exists": "^4.0.0" } }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -11054,9 +11379,9 @@ } }, "nock": { - "version": "13.2.7", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.7.tgz", - "integrity": "sha512-R6NUw7RIPtKwgK7jskuKoEi4VFMqIHtV2Uu9K/Uegc4TA5cqe+oNMYslZcUmnVNQCTG6wcSqUBaGTDd7sq5srg==", + "version": "13.2.9", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", + "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", "dev": true, "requires": { "debug": "^4.1.0", @@ -11207,6 +11532,20 @@ "path-exists": "^4.0.0" } }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -11494,7 +11833,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "3.1.1", @@ -12200,6 +12539,21 @@ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "run-async": { @@ -12630,6 +12984,22 @@ "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "text-table": { diff --git a/package.json b/package.json index 4da99f89..037d355d 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,30 @@ { "name": "cortex-cli", - "version": "2.1.0", + "version": "2.1.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "types": "./client/index.d.ts", "scripts": { - "package": "pkg -t node16-macos-x64,node16-macos-arm64,node16-linux-x64,node16-win-x64 . -o cortex", + "build-binaries": "pkg .", "prepare": "is-ci || husky install", "prepack": "cp package-lock.json npm-shrinkwrap.json", "postpack": "rm npm-shrinkwrap.json", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", "test": "cross-env NODE_ENV=test nyc mocha", - "test:workspaces": "cross-env NODE_ENV=test mocha --grep='Workspaces'" + "test:workspaces": "cross-env NODE_ENV=test mocha --grep='Workspaces'", + "clean": "rm -rf dist/ coverage/ .nyc_output/ node_modules/ cortex-cli.tgz cortex-cli-docs.md version.txt" + }, + "pkg": { + "outputPath": "dist", + "targets": [ + "node16-win-x64", + "node16-linux-x64", + "node16-macos-x64", + "node16-macos-arm64" + ], + "assets": [ + "node_modules/open/xdg-open" + ] }, "files": [ "bin/*", @@ -44,17 +57,17 @@ "dependencies": { "boolean": "3.2.0", "chalk": "4.1.2", - "cli-progress": "3.11.1", + "cli-progress": "3.11.2", "cli-table3": "0.6.2", - "commander": "9.3.0", - "dayjs": "1.11.3", + "commander": "9.4.0", + "dayjs": "1.11.5", "debug": "4.3.4", - "dockerode": "3.3.2", + "dockerode": "3.3.3", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", "gh-got": "9.0.0", - "glob": "7.2.0", + "glob": "8.0.3", "got": "11.8.5", "graphql": "15.6.1", "graphql-request": "3.7.0", @@ -63,12 +76,11 @@ "istextorbinary": "6.0.0", "jmespath": "0.16.0", "joi": "17.6.0", - "jose-node-cjs-runtime": "4.8.1", + "jose-node-cjs-runtime": "4.9.0", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", "minimatch": "3.1.2", - "mixin-deep": "2.0.1", "npm-registry-fetch": "12.0.0", "open": "8.4.0", "prompts": "2.4.2", @@ -84,14 +96,14 @@ "chai": "4.3.6", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.18.0", + "eslint": "8.22.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.26.0", "husky": "7.0.4", "is-ci": "3.0.1", "mocha": "9.2.2", "mocked-env": "1.3.5", - "nock": "13.2.7", + "nock": "13.2.9", "nyc": "15.1.0", "pkg": "5.8.0", "rewire": "6.0.0", diff --git a/src/client/info.js b/src/client/info.js index 954cb1ea..a6329b24 100644 --- a/src/client/info.js +++ b/src/client/info.js @@ -30,6 +30,7 @@ module.exports = class Info { return got .get(endpoint, { headers: { 'user-agent': getUserAgent() }, + followRedirect: false, }).json() .then((result) => result) .catch((err) => constructError(err)); diff --git a/src/config.js b/src/config.js index 7babda76..ba46c9d4 100644 --- a/src/config.js +++ b/src/config.js @@ -29,6 +29,14 @@ function configDir() { return process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); } +// TODO deprecate CORTEX_URI +function getCortexUrlFromEnv() { + if (process.env.CORTEX_URI) { + return process.env.CORTEX_URI; + } + return process.env.CORTEX_URL; +} + const durationRegex = /^([.\d]+)(ms|[smhdwMy])$/; async function generateJwt(profile, expiresIn = '2m') { const { @@ -133,9 +141,12 @@ class Config { } const profileType = new Profile(name, profile).validate(); if (useenv) { - profileType.url = process.env.CORTEX_URI || profileType.url; + profileType.url = getCortexUrlFromEnv() || profileType.url; + profileType.token = process.env.CORTEX_TOKEN || await generateJwt(profile); + profileType.project = process.env.CORTEX_PROJECT || profileType.project; + } else { + profileType.token = await generateJwt(profile); } - profileType.token = await generateJwt(profile); return profileType; } @@ -268,9 +279,12 @@ class ConfigV4 { } const profileType = new ProfileV4(name, profile).validate(); if (useenv) { - profileType.url = process.env.CORTEX_URI || profileType.url; + profileType.url = getCortexUrlFromEnv() || profileType.url; + profileType.token = process.env.CORTEX_TOKEN || await generateJwt(profileType); + profileType.project = process.env.CORTEX_PROJECT || profileType.project; + } else { + profileType.token = await generateJwt(profileType); } - profileType.token = await generateJwt(profile); return profileType; } From b3940963caaa7ca442a8f7816ab505bbb85e442d Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Mon, 22 Aug 2022 03:08:04 -0400 Subject: [PATCH 758/864] Forgot to include Typescript types for client API, so the IDE extension can use them. (#634) Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 037d355d..3a729b85 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "files": [ "bin/*", "src/*", + "client/*", "README.md", "npm-shrinkwrap.json", "LICENSE" From dd417413c9d5680187d830309805a9aed9146e84 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 22 Aug 2022 14:20:59 -0500 Subject: [PATCH 759/864] Remove doc gen exclusion for workspaces (#636) * Remove doc gen exclusion for workspaces * add npm rebuild before running tests in ci build Co-authored-by: clee <clee@cognitivescale.com> --- build.sh | 1 + generate_docs.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 5d50dad8..8a09ab77 100755 --- a/build.sh +++ b/build.sh @@ -40,6 +40,7 @@ function docker_build(){ cd $OPWD export PATH=$PATH:/tmp/macsign/linux64 npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts + npm rebuild npm test echo ${VERSION} > version.txt ./generate_docs.sh diff --git a/generate_docs.sh b/generate_docs.sh index c74761f5..197b6f1a 100755 --- a/generate_docs.sh +++ b/generate_docs.sh @@ -42,7 +42,7 @@ EOF #echo #echo "Done -> ${OUTFILE}" echo "$(header)" > ${OUTFILE} -for CMD in $(ls -1 ./bin/cortex-*.js | grep -v 'cortex-workspaces' | sort); do +for CMD in $(ls -1 ./bin/cortex-*.js | sort); do echo $CMD node generate_docs.js $CMD >> $OUTFILE done From f800df28e4d21d179909a58b7ca2137367c4e066 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 23 Aug 2022 23:16:37 -0500 Subject: [PATCH 760/864] Add warning if CORTEX_TOKEN used from env (#638) --- src/config.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/config.js b/src/config.js index ba46c9d4..efb82f71 100644 --- a/src/config.js +++ b/src/config.js @@ -141,6 +141,9 @@ class Config { } const profileType = new Profile(name, profile).validate(); if (useenv) { + if (process.env.CORTEX_TOKEN) { + printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); + } profileType.url = getCortexUrlFromEnv() || profileType.url; profileType.token = process.env.CORTEX_TOKEN || await generateJwt(profile); profileType.project = process.env.CORTEX_PROJECT || profileType.project; @@ -279,6 +282,9 @@ class ConfigV4 { } const profileType = new ProfileV4(name, profile).validate(); if (useenv) { + if (process.env.CORTEX_TOKEN) { + printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); + } profileType.url = getCortexUrlFromEnv() || profileType.url; profileType.token = process.env.CORTEX_TOKEN || await generateJwt(profileType); profileType.project = process.env.CORTEX_PROJECT || profileType.project; From 6986192a8c1eef63c1f62c9c8931863a66029ef0 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Fri, 26 Aug 2022 08:33:13 -0500 Subject: [PATCH 761/864] handle deleting same project (#640) --- src/commands/projects.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/commands/projects.js b/src/commands/projects.js index a7625e17..4c5fa8f2 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -119,7 +119,12 @@ module.exports.DeleteProjectCommand = class DeleteProjectCommand { try { const cli = new ApiServerClient(profile.url); await cli.deleteProject(profile.token, projectName); - printSuccess(`Project ${projectName} deleted`, options); + const status = await cli.deleteProject(profile.token, projectName); + if (status) { + printSuccess(`Project ${projectName} deleted`, options); + } else { + printError(`Project ${projectName} does not exist.`, options); + } } catch (err) { printError(`Failed to delete project: ${err.message}`, options); } From 20daf6047bb40fd9ab7117a3b72c2e2cb7b231ea Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Fri, 26 Aug 2022 08:33:36 -0500 Subject: [PATCH 762/864] Fix for FAB-5252 to check existence of file (#639) --- src/commands/agents.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/agents.js b/src/commands/agents.js index f9589142..7b9c6dd2 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -417,7 +417,7 @@ module.exports.CreateAgentSnapshotCommand = class { async execute(snapshotDefinition, options) { const profile = await loadProfile(options.profile); let snapshot; - if (snapshotDefinition) { + if (fs.existsSync(snapshotDefinition)) { debug('%s.createAgentSnapshot(%s)', profile.name, snapshotDefinition); const snapshotDefStr = fs.readFileSync(snapshotDefinition); snapshot = parseObject(snapshotDefStr, options); From 1e8d7150845b1c03b17214054a9c48820c478f70 Mon Sep 17 00:00:00 2001 From: Colton Lee <clee@cognitivescale.com> Date: Fri, 26 Aug 2022 12:15:43 -0500 Subject: [PATCH 763/864] remove extra call to delete project graphql api (#641) --- src/commands/projects.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/projects.js b/src/commands/projects.js index 4c5fa8f2..61780de8 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -118,7 +118,6 @@ module.exports.DeleteProjectCommand = class DeleteProjectCommand { debug('%s.executeDeleteProject(%s)', profile.name, projectName); try { const cli = new ApiServerClient(profile.url); - await cli.deleteProject(profile.token, projectName); const status = await cli.deleteProject(profile.token, projectName); if (status) { printSuccess(`Project ${projectName} deleted`, options); From 4b4027e1c9ae68f2dda483c2a410fb66eedd5a0c Mon Sep 17 00:00:00 2001 From: Lalit Kumar Jha <ljha@cognitivescale.com> Date: Wed, 7 Sep 2022 22:54:00 +0530 Subject: [PATCH 764/864] resolve need to passed correctly to be called by callback (#642) Co-authored-by: ljha <ljha@c12e.com> --- src/client/catalog.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/catalog.js b/src/client/catalog.js index 584c09dd..dbbcd6ef 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -301,7 +301,7 @@ module.exports = class Catalog { download.on('error', (error) => reject(constructError(error).message)); const fileOutput = fs.createWriteStream(path); fileOutput.on('error', (error) => reject(constructError(error).message)); - fileOutput.on('finish', () => resolve); + fileOutput.on('finish', resolve); download.pipe(fileOutput); }); } From e10f9a55256d397fb8a4b915a5a903c43850f5d5 Mon Sep 17 00:00:00 2001 From: Colton Lee <clee@cognitivescale.com> Date: Thu, 8 Sep 2022 13:00:42 -0500 Subject: [PATCH 765/864] use options.json instead of body for printing debug output (#643) --- src/client/apiutils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/apiutils.js b/src/client/apiutils.js index 55923ba4..613649f9 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -20,7 +20,7 @@ module.exports.got = got.extend({ debug(`request url: ${options.url}`); debug(`request methods: ${options.method}`); debug(`request headers: ${JSON.stringify(options.headers)}`); - debug(`request body: ${options.body || '{}'}`); + debug(`request json: ${JSON.stringify(options.json)}`); } }, ], From 1ca97cefff63d1081706e5933469774a0e0321ca Mon Sep 17 00:00:00 2001 From: Darren Schueller <dschueller@cognitivescale.com> Date: Fri, 16 Sep 2022 11:40:21 -0400 Subject: [PATCH 766/864] FAB-5346 and FAB-5347 (#644) * FAB-5346 - Moved template repo config to per-profile. * Fixed a test that was broken for Windows. That's okay, I hate you too. * FAB-5347 - Display image tag on publish Co-authored-by: dschueller-cs <dschueller-cs@expresstoyou.com> --- src/commands/utils.js | 2 +- src/commands/workspaces/configure.js | 12 ++- src/commands/workspaces/generate.js | 9 +- src/commands/workspaces/publish.js | 4 +- src/config.js | 150 ++++++++++++++++++++++++++- test/cortex/config | 20 ++-- test/uploadDirectory.js | 4 +- 7 files changed, 177 insertions(+), 24 deletions(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index b82649ab..1f4d10d7 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -159,7 +159,7 @@ module.exports.callMe = callMe; module.exports.getSourceFiles = (source, cb) => { const options = { silent: true }; const normalizedSource = (source.endsWith('/')) ? source : `${source}/`; - const normalizedPath = path.join(normalizedSource, '**', '*'); + const normalizedPath = path.posix.join(normalizedSource, '**', '*'); glob(normalizedPath, options, (err, files) => { // files is an array of filenames. if (err) { diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index 54909d26..fec4f70e 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -40,19 +40,22 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { this.options = opts; const config = readConfig(); + const currentProfile = config.profiles[config.currentProfile]; + + console.log(`Configuring workspaces for profile ${chalk.green(config.currentProfile)}`); await inquirer.prompt([ { type: 'input', name: 'repo', message: 'Template Repository URL: ', - default: _.get(config, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), + default: _.get(currentProfile, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), }, { type: 'input', name: 'branch', message: 'Template Repository Branch:', - default: _.get(config, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), + default: _.get(currentProfile, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), }, ]) .then(async (answers) => { @@ -107,7 +110,7 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { if (accessToken.access_token) { clearTimeout(pollTimer); persistToken(accessToken); - config.templateConfig = answers; + config.profiles[config.currentProfile].templateConfig = answers; config.save(); printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); resolve(); @@ -152,6 +155,9 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { } else { printError('\x1b[2KDevice Code request failed. Please try again.', this.options); } + } else { + config.profiles[config.currentProfile].templateConfig = answers; + config.save(); } }) .catch((error) => { diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index ca564c4a..e768429e 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -64,10 +64,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { headers: { authorization: this.authorization }, })) .then((resp) => resp.body.tree) - .catch((err) => { - console.log('error: ', err); - return []; - }); + .catch(() => []); printToTerminal('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); } @@ -154,7 +151,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { if (!this.githubToken) { printError( - this.config.templateConfig + this.config.profiles[this.config.currentProfile].templateConfig ? 'Github authorization is invalid. Running configuration now.\n' : 'Workspace generator is not configured. Running configuration now.\n', this.options, false, @@ -168,7 +165,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { return; } - await this.loadTemplateTree(this.config.templateConfig); + await this.loadTemplateTree(this.config.profiles[this.config.currentProfile].templateConfig); if (this.tree.length) { const template = await this.selectTemplate(options.template); diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 49cefbf0..57321bca 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -197,7 +197,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { reject(new Error(evt.error)); return; } - status.processEvent(evt, action.name); + status.processEvent(evt, newTag); }, ); }); @@ -232,6 +232,8 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { await apiServer.getProject(profile.token, project) .then((prj) => project = prj.name) .catch(() => printError(`Project ${project} not found.`, options)); + } else { + throw new Error('Project must be specified'); } this.catalogClient = new Catalog(profile.url); diff --git a/src/config.js b/src/config.js index efb82f71..dabddbfd 100644 --- a/src/config.js +++ b/src/config.js @@ -86,6 +86,22 @@ const ProfileSchemaV4 = Joi.object().keys({ currentRegistry: Joi.string().required(), }); +const ProfileSchemaV5 = Joi.object().keys({ + name: Joi.string().optional(), + url: Joi.string().uri().required(), + username: Joi.string().required(), + // deprecated + account: Joi.string().optional(), + jwk: Joi.any().required(), + issuer: Joi.string().required(), + audience: Joi.string().required(), + token: Joi.string().optional(), + project: Joi.string().optional(), + registries: Joi.any().required(), + currentRegistry: Joi.string().required(), + templateConfig: Joi.any().required(), +}); + class Profile { constructor(name, { url, username, issuer, audience, jwk, project, @@ -309,8 +325,127 @@ class ConfigV4 { } } +class ProfileV5 { + constructor(name, { + url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, +}, templateConfigV4) { + this.name = name; + this.url = url; + this.username = username; + this.jwk = jwk; + this.issuer = issuer; + this.audience = audience; + this.project = project; + this.registries = registries || { + 'Cortex Private Registry': { + url: new URL(url).hostname.replace('api', 'private-registry'), + name: 'Cortex Private Registry', + isCortex: true, + }, + }; + this.currentRegistry = currentRegistry || 'Cortex Private Registry'; + this.templateConfig = templateConfig || templateConfigV4 || { + repo: 'CognitiveScale/cortex-code-templates', + branch: 'main', + }; + } + + validate() { + const { error } = ProfileSchemaV5.validate(this, { abortEarly: false }); + if (error) { + printError(`Invalid configuration profile <${this.name}>: ${error.details[0].message}. ` + + 'Please get your Personal Access Token from the Cortex Console and run "cortex configure".'); + } + return this; + } + + toJSON() { + return { + url: this.url, + username: this.username, + issuer: this.issuer, + audience: this.audience, + jwk: this.jwk, + project: this.project, + registries: this.registries, + currentRegistry: this.currentRegistry, + templateConfig: this.templateConfig, + }; + } +} + +class ConfigV5 { + constructor({ + profiles, + currentProfile, + templateConfig, + }) { + this.version = '5'; + this.profiles = profiles || {}; + this.currentProfile = currentProfile; + Object.keys(this.profiles).forEach((name) => { + this.profiles[name] = new ProfileV5(name, this.profiles[name], templateConfig); + }); + } + + setProfile(name, { + url, username, issuer, audience, jwk, registries, currentRegistry, templateConfig, + }, project) { + const profile = new ProfileV5(name, { + url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, + }); + profile.validate(); // do not set/save invalid profiles .. + this.profiles[name] = profile; + } + + toJSON() { + const profiles = {}; + Object.keys(this.profiles).forEach((name) => { + profiles[name] = this.profiles[name].toJSON(); + }); + return { + version: this.version, + profiles, + currentProfile: this.currentProfile, + }; + } + + async getProfile(name, useenv = true) { + const profile = this.profiles[name]; + if (!profile) { + return undefined; + } + const profileType = new ProfileV5(name, profile).validate(); + if (useenv) { + if (process.env.CORTEX_TOKEN) { + printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); + } + profileType.url = getCortexUrlFromEnv() || profileType.url; + profileType.token = process.env.CORTEX_TOKEN || await generateJwt(profileType); + profileType.project = process.env.CORTEX_PROJECT || profileType.project; + } else { + profileType.token = await generateJwt(profileType); + } + return profileType; + } + + save() { + const dir = configDir(); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + + _.forEach(this.profiles, (profile) => { + delete profile.token; + }); + + const configFile = path.join(dir, 'config'); + fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); + } +} + function defaultConfig() { - return new ConfigV4({}); + return new ConfigV5({}); } function readConfig() { @@ -329,9 +464,18 @@ function readConfig() { if (configObj.version) { switch (configObj.version) { - case '4': - return new ConfigV4(configObj); + case '5': + return new ConfigV5(configObj); + case '4': + { + // version 5 (per-profile template support) + // Upgrade v4 to v5 + const cfg = new ConfigV5(configObj); + cfg.save(); + return cfg; + } + case '3': { // version 4 (template config support, with github token) diff --git a/test/cortex/config b/test/cortex/config index 92c999d7..718de828 100644 --- a/test/cortex/config +++ b/test/cortex/config @@ -1,5 +1,5 @@ { - "version": "4", + "version": "5", "profiles": { "default": { "url": "http://localhost:8000", @@ -20,7 +20,11 @@ "isCortex": true } }, - "currentRegistry": "Cortex Private Registry" + "currentRegistry": "Cortex Private Registry", + "templateConfig": { + "repo": "CognitiveScale/cortex-code-templates", + "branch": "main" + } }, "other": { "url": "http://other:8000", @@ -42,12 +46,12 @@ "isCortex": true } }, - "currentRegistry": "Cortex Private Registry" + "currentRegistry": "Cortex Private Registry", + "templateConfig": { + "repo": "CognitiveScale/cortex-code-templates", + "branch": "main" + } } }, - "currentProfile": "default", - "templateConfig": { - "repo": "CognitiveScale/cortex-code-templates", - "branch": "main" - } + "currentProfile": "default" } \ No newline at end of file diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index 1dfcfa18..e8d33fb8 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -39,7 +39,7 @@ describe('Upload Directory', () => { const dirname = __dirname.split(path.sep).join(path.posix.sep); - const filePath = path.join(dirname, 'cortex'); + const filePath = path.posix.join(dirname, 'cortex'); const options = { recursive: true, test: true, @@ -49,7 +49,7 @@ describe('Upload Directory', () => { { canonical: path.posix.join(dirname, 'cortex', 'config'), relative: 'config', - size: 1478, + size: 1610, }, { canonical: path.posix.join(dirname, 'cortex', 'pat-file.json'), From 11d9c219d052d992ccc360e28532663a48eaf6e2 Mon Sep 17 00:00:00 2001 From: Akarsh P <84395434+akprasad-cs@users.noreply.github.com> Date: Tue, 20 Sep 2022 15:04:01 +0530 Subject: [PATCH 767/864] Fab 5033 (#635) * replaced --query with --json in list actions cli * combined --json and --query for agents and assessments * replaced --query support for --json in other list clis * --query deprecation and --json <searchPath> support in describe cli * made jsmePath optional * code refactor * added unit test * added --query/--json for missing cli commands * minor optimization * added test to verify backward compatibility * updated test to handle better scenario * refactor * added test to verify --query works like a --json alias * bug fix * fixed agent versions * separating out --query and --json with other enhancements * build fix * added unit test * added more tests * lint fix * additional tests * updating test * error handling * minor enhancements * bug fixes * removed filter, sort, limit, skip in list-services cmd as they're not supported from apis https://docs.google.com/spreadsheets/d/1LiHHfu6_tCXSQdKYpO0cXGGHtsztdL8TGrL-WwLP0Y4/edit#gid=0 Co-authored-by: Akarsh <aprasad@c12.com> --- README.md | 6 +- bin/cortex-actions.js | 9 ++- bin/cortex-agents.js | 29 ++++---- bin/cortex-assessments.js | 21 +++--- bin/cortex-campaigns.js | 9 ++- bin/cortex-connections.js | 13 ++-- bin/cortex-content.js | 5 +- bin/cortex-experiments.js | 16 +++-- bin/cortex-missions.js | 5 +- bin/cortex-models.js | 13 ++-- bin/cortex-projects.js | 9 ++- bin/cortex-roles.js | 7 +- bin/cortex-secrets.js | 5 +- bin/cortex-sessions.js | 13 ++-- bin/cortex-skills.js | 9 ++- bin/cortex-tasks.js | 5 +- bin/cortex-types.js | 9 ++- bin/cortex-users.js | 4 +- src/client/catalog.js | 7 +- src/commands/actions.js | 14 ++-- src/commands/agents.js | 54 +++++++------- src/commands/assessments.js | 43 ++++++----- src/commands/campaigns.js | 26 +++---- src/commands/connections.js | 26 ++++--- src/commands/content.js | 10 +-- src/commands/experiments.js | 28 ++++---- src/commands/models.js | 25 ++++--- src/commands/projects.js | 18 ++--- src/commands/roles.js | 15 ++-- src/commands/secrets.js | 9 +-- src/commands/sessions.js | 13 ++-- src/commands/skills.js | 17 ++--- src/commands/tasks.js | 8 ++- src/commands/types.js | 14 ++-- src/commands/users.js | 8 ++- src/commands/utils.js | 34 +++++++-- src/constants.js | 4 ++ test/tasks.js | 69 ++++++++++++++++++ test/testUtilFunctions.js | 139 ++++++++++++++++++++++++++++++++++++ 39 files changed, 529 insertions(+), 239 deletions(-) create mode 100644 test/testUtilFunctions.js diff --git a/README.md b/README.md index 873be2e5..a6360ea3 100644 --- a/README.md +++ b/README.md @@ -95,12 +95,12 @@ cortex configure --profile myprofile cortex agents list --profile myprofile ``` -#### Filtering Results using the --query option -Many of the commands support a __--query__ option for filtering JSON responses. Queries use JMESPath to filter JSON documents. The specification for JMESPath can be found here: http://jmespath.org/. It is similar to the popular JQ tool and supported by Amazon AWS and some other notable services. +#### Filtering Results using the --json or --query option (DEPRECATION WARNING for --query) +Many of the commands support a __--json / --query__ option for filtering JSON responses. Queries use JMESPath to filter JSON documents. The specification for JMESPath can be found here: http://jmespath.org/. It is similar to the popular JQ tool and supported by Amazon AWS and some other notable services. For example, if I want to select just the name and title from my previous output: ```bash -cortex agents list --query "[].{name: name, title: title}" +cortex agents list --json "[].{name: name, title: title}" [ { "name": "tutorial/movie_recommendation", diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 7c279aac..8b03c95c 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -30,6 +30,8 @@ const { const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); program.name('cortex actions'); @@ -44,8 +46,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) @@ -67,7 +69,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('-d, --download', 'Download code binary in response') .action(withCompatibilityCheck((actionName, options) => { try { diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index d605b6b1..6e1aa2eb 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -23,6 +23,8 @@ const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); const { @@ -70,8 +72,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) @@ -108,7 +110,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--versions', 'To get list of versions of an agent') .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((agentName, options) => { @@ -177,12 +180,12 @@ program .description('Get dataset or service activation') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json', 'Output results as JSON') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--verbose [boolean]', 'Get debugging info in activation response') .option('--report [boolean]', 'Get additional debugging info in activation response') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((activationId, options) => { try { new GetActivationCommand(program).execute(activationId, options); @@ -199,8 +202,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--agentName <string>', 'Query activations by agentName') .option('--skillName <string>', 'Query activations by skillName') .option('--startBefore <timestamp>', 'Filters activations to include those that started before the specified timestamp.') @@ -228,12 +231,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') - .option('--skip <skip>', 'Move the result cursor to this position before returning results.') - .option('--limit <limit>', 'Limit the number of rows returned') - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((agentName, options) => { try { @@ -268,8 +267,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index dbcae5a4..c016599e 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -35,6 +35,7 @@ const { } = require('../src/commands/assessments'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, + LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } = require('../src/constants'); program.name('cortex assessments'); @@ -46,8 +47,8 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((options) => { try { new ListResourceTypesCommand(program).execute(options); @@ -66,7 +67,8 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .option('--json', 'Output results using JSON') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--missing [boolean]', 'Filter only missing dependencies') .action(withCompatibilityCheck((dependencyFile, options) => { try { @@ -86,7 +88,8 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .option('--json', 'Output results using JSON') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) @@ -131,8 +134,8 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) @@ -198,7 +201,8 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .option('--json', 'Output results using JSON') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((assessmentName, options) => { try { new ListAssessmentReportCommand(program).execute(assessmentName, options); @@ -214,7 +218,8 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .option('--json', 'Output results using JSON') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((assessmentName, reportId, options) => { try { new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index cb0874e3..146d6687 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -22,6 +22,8 @@ const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); const { @@ -45,8 +47,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) @@ -68,7 +70,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((campaignName, options) => { try { new DescribeCampaignCommand(program).execute(campaignName, options); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 60c1bb5c..cf58c5c5 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -22,6 +22,8 @@ const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); const { @@ -44,8 +46,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) @@ -83,7 +85,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((connectionName, options) => { try { new DescribeConnectionCommand(program).execute(connectionName, options); @@ -100,8 +103,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') diff --git a/bin/cortex-content.js b/bin/cortex-content.js index b44b219d..cd7cab80 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -27,6 +27,7 @@ const { DeleteContent, DownloadContent, } = require('../src/commands/content'); +const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); program.name('cortex content'); program.description('Work with Cortex Managed Content'); @@ -40,8 +41,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--prefix <prefix>', 'Filter contents with the given prefix.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 897b19ce..b9b17c8c 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -22,6 +22,8 @@ const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); const { @@ -50,8 +52,8 @@ program .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--model <model>', 'The model to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) @@ -73,7 +75,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((experimentName, options) => { try { new DescribeExperimentCommand(program).execute(experimentName, options); @@ -106,8 +109,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) @@ -129,7 +132,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((experimentName, runId, options) => { try { new DescribeRunCommand(program).execute(experimentName, runId, options); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 30fa658c..ab82ead3 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -24,6 +24,7 @@ const { parseObject, printError } = require('../src/commands/utils'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, + LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } = require('../src/constants'); const { @@ -42,12 +43,12 @@ program .command('list <campaignName>') .alias('l') .description('List Missions of the Campaign') - .option('--json', 'Output results using JSON') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 7e671290..e81e548c 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -32,6 +32,8 @@ const { } = require('../src/commands/models'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); program.name('cortex models'); @@ -47,8 +49,8 @@ program .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--tags <tags>', 'The tags to use (comma separated values)') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) @@ -70,7 +72,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((modelName, options) => { try { @@ -157,8 +160,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 23284377..61c6e3da 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -29,6 +29,8 @@ const { } = require('../src/commands/projects'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); program.name('cortex projects'); @@ -62,8 +64,8 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) @@ -84,7 +86,8 @@ program .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((projectName, options) => { try { new DescribeProjectCommand(program).execute(projectName, options); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 9284f71a..95d7280a 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -34,6 +34,7 @@ const { RoleDescribeCommand, RoleListCommand, } = require('../src/commands/roles'); +const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); program.name('cortex roles'); program.description('Work with Cortex Roles'); @@ -42,7 +43,8 @@ program.command('list') .description('List roles by project and user') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--json', 'Return raw json') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'Project to list roles for') @@ -151,7 +153,8 @@ program.command('project <project>') program.command('list-external') .description('List external groups') .option('--no-compat', 'Ignore API compatibility checks') - .option('--json', 'Output results using JSON') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((options) => { diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index d82164bc..2eb49c04 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -27,6 +27,7 @@ const { WriteSecretsCommand, DeleteSecretCommand, } = require('../src/commands/secrets'); +const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); program.name('cortex secrets'); program.description('Work with Cortex Secrets'); @@ -38,10 +39,10 @@ program .alias('l') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json', 'Output results using JSON') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') .action(withCompatibilityCheck((options) => { try { new ListSecretsCommand(program).execute(options); diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index a1157b58..3898bc87 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -27,7 +27,11 @@ const { DescribeSessionCommand, ListSessionsCommand, } = require('../src/commands/sessions'); -const { DEFAULT_LIST_LIMIT_COUNT } = require('../src/constants'); +const { + DEFAULT_LIST_LIMIT_COUNT, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, +} = require('../src/constants'); program.name('cortex sessions'); program.description('Work with Cortex Sessions'); @@ -42,8 +46,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data. Ignored if output format is not JSON.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((options) => { try { new ListSessionsCommand(program).execute(options); @@ -61,7 +65,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((sessionName, options) => { try { diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index ad5208aa..aff83760 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -22,6 +22,8 @@ const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); const { @@ -63,7 +65,8 @@ program .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resource') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output') .action(withCompatibilityCheck(async (skillName, options) => { try { @@ -101,10 +104,10 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--nostatus', 'skip extra call for skill status') .option('--noshared', 'do not list shared skills') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index dda225f2..3c54cb25 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -30,6 +30,8 @@ const { const { DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SKIP_COUNT, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); program.name('cortex tasks'); @@ -48,7 +50,8 @@ program .option('--activationId <string>', 'filter tasks by activation id') .option('--skillName <string>', 'Filter tasks by skill name') .option('--scheduled', 'Show scheduled tasks only') - .option('--json', 'Output results using JSON') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) // This is a client-side sort .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 63e436a5..52ec7b07 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -22,6 +22,8 @@ const { program } = require('commander'); const { withCompatibilityCheck } = require('../src/compatibility'); const { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, } = require('../src/constants'); const { @@ -60,8 +62,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--json', 'Output results using JSON') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) @@ -82,7 +84,8 @@ program .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('--query <query>', 'A JMESPath query to use in filtering the response data.') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((typeName, options) => { try { new DescribeTypeCommand(program).execute(typeName, options); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index e7913388..70826b2b 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -28,6 +28,7 @@ const { UserListCommand, UserDeleteCommand, } = require('../src/commands/users'); +const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); program.name('cortex users'); program.description('Work with Cortex User'); @@ -111,7 +112,8 @@ program.command('list') .description('Lists all service users created within Cortex') .alias('l') .option('--no-compat', 'Ignore API compatibility checks') - .option('--json', 'Output results using JSON') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((options) => { diff --git a/src/client/catalog.js b/src/client/catalog.js index dbbcd6ef..ab636f33 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -143,15 +143,10 @@ module.exports = class Catalog { .catch((err) => constructError(err)); } - async listServices(projectId, token, agentName, filter, limit, skip, sort) { + async listServices(projectId, token, agentName) { // TODO removed profile should I use that as the URL ?? checkProject(projectId); debug('listServices() using describeAgent'); - const query = {}; - if (filter) query.filter = filter; - if (limit) query.limit = limit; - if (sort) query.sort = sort; - if (skip) query.skip = skip; const response = await this.describeAgent(projectId, token, agentName); if (response.success) { const urlBase = `${this.endpoints.agentinvoke(projectId)}/${encodeURIComponent(agentName)}/services`; diff --git a/src/commands/actions.js b/src/commands/actions.js index 98413999..df271fb0 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -26,6 +26,7 @@ dayjs.extend(relativeTime); const { printSuccess, printError, filterObject, parseObject, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, + getFilteredOutput, } = require('./utils'); module.exports.ListActionsCommand = class { @@ -43,12 +44,12 @@ module.exports.ListActionsCommand = class { // eslint-disable-next-line consistent-return .then((response) => { if (response.success) { - let result = response.actions; - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.actions; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); const tableSpec = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Type', field: 'type', width: 8 }, @@ -86,8 +87,7 @@ module.exports.DescribeActionCommand = class { actions.describeAction(options.project || profile.project, profile.token, actionName) .then((response) => { if (response.success) { - const result = filterObject(response.action, options); - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response.action, options); } else { printError(`Failed to describe action: ${response.status} ${response.message}`, options); } diff --git a/src/commands/agents.js b/src/commands/agents.js index 7b9c6dd2..22379059 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -28,6 +28,7 @@ dayjs.extend(relativeTime); const { printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, + getFilteredOutput, getQueryOptions, } = require('./utils'); module.exports.SaveAgentCommand = class SaveAgentCommand { @@ -86,12 +87,12 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { // eslint-disable-next-line consistent-return catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { - let result = response.agents; - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.agents; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); handleTable( LISTTABLEFORMAT, result, @@ -122,8 +123,7 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { debug('%s.executeDescribeAgentVersions(%s)', profile.name, agentName); catalog.describeAgentVersions(options.project || profile.project, profile.token, agentName).then((response) => { if (response.success) { - const result = filterObject(response.agent, options); - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response.agent, options); } else { printError(`Failed to describe agent versions ${agentName}: ${response.message}`, options); } @@ -206,8 +206,8 @@ module.exports.GetActivationCommand = class { const agents = new Agents(profile.url); agents.getActivation(project || profile.project, profile.token, activationId, verbose, report).then((response) => { if (response.success) { - const result = filterObject(response.result, options); if (options.report && !options.json) { + const result = filterObject(response.result, getQueryOptions(options)); const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 40 }, @@ -215,11 +215,11 @@ module.exports.GetActivationCommand = class { { column: 'Status', field: 'status', width: 20 }, { column: 'Elapsed (ms)', field: 'elapsed', width: 30 }, ]; - printSuccess(`Status: ${result.status}`); - printSuccess(`Elapsed Time (ms): ${result.elapsed}`); - printTable(tableSpec, _.sortBy(result.transits, ['start', 'end'])); + printSuccess(`Status: ${_.get(result, 'status')}`); + printSuccess(`Elapsed Time (ms): ${_.get(result, 'elapsed')}`); + printTable(tableSpec, _.sortBy(_.get(result, 'transits'), ['start', 'end'])); } else { - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response.result, options); } } else { printError(`Failed to get activation ${activationId}: ${response.message}`, options); @@ -265,12 +265,12 @@ module.exports.ListActivationsCommand = class { // eslint-disable-next-line consistent-return agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { - let result = response.result.activations; - if (options.query) result = filterObject(result, options); - - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.result.activations; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); const tableSpec = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Activation Id', field: 'activationId', width: 40 }, @@ -314,13 +314,14 @@ module.exports.ListServicesCommand = class ListServicesCommand { debug('%s.listServices(%s)', profile.name, agentName); const catalog = new Catalog(profile.url); - catalog.listServices(options.project || profile.project, profile.token, agentName, profile, options.filter, options.limit, options.skip, options.sort).then((response) => { + catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { if (response.success) { - let result = response.services; - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.services; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); const tableSpec = [ { column: 'Service Name', field: 'name', width: 25 }, { column: 'Service Endpoint URL', field: 'url', width: 115 }, @@ -352,11 +353,12 @@ module.exports.ListAgentSnapshotsCommand = class { // eslint-disable-next-line consistent-return .then((response) => { if (response.success) { - let result = response.result.snapshots; - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.result.snapshots; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); const tableSpec = [ { column: 'Snapshot ID', field: 'snapshotId', width: 40 }, { column: 'Title', field: 'title', width: 40 }, diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 3bca1785..33b867dd 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -31,8 +31,9 @@ const Assessments = require('../client/assessments'); dayjs.extend(relativeTime); const { - printSuccess, printError, parseObject, filterObject, + printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, + getFilteredOutput, } = require('./utils'); module.exports.ListResourcesCommand = class { @@ -50,10 +51,11 @@ module.exports.ListResourcesCommand = class { // eslint-disable-next-line consistent-return .then((response) => { if (response.success === false) return handleListFailure(response, options, 'Cortex resources'); - printExtendedLogs(response.data, options); - if (options.json) { - printSuccess(JSON.stringify(response, null, 2), options); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); } else { + printExtendedLogs(response.data, options); const tableSpec = [ { column: 'Name', field: 'resourceName' }, { column: 'Title', field: 'resourceTitle' }, @@ -83,10 +85,10 @@ module.exports.ListResourceTypesCommand = class { client.listResourceTypes(profile.token) .then((response) => { if (response.success === false) throw response; - let data = _.compact(response.data); - if (options.json) { - if (options.query) data = filterObject(data, options); - printSuccess(JSON.stringify(data, null, 2), options); + const data = _.compact(response.data); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(data, options); } else { const types = data.map((t) => ({ type: t })); const tableSpec = [ @@ -119,8 +121,9 @@ module.exports.DependencyTreeCommand = class { client.getDependenciesOfResource(profile.token, options.scope, options.type, options.name, body, options.missing) .then((response) => { if (response.success === false) throw response; - if (options.json) { - printSuccess(JSON.stringify(response, null, 2), options); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); } else { const tableSpec = [ { column: 'Name', field: 'name' }, @@ -188,12 +191,12 @@ module.exports.ListAssessmentCommand = class { // eslint-disable-next-line consistent-return .then((response) => { if (response.success === false) return handleListFailure(response, options, 'Assessments'); - let result = response.data; - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.data; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); const tableSpec = [ { column: 'Name', field: 'name' }, { column: 'Title', field: 'title' }, @@ -288,8 +291,9 @@ module.exports.ListAssessmentReportCommand = class { client.listAssessmentReports(profile.token, name) .then((response) => { if (response.success === false) throw response; - if (options.json) { - printSuccess(JSON.stringify(response, null, 2), options); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); } else { const tableSpec = [ { column: 'Assessment Name', field: 'assessmentId' }, @@ -321,7 +325,8 @@ module.exports.GetAssessmentReportCommand = class { client.getAssessmentReport(profile.token, name, reportId) .then((response) => { if (response.success === false) throw response; - if (options.json) { + // TODO remove --query on deprecation + if (options.json || options.query) { const output = { name: response.reportId, assessment: response.assessmentId, @@ -330,7 +335,7 @@ module.exports.GetAssessmentReportCommand = class { _createdAt: response._createdAt, _createdBy: response._createdBy, }; - printSuccess(JSON.stringify(output, null, 2), options); + getFilteredOutput(output, options); } else { const flattenRefs = _.uniqBy( _.flatten( diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 45f1b2c8..2a73fbf7 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -20,8 +20,9 @@ const Catalog = require('../client/catalog'); const _ = { get: require('lodash/get') }; const { - printSuccess, printError, filterObject, printTable, handleTable, + printSuccess, printError, printTable, handleTable, printExtendedLogs, handleListFailure, + getFilteredOutput, } = require('./utils'); module.exports.ListCampaignsCommand = class ListCampaignsCommand { @@ -38,12 +39,12 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { const sortParam = (options.sort || '{}').replace(/"/g, '\''); const filterParam = (options.filter || '{}').replace(/"/g, '\''); const response = await cli.listCampaigns(options.project || profile.project, profile.token, filterParam, options.limit, options.skip, sortParam); - let result = response; - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); const tableSpec = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Title', field: 'title', width: 50 }, @@ -70,8 +71,7 @@ module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { try { const response = await cli.getCampaign(options.project || profile.project, profile.token, campaignName); - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response, options); } catch (err) { printError(`Failed to describe campaign: ${err.status} ${err.message}`, options); } @@ -220,12 +220,12 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { const filterParam = (options.filter || '{}').replace(/"/g, '\''); cli.listMissions(options.project || profile.project, profile.token, campaign, filterParam, options.limit, options.skip, sortParam).then((response) => { if (response.success === false) throw response; - let data = Object.values(response.data); - printExtendedLogs(data, options); - if (options.json) { - if (options.query) data = filterObject(data, options); - printSuccess(JSON.stringify(data, null, 2), options); + const data = Object.values(response.data); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(data, options); } else { + printExtendedLogs(data, options); const tableSpec = [ { column: 'Name', field: 'name', width: 50 }, { column: 'Title', field: 'title', width: 50 }, diff --git a/src/commands/connections.js b/src/commands/connections.js index 59ef77d6..7349a12f 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -27,6 +27,7 @@ dayjs.extend(relativeTime); const { printSuccess, printError, filterObject, parseObject, CONNECTIONTABLEFORMAT, fileExists, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, + getFilteredOutput, } = require('./utils'); module.exports.ListConnections = class ListConnections { @@ -43,13 +44,12 @@ module.exports.ListConnections = class ListConnections { // eslint-disable-next-line consistent-return conns.listConnections(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { - let result = response.result.connections; - - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.result.connections; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); handleTable( CONNECTIONTABLEFORMAT, result, @@ -149,8 +149,7 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { const connection = new Connections(profile.url); connection.describeConnection(options.project || profile.project, profile.token, connectionName).then((response) => { if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response.result, options); } else { printError(`Failed to describe connection ${connectionName}: ${response.message}`, options); } @@ -198,13 +197,12 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { // eslint-disable-next-line consistent-return conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort).then((response) => { if (response.success) { - let result = response.result.connectionTypes; - - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.result.connectionTypes; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); const tableSpec = [ { column: 'Name', field: 'name', width: 50 }, { column: 'Title', field: 'title', width: 25 }, diff --git a/src/commands/content.js b/src/commands/content.js index 7f0cb296..6fac0bff 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -18,7 +18,8 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const Content = require('../client/content'); const { - printSuccess, printError, getSourceFiles, humanReadableFileSize, filterObject, handleTable, + printSuccess, printError, getSourceFiles, humanReadableFileSize, handleTable, + getFilteredOutput, } = require('./utils'); module.exports.ListContent = class ListContent { @@ -33,9 +34,10 @@ module.exports.ListContent = class ListContent { const content = new Content(profile.url); content.listContent(options.project || profile.project, profile.token, options.prefix).then((response) => { if (response.success) { - if (options.query || options.json) { - const result = filterObject(response.message, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.message; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { const tableSpec = [ { column: 'Key', field: 'Key', width: 70 }, diff --git a/src/commands/experiments.js b/src/commands/experiments.js index d8b4843a..fe727678 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -25,6 +25,7 @@ const Experiments = require('../client/experiments'); const { printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, + getFilteredOutput, } = require('./utils'); dayjs.extend(duration); @@ -44,12 +45,12 @@ class ListExperiments { // eslint-disable-next-line consistent-return exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { - let { result } = response; - printExtendedLogs(result.experiments, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result.experiments, options); const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 50 }, @@ -82,8 +83,7 @@ class DescribeExperimentCommand { const exp = new Experiments(profile.url); exp.describeExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response.result, options); } else { printError(`Failed to describe experiment ${experimentName}: ${response.status} - ${response.message}`, options); } @@ -132,13 +132,12 @@ class ListRuns { // eslint-disable-next-line consistent-return exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort, options.skip).then((response) => { if (response.success) { - let { result } = response; - - printExtendedLogs(result.runs, options); - if (options.json) { - if (options.query) result = filterObject(result.runs, options); - printSuccess(JSON.stringify(result, null, 2), options); + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result.runs, options); } else { + printExtendedLogs(result.runs, options); const tableSpec = [ { column: 'Run ID', field: 'runId', width: 25 }, { column: 'Start', field: 'startTime', width: 25 }, @@ -180,8 +179,7 @@ class DescribeRunCommand { const exp = new Experiments(profile.url); exp.describeRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response.result, options); } else { printError(`Failed to describe run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); } diff --git a/src/commands/models.js b/src/commands/models.js index f867c4a7..0dcfd63a 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -28,6 +28,7 @@ const Experiments = require('../client/experiments'); const { LISTTABLEFORMAT, RUNTABLEFORMAT, printExtendedLogs, handleListFailure, handleDeleteFailure, printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, + getFilteredOutput, } = require('./utils'); dayjs.extend(relativeTime); @@ -85,12 +86,12 @@ module.exports.ListModelsCommand = class ListModelsCommand { // eslint-disable-next-line consistent-return models.listModels(options.project || profile.project, options.skip, options.limit, options.filter, options.sort, options.tags, profile.token).then((response) => { if (response.success) { - let result = response.models; - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.models; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); handleTable( LISTTABLEFORMAT, result, @@ -122,13 +123,12 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { // eslint-disable-next-line consistent-return models.listModelRuns(options.project || profile.project, modelName, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { if (response.success) { - let result = response.runs; - - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.runs; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); handleTable( RUNTABLEFORMAT, result, @@ -158,8 +158,7 @@ module.exports.DescribeModelCommand = class DescribeModelCommand { debug('%s.executeDescribeModel(%s)', profile.name, modelName); models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { if (response.success) { - const result = filterObject(response.model, options); - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response.model, options); } else { printError(`Failed to describe model ${modelName}: ${response.message}`, options); } diff --git a/src/commands/projects.js b/src/commands/projects.js index 61780de8..70fd9b0e 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -19,7 +19,8 @@ const debug = require('debug')('cortex:cli'); const { loadProfile } = require('../config'); const ApiServerClient = require('../client/apiServerClient'); const { - printSuccess, printError, filterObject, parseObject, handleTable, printExtendedLogs, handleListFailure, + printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, + getFilteredOutput, } = require('./utils'); module.exports.CreateProjectCommand = class CreateProjectCommand { @@ -67,12 +68,12 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { const sortParam = (options.sort || '{}').replace(/"/g, '\''); const filterParam = (options.filter || '{}').replace(/"/g, '\''); const response = await cli.listProjects(profile.token, filterParam, options.limit, options.skip, sortParam); - let result = response; - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); const tableSpec = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Title', field: 'title', width: 50 }, @@ -98,9 +99,8 @@ module.exports.DescribeProjectCommand = class DescribeProjectCommand { const cli = new ApiServerClient(profile.url); try { - const response = await cli.getProject(profile.token, projectName); - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); + const response = await cli.getProject(profile.token, projectName); + getFilteredOutput(response, options); } catch (err) { printError(`Failed to describe project: ${err.status} ${err.message}`, options); } diff --git a/src/commands/roles.js b/src/commands/roles.js index 210f5e31..9c212ec4 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -18,6 +18,7 @@ const { loadProfile } = require('../config'); const Roles = require('../client/roles'); const { printSuccess, printError, filterObject, EXTERNALROLESFORMAT, handleTable, + getFilteredOutput, } = require('./utils'); function createGrant(options) { @@ -194,9 +195,10 @@ module.exports.RoleListCommand = class { const client = new Roles(profile.url, flags); client.listRoles(profile.token, options.project).then((response) => { if (response.success) { - const result = filterObject(response.result, options); - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { handleTable([{ column: 'Role', field: 'role' }], result.roles.map((x) => ({ role: x })), null, 'No roles found'); } @@ -255,9 +257,10 @@ module.exports.ExternalGroupListCommand = class { const client = new Roles(profile.url, null); client.listExternalGroups(profile.token).then((response) => { if (response.success) { - const result = filterObject(response.result, options); - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { handleTable(EXTERNALROLESFORMAT, result, (o) => ({ ...o, roles: o.roles.join(', ') }), null, 'No external roles found'); } diff --git a/src/commands/secrets.js b/src/commands/secrets.js index ad285c7c..563d983d 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -24,6 +24,7 @@ const { loadProfile } = require('../config'); const Secrets = require('../client/secrets'); const { printSuccess, printError, filterObject, parseObject, printTable, handleTable, handleDeleteFailure, + getFilteredOutput, } = require('./utils'); module.exports.ListSecretsCommand = class { @@ -39,10 +40,10 @@ module.exports.ListSecretsCommand = class { secrets.listSecrets(options.project || profile.project, profile.token) .then((response) => { if (response.success) { - let { result } = response; - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { const tableSpec = [ { column: 'Secret Key Name', field: 'keyName', width: 50 }, diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 008b638b..bef5ff36 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -23,6 +23,7 @@ const { SESSIONTABLEFORMAT, formatValidationPath, handleListFailure, + getFilteredOutput, } = require('./utils'); const { @@ -79,11 +80,10 @@ module.exports.ListSessionsCommand = class ListSessionsCommand { const sessions = new Sessions(profile.url); sessions.listSessions(options.project || profile.project, profile.token, options.limit).then((response) => { if (response.success) { - let result = response.sessions; - - if (options.json) { - if (options.query) result = filterObject(result, options); - return printSuccess(JSON.stringify(result, null, 2), options); + const result = response.sessions; + // TODO remove --query on deprecation + if (options.json || options.query) { + return getFilteredOutput(result, options); } return handleTable(SESSIONTABLEFORMAT, result, null, 'No sessions found'); } @@ -107,8 +107,7 @@ module.exports.DescribeSessionCommand = class DescribeSessionCommand { debug('%s.executeDescribeSession(%s)', profile.name, sessionName); sessions.describeSession(options.project || profile.project, profile.token, sessionName, options.verbose).then((response) => { if (response.success) { - const result = filterObject(response.session, options); - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response.session, options); } else { printError(`Failed to describe session ${sessionName}: ${response.message}`, options); } diff --git a/src/commands/skills.js b/src/commands/skills.js index d4b6771a..73df064d 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -27,6 +27,7 @@ dayjs.extend(relativeTime); const { printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, + getFilteredOutput, } = require('./utils'); module.exports.SaveSkillCommand = class SaveSkillCommand { @@ -123,11 +124,11 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { }); tableFormat.push({ column: 'Status', field: 'status', width: 30 }); } - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - return printSuccess(JSON.stringify(result, null, 2), options); + // TODO remove --query on deprecation + if (options.json || options.query) { + return getFilteredOutput(result, options); } + printExtendedLogs(result, options); return handleTable( tableFormat, _.sortBy(result, options.sort ? [] : ['name']), @@ -153,11 +154,11 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { const catalog = new Catalog(profile.url); try { - let response = await catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose, options.output); - if (_.get(options, 'output', 'json').toLowerCase() === 'json') response = JSON.stringify(filterObject(response, options), null, 2); - printSuccess(response, options); + const response = await catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose, options.output); + if (_.get(options, 'output', 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); + return printSuccess(response, options); } catch (err) { - printError(`Failed to describe skill ${skillName}: ${err.status} ${err.message}`, options); + return printError(`Failed to describe skill ${skillName}: ${err.status} ${err.message}`, options); } } }; diff --git a/src/commands/tasks.js b/src/commands/tasks.js index 321282a9..e3b4725f 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -22,6 +22,7 @@ const { loadProfile } = require('../config'); const Tasks = require('../client/tasks'); const { printSuccess, printError, handleTable, printExtendedLogs, + getFilteredOutput, } = require('./utils'); dayjs.extend(relativeTime); @@ -64,7 +65,6 @@ module.exports.ListTasksCommand = class { let format = 'k8sFormat'; // Assume old format if (response.success) { let taskList = _.get(response, 'tasks', []); - printExtendedLogs(taskList, options); if (_.isEmpty(taskList)) { return printSuccess('No tasks found'); } @@ -96,9 +96,11 @@ module.exports.ListTasksCommand = class { break; } } - if (options.json) { - return printSuccess(JSON.stringify(taskList, null, 2), options); + // TODO remove --query on deprecation + if (options.json || options.query) { + return getFilteredOutput(taskList, options); } + printExtendedLogs(taskList, options); const tableCols = options.scheduled ? SCHED_LIST_TABLE : TASK_LIST_TABLE; return handleTable(tableCols, taskList); } diff --git a/src/commands/types.js b/src/commands/types.js index 12816f77..ff85e3b7 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -22,6 +22,7 @@ const { loadProfile } = require('../config'); const Catalog = require('../client/catalog'); const { LISTTABLEFORMAT, filterObject, printExtendedLogs, handleListFailure, + getFilteredOutput, } = require('./utils'); const { @@ -73,12 +74,12 @@ module.exports.ListTypesCommand = class ListTypesCommand { // eslint-disable-next-line consistent-return catalog.listTypes(options.project || profile.project, profile.token, options.limit, options.skip, options.sort).then((response) => { if (response.success) { - let result = response.types; - printExtendedLogs(result, options); - if (options.json) { - if (options.query) result = filterObject(result, options); - printSuccess(JSON.stringify(result, null, 2), options); + const result = response.types; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { + printExtendedLogs(result, options); handleTable( LISTTABLEFORMAT, result, @@ -108,8 +109,7 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { const catalog = new Catalog(profile.url); catalog.describeType(options.project || profile.project, profile.token, typeName).then((response) => { if (response.success) { - const result = filterObject(response.type, options); - printSuccess(JSON.stringify(result, null, 2), options); + getFilteredOutput(response.type, options); } else { printError(`Failed to describe type ${typeName}: ${response.message}`, options); } diff --git a/src/commands/users.js b/src/commands/users.js index 90516b70..55a17d1b 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -18,6 +18,7 @@ const { loadProfile } = require('../config'); const Users = require('../client/users'); const { printSuccess, printError, filterObject, handleTable, + getFilteredOutput, } = require('./utils'); function createGrant(options) { @@ -122,9 +123,10 @@ module.exports.UserListCommand = class { const client = new Users(profile.url, 'self'); client.listServiceUsers(profile.token).then((response) => { if (response.success) { - const result = filterObject(response.result, options); - if (options.json) { - printSuccess(JSON.stringify(result, null, 2), options); + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { handleTable([{ column: 'User', field: 'user' }], result.users.map((x) => ({ user: x })), null, 'No service users found'); } diff --git a/src/commands/utils.js b/src/commands/utils.js index 1f4d10d7..4dad0e1a 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -93,12 +93,38 @@ function printError(message, options, exit = true) { } module.exports.printError = printError; +// eslint-disable-next-line consistent-return module.exports.filterObject = (obj, options) => { - if (options.query) { - debug(`filtering results with query: ${options.query}`); - return jmsepath.search(obj, options.query); + try { + if (options.query) { + debug(`filtering results with query: ${options.query}`); + return jmsepath.search(obj, options.query); + } + return obj; + } catch (e) { + // TODO remove --query on deprecation + process.stderr.write(`error: invalid argument: ${options.query} \n`); + } +}; + +module.exports.getQueryOptions = (options) => { + // TODO remove --query on deprecation + if (options.query) process.stderr.write('[DEPRECATION WARNING] --query\n'); + if (options.query && options.json && typeof (options.json) === 'string') process.stderr.write('Warning! --query overrides --json args\n'); + // make --query override --json + const queryOptions = options.query || options.json; + // output JSON if JSMEpath isn't passed, default value is true + // set searchPath to null if there's no path + return { query: queryOptions === true ? null : queryOptions }; +}; + +module.exports.getFilteredOutput = (result, options) => { + const filteredResult = this.filterObject(result, this.getQueryOptions(options)); + if (filteredResult) { + // print extended logs iff --query arg is valid + this.printExtendedLogs(filteredResult, options); + this.printSuccess(JSON.stringify(filteredResult, null, 2), options); } - return obj; }; module.exports.filterListObject = (obj, options) => { diff --git a/src/constants.js b/src/constants.js index 3ed832ff..bb734207 100644 --- a/src/constants.js +++ b/src/constants.js @@ -76,4 +76,8 @@ module.exports.DEFAULT_LIST_SORT_PARAMS = { start: 'start', // activations }; +module.exports.LIST_JSON_HELP_TEXT = 'Output results in JSON, supports JMESPath query to filter the response data'; + +module.exports.QUERY_JSON_HELP_TEXT = 'A JMESPath query to use in filtering the response data'; + module.exports.GET_DEFAULT_SORT_CLI_OPTION = (param) => JSON.stringify({ [param]: -1 }); diff --git a/test/tasks.js b/test/tasks.js index 7c0c52df..832d7d81 100644 --- a/test/tasks.js +++ b/test/tasks.js @@ -95,6 +95,75 @@ describe('Tasks', () => { nock.isDone(); }); + it('list tasks command JSON without JSMEsearch', async () => { + const program = require('../bin/cortex-tasks'); + const response = { success: true, tasks: ['task0', 'task1'] }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); + await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); + const output = getPrintedLines(); + const errs = getErrorLines(); + chai.expect(output.join('')).to.contain('name'); + chai.expect(output.join('')).to.contain('task0'); + chai.expect(output.join('')).to.contain('task1'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('list tasks command JSON with JSMEsearch', async () => { + const program = require('../bin/cortex-tasks'); + const now = Date.now(); + const response = { + success: true, + tasks: [ + { + name: 'task0', startTime: now - (30 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx1', skillName: 'skill1', actionName: 'action1', status: 'COMPLETE', + }, + { + name: 'task1', startTime: now - (40 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx2', skillName: 'skill2', actionName: 'action1', status: 'FAIL', + }, + ], + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); + await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json', '[].{skillName: skillName, name: name}']); + const output = getPrintedLines(); + const errs = getErrorLines(); + chai.expect(output.join('')).to.not.contain('activationId'); + chai.expect(output.join('')).to.contain('skillName'); + chai.expect(output.join('')).to.contain('task0'); + chai.expect(output.join('')).to.contain('task1'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('list tasks command QUERY should work as JSON alias with JSMEsearch', async () => { + const program = require('../bin/cortex-tasks'); + const now = Date.now(); + const response = { + success: true, + tasks: [ + { + name: 'task0', startTime: now - (30 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx1', skillName: 'skill1', actionName: 'action1', status: 'COMPLETE', + }, + { + name: 'task1', startTime: now - (40 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx2', skillName: 'skill2', actionName: 'action1', status: 'FAIL', + }, + ], + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); + await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--query', '[].{skillName: skillName, name: name}']); + const output = getPrintedLines(); + const errs = getErrorLines(); + chai.expect(output.join('')).to.not.contain('activationId'); + chai.expect(output.join('')).to.contain('skillName'); + chai.expect(output.join('')).to.contain('task0'); + chai.expect(output.join('')).to.contain('task1'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + it('list tasks command', async () => { const program = require('../bin/cortex-tasks'); const now = Date.now(); diff --git a/test/testUtilFunctions.js b/test/testUtilFunctions.js new file mode 100644 index 00000000..c99d99f7 --- /dev/null +++ b/test/testUtilFunctions.js @@ -0,0 +1,139 @@ +const { expect } = require('chai'); +const _ = require('lodash'); +const mockedEnv = require('mocked-env'); +const sinon = require('sinon'); +const { getQueryOptions, getFilteredOutput } = require('../src/commands/utils'); + +const { stripAnsi } = require('./utils'); + +describe('Test getQueryOptions function', () => { + it('should have empty query string if options.json is true', () => { + const options = { + json: true, + }; + const queryOptions = getQueryOptions(options); + expect(queryOptions.query).to.eql(null); + }); + + it('should retain the query string if options.json is not true', () => { + const queryPath = '[].{name: name, title: title}'; + const options = { + json: queryPath, + }; + const queryOptions = getQueryOptions(options); + expect(queryOptions.query).to.eql(queryPath); + }); + + // TODO remove --query on deprecation + // handle cases 'cortex entity command --query <path> --json' + it('--query [arg] should override --json [arg] the if both are passed', () => { + const queryPath = '[].{name: name, title: title}'; + const jsonPath = '[].{name: name}'; + const options = { + json: jsonPath, + query: queryPath, + }; + const queryOptions = getQueryOptions(options); + expect(queryOptions.query).to.eql(queryPath); + }); +}); + +describe('Test getFilteredOutput function', () => { + let restore; + let printSpy; + let printSpyConsole; + before(() => { + restore = mockedEnv({}); + }); + + beforeEach(() => { + printSpy = sinon.spy(process.stderr, 'write'); + printSpyConsole = sinon.spy(console, 'log'); + }); + + afterEach(() => { + printSpy.restore(); + printSpyConsole.restore(); + }); + + after(() => { + restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + function getPrintedConsoleLines() { + return _.flatten(printSpyConsole.args).map((s) => stripAnsi(s)); + } + + it('should print Deprecation warning when query option is present', () => { + const queryPath = '[].{name: name, title: title}'; + const options = { + query: queryPath, + }; + getFilteredOutput([], options); + expect(getPrintedLines()).to.eql(['[DEPRECATION WARNING] --query\n']); + }); + + it('should print error message when query has invalid input', () => { + // handle cases 'cortex entity command --query <path> --json' + const queryPath = '--json'; + const options = { + query: queryPath, + }; + getFilteredOutput([], options); + expect(getPrintedLines()[1]).to.eql(`error: invalid argument: ${queryPath} \n`); + }); + + it('should print json output with correct params', () => { + // handle cases 'cortex entity command --query <path> --json' + const options = { + json: true, + }; + const data = { name: 'test-name', title: 'test-title' }; + getFilteredOutput(data, options); + expect(getPrintedConsoleLines()[0]).to.contain('name'); + expect(getPrintedConsoleLines()[0]).to.contain('test-name'); + expect(getPrintedConsoleLines()[0]).to.contain('title'); + expect(getPrintedConsoleLines()[0]).to.contain('test-title'); + }); + + it('should print json output with correct query args', () => { + const options = { + query: 'title', + }; + const data = { name: 'test-name', title: 'test-title' }; + getFilteredOutput(data, options); + expect(getPrintedLines()[0]).to.contain(['[DEPRECATION WARNING] --query']); + expect(getPrintedConsoleLines()[0]).to.not.contain('name'); + expect(getPrintedConsoleLines()[0]).to.not.contain('test-name'); + expect(getPrintedConsoleLines()[0]).to.contain('test-title'); + }); + + it('should print json output with correct json args without Deprecation warning', () => { + const options = { + json: 'title', + }; + const data = { name: 'test-name', title: 'test-title' }; + getFilteredOutput(data, options); + expect(getPrintedLines()).to.not.contain(['[DEPRECATION WARNING] --query']); + expect(getPrintedConsoleLines()[0]).to.not.contain('name'); + expect(getPrintedConsoleLines()[0]).to.not.contain('test-name'); + expect(getPrintedConsoleLines()[0]).to.contain('test-title'); + }); + + it('should override json path when both query and json path are passed', () => { + const options = { + json: 'title', + query: 'name', + }; + const data = { name: 'test-name', title: 'test-title' }; + getFilteredOutput(data, options); + expect(getPrintedLines()[0]).to.contain(['[DEPRECATION WARNING] --query']); + expect(getPrintedConsoleLines()[0]).to.not.contain('title'); + expect(getPrintedConsoleLines()[0]).to.not.contain('test-title'); + expect(getPrintedConsoleLines()[0]).to.contain('test-name'); + }); +}); From a5984e051093fe1c1d6b3874f07384bb579cec80 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 3 Oct 2022 08:31:17 -0500 Subject: [PATCH 768/864] Workspace local (#646) * allow user to skip docker push to support local cortex instance Fix warning Added --profile options to workspaces commands * Add error message for missing Dockerfile * Add error message for missing Dockerfile * Add error handling skill save * Add action name to action errors * Detect headless environment and use local storage over keytar vuln fixes * Fix broken test --- .gitignore | 1 + bin/cortex-workspaces.js | 7 + package-lock.json | 71 ++++-- package.json | 9 +- src/commands/workspaces/build.js | 13 +- src/commands/workspaces/configure.js | 238 ++++++++++----------- src/commands/workspaces/generate.js | 2 +- src/commands/workspaces/publish.js | 31 +-- src/commands/workspaces/registry.js | 8 +- src/commands/workspaces/workspace-utils.js | 87 ++++++-- src/config.js | 1 + test/cortex/config | 2 +- test/uploadDirectory.js | 2 +- test/workspaces.js | 18 +- 14 files changed, 300 insertions(+), 190 deletions(-) diff --git a/.gitignore b/.gitignore index 3fa61d0f..6e23bb49 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,4 @@ package/ *.tgz npm-shrinkwrap.json *.amp +test/cortex/cache.dat diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index f0c3b0f4..76197a89 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -61,6 +61,7 @@ program program .command('build [folder]') + .option('--profile <profile>', 'The profile to use') .option('--color [boolean]', 'Turn on/off colors', 'true') .option('--skill <skill name>', 'Build only the specified skill') .description('Builds all skills in the workspace, or optionally only the specified skill') @@ -75,8 +76,10 @@ program program .command('publish [folder]') + .option('--profile <profile>', 'The profile to use') .option('--project <project name>', 'Publish to the specified project') .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--skip-push', 'Don\'t push images to docker registry') .option('--skill <skill name>', 'Publish only the specified skill') .description('Publishes all skills and resources in the workspace') .action((folder, options) => { // deliberately not using withCompatibilityCheck() @@ -94,6 +97,7 @@ program registry .command('add [name]') + .option('--profile <profile>', 'The profile to use') .option('--color [boolean]', 'Turn on/off colors', 'true') .option('--url <registry url>', 'Registry URL') .option('--namespace <registry namespace>', 'Registry Namespace') @@ -108,6 +112,7 @@ program registry .command('remove [name]') + .option('--profile <profile>', 'The profile to use') .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Removes the specified image registry.') .action((name, options) => { // deliberately not using withCompatibilityCheck() @@ -120,6 +125,7 @@ program registry .command('activate [name]') + .option('--profile <profile>', 'The profile to use') .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Activates the specified image registry.') .action((name, options) => { // deliberately not using withCompatibilityCheck() @@ -132,6 +138,7 @@ program registry .command('list') + .option('--profile <profile>', 'The profile to use') .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Lists all image registries') .action((options) => { // deliberately not using withCompatibilityCheck() diff --git a/package-lock.json b/package-lock.json index dea5a107..0c2bbe20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "commander": "9.4.0", "dayjs": "1.11.5", "debug": "4.3.4", - "dockerode": "3.3.3", + "dockerode": "3.3.4", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", @@ -29,8 +29,8 @@ "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.6.0", - "jose-node-cjs-runtime": "4.9.0", + "joi": "17.6.2", + "jose-node-cjs-runtime": "4.10.0", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", @@ -461,6 +461,11 @@ "node": ">=6.9.0" } }, + "node_modules/@balena/dockerignore": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", + "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -2116,10 +2121,11 @@ } }, "node_modules/dockerode": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.3.tgz", - "integrity": "sha512-lvKV6/NGf2/CYLt5V4c0fd6Fl9XZSCo1Z2HBT9ioKrKLMB2o+gA62Uza8RROpzGvYv57KJx2dKu+ZwSpB//OIA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.4.tgz", + "integrity": "sha512-3EUwuXnCU+RUlQEheDjmBE0B7q66PV9Rw5NiH1sXwINq0M9c5ERP9fxgkw36ZHOtzf4AGEEYySnkx/sACC9EgQ==", "dependencies": { + "@balena/dockerignore": "^1.0.2", "docker-modem": "^3.0.0", "tar-fs": "~2.0.1" }, @@ -3046,6 +3052,14 @@ "wide-align": "^1.1.0" } }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -4212,9 +4226,9 @@ } }, "node_modules/joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", + "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4224,9 +4238,9 @@ } }, "node_modules/jose-node-cjs-runtime": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.9.0.tgz", - "integrity": "sha512-7GMjRo0ZU/b7hTjl9GP1aT8D8xKzXMDiVwSU9o1FwwlNfA/SVS0Lf5oVLVJd7N8m2RXS0UxlVv+Sdv7JwNWMlg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.10.0.tgz", + "integrity": "sha512-Hh3xUCq+7+khSI85Xj82diw2fAx67ItFOu/tW6v83pQYqTR30g3GNytyHJ2HKUAHpcNTAK5IQ/yfJ8sHPPG7PQ==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -7965,6 +7979,11 @@ "to-fast-properties": "^2.0.0" } }, + "@balena/dockerignore": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", + "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" + }, "@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -9211,10 +9230,11 @@ } }, "dockerode": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.3.tgz", - "integrity": "sha512-lvKV6/NGf2/CYLt5V4c0fd6Fl9XZSCo1Z2HBT9ioKrKLMB2o+gA62Uza8RROpzGvYv57KJx2dKu+ZwSpB//OIA==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.4.tgz", + "integrity": "sha512-3EUwuXnCU+RUlQEheDjmBE0B7q66PV9Rw5NiH1sXwINq0M9c5ERP9fxgkw36ZHOtzf4AGEEYySnkx/sACC9EgQ==", "requires": { + "@balena/dockerignore": "^1.0.2", "docker-modem": "^3.0.0", "tar-fs": "~2.0.1" } @@ -9946,6 +9966,11 @@ "wide-align": "^1.1.0" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, "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", @@ -9969,7 +9994,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "5.0.1" + "ansi-regex": "^2.0.0" } } } @@ -10769,9 +10794,9 @@ "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", + "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -10781,9 +10806,9 @@ } }, "jose-node-cjs-runtime": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.9.0.tgz", - "integrity": "sha512-7GMjRo0ZU/b7hTjl9GP1aT8D8xKzXMDiVwSU9o1FwwlNfA/SVS0Lf5oVLVJd7N8m2RXS0UxlVv+Sdv7JwNWMlg==" + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.10.0.tgz", + "integrity": "sha512-Hh3xUCq+7+khSI85Xj82diw2fAx67ItFOu/tW6v83pQYqTR30g3GNytyHJ2HKUAHpcNTAK5IQ/yfJ8sHPPG7PQ==" }, "js-tokens": { "version": "4.0.0", @@ -12870,7 +12895,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "5.0.1" + "ansi-regex": "^5.0.1" } }, "strip-bom": { diff --git a/package.json b/package.json index 3a729b85..a4d8b66f 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "commander": "9.4.0", "dayjs": "1.11.5", "debug": "4.3.4", - "dockerode": "3.3.3", + "dockerode": "3.3.4", "find-package-json": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", @@ -76,8 +76,8 @@ "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.6.0", - "jose-node-cjs-runtime": "4.9.0", + "joi": "17.6.2", + "jose-node-cjs-runtime": "4.10.0", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", @@ -117,7 +117,6 @@ ] }, "overrides": { - "got": "11.8.5", - "ansi-regex": "5.0.1" + "got": "11.8.5" } } diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index bda2ba2f..68b9222b 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -4,6 +4,7 @@ const glob = require('glob'); const Docker = require('dockerode'); const cliProgress = require('cli-progress'); const { BarFormat } = require('cli-progress').Format; +const debug = require('debug')('cortex:cli'); const { printError, printSuccess } = require('../utils'); const _ = { @@ -20,6 +21,7 @@ const _ = { }; const { getSkillInfo, buildImageTag } = require('./workspace-utils'); +const { loadProfile } = require('../../config'); class DockerBuildProgressTracker { constructor(data) { @@ -146,6 +148,10 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { async buildAction(target, action, status, options) { try { const actionPath = path.join(target, 'actions', action.name); + const expectedDockerfile = path.join(actionPath,"Dockerfile"); + if (!fs.existsSync(expectedDockerfile)) { + throw Error(`Unable to build skill '${options.skill}': Missing Dockerfile '${expectedDockerfile}', Check that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); + } const globList = glob.sync('./**/*', { root: actionPath, absolute: true, @@ -153,8 +159,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { const buildList = _.map(globList, (g) => path.posix.join(...(path.relative(actionPath, g)).split(path.sep))); const docker = new Docker(); - const imageTag = await buildImageTag(action.image); - + const imageTag = await buildImageTag(this.profile, action.image); const stream = await docker.buildImage( { context: actionPath, @@ -176,7 +181,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { }, (evt) => { if (evt.error) { - reject(new Error(evt.error)); + reject(new Error(`${actionPath}: ${evt.error}`)); return; } status.processEvent(evt); @@ -196,7 +201,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { async execute(folder, options) { this.options = options; let target = process.cwd(); - + this.profile = await loadProfile(options.profile); try { if (folder) { const fldr = folder.replace(/'|"/g, ''); diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index fec4f70e..fb7c344d 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -38,130 +38,128 @@ module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { async execute(opts) { this.options = opts; + try { + const config = readConfig(); + const currentProfile = config.profiles[config.currentProfile]; + + console.log(`Configuring workspaces for profile ${chalk.green(config.currentProfile)}`); + + const answers = await inquirer.prompt([ + { + type: 'input', + name: 'repo', + message: 'Template Repository URL: ', + default: _.get(currentProfile, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), + }, + { + type: 'input', + name: 'branch', + message: 'Template Repository Branch:', + default: _.get(currentProfile, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), + }, + ]); + const githubToken = await validateToken(); + + if (!githubToken && !this.options.refresh) { + printError('Current Github credentials invalid. Reauthorization required.', this.options, false); + } - const config = readConfig(); - const currentProfile = config.profiles[config.currentProfile]; - - console.log(`Configuring workspaces for profile ${chalk.green(config.currentProfile)}`); - - await inquirer.prompt([ - { - type: 'input', - name: 'repo', - message: 'Template Repository URL: ', - default: _.get(currentProfile, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), - }, - { - type: 'input', - name: 'branch', - message: 'Template Repository Branch:', - default: _.get(currentProfile, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), - }, - ]) - .then(async (answers) => { - const githubToken = await validateToken(); - - if (!githubToken && !this.options.refresh) { - printError('Current Github credentials invalid. Reauthorization required.', this.options, false); - } - - if (!githubToken || this.options.refresh) { - const { body: deviceCode } = await got.post(GITHUB_DEVICECODE_REQUEST_URL, { - json: { - client_id: GITHUB_APP_CLIENTID, - }, - responseType: 'json', - headers: { - Accept: 'application/json', - }, - }); - - if (deviceCode) { - console.log(`Opening browser at ${deviceCode.verification_uri}`); - await open(deviceCode.verification_uri); - - await new Promise((resolve, reject) => { - let expiry = deviceCode.expires_in; - let pollInterval = deviceCode.interval; - let accessToken; - - const mom = dayjs().add(expiry, 'seconds'); - - (function poller(options) { - process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${useColor(options) - ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) - : deviceCode.user_code - } ${dayjs(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); - - const pollTimer = setTimeout(async () => { - const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { - json: { - client_id: GITHUB_APP_CLIENTID, - device_code: deviceCode.device_code, - grant_type: 'urn:ietf:params:oauth:grant-type:device_code', - }, - responseType: 'json', - headers: { - Accept: 'application/json', - }, - }); - accessToken = body; - - if (accessToken.access_token) { - clearTimeout(pollTimer); - persistToken(accessToken); - config.profiles[config.currentProfile].templateConfig = answers; - config.save(); - printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); - resolve(); - } else { - switch (accessToken.error) { - case 'authorization_pending': - expiry = Math.max(expiry - pollInterval, 0); - break; - - case 'slow_down': - pollInterval += 5; - break; - - case 'expired_token': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); - reject(); - return; - - case 'incorrect_device_code': - printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); - reject(); - return; - - case 'access_denied': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess denied by user.', options); - reject(); - return; - - default: - clearInterval(pollTimer); - printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); - reject(); - return; - } - poller(options); - } - }, (pollInterval) * 1000); - }(this.options)); + if (!githubToken || this.options.refresh) { + const { body: deviceCode } = await got.post(GITHUB_DEVICECODE_REQUEST_URL, { + json: { + client_id: GITHUB_APP_CLIENTID, + }, + responseType: 'json', + headers: { + Accept: 'application/json', + }, }); + + if (deviceCode) { + console.log(`Opening browser at ${deviceCode.verification_uri}`); + await open(deviceCode.verification_uri); + + await new Promise((resolve, reject) => { + let expiry = deviceCode.expires_in; + let pollInterval = deviceCode.interval; + let accessToken; + + const mom = dayjs().add(expiry, 'seconds'); + + (function poller(options) { + process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${useColor(options) + ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) + : deviceCode.user_code + } ${dayjs(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); + + const pollTimer = setTimeout(async () => { + const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { + json: { + client_id: GITHUB_APP_CLIENTID, + device_code: deviceCode.device_code, + grant_type: 'urn:ietf:params:oauth:grant-type:device_code', + }, + responseType: 'json', + headers: { + Accept: 'application/json', + }, + }); + accessToken = body; + + if (accessToken.access_token) { + clearTimeout(pollTimer); + persistToken(accessToken); + config.profiles[config.currentProfile].templateConfig = answers; + config.save(); + printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); + resolve(); + } else { + switch (accessToken.error) { + case 'authorization_pending': + expiry = Math.max(expiry - pollInterval, 0); + break; + + case 'slow_down': + pollInterval += 5; + break; + + case 'expired_token': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); + reject(); + return; + + case 'incorrect_device_code': + printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); + reject(); + return; + + case 'access_denied': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess denied by user.', options); + reject(); + return; + + default: + clearInterval(pollTimer); + printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); + reject(); + return; + } + poller(options); + } + }, (pollInterval) * 1000); + }(this.options)); + }); + } else { + printError('\x1b[2KDevice Code request failed. Please try again.', this.options); + } } else { - printError('\x1b[2KDevice Code request failed. Please try again.', this.options); + config.profiles[config.currentProfile].templateConfig = answers; + config.save(); } - } else { - config.profiles[config.currentProfile].templateConfig = answers; - config.save(); - } - }) - .catch((error) => { + } catch (error) { printError(error.message, this.options); - }); + } } }; diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index e768429e..041fb58f 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -82,7 +82,7 @@ module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { } async getRegistry() { - const profile = await loadProfile(); + const profile = await loadProfile(this.options.profile); const registryUrl = _.get(this, 'options.registry') || _.get(profile, `registries['${profile.currentRegistry}'].url`) diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 57321bca..ae6680ac 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -124,7 +124,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { } async getRegistryAuth(profile, options) { - const reg = await getCurrentRegistry(); + const reg = await getCurrentRegistry(profile); if (!profile.token) { if (reg.isCortex) { @@ -158,7 +158,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { }; } - async pushAction(action, imageTag, registryAuth) { + async pushAction(action, imageTag, registryAuth, { skipPush }) { let img = this.docker.getImage(imageTag); /// ------------------------------------- @@ -170,7 +170,14 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { await img.tag({ repo: newTag }); img = this.docker.getImage(newTag); /// ------------------------------------- + // Set image tag to new image tag for skill/action deployment later + // eslint-disable-next-line no-param-reassign + action.image = newTag; + if (skipPush) { + printSuccess(`Skipping docker push for: ${newTag}`); + return true; + } const status = new DockerPushProgressTracker(); const imgPush = await img @@ -178,15 +185,13 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { authconfig: registryAuth, }); - await new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { this.docker.modem.followProgress( imgPush, (err) => { if (err) { return reject(err); } - // eslint-disable-next-line no-param-reassign - action.image = newTag; status.complete(); status.stop(); return resolve(true); @@ -219,11 +224,10 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { throw new Error(`Skill ${options.skill} not found!`); } } - const skillInfo = await getSkillInfo(target); if (skillInfo.length > 0) { - const profile = await loadProfile(); + const profile = await loadProfile(options.profile); /// If the user passed in a project name, validate it with the cluster let project = options.project || profile.project; @@ -245,7 +249,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { const skillName = info.skill.name; const actions = info.skill.actions ? info.skill.actions : []; const actionsPublished = await Promise.all(_.map(actions, async (action) => { - const tag = await buildImageTag(action.image); + const tag = await buildImageTag(profile, action.image); const imglist = await this.docker.listImages({ filters: JSON.stringify({ reference: [tag], @@ -341,8 +345,8 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { printSuccess(`Published content ${key}`, options); }), ); - - await this.pushAction(action, tag, regAuth); + // pass options if we want to skip docker push for example + await this.pushAction(action, tag, regAuth, options); } else { printError(`No image found for action ${action.name}. Has it been built?`, options); return false; @@ -352,9 +356,10 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { })); if (_.every(actionsPublished)) { - this.catalogClient.saveSkill(project, profile.token, info.skill); - printSuccess('Publish Complete', options); - return true; + const saveResult = await this.catalogClient.saveSkill(project, profile.token, info.skill); + if (saveResult.success) return true; + printError(`Skill save failed for ${info.skill.name}: ${saveResult.message}`, false); + return false; } printError('Publish Failed', options); diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js index 33e405ed..4849567f 100644 --- a/src/commands/workspaces/registry.js +++ b/src/commands/workspaces/registry.js @@ -40,7 +40,7 @@ module.exports.WorkspaceAddRegistryCommand = class WorkspaceAddRegistryCommand { namespace: opts.namespace, }) .then(async (answers) => { - const profile = await loadProfile(); + const profile = await loadProfile(opts.profile); profile.registries[answers.name] = { name: answers.name, @@ -66,7 +66,7 @@ module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCom } async execute(name, options) { - const profile = await loadProfile(); + const profile = await loadProfile(options.profile); /// Use a function iteratee instead of the property test const choices = _.map(_.filter(profile.registries, (r) => !r.isCortex && (!name || name === r.name)), (r) => ( @@ -113,7 +113,7 @@ module.exports.WorkspaceActivateRegistryCommand = class WorkspaceActivateRegistr async execute(regname, options) { const name = regname || undefined; - const profile = await loadProfile(); + const profile = await loadProfile(options.profile); const choices = _.map(_.filter(profile.registries, (r) => !name || (r.name === name)), (r) => ( { @@ -157,7 +157,7 @@ module.exports.WorkspaceListRegistryCommand = class WorkspaceListRegistryCommand } async execute(options) { - const profile = await loadProfile(); + const profile = await loadProfile(options.profile); _.forEach(profile.registries, (r) => { const logStr = `${r.name} - ${path.posix.join(r.url, r.namespace || '')}`; if (r.name === profile.currentRegistry) { diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 74fdf792..4c8b5c25 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -1,35 +1,92 @@ +const _ = require('lodash'); const path = require('path'); const glob = require('glob'); const yaml = require('js-yaml'); +const fs = require('fs'); +const os = require('os'); const { + stat, readFile, } = require('fs/promises'); const { statSync } = require('fs'); const ghGot = require('gh-got'); -const _ = { - get: require('lodash/get'), - map: require('lodash/map'), - mean: require('lodash/mean'), -}; +const { configDir } = require('../../config'); +const { + printWarning, +} = require('../utils'); -const keytar = require('keytar'); +let keytar; +// Is loading keytar fails, use headless fallback for secrets.. +try { + // Don't load keytar for tests + if (process.env.NODE_ENV !== 'test') { + keytar = require('keytar'); + } +} catch (err) { + printWarning(`Unable to use keyring service, falling back to file-based keystore: ${err.message}`); +} const { loadProfile } = require('../../config'); +const buffer = require("buffer"); const CORTEX_CLI_AUTH_ID = 'cortex-cli:github'; const CORTEX_CLI_AUTH_USER = 'cortex-cli'; +async function getPasswordHeaded() { + return await keytar.getPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER); +} + +function readLocaFile() { + const dataFile = path.join(configDir(), 'cache.dat'); + // nothing stored + if (!fs.existsSync(dataFile)) return {}; + const rawData = fs.readFileSync(dataFile); + const decoded = Buffer.from(rawData.toString(), 'base64').toString(); + return JSON.parse(decoded); +} + +async function getPasswordHeadless() { + return _.get(readLocaFile(),[CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER]); +} + +async function storePasswordHeaded(val) { + await keytar.setPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER, val); +} + +async function storePasswordHeadless(val) { + const dataFile = path.join(configDir(), 'cache.dat'); + const originaldata = readLocaFile(); + const updated = _.set(originaldata, [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER], val); + fs.writeFileSync(dataFile, Buffer.from(JSON.stringify(updated)).toString('base64')); +} + + module.exports.validateToken = async function validateToken() { - const authorization = await keytar.getPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER); - if (authorization) { - return ghGot('user', { headers: { authorization } }).catch(() => undefined).then((u) => ((u && u.statusCode === 200) ? authorization : undefined)); + try { + let authorization; + if (keytar !== undefined) { + authorization = await getPasswordHeaded(); + } else { + authorization = await getPasswordHeadless(); + } + if (authorization) { + const u = await ghGot('user', { headers: { authorization } }) + if (u?.statusCode === 200) + return authorization; + } + } catch (err) { + console.error(err.message) } return undefined; }; module.exports.persistToken = async function persistToken(token) { - await keytar.setPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER, `${token.token_type} ${token.access_token}`); + const val = `${token.token_type} ${token.access_token}` + if (keytar) { + return storePasswordHeaded(val); + } + return storePasswordHeadless(val); }; module.exports.printToTerminal = function printToTerminal(txt) { @@ -64,17 +121,17 @@ module.exports.getSkillInfo = function getSkillInfo(target) { })); }; -module.exports.getCurrentRegistry = async function getCurrentRegistry() { - const profile = await loadProfile(); - return profile.registries[profile.currentRegistry]; +module.exports.getCurrentRegistry = async function getCurrentRegistry(profile = undefined) { + const regProfile = profile || await loadProfile(); // old behavior was always getting "current" profile + return regProfile.registries[regProfile.currentRegistry]; }; -module.exports.buildImageTag = async function buildImageTag(actionName) { +module.exports.buildImageTag = async function buildImageTag(profile, actionName) { if (actionName.includes('/')) { return actionName; } - const registry = await module.exports.getCurrentRegistry(); + const registry = await module.exports.getCurrentRegistry(profile); if (registry.url.includes('docker.io')) { return path.posix.join(registry.namespace || '', actionName); } diff --git a/src/config.js b/src/config.js index dabddbfd..cbc62e1c 100644 --- a/src/config.js +++ b/src/config.js @@ -523,5 +523,6 @@ module.exports = { loadProfile, generateJwt, defaultConfig, + configDir, readConfig, }; diff --git a/test/cortex/config b/test/cortex/config index 718de828..0806ff6a 100644 --- a/test/cortex/config +++ b/test/cortex/config @@ -54,4 +54,4 @@ } }, "currentProfile": "default" -} \ No newline at end of file +} diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index e8d33fb8..33dbb671 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -49,7 +49,7 @@ describe('Upload Directory', () => { { canonical: path.posix.join(dirname, 'cortex', 'config'), relative: 'config', - size: 1610, + size: 1611, }, { canonical: path.posix.join(dirname, 'cortex', 'pat-file.json'), diff --git a/test/workspaces.js b/test/workspaces.js index 1d79c2eb..19c08981 100644 --- a/test/workspaces.js +++ b/test/workspaces.js @@ -20,9 +20,10 @@ const _ = require('lodash'); const sinon = require('sinon'); const fs = require('fs'); const isCI = require('is-ci'); - +const rewire = require('rewire'); const { stripAnsi } = require('./utils'); + describe('Workspaces', () => { let restoreEnv; let sandbox; @@ -49,6 +50,7 @@ describe('Workspaces', () => { restoreEnv(); sandbox.restore(); process.chdir('..'); + fs.rmSync('cortex/cache.dat'); fs.rmSync('workspaces', { recursive: true }); }); @@ -60,8 +62,18 @@ describe('Workspaces', () => { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } + it('headless workspace persist token', async () => { + // test that headless token storage works ... + const wsutilsMock = rewire('../src/commands/workspaces/workspace-utils'); + wsutilsMock.__set__('ghGot', () => ({ statusCode: 200 })); + const token_tostore = { token_type: 'token_type', access_token: 'access_token' }; + await wsutilsMock.persistToken(token_tostore); + const token = await wsutilsMock.validateToken(); + chai.expect(token).equal(`${token_tostore.token_type} ${token_tostore.access_token}`); + }); + // eslint-disable-next-line func-names - it('should generate a job skill', async function () { + xit('should generate a job skill', async () => { if (!isCI) { const program = require('../bin/cortex-workspaces'); await program.parseAsync(['node', 'workspaces', 'generate', 'job1', '--notree', '--template', 'Custom Job Skill']); @@ -84,7 +96,7 @@ describe('Workspaces', () => { }); // eslint-disable-next-line func-names - it('should generate a daemon skill', async function () { + xit('should generate a daemon skill', async function () { if (!isCI) { const program = require('../bin/cortex-workspaces'); await program.parseAsync(['node', 'workspaces', 'generate', 'dmn1', '--notree', '--template', 'Custom Daemon Skill']); From 6afd0eaa7cbeea701bc722fa7d2106f43e697006 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 3 Oct 2022 08:55:53 -0500 Subject: [PATCH 769/864] Add newline, fix undefined (#647) --- src/commands/workspaces/build.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index 68b9222b..e61b8846 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -150,7 +150,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { const actionPath = path.join(target, 'actions', action.name); const expectedDockerfile = path.join(actionPath,"Dockerfile"); if (!fs.existsSync(expectedDockerfile)) { - throw Error(`Unable to build skill '${options.skill}': Missing Dockerfile '${expectedDockerfile}', Check that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); + throw Error(`Unable to build action '${action.name}': Missing Dockerfile '${expectedDockerfile}', \nCheck that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); } const globList = glob.sync('./**/*', { root: actionPath, From 5fd82648aec01ba20e6998b19337bbeb17b8dc88 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 3 Oct 2022 09:14:00 -0500 Subject: [PATCH 770/864] Add dockerfile path to errors (#648) --- src/commands/workspaces/build.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index e61b8846..61d42fa2 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -146,9 +146,9 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { } async buildAction(target, action, status, options) { + const actionPath = path.join(target, 'actions', action.name); + const expectedDockerfile = path.join(actionPath, 'Dockerfile'); try { - const actionPath = path.join(target, 'actions', action.name); - const expectedDockerfile = path.join(actionPath,"Dockerfile"); if (!fs.existsSync(expectedDockerfile)) { throw Error(`Unable to build action '${action.name}': Missing Dockerfile '${expectedDockerfile}', \nCheck that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); } @@ -181,19 +181,19 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { }, (evt) => { if (evt.error) { - reject(new Error(`${actionPath}: ${evt.error}`)); + reject(evt.error); return; } status.processEvent(evt); }, ); } catch (err) { - printError(err, options); + printError(`${expectedDockerfile}:\n\t ${err.message}`, options); reject(err); } }); } catch (err) { - printError(err, options); + printError(`${expectedDockerfile}:\n\t ${err.message}`, options); return Promise.reject(err); } } From 874483b72e5d60a256b8f35b51ad5a12d4edd4d0 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 11 Oct 2022 11:33:43 -0500 Subject: [PATCH 771/864] FAB-5460 glob.sync() use cwd not root (#649) --- src/commands/workspaces/build.js | 2 +- src/commands/workspaces/publish.js | 2 +- src/commands/workspaces/workspace-utils.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index 61d42fa2..1572a375 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -153,7 +153,7 @@ module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { throw Error(`Unable to build action '${action.name}': Missing Dockerfile '${expectedDockerfile}', \nCheck that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); } const globList = glob.sync('./**/*', { - root: actionPath, + cwd: actionPath, absolute: true, }); diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index ae6680ac..99d9a50e 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -258,7 +258,7 @@ module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { if (imglist.length !== 0) { const globOpts = { - root: target, + cwd: target, absolute: true, }; const regAuth = await this.getRegistryAuth(profile, action.image, options); diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 4c8b5c25..33635a7f 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -107,7 +107,7 @@ module.exports.getSkillInfo = function getSkillInfo(target) { skillFiles = statSync(path.resolve(target)) ? [target] : []; } else { skillFiles = glob.sync('./skills/**/skill.yaml', { - root: target, + cwd: target, absolute: true, }); } From 20eadab0009fcc7e74a2488a5450dc54276601ab Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 12 Oct 2022 13:24:21 -0500 Subject: [PATCH 772/864] Update package.json Bump 2.1.1 -> 2.1.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a4d8b66f..fc50f082 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.1.1", + "version": "2.1.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "types": "./client/index.d.ts", From 59f87d1475739efeca5c6f23f9f180d834042e6c Mon Sep 17 00:00:00 2001 From: Prajna Kandarpa <pkandarpa@cognitivescale.com> Date: Tue, 10 Jan 2023 18:10:05 +0530 Subject: [PATCH 773/864] FAB-5168 - Fix default sort params for tasks list (#653) * set the default sort options for tasks list. This probably wasn't set earlier because tasks list did not have persistence in the past * update package-lock.json * fix high vuln with json5 by using package.json override * updated help text for tasks list --sort * update package-lock.json * remove override for json5 * update help text --- bin/cortex-tasks.js | 4 +- package-lock.json | 3467 ++++++++++++++++++++++++------------------- src/constants.js | 5 + 3 files changed, 1967 insertions(+), 1509 deletions(-) diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 3c54cb25..ed743dfe 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -32,6 +32,8 @@ const { DEFAULT_LIST_SKIP_COUNT, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, + DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, } = require('../src/constants'); program.name('cortex tasks'); @@ -56,7 +58,7 @@ program .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <asc|desc|sort>', 'Sort asc|desc on startTime or Mongo style sort statement.', 'desc') + .option('--sort <asc|desc|<mongo-style-sort-expr>', 'Ascending, descending or Mongo style sort statement.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.startTime)) .action(withCompatibilityCheck(async (options) => { try { await new ListTasksCommand(program).execute(options); diff --git a/package-lock.json b/package-lock.json index 0c2bbe20..69743f92 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.1.1", + "version": "2.1.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.1.1", + "version": "2.1.2", "license": "Apache-2.0", "dependencies": { "boolean": "3.2.0", @@ -71,58 +71,59 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -143,28 +144,43 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "engines": { @@ -174,6 +190,15 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -183,137 +208,149 @@ "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", "dev": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -359,13 +396,13 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -374,7 +411,7 @@ "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -393,9 +430,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -405,33 +442,33 @@ } }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", + "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -449,12 +486,13 @@ } }, "node_modules/@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -476,15 +514,15 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", + "espree": "^9.4.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -493,6 +531,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@gar/promisify": { @@ -501,9 +542,9 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" }, "node_modules/@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "node_modules/@hapi/topo": { "version": "5.1.0", @@ -514,9 +555,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -633,24 +674,6 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=8" - } - }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -670,23 +693,22 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", - "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { "node": ">=6.0.0" @@ -702,19 +724,19 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@nodelib/fs.scandir": { @@ -765,6 +787,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -782,9 +805,9 @@ } }, "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", @@ -803,9 +826,9 @@ } }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -821,9 +844,9 @@ } }, "node_modules/@sinonjs/samsam": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", - "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", + "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.6.0", @@ -832,9 +855,9 @@ } }, "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, "node_modules/@szmarczak/http-timer": { @@ -857,14 +880,14 @@ } }, "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "dependencies": { "@types/http-cache-semantics": "*", - "@types/keyv": "*", + "@types/keyv": "^3.1.4", "@types/node": "*", - "@types/responselike": "*" + "@types/responselike": "^1.0.0" } }, "node_modules/@types/http-cache-semantics": { @@ -872,15 +895,10 @@ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, - "node_modules/@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" - }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/@types/keyv": { @@ -892,9 +910,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", - "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" }, "node_modules/@types/responselike": { "version": "1.0.0", @@ -911,9 +929,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1040,9 +1058,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -1067,18 +1085,20 @@ "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, "node_modules/archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, "node_modules/are-we-there-yet": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dev": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -1087,12 +1107,14 @@ "node_modules/are-we-there-yet/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, "node_modules/are-we-there-yet/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -1103,10 +1125,17 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/are-we-there-yet/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/are-we-there-yet/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -1117,15 +1146,15 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" }, "engines": { @@ -1145,14 +1174,14 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1191,7 +1220,7 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -1224,31 +1253,16 @@ "node": ">=12.9.0" } }, - "node_modules/audit-ci/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/audit-ci/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/balanced-match": { @@ -1278,7 +1292,7 @@ "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dependencies": { "tweetnacl": "^0.14.3" } @@ -1346,9 +1360,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "funding": [ { @@ -1361,11 +1375,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" @@ -1400,7 +1413,7 @@ "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "engines": { "node": "*" } @@ -1417,7 +1430,7 @@ "node_modules/builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" }, "node_modules/cacache": { "version": "15.3.0", @@ -1552,9 +1565,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001332", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", - "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "version": "1.0.30001442", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", + "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", "dev": true, "funding": [ { @@ -1620,7 +1633,7 @@ "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true, "engines": { "node": "*" @@ -1629,7 +1642,7 @@ "node_modules/check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -1683,10 +1696,19 @@ } }, "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } }, "node_modules/clean-stack": { "version": "2.2.0", @@ -1719,9 +1741,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", "engines": { "node": ">=6" }, @@ -1752,36 +1774,43 @@ } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "engines": { "node": ">=0.8" } }, "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", "dependencies": { "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -1824,25 +1853,13 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "node_modules/compress-brotli": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", - "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", - "dependencies": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/confusing-browser-globals": { "version": "1.0.11", @@ -1853,21 +1870,20 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true }, "node_modules/convert-source-map": { - "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, - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true }, "node_modules/cpu-features": { "version": "0.0.4", @@ -1947,7 +1963,7 @@ "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2005,23 +2021,29 @@ "dev": true }, "node_modules/default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, "dependencies": { "strip-bom": "^4.0.0" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defer-to-connect": { @@ -2059,7 +2081,7 @@ "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { "node": ">=0.4.0" } @@ -2067,12 +2089,13 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "engines": { "node": ">= 0.6" } @@ -2107,14 +2130,14 @@ } }, "node_modules/docker-modem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", - "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", + "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", "dependencies": { "debug": "^4.1.1", "readable-stream": "^3.5.0", "split-ca": "^1.0.1", - "ssh2": "^1.4.0" + "ssh2": "^1.11.0" }, "engines": { "node": ">= 8.0" @@ -2152,9 +2175,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.122", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", - "integrity": "sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "node_modules/emoji-regex": { @@ -2209,31 +2232,43 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "node_modules/es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", + "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", "dev": true, "dependencies": { "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.0", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.0", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" @@ -2242,6 +2277,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", @@ -2399,16 +2448,20 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-module-utils/node_modules/debug": { @@ -2471,7 +2524,7 @@ "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/eslint-scope": { @@ -2523,128 +2576,58 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10" } }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" + "node": ">=4.0" } }, "node_modules/estraverse": { @@ -2719,9 +2702,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -2755,13 +2738,13 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -2770,7 +2753,7 @@ "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dependencies": { "pend": "~1.2.0" } @@ -2792,7 +2775,7 @@ "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } @@ -2844,15 +2827,19 @@ "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "locate-path": "^2.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat": { @@ -2878,11 +2865,20 @@ } }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -2912,7 +2908,7 @@ "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "dev": true }, "node_modules/from2": { @@ -2946,6 +2942,12 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/from2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/from2/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -3009,7 +3011,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -3031,16 +3033,44 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "dev": true, "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -3056,6 +3086,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -3063,7 +3094,8 @@ "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, "dependencies": { "number-is-nan": "^1.0.0" }, @@ -3074,7 +3106,8 @@ "node_modules/gauge/node_modules/string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3087,7 +3120,8 @@ "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -3116,21 +3150,21 @@ "node_modules/get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3189,7 +3223,7 @@ "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { "version": "8.0.3", @@ -3230,9 +3264,9 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3241,9 +3275,9 @@ } }, "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dependencies": { "ini": "2.0.0" }, @@ -3255,9 +3289,9 @@ } }, "node_modules/globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3269,6 +3303,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -3289,6 +3338,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/got": { "version": "11.8.5", "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", @@ -3409,6 +3470,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -3439,7 +3512,8 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true }, "node_modules/hasha": { "version": "5.2.2", @@ -3537,7 +3611,7 @@ "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dependencies": { "ms": "^2.0.0" } @@ -3588,9 +3662,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "engines": { "node": ">= 4" @@ -3615,7 +3689,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { "node": ">=0.8.19" } @@ -3636,7 +3710,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3681,12 +3755,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.1.3", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -3711,9 +3785,23 @@ } }, "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-bigint": { "version": "1.0.4", @@ -3756,9 +3844,9 @@ } }, "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { "node": ">= 0.4" @@ -3780,9 +3868,9 @@ } }, "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -3823,7 +3911,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3875,7 +3963,7 @@ "node_modules/is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" }, "node_modules/is-negative-zero": { "version": "2.0.2", @@ -4000,10 +4088,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "node_modules/is-unicode-supported": { @@ -4052,13 +4159,13 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/istanbul-lib-coverage": { @@ -4107,18 +4214,17 @@ } }, "node_modules/istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, "dependencies": { "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", "p-map": "^3.0.0", "rimraf": "^3.0.0", - "uuid": "^3.3.3" + "uuid": "^8.3.2" }, "engines": { "node": ">=8" @@ -4136,16 +4242,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-processinfo/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -4174,19 +4270,10 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4214,7 +4301,7 @@ "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", "dev": true }, "node_modules/jmespath": { @@ -4288,19 +4375,19 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { "json5": "lib/cli.js" @@ -4324,7 +4411,7 @@ "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" ] @@ -4362,11 +4449,10 @@ } }, "node_modules/keyv": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", - "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "dependencies": { - "compress-brotli": "^1.3.6", "json-buffer": "3.0.1" } }, @@ -4381,7 +4467,7 @@ "node_modules/lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true, "engines": { "node": "> 0.8" @@ -4401,16 +4487,18 @@ } }, "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -4421,13 +4509,13 @@ "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", "dev": true }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, "node_modules/lodash.merge": { @@ -4439,7 +4527,7 @@ "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "node_modules/log-symbols": { @@ -4458,9 +4546,9 @@ } }, "node_modules/loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "dependencies": { "get-func-name": "^2.0.0" @@ -4538,7 +4626,7 @@ "node_modules/map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", "dev": true }, "node_modules/merge2": { @@ -4610,14 +4698,17 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { "yallist": "^4.0.0" }, @@ -4765,6 +4856,17 @@ "url": "https://opencollective.com/mochajs" } }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/mocha/node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -4788,22 +4890,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mocha/node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -4836,21 +4922,6 @@ "node": "*" } }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mocha/node_modules/minimatch": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", @@ -4869,58 +4940,37 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/mocked-env": { @@ -4990,9 +5040,9 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", "optional": true }, "node_modules/nanoid": { @@ -5015,7 +5065,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/negotiator": { @@ -5027,18 +5077,36 @@ } }, "node_modules/nise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", - "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", + "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": ">=5", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" } }, + "node_modules/nise/node_modules/@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^2.0.0" + } + }, "node_modules/nock": { "version": "13.2.9", "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", @@ -5055,9 +5123,9 @@ } }, "node_modules/node-abi": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.15.0.tgz", - "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", + "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", "dependencies": { "semver": "^7.3.5" }, @@ -5102,9 +5170,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", - "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, "node_modules/normalize-path": { @@ -5160,6 +5228,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -5170,7 +5239,8 @@ "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5311,24 +5381,6 @@ "node": ">=8" } }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=8" - } - }, "node_modules/nyc/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -5396,15 +5448,16 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5420,14 +5473,14 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -5438,28 +5491,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -5471,7 +5524,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } @@ -5548,7 +5601,7 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "engines": { "node": ">=0.10.0" } @@ -5571,27 +5624,33 @@ } }, "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "p-try": "^1.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { @@ -5609,12 +5668,12 @@ } }, "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "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, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/package-hash": { @@ -5645,12 +5704,12 @@ } }, "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "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, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-is-absolute": { @@ -5706,7 +5765,7 @@ "node_modules/pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "dev": true, "dependencies": { "through": "~2.3" @@ -5715,7 +5774,7 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -5832,24 +5891,6 @@ "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/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, - "engines": { - "node": ">=8" - } - }, "node_modules/pkg-fetch": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", @@ -5875,6 +5916,17 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "node_modules/pkg-fetch/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/pkg-fetch/node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -5887,6 +5939,77 @@ "tar-stream": "^2.1.4" } }, + "node_modules/pkg-fetch/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pkg/node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/pkg/node_modules/@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pkg/node_modules/@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/pkg/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pkg/node_modules/decompress-response": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", @@ -5911,6 +6034,18 @@ "node": ">=0.10" } }, + "node_modules/pkg/node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/pkg/node_modules/mimic-response": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", @@ -5980,9 +6115,9 @@ } }, "node_modules/prebuild-install": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", - "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -5991,7 +6126,6 @@ "mkdirp-classic": "^0.5.3", "napi-build-utils": "^1.0.1", "node-abi": "^3.3.0", - "npmlog": "^4.0.1", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", @@ -6017,7 +6151,8 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "node_modules/process-on-spawn": { "version": "1.0.0", @@ -6043,7 +6178,7 @@ "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" }, "node_modules/promise-retry": { "version": "2.0.1", @@ -6169,7 +6304,7 @@ "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "engines": { "node": ">=0.10.0" } @@ -6208,6 +6343,23 @@ "node": ">=6" } }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -6223,7 +6375,7 @@ "node_modules/release-zalgo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", "dev": true, "dependencies": { "es6-error": "^4.0.1" @@ -6235,7 +6387,7 @@ "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6259,15 +6411,15 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -6293,11 +6445,14 @@ } }, "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", "dependencies": { "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/restore-cursor": { @@ -6315,7 +6470,7 @@ "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "engines": { "node": ">= 4" } @@ -6637,17 +6792,45 @@ } }, "node_modules/rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -6680,7 +6863,8 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true }, "node_modules/shebang-command": { "version": "2.0.0", @@ -6824,11 +7008,11 @@ } }, "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dependencies": { - "ip": "^1.1.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" }, "engines": { @@ -6837,9 +7021,9 @@ } }, "node_modules/socks-proxy-agent": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", - "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -6849,6 +7033,15 @@ "node": ">= 10" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -6881,18 +7074,18 @@ "node_modules/split-ca": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" + "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "node_modules/ssh2": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz", - "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", + "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", "hasInstallScript": true, "dependencies": { "asn1": "^0.2.4", @@ -6903,7 +7096,7 @@ }, "optionalDependencies": { "cpu-features": "~0.0.4", - "nan": "^2.15.0" + "nan": "^2.16.0" } }, "node_modules/ssri": { @@ -6920,7 +7113,7 @@ "node_modules/stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", "dev": true, "dependencies": { "duplexer": "~0.1.1", @@ -6957,6 +7150,12 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/stream-meter/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/stream-meter/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -6974,25 +7173,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -7007,26 +7187,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7088,9 +7270,9 @@ } }, "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -7104,9 +7286,9 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -7126,19 +7308,19 @@ "dev": true }, "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=10" } }, "node_modules/tar-fs": { @@ -7172,6 +7354,17 @@ "node": ">=6" } }, + "node_modules/tar/node_modules/minipass": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -7209,7 +7402,7 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/textextensions": { @@ -7226,7 +7419,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/tmp": { "version": "0.0.33", @@ -7242,7 +7435,7 @@ "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" @@ -7263,7 +7456,7 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/treeify": { "version": "1.1.0", @@ -7286,9 +7479,9 @@ } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" @@ -7300,21 +7493,21 @@ "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -7325,7 +7518,7 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "node_modules/type-check": { "version": "0.4.0", @@ -7360,6 +7553,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -7409,6 +7616,32 @@ "node": ">= 10.0.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -7435,7 +7668,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { "version": "8.3.2", @@ -7454,7 +7687,7 @@ "node_modules/validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "dependencies": { "builtins": "^1.0.3" } @@ -7462,7 +7695,7 @@ "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dependencies": { "defaults": "^1.0.3" } @@ -7470,12 +7703,12 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -7515,13 +7748,34 @@ "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", "dev": true }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } @@ -7560,7 +7814,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -7589,21 +7843,21 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { @@ -7654,10 +7908,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -7678,49 +7941,50 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", "dev": true }, "@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "dependencies": { @@ -7733,137 +7997,169 @@ } }, "@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, "requires": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" } }, "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.20.2" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true }, "@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -7900,19 +8196,19 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "supports-color": { @@ -7927,36 +8223,36 @@ } }, "@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", "dev": true }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", + "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -7970,12 +8266,13 @@ } }, "@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -7991,15 +8288,15 @@ "optional": true }, "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", + "espree": "^9.4.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -8013,9 +8310,9 @@ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" }, "@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "@hapi/topo": { "version": "5.1.0", @@ -8026,9 +8323,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -8117,18 +8414,6 @@ "p-limit": "^2.2.0" } }, - "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 - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -8144,20 +8429,19 @@ "dev": true }, "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@jridgewell/resolve-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", - "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, "@jridgewell/set-array": { @@ -8167,19 +8451,19 @@ "dev": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@nodelib/fs.scandir": { @@ -8235,9 +8519,9 @@ } }, "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "@sideway/pinpoint": { "version": "2.0.0", @@ -8250,9 +8534,9 @@ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -8268,9 +8552,9 @@ } }, "@sinonjs/samsam": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", - "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", + "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -8279,9 +8563,9 @@ } }, "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, "@szmarczak/http-timer": { @@ -8298,14 +8582,14 @@ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" }, "@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "requires": { "@types/http-cache-semantics": "*", - "@types/keyv": "*", + "@types/keyv": "^3.1.4", "@types/node": "*", - "@types/responselike": "*" + "@types/responselike": "^1.0.0" } }, "@types/http-cache-semantics": { @@ -8313,15 +8597,10 @@ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, - "@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" - }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "@types/keyv": { @@ -8333,9 +8612,9 @@ } }, "@types/node": { - "version": "17.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", - "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" }, "@types/responselike": { "version": "1.0.0", @@ -8352,9 +8631,9 @@ "dev": true }, "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true }, "acorn-jsx": { @@ -8438,9 +8717,9 @@ } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -8459,18 +8738,20 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", "dev": true }, "are-we-there-yet": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dev": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -8479,12 +8760,14 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8495,10 +8778,17 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -8511,15 +8801,15 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" } }, @@ -8530,14 +8820,14 @@ "dev": true }, "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" } }, @@ -8564,7 +8854,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "at-least-node": { "version": "1.0.0", @@ -8586,31 +8876,14 @@ "readline-transform": "1.0.0", "semver": "^7.0.0", "yargs": "^17.0.0" - }, - "dependencies": { - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true - } } }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -8624,7 +8897,7 @@ "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "requires": { "tweetnacl": "^0.14.3" } @@ -8680,16 +8953,15 @@ "dev": true }, "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" } }, "buffer": { @@ -8704,7 +8976,7 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" }, "buildcheck": { "version": "0.0.3", @@ -8715,7 +8987,7 @@ "builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" }, "cacache": { "version": "15.3.0", @@ -8821,9 +9093,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001332", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", - "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "version": "1.0.30001442", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", + "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", "dev": true }, "chai": { @@ -8867,13 +9139,13 @@ "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, "check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", "dev": true }, "chokidar": { @@ -8909,9 +9181,9 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "dev": true }, "clean-stack": { @@ -8936,9 +9208,9 @@ } }, "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" }, "cli-table3": { "version": "0.6.2", @@ -8955,25 +9227,25 @@ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" }, "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", "requires": { "mimic-response": "^1.0.0" } @@ -8981,7 +9253,8 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true }, "color-convert": { "version": "2.0.1", @@ -9012,22 +9285,13 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "compress-brotli": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", - "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", - "requires": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "confusing-browser-globals": { "version": "1.0.11", @@ -9038,21 +9302,20 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true }, "convert-source-map": { - "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" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true }, "cpu-features": { "version": "0.0.4", @@ -9108,7 +9371,7 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true }, "decompress-response": { @@ -9147,18 +9410,18 @@ "dev": true }, "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, "requires": { "strip-bom": "^4.0.0" } }, "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "requires": { "clone": "^1.0.2" } @@ -9186,17 +9449,18 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" }, "detect-libc": { "version": "2.0.1", @@ -9219,14 +9483,14 @@ } }, "docker-modem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", - "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", + "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", "requires": { "debug": "^4.1.1", "readable-stream": "^3.5.0", "split-ca": "^1.0.1", - "ssh2": "^1.4.0" + "ssh2": "^1.11.0" } }, "dockerode": { @@ -9255,9 +9519,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.122", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", - "integrity": "sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "emoji-regex": { @@ -9308,31 +9572,54 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", + "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", "dev": true, "requires": { "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.0", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.0", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" } }, "es-shim-unscopables": { @@ -9418,51 +9705,6 @@ "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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 - } } }, "eslint-config-airbnb-base": { @@ -9507,13 +9749,12 @@ } }, "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { @@ -9569,7 +9810,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -9608,9 +9849,9 @@ "dev": true }, "espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { "acorn": "^8.8.0", @@ -9696,9 +9937,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -9728,13 +9969,13 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -9743,7 +9984,7 @@ "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "requires": { "pend": "~1.2.0" } @@ -9759,7 +10000,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" } } }, @@ -9798,12 +10039,13 @@ "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, "flat": { @@ -9823,11 +10065,20 @@ } }, "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, "foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -9851,7 +10102,7 @@ "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "dev": true }, "from2": { @@ -9885,6 +10136,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9930,7 +10187,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.2", @@ -9945,16 +10202,35 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "dev": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -9969,12 +10245,14 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -9982,7 +10260,8 @@ "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9992,7 +10271,8 @@ "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -10014,18 +10294,18 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, "get-package-type": { @@ -10060,7 +10340,7 @@ "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "glob": { "version": "8.0.3", @@ -10083,9 +10363,9 @@ } }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "requires": { "brace-expansion": "^2.0.1" } @@ -10102,22 +10382,31 @@ } }, "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "requires": { "ini": "2.0.0" } }, "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -10132,6 +10421,15 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "got": { "version": "11.8.5", "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", @@ -10224,6 +10522,12 @@ "get-intrinsic": "^1.1.1" } }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -10242,7 +10546,8 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true }, "hasha": { "version": "5.2.2", @@ -10318,7 +10623,7 @@ "humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "requires": { "ms": "^2.0.0" } @@ -10343,9 +10648,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, "import-fresh": { @@ -10361,7 +10666,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, "indent-string": { "version": "4.0.0", @@ -10376,7 +10681,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -10415,12 +10720,12 @@ } }, "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.1.3", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -10436,9 +10741,20 @@ } }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + } }, "is-bigint": { "version": "1.0.4", @@ -10469,9 +10785,9 @@ } }, "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, "is-ci": { @@ -10484,9 +10800,9 @@ } }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { "has": "^1.0.3" @@ -10509,7 +10825,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-fullwidth-code-point": { @@ -10543,7 +10859,7 @@ "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" }, "is-negative-zero": { "version": "2.0.2", @@ -10620,10 +10936,23 @@ "has-symbols": "^1.0.2" } }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, "is-unicode-supported": { @@ -10657,13 +10986,13 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "istanbul-lib-coverage": { @@ -10702,18 +11031,17 @@ } }, "istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, "requires": { "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", "p-map": "^3.0.0", "rimraf": "^3.0.0", - "uuid": "^3.3.3" + "uuid": "^8.3.2" }, "dependencies": { "p-map": { @@ -10724,12 +11052,6 @@ "requires": { "aggregate-error": "^3.0.0" } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true } } }, @@ -10753,20 +11075,12 @@ "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" - }, - "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 - } } }, "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -10785,7 +11099,7 @@ "jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", "dev": true }, "jmespath": { @@ -10844,19 +11158,19 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "jsonfile": { @@ -10872,7 +11186,7 @@ "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" }, "JSONStream": { "version": "1.3.5", @@ -10900,11 +11214,10 @@ } }, "keyv": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", - "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "requires": { - "compress-brotli": "^1.3.6", "json-buffer": "3.0.1" } }, @@ -10916,7 +11229,7 @@ "lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true }, "levn": { @@ -10930,13 +11243,12 @@ } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" } }, "lodash": { @@ -10947,13 +11259,13 @@ "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", "dev": true }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, "lodash.merge": { @@ -10965,7 +11277,7 @@ "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "log-symbols": { @@ -10978,9 +11290,9 @@ } }, "loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "requires": { "get-func-name": "^2.0.0" @@ -11042,7 +11354,7 @@ "map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", "dev": true }, "merge2": { @@ -11093,14 +11405,14 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "requires": { "yallist": "^4.0.0" } @@ -11208,6 +11520,17 @@ "yargs-unparser": "2.0.0" }, "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -11225,16 +11548,6 @@ } } }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -11260,15 +11573,6 @@ } } }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, "minimatch": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", @@ -11284,30 +11588,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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 - }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -11316,6 +11596,21 @@ "requires": { "has-flag": "^4.0.0" } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } } } }, @@ -11363,9 +11658,9 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", "optional": true }, "nanoid": { @@ -11382,7 +11677,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "negotiator": { @@ -11391,16 +11686,36 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "nise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", - "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", + "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": ">=5", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0" + } + } } }, "nock": { @@ -11416,9 +11731,9 @@ } }, "node-abi": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.15.0.tgz", - "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", + "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", "requires": { "semver": "^7.3.5" } @@ -11446,9 +11761,9 @@ } }, "node-releases": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", - "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", "dev": true }, "normalize-path": { @@ -11489,6 +11804,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -11499,7 +11815,8 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true }, "nyc": { "version": "15.1.0", @@ -11607,18 +11924,6 @@ "aggregate-error": "^3.0.0" } }, - "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 - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -11676,12 +11981,13 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, "object-keys": { @@ -11691,43 +11997,43 @@ "dev": true }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } @@ -11783,7 +12089,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, "p-cancelable": { "version": "2.1.1", @@ -11797,21 +12103,21 @@ "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-try": "^1.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "^3.0.2" } }, "p-map": { @@ -11823,9 +12129,9 @@ } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "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 }, "package-hash": { @@ -11850,9 +12156,9 @@ } }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "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 }, "path-is-absolute": { @@ -11896,7 +12202,7 @@ "pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "dev": true, "requires": { "through": "~2.3" @@ -11905,7 +12211,7 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "picocolors": { "version": "1.0.0", @@ -11941,6 +12247,44 @@ "stream-meter": "^1.0.4" }, "dependencies": { + "@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "requires": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + } + }, + "@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true + }, + "@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "decompress-response": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", @@ -11956,6 +12300,15 @@ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "mimic-response": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", @@ -12056,18 +12409,6 @@ "requires": { "p-limit": "^2.2.0" } - }, - "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 } } }, @@ -12093,6 +12434,17 @@ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -12104,13 +12456,28 @@ "pump": "^3.0.0", "tar-stream": "^2.1.4" } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } } } }, "prebuild-install": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", - "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", "requires": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -12119,7 +12486,6 @@ "mkdirp-classic": "^0.5.3", "napi-build-utils": "^1.0.1", "node-abi": "^3.3.0", - "npmlog": "^4.0.1", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", @@ -12136,7 +12502,8 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "process-on-spawn": { "version": "1.0.0", @@ -12156,7 +12523,7 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" }, "promise-retry": { "version": "2.0.1", @@ -12247,7 +12614,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" } } }, @@ -12276,6 +12643,17 @@ "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", "dev": true }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -12285,7 +12663,7 @@ "release-zalgo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", "dev": true, "requires": { "es6-error": "^4.0.1" @@ -12294,7 +12672,7 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "require-from-string": { @@ -12312,15 +12690,15 @@ "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -12337,9 +12715,9 @@ "dev": true }, "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", "requires": { "lowercase-keys": "^2.0.0" } @@ -12356,7 +12734,7 @@ "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" }, "reusify": { "version": "1.0.4", @@ -12596,17 +12974,28 @@ } }, "rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "requires": { "tslib": "^2.1.0" } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } }, "safer-buffer": { "version": "2.1.2", @@ -12633,7 +13022,8 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true }, "shebang-command": { "version": "2.0.0", @@ -12723,24 +13113,30 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "requires": { - "ip": "^1.1.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" } }, "socks-proxy-agent": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", - "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", "requires": { "agent-base": "^6.0.2", "debug": "^4.3.3", "socks": "^2.6.2" } }, + "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 + }, "spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -12767,23 +13163,23 @@ "split-ca": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" + "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, "ssh2": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz", - "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", + "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", "requires": { "asn1": "^0.2.4", "bcrypt-pbkdf": "^1.0.2", "cpu-features": "~0.0.4", - "nan": "^2.15.0" + "nan": "^2.16.0" } }, "ssri": { @@ -12797,7 +13193,7 @@ "stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", "dev": true, "requires": { "duplexer": "~0.1.1", @@ -12834,6 +13230,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -12851,13 +13253,6 @@ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } } }, "string-width": { @@ -12871,23 +13266,25 @@ } }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "strip-ansi": { @@ -12925,9 +13322,9 @@ "dev": true }, "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -12938,9 +13335,9 @@ }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -12958,16 +13355,26 @@ } }, "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "requires": { + "yallist": "^4.0.0" + } + } } }, "tar-fs": { @@ -13030,7 +13437,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "textextensions": { @@ -13041,7 +13448,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "tmp": { "version": "0.0.33", @@ -13054,7 +13461,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true }, "to-regex-range": { @@ -13069,7 +13476,7 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "treeify": { "version": "1.1.0", @@ -13089,9 +13496,9 @@ }, "dependencies": { "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -13100,20 +13507,20 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true } } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "requires": { "safe-buffer": "^5.0.1" } @@ -13121,7 +13528,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "type-check": { "version": "0.4.0", @@ -13144,6 +13551,17 @@ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -13187,6 +13605,16 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -13213,7 +13641,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "uuid": { "version": "8.3.2", @@ -13229,7 +13657,7 @@ "validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", "requires": { "builtins": "^1.0.3" } @@ -13237,7 +13665,7 @@ "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "requires": { "defaults": "^1.0.3" } @@ -13245,12 +13673,12 @@ "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -13281,13 +13709,28 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", "dev": true }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, "requires": { "string-width": "^1.0.2 || 2 || 3 || 4" } @@ -13317,7 +13760,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { "version": "3.0.3", @@ -13343,18 +13786,26 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } } }, "yargs-parser": { @@ -13392,7 +13843,7 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" diff --git a/src/constants.js b/src/constants.js index bb734207..7297f7a9 100644 --- a/src/constants.js +++ b/src/constants.js @@ -64,6 +64,10 @@ module.exports.ALLOWED_QUERY_FIELDS = { filter: ['status', 'start', 'end', 'skillName', 'agentName'], sort: ['status', 'start', 'end', 'skillName', 'agentName'], }, + TASK: { + filter: ['name', 'state', 'startTime', 'endTime', 'skillName', 'actionName', 'jobType', 'scheduled'], + sort: ['name', 'state', 'startTime', 'endTime', 'skillName', 'actionName', 'jobType'], + }, }; module.exports.DEFAULT_LIST_LIMIT_COUNT = '20'; @@ -74,6 +78,7 @@ module.exports.DEFAULT_LIST_SORT_PARAMS = { updatedAt: 'updatedAt', // skills, agents, actions, connections, models, experiments, types, _updatedAt: '_updatedAt', // projects, missions, campaigns, run, assessment, snapshot start: 'start', // activations + startTime: 'startTime', // tasks }; module.exports.LIST_JSON_HELP_TEXT = 'Output results in JSON, supports JMESPath query to filter the response data'; From 6c4de2351193975841ed7bad8f28d282ce99fbcb Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Fri, 24 Feb 2023 01:17:38 +0530 Subject: [PATCH 774/864] vuln fix and handling messgaing (#658) * vuln fix and handling messgaing * remove debug statement --- package-lock.json | 12 ++++++------ src/commands/utils.js | 10 +++++++--- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 69743f92..3546e437 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3567,9 +3567,9 @@ "dev": true }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/http-proxy-agent": { "version": "4.0.1", @@ -10588,9 +10588,9 @@ "dev": true }, "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "http-proxy-agent": { "version": "4.0.1", diff --git a/src/commands/utils.js b/src/commands/utils.js index 4dad0e1a..1f8a922f 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -31,7 +31,7 @@ const MAX_NAME_LENGTH = 20; const space = /\s+/; const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/; const beginAndEndWithHyphen = /^[-]+|[-]+$/; -const vaildationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; +const validationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; const nameRequirementMessage = 'You must provide a name for the skill.'; module.exports.constructError = (error) => { @@ -403,7 +403,7 @@ module.exports.validateName = (name) => (space.test(name) || module.exports.hasUppercase(name) ? { status: false, - message: name ? vaildationErrorMessage : nameRequirementMessage, + message: name ? validationErrorMessage : nameRequirementMessage, } : { status: true, @@ -429,7 +429,11 @@ module.exports.handleListFailure = (response, options, type) => { if (response.status === 400) { const optionTableFormat = this.OPTIONSTABLEFORMAT; printError(`${type} list failed.`, options, false); - this.printTable(optionTableFormat, response.details); + if (response.message !== undefined && response.message !== null) { + this.printTable(optionTableFormat, response.message); + } else { + this.printTable(optionTableFormat, response.details); + } printError(''); // Just exit } return printError(`Failed to list ${type}: ${response.status} ${response.message}`, options); From 9b9eb80941c67d904b44bbff3cb0c451a5c388f2 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Fri, 24 Feb 2023 13:18:25 +0530 Subject: [PATCH 775/864] Change the handleListFailure (#659) * vuln fix and handling messgaing * remove debug statement * change message util * change details and mesage priority --- src/commands/utils.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 1f8a922f..9b20d103 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -429,10 +429,10 @@ module.exports.handleListFailure = (response, options, type) => { if (response.status === 400) { const optionTableFormat = this.OPTIONSTABLEFORMAT; printError(`${type} list failed.`, options, false); - if (response.message !== undefined && response.message !== null) { - this.printTable(optionTableFormat, response.message); - } else { + if (response.details !== undefined && response.details !== null) { this.printTable(optionTableFormat, response.details); + } else { + this.printError(response.message, options); } printError(''); // Just exit } From b1ee1b28991080ceec3702893aaf6046e6dacf86 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Thu, 9 Mar 2023 14:32:36 -0600 Subject: [PATCH 776/864] Migrate from cjs -> esm (#660) * FAB-5620 Migrate from cjs -> esm Update packages to major versions for esm Fix content upload issue with node 18 Replace nyc -> c8, add initial code coverage settings Change program structure in bin/* for better testability . * Add library that detect if bin/* are running as main script * Fix import issues lodash/fp * fix non /fp lodash imports * Fix import * FAB-3809 checked error message removed "undefined" * build * Fix docgen script * Add simple unit test for docgen script, bump deps, fix bin/*.js missing create()/export, upgrade glob to 9.x * Cleanup bad error handling in recursive content upload, use async/await, add unit tests --- .eslintrc.json | 11 + bin/cortex-actions.js | 230 +- bin/cortex-agents.js | 522 +- bin/cortex-assessments.js | 472 +- bin/cortex-campaigns.js | 264 +- bin/cortex-configure.js | 168 +- bin/cortex-connections.js | 236 +- bin/cortex-content.js | 190 +- bin/cortex-deploy.js | 209 +- bin/cortex-docker.js | 78 +- bin/cortex-experiments.js | 404 +- bin/cortex-generate.js | 53 +- bin/cortex-missions.js | 274 +- bin/cortex-models.js | 311 +- bin/cortex-projects.js | 202 +- bin/cortex-roles.js | 387 +- bin/cortex-secrets.js | 184 +- bin/cortex-sessions.js | 191 +- bin/cortex-skills.js | 344 +- bin/cortex-tasks.js | 263 +- bin/cortex-types.js | 197 +- bin/cortex-users.js | 230 +- bin/cortex-workspaces.js | 262 +- bin/cortex.js | 94 +- build.sh | 2 +- client/index.js | 34 +- generate_docs.js | 13 +- package-lock.json | 6041 ++++++++------------ package.json | 83 +- scripts/cortex | 2 +- src/client/actions.js | 71 +- src/client/agents.js | 50 +- src/client/apiServerClient.js | 14 +- src/client/apiutils.js | 103 +- src/client/assessments.js | 86 +- src/client/catalog.js | 161 +- src/client/connections.js | 38 +- src/client/content.js | 74 +- src/client/experiments.js | 94 +- src/client/info.js | 33 +- src/client/models.js | 47 +- src/client/roles.js | 92 +- src/client/secrets.js | 34 +- src/client/sessions.js | 33 +- src/client/tasks.js | 39 +- src/client/users.js | 55 +- src/commands/actions.js | 139 +- src/commands/agents.js | 272 +- src/commands/assessments.js | 374 +- src/commands/campaigns.js | 81 +- src/commands/configure.js | 86 +- src/commands/connections.js | 195 +- src/commands/content.js | 168 +- src/commands/deploy.js | 105 +- src/commands/docker.js | 22 +- src/commands/experiments.js | 106 +- src/commands/models.js | 138 +- src/commands/projects.js | 53 +- src/commands/roles.js | 129 +- src/commands/secrets.js | 99 +- src/commands/sessions.js | 90 +- src/commands/skills.js | 135 +- src/commands/tasks.js | 107 +- src/commands/types.js | 82 +- src/commands/users.js | 73 +- src/commands/utils.js | 392 +- src/commands/workspaces/build.js | 396 +- src/commands/workspaces/configure.js | 274 +- src/commands/workspaces/generate.js | 398 +- src/commands/workspaces/publish.js | 647 +-- src/commands/workspaces/registry.js | 302 +- src/commands/workspaces/workspace-utils.js | 214 +- src/compatibility.js | 119 +- src/config.js | 144 +- src/constants.js | 27 +- src/parsers.js | 39 +- test/compatibility.js | 121 +- test/configure.js | 89 +- test/docgen.js | 19 + test/docker-registry.js | 9 +- test/tasks.js | 97 +- test/testUtilFunctions.js | 27 +- test/testUtils.js | 101 +- test/uploadDirectory.js | 126 +- test/useragent.js | 64 +- test/utils.js | 8 +- test/workspaces.js | 77 +- 87 files changed, 7960 insertions(+), 11159 deletions(-) create mode 100644 test/docgen.js diff --git a/.eslintrc.json b/.eslintrc.json index c71e92e9..9c549edf 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,9 +1,20 @@ { + "parser": "@babel/eslint-parser", + "parserOptions": { + "requireConfigFile": false, + "babelOptions": { + "plugins": [ + "@babel/plugin-syntax-import-assertions" + ] + }, + "ecmaVersion": 2022 + }, "extends": "airbnb-base", "rules": { "no-underscore-dangle": [ 0 ], + "import/extensions": "off", "require-await": "error", "max-classes-per-file": "off", "no-console": "off", // This is a cli app.. diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 8b03c95c..fb57f9ab 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -1,133 +1,109 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListActionsCommand, - DescribeActionCommand, - DeleteActionCommand, - DeployActionCommand, -} = require('../src/commands/actions'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, - GET_DEFAULT_SORT_CLI_OPTION, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex actions'); -program.description('Work with Cortex Actions'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + ListActionsCommand, DescribeActionCommand, DeleteActionCommand, DeployActionCommand, +} from '../src/commands/actions.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +export function create() { + const program = new Command(); + program.name('cortex actions'); + program.description('Work with Cortex Actions'); // List Actions -program - .command('list') - .description('List the deployed actions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListActionsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List the deployed actions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListActionsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Action -program - .command('describe <actionName>') - .alias('get') - .description('Describe an action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('-d, --download', 'Download code binary in response') - .action(withCompatibilityCheck((actionName, options) => { - try { - new DescribeActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <actionName>') + .alias('get') + .description('Describe an action') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('-d, --download', 'Download code binary in response') + .action(withCompatibilityCheck((actionName, options) => { + try { + new DescribeActionCommand(program).execute(actionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Action -program - .command('delete <actionName>') - .description('Delete an action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((actionName, options) => { - try { - new DeleteActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <actionName>') + .description('Delete an action') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((actionName, options) => { + try { + new DeleteActionCommand(program).execute(actionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Deploy Action -program - .command('deploy [actionDefinition]') - .alias('save') - .description('Deploy an action') - .storeOptionsAsProperties(false) - .option('--name, --actionName <name>', 'Action name') - .option('--type, --actionType <job|daemon>', 'Type of action') - .option('--cmd <cmd>', 'Command to be executed') // '<"--daemon">' - .option('--image, --docker <name[:tag]>', 'Docker image to use as the runner') - .option('--environmentVariables <environmentVariables>', 'Docker container environment variables, only used for daemon action types') - .option('--jobTimeout <jobTimeout>', 'Job Timeout in seconds until the job is marked as FAILED (default: no timeout), only used for job action types') - .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill, provide as last option specified or end list of files with "--"') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') - .option('--port <port>', 'Docker port, only used for daemon action types') // '9091' - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--scaleCount <count>', 'Scale count, only used for daemon action types') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - // TODO this command is non-functional, comment for now to avoid confusion - // .option('--push-docker', 'Push Docker image to the Cortex registry.') - .option('-y, --yaml', 'Use YAML format') - .action(withCompatibilityCheck((actionName, options) => { - try { - new DeployActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('deploy [actionDefinition]') + .alias('save') + .description('Deploy an action') + .storeOptionsAsProperties(false) + .option('--name, --actionName <name>', 'Action name') + .option('--type, --actionType <job|daemon>', 'Type of action') + .option('--cmd <cmd>', 'Command to be executed') // '<"--daemon">' + .option('--image, --docker <name[:tag]>', 'Docker image to use as the runner') + .option('--environmentVariables <environmentVariables>', 'Docker container environment variables, only used for daemon action types') + .option('--jobTimeout <jobTimeout>', 'Job Timeout in seconds until the job is marked as FAILED (default: no timeout), only used for job action types') + .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill, provide as last option specified or end list of files with "--"') + .option('--no-compat', 'Ignore API compatibility checks') + // eslint-disable-next-line max-len + .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('--port <port>', 'Docker port, only used for daemon action types') // '9091' + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--scaleCount <count>', 'Scale count, only used for daemon action types') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + // TODO this command is non-functional, comment for now to avoid confusion + // .option('--push-docker', 'Push Docker image to the Cortex registry.') + .option('-y, --yaml', 'Use YAML format') + .action(withCompatibilityCheck((actionName, options) => { + try { + new DeployActionCommand(program).execute(actionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 6e1aa2eb..2cbf7a3c 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -1,33 +1,17 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { +} from '../src/constants.js'; +import { CreateAgentSnapshotCommand, DeleteAgentCommand, DeployAgentCommand, @@ -41,264 +25,254 @@ const { ListServicesCommand, SaveAgentCommand, UndeployAgentCommand, -} = require('../src/commands/agents'); - -program.name('cortex agents'); -program.description('Work with Cortex Agents'); +} from '../src/commands/agents.js'; +export function create() { + const program = new Command(); + program.name('cortex agents'); + program.description('Work with Cortex Agents'); // Save Agent -program - .command('save <agentDefinitions...>') - .description('Save an agent definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for agent definition format') - .action(withCompatibilityCheck((agentDefinitions, options) => { - try { - new SaveAgentCommand(program).execute(agentDefinitions, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <agentDefinitions...>') + .description('Save an agent definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for agent definition format') + .action(withCompatibilityCheck((agentDefinitions, options) => { + try { + new SaveAgentCommand(program).execute(agentDefinitions, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Agents -program - .command('list') - .description('List agent definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListAgentsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List agent definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListAgentsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Deploy agent -program - .command('deploy <agentNames...>') - .description('Deploy the agent resource to the cluster') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentNames, options) => { - try { - new DeployAgentCommand(program).execute(agentNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('deploy <agentNames...>') + .description('Deploy the agent resource to the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((agentNames, options) => { + try { + new DeployAgentCommand(program).execute(agentNames, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Agent -program - .command('describe <agentName>') - .description('Describe agent') - .alias('get') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--versions', 'To get list of versions of an agent') - .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((agentName, options) => { - try { - new DescribeAgentCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <agentName>') + .description('Describe agent') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--versions', 'To get list of versions of an agent') + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((agentName, options) => { + try { + new DescribeAgentCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Invoke Agent Service -program - .command('invoke <agentName> <serviceName>') - .description('Invoke an agent service') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--params <params>', 'JSON params to send to the action') - .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') - .option('--scheduleName <name>', 'Identifier to uniquely identify an agents schedule, defaults to the agent\'s name') - .option('--scheduleCron <cron>', 'Schedule agent invoke periodically using a cron schedule string for example: "0 0 * * *", @hourly, or @daily') - .option('--sync', 'Invoke the agent synchronously') - .action(withCompatibilityCheck((agentName, serviceName, options) => { - try { - new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('invoke <agentName> <serviceName>') + .description('Invoke an agent service') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--params <params>', 'JSON params to send to the action') + .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') + .option('--scheduleName <name>', 'Identifier to uniquely identify an agents schedule, defaults to the agent\'s name') + .option('--scheduleCron <cron>', 'Schedule agent invoke periodically using a cron schedule string for example: "0 0 * * *", @hourly, or @daily') + .option('--sync', 'Invoke the agent synchronously') + .action(withCompatibilityCheck((agentName, serviceName, options) => { + try { + new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Agent -program - .command('delete <agentName>') - .description('Delete an agent') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentName, options) => { - try { - new DeleteAgentCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <agentName>') + .description('Delete an agent') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((agentName, options) => { + try { + new DeleteAgentCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Undeploy agent -program - .command('undeploy <agentNames...>') - .description('Undeploy the agent resource from the cluster') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentNames, options) => { - try { - new UndeployAgentCommand(program).execute(agentNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('undeploy <agentNames...>') + .description('Undeploy the agent resource from the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((agentNames, options) => { + try { + new UndeployAgentCommand(program).execute(agentNames, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Get activation -program - .command('get-activation <activationId>') - .description('Get dataset or service activation') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--verbose [boolean]', 'Get debugging info in activation response') - .option('--report [boolean]', 'Get additional debugging info in activation response') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((activationId, options) => { - try { - new GetActivationCommand(program).execute(activationId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('get-activation <activationId>') + .description('Get dataset or service activation') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--verbose [boolean]', 'Get debugging info in activation response') + .option('--report [boolean]', 'Get additional debugging info in activation response') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((activationId, options) => { + try { + new GetActivationCommand(program).execute(activationId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List activations -program - .command('list-activations') - .description('List activations for an agent') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--agentName <string>', 'Query activations by agentName') - .option('--skillName <string>', 'Query activations by skillName') - .option('--startBefore <timestamp>', 'Filters activations to include those that started before the specified timestamp.') - .option('--startAfter <timestamp>', 'Filters activations to include those that started after the specified timestamp.') - .option('--endBefore <timestamp>', 'Filters activations to include those that ended before the specified timestamp.') - .option('--endAfter <timestamp>', 'Filters activations to include those that ended after the specified timestamp.') - .option('--correlationId <string>', 'Query activations with same correlationId') - .option('--status <status>', 'Filters activations by status [complete|error].') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <asc|desc>', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) - .option('--filter <filter>', 'A Mongo style filter to use.') - .action(withCompatibilityCheck((options) => { - try { - new ListActivationsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - program - .command('list-services <agentName>') - .description('List agent service endpoints') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - + .command('list-activations') + .description('List activations for an agent') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--agentName <string>', 'Query activations by agentName') + .option('--skillName <string>', 'Query activations by skillName') + .option('--startBefore <timestamp>', 'Filters activations to include those that started before the specified timestamp.') + .option('--startAfter <timestamp>', 'Filters activations to include those that started after the specified timestamp.') + .option('--endBefore <timestamp>', 'Filters activations to include those that ended before the specified timestamp.') + .option('--endAfter <timestamp>', 'Filters activations to include those that ended after the specified timestamp.') + .option('--correlationId <string>', 'Query activations with same correlationId') + .option('--status <status>', 'Filters activations by status [complete|error].') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + // eslint-disable-next-line max-len + .option('--sort <asc|desc>', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) + .option('--filter <filter>', 'A Mongo style filter to use.') + .action(withCompatibilityCheck((options) => { + try { + new ListActivationsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list-services <agentName>') + .description('List agent service endpoints') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((agentName, options) => { - try { - new ListServicesCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + try { + new ListServicesCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Create Agent Snapshot -program - .command('create-snapshot [snapshotDefinition]') - .description('Create an agent snapshot') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--agentName <name[:version]>', 'The name of the agent to snapshot') - .option('--title <title>', 'A descriptive title for the snapshot') - .action(withCompatibilityCheck((snapshotDefinition, options) => { - try { - new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('list-snapshots <agentName>') - .description('List agent snapshots') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((agentName, options) => { - try { - new ListAgentSnapshotsCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('describe-snapshot <snapshotId>') - .alias('get-snapshot') - .description('Describe agent snapshot') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') - .action(withCompatibilityCheck((snapshotId, options) => { - try { - new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('create-snapshot [snapshotDefinition]') + .description('Create an agent snapshot') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--agentName <name[:version]>', 'The name of the agent to snapshot') + .option('--title <title>', 'A descriptive title for the snapshot') + .action(withCompatibilityCheck((snapshotDefinition, options) => { + try { + new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list-snapshots <agentName>') + .description('List agent snapshots') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((agentName, options) => { + try { + new ListAgentSnapshotsCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('describe-snapshot <snapshotId>') + .alias('get-snapshot') + .description('Describe agent snapshot') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') + .action(withCompatibilityCheck((snapshotId, options) => { + try { + new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index c016599e..d5facfdc 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -1,251 +1,229 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - ListResourcesCommand, - ListResourceTypesCommand, +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { CreateAssessmentCommand, - ListAssessmentCommand, - DescribeAssessmentCommand, DeleteAssessmentCommand, - RunAssessmentCommand, - ListAssessmentReportCommand, - GetAssessmentReportCommand, - ExportAssessmentReportCommand, DependencyTreeCommand, -} = require('../src/commands/assessments'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex assessments'); -program.description('Work with Cortex Assessments'); - -program - .command('list-types') - .description('List Cortex resource types') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceTypesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('dependency-tree [dependencyFile]') - .description('Dependencies of a resource or find missing ones from dependencyFile') - .storeOptionsAsProperties(false) - .requiredOption('--scope <project>', 'project name of the resource') - .option('--name <Cortex component name>', 'Cortex component name', ' ') - .option('--type <Cortex component type>', 'Cortex resource type', ' ') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--missing [boolean]', 'Filter only missing dependencies') - .action(withCompatibilityCheck((dependencyFile, options) => { - try { - new DependencyTreeCommand(program).execute(dependencyFile, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('list-resources') - .description('List matching resources') - .storeOptionsAsProperties(false) - .option('--scope <projects>', 'Assessment scope projects (comma separated values)') - .option('--name <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') - .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') - .action(withCompatibilityCheck((options) => { - try { - new ListResourcesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('create [assessmentDefinition]') - .alias('save') - .description('Create an assessment. Do `list-resources` and `list-types` to select component and type') - .storeOptionsAsProperties(false) - .option('--name <name>', 'Assessment name') - .option('--title <title>', 'Assessment title') - .option('--description <description>', 'Assessment description') - .option('--scope <projects>', 'Assessment scope projects (comma separated values)') - .option('--component <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') - .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') - .option('--overwrite [boolean]', 'Overwrite existing assessment, if exists') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('-y, --yaml', 'Use YAML format') - .action(withCompatibilityCheck((assessmentDefinition, options) => { - try { - new CreateAssessmentCommand(program).execute(assessmentDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('list') - .description('List assessments') - .alias('l') - .option('--skip <Skip records for pagination>', 'Skip records for pagination') - .option('--limit <Limit records for pagination>', 'Limit records for pagination') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - - .action(withCompatibilityCheck((options) => { - try { - new ListAssessmentCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('describe <assessmentName>') - .alias('get') - .description('Describe the assessment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, options) => { - try { - new DescribeAssessmentCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('delete <assessmentName>') - .description('Delete the assessment and its generated reports') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, options) => { - try { - new DeleteAssessmentCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('report <assessmentName>') - .description('Run report generation of the assessment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, options) => { - try { - new RunAssessmentCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('list-report <assessmentName>') - .alias('report-list') - .description('Lists reports of the assessment') - .option('--skip <Skip records for pagination>', 'Skip records for pagination') - .option('--limit <Limit records for pagination>', 'Limit records for pagination') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((assessmentName, options) => { - try { - new ListAssessmentReportCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('get-report <assessmentName> <reportId>') - .alias('report-get') - .description('Get report of the assessment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((assessmentName, reportId, options) => { - try { - new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('export-report <assessmentName> <reportId>') - .alias('report-export') - .description('Export report of the assessment') - .storeOptionsAsProperties(false) - .option('--type <Cortex component types>', 'Component types to export (comma separated values)') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, reportId, options) => { - try { - new ExportAssessmentReportCommand(program).execute(assessmentName, reportId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + DescribeAssessmentCommand, + ExportAssessmentReportCommand, + GetAssessmentReportCommand, + ListAssessmentCommand, + ListAssessmentReportCommand, + ListResourceTypesCommand, + ListResourcesCommand, + RunAssessmentCommand, +} from '../src/commands/assessments.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; + +export function create() { + const program = new Command(); + program.name('cortex assessments'); + program.description('Work with Cortex Assessments'); + program + .command('list-types') + .description('List Cortex resource types') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((options) => { + try { + new ListResourceTypesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('dependency-tree [dependencyFile]') + .description('Dependencies of a resource or find missing ones from dependencyFile') + .storeOptionsAsProperties(false) + .requiredOption('--scope <project>', 'project name of the resource') + .option('--name <Cortex component name>', 'Cortex component name', ' ') + .option('--type <Cortex component type>', 'Cortex resource type', ' ') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--missing [boolean]', 'Filter only missing dependencies') + .action(withCompatibilityCheck((dependencyFile, options) => { + try { + new DependencyTreeCommand(program).execute(dependencyFile, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list-resources') + .description('List matching resources') + .storeOptionsAsProperties(false) + .option('--scope <projects>', 'Assessment scope projects (comma separated values)') + .option('--name <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') + .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .action(withCompatibilityCheck((options) => { + try { + new ListResourcesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('create [assessmentDefinition]') + .alias('save') + .description('Create an assessment. Do `list-resources` and `list-types` to select component and type') + .storeOptionsAsProperties(false) + .option('--name <name>', 'Assessment name') + .option('--title <title>', 'Assessment title') + .option('--description <description>', 'Assessment description') + .option('--scope <projects>', 'Assessment scope projects (comma separated values)') + .option('--component <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') + .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') + .option('--overwrite [boolean]', 'Overwrite existing assessment, if exists') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('-y, --yaml', 'Use YAML format') + .action(withCompatibilityCheck((assessmentDefinition, options) => { + try { + new CreateAssessmentCommand(program).execute(assessmentDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list') + .description('List assessments') + .alias('l') + .option('--skip <Skip records for pagination>', 'Skip records for pagination') + .option('--limit <Limit records for pagination>', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListAssessmentCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('describe <assessmentName>') + .alias('get') + .description('Describe the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new DescribeAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('delete <assessmentName>') + .description('Delete the assessment and its generated reports') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new DeleteAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('report <assessmentName>') + .description('Run report generation of the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new RunAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list-report <assessmentName>') + .alias('report-list') + .description('Lists reports of the assessment') + .option('--skip <Skip records for pagination>', 'Skip records for pagination') + .option('--limit <Limit records for pagination>', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new ListAssessmentReportCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('get-report <assessmentName> <reportId>') + .alias('report-get') + .description('Get report of the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((assessmentName, reportId, options) => { + try { + new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('export-report <assessmentName> <reportId>') + .alias('report-export') + .description('Export report of the assessment') + .storeOptionsAsProperties(false) + .option('--type <Cortex component types>', 'Component types to export (comma separated values)') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, reportId, options) => { + try { + new ExportAssessmentReportCommand(program).execute(assessmentName, reportId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 146d6687..9f92151e 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -1,150 +1,122 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - ListCampaignsCommand, - DescribeCampaignCommand, - ExportCampaignCommand, - ImportCampaignCommand, - DeployCampaignCommand, - UndeployCampaignCommand, -} = require('../src/commands/campaigns'); - -program.name('cortex campaigns'); -program.description('Work with Cortex Campaigns'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + ListCampaignsCommand, DescribeCampaignCommand, ExportCampaignCommand, ImportCampaignCommand, DeployCampaignCommand, UndeployCampaignCommand, +} from '../src/commands/campaigns.js'; +export function create() { + const program = new Command(); + program.name('cortex campaigns'); + program.description('Work with Cortex Campaigns'); // List Campaigns -program - .command('list') - .description('List Campaigns') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListCampaignsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List Campaigns') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListCampaignsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Get|Describe Campaign -program - .command('describe <campaignName>') - .alias('get') - .description('Describe Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((campaignName, options) => { - try { - new DescribeCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('export <campaignName>') - .description('Export Campaign Archive') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--deployable [boolean]', 'Export only deployable missions', true) - .option('--o <output>', 'Export file name') - .action(withCompatibilityCheck(async (campaignName, options) => { - try { - await new ExportCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('import <campaignExportFilepath>') - .description('Import Campaign Archive') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--deploy [boolean]', 'Set missions status Ready To Deploy', true) - .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) - .action(withCompatibilityCheck((campaignName, options) => { - try { - new ImportCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('deploy <campaignName>') - .description('Deploy Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, options) => { - try { - new DeployCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('undeploy <campaignName>') - .description('Undeploy Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, options) => { - try { - new UndeployCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('describe <campaignName>') + .alias('get') + .description('Describe Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DescribeCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('export <campaignName>') + .description('Export Campaign Archive') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--deployable [boolean]', 'Export only deployable missions', true) + .option('--o <output>', 'Export file name') + .action(withCompatibilityCheck(async (campaignName, options) => { + try { + await new ExportCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('import <campaignExportFilepath>') + .description('Import Campaign Archive') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--deploy [boolean]', 'Set missions status Ready To Deploy', true) + .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ImportCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('deploy <campaignName>') + .description('Deploy Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('undeploy <campaignName>') + .description('Undeploy Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new UndeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 0687bd5e..cc259e96 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -1,98 +1,74 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const chalk = require('chalk'); -// const { program } = require('commander'); -const { program } = require('commander'); +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { + ConfigureCommand, DescribeProfileCommand, ListProfilesCommand, SetProfileCommand, GetAccessToken, PrintEnvVars, +} from '../src/commands/configure.js'; -const { - ConfigureCommand, - DescribeProfileCommand, - ListProfilesCommand, - SetProfileCommand, - GetAccessToken, - PrintEnvVars, -} = require('../src/commands/configure'); - -program.name('cortex configure'); -program.description('Configure cortex connection profiles'); - -program.command('create', { isDefault: true }) - .description('Authenticate to cortex (default command)') - .option('--file <file>', 'Personal access config file location') - .option('--profile <profile>', 'The profile to configure', 'default') - .option('--project <project>', 'The default project') - .action(async (options, command) => { - try { - await new ConfigureCommand(command).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - -program - .command('token') - .description('Create access token') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .action(async (options) => { - try { - await new GetAccessToken(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - -program - .command('list') - .description('List configured profiles') - .alias('l') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .action(async (options) => { - await new ListProfilesCommand(program).execute(options); - }); - -program - .command('describe <profileName>') - .alias('get') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .description('Describe a configured profile') - .action(async (profileName, options) => { - await new DescribeProfileCommand(program).execute({ profile: profileName, ...options }); - }); - -program - .command('env') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') - .description('Print cortex environment variables') - .action(async (options) => { - await new PrintEnvVars(program).execute(options); - }); - -program - .command('set-profile <profileName>') - .description('Sets the current profile.') - .action(async (profileName, options) => { - await new SetProfileCommand(program).execute(profileName, options); - }); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); +export function create() { + const program = new Command(); + program.name('cortex configure'); + program.description('Configure cortex connection profiles'); + program.command('create', { isDefault: true }) + .description('Authenticate to cortex (default command)') + .option('--file <file>', 'Personal access config file location') + .option('--profile <profile>', 'The profile to configure', 'default') + .option('--project <project>', 'The default project') + .action(async (options, command) => { + try { + await new ConfigureCommand(command).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + program + .command('token') + .description('Create access token') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .action(async (options) => { + try { + await new GetAccessToken(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + program + .command('list') + .description('List configured profiles') + .alias('l') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .action(async (options) => { + await new ListProfilesCommand(program).execute(options); + }); + program + .command('describe <profileName>') + .alias('get') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .description('Describe a configured profile') + .action(async (profileName, options) => { + await new DescribeProfileCommand(program).execute({ profile: profileName, ...options }); + }); + program + .command('env') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') + .description('Print cortex environment variables') + .action(async (options) => { + await new PrintEnvVars(program).execute(options); + }); + program + .command('set-profile <profileName>') + .description('Sets the current profile.') + .action(async (profileName, options) => { + await new SetProfileCommand(program).execute(profileName, options); + }); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index cf58c5c5..edaa6e93 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -1,138 +1,112 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - ListConnections, - SaveConnectionCommand, - DescribeConnectionCommand, - ListConnectionsTypes, - DeleteConnectionCommand, -} = require('../src/commands/connections'); - -program.name('cortex connections'); -program.description('Work with Cortex Connections'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + ListConnections, SaveConnectionCommand, DescribeConnectionCommand, ListConnectionsTypes, DeleteConnectionCommand, +} from '../src/commands/connections.js'; +export function create() { + const program = new Command(); + program.name('cortex connections'); + program.description('Work with Cortex Connections'); // List Connections -program - .command('list') - .description('List connections definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListConnections(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List connections definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListConnections(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Connections -program - .command('save <connectionDefinition>') - .description('Save a connections definition. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for agent definition format') - .action(withCompatibilityCheck((connDefinition, options) => { - try { - new SaveConnectionCommand(program).execute(connDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <connectionDefinition>') + .description('Save a connections definition. Takes JSON file by default.') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for agent definition format') + .action(withCompatibilityCheck((connDefinition, options) => { + try { + new SaveConnectionCommand(program).execute(connDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Connection -program - .command('describe <connectionName>') - .alias('get') - .description('Describe connection') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DescribeConnectionCommand(program).execute(connectionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <connectionName>') + .alias('get') + .description('Describe connection') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DescribeConnectionCommand(program).execute(connectionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Connections Types -program - .command('list-types') - .description('List connections types') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') - .action(withCompatibilityCheck((options) => { - try { - new ListConnectionsTypes(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list-types') + .description('List connections types') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .action(withCompatibilityCheck((options) => { + try { + new ListConnectionsTypes(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Connection -program - .command('delete <connectionName>') - .description('Delete a connection') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DeleteConnectionCommand(program).execute(connectionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('delete <connectionName>') + .description('Delete a connection') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DeleteConnectionCommand(program).execute(connectionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index cd7cab80..035c2a50 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -1,112 +1,90 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListContent, - UploadContent, - DeleteContent, - DownloadContent, -} = require('../src/commands/content'); -const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); - -program.name('cortex content'); -program.description('Work with Cortex Managed Content'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + ListContent, UploadContent, DeleteContent, DownloadContent, +} from '../src/commands/content.js'; +import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; +export function create() { + const program = new Command(); + program.name('cortex content'); + program.description('Work with Cortex Managed Content'); // List Content -program - .command('list') - .description('List content') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--prefix <prefix>', 'Filter contents with the given prefix.') - .action(withCompatibilityCheck((options) => { - try { - new ListContent(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List content') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--prefix <prefix>', 'Filter contents with the given prefix.') + .action(withCompatibilityCheck((options) => { + try { + new ListContent(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Upload Content -program - .command('upload <contentKey> <filePath>') - .description('Upload content') - .option('--progress', 'Show upload progress') - .option('--test', 'Show what would be uploaded along with file size') - .option('--recursive', 'Recursively walk <filePath> and prefix each path stored with <contentKey>') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) - .action(withCompatibilityCheck((contentKey, filePath, options) => { - try { - new UploadContent(program).execute(contentKey, filePath, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('upload <contentKey> <filePath>') + .description('Upload content') + .option('--progress', 'Show upload progress') + .option('--test', 'Show what would be uploaded along with file size') + .option('-r, --recursive', 'Recursively walk <filePath> and prefix each path stored with <contentKey>') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) + .action(withCompatibilityCheck(async (contentKey, filePath, options) => { + try { + return await new UploadContent(program).execute(contentKey, filePath, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Delete Content -program - .command('delete <contentKey>') - .description('Delete content') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((contentKey, options) => { - try { - new DeleteContent(program).execute(contentKey, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <contentKey>') + .description('Delete content') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((contentKey, options) => { + try { + new DeleteContent(program).execute(contentKey, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Download Content -program - .command('download <contentKey>') - .description('Downloads content which can be piped to a file on disk. `cortex content download filename > filename.json`') - .option('--progress', 'Show download progress') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((contentKey, options) => { - try { - new DownloadContent(program).execute(contentKey, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('download <contentKey>') + .description('Downloads content which can be piped to a file on disk. `cortex content download filename > filename.json`') + .option('--progress', 'Show download progress') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((contentKey, options) => { + try { + new DownloadContent(program).execute(contentKey, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index f309a4ff..f7f444a1 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -1,120 +1,97 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - DeploySnapshotCommand, - DeployCampaignCommand, - DeployConnectionCommand, - DeployExperimentCommand, - DeploySkillCommand, -} = require('../src/commands/deploy'); - -program.name('cortex deploy'); -program.description('Export Cortex artifacts for deployment'); +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DeploySnapshotCommand, DeployCampaignCommand, DeployConnectionCommand, DeployExperimentCommand, DeploySkillCommand, +} from '../src/commands/deploy.js'; +export function create() { + const program = new Command(); + program.name('cortex deploy'); + program.description('Export Cortex artifacts for deployment'); // Export Agent Snapshot. Provide snapshotIds in quotes separated by space like "snapshotId1 snapshotId2". This is to support multiple agents in one deployment manifest file. -program - .command('snapshots <snapshotIds>') - .description('Export Agent(s) snapshots(s) for deployment. Provide snapshotIds separated by space, as <"snapshotId1 snapshotId2 ...">') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for snapshot export format') - .option('-f, --force', 'Force delete existing exported files') - .option('--latestRun [boolean]', 'Export latest run of Experiment(s) if not specified') - .action(withCompatibilityCheck((snapshotIds, options) => { - try { - new DeploySnapshotCommand(program).execute(snapshotIds, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('campaign <campaignName>') - .description('Export Campaigns for deployment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--deployable [boolean]', 'Export only ready to deploy Campaigns', true) - .action(withCompatibilityCheck((campaignName, options) => { - try { - new DeployCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('connection <connectionName>') - .description('Export Connection for deployment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DeployConnectionCommand(program).execute(connectionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('skill <skillName>') - .description('Export Skill for deployment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') - .action(withCompatibilityCheck((skillName, options) => { - try { - new DeploySkillCommand(program).execute(skillName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('experiment <experimentName> [runId]') - .description('Export Experiment with Model and Run for deployment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') - .action(withCompatibilityCheck((experimentName, runId, options) => { - try { - new DeployExperimentCommand(program).execute(experimentName, runId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('snapshots <snapshotIds>') + .description('Export Agent(s) snapshots(s) for deployment. Provide snapshotIds separated by space, as <"snapshotId1 snapshotId2 ...">') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for snapshot export format') + .option('-f, --force', 'Force delete existing exported files') + .option('--latestRun [boolean]', 'Export latest run of Experiment(s) if not specified') + .action(withCompatibilityCheck((snapshotIds, options) => { + try { + new DeploySnapshotCommand(program).execute(snapshotIds, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('campaign <campaignName>') + .description('Export Campaigns for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--deployable [boolean]', 'Export only ready to deploy Campaigns', true) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('connection <connectionName>') + .description('Export Connection for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DeployConnectionCommand(program).execute(connectionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('skill <skillName>') + .description('Export Skill for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') + .action(withCompatibilityCheck((skillName, options) => { + try { + new DeploySkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('experiment <experimentName> [runId]') + .description('Export Experiment with Model and Run for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DeployExperimentCommand(program).execute(experimentName, runId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index fad37f2f..3188e768 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -1,51 +1,33 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - DockerLoginCommand, -} = require('../src/commands/docker'); - -program.name('cortex docker'); -program.description('Work with Docker'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import DockerLoginCommand from '../src/commands/docker.js'; +export function create() { + const program = new Command(); + program.name('cortex docker'); + program.description('Work with Docker'); // Login -program - .command('login') - .description('Docker login to the Cortex registry with your jwt token') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '14d') - .action(withCompatibilityCheck((options) => { - try { - new DockerLoginCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('login') + .description('Docker login to the Cortex registry with your jwt token') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '14d') + .action(withCompatibilityCheck((options) => { + try { + new DockerLoginCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index b9b17c8c..e89f7e28 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -1,232 +1,210 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - ListExperiments, +} from '../src/constants.js'; +import { + CreateRunCommand, + DeleteExperimentCommand, + DeleteRunCommand, DescribeExperimentCommand, - ListRuns, DescribeRunCommand, - DeleteRunCommand, - DeleteExperimentCommand, DownloadArtifactCommand, + ListExperiments, + ListRuns, SaveExperimentCommand, - CreateRunCommand, UploadArtifactCommand, -} = require('../src/commands/experiments'); - -program.name('cortex experiments'); -program.description('Work with Cortex Experiments'); +} from '../src/commands/experiments.js'; +export function create() { + const program = new Command(); + program.name('cortex experiments'); + program.description('Work with Cortex Experiments'); // List Experiments -program - .command('list') - .description('Find experiments') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--model <model>', 'The model to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListExperiments(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('Find experiments') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--model <model>', 'The model to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListExperiments(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Experiment -program - .command('describe <experimentName>') - .description('Describe experiment') - .alias('get') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((experimentName, options) => { - try { - new DescribeExperimentCommand(program).execute(experimentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <experimentName>') + .description('Describe experiment') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((experimentName, options) => { + try { + new DescribeExperimentCommand(program).execute(experimentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Experiment -program - .command('delete <experimentName>') - .description('Delete an experiment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((experimentName, options) => { - try { - new DeleteExperimentCommand(program).execute(experimentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <experimentName>') + .description('Delete an experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((experimentName, options) => { + try { + new DeleteExperimentCommand(program).execute(experimentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Runs -program - .command('list-runs <experimentName>') - .description('Find runs within an experiment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((experimentName, options) => { - try { - new ListRuns(program).execute(experimentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list-runs <experimentName>') + .description('Find runs within an experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((experimentName, options) => { + try { + new ListRuns(program).execute(experimentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Run -program - .command('describe-run <experimentName> <runId>') - .description('Describe run') - .alias('get-run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((experimentName, runId, options) => { - try { - new DescribeRunCommand(program).execute(experimentName, runId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe-run <experimentName> <runId>') + .description('Describe run') + .alias('get-run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DescribeRunCommand(program).execute(experimentName, runId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Run -program - .command('delete-run <experimentName> <runId>') - .description('Delete run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((experimentName, runId, options) => { - try { - new DeleteRunCommand(program).execute(experimentName, runId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete-run <experimentName> <runId>') + .description('Delete run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DeleteRunCommand(program).execute(experimentName, runId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Download Artifact -program - .command('download-artifact <experimentName> <runId> <artifactName>') - .description('Download artifact from run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { - try { - new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('download-artifact <experimentName> <runId> <artifactName>') + .description('Download artifact from run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { + try { + new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Experiment -program - .command('save <experimentDefinition>') - .description('Save an experiment definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for experiment definition format') - .action(withCompatibilityCheck((experimentDefinition, options) => { - try { - new SaveExperimentCommand(program).execute(experimentDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <experimentDefinition>') + .description('Save an experiment definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for experiment definition format') + .action(withCompatibilityCheck((experimentDefinition, options) => { + try { + new SaveExperimentCommand(program).execute(experimentDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Experiment -program - .command('create-run <runDefinition>') - .description('Create run for experiment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for run definition format') - .action(withCompatibilityCheck((runDefinition, options) => { - try { - new CreateRunCommand(program).execute(runDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('create-run <runDefinition>') + .description('Create run for experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for run definition format') + .action(withCompatibilityCheck((runDefinition, options) => { + try { + new CreateRunCommand(program).execute(runDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Upload Artifact -program - .command('upload-artifact <experimentName> <runId> <filePath> <artifactKey>') - .description('Upload artifact for run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) - .action(withCompatibilityCheck((experimentName, runId, filePath, artifactKey, options) => { - try { - new UploadArtifactCommand(program).execute(experimentName, runId, filePath, artifactKey, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('upload-artifact <experimentName> <runId> <filePath> <artifactKey>') + .description('Upload artifact for run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) + .action(withCompatibilityCheck((experimentName, runId, filePath, artifactKey, options) => { + try { + new UploadArtifactCommand(program).execute(experimentName, runId, filePath, artifactKey, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index 6296a410..3a4183c7 100644 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -1,36 +1,23 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import { Command } from 'commander'; +import esMain from 'es-main'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +function create() { + const program = new Command(); -const chalk = require('chalk'); -const { program } = require('commander'); - -program.name('cortex generate'); -program.description('Scaffolding Cortex Components [DEPRECATED]'); - -program - .command('skill [skillName] [type]') - .description('Generates the structure and top level build script for a skill in current directory') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .action(() => { // deliberately not using withCompatibilityCheck() - console.error(chalk.red('Generate command has been superceded by the Workspaces command.')); - }); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program.name('cortex generate'); + program.description('Scaffolding Cortex Components [DEPRECATED]'); + program + .command('skill [skillName] [type]') + .description('Generates the structure and top level build script for a skill in current directory') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .action(() => { + console.error(chalk.red('Generate command has been superceded by the Workspaces command.')); + }); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index ab82ead3..cf5c4112 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -1,156 +1,132 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import fs from 'node:fs'; +import { Command } from 'commander'; +import { parseObject, printError } from '../src/commands/utils.js'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + ListMissionsCommand, DeployMissionCommand, DescribeMissionCommand, UndeployMissionCommand, +} from '../src/commands/campaigns.js'; +import { InvokeAgentServiceCommand } from '../src/commands/agents.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +export function create() { + const program = new Command(); -const chalk = require('chalk'); -const fs = require('fs'); -const { program } = require('commander'); -const { parseObject, printError } = require('../src/commands/utils'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - ListMissionsCommand, - DeployMissionCommand, - DescribeMissionCommand, - UndeployMissionCommand, -} = require('../src/commands/campaigns'); - -const { InvokeAgentServiceCommand } = require('../src/commands/agents'); - -program.name('cortex missions'); -program.description('Work with Cortex Missions'); - -program - .command('list <campaignName>') - .alias('l') - .description('List Missions of the Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((campaignName, options) => { - try { - new ListMissionsCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('describe <campaignName> <missionName>') - .alias('get') - .description('Describe the selected Missions of the Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { - new DescribeMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('deploy <campaignName> <missionName>') - .description('Deploy the selected Missions of the Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { - new DeployMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('invoke <campaignName> <missionName>') - .description('Invoke the mission') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--params <params>', 'JSON params to send to the action') - .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { - let params = {}; - if (options.params) { - try { - params = parseObject(options.params, options); - } catch (e) { - printError(`Failed to parse params: ${options.params} Error: ${e}`, options); - } - } else if (options.paramsFile) { - const paramsStr = fs.readFileSync(options.paramsFile); - params = parseObject(paramsStr, options); + program.name('cortex missions'); + program.description('Work with Cortex Missions'); + program + .command('list <campaignName>') + .alias('l') + .description('List Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ListMissionsCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('describe <campaignName> <missionName>') + .alias('get') + .description('Describe the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new DescribeMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); } - if (params.payload) { - // apply validations - if (!params.payload.campaign_name || !params.payload.mission_name || !params.payload.profile_schema) { - printError('payload must contain campaign_name, mission_name and profile_schema'); - throw new Error('Payload must contain campaign_name, mission_name and profile_schema'); + })); + program + .command('deploy <campaignName> <missionName>') + .description('Deploy the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new DeployMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('invoke <campaignName> <missionName>') + .description('Invoke the mission') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--params <params>', 'JSON params to send to the action') + .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + let params = {}; + if (options.params) { + try { + params = parseObject(options.params, options); + } catch (e) { + printError(`Failed to parse params: ${options.params} Error: ${e}`, options); + } + } else if (options.paramsFile) { + const paramsStr = fs.readFileSync(options.paramsFile); + params = parseObject(paramsStr, options); } - // batch size can't be empty, can't be negative - if (!params.payload.batch_size || params.payload.batch_size <= 0) { - printError(`batch_size cannot be "${params.payload.batch_size}"`); - throw new Error('Inappropriate Batch Size passed in params'); + if (params.payload) { + // apply validations + if (!params.payload.campaign_name || !params.payload.mission_name || !params.payload.profile_schema) { + printError('payload must contain campaign_name, mission_name and profile_schema'); + throw new Error('Payload must contain campaign_name, mission_name and profile_schema'); + } + // batch size can't be empty, can't be negative + if (!params.payload.batch_size || params.payload.batch_size <= 0) { + printError(`batch_size cannot be "${params.payload.batch_size}"`); + throw new Error('Inappropriate Batch Size passed in params'); + } + } else { + printError('payload cannot be empty'); + throw new Error('Empty payload received in params'); } - } else { - printError('payload cannot be empty'); - throw new Error('Empty payload received in params'); + new InvokeAgentServiceCommand(program).execute(`${missionName}-online-learner-agent`, 'online_learner_service', options); + } catch (err) { + console.error(chalk.red(err.message)); } - new InvokeAgentServiceCommand(program).execute(`${missionName}-online-learner-agent`, 'online_learner_service', options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('undeploy <campaignName> <missionName>') - .description('Undeploy the selected Missions of the Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { - new UndeployMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + })); + program + .command('undeploy <campaignName> <missionName>') + .description('Undeploy the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new UndeployMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index e81e548c..39763778 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -1,180 +1,151 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DeleteModelCommand, SaveModelCommand, DescribeModelCommand, ListModelsCommand, UpdateModelStatusCommand, ListModelRunsCommand, +} from '../src/commands/models.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - DeleteModelCommand, - SaveModelCommand, - DescribeModelCommand, - ListModelsCommand, - // RegisterModelCommand, - UpdateModelStatusCommand, - ListModelRunsCommand, -} = require('../src/commands/models'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex models'); -program.description('Work with Cortex Models'); +export function create() { + const program = new Command(); + program.name('cortex models'); + program.description('Work with Cortex Models'); // List Models -program - .command('list') - .description('List model definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--tags <tags>', 'The tags to use (comma separated values)') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListModelsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List model definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--tags <tags>', 'The tags to use (comma separated values)') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListModelsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Model -program - .command('describe <modelName>') - .description('Describe model') - .alias('get') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((modelName, options) => { - try { - new DescribeModelCommand(program).execute(modelName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <modelName>') + .description('Describe model') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((modelName, options) => { + try { + new DescribeModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Model -program - .command('delete <modelName>') - .description('Delete a model') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((modelName, options) => { - try { - new DeleteModelCommand(program).execute(modelName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <modelName>') + .description('Delete a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((modelName, options) => { + try { + new DeleteModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Model -program - .command('save <modelDefinition>') - .description('Save a model definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for model definition format') - .action(withCompatibilityCheck((modelDefinition, options) => { - try { - new SaveModelCommand(program).execute(modelDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <modelDefinition>') + .description('Save a model definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .action(withCompatibilityCheck((modelDefinition, options) => { + try { + new SaveModelCommand(program).execute(modelDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Publish a Model -program - .command('publish <modelName>') - .description('Publish a model') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for model definition format') - .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .action(withCompatibilityCheck((modelName, options) => { - try { - new UpdateModelStatusCommand(program).execute(modelName, options, 'publish'); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('publish <modelName>') + .description('Publish a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .action(withCompatibilityCheck((modelName, options) => { + try { + new UpdateModelStatusCommand(program).execute(modelName, options, 'publish'); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Unpublish a Model -program - .command('unpublish <modelName>') - .description('Unpublish a model') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for model definition format') - .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .action(withCompatibilityCheck((modelName, options) => { - try { - new UpdateModelStatusCommand(program).execute(modelName, options, 'unpublish'); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('unpublish <modelName>') + .description('Unpublish a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .action(withCompatibilityCheck((modelName, options) => { + try { + new UpdateModelStatusCommand(program).execute(modelName, options, 'unpublish'); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List model runs -program - .command('list-runs <modelName>') - .description('List model run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((modelName, options) => { - try { - new ListModelRunsCommand(program).execute(modelName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('list-runs <modelName>') + .description('List model run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((modelName, options) => { + try { + new ListModelRunsCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 61c6e3da..2d69dc8e 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -1,118 +1,96 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + CreateProjectCommand, ListProjectsCommand, DescribeProjectCommand, DeleteProjectCommand, +} from '../src/commands/projects.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - CreateProjectCommand, - ListProjectsCommand, - DescribeProjectCommand, - DeleteProjectCommand, -} = require('../src/commands/projects'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex projects'); -program.description('Work with Cortex Projects'); +export function create() { + const program = new Command(); + program.name('cortex projects'); + program.description('Work with Cortex Projects'); // Create Project -program - .command('save [projectDefinition]') - .description('Save a project definition') - .storeOptionsAsProperties(false) - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('-n, --name <string>', 'The project name') - .option('-t, --title <string>', 'The project title') - .option('-d, --description <string>', 'The project description') - .option('-y, --yaml', 'Use YAML for project definition format') - .action(withCompatibilityCheck((projectDefinition, options) => { - try { - new CreateProjectCommand(program).execute(projectDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save [projectDefinition]') + .description('Save a project definition') + .storeOptionsAsProperties(false) + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('-n, --name <string>', 'The project name') + .option('-t, --title <string>', 'The project title') + .option('-d, --description <string>', 'The project description') + .option('-y, --yaml', 'Use YAML for project definition format') + .action(withCompatibilityCheck((projectDefinition, options) => { + try { + return new CreateProjectCommand(program).execute(projectDefinition, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // List Projects -program - .command('list') - .description('List project definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListProjectsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List project definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + return new ListProjectsCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Get|Describe Project -program - .command('describe <projectName>') - .alias('get') - .description('Describe project') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((projectName, options) => { - try { - new DescribeProjectCommand(program).execute(projectName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - - // Delete Project -program - .command('delete <projectName>') - .alias('d') - .description('Delete project') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((projectName, options) => { - try { - new DeleteProjectCommand(program).execute(projectName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('describe <projectName>') + .alias('get') + .description('Describe project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((projectName, options) => { + try { + return new DescribeProjectCommand(program).execute(projectName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); +// Delete Project + program + .command('delete <projectName>') + .alias('d') + .description('Delete project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((projectName, options) => { + try { + return new DeleteProjectCommand(program).execute(projectName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 95d7280a..db859389 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -1,215 +1,196 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { nonEmptyStringParser } = require('../src/parsers'); - -const { +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { nonEmptyStringParser } from '../src/parsers.js'; +import { ExternalGroupAssignCommand, ExternalGroupDeleteCommand, ExternalGroupDescribeCommand, ExternalGroupListCommand, - RoleProjectAssignCommand, RoleAssignCommand, RoleCreateCommand, RoleDeleteCommand, - RoleGrantCommand, RoleDescribeCommand, + RoleGrantCommand, RoleListCommand, -} = require('../src/commands/roles'); -const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); - -program.name('cortex roles'); -program.description('Work with Cortex Roles'); - -program.command('list') - .description('List roles by project and user') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'Project to list roles for') - .action(withCompatibilityCheck((options) => { - try { - new RoleListCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('describe <role>') - .alias('get') - .description('Describe role grants and users') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--users', 'List users associated with role') - .option('--no-grants', 'Ignore grants associated with role') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleDescribeCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('delete <role>') - .description('Delete a role and remove grants/assignments') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleDeleteCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('create <role>') - .description('Create a role with the given grant') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--project <project>', 'Grant project') - .requiredOption('--resource <resource>', 'Grant resource') - .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') - .option('--deny', 'Explicit deny of action(s)') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleCreateCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('grant <role>') - .description('Manage grants on an existing role') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--project <project>', 'Grant project') - .requiredOption('--resource <resource>', 'Grant resource') - .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') - .option('--delete', 'Remove grant from role') - .option('--deny', 'Explicit deny of action(s)') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleGrantCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('assign <role>') - .description('Manage a list of user assignments on a role') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--users <users...>', 'Users to add/remove to/from a role', nonEmptyStringParser({ message: 'user names must not be empty', variadic: true })) - .option('--delete', 'Unassign users from role') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleAssignCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('project <project>') - .description('Manage a list of role assignments on a project') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--roles <roles...>', 'Roles to add/remove on project') - .option('--delete', 'Unassign roles from project') - .action(withCompatibilityCheck((project, options) => { - try { - new RoleProjectAssignCommand(program).execute(project, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('list-external') - .description('List external groups') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((options) => { - try { - new ExternalGroupListCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('describe-external <externalGroup>') - .alias('get-external') - .description('Describe external group roles and users') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--users', 'List users associated with external group') - .option('--roles', 'List roles associated with external group') - .action(withCompatibilityCheck((externalGroup, options) => { - try { - new ExternalGroupDescribeCommand(program).execute(externalGroup, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); + RoleProjectAssignCommand, +} from '../src/commands/roles.js'; +import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; -program.command('delete-external <externalGroup>') - .description('Delete an external group and remove assignments') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((externalGroup, options) => { - try { - new ExternalGroupDeleteCommand(program).execute(externalGroup, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); +export function create() { + const program = new Command(); -program.command('assign-external') - .description('Manage an external group assignment on a role') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--role <role>', 'Role to add/remove assignment') - .requiredOption('--externalGroup <externalGroup>', 'External group to add/remove on role') - .option('--delete', 'Unassign external group from role') - .action(withCompatibilityCheck((options) => { - try { - new ExternalGroupAssignCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program.name('cortex roles'); + program.description('Work with Cortex Roles'); + program.command('list') + .description('List roles by project and user') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'Project to list roles for') + .action(withCompatibilityCheck((options) => { + try { + return new RoleListCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('describe <role>') + .alias('get') + .description('Describe role grants and users') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--users', 'List users associated with role') + .option('--no-grants', 'Ignore grants associated with role') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleDescribeCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('delete <role>') + .description('Delete a role and remove grants/assignments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleDeleteCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('create <role>') + .description('Create a role with the given grant') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--project <project>', 'Grant project') + .requiredOption('--resource <resource>', 'Grant resource') + .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') + .option('--deny', 'Explicit deny of action(s)') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleCreateCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('grant <role>') + .description('Manage grants on an existing role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--project <project>', 'Grant project') + .requiredOption('--resource <resource>', 'Grant resource') + .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') + .option('--delete', 'Remove grant from role') + .option('--deny', 'Explicit deny of action(s)') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleGrantCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('assign <role>') + .description('Manage a list of user assignments on a role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--users <users...>', 'Users to add/remove to/from a role', nonEmptyStringParser({ + message: 'user names must not be empty', + variadic: true, + })) + .option('--delete', 'Unassign users from role') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleAssignCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('project <project>') + .description('Manage a list of role assignments on a project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--roles <roles...>', 'Roles to add/remove on project') + .option('--delete', 'Unassign roles from project') + .action(withCompatibilityCheck((project, options) => { + try { + return new RoleProjectAssignCommand(program).execute(project, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('list-external') + .description('List external groups') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((options) => { + try { + return new ExternalGroupListCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('describe-external <externalGroup>') + .alias('get-external') + .description('Describe external group roles and users') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--users', 'List users associated with external group') + .option('--roles', 'List roles associated with external group') + .action(withCompatibilityCheck((externalGroup, options) => { + try { + return new ExternalGroupDescribeCommand(program).execute(externalGroup, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('delete-external <externalGroup>') + .description('Delete an external group and remove assignments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((externalGroup, options) => { + try { + return new ExternalGroupDeleteCommand(program).execute(externalGroup, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('assign-external') + .description('Manage an external group assignment on a role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--role <role>', 'Role to add/remove assignment') + .requiredOption('--externalGroup <externalGroup>', 'External group to add/remove on role') + .option('--delete', 'Unassign external group from role') + .action(withCompatibilityCheck((options) => { + try { + return new ExternalGroupAssignCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 2eb49c04..bb6b9571 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -1,109 +1,89 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + ListSecretsCommand, ReadSecretsCommand, WriteSecretsCommand, DeleteSecretCommand, +} from '../src/commands/secrets.js'; +import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListSecretsCommand, - ReadSecretsCommand, - WriteSecretsCommand, - DeleteSecretCommand, -} = require('../src/commands/secrets'); -const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); - -program.name('cortex secrets'); -program.description('Work with Cortex Secrets'); +export function create() { + const program = new Command(); + program.name('cortex secrets'); + program.description('Work with Cortex Secrets'); // List Secure Keys -program - .command('list') - .description('List secure keys') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((options) => { - try { - new ListSecretsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List secure keys') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((options) => { + try { + return new ListSecretsCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Read Secure Value -program - .command('describe <keyName>') - .alias('get') - .description('Retrieve the value stored for the given key.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json', 'Output results using JSON') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((keyName, options) => { - try { - new ReadSecretsCommand(program).execute(keyName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <keyName>') + .alias('get') + .description('Retrieve the value stored for the given key.') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json', 'Output results using JSON') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((keyName, options) => { + try { + return new ReadSecretsCommand(program).execute(keyName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Write Secure Value -program - .command('save <keyName> [value]') - .description('Save or overwrite a secure value. By default values are stored as strings but can also be saved as JSON or YAML.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--data <data>', 'JSON value to save') - .option('--data-file <dataFile>', 'A file containing either JSON or YAML formatted value to save') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((keyName, value, options) => { - try { - new WriteSecretsCommand(program).execute(keyName, value, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <keyName> [value]') + .description('Save or overwrite a secure value. By default values are stored as strings but can also be saved as JSON or YAML.') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--data <data>', 'JSON value to save') + .option('--data-file <dataFile>', 'A file containing either JSON or YAML formatted value to save') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((keyName, value, options) => { + try { + return new WriteSecretsCommand(program).execute(keyName, value, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Delete Secret -program - .command('delete <keyName>') - .description('Delete a secret') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((keyName, options) => { - try { - new DeleteSecretCommand(program).execute(keyName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('delete <keyName>') + .description('Delete a secret') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((keyName, options) => { + try { + return new DeleteSecretCommand(program).execute(keyName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index 3898bc87..32bf2830 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -1,115 +1,90 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DeleteSessionCommand, SaveSessionCommand, DescribeSessionCommand, ListSessionsCommand, +} from '../src/commands/sessions.js'; +import { DEFAULT_LIST_LIMIT_COUNT, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - DeleteSessionCommand, - SaveSessionCommand, - DescribeSessionCommand, - ListSessionsCommand, -} = require('../src/commands/sessions'); -const { - DEFAULT_LIST_LIMIT_COUNT, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex sessions'); -program.description('Work with Cortex Sessions'); +export function create() { + const program = new Command(); + program.name('cortex sessions'); + program.description('Work with Cortex Sessions'); // List Sessions -program - .command('list') - .description('List session definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--limit <limit>', 'Number of sessions to list', DEFAULT_LIST_LIMIT_COUNT) - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((options) => { - try { - new ListSessionsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List session definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--limit <limit>', 'Number of sessions to list', DEFAULT_LIST_LIMIT_COUNT) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((options) => { + try { + new ListSessionsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Session -program - .command('describe <sessionId>') - .description('Describe session') - .alias('get') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((sessionName, options) => { - try { - new DescribeSessionCommand(program).execute(sessionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <sessionId>') + .description('Describe session') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((sessionName, options) => { + try { + new DescribeSessionCommand(program).execute(sessionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Session -program - .command('delete <sessionId>') - .description('Delete a session') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((sessionName, options) => { - try { - new DeleteSessionCommand(program).execute(sessionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <sessionId>') + .description('Delete a session') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((sessionName, options) => { + try { + new DeleteSessionCommand(program).execute(sessionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Session -program - .command('save <sessionDefinition>') - .description('Save a session definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for session definition format') - .action(withCompatibilityCheck((sessionDefinition, options) => { - try { - new SaveSessionCommand(program).execute(sessionDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('save <sessionDefinition>') + .description('Save a session definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for session definition format') + .action(withCompatibilityCheck((sessionDefinition, options) => { + try { + new SaveSessionCommand(program).execute(sessionDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index aff83760..83e213f6 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -1,197 +1,177 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - SaveSkillCommand, - ListSkillsCommand, +} from '../src/constants.js'; +import { + DeleteSkillCommand, + DeploySkillCommand, DescribeSkillCommand, InvokeSkillCommand, - DeploySkillCommand, - UndeploySkillCommand, + ListSkillsCommand, + SaveSkillCommand, SkillLogsCommand, - DeleteSkillCommand, -} = require('../src/commands/skills'); - -program.name('cortex skills'); -program.description('Work with Cortex Skills'); + UndeploySkillCommand, +} from '../src/commands/skills.js'; +export function create() { + const program = new Command(); + program.name('cortex skills'); + program.description('Work with Cortex Skills'); // Deploy Skill -program - .command('deploy <skillNames...>') - .description('Deploy the skill resource to the cluster') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillNames, options) => { - try { - await new DeploySkillCommand(program).execute(skillNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('deploy <skillNames...>') + .description('Deploy the skill resource to the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (skillNames, options) => { + try { + await new DeploySkillCommand(program).execute(skillNames, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Skill -program - .command('describe <skillName>') - .alias('get') - .description('Describe skill') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resource') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck(async (skillName, options) => { - try { - await new DescribeSkillCommand(program).execute(skillName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <skillName>') + .alias('get') + .description('Describe skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resource') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck(async (skillName, options) => { + try { + await new DescribeSkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Invoke Skill -program - .command('invoke <skillName> <inputName>') - .description('Invoke a skill') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--params <params>', 'JSON params to send to the action') - .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') - .option('--sync', 'Invoke the skill synchronously') - .action(withCompatibilityCheck(async (skillName, inputName, options) => { - try { - await new InvokeSkillCommand(program).execute(skillName, inputName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('invoke <skillName> <inputName>') + .description('Invoke a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--params <params>', 'JSON params to send to the action') + .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') + .option('--sync', 'Invoke the skill synchronously') + .action(withCompatibilityCheck(async (skillName, inputName, options) => { + try { + await new InvokeSkillCommand(program).execute(skillName, inputName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Skills -program - .command('list') - .description('List skill definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--nostatus', 'skip extra call for skill status') - .option('--noshared', 'do not list shared skills') - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - - .action(withCompatibilityCheck(async (options) => { - try { - await new ListSkillsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List skill definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--nostatus', 'skip extra call for skill status') + .option('--noshared', 'do not list shared skills') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck(async (options) => { + try { + await new ListSkillsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Skill -program - .command('delete <skillName>') - .description('Delete a skill') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json', 'Output results using JSON') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillName, options) => { - try { - await new DeleteSkillCommand(program).execute(skillName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <skillName>') + .description('Delete a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json', 'Output results using JSON') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (skillName, options) => { + try { + await new DeleteSkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Skill -program - .command('save <skillDefinitions...>') - .description('Save a skill definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill') - .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') - .option('-y, --yaml', 'Use YAML for skill definition format') - .option('--scaleCount <count>', 'Scale count, only used for daemon action types') - .action(withCompatibilityCheck(async (skillDefinitions, options) => { - try { - await new SaveSkillCommand(program).execute(skillDefinitions, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <skillDefinitions...>') + .description('Save a skill definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill') + // eslint-disable-next-line max-len + .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('-y, --yaml', 'Use YAML for skill definition format') + .option('--scaleCount <count>', 'Scale count, only used for daemon action types') + .action(withCompatibilityCheck(async (skillDefinitions, options) => { + try { + await new SaveSkillCommand(program).execute(skillDefinitions, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Undeploy Skill -program - .command('undeploy <skillNames...>') - .description('Undeploy the skill resource from the cluster') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillNames, options) => { - try { - await new UndeploySkillCommand(program).execute(skillNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('undeploy <skillNames...>') + .description('Undeploy the skill resource from the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (skillNames, options) => { + try { + return await new UndeploySkillCommand(program).execute(skillNames, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Get Skill/action logs -program - .command('logs <skillName> <actionName>') - .description('Get logs of a skill and action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - // TODO enable when we want to support tasks - - // .option('--type [type]', 'The type of action logs to fetch [skill|task]') - .action(withCompatibilityCheck(async (skillName, actionName, options) => { - try { - await new SkillLogsCommand(program).execute(skillName, actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('logs <skillName> <actionName>') + .description('Get logs of a skill and action') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + // TODO enable when we want to support tasks + // .option('--type [type]', 'The type of action logs to fetch [skill|task]') + .action(withCompatibilityCheck(async (skillName, actionName, options) => { + try { + return await new SkillLogsCommand(program).execute(skillName, actionName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index ed743dfe..646b8ea2 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -1,154 +1,123 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListTasksCommand, - DescribeTaskCommand, - TaskLogsCommand, - TaskDeleteCommand, - TaskPauseCommand, - TaskResumeCommand, -} = require('../src/commands/tasks'); -const { - DEFAULT_LIST_LIMIT_COUNT, - DEFAULT_LIST_SKIP_COUNT, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, - DEFAULT_LIST_SORT_PARAMS, - GET_DEFAULT_SORT_CLI_OPTION, -} = require('../src/constants'); - -program.name('cortex tasks'); -program.description('Work with Cortex Tasks'); +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + ListTasksCommand, DescribeTaskCommand, TaskLogsCommand, TaskDeleteCommand, TaskPauseCommand, TaskResumeCommand, +} from '../src/commands/tasks.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SKIP_COUNT, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, +} from '../src/constants.js'; +export function create() { + const program = new Command(); + program.name('cortex tasks'); + program.description('Work with Cortex Tasks'); // List tasks -program - .command('list') - .description('List tasks') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--actionName <string>', 'Filter tasks by action name') - .option('--activationId <string>', 'filter tasks by activation id') - .option('--skillName <string>', 'Filter tasks by skill name') - .option('--scheduled', 'Show scheduled tasks only') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - // This is a client-side sort - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <asc|desc|<mongo-style-sort-expr>', 'Ascending, descending or Mongo style sort statement.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.startTime)) - .action(withCompatibilityCheck(async (options) => { - try { - await new ListTasksCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('describe <taskName>') - .alias('get') - .description('Describe a task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--k8s', 'Return the full k8sResource in the response') - // .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') - .action(withCompatibilityCheck((taskName, options) => { - try { - new DescribeTaskCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List tasks') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--actionName <string>', 'Filter tasks by action name') + .option('--activationId <string>', 'filter tasks by activation id') + .option('--skillName <string>', 'Filter tasks by skill name') + .option('--scheduled', 'Show scheduled tasks only') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + // This is a client-side sort + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <asc|desc|<mongo-style-sort-expr>', 'Ascending, descending or Mongo style sort statement.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.startTime)) + .action(withCompatibilityCheck(async (options) => { + try { + await new ListTasksCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('describe <taskName>') + .alias('get') + .description('Describe a task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--k8s', 'Return the full k8sResource in the response') + // .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') + .action(withCompatibilityCheck((taskName, options) => { + try { + new DescribeTaskCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Get task logs -program - .command('logs <taskName>') - .description('Get logs of a task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - // TODO enable when we want to support tasks - // .option('--type [type]', 'The type of action logs to fetch [skill|task]') - .action(withCompatibilityCheck((taskName, options) => { - try { - new TaskLogsCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('logs <taskName>') + .description('Get logs of a task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + // TODO enable when we want to support tasks + // .option('--type [type]', 'The type of action logs to fetch [skill|task]') + .action(withCompatibilityCheck((taskName, options) => { + try { + new TaskLogsCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete a task -program - .command('delete <taskName...>') - .description('Delete a task, if it exists') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (taskName, options) => { - try { - await new TaskDeleteCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <taskName...>') + .description('Delete a task, if it exists') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (taskName, options) => { + try { + await new TaskDeleteCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Pause a task -program - .command('pauseSchedule <taskNames...>') - .description('Pause scheduling for a scheduled task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (taskName, options) => { - try { - await new TaskPauseCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('pauseSchedule <taskNames...>') + .description('Pause scheduling for a scheduled task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (taskName, options) => { + try { + await new TaskPauseCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Resume a task -program - .command('resumeSchedule <taskNames...>') - .description('Resume paused schedule for a scheduled task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (taskName, options) => { - try { - await new TaskResumeCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('resumeSchedule <taskNames...>') + .description('Resume paused schedule for a scheduled task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (taskName, options) => { + try { + await new TaskResumeCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; } - -module.exports = program; +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); +} +export default create(); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 52ec7b07..85591ea0 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -1,116 +1,93 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - SaveTypeCommand, - ListTypesCommand, - DescribeTypeCommand, - DeleteTypeCommand, -} = require('../src/commands/types'); - -program.name('cortex types'); -program.description('Work with Cortex Types'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + SaveTypeCommand, ListTypesCommand, DescribeTypeCommand, DeleteTypeCommand, +} from '../src/commands/types.js'; +export function create() { + const program = new Command(); + program.name('cortex types'); + program.description('Work with Cortex Types'); // Save Type -program - .command('save <typeDefinition>') - .description('Save a type definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for type definition format') - .action(withCompatibilityCheck((typeDefinition, options) => { - try { - new SaveTypeCommand(program).execute(typeDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <typeDefinition>') + .description('Save a type definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for type definition format') + .action(withCompatibilityCheck(async (typeDefinition, options) => { + try { + await new SaveTypeCommand(program).execute(typeDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Types -program - .command('list') - .description('List type definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListTypesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List type definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck(async (options) => { + try { + await new ListTypesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Type -program - .command('describe <typeName>') - .alias('get') - .description('Describe type') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((typeName, options) => { - try { - new DescribeTypeCommand(program).execute(typeName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - program - .command('delete <typeName>') - .description('Delete a type') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json', 'Output results using JSON') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (typeName, options) => { - try { - await new DeleteTypeCommand(program).execute(typeName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + .command('describe <typeName>') + .alias('get') + .description('Describe type') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck(async (typeName, options) => { + try { + await new DescribeTypeCommand(program).execute(typeName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('delete <typeName>') + .description('Delete a type') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json', 'Output results using JSON') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (typeName, options) => { + try { + await new DeleteTypeCommand(program).execute(typeName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 70826b2b..c0994cbe 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -1,130 +1,106 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, UserCreateCommand, UserListCommand, UserDeleteCommand, +} from '../src/commands/users.js'; +import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const chalk = require('chalk'); -const { program } = require('commander'); +export function create() { + const program = new Command(); -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - UserProjectAssignCommand, - UserDescribeCommand, - UserGrantCommand, - UserCreateCommand, - UserListCommand, - UserDeleteCommand, -} = require('../src/commands/users'); -const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); - -program.name('cortex users'); -program.description('Work with Cortex User'); - -program.command('describe') - .alias('get') - .description('Describe a users grants and roles') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--user <user>', 'The user to describe, self for default') - .option('--roles', 'Include grant inheritance from roles') - .action(withCompatibilityCheck((options) => { - try { - new UserDescribeCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('grant <user>') - .description('Manage user grants') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .requiredOption('--project <project>', 'Grant project') - .requiredOption('--resource <resource>', 'Grant resource') - .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') - .option('--profile <profile>', 'The profile to use') - .option('--delete', 'Remove grant from user') - .option('--deny', 'Explicit deny of action(s)') - .action(withCompatibilityCheck((user, options) => { - try { - new UserGrantCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('project <project>') - .description('Manage a list of user assignments on a project') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--users <users...>', 'Users to add/remove on project') - .option('--delete', 'Unassign users from project') - .action(withCompatibilityCheck((project, options) => { - try { - new UserProjectAssignCommand(program).execute(project, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('delete <user>') - .description('Deletes a service user and disables any existing tokens created by the user') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((user, options) => { - try { - new UserDeleteCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('create <user>') - .description('Creates a service user (with no assigned roles/grants) that can authenticate with and call Fabric API\'s') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((user, options) => { - try { - new UserCreateCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('list') - .description('Lists all service users created within Cortex') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((options) => { - try { - new UserListCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program.name('cortex users'); + program.description('Work with Cortex User'); + program.command('describe') + .alias('get') + .description('Describe a users grants and roles') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--user <user>', 'The user to describe, self for default') + .option('--roles', 'Include grant inheritance from roles') + .action(withCompatibilityCheck((options) => { + try { + new UserDescribeCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('grant <user>') + .description('Manage user grants') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .requiredOption('--project <project>', 'Grant project') + .requiredOption('--resource <resource>', 'Grant resource') + .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') + .option('--profile <profile>', 'The profile to use') + .option('--delete', 'Remove grant from user') + .option('--deny', 'Explicit deny of action(s)') + .action(withCompatibilityCheck((user, options) => { + try { + new UserGrantCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('project <project>') + .description('Manage a list of user assignments on a project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--users <users...>', 'Users to add/remove on project') + .option('--delete', 'Unassign users from project') + .action(withCompatibilityCheck((project, options) => { + try { + new UserProjectAssignCommand(program).execute(project, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('delete <user>') + .description('Deletes a service user and disables any existing tokens created by the user') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((user, options) => { + try { + new UserDeleteCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('create <user>') + .description('Creates a service user (with no assigned roles/grants) that can authenticate with and call Fabric API\'s') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((user, options) => { + try { + new UserCreateCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('list') + .description('Lists all service users created within Cortex') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((options) => { + try { + new UserListCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 76197a89..f032ac52 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -1,155 +1,129 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +import { Command } from 'commander'; +import process from 'node:process'; +import esMain from 'es-main'; +import WorkspaceConfigureCommand from '../src/commands/workspaces/configure.js'; +import WorkspaceGenerateCommand from '../src/commands/workspaces/generate.js'; +import WorkspaceBuildCommand from '../src/commands/workspaces/build.js'; +import WorkspacePublishCommand from '../src/commands/workspaces/publish.js'; +import { + WorkspaceAddRegistryCommand, WorkspaceRemoveRegistryCommand, WorkspaceActivateRegistryCommand, WorkspaceListRegistryCommand, +} from '../src/commands/workspaces/registry.js'; +import { printError } from '../src/commands/utils.js'; -const chalk = require('chalk'); -const { program } = require('commander'); - -const { WorkspaceConfigureCommand } = require('../src/commands/workspaces/configure'); -const { WorkspaceGenerateCommand } = require('../src/commands/workspaces/generate'); -const { WorkspaceBuildCommand } = require('../src/commands/workspaces/build'); -const { WorkspacePublishCommand } = require('../src/commands/workspaces/publish'); -const { - WorkspaceAddRegistryCommand, - WorkspaceRemoveRegistryCommand, - WorkspaceActivateRegistryCommand, - WorkspaceListRegistryCommand, -} = require('../src/commands/workspaces/registry'); - -program.name('cortex workspaces'); -program.description('Scaffolding Cortex Components'); - -program - .command('configure') - .option('--refresh', 'Refresh the Github access token') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .description('Configures the Cortex Template System for generating skill templates') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceConfigureCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); +export function create() { + const program = new Command(); + program.name('cortex workspaces'); + program.description('Scaffolding Cortex Components'); program - .command('generate [name] [destination]') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .option('--notree [boolean]', 'Do not display generated file tree', 'false') - .option('--template <templateName>', 'Name of template to use') - .description('Generates a workspace based on a template from the template repository') - .action((name, destination, options) => { // deliberately not using withCompatibilityCheck() - try { - return new WorkspaceGenerateCommand(program).execute(name, destination, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - return Promise.reject(); - }); - + .command('configure') + .option('--refresh', 'Refresh the Github access token') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .description('Configures the Cortex Template System for generating skill templates') + .action((options) => { + try { + return new WorkspaceConfigureCommand(program).execute(options); + } catch (err) { + return printError(err.message); + } + }); program - .command('build [folder]') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .option('--skill <skill name>', 'Build only the specified skill') - .description('Builds all skills in the workspace, or optionally only the specified skill') - .action((folder, options) => { // deliberately not using withCompatibilityCheck() - try { - return new WorkspaceBuildCommand(program).execute(folder, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - return Promise.reject(); - }); - + .command('generate [name] [destination]') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--notree [boolean]', 'Do not display generated file tree', 'false') + .option('--template <templateName>', 'Name of template to use') + .description('Generates a workspace based on a template from the template repository') + .action((name, destination, options) => { + try { + return new WorkspaceGenerateCommand(program).execute(name, destination, options); + } catch (err) { + return printError(err.message); + } + }); program - .command('publish [folder]') - .option('--profile <profile>', 'The profile to use') - .option('--project <project name>', 'Publish to the specified project') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .option('--skip-push', 'Don\'t push images to docker registry') - .option('--skill <skill name>', 'Publish only the specified skill') - .description('Publishes all skills and resources in the workspace') - .action((folder, options) => { // deliberately not using withCompatibilityCheck() - try { - return new WorkspacePublishCommand(program).execute(folder, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - return Promise.reject(); - }); - + .command('build [folder]') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--skill <skill name>', 'Build only the specified skill') + .description('Builds all skills in the workspace, or optionally only the specified skill') + .action((folder, options) => { + try { + return new WorkspaceBuildCommand(program).execute(folder, options); + } catch (err) { + return printError(err.message); + } + }); + program + .command('publish [folder]') + .option('--profile <profile>', 'The profile to use') + .option('--project <project name>', 'Publish to the specified project') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--skip-push', 'Don\'t push images to docker registry') + .option('--skill <skill name>', 'Publish only the specified skill') + .description('Publishes all skills and resources in the workspace') + .action((folder, options) => { + try { + return new WorkspacePublishCommand(program).execute(folder, options); + } catch (err) { + return printError(err.message); + } + }); const registry = program - .command('registry') - .description('Manage image repositories.'); - + .command('registry') + .description('Manage image repositories.'); registry - .command('add [name]') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .option('--url <registry url>', 'Registry URL') - .option('--namespace <registry namespace>', 'Registry Namespace') - .description('Adds an image registry to publish to.') - .action((name, options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceAddRegistryCommand(program).execute(name, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - + .command('add [name]') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--url <registry url>', 'Registry URL') + .option('--namespace <registry namespace>', 'Registry Namespace') + .description('Adds an image registry to publish to.') + .action((name, options) => { + try { + return new WorkspaceAddRegistryCommand(program).execute(name, options); + } catch (err) { + return printError(err.message); + } + }); registry - .command('remove [name]') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .description('Removes the specified image registry.') - .action((name, options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceRemoveRegistryCommand(program).execute(name, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - + .command('remove [name]') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .description('Removes the specified image registry.') + .action((name, options) => { + try { + return new WorkspaceRemoveRegistryCommand(program).execute(name, options); + } catch (err) { + return printError(err.message); + } + }); registry - .command('activate [name]') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .description('Activates the specified image registry.') - .action((name, options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceActivateRegistryCommand(program).execute(name, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - + .command('activate [name]') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .description('Activates the specified image registry.') + .action((name, options) => { + try { + return new WorkspaceActivateRegistryCommand(program).execute(name, options); + } catch (err) { + return printError(err.message); + } + }); registry - .command('list') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .description('Lists all image registries') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceListRegistryCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + .command('list') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .description('Lists all image registries') + .action((options) => { + try { + return new WorkspaceListRegistryCommand(program).execute(options); + } catch (err) { + return printError(err.message); + } + }); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex.js b/bin/cortex.js index 2b5bf462..35789f8e 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -1,54 +1,44 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import { Command } from 'commander'; +import esMain from 'es-main'; +import info from '../package.json' assert { type: 'json' }; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const findPackageJson = require('find-package-json'); -const { program } = require('commander'); - -const pkg = findPackageJson(__dirname).next().value; -program.name('cortex'); -program - .version(pkg.version, '-v, --version') - .description('Cortex CLI') - .option('--debug', 'Enables enhanced log output for debugging', false) - .on('option:debug', () => { process.env.DEBUG = '*'; }) - .command('actions <cmd>', 'Work with Cortex Actions') - .command('agents <cmd>', 'Work with Cortex Agents') - .command('assessments <cmd>', 'Work with Cortex Impact Assessments') - .command('campaigns <cmd>', 'Work with Cortex Campaigns') - .command('configure', 'Configure the Cortex CLI') - .command('connections <cmd>', 'Work with Cortex Connections') - .command('content <cmd>', 'Work with Cortex Managed Content') - .command('deploy <cmd>', 'Work with Cortex Artifacts export for deployment') - .command('docker <cmd>', 'Work with Docker') - .command('experiments <cmd>', 'Work with Cortex Experiments') - .command('generate <cmd>', 'Scaffold Cortex Components') - .command('workspaces <cmd>', 'Scaffold Cortex Components') - .command('missions <cmd>', 'Work with Cortex Missions') - .command('models <cmd>', 'Work with Cortex Models') - .command('projects <cmd>', 'Work with Cortex Projects') - .command('roles <cmd>', 'Work with a Cortex Roles') - .command('secrets <cmd>', 'Work with Cortex Secrets') - .command('sessions <cmd>', 'Work with Cortex Sessions') - .command('skills <cmd>', 'Work with Cortex Skills') - .command('tasks <cmd>', 'Work with Cortex Tasks') - .command('types <cmd>', 'Work with Cortex Types') - .command('users <cmd>', 'Work with a Cortex Users'); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); +export function create() { + const program = new Command(); + program.name('cortex'); + program + .version(info?.version, '-v, --version') + .description('Cortex CLI') + .option('--debug', 'Enables enhanced log output for debugging', false) + .on('option:debug', () => { + process.env.DEBUG = '*'; + }) + .command('actions <cmd>', 'Work with Cortex Actions') + .command('agents <cmd>', 'Work with Cortex Agents') + .command('assessments <cmd>', 'Work with Cortex Impact Assessments') + .command('campaigns <cmd>', 'Work with Cortex Campaigns') + .command('configure', 'Configure the Cortex CLI') + .command('connections <cmd>', 'Work with Cortex Connections') + .command('content <cmd>', 'Work with Cortex Managed Content') + .command('deploy <cmd>', 'Work with Cortex Artifacts export for deployment') + .command('docker <cmd>', 'Work with Docker') + .command('experiments <cmd>', 'Work with Cortex Experiments') + .command('generate <cmd>', 'Scaffold Cortex Components') + .command('workspaces <cmd>', 'Scaffold Cortex Components') + .command('missions <cmd>', 'Work with Cortex Missions') + .command('models <cmd>', 'Work with Cortex Models') + .command('projects <cmd>', 'Work with Cortex Projects') + .command('roles <cmd>', 'Work with a Cortex Roles') + .command('secrets <cmd>', 'Work with Cortex Secrets') + .command('sessions <cmd>', 'Work with Cortex Sessions') + .command('skills <cmd>', 'Work with Cortex Skills') + .command('tasks <cmd>', 'Work with Cortex Tasks') + .command('types <cmd>', 'Work with Cortex Types') + .command('users <cmd>', 'Work with a Cortex Users'); + return program; +} +if (esMain(import.meta)) { + // module was not imported but called directly + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/build.sh b/build.sh index 8a09ab77..281402a4 100755 --- a/build.sh +++ b/build.sh @@ -53,7 +53,7 @@ function docker_build(){ # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi npm pack . - # TODO Should we cache this distros ? + # TODO Should we cache these distros ? export PKG_CACHE_PATH=/tmp/pkg-cache npm run build-binaries mv cortex-cli-*.tgz cortex-cli.tgz diff --git a/client/index.js b/client/index.js index 86ded809..6d5c9702 100644 --- a/client/index.js +++ b/client/index.js @@ -1,11 +1,23 @@ -exports.Info = require('../src/client/info'); -exports.Users = require('../src/client/users'); -exports.Catalog = require('../src/client/catalog'); -exports.Agents = require('../src/client/agents'); -exports.Connections = require('../src/client/connections'); -exports.Content = require('../src/client/content'); -exports.Experiments = require('../src/client/experiments'); -exports.Models = require('../src/client/models'); -exports.Secrets = require('../src/client/secrets'); -exports.Sessions = require('../src/client/sessions'); -exports.AmpServer = require('../src/client/apiServerClient'); +import info from '../src/client/info.js'; +import users from '../src/client/users.js'; +import catalog from '../src/client/catalog.js'; +import agents from '../src/client/agents.js'; +import connections from '../src/client/connections.js'; +import content from '../src/client/content.js'; +import experiments from '../src/client/experiments.js'; +import models from '../src/client/models.js'; +import secrets from '../src/client/secrets.js'; +import sessions from '../src/client/sessions.js'; +import apiServerClient from '../src/client/apiServerClient.js'; + +export { info as Info }; +export { users as Users }; +export { catalog as Catalog }; +export { agents as Agents }; +export { connections as Connections }; +export { content as Content }; +export { experiments as Experiments }; +export { models as Models }; +export { secrets as Secrets }; +export { sessions as Sessions }; +export { apiServerClient as AmpServer }; diff --git a/generate_docs.js b/generate_docs.js index bf799ffe..5e88daa8 100644 --- a/generate_docs.js +++ b/generate_docs.js @@ -1,7 +1,9 @@ /** * Opted to use pure JS versus adding handlebars as a dep, as handlebars always has vulns.. */ -const _ = require('lodash'); +import process from 'node:process'; +import _ from 'lodash'; +import esMain from 'es-main'; function docObject(program) { return program.commands.map((c) => ({ @@ -46,11 +48,14 @@ ${cmd.name()} ${cmd.usage()} ${cmd.description()} `; -function markdownForCmd(program) { +export default function markdownForCmd(program) { const docObj = docObject(program); return `${cmdHeading(program)}\n${subcmdTable(docObj)}`; } +if (esMain(import.meta)) { + const { default: program } = await import(process.argv[2]); + console.log(markdownForCmd(program)); +} + // eslint-disable-next-line import/no-dynamic-require -const cmd = require(process.argv[2]); -console.log(markdownForCmd(cmd)); diff --git a/package-lock.json b/package-lock.json index 3546e437..05a948eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,70 +1,72 @@ { "name": "cortex-cli", - "version": "2.1.2", + "version": "2.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.1.2", + "version": "2.2.0", "license": "Apache-2.0", "dependencies": { + "@supercharge/promise-pool": "2.4.0", "boolean": "3.2.0", - "chalk": "4.1.2", - "cli-progress": "3.11.2", - "cli-table3": "0.6.2", - "commander": "9.4.0", - "dayjs": "1.11.5", + "chalk": "5.2.0", + "cli-progress": "3.12.0", + "cli-table3": "0.6.3", + "commander": "10.0.0", + "dayjs": "1.11.7", "debug": "4.3.4", "dockerode": "3.3.4", - "find-package-json": "1.2.0", + "es-main": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", - "gh-got": "9.0.0", - "glob": "8.0.3", - "got": "11.8.5", - "graphql": "15.6.1", - "graphql-request": "3.7.0", - "inquirer": "8.2.4", + "gh-got": "10.0.0", + "glob": "9.2.1", + "got": "12.6.0", + "graphql": "16.6.0", + "graphql-request": "5.2.0", + "inquirer": "9.1.4", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.6.2", - "jose-node-cjs-runtime": "4.10.0", + "joi": "17.8.3", + "jose": "4.13.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "3.1.2", - "npm-registry-fetch": "12.0.0", - "open": "8.4.0", + "minimatch": "7.4.2", + "npm-registry-fetch": "14.0.3", + "open": "8.4.2", "prompts": "2.4.2", - "semver": "7.3.7", + "semver": "7.3.8", "treeify": "1.1.0", - "url-join": "4.0.1", + "url-join": "5.0.0", "url-parse": "1.5.10", - "uuid": "8.3.2", + "uuid": "9.0.0", "yauzl": "2.10.0" }, "bin": { "cortex": "bin/cortex.js" }, "devDependencies": { - "audit-ci": "6.3.0", - "chai": "4.3.6", + "@babel/eslint-parser": "7.19.1", + "@babel/plugin-syntax-import-assertions": "7.20.0", + "audit-ci": "6.6.1", + "c8": "7.13.0", + "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.22.0", + "eslint": "8.35.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.26.0", - "husky": "7.0.4", + "eslint-plugin-import": "2.27.5", + "husky": "8.0.3", "is-ci": "3.0.1", - "mocha": "9.2.2", + "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.2.9", - "nyc": "15.1.0", - "pkg": "5.8.0", - "rewire": "6.0.0", - "sinon": "11.1.2" + "nock": "13.3.0", + "pkg": "5.8.1", + "sinon": "15.0.1" }, "engines": { "node": ">=16.0.0" @@ -75,6 +77,7 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -88,6 +91,7 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, + "peer": true, "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -100,6 +104,7 @@ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -109,6 +114,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -135,6 +141,43 @@ } }, "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "dev": true, + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", @@ -148,6 +191,7 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -162,6 +206,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, + "peer": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -176,6 +221,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, + "peer": true, "dependencies": { "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", @@ -195,6 +241,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "peer": true, "dependencies": { "yallist": "^3.0.2" } @@ -204,6 +251,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -212,13 +260,15 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -228,6 +278,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, + "peer": true, "dependencies": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" @@ -241,6 +292,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -253,6 +305,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -265,6 +318,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, + "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -279,11 +333,21 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-simple-access": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.20.2" }, @@ -296,6 +360,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, + "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -326,6 +391,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -335,6 +401,7 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", "dev": true, + "peer": true, "dependencies": { "@babel/template": "^7.20.7", "@babel/traverse": "^7.20.7", @@ -349,6 +416,7 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, + "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -363,6 +431,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -375,6 +444,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -389,6 +459,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "peer": true, "dependencies": { "color-name": "1.1.3" } @@ -397,13 +468,15 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "peer": true, "engines": { "node": ">=0.8.0" } @@ -413,6 +486,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -422,6 +496,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -434,6 +509,7 @@ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", "dev": true, + "peer": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -441,11 +517,27 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/template": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", @@ -460,6 +552,7 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.7", @@ -481,6 +574,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -490,6 +584,7 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, + "peer": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -504,6 +599,12 @@ "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -514,9 +615,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", + "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -536,10 +637,34 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", + "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", + "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } }, "node_modules/@hapi/hoek": { "version": "9.3.0", @@ -555,133 +680,49 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" + "node": ">=12.22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", @@ -697,6 +738,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, + "peer": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -739,6 +781,37 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -775,25 +848,14 @@ } }, "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", "dependencies": { - "@gar/promisify": "^1.0.1", "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@sideway/address": { @@ -815,41 +877,41 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/is?sponsor=1" } }, "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^2.0.0" } }, "node_modules/@sinonjs/samsam": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", - "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.6.0", + "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } @@ -860,34 +922,31 @@ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, + "node_modules/@supercharge/promise-pool": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz", + "integrity": "sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w==", + "engines": { + "node": ">=8" + } + }, "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dependencies": { - "defer-to-connect": "^2.0.0" + "defer-to-connect": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=14.16" } }, "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" + "node": ">= 10" } }, "node_modules/@types/http-cache-semantics": { @@ -895,43 +954,22 @@ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1011,25 +1049,25 @@ } }, "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", + "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", "dependencies": { - "type-fest": "^0.21.3" + "type-fest": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.0.tgz", + "integrity": "sha512-RqTRtKTzvPpNdDUp1dVkKQRunlPITk4mXeqFlAZoJsS+fLRn8AdPK0TcQDumGayhU7fjlBfiBjsq3pe3rIfXZQ==", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1047,6 +1085,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -1070,92 +1109,49 @@ "node": ">= 8" } }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "dependencies": { - "default-require-extensions": "^3.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=8" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -1164,19 +1160,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { + "node_modules/array.prototype.flatmap": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -1208,15 +1195,6 @@ "node": "*" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1232,9 +1210,9 @@ } }, "node_modules/audit-ci": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.3.0.tgz", - "integrity": "sha512-rVCn4J7SUMQw2A21E3PPLzMz70A5RqWIx5BzvuU0iKeEGuuC6vGE00eeo4mFEnr439WdvI9i2lCXnmgABqLSeQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.6.1.tgz", + "integrity": "sha512-zqZEoYfEC4QwX5yBkDNa0h7YhZC63HWtKtP19BVq+RS0dxRBInfmHogxe4VUeOzoADQjuTLZUI7zp3Pjyl+a5g==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", @@ -1336,6 +1314,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1374,6 +1353,7 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001400", "electron-to-chromium": "^1.4.251", @@ -1428,109 +1408,176 @@ } }, "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dependencies": { + "semver": "^7.0.0" + } }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "node_modules/c8": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", + "integrity": "sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==", + "dev": true, "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/c8/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/c8/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/c8/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", + "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^8.0.1", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", + "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" }, "engines": { - "node": ">= 10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/cacache/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", "engines": { - "node": ">=10.6.0" + "node": ">=12" } }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "node_modules/cacache/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, + "node_modules/cacache/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.8", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.8.tgz", + "integrity": "sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A==", "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" } }, "node_modules/call-bind": { @@ -1555,15 +1602,6 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001442", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", @@ -1578,17 +1616,18 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - ] + ], + "peer": true }, "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -1611,15 +1650,11 @@ } }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" @@ -1719,20 +1754,23 @@ } }, "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-progress": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz", - "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", "dependencies": { "string-width": "^4.2.3" }, @@ -1752,9 +1790,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dependencies": { "string-width": "^4.2.0" }, @@ -1766,11 +1804,11 @@ } }, "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", + "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/cliui": { @@ -1795,30 +1833,11 @@ "node": ">=0.8" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1829,7 +1848,8 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/combined-stream": { "version": "1.0.8", @@ -1843,23 +1863,18 @@ } }, "node_modules/commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=14" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/confusing-browser-globals": { "version": "1.0.11", @@ -1867,12 +1882,6 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", @@ -1940,9 +1949,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -1960,15 +1969,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -1995,15 +1995,15 @@ } }, "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "dependencies": { "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.12" + "node": ">=6" } }, "node_modules/deep-extend": { @@ -2020,21 +2020,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -2086,12 +2071,6 @@ "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -2174,11 +2153,17 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/electron-to-chromium": { "version": "1.4.284", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -2214,18 +2199,6 @@ "once": "^1.4.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", @@ -2277,6 +2250,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-main": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.2.0.tgz", + "integrity": "sha512-A4tCSY43O/mH4rHjG1n0mI4DhK2BmKDr8Lk8PXK/GBB6zxGFGmIW4bbkbTQ2Gi9iNamMZ9vbGrwjZOIeiM7vMw==" + }, "node_modules/es-set-tostringtag": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", @@ -2317,12 +2295,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -2345,14 +2317,16 @@ } }, "node_modules/eslint": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", - "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", + "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@eslint/eslintrc": "^2.0.0", + "@eslint/js": "8.35.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -2362,21 +2336,21 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.3", - "esquery": "^1.4.0", + "espree": "^9.4.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -2387,8 +2361,7 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" @@ -2429,13 +2402,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "dependencies": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -2474,23 +2448,25 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "engines": { @@ -2501,12 +2477,12 @@ } }, "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { @@ -2521,11 +2497,26 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, "node_modules/eslint-scope": { "version": "7.1.1", @@ -2576,6 +2567,34 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/espree": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", @@ -2593,23 +2612,10 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -2759,25 +2765,40 @@ } }, "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dependencies": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" }, "engines": { - "node": ">=8" + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "engines": { - "node": ">=0.8.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/file-entry-cache": { @@ -2804,28 +2825,6 @@ "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-package-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2905,6 +2904,14 @@ "node": ">= 6" } }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "engines": { + "node": ">= 14.17" + } + }, "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -2957,26 +2964,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -2998,14 +2985,22 @@ } }, "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", + "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", "dependencies": { - "minipass": "^3.0.0" + "minipass": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" } }, "node_modules/fs.realpath": { @@ -3051,12 +3046,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -3066,74 +3055,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -3170,15 +3097,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -3207,14 +3125,14 @@ } }, "node_modules/gh-got": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-9.0.0.tgz", - "integrity": "sha512-RH5n6CDdb6AozElmiKwFhmO/1FmhWWVhfQAVv+JtU8jtPK12JLErce/VQFsFwZ9dTa01SfD7WXb/1iyZp/5XKg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-10.0.0.tgz", + "integrity": "sha512-ac0AmNAmdJt/PSCQEqG+qoKPZCmHP00kMWNjV1ve9nQpuQoyku7uyIACtYVtvTsCV+BLibfPo/LTvPOYBnV5sQ==", "dependencies": { - "got": "^10.5.7" + "got": "^12.5.2" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" @@ -3226,18 +3144,17 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", + "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", "dependencies": { "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3255,23 +3172,12 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "node_modules/glob/node_modules/minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/global-dirs": { @@ -3289,9 +3195,9 @@ } }, "node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3351,24 +3257,24 @@ } }, "node_modules/got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", + "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=10.19.0" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" @@ -3387,19 +3293,20 @@ "dev": true }, "node_modules/graphql": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", - "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==", + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", "engines": { - "node": ">= 10.x" + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, "node_modules/graphql-request": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", - "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.2.0.tgz", + "integrity": "sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ==", "dependencies": { - "cross-fetch": "^3.0.6", + "@graphql-typed-document-node/core": "^3.1.1", + "cross-fetch": "^3.1.5", "extract-files": "^9.0.0", "form-data": "^3.0.0" }, @@ -3420,15 +3327,6 @@ "node": ">= 6" } }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3454,6 +3352,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3509,37 +3408,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/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, - "engines": { - "node": ">=8" - } - }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -3550,14 +3418,22 @@ } }, "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", "dependencies": { - "lru-cache": "^6.0.0" + "lru-cache": "^7.5.1" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "engines": { + "node": ">=12" } }, "node_modules/html-escaper": { @@ -3572,11 +3448,11 @@ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dependencies": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, @@ -3585,12 +3461,12 @@ } }, "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", "dependencies": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" }, "engines": { "node": ">=10.19.0" @@ -3617,15 +3493,15 @@ } }, "node_modules/husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, "bin": { "husky": "lib/bin.js" }, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/typicode" @@ -3702,11 +3578,6 @@ "node": ">=8" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3730,42 +3601,115 @@ } }, "node_modules/inquirer": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", - "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", + "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "dependencies": { + "ansi-escapes": "^6.0.0", + "chalk": "^5.1.2", + "cli-cursor": "^4.0.0", + "cli-width": "^4.0.0", "external-editor": "^3.0.3", - "figures": "^3.0.0", + "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", - "ora": "^5.4.1", + "ora": "^6.1.2", "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", + "rxjs": "^7.5.7", + "string-width": "^5.1.2", + "strip-ansi": "^7.0.1", "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^8.0.1" }, "engines": { "node": ">=12.0.0" } }, - "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { - "node": ">= 0.4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/internal-slot": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/into-stream": { @@ -3953,11 +3897,14 @@ } }, "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-lambda": { @@ -4046,18 +3993,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -4107,16 +4042,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, "engines": { "node": ">=10" }, @@ -4136,15 +4066,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -4177,71 +4098,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -4256,20 +4112,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/istanbul-reports": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", @@ -4313,30 +4155,41 @@ } }, "node_modules/joi": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", - "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", + "version": "17.8.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", + "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/jose-node-cjs-runtime": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.10.0.tgz", - "integrity": "sha512-Hh3xUCq+7+khSI85Xj82diw2fAx67ItFOu/tW6v83pQYqTR30g3GNytyHJ2HKUAHpcNTAK5IQ/yfJ8sHPPG7PQ==", + "node_modules/jose": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz", + "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==", "funding": { "url": "https://github.com/sponsors/panva" } }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/js-yaml": { "version": "4.1.0", @@ -4389,6 +4242,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -4506,12 +4360,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -4524,16 +4372,11 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -4545,6 +4388,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/loupe": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", @@ -4555,11 +4414,14 @@ } }, "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lru-cache": { @@ -4598,29 +4460,44 @@ } }, "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", + "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", + "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" }, "engines": { - "node": ">= 10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" } }, "node_modules/map-stream": { @@ -4679,22 +4556,36 @@ } }, "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", + "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/minimist": { @@ -4728,19 +4619,27 @@ } }, "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", + "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", "dependencies": { - "minipass": "^3.1.0", + "minipass": "^4.0.0", "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "minizlib": "^2.1.2" }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "optionalDependencies": { - "encoding": "^0.1.12" + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" } }, "node_modules/minipass-flush": { @@ -4814,42 +4713,39 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "dependencies": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.2.0", - "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", + "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 14.0.0" }, "funding": { "type": "opencollective", @@ -4867,29 +4763,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/mocha/node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -4923,17 +4796,26 @@ } }, "node_modules/mocha/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" } }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5046,9 +4928,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -5089,28 +4971,10 @@ "path-to-regexp": "^1.7.0" } }, - "node_modules/nise/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/nise/node_modules/@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^2.0.0" - } - }, "node_modules/nock": { - "version": "13.2.9", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", - "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", + "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -5157,23 +5021,12 @@ } } }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/node-releases": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", - "dev": true + "dev": true, + "peer": true }, "node_modules/normalize-path": { "version": "3.0.0", @@ -5185,275 +5038,55 @@ } }, "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-registry-fetch": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", - "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", + "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", + "make-fetch-happen": "^11.0.0", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minizlib": "^2.1.2", + "npm-package-arg": "^10.0.0", + "proc-log": "^3.0.0" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, + "node_modules/npm-registry-fetch/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -5544,9 +5177,9 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -5577,27 +5210,111 @@ } }, "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", + "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", + "dependencies": { + "bl": "^5.0.0", + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "strip-ansi": "^7.0.1", "wcwidth": "^1.0.1" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ora/node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/ora/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -5607,11 +5324,11 @@ } }, "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "engines": { - "node": ">=8" + "node": ">=12.20" } }, "node_modules/p-is-promise": { @@ -5667,30 +5384,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -5716,6 +5409,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5735,6 +5429,37 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", + "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "dependencies": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/path-to-regexp": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", @@ -5780,7 +5505,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -5795,14 +5521,14 @@ } }, "node_modules/pkg": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.0.tgz", - "integrity": "sha512-8h9PUDYFi+LOMLbIyGRdP21g08mAtHidSpofSrf8LWhxUWGHymaRzcopEGiynB5EhQmZUKM6PQ9kCImV2TpdjQ==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", + "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", "dev": true, "dependencies": { "@babel/generator": "7.18.2", "@babel/parser": "7.18.4", - "@babel/types": "7.18.4", + "@babel/types": "7.19.0", "chalk": "^4.1.2", "fs-extra": "^9.1.0", "globby": "^11.1.0", @@ -5811,7 +5537,7 @@ "minimist": "^1.2.6", "multistream": "^4.1.0", "pkg-fetch": "3.4.2", - "prebuild-install": "6.1.4", + "prebuild-install": "7.1.1", "resolve": "^1.22.0", "stream-meter": "^1.0.4" }, @@ -5827,70 +5553,6 @@ } } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/pkg-fetch": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", @@ -5910,6 +5572,22 @@ "pkg-fetch": "lib-es5/bin.js" } }, + "node_modules/pkg-fetch/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/pkg-fetch/node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -5984,12 +5662,13 @@ } }, "node_modules/pkg/node_modules/@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" }, "engines": { @@ -6010,108 +5689,32 @@ "node": ">=6.0.0" } }, - "node_modules/pkg/node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dev": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pkg/node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "node_modules/pkg/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "has": "^1.0.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/pkg/node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg/node_modules/node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "dev": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/pkg/node_modules/prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "dev": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/pkg/node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "node_modules/pkg/node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/prebuild-install": { @@ -6148,24 +5751,20 @@ "node": ">= 0.8.0" } }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -6223,9 +5822,9 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -6372,18 +5971,6 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6393,21 +5980,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -6445,26 +6017,32 @@ } }, "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dependencies": { - "lowercase-keys": "^2.0.0" + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/retry": { @@ -6485,252 +6063,11 @@ "node": ">=0.10.0" } }, - "node_modules/rewire": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", - "dev": true, - "dependencies": { - "eslint": "^7.32.0" - } - }, - "node_modules/rewire/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/rewire/node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/rewire/node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/rewire/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/rewire/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/rewire/node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/rewire/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/rewire/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/rewire/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/rewire/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/rewire/node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/rewire/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/rewire/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/rewire/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rewire/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -6745,6 +6082,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6760,6 +6098,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -6838,9 +6188,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6860,12 +6210,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6950,16 +6294,16 @@ } }, "node_modules/sinon": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", + "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/samsam": "^6.0.2", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "10.0.2", + "@sinonjs/samsam": "^7.0.1", "diff": "^5.0.0", - "nise": "^5.1.0", + "nise": "^5.1.2", "supports-color": "^7.2.0" }, "funding": { @@ -6981,23 +6325,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -7016,47 +6343,21 @@ "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0", + "npm": ">= 3.0.0" } }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" }, "engines": { - "node": ">=8" + "node": ">= 10" } }, "node_modules/split": { @@ -7076,12 +6377,6 @@ "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, "node_modules/ssh2": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", @@ -7100,14 +6395,22 @@ } }, "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", + "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", "dependencies": { - "minipass": "^3.1.1" + "minipass": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ssri/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" } }, "node_modules/stream-combiner": { @@ -7225,15 +6528,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -7250,6 +6544,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7269,44 +6564,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/tar": { "version": "6.1.13", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", @@ -7354,10 +6611,21 @@ "node": ">=6" } }, - "node_modules/tar/node_modules/minipass": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", - "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { "yallist": "^4.0.0" }, @@ -7365,6 +6633,14 @@ "node": ">=8" } }, + "node_modules/tar/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -7399,6 +6675,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -7567,15 +6855,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -7592,19 +6871,25 @@ } }, "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dependencies": { - "unique-slug": "^2.0.0" + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dependencies": { "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/universalify": { @@ -7631,6 +6916,7 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "peer": true, "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -7652,9 +6938,12 @@ } }, "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", + "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } }, "node_modules/url-parse": { "version": "1.5.10", @@ -7671,25 +6960,36 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "bin": { "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } }, "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", "dependencies": { - "builtins": "^1.0.3" + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/wcwidth": { @@ -7745,12 +7045,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, "node_modules/which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -7771,15 +7065,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -7790,15 +7075,16 @@ } }, "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7816,18 +7102,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -7945,6 +7219,7 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, + "peer": true, "requires": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -7955,6 +7230,7 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, + "peer": true, "requires": { "@babel/highlight": "^7.18.6" } @@ -7963,13 +7239,15 @@ "version": "7.20.10", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", - "dev": true + "dev": true, + "peer": true }, "@babel/core": { "version": "7.20.12", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, + "peer": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -7988,6 +7266,32 @@ "semver": "^6.3.0" }, "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "peer": true + } + } + }, + "@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "dev": true, + "requires": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -8001,6 +7305,7 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, + "peer": true, "requires": { "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -8012,6 +7317,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, + "peer": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -8025,6 +7331,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, + "peer": true, "requires": { "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", @@ -8038,6 +7345,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "peer": true, "requires": { "yallist": "^3.0.2" } @@ -8046,13 +7354,15 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "dev": true, + "peer": true }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "peer": true } } }, @@ -8060,13 +7370,15 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true + "dev": true, + "peer": true }, "@babel/helper-function-name": { "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, + "peer": true, "requires": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" @@ -8077,6 +7389,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, + "peer": true, "requires": { "@babel/types": "^7.18.6" } @@ -8086,6 +7399,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, + "peer": true, "requires": { "@babel/types": "^7.18.6" } @@ -8095,6 +7409,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, + "peer": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -8106,11 +7421,18 @@ "@babel/types": "^7.20.7" } }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, "@babel/helper-simple-access": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, + "peer": true, "requires": { "@babel/types": "^7.20.2" } @@ -8120,6 +7442,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, + "peer": true, "requires": { "@babel/types": "^7.18.6" } @@ -8140,13 +7463,15 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true + "dev": true, + "peer": true }, "@babel/helpers": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", "dev": true, + "peer": true, "requires": { "@babel/template": "^7.20.7", "@babel/traverse": "^7.20.7", @@ -8158,6 +7483,7 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, + "peer": true, "requires": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -8169,6 +7495,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "peer": true, "requires": { "color-convert": "^1.9.0" } @@ -8178,6 +7505,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "peer": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -8189,6 +7517,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "peer": true, "requires": { "color-name": "1.1.3" } @@ -8197,25 +7526,29 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "peer": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true + "dev": true, + "peer": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true + "dev": true, + "peer": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "peer": true, "requires": { "has-flag": "^3.0.0" } @@ -8226,13 +7559,24 @@ "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", - "dev": true + "dev": true, + "peer": true + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } }, "@babel/template": { "version": "7.20.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, + "peer": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", @@ -8244,6 +7588,7 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", "dev": true, + "peer": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.7", @@ -8261,7 +7606,8 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "dev": true, + "peer": true } } }, @@ -8270,6 +7616,7 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, + "peer": true, "requires": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -8281,6 +7628,12 @@ "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -8288,9 +7641,9 @@ "optional": true }, "@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", + "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -8302,12 +7655,30 @@ "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + "@eslint/js": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", + "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "dev": true + }, + "@graphql-typed-document-node/core": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", + "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", + "requires": {} }, "@hapi/hoek": { "version": "9.3.0", @@ -8323,20 +7694,31 @@ } }, "@humanwhocodes/config-array": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, - "@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true }, "@humanwhocodes/object-schema": { @@ -8345,83 +7727,6 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "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", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "find-up": { - "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": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "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": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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": { - "p-limit": "^2.2.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -8433,6 +7738,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, + "peer": true, "requires": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -8466,6 +7772,33 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "requires": { + "eslint-scope": "5.1.1" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -8493,23 +7826,13 @@ } }, "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", "requires": { - "@gar/promisify": "^1.0.1", "semver": "^7.3.5" } }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, "@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -8529,35 +7852,35 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==" }, "@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^2.0.0" } }, "@sinonjs/samsam": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", - "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", "dev": true, "requires": { - "@sinonjs/commons": "^1.6.0", + "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } @@ -8568,72 +7891,45 @@ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, + "@supercharge/promise-pool": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz", + "integrity": "sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w==" + }, "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "requires": { - "defer-to-connect": "^2.0.0" + "defer-to-connect": "^2.0.1" } }, "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "requires": { - "@types/node": "*" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-jsx": { @@ -8689,17 +7985,17 @@ "dev": true }, "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", + "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", "requires": { - "type-fest": "^0.21.3" + "type-fest": "^3.0.0" }, "dependencies": { "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.0.tgz", + "integrity": "sha512-RqTRtKTzvPpNdDUp1dVkKQRunlPITk4mXeqFlAZoJsS+fLRn8AdPK0TcQDumGayhU7fjlBfiBjsq3pe3rIfXZQ==" } } }, @@ -8712,6 +8008,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -8726,75 +8023,6 @@ "picomatch": "^2.0.4" } }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -8831,6 +8059,18 @@ "es-shim-unscopables": "^1.0.0" } }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, "asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -8845,12 +8085,6 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -8863,9 +8097,9 @@ "dev": true }, "audit-ci": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.3.0.tgz", - "integrity": "sha512-rVCn4J7SUMQw2A21E3PPLzMz70A5RqWIx5BzvuU0iKeEGuuC6vGE00eeo4mFEnr439WdvI9i2lCXnmgABqLSeQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.6.1.tgz", + "integrity": "sha512-zqZEoYfEC4QwX5yBkDNa0h7YhZC63HWtKtP19BVq+RS0dxRBInfmHogxe4VUeOzoADQjuTLZUI7zp3Pjyl+a5g==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -8932,6 +8166,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8957,6 +8192,7 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, + "peer": true, "requires": { "caniuse-lite": "^1.0.30001400", "electron-to-chromium": "^1.4.251", @@ -8985,89 +8221,144 @@ "optional": true }, "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "requires": { + "semver": "^7.0.0" + } }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "c8": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", + "integrity": "sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==", + "dev": true, "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "cacache": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", + "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^8.0.1", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", + "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" }, "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==" + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" } + }, + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" } } }, "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==" }, "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, + "version": "10.2.8", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.8.tgz", + "integrity": "sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A==", "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" } }, "call-bind": { @@ -9086,27 +8377,22 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "caniuse-lite": { "version": "1.0.30001442", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", - "dev": true + "dev": true, + "peer": true }, "chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -9123,13 +8409,9 @@ } }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==" }, "chardet": { "version": "0.7.0", @@ -9192,17 +8474,17 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "requires": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^4.0.0" } }, "cli-progress": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz", - "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", "requires": { "string-width": "^4.2.3" } @@ -9213,18 +8495,18 @@ "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" }, "cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "requires": { "@colors/colors": "1.5.0", "string-width": "^4.2.0" } }, "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", + "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==" }, "cliui": { "version": "8.0.1", @@ -9242,24 +8524,11 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" }, - "clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -9267,7 +8536,8 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "combined-stream": { "version": "1.0.8", @@ -9278,20 +8548,15 @@ } }, "commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "confusing-browser-globals": { "version": "1.0.11", @@ -9299,12 +8564,6 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, "convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", @@ -9356,9 +8615,9 @@ } }, "dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" }, "debug": { "version": "4.3.4", @@ -9368,12 +8627,6 @@ "ms": "2.1.2" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -9390,9 +8643,9 @@ } }, "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -9409,15 +8662,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, "defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -9451,12 +8695,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -9518,11 +8756,17 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "electron-to-chromium": { "version": "1.4.284", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true + "dev": true, + "peer": true }, "emoji-regex": { "version": "8.0.0", @@ -9554,16 +8798,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "once": "^1.4.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" + "once": "^1.4.0" } }, "err-code": { @@ -9611,6 +8846,11 @@ "which-typed-array": "^1.1.9" } }, + "es-main": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.2.0.tgz", + "integrity": "sha512-A4tCSY43O/mH4rHjG1n0mI4DhK2BmKDr8Lk8PXK/GBB6zxGFGmIW4bbkbTQ2Gi9iNamMZ9vbGrwjZOIeiM7vMw==" + }, "es-set-tostringtag": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", @@ -9642,12 +8882,6 @@ "is-symbol": "^1.0.2" } }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -9661,14 +8895,16 @@ "dev": true }, "eslint": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", - "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", + "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@eslint/eslintrc": "^2.0.0", + "@eslint/js": "8.35.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -9678,21 +8914,21 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.3", - "esquery": "^1.4.0", + "espree": "^9.4.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -9703,8 +8939,28 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "eslint-config-airbnb-base": { @@ -9728,13 +8984,14 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" }, "dependencies": { "debug": { @@ -9769,33 +9026,35 @@ } }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "doctrine": { @@ -9807,10 +9066,19 @@ "esutils": "^2.0.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -9859,16 +9127,10 @@ "eslint-visitor-keys": "^3.3.0" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -9990,17 +9252,23 @@ } }, "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" }, "dependencies": { "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" } } }, @@ -10022,22 +9290,6 @@ "to-regex-range": "^5.0.1" } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-package-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" - }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -10099,6 +9351,11 @@ "mime-types": "^2.1.12" } }, + "form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==" + }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -10153,12 +9410,6 @@ } } }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -10177,11 +9428,18 @@ } }, "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", + "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", "requires": { - "minipass": "^3.0.0" + "minipass": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + } } }, "fs.realpath": { @@ -10214,76 +9472,18 @@ "functions-have-names": "^1.2.2" } }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "dev": true, + "peer": true }, "get-caller-file": { "version": "2.0.5", @@ -10308,12 +9508,6 @@ "has-symbols": "^1.0.3" } }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -10330,11 +9524,11 @@ } }, "gh-got": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-9.0.0.tgz", - "integrity": "sha512-RH5n6CDdb6AozElmiKwFhmO/1FmhWWVhfQAVv+JtU8jtPK12JLErce/VQFsFwZ9dTa01SfD7WXb/1iyZp/5XKg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-10.0.0.tgz", + "integrity": "sha512-ac0AmNAmdJt/PSCQEqG+qoKPZCmHP00kMWNjV1ve9nQpuQoyku7uyIACtYVtvTsCV+BLibfPo/LTvPOYBnV5sQ==", "requires": { - "got": "11.8.5" + "got": "^12.5.2" } }, "github-from-package": { @@ -10343,32 +9537,20 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", + "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", "requires": { "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", - "requires": { - "brace-expansion": "^2.0.1" - } + "minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" } } }, @@ -10390,9 +9572,9 @@ } }, "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -10431,21 +9613,21 @@ } }, "got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", + "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" } }, "graceful-fs": { @@ -10461,16 +9643,17 @@ "dev": true }, "graphql": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", - "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" }, "graphql-request": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", - "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.2.0.tgz", + "integrity": "sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ==", "requires": { - "cross-fetch": "^3.0.6", + "@graphql-typed-document-node/core": "^3.1.1", + "cross-fetch": "^3.1.5", "extract-files": "^9.0.0", "form-data": "^3.0.0" }, @@ -10487,12 +9670,6 @@ } } }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -10511,7 +9688,8 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "has-property-descriptors": { "version": "1.0.0", @@ -10543,30 +9721,6 @@ "has-symbols": "^1.0.2" } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "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 - } - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -10574,11 +9728,18 @@ "dev": true }, "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", "requires": { - "lru-cache": "^6.0.0" + "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==" + } } }, "html-escaper": { @@ -10593,22 +9754,22 @@ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "requires": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } }, "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", "requires": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" } }, "https-proxy-agent": { @@ -10629,9 +9790,9 @@ } }, "husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true }, "iconv-lite": { @@ -10673,11 +9834,6 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -10698,25 +9854,70 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", - "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", + "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "requires": { + "ansi-escapes": "^6.0.0", + "chalk": "^5.1.2", + "cli-cursor": "^4.0.0", + "cli-width": "^4.0.0", "external-editor": "^3.0.3", - "figures": "^3.0.0", + "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", - "ora": "^5.4.1", + "ora": "^6.1.2", "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", + "rxjs": "^7.5.7", + "string-width": "^5.1.2", + "strip-ansi": "^7.0.1", "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^8.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } } }, "internal-slot": { @@ -10852,9 +10053,9 @@ } }, "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" }, "is-lambda": { "version": "1.0.1", @@ -10912,12 +10113,6 @@ "call-bind": "^1.0.2" } }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -10949,16 +10144,11 @@ "has-tostringtag": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true }, "is-weakref": { "version": "1.0.2", @@ -10969,12 +10159,6 @@ "call-bind": "^1.0.2" } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -11001,60 +10185,6 @@ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - } - } - }, "istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -11066,17 +10196,6 @@ "supports-color": "^7.1.0" } }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, "istanbul-reports": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", @@ -11108,27 +10227,34 @@ "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", - "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", + "version": "17.8.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", + "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, - "jose-node-cjs-runtime": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.10.0.tgz", - "integrity": "sha512-Hh3xUCq+7+khSI85Xj82diw2fAx67ItFOu/tW6v83pQYqTR30g3GNytyHJ2HKUAHpcNTAK5IQ/yfJ8sHPPG7PQ==" + "jose": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz", + "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==" + }, + "js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "peer": true }, "js-yaml": { "version": "4.1.0", @@ -11171,7 +10297,8 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true + "dev": true, + "peer": true }, "jsonfile": { "version": "6.1.0", @@ -11256,12 +10383,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -11274,19 +10395,26 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "loupe": { @@ -11299,9 +10427,9 @@ } }, "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" }, "lru-cache": { "version": "6.0.0", @@ -11329,26 +10457,37 @@ } }, "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", + "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", + "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==" + }, + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + } } }, "map-stream": { @@ -11392,16 +10531,26 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", + "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + } } }, "minimist": { @@ -11426,14 +10575,21 @@ } }, "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", + "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", + "encoding": "^0.1.13", + "minipass": "^4.0.0", "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "minizlib": "^2.1.2" + }, + "dependencies": { + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + } } }, "minipass-flush": { @@ -11489,32 +10645,29 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "requires": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.2.0", - "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", + "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" @@ -11531,23 +10684,6 @@ "wrap-ansi": "^7.0.0" } }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "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 - } - } - }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -11574,12 +10710,23 @@ } }, "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } } }, "ms": { @@ -11664,9 +10811,9 @@ "optional": true }, "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, "napi-build-utils": { @@ -11696,32 +10843,12 @@ "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^2.0.0" - } - } } }, "nock": { - "version": "13.2.9", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", - "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", + "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", "dev": true, "requires": { "debug": "^4.1.0", @@ -11751,20 +10878,12 @@ "whatwg-url": "^5.0.0" } }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, "node-releases": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", - "dev": true + "dev": true, + "peer": true }, "normalize-path": { "version": "3.0.0", @@ -11773,217 +10892,42 @@ "dev": true }, "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==" }, "npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", "requires": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" } }, "npm-registry-fetch": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", - "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", + "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", "requires": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", + "make-fetch-happen": "^11.0.0", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true - }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" + "minizlib": "^2.1.2", + "npm-package-arg": "^10.0.0", + "proc-log": "^3.0.0" }, "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "find-up": { - "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": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-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" - } + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" } } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, "object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -12047,9 +10991,9 @@ } }, "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "requires": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -12071,19 +11015,67 @@ } }, "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", + "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", + "requires": { + "bl": "^5.0.0", + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "strip-ansi": "^7.0.1", "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" + }, + "log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "requires": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + } } }, "os-tmpdir": { @@ -12092,9 +11084,9 @@ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" }, "p-is-promise": { "version": "3.0.0", @@ -12128,24 +11120,6 @@ "aggregate-error": "^3.0.0" } }, - "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 - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -12164,7 +11138,8 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true }, "path-key": { "version": "3.1.1", @@ -12178,6 +11153,27 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-scurry": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", + "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "requires": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + }, + "minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + } + } + }, "path-to-regexp": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", @@ -12217,7 +11213,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "peer": true }, "picomatch": { "version": "2.3.1", @@ -12226,14 +11223,14 @@ "dev": true }, "pkg": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.0.tgz", - "integrity": "sha512-8h9PUDYFi+LOMLbIyGRdP21g08mAtHidSpofSrf8LWhxUWGHymaRzcopEGiynB5EhQmZUKM6PQ9kCImV2TpdjQ==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", + "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", "dev": true, "requires": { "@babel/generator": "7.18.2", "@babel/parser": "7.18.4", - "@babel/types": "7.18.4", + "@babel/types": "7.19.0", "chalk": "^4.1.2", "fs-extra": "^9.1.0", "globby": "^11.1.0", @@ -12242,7 +11239,7 @@ "minimist": "^1.2.6", "multistream": "^4.1.0", "pkg-fetch": "3.4.2", - "prebuild-install": "6.1.4", + "prebuild-install": "7.1.1", "resolve": "^1.22.0", "stream-meter": "^1.0.4" }, @@ -12258,156 +11255,51 @@ "jsesc": "^2.5.1" } }, - "@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", - "dev": true - }, - "@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dev": true, - "requires": { - "mimic-response": "^2.0.0" - } - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true - }, - "node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "dev": true, - "requires": { - "semver": "^5.4.1" - } - }, - "prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "dev": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", "dev": true }, - "simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dev": true, - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - } - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "p-try": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "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==", + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "has": "^1.0.3" } } } @@ -12428,6 +11320,16 @@ "yargs": "^16.2.0" }, "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -12499,21 +11401,17 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -12559,9 +11457,9 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "querystringify": { @@ -12660,33 +11558,12 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -12715,17 +11592,17 @@ "dev": true }, "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "requires": { - "lowercase-keys": "^2.0.0" + "lowercase-keys": "^3.0.0" } }, "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -12742,204 +11619,11 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, - "rewire": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", - "dev": true, - "requires": { - "eslint": "^7.32.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } - } - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "requires": { "glob": "^7.1.3" }, @@ -12948,6 +11632,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12956,6 +11641,15 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } } }, @@ -13003,9 +11697,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "requires": { "lru-cache": "^6.0.0" } @@ -13019,12 +11713,6 @@ "randombytes": "^2.1.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -13072,16 +11760,16 @@ } }, "sinon": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", + "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/samsam": "^6.0.2", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "10.0.2", + "@sinonjs/samsam": "^7.0.1", "diff": "^5.0.0", - "nise": "^5.1.0", + "nise": "^5.1.2", "supports-color": "^7.2.0" } }, @@ -13096,17 +11784,6 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, "smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -13122,35 +11799,15 @@ } }, "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "requires": { "agent-base": "^6.0.2", "debug": "^4.3.3", "socks": "^2.6.2" } }, - "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 - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - } - }, "split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -13165,12 +11822,6 @@ "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, "ssh2": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", @@ -13183,11 +11834,18 @@ } }, "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", + "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", "requires": { - "minipass": "^3.1.1" + "minipass": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + } } }, "stream-combiner": { @@ -13295,12 +11953,6 @@ "ansi-regex": "^5.0.1" } }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -13311,6 +11963,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -13321,39 +11974,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, "tar": { "version": "6.1.13", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", @@ -13367,13 +11987,28 @@ "yallist": "^4.0.0" }, "dependencies": { - "minipass": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", - "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { - "yallist": "^4.0.0" + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } } + }, + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" } } }, @@ -13431,6 +12066,15 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } } }, @@ -13562,15 +12206,6 @@ "is-typed-array": "^1.1.9" } }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, "unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -13584,17 +12219,17 @@ } }, "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "requires": { - "unique-slug": "^2.0.0" + "unique-slug": "^4.0.0" } }, "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "requires": { "imurmurhash": "^0.1.4" } @@ -13610,6 +12245,7 @@ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, + "peer": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -13625,9 +12261,9 @@ } }, "url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", + "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==" }, "url-parse": { "version": "1.5.10", @@ -13644,22 +12280,27 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } }, "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", "requires": { - "builtins": "^1.0.3" + "builtins": "^5.0.0" } }, "wcwidth": { @@ -13706,12 +12347,6 @@ "is-symbol": "^1.0.3" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, "which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -13726,15 +12361,6 @@ "is-typed-array": "^1.1.10" } }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -13742,15 +12368,16 @@ "dev": true }, "workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13762,18 +12389,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index fc50f082..9056be99 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,9 @@ { "name": "cortex-cli", - "version": "2.1.2", + "version": "2.2.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", + "type": "module", "types": "./client/index.d.ts", "scripts": { "build-binaries": "pkg .", @@ -10,7 +11,7 @@ "prepack": "cp package-lock.json npm-shrinkwrap.json", "postpack": "rm npm-shrinkwrap.json", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", - "test": "cross-env NODE_ENV=test nyc mocha", + "test": "cross-env NODE_ENV=test c8 mocha", "test:workspaces": "cross-env NODE_ENV=test mocha --grep='Workspaces'", "clean": "rm -rf dist/ coverage/ .nyc_output/ node_modules/ cortex-cli.tgz cortex-cli-docs.md version.txt" }, @@ -56,67 +57,75 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { + "@supercharge/promise-pool": "2.4.0", "boolean": "3.2.0", - "chalk": "4.1.2", - "cli-progress": "3.11.2", - "cli-table3": "0.6.2", - "commander": "9.4.0", - "dayjs": "1.11.5", + "chalk": "5.2.0", + "cli-progress": "3.12.0", + "cli-table3": "0.6.3", + "commander": "10.0.0", + "dayjs": "1.11.7", "debug": "4.3.4", "dockerode": "3.3.4", - "find-package-json": "1.2.0", + "es-main": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", - "gh-got": "9.0.0", - "glob": "8.0.3", - "got": "11.8.5", - "graphql": "15.6.1", - "graphql-request": "3.7.0", - "inquirer": "8.2.4", + "gh-got": "10.0.0", + "glob": "9.2.1", + "got": "12.6.0", + "graphql": "16.6.0", + "graphql-request": "5.2.0", + "inquirer": "9.1.4", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.6.2", - "jose-node-cjs-runtime": "4.10.0", + "joi": "17.8.3", + "jose": "4.13.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "3.1.2", - "npm-registry-fetch": "12.0.0", - "open": "8.4.0", + "minimatch": "7.4.2", + "npm-registry-fetch": "14.0.3", + "open": "8.4.2", "prompts": "2.4.2", - "semver": "7.3.7", + "semver": "7.3.8", "treeify": "1.1.0", - "url-join": "4.0.1", + "url-join": "5.0.0", "url-parse": "1.5.10", - "uuid": "8.3.2", + "uuid": "9.0.0", "yauzl": "2.10.0" }, "devDependencies": { - "audit-ci": "6.3.0", - "chai": "4.3.6", + "@babel/eslint-parser": "7.19.1", + "@babel/plugin-syntax-import-assertions": "7.20.0", + "audit-ci": "6.6.1", + "c8": "7.13.0", + "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.22.0", + "eslint": "8.35.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.26.0", - "husky": "7.0.4", + "eslint-plugin-import": "2.27.5", + "husky": "8.0.3", "is-ci": "3.0.1", - "mocha": "9.2.2", + "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.2.9", - "nyc": "15.1.0", - "pkg": "5.8.0", - "rewire": "6.0.0", - "sinon": "11.1.2" + "nock": "13.3.0", + "pkg": "5.8.1", + "sinon": "15.0.1" }, - "nyc": { + "c8": { + "check-coverage": true, + "statements": 40, + "branches": 72, + "functions": 17, + "lines": 40, + "include": [ + "bin", + "src" + ], "reporter": [ "text", "html" ] - }, - "overrides": { - "got": "11.8.5" } } diff --git a/scripts/cortex b/scripts/cortex index bdd2867b..1cfd5707 100755 --- a/scripts/cortex +++ b/scripts/cortex @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. +# Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance with the License. diff --git a/src/client/actions.js b/src/client/actions.js index fd42f66b..3e79d4ac 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -1,27 +1,10 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const debug = require('debug')('cortex:cli'); -// eslint-disable-next-line import/no-unresolved -const { got, defaultHeaders } = require('./apiutils'); -const { - constructError, callMe, checkProject, -} = require('../commands/utils'); +import _ from 'lodash'; +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, callMe, checkProject } from '../commands/utils.js'; -module.exports = class Actions { +const debug = debugSetup('cortex:cli'); +export default class Actions { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/actions`; @@ -33,8 +16,7 @@ module.exports = class Actions { if (actionInst.actionType) { endpoint = `${endpoint}?actionType=${actionInst.actionType}`; } - debug('deployAction(%s, docker=%s, ttl=%s) => %s', - actionInst.name, actionInst.image, actionInst.ttl, endpoint); + debug('deployAction(%s, docker=%s, ttl=%s) => %s', actionInst.name, actionInst.image, actionInst.ttl, endpoint); const body = { ...actionInst }; // image & docker floating around fixup just in case.. if (body.docker) { @@ -46,14 +28,13 @@ module.exports = class Actions { } catch (error) { return { success: false, status: 400, message: error.message || error }; } - return got - .post(endpoint, { + .post(endpoint, { headers: defaultHeaders(token), - json: body, - }).json() - .then((res) => ({ success: true, message: res })) - .catch((err) => constructError(err)); + json: body, + }).json() + .then((res) => ({ success: true, message: res })) + .catch((err) => constructError(err)); } listActions(projectId, token, filter, limit, skip, sort) { @@ -66,9 +47,9 @@ module.exports = class Actions { if (skip) query.skip = skip; return got .get(this.endpointV4(projectId), { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((actions) => actions) .catch((err) => constructError(err)); } @@ -92,12 +73,12 @@ module.exports = class Actions { .get(endpoint, { headers: defaultHeaders(token) }) .json() .then((logs) => { - if (_.isArray(logs)) { - // returns plain array for Rancher daemons - return { success: true, logs }; - } - return logs; - }) + if (_.isArray(logs)) { + // returns plain array for Rancher daemons + return { success: true, logs }; + } + return logs; + }) .catch((err) => constructError(err)); } @@ -107,8 +88,8 @@ module.exports = class Actions { debug('deleteAction(%s) => %s', actionName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((action) => ({ success: true, action })) .catch((err) => constructError(err)); @@ -120,8 +101,8 @@ module.exports = class Actions { debug('getConfig() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((config) => ({ success: true, config })) .catch((err) => constructError(err)); @@ -162,4 +143,4 @@ module.exports = class Actions { await callMe(`docker push ${cortexImageUrl}`); return cortexImageUrl; } -}; +} diff --git a/src/client/agents.js b/src/client/agents.js index d8f2413e..0d6c5746 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); - -module.exports = class Agents { +const debug = debugSetup('cortex:cli'); +export default (class Agents { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}`; @@ -30,11 +30,11 @@ module.exports = class Agents { debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: params, - searchParams: { sync: options.sync, scheduleName: options.scheduleName, scheduleCron: options.scheduleCron }, - }).json() - .then((result) => ({ success: true, result })) + headers: defaultHeaders(token), + json: params, + searchParams: { sync: options.sync, scheduleName: options.scheduleName, scheduleCron: options.scheduleCron }, + }).json() + .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -44,10 +44,10 @@ module.exports = class Agents { debug('invokeSkill(%s, %s) => %s', skillName, inputName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: params, - searchParams: { sync }, - }).json() + headers: defaultHeaders(token), + json: params, + searchParams: { sync }, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -99,9 +99,9 @@ module.exports = class Agents { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -112,9 +112,9 @@ module.exports = class Agents { debug('describeAgentSnapshot(%s) => %s', snapshotId, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { output, deps: true }, - }).text() + headers: defaultHeaders(token), + searchParams: { output, deps: true }, + }).text() .catch((err) => constructError(err)); } @@ -124,10 +124,10 @@ module.exports = class Agents { debug('createAgentSnapshot(%s)=> %s', snapshot, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: snapshot, - }).json() + headers: defaultHeaders(token), + json: snapshot, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 06a036ba..92934816 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -1,8 +1,9 @@ -const _ = require('lodash'); -const { GraphQLClient, gql } = require('graphql-request'); -const { defaultHeaders } = require('./apiutils'); +import _ from 'lodash'; +// eslint-disable-next-line import/no-unresolved +import { GraphQLClient, gql } from 'graphql-request'; +import { defaultHeaders } from './apiutils.js'; -module.exports = class ApiServerClient { +export default (class ApiServerClient { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoint = `${cortexUrl}/fabric/v4/graphql`; @@ -34,7 +35,7 @@ module.exports = class ApiServerClient { */ async listProjects(token, filter, limit, skip, sort) { const fetched = await this._client(token) - .request(gql`{ + .request(gql`{ projects ( filter: "${filter}", limit: "${limit}", skip: "${skip}", sort: "${sort}" ) { name, title, description} } `); return _.get(fetched, 'projects', []); @@ -52,7 +53,6 @@ module.exports = class ApiServerClient { return _.get(fetched, 'createProject', {}); } - /** * Delete project using graphql * @param token @@ -116,4 +116,4 @@ module.exports = class ApiServerClient { .request(gql`{ modelByName ( project: "${projectId}", name: "${name}" ) { name, description, model_mode, source, status, title, type } }`); return _.get(fetched, 'modelByName', []); } -}; +}); diff --git a/src/client/apiutils.js b/src/client/apiutils.js index 613649f9..b6dcec4a 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -1,17 +1,15 @@ -const _ = require('lodash'); -const got = require('got'); -const debug = require('debug')('cortex:cli'); -const findPackageJson = require('find-package-json'); -const os = require('os'); - -const pkg = findPackageJson(__dirname).next().value; +import _ from 'lodash'; +// eslint-disable-next-line import/no-unresolved +import got from 'got'; +import debugSetup from 'debug'; +import os from 'os'; +import pkg from '../../package.json' assert { type: 'json' }; + +const debug = debugSetup('cortex:cli'); function getUserAgent() { return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${os.platform()})`; } - -module.exports.getUserAgent = getUserAgent; -// TODO add debug for request response -module.exports.got = got.extend({ +const gotExt = got.extend({ followRedirect: false, hooks: { beforeRequest: [ @@ -39,83 +37,8 @@ module.exports.got = got.extend({ return res; }, ], - - }, + }, }); - - -module.exports.defaultHeaders = (token, otherHeaders = {}) => ({ Authorization: `Bearer ${token}`, 'user-agent': getUserAgent(), ...otherHeaders }); - -/** - * makes a request via superagent. proxy methods will be utilized - * if the user (i.e. person running cli commands) has set environment - * variables for their proxy (this is assuming ofc they have a proxy). if - * no env variables set, the request just keeps piping through. - */ -// TODO for proxies https://github.com/gajus/global-agent -/** -function requestWrapper() { - // @tutorial: https://stackoverflow.com/questions/22156326/private-properties-in-javascript-es6-classes - // below are private variables - const proxyEnv = process.env.https_proxy || process.env.http_proxy; - const bothProxiesSet = process.env.https_proxy && process.env.http_proxy; - const bothProxiesWarning = 'Both process.env.https_proxy AND process.env.http_proxy are set as env variables. Will default to process.env.https_proxy'; - - const bypassProxy = process.env.bypass_proxy; - - this.get = function(endpoint) { - if (bypassProxy) - return superagentRequest - .get(endpoint) - .on('redirect', handleAuthError); - - bothProxiesSet && printWarning(bothProxiesWarning); - return superagentRequest - .get(endpoint) - .proxy(proxyEnv) - .on('redirect', handleAuthError) - .set('User-Agent', getUserAgent()); - }; - this.delete = function(endpoint) { - if (bypassProxy) - return superagentRequest - .delete(endpoint) - .on('redirect', handleAuthError); - - bothProxiesSet && printWarning(bothProxiesWarning); - return superagentRequest - .delete(endpoint) - .on('redirect', handleAuthError) - .proxy(proxyEnv) - .set('User-Agent', getUserAgent()); - }; - this.post = function(endpoint) { - if (bypassProxy) - return superagentRequest - .post(endpoint) - .on('redirect', handleAuthError); - - bothProxiesSet && printWarning(bothProxiesWarning); - return superagentRequest - .post(endpoint) - .on('redirect', handleAuthError) - .proxy(proxyEnv) - .set('User-Agent', getUserAgent()); - } - this.put = function(endpoint) { - if (bypassProxy) - return superagentRequest - .put(endpoint) - .on('redirect', handleAuthError); - - bothProxiesSet && printWarning(bothProxiesWarning); - return superagentRequest - .put(endpoint) - .on('redirect', handleAuthError) - .proxy(proxyEnv) - .set('User-Agent', getUserAgent()); - } -} - -module.exports.request = new requestWrapper(); -* */ +export const defaultHeaders = (token, otherHeaders = {}) => ({ Authorization: `Bearer ${token}`, 'user-agent': getUserAgent(), ...otherHeaders }); +export { getUserAgent }; +export { gotExt as got }; diff --git a/src/client/assessments.js b/src/client/assessments.js index ca86ea11..01b81fde 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -1,28 +1,13 @@ -/* - * Copyright 2021 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const querystring = require('querystring'); -const { pipeline } = require('stream'); -const { createWriteStream } = require('fs'); -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { printSuccess } = require('../commands/utils'); -const { printError } = require('../commands/utils'); -const { constructError } = require('../commands/utils'); +import querystring from 'querystring'; +import stream from 'node:stream'; +import { createWriteStream } from 'node:fs'; +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { printSuccess, printError, constructError } from '../commands/utils.js'; -module.exports = class Assessments { +const { pipeline } = stream; +const debug = debugSetup('cortex:cli'); +export default (class Assessments { constructor(cortexUrl) { this.endpointV4 = `${cortexUrl}/fabric/v4/impactassessment`; this.endpointApiV4 = `${cortexUrl}/fabric/v4/dependencies`; @@ -44,10 +29,10 @@ module.exports = class Assessments { queryResources(token, name, projectId, type, skip, limit, filter, sort) { const url = `${this.endpointV4}/resources?${querystring.stringify({ - projectId, - name, - type, - skip, + projectId, + name, + type, + skip, limit, filter, sort, @@ -75,17 +60,17 @@ module.exports = class Assessments { debug('createAssessment => %s', url); return got .post(url, { - headers: defaultHeaders(token, { 'Content-Type': 'application/json' }), - body: JSON.stringify({ - name, - title, - description, - scope, - componentName, - componentTypes, - overwrite, - }), - }).json() + headers: defaultHeaders(token, { 'Content-Type': 'application/json' }), + body: JSON.stringify({ + name, + title, + description, + scope, + componentName, + componentTypes, + overwrite, + }), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -106,8 +91,8 @@ module.exports = class Assessments { debug('getAssessment => %s', url); return got .get(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -117,8 +102,8 @@ module.exports = class Assessments { debug('deleteAssessment => %s', url); return got .delete(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -128,8 +113,8 @@ module.exports = class Assessments { debug('runAssessment => %s', url); return got .post(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -139,8 +124,8 @@ module.exports = class Assessments { debug('listAssessmentReports => %s', url); return got .get(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -150,8 +135,8 @@ module.exports = class Assessments { debug('getAssessmentReport => %s', url); return got .get(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -162,7 +147,6 @@ module.exports = class Assessments { const filter = types && types.trim() ? `?components=${types.trim()}` : ''; const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/reports/${encodeURIComponent(reportId)}/export${filter}`; debug('exportAssessmentReport => %s', url); - const rs = got.stream(url, { headers: defaultHeaders(token) }); pipeline(rs, createWriteStream(file), (e) => { if (e) { @@ -173,4 +157,4 @@ module.exports = class Assessments { } }); } -}; +}); diff --git a/src/client/catalog.js b/src/client/catalog.js index ab636f33..a0cf68b2 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,24 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const FormData = require('form-data'); -const http = require('https'); -const fs = require('fs'); -const { got, defaultHeaders } = require('./apiutils'); -const { - constructError, formatAllServiceInputParameters, checkProject, printSuccess, printError, printTable, -} = require('../commands/utils'); -const createEndpoints = (baseUri) => ({ - skills: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/skills`, - agents: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agents`, - agentinvoke: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agentinvoke`, - types: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/types`, - campaigns: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, - }); +import debugSetup from 'debug'; +import FormData from 'form-data'; +import http from 'https'; +import fs from 'node:fs'; +import { got, defaultHeaders } from './apiutils.js'; +import { + constructError, formatAllServiceInputParameters, checkProject, printSuccess, printError, printTable, +} from '../commands/utils.js'; -module.exports = class Catalog { +const debug = debugSetup('cortex:cli'); +const createEndpoints = (baseUri) => ({ + skills: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/skills`, + agents: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agents`, + agentinvoke: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agentinvoke`, + types: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/types`, + campaigns: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, +}); +export default (class Catalog { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoints = createEndpoints(cortexUrl); @@ -41,9 +42,9 @@ module.exports = class Catalog { debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills(projectId)); return got .post(this.endpoints.skills(projectId), { - headers: defaultHeaders(token), - json: skillObj, - }).json() + headers: defaultHeaders(token), + json: skillObj, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -57,9 +58,9 @@ module.exports = class Catalog { if (skip) query.skip = skip; return got .get(this.endpoints.skills(projectId), { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((skills) => ({ success: true, ...skills })) .catch((err) => constructError(err)); } @@ -91,9 +92,9 @@ module.exports = class Catalog { debug('deploySkill(%s) => %s', skillName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -104,9 +105,9 @@ module.exports = class Catalog { debug('undeploySkill(%s) => %s', skillName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -117,9 +118,9 @@ module.exports = class Catalog { debug('skillLogs(%s, %s) => %s', skillName, actionName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -135,9 +136,9 @@ module.exports = class Catalog { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((agentResp) => ({ success: true, ...agentResp })) .catch((err) => constructError(err)); @@ -166,9 +167,9 @@ module.exports = class Catalog { debug('saveAgent(%s) => %s', agentObj.name, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: agentObj, - }).json() + headers: defaultHeaders(token), + json: agentObj, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -179,9 +180,9 @@ module.exports = class Catalog { debug('describeAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((agent) => ({ success: true, agent })) .catch((err) => constructError(err)); } @@ -192,8 +193,8 @@ module.exports = class Catalog { debug('describeAgentVersions(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((agent) => ({ success: true, agent })) .catch((err) => constructError(err)); @@ -205,9 +206,9 @@ module.exports = class Catalog { debug('deployAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -218,9 +219,9 @@ module.exports = class Catalog { debug('undeployAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -232,9 +233,9 @@ module.exports = class Catalog { debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types(projectId)); return got .post(endpoint, { - headers: defaultHeaders(token), - json: types, - }) + headers: defaultHeaders(token), + json: types, + }) .json() .then((message) => ({ success: true, message })) .catch((err) => constructError(err)); @@ -246,8 +247,8 @@ module.exports = class Catalog { debug('describeType(%s) => %s', typeName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((type) => ({ success: true, type })) .catch((err) => constructError(err)); @@ -261,12 +262,11 @@ module.exports = class Catalog { if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((types) => ({ success: true, ...types })) .catch((err) => constructError(err)); @@ -278,8 +278,8 @@ module.exports = class Catalog { debug('deleteType(%s) => %s', typeName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((type) => ({ success: true, type })) .catch((err) => constructError(err)); @@ -310,13 +310,10 @@ module.exports = class Catalog { printError(`Campaign export file ${filepath} doesn't exists or not a valid export file`); } const readStream = fs.createReadStream(filepath); - const form = new FormData(); form.append('file', readStream); - const headers = form.getHeaders(); headers.Authorization = `Bearer ${token}`; - const req = http.request(importUrl, { method: 'POST', headers, @@ -348,8 +345,8 @@ module.exports = class Catalog { debug('undeployCampaign() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -361,8 +358,8 @@ module.exports = class Catalog { debug('deployCampaign() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -374,8 +371,8 @@ module.exports = class Catalog { debug('undeployMissions() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -390,12 +387,11 @@ module.exports = class Catalog { if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -407,8 +403,8 @@ module.exports = class Catalog { debug('deployMissions() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -420,8 +416,8 @@ module.exports = class Catalog { debug('getMissions() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -515,15 +511,14 @@ module.exports = class Catalog { // return constructError(err); // }); // } - deleteSkill(projectId, token, skillName) { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; debug('deleteSkill(%s) => %s', skillName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((skill) => skill) .catch((err) => constructError(err)); @@ -535,10 +530,10 @@ module.exports = class Catalog { debug('deleteAgent(%s) => %s', agentName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((agent) => ({ success: true, agent })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/connections.js b/src/client/connections.js index e1c68ccd..f7e7e415 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); - -module.exports = class Connections { +const debug = debugSetup('cortex:cli'); +export default (class Connections { constructor(cortexUrl) { this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/connections`; this.cortexUrl = cortexUrl; @@ -35,9 +35,9 @@ module.exports = class Connections { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -48,7 +48,7 @@ module.exports = class Connections { debug('saveConnection(%s) => %s', connObj.name, endpoint); try { const message = await got - .post(endpoint, { + .post(endpoint, { headers: defaultHeaders(token), json: connObj, }).json(); @@ -64,8 +64,8 @@ module.exports = class Connections { debug('describeConnection(%s) => %s', connectionName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -76,8 +76,8 @@ module.exports = class Connections { debug('deleteConnection(%s) => %s', connectionName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -89,12 +89,12 @@ module.exports = class Connections { if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - return got + return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/content.js b/src/client/content.js index 76619bd7..90da2b95 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -1,31 +1,13 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +import fs from 'node:fs'; +import process from 'node:process'; +import { PassThrough } from 'node:stream'; +import { pipeline } from 'node:stream/promises'; +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { createFileStream, constructError, checkProject } from '../commands/utils.js'; -const fs = require('fs'); -const stream = require('stream'); - -const { promisify } = require('util'); -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { createFileStream } = require('../commands/utils'); -const { constructError, checkProject } = require('../commands/utils'); - -const pipeline = promisify(stream.pipeline); - -module.exports = class Content { +const debug = debugSetup('cortex:cli'); +export default (class Content { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/content`; @@ -44,9 +26,9 @@ module.exports = class Content { if (prefix) query.filter = prefix; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((message) => ({ success: true, message })) .catch((err) => constructError(err)); } @@ -59,17 +41,15 @@ module.exports = class Content { // todo show progress.. debug('uploadContentStreaming(%s, %s) => %s', key, content, endpoint); try { - const message = await pipeline( - fs.createReadStream(content), - got.stream.post(endpoint, { - headers: defaultHeaders(token, { 'Content-Type': contentType }), - }), - // https://github.com/sindresorhus/got/blob/HEAD/documentation/3-streams.md#stream-api - // new stream.PassThrough() is required to catch errors. - new stream.PassThrough(), - ); + const message = await pipeline(fs.createReadStream(content), got.stream.post(endpoint, { + headers: defaultHeaders(token, { 'Content-Type': contentType }), + }), + // https://github.com/sindresorhus/got/blob/HEAD/documentation/3-streams.md#stream-api + // new stream.PassThrough() is required to catch errors. + new PassThrough()); return { success: true, message }; } catch (err) { + // TODO this should just throw return constructError(err); } } @@ -81,8 +61,8 @@ module.exports = class Content { debug('deleteContent() => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((message) => ({ success: true, message })) .catch((err) => constructError(err)); } @@ -95,17 +75,15 @@ module.exports = class Content { const endpoint = `${this.endpoint(projectId)}/${contentKey}`; debug('downloadContent() => %s', endpoint); try { + let toFileStream; if (toFile) { - toFile = createFileStream(toFile); + toFileStream = createFileStream(toFile); } else { - toFile = process.stdout; + toFileStream = process.stdout; } - return pipeline( - got.stream(endpoint, { headers: defaultHeaders(token) }), - toFile, - ); + return pipeline(got.stream(endpoint, { headers: defaultHeaders(token) }), toFileStream); } catch (err) { return constructError(err); } } -}; +}); diff --git a/src/client/experiments.js b/src/client/experiments.js index 8403b882..a9b25c03 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -1,29 +1,12 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const fs = require('fs'); -const stream = require('stream'); -const { promisify } = require('util'); - -const pipeline = promisify(stream.pipeline); -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); -const Content = require('./content'); - -module.exports = class Experiments { +import fs from 'node:fs'; +import pipeline from 'node:stream/promises'; +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; +import Content from './content.js'; + +const debug = debugSetup('cortex:cli'); +export default (class Experiments { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; @@ -40,9 +23,9 @@ module.exports = class Experiments { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -53,8 +36,8 @@ module.exports = class Experiments { debug('describeExperiment(%s) => %s', name, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -65,8 +48,8 @@ module.exports = class Experiments { debug('deleteExperiment(%s) => %s', name, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -82,9 +65,9 @@ module.exports = class Experiments { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -95,8 +78,8 @@ module.exports = class Experiments { debug('describeRun(%s) => %s', runId, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -107,8 +90,8 @@ module.exports = class Experiments { debug('deleteRun(%s, %s) => %s', experimentName, runId, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -138,9 +121,9 @@ module.exports = class Experiments { debug('saveExperiment(%s) => %s', experimentObj.name, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: experimentObj, - }).json() + headers: defaultHeaders(token), + json: experimentObj, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -151,9 +134,9 @@ module.exports = class Experiments { debug('createRun(%s) => %s', runObj.experimentName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: runObj, - }).json() + headers: defaultHeaders(token), + json: runObj, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -164,29 +147,24 @@ module.exports = class Experiments { debug('updateRun(%s) => %s', runObj.experimentName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: runObj, - }).json() + headers: defaultHeaders(token), + json: runObj, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } async uploadArtifact(projectId, token, experimentName, runId, content, artifact, contentType = 'application/octet-stream') { checkProject(projectId); - const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${encodeURIComponent(runId)}/artifacts/${artifact}`; - debug('uploadArtifact(%s, %s) => %s', artifact, content, endpoint); try { - const message = await pipeline( - fs.createReadStream(content), - got.stream.put(endpoint, { - headers: defaultHeaders(token, { 'Content-Type': contentType }), - }), - ); + const message = await pipeline(fs.createReadStream(content), got.stream.put(endpoint, { + headers: defaultHeaders(token, { 'Content-Type': contentType }), + })); return { success: true, message }; } catch (err) { return constructError(err); } } -}; +}); diff --git a/src/client/info.js b/src/client/info.js index a6329b24..efbd4b7a 100644 --- a/src/client/info.js +++ b/src/client/info.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,26 +13,29 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, getUserAgent } from './apiutils.js'; +import { constructError } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, getUserAgent } = require('./apiutils'); -const { constructError } = require('../commands/utils'); - -module.exports = class Info { +const debug = debugSetup('cortex:cli'); +export default (class Info { constructor(cortexUrl) { this.endpoint = () => `${cortexUrl}`; this.cortexUrl = cortexUrl; } - getInfo() { + async getInfo() { const endpoint = `${this.cortexUrl}/fabric/v4/info`; debug('getInfo() => %s', endpoint); - return got - .get(endpoint, { - headers: { 'user-agent': getUserAgent() }, - followRedirect: false, - }).json() - .then((result) => result) - .catch((err) => constructError(err)); + try { + return await got + .get(endpoint, { + headers: { 'user-agent': getUserAgent() }, + followRedirect: false, + }) + .json(); + } catch (err) { + return constructError(err); + } } -}; +}); diff --git a/src/client/models.js b/src/client/models.js index 0f84448e..5268a9fc 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -module.exports = class Models { +const debug = debugSetup('cortex:cli'); +export default (class Models { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/models`; @@ -29,9 +30,9 @@ module.exports = class Models { debug('saveModel(%s) => %s', modelObj.name, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: modelObj, - }).json() + headers: defaultHeaders(token), + json: modelObj, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -42,9 +43,9 @@ module.exports = class Models { debug('updateModelStatus(%s) => %s', modelName, status, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: {}, - }).json() + headers: defaultHeaders(token), + json: {}, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -55,8 +56,8 @@ module.exports = class Models { debug('deleteAction(%s) => %s', modelName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((model) => ({ success: true, model })) .catch((err) => constructError(err)); @@ -68,9 +69,9 @@ module.exports = class Models { debug('describeModel(%s) => %s', modelName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((model) => ({ success: true, model })) .catch((err) => constructError(err)); } @@ -87,9 +88,9 @@ module.exports = class Models { if (tags) query.tags = tags; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((modelsResp) => ({ success: true, ...modelsResp })) .catch((err) => constructError(err)); @@ -106,11 +107,11 @@ module.exports = class Models { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((modelsResp) => ({ success: true, ...modelsResp })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/roles.js b/src/client/roles.js index 93933cc1..066d39ec 100644 --- a/src/client/roles.js +++ b/src/client/roles.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError } = require('../commands/utils'); +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError } from '../commands/utils.js'; -module.exports = class Roles { +const debug = debugSetup('cortex:cli'); +export default class Roles { constructor(cortexUrl, role, flags = []) { this.cortexUrl = cortexUrl; this.endpoint = `${cortexUrl}/fabric/v4`; this.flags = ''; - if (role) { this.rolesEndpoint = `${this.endpoint}/roles/${role}`; } else { @@ -31,9 +31,7 @@ module.exports = class Roles { this.rolesUsersEndpoint = `${this.rolesEndpoint}/users`; this.rolesGrantsEndpoint = `${this.rolesEndpoint}/grants`; this.rolesProjectsEndpoint = `${this.rolesEndpoint}/projects`; - this.rolesMappingsEndpoint = `${this.rolesEndpoint}/mappings`; - if (flags.length > 0) { this.flags = `${flags.reduce((flagString, flag) => { if (flagString) { @@ -51,8 +49,8 @@ module.exports = class Roles { debug('describeRole => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -62,8 +60,8 @@ module.exports = class Roles { debug('deleteRole => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -73,9 +71,9 @@ module.exports = class Roles { debug('createRole => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -85,9 +83,9 @@ module.exports = class Roles { debug('addUsersToRole => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: { users }, - }).json() + headers: defaultHeaders(token), + json: { users }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -97,9 +95,9 @@ module.exports = class Roles { debug('removeUsersFromRole => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: { users }, - }).json() + headers: defaultHeaders(token), + json: { users }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -109,9 +107,9 @@ module.exports = class Roles { debug('createGrantForRole => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -121,9 +119,9 @@ module.exports = class Roles { debug('removeGrantFromRole => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -136,8 +134,8 @@ module.exports = class Roles { debug('listRoles => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -147,9 +145,9 @@ module.exports = class Roles { debug('addRolesToProject(%s) => %s', roles, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: { project, roles }, - }).json() + headers: defaultHeaders(token), + json: { project, roles }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -159,9 +157,9 @@ module.exports = class Roles { debug('removeRolesFromProject => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: { project, roles }, - }).json() + headers: defaultHeaders(token), + json: { project, roles }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -171,8 +169,8 @@ module.exports = class Roles { debug('listExternalGroups => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -182,8 +180,8 @@ module.exports = class Roles { debug('describeExternalGroup => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -193,8 +191,8 @@ module.exports = class Roles { debug('deleteExternalGroup => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -204,9 +202,9 @@ module.exports = class Roles { debug('addExternalGroupToRole(%s) => %s', externalGroup, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: { externalGroup }, - }).json() + headers: defaultHeaders(token), + json: { externalGroup }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -216,9 +214,9 @@ module.exports = class Roles { debug('removeExternalGroupFromRole => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } -}; +} diff --git a/src/client/secrets.js b/src/client/secrets.js index 8b3e3ceb..4f1e3f7a 100644 --- a/src/client/secrets.js +++ b/src/client/secrets.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import urljoin from 'url-join'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const urljoin = require('url-join'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); - -module.exports = class Secrets { +const debug = debugSetup('cortex:cli'); +export default (class Secrets { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoint = (projectId) => urljoin(cortexUrl, 'fabric/v4/projects', projectId, 'secrets'); @@ -31,8 +31,8 @@ module.exports = class Secrets { debug('listSecrets => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -43,8 +43,8 @@ module.exports = class Secrets { debug('readSecret(%s) => %s', keyName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -55,8 +55,8 @@ module.exports = class Secrets { debug('deleteSecret(%s) => %s', keyName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -68,10 +68,10 @@ module.exports = class Secrets { const body = { value }; return got .post(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((result) => ({ ...result })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/sessions.js b/src/client/sessions.js index 2055087c..c472978b 100644 --- a/src/client/sessions.js +++ b/src/client/sessions.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -module.exports = class Sessions { +const debug = debugSetup('cortex:cli'); +export default (class Sessions { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/sessions`; @@ -29,9 +30,9 @@ module.exports = class Sessions { debug('saveSession(%s) => %s', sessionObj.name, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: sessionObj, - }).json() + headers: defaultHeaders(token), + json: sessionObj, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -42,8 +43,8 @@ module.exports = class Sessions { debug('deleteSession(%s) => %s', sessionName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((session) => ({ success: true, session })) .catch((err) => constructError(err)); @@ -55,9 +56,9 @@ module.exports = class Sessions { debug('describeSession(%s) => %s', sessionName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((session) => ({ success: true, session })) .catch((err) => constructError(err)); } @@ -68,10 +69,10 @@ module.exports = class Sessions { debug('listSessions() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((sessionsResp) => ({ success: true, ...sessionsResp })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/tasks.js b/src/client/tasks.js index a84f927f..7f9539b2 100644 --- a/src/client/tasks.js +++ b/src/client/tasks.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); - -module.exports = class Tasks { +const debug = debugSetup('cortex:cli'); +export default (class Tasks { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}`; @@ -49,7 +49,6 @@ module.exports = class Tasks { if (params) { opts.searchParams = params; } - return got .get(endpoint, opts).json() .catch((err) => constructError(err)); @@ -61,9 +60,9 @@ module.exports = class Tasks { debug('taskLogs(%s) => %s', taskName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -74,9 +73,9 @@ module.exports = class Tasks { debug('deleteTask(%s) => %s', taskName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -87,9 +86,9 @@ module.exports = class Tasks { debug('pauseTask(%s) => %s', taskName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -100,10 +99,10 @@ module.exports = class Tasks { debug('resumeTask(%s) => %s', taskName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/users.js b/src/client/users.js index 75ff7b0c..ba52b7ae 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,17 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError } = require('../commands/utils'); - -module.exports = class Users { +const debug = debugSetup('cortex:cli'); +export default class Users { constructor(cortexUrl, user, flags = []) { this.cortexUrl = cortexUrl; this.endpoint = `${cortexUrl}/fabric/v4`; this.flags = ''; - if (user) { this.usersEndpoint = `${this.endpoint}/usergrants/${user}`; } else { @@ -47,8 +46,8 @@ module.exports = class Users { debug('createServiceUser => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -58,8 +57,8 @@ module.exports = class Users { debug('deleteServiceUser => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -69,8 +68,8 @@ module.exports = class Users { debug('listServiceUser => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -80,8 +79,8 @@ module.exports = class Users { debug('describeUser => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -91,9 +90,9 @@ module.exports = class Users { debug('createGrantForUser => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -103,9 +102,9 @@ module.exports = class Users { debug('removeGrantFromUser => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -115,9 +114,9 @@ module.exports = class Users { debug('addUsersToProject => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: { project, users }, - }).json() + headers: defaultHeaders(token), + json: { project, users }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -127,10 +126,10 @@ module.exports = class Users { debug('removeUsersFromProject => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: { project, users }, - }).json() + headers: defaultHeaders(token), + json: { project, users }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } -}; +} diff --git a/src/commands/actions.js b/src/commands/actions.js index df271fb0..35a45628 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -1,35 +1,17 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Actions = require('../client/actions'); - +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Actions from '../client/actions.js'; +import { + printSuccess, printError, filterObject, parseObject, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, filterObject, parseObject, isNumeric, - handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListActionsCommand = class { +export const ListActionsCommand = class { constructor(program) { this.program = program; } @@ -38,43 +20,36 @@ module.exports.ListActionsCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListActions()', profile.name); - const actions = new Actions(profile.url); actions.listActions(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort) // eslint-disable-next-line consistent-return .then((response) => { - if (response.success) { - const result = response.actions; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Type', field: 'type', width: 8 }, - { column: 'Image', field: 'image', width: 50 }, - { column: 'Modified', field: 'updatedAt', width: 26 }, - { column: 'Author', field: 'createdBy', width: 26 }, - ]; - handleTable( - tableSpec, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No actions found', - ); - } + if (response.success) { + const result = response.actions; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - return handleListFailure(response, options, 'Actions'); + printExtendedLogs(result, options); + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Type', field: 'type', width: 8 }, + { column: 'Image', field: 'image', width: 50 }, + { column: 'Modified', field: 'updatedAt', width: 26 }, + { column: 'Author', field: 'createdBy', width: 26 }, + ]; + handleTable(tableSpec, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No actions found'); } - }) + } else { + return handleListFailure(response, options, 'Actions'); + } + }) .catch((err) => { - printError(`Failed to list actions: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list actions: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DescribeActionCommand = class { +export const DescribeActionCommand = class { constructor(program) { this.program = program; } @@ -82,23 +57,21 @@ module.exports.DescribeActionCommand = class { async execute(actionName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeAction(%s)', profile.name, actionName); - const actions = new Actions(profile.url); actions.describeAction(options.project || profile.project, profile.token, actionName) .then((response) => { - if (response.success) { - getFilteredOutput(response.action, options); - } else { - printError(`Failed to describe action: ${response.status} ${response.message}`, options); - } - }) + if (response.success) { + getFilteredOutput(response.action, options); + } else { + printError(`Failed to describe action: ${response.status} ${response.message}`, options); + } + }) .catch((err) => { - printError(`Failed to describe action: ${err.status} ${err.message}`, options); - }); + printError(`Failed to describe action: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DeployActionCommand = class { +export const DeployActionCommand = class { constructor(program) { this.program = program; } @@ -106,7 +79,6 @@ module.exports.DeployActionCommand = class { async execute(actionDefinition, options) { try { const profile = await loadProfile(options.profile); - let actionInst = {}; if (actionDefinition) { debug('%s.deployActionCommand(%s)', profile.name, actionDefinition); @@ -137,7 +109,6 @@ module.exports.DeployActionCommand = class { if (options.image) { actionInst.image = options.image; } - if (options.type) { actionInst.type = options.type; } @@ -165,14 +136,12 @@ module.exports.DeployActionCommand = class { } actionInst.scaleCount = parseInt(options.scaleCount, 10); } - if (options.jobTimeout) { if (!isNumeric(options.jobTimeout)) { printError('--jobTimeout must be a number', options); } actionInst.jobTimeout = parseInt(options.jobTimeout, 10); } - // handle mutually exclusive options if (actionInst.type === 'job' && _.has(actionInst, 'port')) { printError('Option port not valid on job action types'); @@ -180,7 +149,6 @@ module.exports.DeployActionCommand = class { if (actionInst.type === 'daemon' && _.has(actionInst, 'jobTimeout')) { printError('Option jobTimeout not valid on daemon action types'); } - const actions = new Actions(profile.url); const response = await actions.deployAction(options.project || profile.project, profile.token, actionInst); if (response.success) { @@ -189,12 +157,11 @@ module.exports.DeployActionCommand = class { printError(`Action deployment failed: ${response.status} ${response.message}`, options); } } catch (err) { - printError(`Failed to deploy action: ${err.status} ${err.message}`, options); + printError(`Failed to deploy action: ${err.status} ${err.message}`, options); } } }; - -module.exports.DeleteActionCommand = class { +export const DeleteActionCommand = class { constructor(program) { this.program = program; } @@ -205,14 +172,14 @@ module.exports.DeleteActionCommand = class { const actions = new Actions(profile.url); actions.deleteAction(options.project || profile.project, profile.token, actionName) .then((response) => { - if (response.success) { - const result = filterObject(response, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Action'); - }) + if (response.success) { + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + return handleDeleteFailure(response, options, 'Action'); + }) .catch((err) => { - printError(`Failed to delete action: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete action: ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/commands/agents.js b/src/commands/agents.js index 22379059..ce0914a2 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -1,79 +1,30 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Catalog = require('../client/catalog'); -const Agents = require('../client/agents'); - +import fs from 'node:fs'; +import debugSetup from 'debug'; +import _ from 'lodash'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Catalog from '../client/catalog.js'; +import Agents from '../client/agents.js'; +import { + LISTTABLEFORMAT, + filterObject, + formatValidationPath, + getFilteredOutput, + getQueryOptions, + handleDeleteFailure, + handleListFailure, + handleTable, + parseObject, + printError, + printExtendedLogs, + printSuccess, + printTable, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, getQueryOptions, -} = require('./utils'); - -module.exports.SaveAgentCommand = class SaveAgentCommand { - constructor(program) { - this.program = program; - } - - async execute(agentDefinitions, options) { - const profile = await loadProfile(options.profile); - await Promise.all(agentDefinitions.map(async (agentDefinition) => { - debug('%s.executeSaveAgent(%s)', profile.name, agentDefinition); - if (!fs.existsSync(agentDefinition)) { - printError(`File does not exist at: ${agentDefinition}`); - } - const agentDefStr = fs.readFileSync(agentDefinition); - const agent = parseObject(agentDefStr, options); - debug('%o', agent); - - const catalog = new Catalog(profile.url); - const project = options.project || profile.project; - try { - const response = await catalog.saveAgent(project, profile.token, agent); - if (response.success) { - printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); - } else if (response.details) { - console.log(`Failed to save agent: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - printError(''); // Just exit - } else { - printError(JSON.stringify(response)); - } - } catch (err) { - printError(`Failed to save agent: ${err.status} ${err.message}`, options); - } - })); - } -}; - -module.exports.ListAgentsCommand = class ListAgentsCommand { +export class ListAgentsCommand { constructor(program) { this.program = program; } @@ -82,7 +33,6 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListAgents()', profile.name); - const catalog = new Catalog(profile.url); // eslint-disable-next-line consistent-return catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { @@ -93,25 +43,19 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - LISTTABLEFORMAT, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No agents found', - ); + handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No agents found'); } } else { return handleListFailure(response, options, 'Agents'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list agents: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DescribeAgentCommand = class DescribeAgentCommand { +} +export class DescribeAgentCommand { constructor(program) { this.program = program; } @@ -128,7 +72,7 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { printError(`Failed to describe agent versions ${agentName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe agent versions ${agentName}: ${err.status} ${err.message}`, options); }); } else { @@ -141,14 +85,13 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { printError(`Failed to describe agent ${agentName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe agent ${agentName}: ${err.status} ${err.message}`, options); }); } } -}; - -module.exports.InvokeAgentServiceCommand = class { +} +export class InvokeAgentServiceCommand { constructor(program) { this.program = program; } @@ -156,7 +99,6 @@ module.exports.InvokeAgentServiceCommand = class { async execute(agentName, serviceName, options) { const profile = await loadProfile(options.profile); debug('%s.invokeAgentService(%s, %s)', profile.name, agentName, serviceName); - let params = {}; if (options.params) { try { @@ -171,9 +113,7 @@ module.exports.InvokeAgentServiceCommand = class { const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); } - debug('params: %o', params); - const agents = new Agents(profile.url); agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params, options).then((response) => { if (response.success) { @@ -183,7 +123,7 @@ module.exports.InvokeAgentServiceCommand = class { printError(`Invocation failed: ${response.status} ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { if (err.response && err.response.body) { debug('Raw error response: %o', err.response.body); printError(`Failed to invoke agent service (${err.status} ${err.message}): ${err.response.body.error}`, options); @@ -192,9 +132,8 @@ module.exports.InvokeAgentServiceCommand = class { } }); } -}; - -module.exports.GetActivationCommand = class { +} +export class GetActivationCommand { constructor(program) { this.program = program; } @@ -225,27 +164,25 @@ module.exports.GetActivationCommand = class { printError(`Failed to get activation ${activationId}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to get activation ${activationId}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.ListActivationsCommand = class { +} +export class ListActivationsCommand { constructor(program) { this.program = program; } async execute(options) { - if (_.isEmpty(options.agentName) - && _.isEmpty(options.skillName) - && _.isEmpty(options.correlationId) + if (_.isEmpty(options.agentName) + && _.isEmpty(options.skillName) + && _.isEmpty(options.correlationId) && _.isEmpty(options.status)) { printError('Either --agentName, --skillName, --correlationId, or --status must be provided', options); } const profile = await loadProfile(options.profile); debug('%s.listActivations(%s)', profile.name); - const agents = new Agents(profile.url); // TODO validate param types? const queryParams = {}; @@ -261,7 +198,6 @@ module.exports.ListActivationsCommand = class { if (options.skip) queryParams.skip = options.skip; if (options.sort) queryParams.sort = _.toLower(options.sort); if (options.filter) queryParams.filter = options.filter; - // eslint-disable-next-line consistent-return agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { @@ -277,7 +213,6 @@ module.exports.ListActivationsCommand = class { { column: 'Status', field: 'status', width: 20 }, { column: 'Started', field: 'start', width: 65 }, ]; - const genName = (o) => { if (o.agentName) { return `${o.agentName} (Agent)`; @@ -287,7 +222,6 @@ module.exports.ListActivationsCommand = class { } return '-'; }; - handleTable(tableSpec, _.map(result, (o) => ({ ...o, name: genName(o), @@ -299,12 +233,11 @@ module.exports.ListActivationsCommand = class { } }) .catch((err) => { - printError(`Failed to list activations: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list activations: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.ListServicesCommand = class ListServicesCommand { +} +export class ListServicesCommand { constructor(program) { this.program = program; } @@ -312,7 +245,6 @@ module.exports.ListServicesCommand = class ListServicesCommand { async execute(agentName, options) { const profile = await loadProfile(options.profile); debug('%s.listServices(%s)', profile.name, agentName); - const catalog = new Catalog(profile.url); catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { if (response.success) { @@ -336,9 +268,8 @@ module.exports.ListServicesCommand = class ListServicesCommand { printError(`Failed to return agent service information: ${agentName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.ListAgentSnapshotsCommand = class { +} +export class ListAgentSnapshotsCommand { constructor(program) { this.program = program; } @@ -347,7 +278,6 @@ module.exports.ListAgentSnapshotsCommand = class { async execute(agentName, options) { const profile = await loadProfile(options.profile); debug('%s.listAgentSnapshots(%s)', profile.name, agentName); - const agents = new Agents(profile.url); agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, options.filter, options.limit, options.skip, options.sort) // eslint-disable-next-line consistent-return @@ -362,29 +292,23 @@ module.exports.ListAgentSnapshotsCommand = class { const tableSpec = [ { column: 'Snapshot ID', field: 'snapshotId', width: 40 }, { column: 'Title', field: 'title', width: 40 }, -// Removed as this is confusing for end users, agent version may not change -// { column: 'Agent Version', field: 'agentVersion', width: 15 }, + // Removed as this is confusing for end users, agent version may not change + // { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Created', field: 'createdAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 26 }, ]; - handleTable( - tableSpec, - result, - (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), - 'No snapshots found', - ); + handleTable(tableSpec, result, (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), 'No snapshots found'); } } else { return handleListFailure(response, options, 'Agent-snapshots'); } }) .catch((err) => { - printError(`Failed to list agent snapshots ${agentName}: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list agent snapshots ${agentName}: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.DescribeAgentSnapshotCommand = class { +} +export class DescribeAgentSnapshotCommand { constructor(program) { this.program = program; } @@ -392,7 +316,6 @@ module.exports.DescribeAgentSnapshotCommand = class { async execute(snapshotId, options) { const profile = await loadProfile(options.profile); debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); - const agents = new Agents(profile.url); const output = _.get(options, 'output', 'json'); try { @@ -409,9 +332,8 @@ module.exports.DescribeAgentSnapshotCommand = class { return printError(`Failed to describe agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); } } -}; - -module.exports.CreateAgentSnapshotCommand = class { +} +export class CreateAgentSnapshotCommand { constructor(program) { this.program = program; } @@ -440,12 +362,11 @@ module.exports.CreateAgentSnapshotCommand = class { } }) .catch((err) => { - printError(`Failed to create agent snapshot ${agentName}: ${err.status} ${err.message}`, options); - }); + printError(`Failed to create agent snapshot ${agentName}: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.DeleteAgentCommand = class DeleteAgentCommand { +} +export class DeleteAgentCommand { constructor(program) { this.program = program; } @@ -456,19 +377,18 @@ module.exports.DeleteAgentCommand = class DeleteAgentCommand { const catalog = new Catalog(profile.url); catalog.deleteAgent(options.project || profile.project, profile.token, agentName) .then((response) => { - if (response.success) { - const result = filterObject(response, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Agent'); - }) + if (response.success) { + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + return handleDeleteFailure(response, options, 'Agent'); + }) .catch((err) => { - printError(`Failed to delete agent: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete agent: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.DeployAgentCommand = class DeployAgentCommand { +} +export class DeployAgentCommand { constructor(program) { this.program = program; } @@ -490,10 +410,8 @@ module.exports.DeployAgentCommand = class DeployAgentCommand { } })); } -}; - - -module.exports.UndeployAgentCommand = class UndeployAgentCommand { +} +export class UndeployAgentCommand { constructor(program) { this.program = program; } @@ -515,4 +433,44 @@ module.exports.UndeployAgentCommand = class UndeployAgentCommand { } })); } -}; +} +export class SaveAgentCommand { + constructor(program) { + this.program = program; + } + + async execute(agentDefinitions, options) { + const profile = await loadProfile(options.profile); + await Promise.all(agentDefinitions.map(async (agentDefinition) => { + debug('%s.executeSaveAgent(%s)', profile.name, agentDefinition); + if (!fs.existsSync(agentDefinition)) { + printError(`File does not exist at: ${agentDefinition}`); + } + const agentDefStr = fs.readFileSync(agentDefinition); + const agent = parseObject(agentDefStr, options); + debug('%o', agent); + const catalog = new Catalog(profile.url); + const project = options.project || profile.project; + try { + const response = await catalog.saveAgent(project, profile.token, agent); + if (response.success) { + printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); + } else if (response.details) { + console.log(`Failed to save agent: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map((d) => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + } catch (err) { + printError(`Failed to save agent: ${err.status} ${err.message}`, options); + } + })); + } +} diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 33b867dd..1aa3b1ce 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -1,42 +1,28 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const fs = require('fs'); +import fs from 'node:fs'; +import uniqBy from 'lodash/uniqBy.js'; +import sortBy from 'lodash/sortBy.js'; +import flatten from 'lodash/flatten.js'; +import compact from 'lodash/compact.js'; +import startsWith from 'lodash/startsWith.js'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Assessments from '../client/assessments.js'; +import { + printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, getFilteredOutput, +} from './utils.js'; const _ = { - uniqBy: require('lodash/uniqBy'), - sortBy: require('lodash/sortBy'), - flatten: require('lodash/flatten'), - compact: require('lodash/compact'), - startsWith: require('lodash/startsWith'), + uniqBy, + sortBy, + flatten, + compact, + startsWith, }; -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Assessments = require('../client/assessments'); - +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, parseObject, - handleTable, printExtendedLogs, handleListFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListResourcesCommand = class { +export const ListResourcesCommand = class { constructor(program) { this.program = program; } @@ -50,28 +36,27 @@ module.exports.ListResourcesCommand = class { client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, options.filter, options.sort) // eslint-disable-next-line consistent-return .then((response) => { - if (response.success === false) return handleListFailure(response, options, 'Cortex resources'); - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(response, options); - } else { - printExtendedLogs(response.data, options); - const tableSpec = [ - { column: 'Name', field: 'resourceName' }, - { column: 'Title', field: 'resourceTitle' }, - { column: 'Resource Type', field: 'resourceType' }, - { column: 'Project', field: '_projectId' }, - ]; - handleTable(tableSpec, response.data, null, 'No matching resources found'); - } - }) + if (response.success === false) return handleListFailure(response, options, 'Cortex resources'); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); + } else { + printExtendedLogs(response.data, options); + const tableSpec = [ + { column: 'Name', field: 'resourceName' }, + { column: 'Title', field: 'resourceTitle' }, + { column: 'Resource Type', field: 'resourceType' }, + { column: 'Project', field: '_projectId' }, + ]; + handleTable(tableSpec, response.data, null, 'No matching resources found'); + } + }) .catch((err) => { - printError(`Failed to list Cortex resources: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list Cortex resources: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ListResourceTypesCommand = class { +export const ListResourceTypesCommand = class { constructor(program) { this.program = program; } @@ -80,30 +65,28 @@ module.exports.ListResourceTypesCommand = class { const options = command; const profile = await loadProfile(options.profile); debug('%s.ListResourceTypesCommand()', profile.name); - const client = new Assessments(profile.url); client.listResourceTypes(profile.token) .then((response) => { - if (response.success === false) throw response; - const data = _.compact(response.data); - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(data, options); - } else { - const types = data.map((t) => ({ type: t })); - const tableSpec = [ - { column: 'Resource Type', field: 'type' }, - ]; - handleTable(tableSpec, types, null, 'Resource Types not available'); - } - }) + if (response.success === false) throw response; + const data = _.compact(response.data); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(data, options); + } else { + const types = data.map((t) => ({ type: t })); + const tableSpec = [ + { column: 'Resource Type', field: 'type' }, + ]; + handleTable(tableSpec, types, null, 'Resource Types not available'); + } + }) .catch((err) => { - printError(`Failed to list Cortex resource types: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list Cortex resource types: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DependencyTreeCommand = class { +export const DependencyTreeCommand = class { constructor(program) { this.program = program; } @@ -112,7 +95,6 @@ module.exports.DependencyTreeCommand = class { const options = command; const profile = await loadProfile(options.profile); debug('%s.DependencyTreeCommand()', profile.name); - const client = new Assessments(profile.url); let body; if (dependencyFile) { @@ -120,26 +102,25 @@ module.exports.DependencyTreeCommand = class { } client.getDependenciesOfResource(profile.token, options.scope, options.type, options.name, body, options.missing) .then((response) => { - if (response.success === false) throw response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(response, options); - } else { - const tableSpec = [ - { column: 'Name', field: 'name' }, - { column: 'Title', field: 'title' }, - { column: 'Resource Type', field: 'type' }, - ]; - handleTable(tableSpec, response.data, null, 'No downstream dependency found'); - } - }) + if (response.success === false) throw response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Resource Type', field: 'type' }, + ]; + handleTable(tableSpec, response.data, null, 'No downstream dependency found'); + } + }) .catch((err) => { - printError(`Failed to list dependency Cortex resource: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list dependency Cortex resource: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.CreateAssessmentCommand = class { +export const CreateAssessmentCommand = class { constructor(program) { this.program = program; } @@ -158,25 +139,21 @@ module.exports.CreateAssessmentCommand = class { printError(`Failed to read assessment definition "${assessmentDef}": ${err.message}`, options); } } - client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, - options.description || assessment.description, options.scope || assessment.scope, - options.component || assessment.component, options.type || assessment.type, - options.overwrite || assessment.overwrite) + client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, options.description || assessment.description, options.scope || assessment.scope, options.component || assessment.component, options.type || assessment.type, options.overwrite || assessment.overwrite) .then((response) => { - if (response.success === false) throw response; - if (response.success) { - printSuccess(`Assessment ${options.name} saved successfully`, options); - } else { - printError(`Failed to save assessment: ${JSON.stringify(response)}`); - } - }) + if (response.success === false) throw response; + if (response.success) { + printSuccess(`Assessment ${options.name} saved successfully`, options); + } else { + printError(`Failed to save assessment: ${JSON.stringify(response)}`); + } + }) .catch((err) => { - printError(`Failed to save assessment: ${err.status} ${err.message}`, options); - }); + printError(`Failed to save assessment: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ListAssessmentCommand = class { +export const ListAssessmentCommand = class { constructor(program) { this.program = program; } @@ -185,37 +162,35 @@ module.exports.ListAssessmentCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.ListAssessmentCommand()', profile.name); - const client = new Assessments(profile.url); client.listAssessment(profile.token, options.skip, options.limit, options.filter, options.sort) // eslint-disable-next-line consistent-return .then((response) => { - if (response.success === false) return handleListFailure(response, options, 'Assessments'); - const result = response.data; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - const tableSpec = [ - { column: 'Name', field: 'name' }, - { column: 'Title', field: 'title' }, - { column: 'Description', field: 'description' }, - { column: 'Projects', field: 'scope' }, - { column: '# Reports', field: 'reportCount' }, - { column: 'Modified', field: '_updatedAt' }, - { column: 'Author', field: '_createdBy' }, - ]; - handleTable(tableSpec, result, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); - } - }) + if (response.success === false) return handleListFailure(response, options, 'Assessments'); + const result = response.data; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); + } else { + printExtendedLogs(result, options); + const tableSpec = [ + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Description', field: 'description' }, + { column: 'Projects', field: 'scope' }, + { column: '# Reports', field: 'reportCount' }, + { column: 'Modified', field: '_updatedAt' }, + { column: 'Author', field: '_createdBy' }, + ]; + handleTable(tableSpec, result, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); + } + }) .catch((err) => { - printError(`Failed to list assessment: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list assessment: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DescribeAssessmentCommand = class { +export const DescribeAssessmentCommand = class { constructor(program) { this.program = program; } @@ -223,20 +198,18 @@ module.exports.DescribeAssessmentCommand = class { async execute(name, options) { const profile = await loadProfile(options.profile); debug('%s.DescribeAssessmentCommand()', profile.name); - const client = new Assessments(profile.url); client.getAssessment(profile.token, name) .then((response) => { - if (response.success === false) throw response; - printSuccess(JSON.stringify(response, null, 2), options); - }) + if (response.success === false) throw response; + printSuccess(JSON.stringify(response, null, 2), options); + }) .catch((err) => { - printError(`Failed to get assessment "${name}": ${err.status} ${err.message}`, options); - }); + printError(`Failed to get assessment "${name}": ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DeleteAssessmentCommand = class { +export const DeleteAssessmentCommand = class { constructor(program) { this.program = program; } @@ -244,20 +217,18 @@ module.exports.DeleteAssessmentCommand = class { async execute(name, options) { const profile = await loadProfile(options.profile); debug('%s.DeleteAssessmentCommand()', profile.name); - const client = new Assessments(profile.url); client.deleteAssessment(profile.token, name) .then((response) => { - if (response.success === false) throw response; - printSuccess(JSON.stringify(response, null, 2), options); - }) + if (response.success === false) throw response; + printSuccess(JSON.stringify(response, null, 2), options); + }) .catch((err) => { - printError(`Failed to delete assessment "${name}": ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete assessment "${name}": ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RunAssessmentCommand = class { +export const RunAssessmentCommand = class { constructor(program) { this.program = program; } @@ -265,20 +236,18 @@ module.exports.RunAssessmentCommand = class { async execute(name, options) { const profile = await loadProfile(options.profile); debug('%s.RunAssessmentCommand()', profile.name); - const client = new Assessments(profile.url); client.runAssessment(profile.token, name) .then((response) => { - if (response.success === false) throw response; - printSuccess(JSON.stringify(response, null, 2), options); - }) + if (response.success === false) throw response; + printSuccess(JSON.stringify(response, null, 2), options); + }) .catch((err) => { - printError(`Failed to run assessment "${name}": ${err.status} ${err.message}`, options); - }); + printError(`Failed to run assessment "${name}": ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ListAssessmentReportCommand = class { +export const ListAssessmentReportCommand = class { constructor(program) { this.program = program; } @@ -286,33 +255,31 @@ module.exports.ListAssessmentReportCommand = class { async execute(name, options) { const profile = await loadProfile(options.profile); debug('%s.ListAssessmentReportCommand()', profile.name); - const client = new Assessments(profile.url); client.listAssessmentReports(profile.token, name) .then((response) => { - if (response.success === false) throw response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(response, options); - } else { - const tableSpec = [ - { column: 'Assessment Name', field: 'assessmentId' }, - { column: 'Report Id', field: 'reportId' }, - { column: 'Impact Summary', field: 'summary' }, - { column: 'Modified', field: '_updatedAt' }, - { column: 'Author', field: '_createdBy' }, - ]; - response.data.forEach((r) => r.summary = JSON.stringify(Object.fromEntries(r.summary.map((item) => [item.type, item.count])))); - handleTable(tableSpec, response.data, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), `No report found for the Assessment ${name}`); - } - }) + if (response.success === false) throw response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); + } else { + const tableSpec = [ + { column: 'Assessment Name', field: 'assessmentId' }, + { column: 'Report Id', field: 'reportId' }, + { column: 'Impact Summary', field: 'summary' }, + { column: 'Modified', field: '_updatedAt' }, + { column: 'Author', field: '_createdBy' }, + ]; + response.data.forEach((r) => r.summary = JSON.stringify(Object.fromEntries(r.summary.map((item) => [item.type, item.count])))); + handleTable(tableSpec, response.data, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), `No report found for the Assessment ${name}`); + } + }) .catch((err) => { - printError(`Failed to list assessment "${name}" reports: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list assessment "${name}" reports: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.GetAssessmentReportCommand = class { +export const GetAssessmentReportCommand = class { constructor(program) { this.program = program; } @@ -320,44 +287,38 @@ module.exports.GetAssessmentReportCommand = class { async execute(name, reportId, options) { const profile = await loadProfile(options.profile); debug('%s.GetAssessmentReportCommand()', profile.name); - const client = new Assessments(profile.url); client.getAssessmentReport(profile.token, name, reportId) .then((response) => { - if (response.success === false) throw response; - // TODO remove --query on deprecation - if (options.json || options.query) { - const output = { - name: response.reportId, - assessment: response.assessmentId, - summary: Object.fromEntries(response.summary.map((item) => [item.type, item.count])), - report: response.detail, - _createdAt: response._createdAt, - _createdBy: response._createdBy, - }; - getFilteredOutput(output, options); - } else { - const flattenRefs = _.uniqBy( - _.flatten( - response.detail.map((ref) => ref.sourcePath.map((s) => ({ ...s, projectId: ref._projectId }))), - ), (r) => `${r.name}-${r.type}-${r.projectId}`, - ); - const tableSpec = [ - { column: 'Name', field: 'name' }, - { column: 'Title', field: 'title' }, - { column: 'Resource Type', field: 'type' }, - { column: 'Project', field: 'projectId' }, - ]; - handleTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type']), null, 'No upstream dependencies found'); - } - }) + if (response.success === false) throw response; + // TODO remove --query on deprecation + if (options.json || options.query) { + const output = { + name: response.reportId, + assessment: response.assessmentId, + summary: Object.fromEntries(response.summary.map((item) => [item.type, item.count])), + report: response.detail, + _createdAt: response._createdAt, + _createdBy: response._createdBy, + }; + getFilteredOutput(output, options); + } else { + const flattenRefs = _.uniqBy(_.flatten(response.detail.map((ref) => ref.sourcePath.map((s) => ({ ...s, projectId: ref._projectId })))), (r) => `${r.name}-${r.type}-${r.projectId}`); + const tableSpec = [ + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Resource Type', field: 'type' }, + { column: 'Project', field: 'projectId' }, + ]; + handleTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type']), null, 'No upstream dependencies found'); + } + }) .catch((err) => { - printError(`Failed to get assessment "${name}" report "${reportId}": ${err.status} ${err.message}`, options); - }); + printError(`Failed to get assessment "${name}" report "${reportId}": ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExportAssessmentReportCommand = class { +export const ExportAssessmentReportCommand = class { constructor(program) { this.program = program; } @@ -366,7 +327,6 @@ module.exports.ExportAssessmentReportCommand = class { const options = command; const profile = await loadProfile(options.profile); debug('%s.ExportAssessmentReportCommand()', profile.name); - const client = new Assessments(profile.url); client.exportAssessmentReport(profile.token, name, reportId, options.type); } diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 2a73fbf7..f2cb3c7d 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -1,5 +1,13 @@ +import debugSetup from 'debug'; +import get from 'lodash/get.js'; +import { loadProfile } from '../config.js'; +import ApiServerClient from '../client/apiServerClient.js'; +import Catalog from '../client/catalog.js'; +import { + printSuccess, printError, printTable, handleTable, printExtendedLogs, handleListFailure, getFilteredOutput, +} from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,19 +21,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const ApiServerClient = require('../client/apiServerClient'); -const Catalog = require('../client/catalog'); - -const _ = { get: require('lodash/get') }; -const { - printSuccess, printError, printTable, handleTable, - printExtendedLogs, handleListFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListCampaignsCommand = class ListCampaignsCommand { +const debug = debugSetup('cortex:cli'); +const _ = { get }; +export class ListCampaignsCommand { constructor(program) { this.program = program; } @@ -56,9 +54,8 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Campaigns'); } } -}; - -module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { +} +export class DescribeCampaignCommand { constructor(program) { this.program = program; } @@ -68,7 +65,6 @@ module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeCampaign(%s)', profile.name, campaignName); const cli = new ApiServerClient(profile.url); - try { const response = await cli.getCampaign(options.project || profile.project, profile.token, campaignName); getFilteredOutput(response, options); @@ -76,9 +72,8 @@ module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { printError(`Failed to describe campaign: ${err.status} ${err.message}`, options); } } -}; - -module.exports.ExportCampaignCommand = class ExportCampaignCommand { +} +export class ExportCampaignCommand { constructor(program) { this.program = program; } @@ -97,9 +92,8 @@ module.exports.ExportCampaignCommand = class ExportCampaignCommand { printError(`Failed to export Campaign ${campaignName} from project ${project}. Error: ${e}`); } } -}; - -module.exports.ImportCampaignCommand = class ImportCampaignCommand { +} +export class ImportCampaignCommand { constructor(program) { this.program = program; } @@ -109,16 +103,14 @@ module.exports.ImportCampaignCommand = class ImportCampaignCommand { const profile = await loadProfile(options.profile); debug('%s.executeImportCampaignCommand(%s)', profile.name, campaignFilepath); const cli = new Catalog(profile.url); - try { cli.importCampaign(options.project || profile.project, profile.token, campaignFilepath, options.deploy, options.overwrite); } catch (err) { printError(`Failed to import campaign: ${err.status} ${err.message}`, options); } } -}; - -module.exports.DeployCampaignCommand = class DeployCampaignCommand { +} +export class DeployCampaignCommand { constructor(program) { this.program = program; } @@ -128,7 +120,6 @@ module.exports.DeployCampaignCommand = class DeployCampaignCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); - try { cli.deployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { if (response.success === false) throw response; @@ -146,9 +137,8 @@ module.exports.DeployCampaignCommand = class DeployCampaignCommand { printError(`Failed to deploy campaign: ${err.status} ${err.message}`, options); } } -}; - -module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { +} +export class UndeployCampaignCommand { constructor(program) { this.program = program; } @@ -158,7 +148,6 @@ module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { const profile = await loadProfile(options.profile); debug('%s.executeUndeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); - try { cli.undeployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { if (response.success === false) throw response; @@ -176,9 +165,8 @@ module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { printError(`Failed to undeploy campaign: ${err.status} ${err.message}`, options); } } -}; - -module.exports.UndeployMissionCommand = class UndeployMissionCommand { +} +export class UndeployMissionCommand { constructor(program) { this.program = program; } @@ -188,7 +176,6 @@ module.exports.UndeployMissionCommand = class UndeployMissionCommand { const profile = await loadProfile(options.profile); debug('%s.executeUndeployMissionCommand(%s)', profile.name, missionName); const cli = new Catalog(profile.url); - try { cli.undeployMission(options.project || profile.project, profile.token, campaignName, missionName).then((response) => { if (response.success === false) throw response; @@ -201,9 +188,8 @@ module.exports.UndeployMissionCommand = class UndeployMissionCommand { printError(`Failed to undeploy mission: ${err.status} ${err.message}`, options); } } -}; - -module.exports.ListMissionsCommand = class ListMissionsCommand { +} +export class ListMissionsCommand { constructor(program) { this.program = program; } @@ -212,7 +198,6 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { async execute(campaign, cmd) { const options = cmd; const profile = await loadProfile(options.profile); - debug('%s.executeListMissionsCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); try { @@ -241,9 +226,8 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Missions'); } } -}; - -module.exports.DeployMissionCommand = class DeployMissionCommand { +} +export class DeployMissionCommand { constructor(program) { this.program = program; } @@ -253,16 +237,14 @@ module.exports.DeployMissionCommand = class DeployMissionCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { if (response.success === false) throw response; const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); printSuccess(output, options); }).catch((err) => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); } -}; - -module.exports.DescribeMissionCommand = class DescribeMissionCommand { +} +export class DescribeMissionCommand { constructor(program) { this.program = program; } @@ -272,10 +254,9 @@ module.exports.DescribeMissionCommand = class DescribeMissionCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.getMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { if (response.success === false) throw response; printSuccess(JSON.stringify(response.data, null, 2), options); }).catch((err) => printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); } -}; +} diff --git a/src/commands/configure.js b/src/commands/configure.js index 6ba39003..ac26ab00 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -1,5 +1,14 @@ +import debugSetup from 'debug'; +import _ from 'lodash'; +import prompts from 'prompts'; +import chalk from 'chalk'; +import fs from 'node:fs'; +import { + readConfig, defaultConfig, generateJwt, loadProfile, durationRegex, +} from '../config.js'; +import { printSuccess, printError, useColor } from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,30 +22,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const prompts = require('prompts'); -const chalk = require('chalk'); -const fs = require('fs'); - -const { - readConfig, - defaultConfig, - generateJwt, - loadProfile, - durationRegex, -} = require('../config'); -const { printSuccess, printError, useColor } = require('./utils'); - +const debug = debugSetup('cortex:cli'); function _validatePatFile(patFile) { if (!fs.existsSync(patFile)) { printError(`Personal Access Token file does not exist at: ${patFile}`); } return JSON.parse(fs.readFileSync(patFile)); } - -module.exports.ConfigureCommand = class { +export const ConfigureCommand = class { constructor(program) { this.program = program; } @@ -45,28 +38,26 @@ module.exports.ConfigureCommand = class { const { profile, file, project } = options; const config = readConfig(); const profileName = profile || _.get(config, 'currentProfile', 'default'); - debug('configuring profile: %s', profileName); console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); - const cmd = this; - try { - let patData = null; - if (file) { - patData = _validatePatFile(file); - } else { - const { patjson } = await prompts({ - type: 'text', - name: 'patjson', - message: 'Cortex Personal Access Config:', - }); - patData = JSON.parse(patjson); - } - cmd.saveConfig(config, profileName, patData, project); - console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); - } catch (err) { - printError(err); + try { + let patData = null; + if (file) { + patData = _validatePatFile(file); + } else { + const { patjson } = await prompts({ + type: 'text', + name: 'patjson', + message: 'Cortex Personal Access Config:', + }); + patData = JSON.parse(patjson); } + cmd.saveConfig(config, profileName, patData, project); + console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); + } catch (err) { + printError(err); + } } saveConfig(config, profileName, cfg, project) { @@ -76,8 +67,7 @@ module.exports.ConfigureCommand = class { config.save(); } }; - -module.exports.SetProfileCommand = class { +export const SetProfileCommand = class { constructor(program) { this.program = program; } @@ -89,15 +79,12 @@ module.exports.SetProfileCommand = class { printError(`No profile named ${profileName}. Run cortex configure --profile ${profileName} to create it.`, options); return; } - config.currentProfile = profileName; config.save(); - console.log(`Current profile set to ${chalk.green.bold(profileName)}`); } }; - -module.exports.DescribeProfileCommand = class { +export const DescribeProfileCommand = class { constructor(program) { this.program = program; } @@ -108,16 +95,13 @@ module.exports.DescribeProfileCommand = class { printError('Configuration not found. Please run "cortex configure".'); return; } - const profileName = options.profile || config.currentProfile; debug('describing profile: %s', profileName); - const profile = await config.getProfile(profileName); if (profile === undefined) { printError(`No profile named ${profileName}. Run cortex configure --profile ${profileName} to create it.`, options); return; } - printSuccess(`Profile: ${profile.name}`, options); printSuccess(`Cortex URL: ${profile.url}`, options); printSuccess(`Username: ${profile.username}`, options); @@ -125,8 +109,7 @@ module.exports.DescribeProfileCommand = class { printSuccess(`Project: ${profile.project || 'undefined'}`, options); } }; - -module.exports.ListProfilesCommand = class { +export const ListProfilesCommand = class { constructor(program) { this.program = program; } @@ -137,7 +120,6 @@ module.exports.ListProfilesCommand = class { printError('Configuration not found. Please run "cortex configure".', options); return; } - const profiles = Object.keys(config.profiles); profiles.forEach((name) => { if (name === config.currentProfile) { @@ -152,8 +134,7 @@ module.exports.ListProfilesCommand = class { }); } }; - -module.exports.GetAccessToken = class { +export const GetAccessToken = class { constructor(program) { this.program = program; } @@ -169,8 +150,7 @@ module.exports.GetAccessToken = class { return printSuccess(jwt, options); } }; - -module.exports.PrintEnvVars = class { +export const PrintEnvVars = class { constructor(program) { this.program = program; } diff --git a/src/commands/connections.js b/src/commands/connections.js index 7349a12f..eba0cf4b 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -1,36 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Connections = require('../client/connections'); -const Content = require('../client/content'); - +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Connections from '../client/connections.js'; +import Content from '../client/content.js'; +import { + printSuccess, printError, filterObject, parseObject, CONNECTIONTABLEFORMAT, fileExists, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, filterObject, parseObject, CONNECTIONTABLEFORMAT, fileExists, - handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListConnections = class ListConnections { +export class ListConnections { constructor(program) { this.program = program; } @@ -39,7 +21,6 @@ module.exports.ListConnections = class ListConnections { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listConnections()', profile.name); - const conns = new Connections(profile.url); // eslint-disable-next-line consistent-return conns.listConnections(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { @@ -50,94 +31,83 @@ module.exports.ListConnections = class ListConnections { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - CONNECTIONTABLEFORMAT, - result, - (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), - 'No connections found', - ); + handleTable(CONNECTIONTABLEFORMAT, result, (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), 'No connections found'); } } else { return handleListFailure(response, options, 'Connections'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list connections: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.SaveConnectionCommand = class SaveConnectionCommand { +} +export class SaveConnectionCommand { constructor(program) { this.program = program; } - getParamsValue(connectionDefinition, paramName) { - const results = _.filter(_.get(connectionDefinition, 'params', []), (item) => item.name === paramName); - if (results && results.length) { + getParamsValue(connectionDefinition, paramName) { + const results = _.filter(_.get(connectionDefinition, 'params', []), (item) => item.name === paramName); + if (results && results.length) { return results[0].value; - } - return undefined; - } + } + return undefined; + } - stripJarPathFromParams(params) { - return params.filter((item) => item.name !== 'jdbc_jar_file'); - } + stripJarPathFromParams(params) { + return params.filter((item) => item.name !== 'jdbc_jar_file'); + } - async execute(connectionDefinition, options) { - const profile = await loadProfile(options.profile); - debug('%s.executeSaveDefinition(%s)', profile.name, connectionDefinition); + async execute(connectionDefinition, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeSaveDefinition(%s)', profile.name, connectionDefinition); if (!fileExists(connectionDefinition)) { printError(`File does not exist at: ${connectionDefinition}`); } - const connDefStr = fs.readFileSync(connectionDefinition); - const connObj = parseObject(connDefStr, options); - debug('%o', connObj); - - const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); - const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); - - if (jdbcJarFilePath && !jdbcJarFilePath.includes('--Insert jar file path--')) { - const content = new Content(profile.url); - const connection = new Connections(profile.url); - - content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) - .then(() => { - const marshaledConnObj = connObj; - marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); - - connection.saveConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { - if (response.success) { - printSuccess('Connection saved', options); - } else { - printError(`Failed to save connection: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to save connection: ${err.response.body.message}`, options); - }); - }) - .catch((err) => { - printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); - }); - } else { - const connection = new Connections(profile.url); - connection.saveConnection(options.project || profile.project, profile.token, connObj).then((response) => { - if (response.success) { - printSuccess('Connection saved', options); - } else { - printError(`Failed to save connection: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to save connection: ${err.response.body.message}`, options); - }); - } - } -}; - -module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { + const connDefStr = fs.readFileSync(connectionDefinition); + const connObj = parseObject(connDefStr, options); + debug('%o', connObj); + const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); + const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); + if (jdbcJarFilePath && !jdbcJarFilePath.includes('--Insert jar file path--')) { + const content = new Content(profile.url); + const connection = new Connections(profile.url); + content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) + .then(() => { + const marshaledConnObj = connObj; + marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); + connection.saveConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { + if (response.success) { + printSuccess('Connection saved', options); + } else { + printError(`Failed to save connection: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to save connection: ${err.response.body.message}`, options); + }); + }) + .catch((err) => { + printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); + }); + } else { + const connection = new Connections(profile.url); + connection.saveConnection(options.project || profile.project, profile.token, connObj).then((response) => { + if (response.success) { + printSuccess('Connection saved', options); + } else { + printError(`Failed to save connection: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to save connection: ${err.response.body.message}`, options); + }); + } + } +} +export class DescribeConnectionCommand { constructor(program) { this.program = program; } @@ -145,7 +115,6 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { async execute(connectionName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeConnection(%s)', profile.name, connectionName); - const connection = new Connections(profile.url); connection.describeConnection(options.project || profile.project, profile.token, connectionName).then((response) => { if (response.success) { @@ -154,13 +123,12 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { printError(`Failed to describe connection ${connectionName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe connection ${connectionName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { +} +export class DeleteConnectionCommand { constructor(program) { this.program = program; } @@ -168,7 +136,6 @@ module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { async execute(connectionName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDeleteConnection(%s)', profile.name, connectionName); - const connection = new Connections(profile.url); connection.deleteConnection(options.project || profile.project, profile.token, connectionName).then((response) => { if (response.success) { @@ -177,13 +144,12 @@ module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { } return handleDeleteFailure(response, options, 'Connection'); }) - .catch((err) => { + .catch((err) => { printError(`Failed to delete connection ${connectionName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.ListConnectionsTypes = class ListConnectionsTypes { +} +export class ListConnectionsTypes { constructor(program) { this.program = program; } @@ -192,7 +158,6 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listConnectionsTypes()', profile.name); - const conns = new Connections(profile.url); // eslint-disable-next-line consistent-return conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort).then((response) => { @@ -216,9 +181,9 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { return handleListFailure(response, options, 'Connection-types'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list connection types: ${err.status} ${err.message}`, options); }); } -}; +} diff --git a/src/commands/content.js b/src/commands/content.js index 6fac0bff..2cd895ae 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -1,28 +1,33 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Content = require('../client/content'); -const { - printSuccess, printError, getSourceFiles, humanReadableFileSize, handleTable, - getFilteredOutput, -} = require('./utils'); +import _ from 'lodash'; +import process from 'node:process'; +import fs from 'node:fs'; +import { PromisePool } from '@supercharge/promise-pool'; +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import Content from '../client/content.js'; +import { + printSuccess, printError, getSourceFiles, humanReadableFileSize, handleTable, getFilteredOutput, checkProject, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); + +async function upload(contentClient, profile, options, contentKey, filePath, exit = true) { + if (fs.lstatSync(filePath).isDirectory()) { + printError('Uploads of directories require the option --recursive | -r', options); + } + const showProgress = !!options.progress; + const contentType = _.get(options, 'contentType', 'application/octet-stream'); + const response = await contentClient.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, filePath, showProgress, contentType); + if (response.success) { + printSuccess('Content successfully uploaded.', options); + } else { + const message = `Failed to upload content ${filePath}: ${response.status} ${response.message}`; + printError(message, options, exit); + throw Error(message); // Temp fix to make recursive upload stop uploading, until uploadContentStreaming() throws + } +} -module.exports.ListContent = class ListContent { +export class ListContent { constructor(program) { this.program = program; } @@ -30,7 +35,6 @@ module.exports.ListContent = class ListContent { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listContent()', profile.name); - const content = new Content(profile.url); content.listContent(options.project || profile.project, profile.token, options.prefix).then((response) => { if (response.success) { @@ -45,89 +49,61 @@ module.exports.ListContent = class ListContent { { column: 'Last Modified', field: 'LastModified', width: 30 }, { column: 'Size (bytes)', field: 'Size', width: 20 }, ]; - handleTable(tableSpec, response.message, null, 'No content found'); } } else { printError(`Failed to list content: ${response.status} ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list content: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.UploadContent = class UploadContent { +} +export class UploadContent { constructor(program) { this.program = program; } - async execute(contentKey, filePath, options, cbTest) { + async execute(contentKey, filePath, options) { const profile = await loadProfile(options.profile); + const project = options.project || profile.project; + checkProject(project); debug('%s.uploadContent()', profile.name); - const contentClient = new Content(profile.url); - const chunkSize = parseInt(options.chunkSize, 10); - const upload = _.partial(UploadContent.upload, contentClient, profile, options); - if (options.recursive) { - getSourceFiles(filePath, (err, filesDict) => { - if (err) { - debug(err); - printError(`Failed to upload content: ${err.status} ${err.message}`, options); - } - - const totalBytes = filesDict.reduce((accum, current) => { - console.log(`${humanReadableFileSize(current.size)}\t${current.relative} -> ${contentKey}/${current.relative}`); - return accum + current.size; - }, 0); - console.log(`\nTotal:\n${humanReadableFileSize(totalBytes)}\t${filePath}`); - - debug(`chunksize ${chunkSize}`); - - if (!options.test) { - _.chunk(filesDict, chunkSize) - .reduce((promise, currentChunk) => promise - .then(() => { - debug(`working on chunk of files: ${JSON.stringify(currentChunk)}`); - const promises = currentChunk.map((item) => upload(`${contentKey}/${item.relative}`, item.canonical)); - return Promise.all(promises); - }), Promise.resolve()); - } else { - console.log('Test option set. Nothing uploaded.'); - } - - if (cbTest) { - // for unit tests - cbTest(filesDict); - } - }); - } else { - upload(contentKey, filePath); - } - } - - static upload(contentClient, profile, options, contentKey, filePath) { - const showProgress = !!options.progress; - const contentType = _.get(options, 'contentType', 'application/octet-stream'); - return contentClient.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, filePath, showProgress, contentType).then((response) => { - if (response.success) { - printSuccess('Content successfully uploaded.', options); - } else { - printError(`Failed to upload content: ${response.status} ${response.message}`, options); + const files = getSourceFiles(filePath); + // if (err) { + // debug(err); + // printError(`Failed to upload content: ${err.status} ${err.message}`, options); + // } + const totalBytes = files.reduce((accum, current) => { + console.log(`${humanReadableFileSize(current.size)}\t${current.relative} -> ${contentKey}/${current.relative}`); + return accum + current.size; + }, 0); + console.log(`\nTotal:\n${humanReadableFileSize(totalBytes)}\t${filePath}`); + debug(`chunksize ${chunkSize}`); + if (!options.test) { + return PromisePool + .withConcurrency(chunkSize) + .for(files) + .handleError((err, item, pool) => { + pool.stop(); + process.exit(1); + }) + .process(async (item) => { + // TODO progress + await upload(contentClient, profile, options, `${contentKey}/${item.relative}`, item.canonical, false); + }); } - }) - .catch((err) => { - debug(err); - printError(`Failed to upload content: ${err.status} ${err.message}`, options); - }); + return console.log('Test option set. Nothing uploaded.'); + } + return upload(contentClient, profile, options, contentKey, filePath); } -}; - -module.exports.DeleteContent = class DeleteContent { +} +export class DeleteContent { constructor(program) { this.program = program; } @@ -135,23 +111,21 @@ module.exports.DeleteContent = class DeleteContent { async execute(contentKey, options) { const profile = await loadProfile(options.profile); debug('%s.deleteContent()', profile.name); - const content = new Content(profile.url); content.deleteContent(options.project || profile.project, profile.token, contentKey).then((response) => { if (response.success) { - printSuccess('Content successfully deleted.', options); + printSuccess('Content successfully deleted.', options); } else { printError(`Failed to delete content: ${response.status} ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to delete content: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DownloadContent = class DownloadContent { +} +export class DownloadContent { constructor(program) { this.program = program; } @@ -159,13 +133,11 @@ module.exports.DownloadContent = class DownloadContent { async execute(contentKey, options) { const profile = await loadProfile(options.profile); debug('%s.DownloadContent()', profile.name); - const content = new Content(profile.url); const showProgress = !!options.progress; - content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).catch((err) => { - debug(err); - printError(`Failed to download content: ${err.status} ${err.message}`, options); + debug(err); + printError(`Failed to download content: ${err.message}`, options); }); } -}; +} diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 48b3a791..ec8cd2d9 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,31 +13,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const path = require('path'); -const fs = require('fs'); -const getStream = require('get-stream'); -const yauzl = require('yauzl'); -const yaml = require('js-yaml'); -const { loadProfile } = require('../config'); -const Agents = require('../client/agents'); -const Catalog = require('../client/catalog'); -const Assessments = require('../client/assessments'); -const Connections = require('../client/connections'); -const Experiments = require('../client/experiments'); -const Models = require('../client/models'); -const Actions = require('../client/actions'); -const Content = require('../client/content'); +import _ from 'lodash'; +import debugSetup from 'debug'; +import path from 'path'; +import fs from 'fs'; +import getStream from 'get-stream'; +import * as yauzl from 'yauzl'; +import yaml from 'js-yaml'; +import { loadProfile } from '../config.js'; +import Agents from '../client/agents.js'; +import Catalog from '../client/catalog.js'; +import Assessments from '../client/assessments.js'; +import Connections from '../client/connections.js'; +import Experiments from '../client/experiments.js'; +import Models from '../client/models.js'; +import Actions from '../client/actions.js'; +import Content from '../client/content.js'; +import { + printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, filterObject, +} from './utils.js'; -const _ = { - get: require('lodash/get'), - set: require('lodash/set'), - uniq: require('lodash/uniq'), - size: require('lodash/size'), -}; -const { - printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, filterObject, -} = require('./utils'); +const debug = debugSetup('cortex:cli'); const artifactsDir = '.fabric'; const manifestFile = 'fabric.yaml'; @@ -46,7 +42,6 @@ const manifestMeta = { kind: 'deployment-manifest', cortex: {}, }; - function updateManifest(filepaths) { const manifest = fileExists(manifestFile) ? yaml.load(fs.readFileSync(manifestFile).toString()) : manifestMeta; Object.keys(filepaths).forEach((type) => { @@ -56,7 +51,6 @@ function updateManifest(filepaths) { }); writeToFile(jsonToYaml(manifest), manifestFile); } - async function addDependencies(url, token, project, resourceType, resourceName) { const assessments = new Assessments(url); const dependencies = await assessments.getDependenciesOfResource(token, project, resourceType, resourceName); @@ -71,7 +65,6 @@ async function addDependencies(url, token, project, resourceType, resourceName) } return dependencies; } - const DeployExperimentCommand = class { constructor(program) { this.program = program; @@ -81,13 +74,11 @@ const DeployExperimentCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeployExperimentCommand%s)', profile.name, experimentName); - const manifest = {}; const exports = {}; const experiments = new Experiments(profile.url); const model = new Models(profile.url); const content = new Content(profile.url); - let modelName; let response; response = await experiments.describeExperiment(project, profile.token, experimentName); @@ -97,7 +88,7 @@ const DeployExperimentCommand = class { const filepath = path.join(artifactsDir, 'experiments', `${experimentName}.json`); writeToFile(expDesc, filepath); manifest.experiment = [filepath]; - exports.experiment = experimentName; + // TODO ??? module.exports ??? experimentName; modelName = result.modelId; } else { printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); @@ -112,7 +103,7 @@ const DeployExperimentCommand = class { const filepath = path.join(artifactsDir, 'models', `${modelName}.json`); writeToFile(modelDesc, filepath); manifest.model = [filepath]; - exports.model = modelName; + // TODO ??? module.exports ??? modelName; } else { printError(`Only Published models can be exported. Model ${modelName} is in ${result.status}`); } @@ -142,7 +133,7 @@ const DeployExperimentCommand = class { .map((value) => content.downloadContent(project, profile.token, value, false, path.join(artifactsDir, value)))); } manifest.run = [filepath]; - exports.run = exportRun; + // TODO ??? module.exports ??? exportRun; } else { printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); } @@ -153,9 +144,6 @@ const DeployExperimentCommand = class { printSuccess(`Successfully exported ${JSON.stringify(exports)} in ${artifactsDir} and updated manifest file ${manifestFile}`); } }; - -module.exports.DeployExperimentCommand = DeployExperimentCommand; - const DeployConnectionCommand = class { constructor(program) { this.program = program; @@ -165,7 +153,6 @@ const DeployConnectionCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploymentConnection%s)', profile.name, connectionName); - const connection = new Connections(profile.url); connection.describeConnection(project, profile.token, connectionName).then(async (response) => { if (response.success) { @@ -184,31 +171,7 @@ const DeployConnectionCommand = class { }); } }; - -module.exports.DeployConnectionCommand = DeployConnectionCommand; - -/** - * Cortex deploy command is to export Cortex artifacts (agent, snapshot, skill, action etc) for CI/CD deployment. This command: - * 1. Exports cortex artifacts - * 2. generates manifest files to drive artifacts deployment - * Files are exported/generated in pre-determined layout to support CI/CD deployment - * .fabric - * snapshots - * snapshot1.yaml - * snapshot2.yaml - * agents - * ... - * skills - * ... - * actions - * ... - * fabric.yaml (manifest file) - * - * Currently only exporting agent snapshots. - * - * @type {DeploySnapshotCommand} - */ -module.exports.DeploySnapshotCommand = class { +export const DeploySnapshotCommand = class { constructor(program) { this.program = program; } @@ -252,15 +215,13 @@ module.exports.DeploySnapshotCommand = class { printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); })); }); - Promise.all(promises).then((result) => { updateManifest({ snapshots: result }); printSuccess(`Successfully updated manifest file ${manifestFile}`); }); } }; - -module.exports.DeployCampaignCommand = class { +export const DeployCampaignCommand = class { constructor(program) { this.program = program; } @@ -292,12 +253,10 @@ module.exports.DeployCampaignCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploymentCampaigns(%s)', profile.name, campaignName); - const catalog = new Catalog(profile.url); await catalog.exportCampaign(project, profile.token, campaignName, options.deployable, `${campaignName}.zip`); const filepaths = {}; const promises = []; - yauzl.open(`${campaignName}.zip`, { lazyEntries: true }, (err, zipfile) => { if (err) { throw err; @@ -324,8 +283,7 @@ module.exports.DeployCampaignCommand = class { }); } }; - -module.exports.DeploySkillCommand = class { +export const DeploySkillCommand = class { constructor(program) { this.program = program; } @@ -334,7 +292,6 @@ module.exports.DeploySkillCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploySkillCommand%s)', profile.name, skillName); - const manifest = {}; const exports = {}; const catalog = new Catalog(profile.url); @@ -348,7 +305,6 @@ module.exports.DeploySkillCommand = class { const filepath = path.join(artifactsDir, 'skills', `${skillName}.json`); writeToFile(skillDesc, filepath); manifest.skill = [filepath]; - exports.skill = skillName; const dependencies = await addDependencies(profile.url, profile.token, project, 'Skill', skillName); // export linked connections of skill const connections = dependencies.data.filter((d) => d.type === 'Connection').map((d) => d.name); @@ -375,7 +331,6 @@ module.exports.DeploySkillCommand = class { } })); manifest.action = actions.map((a) => path.join(artifactsDir, 'actions', `${a}.json`)); - exports.action = actions; } // export types of skill const types = dependencies.data.filter((d) => d.type === 'Type').map((d) => d.name); @@ -390,7 +345,6 @@ module.exports.DeploySkillCommand = class { } })); manifest.type = types.map((a) => path.join(artifactsDir, 'types', `${a}.json`)); - exports.type = types; } updateManifest(manifest); printSuccess(`Successfully exported ${JSON.stringify(Object.assign(exports, mlOps))} in ${artifactsDir} and updated manifest file ${manifestFile}`); @@ -400,3 +354,8 @@ module.exports.DeploySkillCommand = class { }); } }; +export { DeployExperimentCommand as experiment }; +export { DeployExperimentCommand as model }; +export { DeployExperimentCommand as run }; +export { DeployExperimentCommand }; +export { DeployConnectionCommand }; diff --git a/src/commands/docker.js b/src/commands/docker.js index 20124143..9030ded5 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -1,5 +1,9 @@ +import debugSetup from 'debug'; +import URL from 'url-parse'; +import { printSuccess, printError, callMe } from './utils.js'; +import { generateJwt, loadProfile } from '../config.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,17 +17,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -const debug = require('debug')('cortex:cli'); -const URL = require('url-parse'); -const { printSuccess, printError } = require('./utils'); -const { callMe } = require('./utils'); -const { - generateJwt, - loadProfile, -} = require('../config'); - -module.exports.DockerLoginCommand = class { +const debug = debugSetup('cortex:cli'); +export default class DockerLoginCommand { constructor(program) { this.program = program; } @@ -31,7 +26,6 @@ module.exports.DockerLoginCommand = class { async execute(options) { const profile = await loadProfile(options.profile); const ttl = options.ttl || '14d'; - try { // TODO fetch this from new endpoint or maybe store this in the profile?? const registryUrl = (new URL(profile.url)).hostname.replace('api', 'private-registry'); @@ -44,4 +38,4 @@ module.exports.DockerLoginCommand = class { printError(`Failed to docker login: ${err.message || err}`, options); } } -}; +} diff --git a/src/commands/experiments.js b/src/commands/experiments.js index fe727678..ea4c4a00 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -1,36 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const _ = require('lodash'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const duration = require('dayjs/plugin/duration'); -const { loadProfile } = require('../config'); -const Experiments = require('../client/experiments'); -const { - printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, - handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - +import fs from 'node:fs'; +import _ from 'lodash'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import duration from 'dayjs/plugin/duration.js'; +import { loadProfile } from '../config.js'; +import Experiments from '../client/experiments.js'; +import { + printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(duration); dayjs.extend(relativeTime); - class ListExperiments { constructor(program) { this.program = program; @@ -40,7 +22,6 @@ class ListExperiments { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listExperiments()', profile.name); - const exp = new Experiments(profile.url); // eslint-disable-next-line consistent-return exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { @@ -57,20 +38,18 @@ class ListExperiments { { column: 'Version', field: '_version', width: 25 }, { column: 'Description', field: 'description', width: 50 }, ]; - handleTable(tableSpec, result.experiments, null, 'No experiments found'); } } else { return handleListFailure(response, options, 'Experiments'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list experiments: ${err.status} - ${err.message}`, options); }); } } - class DescribeExperimentCommand { constructor(program) { this.program = program; @@ -79,7 +58,6 @@ class DescribeExperimentCommand { async execute(experimentName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeExperiment(%s)', profile.name, experimentName); - const exp = new Experiments(profile.url); exp.describeExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { @@ -88,12 +66,11 @@ class DescribeExperimentCommand { printError(`Failed to describe experiment ${experimentName}: ${response.status} - ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe experiment ${experimentName}: ${err.status} - ${err.message}`, options); }); } } - class DeleteExperimentCommand { constructor(program) { this.program = program; @@ -102,7 +79,6 @@ class DeleteExperimentCommand { async execute(experimentName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDeleteExperiment(%s)', profile.name, experimentName); - const exp = new Experiments(profile.url); exp.deleteExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { @@ -111,12 +87,11 @@ class DeleteExperimentCommand { } return handleDeleteFailure(response, options, 'Experiment'); }) - .catch((err) => { + .catch((err) => { printError(`Failed to delete experiment ${experimentName}: ${err.status} - ${err.message}`, options); }); } } - class ListRuns { constructor(program) { this.program = program; @@ -126,7 +101,6 @@ class ListRuns { async execute(experimentName, options) { const profile = await loadProfile(options.profile); debug('%s.listRuns()', profile.name); - const exp = new Experiments(profile.url); const sort = options.sort || JSON.stringify({ startTime: -1 }); // eslint-disable-next-line consistent-return @@ -160,13 +134,12 @@ class ListRuns { return handleListFailure(response, options, 'Experiment-runs'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list runs: ${err.status} - ${err.message}`, options); }); } } - class DescribeRunCommand { constructor(program) { this.program = program; @@ -175,7 +148,6 @@ class DescribeRunCommand { async execute(experimentName, runId, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeRun(%s)', profile.name, runId); - const exp = new Experiments(profile.url); exp.describeRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { @@ -184,12 +156,11 @@ class DescribeRunCommand { printError(`Failed to describe run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); }); } } - class DeleteRunCommand { constructor(program) { this.program = program; @@ -198,7 +169,6 @@ class DeleteRunCommand { async execute(experimentName, runId, options) { const profile = await loadProfile(options.profile); debug('%s.executeDeleteRun(%s)', profile.name, runId); - const exp = new Experiments(profile.url); exp.deleteRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { @@ -206,12 +176,11 @@ class DeleteRunCommand { } return handleDeleteFailure(response, options, 'Run'); }) - .catch((err) => { + .catch((err) => { printError(`Failed to delete run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); }); } } - class DownloadArtifactCommand { constructor(program) { this.program = program; @@ -220,7 +189,6 @@ class DownloadArtifactCommand { async execute(experimentName, runId, artifactName, options) { const profile = await loadProfile(options.profile); debug('%s.downloadArtifact(%s)', profile.name, artifactName); - const exp = new Experiments(profile.url); const showProgress = !!options.progress; // To download content from Secrets @@ -230,7 +198,6 @@ class DownloadArtifactCommand { }); } } - class SaveExperimentCommand { constructor(program) { this.program = program; @@ -239,14 +206,12 @@ class SaveExperimentCommand { async execute(experimentDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveExperiment(%s)', profile.name, experimentDefinition); - - if (!fileExists(experimentDefinition)) { + if (!fileExists(experimentDefinition)) { printError(`File does not exist at: ${experimentDefinition}`); } const experimentDefStr = fs.readFileSync(experimentDefinition); const experiment = parseObject(experimentDefStr, options); debug('%o', experiment); - const experiments = new Experiments(profile.url); experiments.saveExperiment(options.project || profile.project, profile.token, experiment).then((response) => { if (response.success) { @@ -266,11 +231,10 @@ class SaveExperimentCommand { } }) .catch((err) => { - printError(`Failed to save experiment: ${err.status} ${err.message}`, options); - }); + printError(`Failed to save experiment: ${err.status} ${err.message}`, options); + }); } } - class CreateRunCommand { constructor(program) { this.program = program; @@ -279,12 +243,11 @@ class CreateRunCommand { async execute(runDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeCreateRun(%s)', profile.name, runDefinition); - if (!fs.existsSync(runDefinition)) { + if (!fs.existsSync(runDefinition)) { printError(`File does not exist at: ${runDefinition}`); } const runDefinitionStr = fs.readFileSync(runDefinition); const run = parseObject(runDefinitionStr, options); - const experiments = new Experiments(profile.url); experiments.createRun(options.project || profile.project, profile.token, run).then((response) => { if (response.success) { @@ -305,11 +268,10 @@ class CreateRunCommand { } }) .catch((err) => { - printError(`Failed to create run: ${err.status} ${err.message}`, options); - }); + printError(`Failed to create run: ${err.status} ${err.message}`, options); + }); } } - class UploadArtifactCommand { constructor(program) { this.program = program; @@ -318,11 +280,8 @@ class UploadArtifactCommand { async execute(experimentName, runId, filePath, artifact, options) { const profile = await loadProfile(options.profile); debug('%s.executeUploadArtifact()', profile.name); - const experiments = new Experiments(profile.url); - const upload = _.partial(UploadArtifactCommand.upload, experiments, profile, options); - upload(filePath, artifact, experimentName, runId); } @@ -336,14 +295,23 @@ class UploadArtifactCommand { printError(`Failed to upload Artifact: ${response.status} ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to upload Artifact: ${err.status} ${err.message}`, options); }); } } - -module.exports = { +export { ListExperiments }; +export { ListRuns }; +export { DescribeExperimentCommand }; +export { DescribeRunCommand }; +export { DeleteRunCommand }; +export { DeleteExperimentCommand }; +export { DownloadArtifactCommand }; +export { SaveExperimentCommand }; +export { CreateRunCommand }; +export { UploadArtifactCommand }; +export default { ListExperiments, ListRuns, DescribeExperimentCommand, diff --git a/src/commands/models.js b/src/commands/models.js index 0dcfd63a..71d82ec6 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -1,39 +1,23 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const fs = require('fs'); +import fs from 'node:fs'; +import get from 'lodash/get.js'; +import pick from 'lodash/pick.js'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Models from '../client/models.js'; +import Experiments from '../client/experiments.js'; +import { + LISTTABLEFORMAT, RUNTABLEFORMAT, printExtendedLogs, handleListFailure, handleDeleteFailure, printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, getFilteredOutput, +} from './utils.js'; const _ = { - get: require('lodash/get'), - pick: require('lodash/pick'), + get, + pick, }; -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Models = require('../client/models'); -const Experiments = require('../client/experiments'); -const { - LISTTABLEFORMAT, RUNTABLEFORMAT, printExtendedLogs, handleListFailure, handleDeleteFailure, - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, - getFilteredOutput, -} = require('./utils'); - +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -module.exports.SaveModelCommand = class SaveModelCommand { +export class SaveModelCommand { constructor(program) { this.program = program; } @@ -41,13 +25,12 @@ module.exports.SaveModelCommand = class SaveModelCommand { async execute(modelDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveModel(%s)', profile.name, modelDefinition); - if (!fileExists(modelDefinition)) { + if (!fileExists(modelDefinition)) { printError(`File does not exist at: ${modelDefinition}`); } const modelDefStr = fs.readFileSync(modelDefinition); const model = parseObject(modelDefStr, options); debug('%o', model); - const models = new Models(profile.url); models.saveModel(options.project || profile.project, profile.token, model).then((response) => { if (response.success) { @@ -68,12 +51,11 @@ module.exports.SaveModelCommand = class SaveModelCommand { } }) .catch((err) => { - printError(`Failed to save model: ${err.status} ${err.message}`, options); - }); + printError(`Failed to save model: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.ListModelsCommand = class ListModelsCommand { +} +export class ListModelsCommand { constructor(program) { this.program = program; } @@ -92,25 +74,19 @@ module.exports.ListModelsCommand = class ListModelsCommand { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - LISTTABLEFORMAT, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No models found', - ); + handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No models found'); } } else { return handleListFailure(response, options, 'Models'); } }) .catch((err) => { - debug(err); - printError(`Failed to list models: ${err.status} ${err.message}`, options); - }); + debug(err); + printError(`Failed to list models: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.ListModelRunsCommand = class ListModelsCommand { +} +export class ListModelRunsCommand { constructor(program) { this.program = program; } @@ -129,25 +105,20 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - RUNTABLEFORMAT, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No runs found', - ); + handleTable(RUNTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No runs found'); } } else { return handleListFailure(response, options, 'Model-runs'); } }) .catch((err) => { - debug(err); - printError(`Failed to list model runs: ${err.status} ${err.message}`, options); - }); + debug(err); + printError(`Failed to list model runs: ${err.status} ${err.message}`, options); + }); } -}; +} -module.exports.DescribeModelCommand = class DescribeModelCommand { +export class DescribeModelCommand { constructor(program) { this.program = program; } @@ -163,13 +134,12 @@ module.exports.DescribeModelCommand = class DescribeModelCommand { printError(`Failed to describe model ${modelName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe model ${modelName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DeleteModelCommand = class { +} +export const DeleteModelCommand = class { constructor(program) { this.program = program; } @@ -180,19 +150,18 @@ module.exports.DeleteModelCommand = class { const models = new Models(profile.url); models.deleteModel(options.project || profile.project, profile.token, modelName) .then((response) => { - if (response && response.success) { - const result = filterObject(response, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Model'); - }) + if (response && response.success) { + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + return handleDeleteFailure(response, options, 'Model'); + }) .catch((err) => { - printError(`Failed to delete model: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete model: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UpdateModelStatusCommand = class UpdateModelStatusCommand { +export class UpdateModelStatusCommand { constructor(program) { this.program = program; } @@ -211,16 +180,14 @@ module.exports.UpdateModelStatusCommand = class UpdateModelStatusCommand { printError(`Failed to publish model ${modelName}: ${err.status} ${err.message}`, options); } } -}; - -module.exports.RegisterModelCommand = class RegisterModelCommand { +} +export class RegisterModelCommand { constructor(program) { this.program = program; } async execute(modelDefinition, options) { const profile = await loadProfile(options.profile); - function printErrorDetails(response) { const tableSpec = [ { column: 'Path', field: 'path', width: 50 }, @@ -230,16 +197,12 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { printTable(tableSpec, response.details); printError(''); // Just exit } - const experiments = new Experiments(profile.url); - try { debug('%s.executeRegisterModel(%s)', profile.name, modelDefinition); - const modelDefStr = fs.readFileSync(modelDefinition); const model = parseObject(modelDefStr, options); debug('%o', model); - const saveExperimentResponse = await experiments.saveExperiment(options.project || profile.project, profile.token, model); if (!saveExperimentResponse.success) { if (saveExperimentResponse.details) { @@ -261,10 +224,7 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { } const runId = _.get(saveRunResponse, 'result.runId', ''); const contentType = _.get(options, 'contentType', 'application/octet-stream'); - const uploadArtifactResponse = await experiments.uploadArtifact( - options.project || profile.project, profile.token, - experimentName, runId, model.filePath, model.artifact, contentType, - ); + const uploadArtifactResponse = await experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, model.filePath, model.artifact, contentType); if (uploadArtifactResponse.success) { printSuccess('Artifact successfully uploaded.', options); printSuccess(JSON.stringify(saveRunResponse.result, null, 2), options); @@ -275,4 +235,4 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { printError(`Failed to upload model: ${err.status} ${err.message}`, options); } } -}; +} diff --git a/src/commands/projects.js b/src/commands/projects.js index 70fd9b0e..697d1f78 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -1,29 +1,14 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const ApiServerClient = require('../client/apiServerClient'); -const { - printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, - getFilteredOutput, -} = require('./utils'); +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import ApiServerClient from '../client/apiServerClient.js'; +import { + printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, getFilteredOutput, +} from './utils.js'; -module.exports.CreateProjectCommand = class CreateProjectCommand { +const debug = debugSetup('cortex:cli'); +export class CreateProjectCommand { constructor(program) { this.program = program; } @@ -52,9 +37,8 @@ module.exports.CreateProjectCommand = class CreateProjectCommand { printError(`Failed to save project: ${err.message}`, options); } } -}; - -module.exports.ListProjectsCommand = class ListProjectsCommand { +} +export class ListProjectsCommand { constructor(program) { this.program = program; } @@ -85,9 +69,8 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Projects'); } } -}; - -module.exports.DescribeProjectCommand = class DescribeProjectCommand { +} +export class DescribeProjectCommand { constructor(program) { this.program = program; } @@ -97,7 +80,6 @@ module.exports.DescribeProjectCommand = class DescribeProjectCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeProject(%s)', profile.name, projectName); const cli = new ApiServerClient(profile.url); - try { const response = await cli.getProject(profile.token, projectName); getFilteredOutput(response, options); @@ -105,9 +87,8 @@ module.exports.DescribeProjectCommand = class DescribeProjectCommand { printError(`Failed to describe project: ${err.status} ${err.message}`, options); } } -}; - -module.exports.DeleteProjectCommand = class DeleteProjectCommand { +} +export class DeleteProjectCommand { constructor(program) { this.program = program; } @@ -128,4 +109,4 @@ module.exports.DeleteProjectCommand = class DeleteProjectCommand { printError(`Failed to delete project: ${err.message}`, options); } } -}; +} diff --git a/src/commands/roles.js b/src/commands/roles.js index 9c212ec4..da9f2955 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -1,5 +1,11 @@ +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import Roles from '../client/roles.js'; +import { + printSuccess, printError, filterObject, EXTERNALROLESFORMAT, handleTable, getFilteredOutput, +} from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,14 +19,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Roles = require('../client/roles'); -const { - printSuccess, printError, filterObject, EXTERNALROLESFORMAT, handleTable, - getFilteredOutput, -} = require('./utils'); - +const debug = debugSetup('cortex:cli'); function createGrant(options) { return { project: options.project, @@ -29,8 +28,7 @@ function createGrant(options) { effect: options.deny ? 'deny' : 'allow', }; } - -module.exports.RoleDeleteCommand = class { +export const RoleDeleteCommand = class { constructor(program) { this.program = program; } @@ -38,9 +36,7 @@ module.exports.RoleDeleteCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); debug('%s.deleteRole(%s)', profile.name, role); - const client = new Roles(profile.url, role); - client.deleteRole(profile.token).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -50,12 +46,11 @@ module.exports.RoleDeleteCommand = class { } }) .catch((err) => { - printError(`Failed to delete role : ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleCreateCommand = class { +export const RoleCreateCommand = class { constructor(program) { this.program = program; } @@ -65,9 +60,7 @@ module.exports.RoleCreateCommand = class { const form = createGrant(options); form.role = role; debug('%s.createRole(%s)', profile.name); - const client = new Roles(profile.url); - client.createRole(profile.token, form).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -77,12 +70,11 @@ module.exports.RoleCreateCommand = class { } }) .catch((err) => { - printError(`Failed to create role : ${err.status} ${err.message}`, options); - }); + printError(`Failed to create role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleAssignCommand = class { +export const RoleAssignCommand = class { constructor(program) { this.program = program; } @@ -90,15 +82,13 @@ module.exports.RoleAssignCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); debug('%s.grantRole(%s)', profile.name, role); - const client = new Roles(profile.url, role); const call = (deleteFlag, token, users) => { if (deleteFlag) { return client.removeUsersFromRole(token, users); } - return client.addUsersToRole(token, users); + return client.addUsersToRole(token, users); }; - call(options.delete, profile.token, options.users).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -109,13 +99,12 @@ module.exports.RoleAssignCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} user from role : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} user from role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleGrantCommand = class { +export const RoleGrantCommand = class { constructor(program) { this.program = program; } @@ -124,15 +113,13 @@ module.exports.RoleGrantCommand = class { const profile = await loadProfile(options.profile); const form = createGrant(options); debug('%s.grantRole(%s)', profile.name, role); - const client = new Roles(profile.url, role); const call = (deleteFlag, token, body) => { if (deleteFlag) { return client.removeGrantFromRole(token, body); } - return client.createGrantForRole(token, body); + return client.createGrantForRole(token, body); }; - call(options.delete, profile.token, form).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -143,13 +130,12 @@ module.exports.RoleGrantCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'delete' : 'create'; - printError(`Failed to ${func} grant for role : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleDescribeCommand = class { +export const RoleDescribeCommand = class { constructor(program) { this.program = program; } @@ -157,9 +143,7 @@ module.exports.RoleDescribeCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); debug('%s.describeForRole(%s)', profile.name, role); - const flags = []; - if (options.grants) { flags.push('grants'); } @@ -176,12 +160,11 @@ module.exports.RoleDescribeCommand = class { } }) .catch((err) => { - printError(`Failed to describe role : ${err.status} ${err.message}`, options); - }); + printError(`Failed to describe role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleListCommand = class { +export const RoleListCommand = class { constructor(program) { this.program = program; } @@ -189,9 +172,7 @@ module.exports.RoleListCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listRole(%s)', profile.name); - const flags = []; - const client = new Roles(profile.url, flags); client.listRoles(profile.token, options.project).then((response) => { if (response.success) { @@ -207,12 +188,11 @@ module.exports.RoleListCommand = class { } }) .catch((err) => { - printError(`Failed to list roles : ${err.status} ${err.message}`, options); - }); + printError(`Failed to list roles : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleProjectAssignCommand = class { +export const RoleProjectAssignCommand = class { constructor(program) { this.program = program; } @@ -220,7 +200,6 @@ module.exports.RoleProjectAssignCommand = class { async execute(project, options) { const profile = await loadProfile(options.profile); debug('%s.assignRoleProject(%s)', profile.name, project); - const client = new Roles(profile.url, null); const call = (deleteFlag, token, assignProject, roles) => { if (deleteFlag) { @@ -228,7 +207,6 @@ module.exports.RoleProjectAssignCommand = class { } return client.addRolesToProject(token, assignProject, roles); }; - call(options.delete, profile.token, project, options.roles).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -239,13 +217,12 @@ module.exports.RoleProjectAssignCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} roles from project : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} roles from project : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExternalGroupListCommand = class { +export const ExternalGroupListCommand = class { constructor(program) { this.program = program; } @@ -253,7 +230,6 @@ module.exports.ExternalGroupListCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listExternalGroup(%s)', profile.name); - const client = new Roles(profile.url, null); client.listExternalGroups(profile.token).then((response) => { if (response.success) { @@ -269,12 +245,11 @@ module.exports.ExternalGroupListCommand = class { } }) .catch((err) => { - printError(`Failed to list external groups : ${err.status} ${err.message}`, options); - }); + printError(`Failed to list external groups : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExternalGroupDescribeCommand = class { +export const ExternalGroupDescribeCommand = class { constructor(program) { this.program = program; } @@ -282,9 +257,7 @@ module.exports.ExternalGroupDescribeCommand = class { async execute(externalGroup, options) { const profile = await loadProfile(options.profile); debug('%s.describeExternalGroup(%s)', profile.name, externalGroup); - const flags = []; - if (options.roles) { flags.push('roles'); } @@ -301,12 +274,11 @@ module.exports.ExternalGroupDescribeCommand = class { } }) .catch((err) => { - printError(`Failed to describe external group : ${err.status} ${err.message}`, options); - }); + printError(`Failed to describe external group : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExternalGroupDeleteCommand = class { +export const ExternalGroupDeleteCommand = class { constructor(program) { this.program = program; } @@ -314,9 +286,7 @@ module.exports.ExternalGroupDeleteCommand = class { async execute(externalGroup, options) { const profile = await loadProfile(options.profile); debug('%s.deleteExternalGroup(%s)', profile.name, externalGroup); - const client = new Roles(profile.url, null); - client.deleteExternalGroup(profile.token, externalGroup).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -326,12 +296,11 @@ module.exports.ExternalGroupDeleteCommand = class { } }) .catch((err) => { - printError(`Failed to delete external group : ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete external group : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExternalGroupAssignCommand = class { +export const ExternalGroupAssignCommand = class { constructor(program) { this.program = program; } @@ -339,7 +308,6 @@ module.exports.ExternalGroupAssignCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.externalGroupAssign(%s)', profile.name, options.role); - const client = new Roles(profile.url, options.role); const call = (deleteFlag, token, externalGroup) => { if (deleteFlag) { @@ -347,7 +315,6 @@ module.exports.ExternalGroupAssignCommand = class { } return client.addExternalGroupToRole(token, externalGroup); }; - call(options.delete, profile.token, options.externalGroup).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -358,10 +325,8 @@ module.exports.ExternalGroupAssignCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'unassign' : 'assign'; - printError( - `Failed to ${func} external group from role : ${err.status} ${err.message}`, options, - ); - }); + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} external group from role : ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 563d983d..4ecd417d 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -1,33 +1,16 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const getOr = require('lodash/fp/getOr'); -const isUndefined = require('lodash/fp/isUndefined'); -const map = require('lodash/fp/map'); - -const { loadProfile } = require('../config'); -const Secrets = require('../client/secrets'); -const { - printSuccess, printError, filterObject, parseObject, printTable, handleTable, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListSecretsCommand = class { +import fs from 'node:fs'; +import debugSetup from 'debug'; +import getOr from 'lodash/fp/getOr.js'; +import isUndefined from 'lodash/fp/isUndefined.js'; +import map from 'lodash/fp/map.js'; +import { loadProfile } from '../config.js'; +import Secrets from '../client/secrets.js'; +import { + printSuccess, printError, filterObject, parseObject, printTable, handleTable, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); +export const ListSecretsCommand = class { constructor(program) { this.program = program; } @@ -35,32 +18,30 @@ module.exports.ListSecretsCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listsecrets(%s)', profile.name); - const secrets = new Secrets(profile.url); secrets.listSecrets(options.project || profile.project, profile.token) .then((response) => { - if (response.success) { - const { result } = response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - const tableSpec = [ - { column: 'Secret Key Name', field: 'keyName', width: 50 }, - ]; - handleTable(tableSpec, map((x) => ({ keyName: x }), result), null, 'No secrets found'); - } + if (response.success) { + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - printError(`Failed to list secrets: ${response.message}`, options); + const tableSpec = [ + { column: 'Secret Key Name', field: 'keyName', width: 50 }, + ]; + handleTable(tableSpec, map((x) => ({ keyName: x }), result), null, 'No secrets found'); } - }) + } else { + printError(`Failed to list secrets: ${response.message}`, options); + } + }) .catch((err) => { - printError(`Failed to list secrets : ${err.status} ${err.message}`, options); - }); + printError(`Failed to list secrets : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ReadSecretsCommand = class { +export const ReadSecretsCommand = class { constructor(program) { this.program = program; } @@ -68,7 +49,6 @@ module.exports.ReadSecretsCommand = class { async execute(keyName, options) { const profile = await loadProfile(options.profile); debug('%s.readsecret(%s)', profile.name, keyName); - const secrets = new Secrets(profile.url); secrets.readSecret(options.project || profile.project, profile.token, keyName).then((response) => { if (response.success) { @@ -86,12 +66,11 @@ module.exports.ReadSecretsCommand = class { } }) .catch((err) => { - printError(`Failed to read secure secret : ${err.status} ${err.message}`, options); - }); + printError(`Failed to read secure secret : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.WriteSecretsCommand = class { +export const WriteSecretsCommand = class { constructor(program) { this.program = program; } @@ -99,7 +78,6 @@ module.exports.WriteSecretsCommand = class { async execute(keyName, value, options) { const profile = await loadProfile(options.profile); debug('%s.writeSecret(%s)', profile.name, keyName); - let data = value; if (options.data) { try { @@ -111,17 +89,14 @@ module.exports.WriteSecretsCommand = class { const dataStr = fs.readFileSync(options.dataFile); data = parseObject(dataStr, options); } - if (isUndefined(data)) { - return printError('Failed to write secret : no value specified', options); + return printError('Failed to write secret : no value specified', options); } - // FAB-1775: validate secret key name const invalidCharsRegex = /^\w+([./-]?\w+)*$/; if (!invalidCharsRegex.test(keyName)) { return printError(`Failed to write secret : keyName did not conform to regex ${JSON.stringify(invalidCharsRegex)}`, options); } - const secrets = new Secrets(profile.url); return secrets.writeSecret(options.project || profile.project, profile.token, keyName, data).then((response) => { if (response.success) { @@ -129,13 +104,12 @@ module.exports.WriteSecretsCommand = class { } return printError(`Failed to write secret: ${response.status} ${response.message}`, options); }) - .catch((err) => { + .catch((err) => { printError(`Failed to write secret : ${err.status} ${err.message}`, options); }); } }; - -module.exports.DeleteSecretCommand = class { +export const DeleteSecretCommand = class { constructor(program) { this.program = program; } @@ -143,7 +117,6 @@ module.exports.DeleteSecretCommand = class { async execute(keyName, options) { const profile = await loadProfile(options.profile); debug('%s.deleteSecret(%s)', profile.name, keyName); - const secretsClient = new Secrets(profile.url); secretsClient.deleteSecret(options.project || profile.project, profile.token, keyName).then((response) => { if (response.success) { @@ -152,7 +125,7 @@ module.exports.DeleteSecretCommand = class { } return handleDeleteFailure(response, options, 'Secret'); }) - .catch((err) => { + .catch((err) => { printError(`Failed to delete secure secret : ${err.status} ${err.message}`, options); }); } diff --git a/src/commands/sessions.js b/src/commands/sessions.js index bef5ff36..2b36ecde 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -1,36 +1,16 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const fs = require('fs'); -const _ = require('lodash'); +import fs from 'node:fs'; +import _ from 'lodash'; +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import Sessions from '../client/sessions.js'; +import { + SESSIONTABLEFORMAT, formatValidationPath, handleListFailure, getFilteredOutput, -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Sessions = require('../client/sessions'); -const { - SESSIONTABLEFORMAT, - formatValidationPath, - handleListFailure, - getFilteredOutput, -} = require('./utils'); + printSuccess, printError, filterObject, parseObject, printTable, handleTable, +} from './utils.js'; -const { - printSuccess, printError, filterObject, parseObject, printTable, handleTable, -} = require('./utils'); - -module.exports.SaveSessionCommand = class SaveSessionCommand { +const debug = debugSetup('cortex:cli'); +export class SaveSessionCommand { constructor(program) { this.program = program; } @@ -44,7 +24,6 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { const sessionDefStr = fs.readFileSync(sessionDefinition); const session = parseObject(sessionDefStr, options); debug('%o', session); - const sessions = new Sessions(profile.url); sessions.saveSession(options.project || profile.project, profile.token, session).then((response) => { if (response.success) { @@ -64,12 +43,11 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { } }) .catch((err) => { - printError(`Failed to save session: ${err.status} ${err.message}`, options); - }); + printError(`Failed to save session: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.ListSessionsCommand = class ListSessionsCommand { +} +export class ListSessionsCommand { constructor(program) { this.program = program; } @@ -90,13 +68,12 @@ module.exports.ListSessionsCommand = class ListSessionsCommand { return handleListFailure(response, options, 'Sessions'); }) .catch((err) => { - debug(err); - printError(`Failed to list sessions: ${err.status} ${err.message}`, options); - }); + debug(err); + printError(`Failed to list sessions: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.DescribeSessionCommand = class DescribeSessionCommand { +} +export class DescribeSessionCommand { constructor(program) { this.program = program; } @@ -112,13 +89,12 @@ module.exports.DescribeSessionCommand = class DescribeSessionCommand { printError(`Failed to describe session ${sessionName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe session ${sessionName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DeleteSessionCommand = class DeleteSessionCommand { +} +export class DeleteSessionCommand { constructor(program) { this.program = program; } @@ -129,15 +105,15 @@ module.exports.DeleteSessionCommand = class DeleteSessionCommand { const sessions = new Sessions(profile.url); sessions.deleteSession(options.project || profile.project, profile.token, sessionName) .then((response) => { - if (response && response.success) { - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Session deletion failed: ${response.status} ${response.message}.`, options); - } - }) + if (response && response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Session deletion failed: ${response.status} ${response.message}.`, options); + } + }) .catch((err) => { - printError(`Failed to delete session: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete session: ${err.status} ${err.message}`, options); + }); } -}; +} diff --git a/src/commands/skills.js b/src/commands/skills.js index 73df064d..f0dc25d6 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -1,36 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Catalog = require('../client/catalog'); -const Agent = require('../client/agents'); +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Catalog from '../client/catalog.js'; +import Agent from '../client/agents.js'; +import { + printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.SaveSkillCommand = class SaveSkillCommand { +export class SaveSkillCommand { constructor(program) { this.program = program; } @@ -63,7 +45,6 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const scaleCount = parseInt(options.scaleCount, 10); skill.actions.map((a) => a.scaleCount = scaleCount); } - if (options.podspec) { const paramsStr = fs.readFileSync(options.podspec); const podSpec = parseObject(paramsStr, options); @@ -93,9 +74,8 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { printError(`Failed to save skill: ${_.get(err, 'status', '')} ${_.get(err, 'response.body.error', err.message)}`, options); } } -}; - -module.exports.ListSkillsCommand = class ListSkillsCommand { +} +export class ListSkillsCommand { constructor(program) { this.program = program; } @@ -103,14 +83,11 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListSkills()', profile.name); - const catalog = new Catalog(profile.url); try { const status = !_.get(options, 'nostatus', false); // default show status, if nostatus==true status == false const shared = !_.get(options, 'noshared', false); - const response = await catalog.listSkills( - options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort, - ); + const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort); if (response.success) { let result = response.skills; const tableFormat = LISTTABLEFORMAT; @@ -129,21 +106,15 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { return getFilteredOutput(result, options); } printExtendedLogs(result, options); - return handleTable( - tableFormat, - _.sortBy(result, options.sort ? [] : ['name']), - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No skills found', - ); + return handleTable(tableFormat, _.sortBy(result, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No skills found'); } return handleListFailure(response, options, 'Skills'); } catch (err) { return printError(`Failed to list skills: ${err.status} ${err.message}`, options); } } -}; - -module.exports.DescribeSkillCommand = class DescribeSkillCommand { +} +export class DescribeSkillCommand { constructor(program) { this.program = program; } @@ -151,7 +122,6 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { async execute(skillName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeSkill(%s)', profile.name, skillName); - const catalog = new Catalog(profile.url); try { const response = await catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose, options.output); @@ -161,9 +131,8 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { return printError(`Failed to describe skill ${skillName}: ${err.status} ${err.message}`, options); } } -}; - -module.exports.UndeploySkillCommand = class UndeploySkillCommand { +} +export class UndeploySkillCommand { constructor(program) { this.program = program; } @@ -185,9 +154,8 @@ module.exports.UndeploySkillCommand = class UndeploySkillCommand { } })); } -}; - -module.exports.SkillLogsCommand = class SkillLogsCommand { +} +export class SkillLogsCommand { constructor(program) { this.program = program; } @@ -204,12 +172,11 @@ module.exports.SkillLogsCommand = class SkillLogsCommand { } }) .catch((err) => { - printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${err.status} ${err.message}`, options); - }); + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.DeploySkillCommand = class DeploySkillCommand { +} +export class DeploySkillCommand { constructor(program) { this.program = program; } @@ -231,9 +198,8 @@ module.exports.DeploySkillCommand = class DeploySkillCommand { } })); } -}; - -module.exports.InvokeSkillCommand = class InvokeSkillCommand { +} +export class InvokeSkillCommand { constructor(program) { this.program = program; } @@ -241,7 +207,6 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { async execute(skillName, inputName, options) { const profile = await loadProfile(options.profile); debug('%s.executeInvokeSkill(%s/%s)', profile.name, skillName, inputName); - let params = {}; if (options.params) { try { @@ -256,7 +221,6 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); } - const agent = new Agent(profile.url); agent.invokeSkill(options.project || profile.project, profile.token, skillName, inputName, params, options.sync).then((response) => { if (response.success) { @@ -267,17 +231,16 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { } }) .catch((err) => { - if (err.response && err.response.body) { - debug('Raw error response: %o', err.response.body); - printError(`Failed to invoke skill(${err.status} ${err.message}): ${err.response.body.error}`, options); - } else { - printError(`Failed to invoke skill: ${err.status} ${err.message}`, options); - } - }); + if (err.response && err.response.body) { + debug('Raw error response: %o', err.response.body); + printError(`Failed to invoke skill(${err.status} ${err.message}): ${err.response.body.error}`, options); + } else { + printError(`Failed to invoke skill: ${err.status} ${err.message}`, options); + } + }); } -}; - -module.exports.DeleteSkillCommand = class DeleteSkillCommand { +} +export class DeleteSkillCommand { constructor(program) { this.program = program; } @@ -288,17 +251,17 @@ module.exports.DeleteSkillCommand = class DeleteSkillCommand { const catalog = new Catalog(profile.url); catalog.deleteSkill(options.project || profile.project, profile.token, skillName) .then((response) => { - if (response.success) { - const result = filterObject(response, options); - if (options.json) { - return printSuccess(JSON.stringify(result, null, 2), options); - } - return printSuccess(result.message); + if (response.success) { + const result = filterObject(response, options); + if (options.json) { + return printSuccess(JSON.stringify(result, null, 2), options); } - return handleDeleteFailure(response, options, 'Skill'); - }) + return printSuccess(result.message); + } + return handleDeleteFailure(response, options, 'Skill'); + }) .catch((err) => { - printError(`Failed to delete skill: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete skill: ${err.status} ${err.message}`, options); + }); } -}; +} diff --git a/src/commands/tasks.js b/src/commands/tasks.js index e3b4725f..82689248 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -1,5 +1,14 @@ +import debugSetup from 'debug'; +import _ from 'lodash'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Tasks from '../client/tasks.js'; +import { + printSuccess, printError, handleTable, printExtendedLogs, getFilteredOutput, +} from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,29 +22,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Tasks = require('../client/tasks'); -const { - printSuccess, printError, handleTable, printExtendedLogs, - getFilteredOutput, -} = require('./utils'); - +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - const TASK_LIST_TABLE = [ - { column: 'Name', field: 'name', width: 60 }, - { column: 'Activation Id', field: 'activationId', width: 40 }, - { column: 'Skill Name', field: 'skillName', width: 40 }, - { column: 'Status', field: 'state', width: 20 }, - { column: 'Started', field: 'start', width: 25 }, - { column: 'Took', field: 'took', width: 25 }, - ]; - + { column: 'Name', field: 'name', width: 60 }, + { column: 'Activation Id', field: 'activationId', width: 40 }, + { column: 'Skill Name', field: 'skillName', width: 40 }, + { column: 'Status', field: 'state', width: 20 }, + { column: 'Started', field: 'start', width: 25 }, + { column: 'Took', field: 'took', width: 25 }, +]; const SCHED_LIST_TABLE = [ { column: 'Name', field: 'name', width: 60 }, { column: 'Skill Name', field: 'skillName', width: 40 }, @@ -43,8 +39,7 @@ const SCHED_LIST_TABLE = [ { column: 'Started', field: 'start', width: 25 }, { column: 'Schedule', field: 'schedule', width: 12 }, ]; - -module.exports.ListTasksCommand = class { +export const ListTasksCommand = class { constructor(program) { this.program = program; } @@ -68,7 +63,6 @@ module.exports.ListTasksCommand = class { if (_.isEmpty(taskList)) { return printSuccess('No tasks found'); } - // Old response format ["taskName", "taskName",...] if (_.isString(taskList[0])) { taskList = _.map(taskList, (t) => ({ name: t })); @@ -78,7 +72,7 @@ module.exports.ListTasksCommand = class { } taskList = _.map(taskList, (t) => ({ ...t, - state: t.status || t.state, // remap just in case.. + state: t.status || t.state, start: t.startTime ? dayjs(t.startTime).fromNow() : '-', took: t.endTime ? dayjs(t.endTime).from(dayjs(t.startTime), true) : '-', })); @@ -110,8 +104,7 @@ module.exports.ListTasksCommand = class { } } }; - -module.exports.DescribeTaskCommand = class { +export const DescribeTaskCommand = class { constructor(program) { this.program = program; } @@ -120,7 +113,6 @@ module.exports.DescribeTaskCommand = class { const profile = await loadProfile(options.profile); const queryParams = {}; debug('%s.describeTask(%s)', profile.name, taskName); - if (options.k8s) queryParams.k8s = true; const tasks = new Tasks(profile.url); try { @@ -134,8 +126,7 @@ module.exports.DescribeTaskCommand = class { } } }; - -module.exports.TaskLogsCommand = class TaskLogsCommand { +export class TaskLogsCommand { constructor(program) { this.program = program; } @@ -154,9 +145,8 @@ module.exports.TaskLogsCommand = class TaskLogsCommand { return printError(`Failed to query Task Logs "${taskName}": ${err.status} ${err.message}`, options); } } -}; - -module.exports.TaskDeleteCommand = class TaskDeleteCommand { +} +export class TaskDeleteCommand { constructor(program) { this.program = program; } @@ -175,9 +165,8 @@ module.exports.TaskDeleteCommand = class TaskDeleteCommand { return printError(`Error deleting ${taskName}: ${err.status} ${err.message}`, options); } } -}; - -module.exports.TaskPauseCommand = class TaskPauseCommand { +} +export class TaskPauseCommand { constructor(program) { this.program = program; } @@ -198,28 +187,26 @@ module.exports.TaskPauseCommand = class TaskPauseCommand { return printError(`Error pausing "${taskNames.join(',')}": ${err.status} ${err.message}`, options); } } -}; - -module.exports.TaskResumeCommand = class TaskResumeCommand { - constructor(program) { - this.program = program; - } +} +export class TaskResumeCommand { + constructor(program) { + this.program = program; + } - async execute(taskNames, options) { - const profile = await loadProfile(options.profile); - debug('%s.executeResumeTask(%s)', profile.name, taskNames.join(',')); - const tasks = new Tasks(profile.url); - try { - return Promise.all(taskNames.map(async (taskName) => { - const response = await tasks.resumeTask(options.project || profile.project, profile.token, taskName, options.verbose); - if (response.success) { - return printSuccess(JSON.stringify(response), options); - } - return printError(`Failed to resume task "${taskName}": ${response.message}`, options); - })); - } catch (err) { - return printError(`Error resume tasks "${taskNames.join(',')}": ${err.status} ${err.message}`, options); - } + async execute(taskNames, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeResumeTask(%s)', profile.name, taskNames.join(',')); + const tasks = new Tasks(profile.url); + try { + return Promise.all(taskNames.map(async (taskName) => { + const response = await tasks.resumeTask(options.project || profile.project, profile.token, taskName, options.verbose); + if (response.success) { + return printSuccess(JSON.stringify(response), options); + } + return printError(`Failed to resume task "${taskName}": ${response.message}`, options); + })); + } catch (err) { + return printError(`Error resume tasks "${taskNames.join(',')}": ${err.status} ${err.message}`, options); } -}; - + } +} diff --git a/src/commands/types.js b/src/commands/types.js index ff85e3b7..9cebb6b9 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -1,37 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Catalog = require('../client/catalog'); -const { - LISTTABLEFORMAT, filterObject, printExtendedLogs, handleListFailure, - getFilteredOutput, -} = require('./utils'); - -const { - printSuccess, printError, parseObject, handleTable, -} = require('./utils'); - +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Catalog from '../client/catalog.js'; +import { + LISTTABLEFORMAT, filterObject, printExtendedLogs, handleListFailure, getFilteredOutput, + + printSuccess, printError, parseObject, handleTable, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -module.exports.SaveTypeCommand = class SaveTypeCommand { +export class SaveTypeCommand { constructor(program) { this.program = program; } @@ -43,11 +24,9 @@ module.exports.SaveTypeCommand = class SaveTypeCommand { const typeDefStr = fs.readFileSync(typeDefinition); const type = parseObject(typeDefStr, options); debug('%o', type); - let normalizedType = {}; if (!('types' in type)) normalizedType.types = [type]; else normalizedType = type; - const catalog = new Catalog(profile.url); const response = await catalog.saveType(options.project || profile.project, profile.token, normalizedType); if (response.success) { @@ -58,9 +37,8 @@ module.exports.SaveTypeCommand = class SaveTypeCommand { return printError(`Failed to save type: ${err.status} ${err.message}`, options); } } -}; - -module.exports.ListTypesCommand = class ListTypesCommand { +} +export class ListTypesCommand { constructor(program) { this.program = program; } @@ -69,7 +47,6 @@ module.exports.ListTypesCommand = class ListTypesCommand { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListTypes()', profile.name); - const catalog = new Catalog(profile.url); // eslint-disable-next-line consistent-return catalog.listTypes(options.project || profile.project, profile.token, options.limit, options.skip, options.sort).then((response) => { @@ -80,24 +57,18 @@ module.exports.ListTypesCommand = class ListTypesCommand { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - LISTTABLEFORMAT, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No types found', - ); + handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No types found'); } } else { return handleListFailure(response, options, 'Types'); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to list types: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DescribeTypeCommand = class DescribeTypeCommand { +} +export class DescribeTypeCommand { constructor(program) { this.program = program; } @@ -105,7 +76,6 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { async execute(typeName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeType(%s)', profile.name, typeName); - const catalog = new Catalog(profile.url); catalog.describeType(options.project || profile.project, profile.token, typeName).then((response) => { if (response.success) { @@ -114,13 +84,12 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { printError(`Failed to describe type ${typeName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe type ${typeName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DeleteTypeCommand = class DeleteTypeCommand { +} +export class DeleteTypeCommand { constructor(program) { this.program = program; } @@ -128,7 +97,6 @@ module.exports.DeleteTypeCommand = class DeleteTypeCommand { async execute(typeName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDeleteType(%s)', profile.name, typeName); - const catalog = new Catalog(profile.url); catalog.deleteType(options.project || profile.project, profile.token, typeName).then((response) => { if (response.success) { @@ -138,8 +106,8 @@ module.exports.DeleteTypeCommand = class DeleteTypeCommand { printError(`Failed to delete type ${typeName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to delete type ${typeName}: ${err.status} ${err.message}`, options); }); } -}; +} diff --git a/src/commands/users.js b/src/commands/users.js index 55a17d1b..e6e977c2 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -1,5 +1,11 @@ +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import Users from '../client/users.js'; +import { + printSuccess, printError, filterObject, handleTable, getFilteredOutput, +} from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,14 +19,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Users = require('../client/users'); -const { - printSuccess, printError, filterObject, handleTable, - getFilteredOutput, -} = require('./utils'); - +const debug = debugSetup('cortex:cli'); function createGrant(options) { return { project: options.project, @@ -29,8 +28,7 @@ function createGrant(options) { effect: options.deny ? 'deny' : 'allow', }; } - -module.exports.UserGrantCommand = class { +export const UserGrantCommand = class { constructor(program) { this.program = program; } @@ -44,9 +42,8 @@ module.exports.UserGrantCommand = class { if (deleteFlag) { return client.removeGrantFromUser(token, body); } - return client.createGrantForUser(token, body); + return client.createGrantForUser(token, body); }; - call(options.delete, profile.token, form).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -57,13 +54,12 @@ module.exports.UserGrantCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'delete' : 'create'; - printError(`Failed to ${func} grant for user : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for user : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UserDeleteCommand = class { +export const UserDeleteCommand = class { constructor(program) { this.program = program; } @@ -71,7 +67,6 @@ module.exports.UserDeleteCommand = class { async execute(user, options) { const profile = await loadProfile(options.profile); debug('%s.deleteServiceUser(%s)', profile.name, user); - const client = new Users(profile.url, user); client.deleteServiceUser(profile.token, user).then((response) => { if (response.success) { @@ -82,12 +77,11 @@ module.exports.UserDeleteCommand = class { } }) .catch((err) => { - printError(`Failed to delete user : ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete user : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UserCreateCommand = class { +export const UserCreateCommand = class { constructor(program) { this.program = program; } @@ -95,7 +89,6 @@ module.exports.UserCreateCommand = class { async execute(user, options) { const profile = await loadProfile(options.profile); debug('%s.createServiceUser(%s)', profile.name, user); - const client = new Users(profile.url, user); client.createServiceUser(profile.token, user).then((response) => { if (response.success) { @@ -106,12 +99,11 @@ module.exports.UserCreateCommand = class { } }) .catch((err) => { - printError(`Failed to create user : ${err.status} ${err.message}`, options); - }); + printError(`Failed to create user : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UserListCommand = class { +export const UserListCommand = class { constructor(program) { this.program = program; } @@ -119,7 +111,6 @@ module.exports.UserListCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listServiceUsers', profile.name); - const client = new Users(profile.url, 'self'); client.listServiceUsers(profile.token).then((response) => { if (response.success) { @@ -135,12 +126,11 @@ module.exports.UserListCommand = class { } }) .catch((err) => { - printError(`Failed to list service users : ${err.status} ${err.message}`, options); - }); + printError(`Failed to list service users : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UserDescribeCommand = class { +export const UserDescribeCommand = class { constructor(program) { this.program = program; } @@ -148,9 +138,7 @@ module.exports.UserDescribeCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.describeForUser(%s)', profile.name, options.user || 'self'); - const flags = []; - if (options.grants) { flags.push('grants'); } @@ -167,12 +155,11 @@ module.exports.UserDescribeCommand = class { } }) .catch((err) => { - printError(`Failed to describe user : ${err.status} ${err.message}`, options); - }); + printError(`Failed to describe user : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UserProjectAssignCommand = class { +export const UserProjectAssignCommand = class { constructor(program) { this.program = program; } @@ -180,7 +167,6 @@ module.exports.UserProjectAssignCommand = class { async execute(project, options) { const profile = await loadProfile(options.profile); debug('%s.assignUserProject(%s)', profile.name, project); - const client = new Users(profile.url, null); const call = (deleteFlag, token, assignProject, users) => { if (deleteFlag) { @@ -188,7 +174,6 @@ module.exports.UserProjectAssignCommand = class { } return client.addUsersToProject(token, assignProject, users); }; - call(options.delete, profile.token, project, options.users).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -199,8 +184,8 @@ module.exports.UserProjectAssignCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} users from project : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} users from project : ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/commands/utils.js b/src/commands/utils.js index 9b20d103..1ebff79b 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -1,40 +1,103 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const Table = require('cli-table3'); -const _ = require('lodash'); -const { boolean } = require('boolean'); -const chalk = require('chalk'); -const debug = require('debug')('cortex:cli'); -const fs = require('fs'); -const glob = require('glob'); -const jmsepath = require('jmespath'); -const path = require('path'); -const yaml = require('js-yaml'); -const { exec } = require('child_process'); - +import Table from 'cli-table3'; +import _ from 'lodash'; +import { boolean } from 'boolean'; +import chalk from 'chalk'; +import debugSetup from 'debug'; +import fs from 'node:fs'; +import process from 'node:process'; +import { globSync } from 'glob'; +import * as jmsepath from 'jmespath'; +import path from 'node:path'; +import yaml from 'js-yaml'; +import { exec } from 'child_process'; + +const debug = debugSetup('cortex:cli'); const MAX_NAME_LENGTH = 20; - const space = /\s+/; const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/; const beginAndEndWithHyphen = /^[-]+|[-]+$/; const validationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; const nameRequirementMessage = 'You must provide a name for the skill.'; +export function useColor(options) { + return boolean(options?.color); +} -module.exports.constructError = (error) => { +export const printExtendedLogs = (data, options) => { + if (options.limit && Array.isArray(data) && data.length === Number(options.limit) && options.limit !== '0') { + // don't log if showing all the results + process.stderr.write(`Results limited to ${options.limit} rows\n`); + } +}; + +export function printError(message, options = { color: true }, exitProgram = true) { + if (useColor(options)) { + console.error(chalk.red(message)); + } else { + console.error(message); + } + if (exitProgram) { + process.exit(1); + } +} +function _extractValues(fields, obj) { + const rv = []; + fields.forEach((f) => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null) ? obj[f].toString() : '-')); + return rv; +} +/** + * Execute a sub command, return stdout on success, return stderr on failure + * @param commandStr + * @returns {Promise<*>} + */ +// eslint-disable-next-line require-await +export async function callMe(commandStr) { + return new Promise((resolve, reject) => { + const proc = exec(commandStr, (err, stdout) => { + if (err) { + reject(Error(err.message + stdout)); + } else { + resolve(stdout); + } + }); + // Pipe stdout to stderr in real time: + proc.stdout.pipe(process.stderr); + }); +} +function round(value, precision) { + const multiplier = 10 ** (precision || 0); + return Math.floor(value * multiplier) / multiplier; +} +function formatServiceInputParameter(inputParameter) { + if (inputParameter.type === 'array') { + return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}<${inputParameter.format}>`); + } + return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); +} +// connections get returns createdAt (not prefixed by _) field that cause saving exported connection to fail. Hence removing them manually +const systemFields = ['createdAt', 'updatedAt', 'createdBy', 'updatedBy']; +// Alternatively, we can use fs.rmdirSync(<path>, {recursive: true}), but that requires node v12+ +const deleteFolderRecursive = (filepath) => { + try { + if (fs.existsSync(filepath)) { + if (fs.lstatSync(filepath).isDirectory()) { + fs.readdirSync(filepath).forEach((file) => { + const curPath = path.join(filepath, file); + if (fs.lstatSync(curPath).isDirectory()) { // recurse + deleteFolderRecursive(curPath); + } else { // delete file + fs.unlinkSync(curPath); + } + }); + fs.rmdirSync(filepath); + } else { + fs.unlinkSync(filepath); + } + } + } catch (e) { + console.error(chalk.red(e.message)); + } +}; +export const constructError = (error) => { // fallback to text in message or standard error message const errResp = error.response; let errorText = _.get(errResp, 'body'); @@ -59,55 +122,33 @@ module.exports.constructError = (error) => { success: false, message: errorText, details, status, }; }; - -function useColor(options) { - return boolean(_.get(options, 'color')); -} -module.exports.useColor = useColor; - -module.exports.printSuccess = (message, options) => { +export const printSuccess = (message, options) => { if (useColor(options)) { console.log(chalk.green(message)); } else { console.log(message); } }; - -module.exports.printWarning = (message, options) => { +export const printWarning = (message, options) => { if (useColor(options)) { console.log(chalk.yellow(message)); } else { console.log(message); } }; - -function printError(message, options, exit = true) { - if (useColor(options)) { - console.error(chalk.red(message)); - } else { - console.error(message); - } - if (exit) { - process.exit(1); - } -} -module.exports.printError = printError; - -// eslint-disable-next-line consistent-return -module.exports.filterObject = (obj, options) => { +export function filterObject(obj, options) { try { if (options.query) { debug(`filtering results with query: ${options.query}`); return jmsepath.search(obj, options.query); } - return obj; } catch (e) { // TODO remove --query on deprecation process.stderr.write(`error: invalid argument: ${options.query} \n`); } -}; - -module.exports.getQueryOptions = (options) => { + return obj; +} +export const getQueryOptions = (options) => { // TODO remove --query on deprecation if (options.query) process.stderr.write('[DEPRECATION WARNING] --query\n'); if (options.query && options.json && typeof (options.json) === 'string') process.stderr.write('Warning! --query overrides --json args\n'); @@ -117,96 +158,49 @@ module.exports.getQueryOptions = (options) => { // set searchPath to null if there's no path return { query: queryOptions === true ? null : queryOptions }; }; - -module.exports.getFilteredOutput = (result, options) => { - const filteredResult = this.filterObject(result, this.getQueryOptions(options)); +export const getFilteredOutput = (result, options) => { + const filteredResult = filterObject(result, getQueryOptions(options)); if (filteredResult) { // print extended logs iff --query arg is valid - this.printExtendedLogs(filteredResult, options); - this.printSuccess(JSON.stringify(filteredResult, null, 2), options); + printExtendedLogs(filteredResult, options); + printSuccess(JSON.stringify(filteredResult, null, 2), options); } }; - -module.exports.filterListObject = (obj, options) => { +export function filterListObject(obj, options) { const { map, pick, partialRight } = _; if (options.query) { debug(`filtering results with query: ${options.query}`); return map(obj, partialRight(pick, options.query.split(','))); } return obj; -}; - -// YAML 1.2 parses both yaml & json -module.exports.parseObject = (str) => yaml.load(str); - -function _extractValues(fields, obj) { - const rv = []; - fields.forEach((f) => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null) ? obj[f].toString() : '-')); - return rv; } - -module.exports.printTable = (spec, objects, transform) => { - transform = transform || function (obj) { return obj; }; - +export const parseObject = (str) => yaml.load(str); +export function printTable(spec, objects, transform) { + const fn = transform ?? ((obj) => obj); const head = spec.map((s) => s.column); const colWidths = spec.map((s) => s.width); const fields = spec.map((s) => s.field); - const values = objects.map((obj) => _extractValues(fields, transform(obj))); + const values = objects.map((obj) => _extractValues(fields, fn(obj))); debug('printing fields: %o', fields); - const table = new Table({ head, colWidths, style: { head: ['cyan'] } }); values.forEach((v) => table.push(v)); - console.log(table.toString()); -}; - -/** - * Execute a sub command, return stdout on success, return stderr on failure - * @param commandStr - * @returns {Promise<*>} - */ -// eslint-disable-next-line require-await -async function callMe(commandStr) { - return new Promise((resolve, reject) => { - const proc = exec(commandStr, (err, stdout) => { - if (err) { - reject(err.message + stdout); - } else { - resolve(stdout); - } - }); - // Pipe stdout to stderr in real time: - proc.stdout.pipe(process.stderr); - }); } -module.exports.callMe = callMe; - -module.exports.getSourceFiles = (source, cb) => { +export function getSourceFiles(source) { const options = { silent: true }; const normalizedSource = (source.endsWith('/')) ? source : `${source}/`; const normalizedPath = path.posix.join(normalizedSource, '**', '*'); - glob(normalizedPath, options, (err, files) => { - // files is an array of filenames. - if (err) { - cb(err, null); - } else { - const results = files.filter((fpath) => fs.lstatSync(fpath).isFile()).map((fpath) => ({ - canonical: fpath, - relative: path.relative(normalizedSource, fpath), - size: fs.lstatSync(fpath).size, - })); - cb(null, results); - } - }); -}; - -function round(value, precision) { - const multiplier = 10 ** (precision || 0); - return Math.floor(value * multiplier) / multiplier; + const files = globSync(normalizedPath, options); + // files is an array of filenames. + return files.filter((fpath) => fs.lstatSync(fpath).isFile()).map((fpath) => ({ + canonical: fpath, + relative: path.relative(normalizedSource, fpath), + size: fs.lstatSync(fpath).size, + })); } -module.exports.humanReadableFileSize = (sizeInBytes) => { +export const humanReadableFileSize = (sizeInBytes) => { const ranges = { K: 10 ** 3, M: 10 ** 6, @@ -215,33 +209,25 @@ module.exports.humanReadableFileSize = (sizeInBytes) => { }; if (sizeInBytes < ranges.K) { return `${sizeInBytes}B`; - } if (sizeInBytes < ranges.M) { + } + if (sizeInBytes < ranges.M) { return `${round(sizeInBytes / ranges.K, 1)}K`; - } if (sizeInBytes < ranges.G) { + } + if (sizeInBytes < ranges.G) { return `${round(sizeInBytes / ranges.M, 1)}M`; - } if (sizeInBytes < ranges.T) { + } + if (sizeInBytes < ranges.T) { return `${round(sizeInBytes / ranges.G, 1)}G`; } return sizeInBytes; // Umm fix logic }; - -function formatServiceInputParameter(inputParameter) { - if (inputParameter.type === 'array') { - return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}<${inputParameter.format}>`); - } - - return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); -} - -module.exports.formatAllServiceInputParameters = (allParameters) => { +export const formatAllServiceInputParameters = (allParameters) => { if (allParameters.$ref != null) { return `$ref:${allParameters.$ref}`; } - return allParameters.map((inputParameters) => formatServiceInputParameter(inputParameters)).join('\n'); }; - -module.exports.countLinesInFile = (filePath) => new Promise((resolve, reject) => { +export const countLinesInFile = (filePath) => new Promise((resolve, reject) => { // Bug ... this code ignores the final line that does not end with a new line ... thats why leftovers was added // eslint-disable-next-line implicit-arrow-linebreak let count = 0; @@ -249,18 +235,18 @@ module.exports.countLinesInFile = (filePath) => new Promise((resolve, reject) => fs.createReadStream(filePath) .on('error', (e) => reject(e)) .on('data', (chunk) => { - for (let i = 0; i < chunk.length; i += 1) { - if (chunk[i] === 10) { - count += 1; - leftovers = false; - } else { - leftovers = true; - } + for (let i = 0; i < chunk.length; i += 1) { + if (chunk[i] === 10) { + count += 1; + leftovers = false; + } else { + leftovers = true; } - }) + } + }) .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); }); -module.exports.formatValidationPath = (p) => { +export const formatValidationPath = (p) => { let cnt = 0; let res = ''; const len = p.length; @@ -274,133 +260,89 @@ module.exports.formatValidationPath = (p) => { }); return res; }; - -// connections get returns createdAt (not prefixed by _) field that cause saving exported connection to fail. Hence removing them manually -const systemFields = ['createdAt', 'updatedAt', 'createdBy', 'updatedBy']; -module.exports.cleanInternalFields = (jsobj) => JSON.stringify(jsobj, (a, obj) => { +export const cleanInternalFields = (jsobj) => JSON.stringify(jsobj, (a, obj) => { if (a.startsWith('_') || systemFields.includes(a)) { return undefined; } return obj; }, 2); - -module.exports.jsonToYaml = (json) => { +export const jsonToYaml = (json) => { if (typeof json === 'string') { json = JSON.parse(json); } return yaml.dump(json); }; - -module.exports.createFileStream = (filepath) => { +export const createFileStream = (filepath) => { const dir = path.dirname(filepath); if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } return fs.createWriteStream(filepath); }; - -module.exports.writeToFile = (content, filepath) => { +export const writeToFile = (content, filepath) => { const dir = path.dirname(filepath); if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } - fs.writeFileSync(filepath, content); }; - -module.exports.fileExists = (filepath) => fs.existsSync(filepath); - -// Alternatively, we can use fs.rmdirSync(<path>, {recursive: true}), but that requires node v12+ -const deleteFolderRecursive = (filepath) => { - try { - if (fs.existsSync(filepath)) { - if (fs.lstatSync(filepath).isDirectory()) { - fs.readdirSync(filepath).forEach((file) => { - const curPath = path.join(filepath, file); - if (fs.lstatSync(curPath).isDirectory()) { // recurse - deleteFolderRecursive(curPath); - } else { // delete file - fs.unlinkSync(curPath); - } - }); - fs.rmdirSync(filepath); - } else { - fs.unlinkSync(filepath); - } - } - } catch (e) { - console.error(chalk.red(e.message)); - } -}; - -module.exports.deleteFile = deleteFolderRecursive; - -module.exports.checkProject = (projectId) => { +export const fileExists = (filepath) => fs.existsSync(filepath); +export const checkProject = (projectId) => { if (_.isEmpty(projectId)) { printError('\'project\' is required, please provide using \'cortex configure\' or --project'); } }; - -module.exports.LISTTABLEFORMAT = [ +export const LISTTABLEFORMAT = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Title', field: 'title', width: 40 }, { column: 'Description', field: 'description', width: 50 }, { column: 'Modified', field: 'updatedAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 25 }, ]; - -module.exports.DEPENDENCYTABLEFORMAT = [ +export const DEPENDENCYTABLEFORMAT = [ { column: 'Dependency Name', field: 'name', width: 60 }, { column: 'Dependency Type', field: 'type', width: 40 }, ]; - -module.exports.OPTIONSTABLEFORMAT = [ +export const OPTIONSTABLEFORMAT = [ { column: 'Option Type', field: 'type', width: 20 }, { column: 'Message', field: 'message', width: 120 }, ]; - -module.exports.RUNTABLEFORMAT = [ +export const RUNTABLEFORMAT = [ { column: 'Run ID', field: 'runId', width: 30 }, { column: 'Experiment Name', field: 'experimentName', width: 40 }, { column: 'Took', field: 'took', width: 50 }, { column: 'Modified', field: '_updatedAt', width: 26 }, ]; -module.exports.SESSIONTABLEFORMAT = [ +export const SESSIONTABLEFORMAT = [ { column: 'Session ID', field: 'sessionId', width: 45 }, { column: 'TTL', field: 'ttl', width: 15 }, { column: 'Description', field: 'description', width: 70 }, ]; - -module.exports.isNumeric = (value) => /^-?\d+$/.test(value); - -module.exports.CONNECTIONTABLEFORMAT = [ +export const isNumeric = (value) => /^-?\d+$/.test(value); +export const CONNECTIONTABLEFORMAT = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 50 }, { column: 'Description', field: 'description', width: 50 }, { column: 'Connection Type', field: 'connectionType', width: 25 }, { column: 'Created On', field: 'createdAt', width: 26 }, ]; - -module.exports.EXTERNALROLESFORMAT = [ +export const EXTERNALROLESFORMAT = [ { column: 'Group', field: 'group' }, { column: 'Roles', field: 'roles' }, ]; - -module.exports.generateNameFromTitle = (title) => title.replace(specialCharsExceptHyphen, '') +export const generateNameFromTitle = (title) => title.replace(specialCharsExceptHyphen, '') .replace(space, '-') .replace(beginAndEndWithHyphen, '') .substr(0, MAX_NAME_LENGTH) .replace(beginAndEndWithHyphen, '') .toLowerCase(); - -module.exports.hasUppercase = (s) => /[A-Z]/.test(s); - -module.exports.validateName = (name) => (space.test(name) +export const hasUppercase = (s) => /[A-Z]/.test(s); +export const validateName = (name) => (space.test(name) || specialCharsExceptHyphen.test(name) || beginAndEndWithHyphen.test(name) || (!name) || (name && name.length > MAX_NAME_LENGTH) - || module.exports.hasUppercase(name) + || hasUppercase(name) ? { status: false, message: name ? validationErrorMessage : nameRequirementMessage, @@ -409,43 +351,35 @@ module.exports.validateName = (name) => (space.test(name) status: true, message: '', }); - -module.exports.handleTable = (spec, data, transformer, noDataMessage) => { +export const handleTable = (spec, data, transformer, noDataMessage) => { if (!data || data.length === 0) { - this.printSuccess(noDataMessage); + printSuccess(noDataMessage); } else { - this.printTable(spec, data, transformer); - } -}; - -module.exports.printExtendedLogs = (data, options) => { - if (options.limit && Array.isArray(data) && data.length === Number(options.limit) && options.limit !== '0') { - // don't log if showing all the results - process.stderr.write(`Results limited to ${options.limit} rows\n`); + printTable(spec, data, transformer); } }; -module.exports.handleListFailure = (response, options, type) => { +export const handleListFailure = (response, options, type) => { if (response.status === 400) { - const optionTableFormat = this.OPTIONSTABLEFORMAT; + const optionTableFormat = OPTIONSTABLEFORMAT; printError(`${type} list failed.`, options, false); if (response.details !== undefined && response.details !== null) { - this.printTable(optionTableFormat, response.details); + printTable(optionTableFormat, response.details); } else { - this.printError(response.message, options); + printError(response.message, options); } printError(''); // Just exit } return printError(`Failed to list ${type}: ${response.status} ${response.message}`, options); }; - -module.exports.handleDeleteFailure = (response, options, type) => { +export const handleDeleteFailure = (response, options, type) => { if (response.status === 403) { // has dependencies - const tableFormat = this.DEPENDENCYTABLEFORMAT; + const tableFormat = DEPENDENCYTABLEFORMAT; printError(`${type} deletion failed: ${response.message}.`, options, false); - this.printTable(tableFormat, response.details); + printTable(tableFormat, response.details); return printError(''); // Just exit } const defaultErrorMessage = `${type} deletion failed: ${response.status} ${response.message}.`; return printError(defaultErrorMessage, options); }; +export { deleteFolderRecursive as deleteFile }; diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index 1572a375..e6bd5127 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -1,244 +1,198 @@ -const fs = require('fs'); -const path = require('path'); -const glob = require('glob'); -const Docker = require('dockerode'); -const cliProgress = require('cli-progress'); -const { BarFormat } = require('cli-progress').Format; -const debug = require('debug')('cortex:cli'); -const { printError, printSuccess } = require('../utils'); - -const _ = { - get: require('lodash/get'), - groupBy: require('lodash/groupBy'), - orderBy: require('lodash/orderBy'), - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - template: require('lodash/template'), - isEmpty: require('lodash/isEmpty'), - set: require('lodash/set'), - mean: require('lodash/mean'), -}; - -const { getSkillInfo, buildImageTag } = require('./workspace-utils'); -const { loadProfile } = require('../../config'); +import _ from 'lodash'; +import fs from 'node:fs'; +import path from 'node:path'; +import { globSync } from 'glob'; +import Docker from 'dockerode'; +import cliProgress from 'cli-progress'; +import { printError, printSuccess } from '../utils.js'; +import { getSkillInfo, buildImageTag } from './workspace-utils.js'; +import { loadProfile } from '../../config.js'; + +const { BarFormat } = cliProgress.Format; class DockerBuildProgressTracker { - constructor(data) { - this.layers = { download: {}, extract: {} }; - this.downloaded = 0; - this.extracted = 0; - this.streamData = ''; - this.eventData = data || ''; - - this.bars = new cliProgress.MultiBar({ - clearOnComplete: false, - hideCursor: true, - format: (opts, params, payload) => this.statusFormatter(opts, params, payload), - }, cliProgress.Presets.shades_grey); - - this.sectionBar = this.bars.create(0, 0, { type: 'section' }); - this.dlBar = this.bars.create(100, 0, { type: 'download' }); - this.exBar = this.bars.create(100, 0, { type: 'extract' }); - this.statusBar = this.bars.create(0, 0, { type: 'status' }); - } - - statusFormatter(barOpts, params, payload) { - switch (payload.type) { - case 'download': - if (params.progress >= 1) { - return 'Downloading: Complete'; - } - return `Downloading: [${BarFormat(params.progress, barOpts)}]`; - case 'extract': - if (params.progress >= 1) { - return 'Extracting: Complete'; - } - return `Extracting: [${BarFormat(params.progress, barOpts)}]`; - case 'status': - return `Status: ${this.streamData.trim()}`; - case 'section': - return `Building: ${this.eventData || ''}`; - default: - return ''; - } - } - - updateProgress() { - this.sectionBar.update(null); - this.dlBar.update(this.downloaded); - this.exBar.update(this.extracted); - this.statusBar.update(null); - } - - stop() { - this.bars.stop(); - } - - complete() { - this.downloaded = 100; - this.extracted = 100; - this.updateProgress(); - } - - processEvent(evt, data) { - const { progressDetail } = evt; - let { status, id } = evt; - - status = status || ''; - id = id || ''; - - if (data) { - this.eventData = data; + constructor(data) { + this.layers = { download: {}, extract: {} }; + this.downloaded = 0; + this.extracted = 0; + this.streamData = ''; + this.eventData = data || ''; + this.bars = new cliProgress.MultiBar({ + clearOnComplete: false, + hideCursor: true, + format: (opts, params, payload) => this.statusFormatter(opts, params, payload), + }, cliProgress.Presets.shades_grey); + this.sectionBar = this.bars.create(0, 0, { type: 'section' }); + this.dlBar = this.bars.create(100, 0, { type: 'download' }); + this.exBar = this.bars.create(100, 0, { type: 'extract' }); + this.statusBar = this.bars.create(0, 0, { type: 'status' }); } - if (evt.stream) { - const newStr = evt.stream.replace(/\n|\r/g, ''); - if (newStr) { - this.streamData = newStr; - } - } - - if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { - this.downloaded = 100; - this.extracted = 100; - } - - if (status === 'Pulling fs layer') { - this.layers.download[id] = { progress: 0 }; - this.layers.extract[id] = { progress: 0 }; - } - - if (status === 'Downloading' && this.layers.download[id]) { - this.layers.download[id].progress = progressDetail.current / progressDetail.total || 0; + statusFormatter(barOpts, params, payload) { + switch (payload.type) { + case 'download': + if (params.progress >= 1) { + return 'Downloading: Complete'; + } + return `Downloading: [${BarFormat(params.progress, barOpts)}]`; + case 'extract': + if (params.progress >= 1) { + return 'Extracting: Complete'; + } + return `Extracting: [${BarFormat(params.progress, barOpts)}]`; + case 'status': + return `Status: ${this.streamData.trim()}`; + case 'section': + return `Building: ${this.eventData || ''}`; + default: + return ''; + } } - if (status === 'Extracting' && this.layers.extract[id]) { - this.layers.extract[id].progress = progressDetail.current / progressDetail.total || 0; + updateProgress() { + this.sectionBar.update(null); + this.dlBar.update(this.downloaded); + this.exBar.update(this.extracted); + this.statusBar.update(null); } - if (status === 'Download complete' && this.layers.download[id]) { - this.layers.download[id].progress = 1; + stop() { + this.bars.stop(); } - if (status === 'Pull complete' && this.layers.extract[id]) { - this.layers.extract[id].progress = 1; + complete() { + this.downloaded = 100; + this.extracted = 100; + this.updateProgress(); } - if (status === 'Already exists' && this.layers.download[id] && this.layers.extract[id]) { - this.layers.download[id].progress = 1; - this.layers.extract[id].progress = 1; + processEvent(evt, data) { + const { progressDetail } = evt; + let { status, id } = evt; + status = status || ''; + id = id || ''; + if (data) { + this.eventData = data; + } + if (evt.stream) { + const newStr = evt.stream.replace(/\n|\r/g, ''); + if (newStr) { + this.streamData = newStr; + } + } + if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { + this.downloaded = 100; + this.extracted = 100; + } + if (status === 'Pulling fs layer') { + this.layers.download[id] = { progress: 0 }; + this.layers.extract[id] = { progress: 0 }; + } + if (status === 'Downloading' && this.layers.download[id]) { + this.layers.download[id].progress = progressDetail.current / progressDetail.total || 0; + } + if (status === 'Extracting' && this.layers.extract[id]) { + this.layers.extract[id].progress = progressDetail.current / progressDetail.total || 0; + } + if (status === 'Download complete' && this.layers.download[id]) { + this.layers.download[id].progress = 1; + } + if (status === 'Pull complete' && this.layers.extract[id]) { + this.layers.extract[id].progress = 1; + } + if (status === 'Already exists' && this.layers.download[id] && this.layers.extract[id]) { + this.layers.download[id].progress = 1; + this.layers.extract[id].progress = 1; + } + const dlmap = _.map(this.layers.download, 'progress'); + const exmap = _.map(this.layers.extract, 'progress'); + this.downloaded = Math.round(100 * _.mean(dlmap)); + this.extracted = Math.round(100 * _.mean(exmap)); + return this.updateProgress(); } - - const dlmap = _.map(this.layers.download, 'progress'); - const exmap = _.map(this.layers.extract, 'progress'); - - this.downloaded = Math.round(100 * _.mean(dlmap)); - this.extracted = Math.round(100 * _.mean(exmap)); - - return this.updateProgress(); - } } +export default class WorkspaceBuildCommand { + constructor(program) { + this.program = program; + } -module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { - constructor(program) { - this.program = program; - } - - async buildAction(target, action, status, options) { - const actionPath = path.join(target, 'actions', action.name); - const expectedDockerfile = path.join(actionPath, 'Dockerfile'); - try { - if (!fs.existsSync(expectedDockerfile)) { - throw Error(`Unable to build action '${action.name}': Missing Dockerfile '${expectedDockerfile}', \nCheck that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); - } - const globList = glob.sync('./**/*', { - cwd: actionPath, - absolute: true, - }); - - const buildList = _.map(globList, (g) => path.posix.join(...(path.relative(actionPath, g)).split(path.sep))); - const docker = new Docker(); - const imageTag = await buildImageTag(this.profile, action.image); - const stream = await docker.buildImage( - { - context: actionPath, - src: buildList, - }, - { t: imageTag }, - ); - - return new Promise((resolve, reject) => { + async buildAction(target, action, status, options) { + const actionPath = path.join(target, 'actions', action.name); + const expectedDockerfile = path.join(actionPath, 'Dockerfile'); try { - docker.modem.followProgress( - stream, - (err) => { - if (err) { - return reject(err); - } - status.complete(); - return resolve(true); - }, - (evt) => { - if (evt.error) { - reject(evt.error); - return; - } - status.processEvent(evt); - }, - ); + if (!fs.existsSync(expectedDockerfile)) { + throw Error(`Unable to build action '${action.name}': Missing Dockerfile '${expectedDockerfile}', \nCheck that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); + } + const globList = globSync('./**/*', { + cwd: actionPath, + absolute: true, + }); + const buildList = _.map(globList, (g) => path.posix.join(...(path.relative(actionPath, g)).split(path.sep))); + const docker = new Docker(); + const imageTag = await buildImageTag(this.profile, action.image); + const stream = await docker.buildImage({ + context: actionPath, + src: buildList, + }, { t: imageTag }); + return new Promise((resolve, reject) => { + try { + docker.modem.followProgress(stream, (err) => { + if (err) { + return reject(err); + } + status.complete(); + return resolve(true); + }, (evt) => { + if (evt.error) { + reject(evt.error); + return; + } + status.processEvent(evt); + }); + } catch (err) { + printError(`${expectedDockerfile}:\n\t ${err.message}`, options); + reject(err); + } + }); } catch (err) { - printError(`${expectedDockerfile}:\n\t ${err.message}`, options); - reject(err); + printError(`${expectedDockerfile}:\n\t ${err.message}`, options); + return Promise.reject(err); } - }); - } catch (err) { - printError(`${expectedDockerfile}:\n\t ${err.message}`, options); - return Promise.reject(err); } - } - - async execute(folder, options) { - this.options = options; - let target = process.cwd(); - this.profile = await loadProfile(options.profile); - try { - if (folder) { - const fldr = folder.replace(/'|"/g, ''); - target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); - } - if (options.skill) { - target = path.join(target, 'skills', options.skill, 'skill.yaml'); - if (!fs.existsSync(target)) { - throw new Error(`Skill ${options.skill} not found!`); - } - } - - const skillInfo = await getSkillInfo(target); - - if (skillInfo.length > 0) { - const skillNameList = _.map(skillInfo, 'skill.name'); - const status = new DockerBuildProgressTracker(skillNameList.join(', ')); + async execute(folder, options) { + this.options = options; + let target = process.cwd(); + this.profile = await loadProfile(options.profile); try { - await Promise.all(_.map(skillInfo, (info) => { - const actions = info.skill.actions ? info.skill.actions : []; - return Promise.all(_.map(actions, (action) => this.buildAction( - path.dirname(info.uri), - action, - status, - options, - ))); - })); - } finally { - status.stop(); + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + if (!fs.existsSync(target)) { + throw new Error(`Skill ${options.skill} not found!`); + } + } + const skillInfo = await getSkillInfo(target); + if (skillInfo.length > 0) { + const skillNameList = _.map(skillInfo, 'skill.name'); + const status = new DockerBuildProgressTracker(skillNameList.join(', ')); + try { + await Promise.all(_.map(skillInfo, (info) => { + const actions = info.skill.actions ? info.skill.actions : []; + return Promise.all(_.map(actions, (action) => this.buildAction(path.dirname(info.uri), action, status, options))); + })); + } finally { + status.stop(); + } + printSuccess('Build Complete', options); + } else { + printSuccess('No skills found', options); + } + } catch (err) { + printError(`Build Failed: ${err.message}`, options); } - printSuccess('Build Complete', options); - } else { - printSuccess('No skills found', options); - } - } catch (err) { - printError(`Build Failed: ${err.message}`, options); } - } -}; +} diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index fb7c344d..4b03f545 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -1,165 +1,135 @@ -const inquirer = require('inquirer'); -const chalk = require('chalk'); -const got = require('got'); -const open = require('open'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { validateToken, persistToken } = require('./workspace-utils'); - -const _ = { - get: require('lodash/get'), - groupBy: require('lodash/groupBy'), - orderBy: require('lodash/orderBy'), - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - template: require('lodash/template'), - isEmpty: require('lodash/isEmpty'), - set: require('lodash/set'), - mean: require('lodash/mean'), -}; - -const { readConfig } = require('../../config'); -const { printSuccess, printError, useColor } = require('../utils'); +import _ from 'lodash'; +import inquirer from 'inquirer'; +import chalk from 'chalk'; +// eslint-disable-next-line import/no-unresolved +import got from 'got'; +import open from 'open'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { validateToken, persistToken } from './workspace-utils.js'; +import { readConfig } from '../../config.js'; +import { printSuccess, printError, useColor } from '../utils.js'; dayjs.extend(relativeTime); - const GITHUB_APP_CLIENTID = 'Iv1.e0e84c2a5fa7c935'; const DEFAULT_TEMPLATE_REPO = 'CognitiveScale/cortex-code-templates'; const DEFAULT_TEMPLATE_BRANCH = 'main'; - const GITHUB_DEVICECODE_REQUEST_URL = 'https://github.com/login/device/code'; const GITHUB_DEVICECODE_RESPONSE_URL = 'https://github.com/login/oauth/access_token'; -module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { - constructor(program) { - this.program = program; - } - - async execute(opts) { - this.options = opts; - try { - const config = readConfig(); - const currentProfile = config.profiles[config.currentProfile]; - - console.log(`Configuring workspaces for profile ${chalk.green(config.currentProfile)}`); - - const answers = await inquirer.prompt([ - { - type: 'input', - name: 'repo', - message: 'Template Repository URL: ', - default: _.get(currentProfile, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), - }, - { - type: 'input', - name: 'branch', - message: 'Template Repository Branch:', - default: _.get(currentProfile, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), - }, - ]); - const githubToken = await validateToken(); - - if (!githubToken && !this.options.refresh) { - printError('Current Github credentials invalid. Reauthorization required.', this.options, false); - } - - if (!githubToken || this.options.refresh) { - const { body: deviceCode } = await got.post(GITHUB_DEVICECODE_REQUEST_URL, { - json: { - client_id: GITHUB_APP_CLIENTID, - }, - responseType: 'json', - headers: { - Accept: 'application/json', - }, - }); - - if (deviceCode) { - console.log(`Opening browser at ${deviceCode.verification_uri}`); - await open(deviceCode.verification_uri); - - await new Promise((resolve, reject) => { - let expiry = deviceCode.expires_in; - let pollInterval = deviceCode.interval; - let accessToken; - - const mom = dayjs().add(expiry, 'seconds'); - - (function poller(options) { - process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${useColor(options) - ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) - : deviceCode.user_code - } ${dayjs(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); - - const pollTimer = setTimeout(async () => { - const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { - json: { +export default class WorkspaceConfigureCommand { + constructor(program) { + this.program = program; + } + + async execute(opts) { + this.options = opts; + try { + const config = readConfig(); + const currentProfile = config.profiles[config.currentProfile]; + console.log(`Configuring workspaces for profile ${chalk.green(config.currentProfile)}`); + const answers = await inquirer.prompt([ + { + type: 'input', + name: 'repo', + message: 'Template Repository URL: ', + default: _.get(currentProfile, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), + }, + { + type: 'input', + name: 'branch', + message: 'Template Repository Branch:', + default: _.get(currentProfile, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), + }, + ]); + const githubToken = await validateToken(); + if (!githubToken && !this.options.refresh) { + printError('Current Github credentials invalid. Reauthorization required.', this.options, false); + } + if (!githubToken || this.options.refresh) { + const { body: deviceCode } = await got.post(GITHUB_DEVICECODE_REQUEST_URL, { + json: { client_id: GITHUB_APP_CLIENTID, - device_code: deviceCode.device_code, - grant_type: 'urn:ietf:params:oauth:grant-type:device_code', - }, - responseType: 'json', - headers: { + }, + responseType: 'json', + headers: { Accept: 'application/json', - }, + }, + }); + if (deviceCode) { + console.log(`Opening browser at ${deviceCode.verification_uri}`); + await open(deviceCode.verification_uri); + await new Promise((resolve, reject) => { + let expiry = deviceCode.expires_in; + let pollInterval = deviceCode.interval; + let accessToken; + const mom = dayjs().add(expiry, 'seconds'); + (function poller(options) { + process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${useColor(options) + ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) + : deviceCode.user_code} ${dayjs(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); + const pollTimer = setTimeout(async () => { + const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { + json: { + client_id: GITHUB_APP_CLIENTID, + device_code: deviceCode.device_code, + grant_type: 'urn:ietf:params:oauth:grant-type:device_code', + }, + responseType: 'json', + headers: { + Accept: 'application/json', + }, + }); + accessToken = body; + if (accessToken.access_token) { + clearTimeout(pollTimer); + persistToken(accessToken); + config.profiles[config.currentProfile].templateConfig = answers; + config.save(); + printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); + resolve(); + } else { + switch (accessToken.error) { + case 'authorization_pending': + expiry = Math.max(expiry - pollInterval, 0); + break; + case 'slow_down': + pollInterval += 5; + break; + case 'expired_token': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); + reject(); + return; + case 'incorrect_device_code': + printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); + reject(); + return; + case 'access_denied': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess denied by user.', options); + reject(); + return; + default: + clearInterval(pollTimer); + printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); + reject(); + return; + } + poller(options); + } + }, (pollInterval) * 1000); + }(this.options)); }); - accessToken = body; - - if (accessToken.access_token) { - clearTimeout(pollTimer); - persistToken(accessToken); - config.profiles[config.currentProfile].templateConfig = answers; - config.save(); - printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); - resolve(); - } else { - switch (accessToken.error) { - case 'authorization_pending': - expiry = Math.max(expiry - pollInterval, 0); - break; - - case 'slow_down': - pollInterval += 5; - break; - - case 'expired_token': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); - reject(); - return; - - case 'incorrect_device_code': - printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); - reject(); - return; - - case 'access_denied': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess denied by user.', options); - reject(); - return; - - default: - clearInterval(pollTimer); - printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); - reject(); - return; - } - poller(options); - } - }, (pollInterval) * 1000); - }(this.options)); - }); + } else { + printError('\x1b[2KDevice Code request failed. Please try again.', this.options); + } } else { - printError('\x1b[2KDevice Code request failed. Please try again.', this.options); + config.profiles[config.currentProfile].templateConfig = answers; + config.save(); } - } else { - config.profiles[config.currentProfile].templateConfig = answers; - config.save(); - } - } catch (error) { - printError(error.message, this.options); - } - } -}; + } catch (error) { + printError(error.message, this.options); + } + } +} diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index 041fb58f..774e04fa 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -1,245 +1,185 @@ -const fs = require('fs'); -const path = require('path'); -const URL = require('url-parse'); -const { - mkdir, writeFile, -} = require('fs/promises'); -const minimatch = require('minimatch'); -const inquirer = require('inquirer'); -const ghGot = require('gh-got'); -const { isText } = require('istextorbinary'); -const treeify = require('treeify'); -const { boolean } = require('boolean'); - -const _ = { - get: require('lodash/get'), - groupBy: require('lodash/groupBy'), - orderBy: require('lodash/orderBy'), - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - template: require('lodash/template'), - isEmpty: require('lodash/isEmpty'), - set: require('lodash/set'), - mean: require('lodash/mean'), - find: require('lodash/find'), - drop: require('lodash/drop'), -}; - -const { WorkspaceConfigureCommand } = require('./configure'); - -const { readConfig, loadProfile } = require('../../config'); -const { - printToTerminal, - validateToken, -} = require('./workspace-utils'); - -const { - printSuccess, - printError, - validateName, - generateNameFromTitle, -} = require('../utils'); +import fs from 'node:fs'; +import path from 'path'; +import URL from 'url-parse'; +import { mkdir, writeFile } from 'fs/promises'; +import minimatch from 'minimatch'; +import inquirer from 'inquirer'; +import ghGot from 'gh-got'; +import { isText } from 'istextorbinary'; +import treeify from 'treeify'; +import { boolean } from 'boolean'; +import _ from 'lodash'; +import WorkspaceConfigureCommand from './configure.js'; +import { readConfig, loadProfile } from '../../config.js'; +import { printToTerminal, validateToken } from './workspace-utils.js'; +import { + printSuccess, printError, validateName, generateNameFromTitle, +} from '../utils.js'; const METADATA_FILENAME = 'metadata.json'; - -module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { - constructor(program) { - this.program = program; - } - - async loadTemplateTree({ repo, branch }) { - printToTerminal('\x1b[0G\x1b[2KLoading templates...'); - - this.gitRepo = repo; - this.branch = branch; - - this.authorization = this.githubToken; - - this.tree = await ghGot(`repos/${repo}/branches/${branch || 'main'}`, { - headers: { authorization: this.authorization }, - }) - .then((resp) => resp.body) - .then((resp) => ghGot(`repos/${repo}/git/trees/${resp.commit.sha}?recursive=true`, { - headers: { authorization: this.authorization }, - })) - .then((resp) => resp.body.tree) - .catch(() => []); - - printToTerminal('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); - } - - globTree(glob) { - const filterFunc = minimatch.filter(glob, { matchBase: true }); - return _.filter(this.tree, (f) => f.type === 'blob' && filterFunc(f.path)); - } - - async readFile(filePath) { - const response = await ghGot(`repos/${this.gitRepo}/contents/${filePath}?ref=${this.branch}`, { - headers: { authorization: this.authorization }, - }); - return Buffer.from(response.body.content, 'base64'); - } - - async getRegistry() { - const profile = await loadProfile(this.options.profile); - - const registryUrl = _.get(this, 'options.registry') - || _.get(profile, `registries['${profile.currentRegistry}'].url`) - || (new URL(profile.url)).hostname.replace('api', 'private-registry'); - - return registryUrl; - } - - async selectTemplate(templateName) { - const registryUrl = await this.getRegistry(); - const fileNames = this.globTree(METADATA_FILENAME); - - const choices = await Promise.all(_.map(fileNames, async (value) => { - const data = JSON.parse((await this.readFile(value.path)).toString()); - return { - name: data.title, - value: { ...data, path: value.path }, - }; - })); - - let template; - - if (templateName) { - const templateChoice = _.find(choices, { name: templateName }); - if (templateChoice) { - template = templateChoice.value; - } else { - printError(`Template ${templateName} not found!`); - } +export default class WorkspaceGenerateCommand { + constructor(program) { + this.program = program; } - const answers = await inquirer.prompt([ - { - type: 'list', - name: 'template', - message: 'Select the template you want to use:', - choices, - }, - { - type: 'input', - name: 'name', - message: 'Enter a name for the skill:', - validate: (answer) => { - const validation = validateName(answer); - return validation.status || validation.message; - }, - }, - ], { - name: this.name, - registry: registryUrl, - template, - }).catch(() => { }); - - return answers; - } - - async execute(name, destination, options) { - this.options = options; - this.name = name; - this.destination = destination; - - this.config = readConfig(); - this.githubToken = await validateToken(); - - const destinationPath = path.resolve(destination || process.cwd()); - - if (!this.githubToken) { - printError( - this.config.profiles[this.config.currentProfile].templateConfig - ? 'Github authorization is invalid. Running configuration now.\n' - : 'Workspace generator is not configured. Running configuration now.\n', - this.options, false, - ); - await (new WorkspaceConfigureCommand(this.program)).execute({ refresh: true }); - this.config = readConfig(); + async loadTemplateTree({ repo, branch }) { + printToTerminal('\x1b[0G\x1b[2KLoading templates...'); + this.gitRepo = repo; + this.branch = branch; + this.authorization = this.githubToken; + this.tree = await ghGot(`repos/${repo}/branches/${branch || 'main'}`, { + headers: { authorization: this.authorization }, + }) + .then((resp) => resp.body) + .then((resp) => ghGot(`repos/${repo}/git/trees/${resp.commit.sha}?recursive=true`, { + headers: { authorization: this.authorization }, + })) + .then((resp) => resp.body.tree) + .catch(() => []); + printToTerminal('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); } - if (name && fs.existsSync(path.join(destinationPath, 'skills', name))) { - printError(`Skill ${name} already exists!`, this.options); - return; + globTree(glob) { + const filterFunc = minimatch.filter(glob, { matchBase: true }); + return _.filter(this.tree, (f) => f.type === 'blob' && filterFunc(f.path)); } - await this.loadTemplateTree(this.config.profiles[this.config.currentProfile].templateConfig); + async readFile(filePath) { + const response = await ghGot(`repos/${this.gitRepo}/contents/${filePath}?ref=${this.branch}`, { + headers: { authorization: this.authorization }, + }); + return Buffer.from(response.body.content, 'base64'); + } - if (this.tree.length) { - const template = await this.selectTemplate(options.template); - if (template) { - const templateFolder = path.posix.dirname(template.template.path); - const templateFiles = this.globTree(`${templateFolder}/**`); - const treeObj = {}; + async getRegistry() { + const profile = await loadProfile(this.options.profile); + const registryUrl = _.get(this, 'options.registry') + || _.get(profile, `registries['${profile.currentRegistry}'].url`) + || (new URL(profile.url)).hostname.replace('api', 'private-registry'); + return registryUrl; + } - if (fs.existsSync(path.join(destinationPath, 'skills', template.name))) { - printError(`Skill ${template.name} already exists!`, this.options); - return; + async selectTemplate(templateName) { + const registryUrl = await this.getRegistry(); + const fileNames = this.globTree(METADATA_FILENAME); + const choices = await Promise.all(_.map(fileNames, async (value) => { + const data = JSON.parse((await this.readFile(value.path)).toString()); + return { + name: data.title, + value: { ...data, path: value.path }, + }; + })); + let template; + if (templateName) { + const templateChoice = _.find(choices, { name: templateName }); + if (templateChoice) { + template = templateChoice.value; + } else { + printError(`Template ${templateName} not found!`); + } } + const answers = await inquirer.prompt([ + { + type: 'list', + name: 'template', + message: 'Select the template you want to use:', + choices, + }, + { + type: 'input', + name: 'name', + message: 'Enter a name for the skill:', + validate: (answer) => { + const validation = validateName(answer); + return validation.status || validation.message; + }, + }, + ], { + name: this.name, + registry: registryUrl, + template, + }).catch(() => { }); + return answers; + } - const generatedFiles = _.map(templateFiles, (f) => { - try { - const rootPathComponents = templateFolder.split('/'); - const destFile = _.drop(f.path.split('/'), rootPathComponents.length); - const targetPath = path.join(...destFile); - - return _.template(targetPath, { interpolate: /__([\s\S]+?)__/g })({ - skillname: generateNameFromTitle(template.name), - }); - } catch (err) { - printError(err.message, this.options); - } - return undefined; - }).join('<br>'); - - console.log(''); - - await Promise.all( - _.map(templateFiles, async (f) => { - try { - const fileName = path.posix.basename(f.path); - if (fileName !== METADATA_FILENAME) { - const templateVars = { - skillname: generateNameFromTitle(template.name), - generatedFiles, - template: template.template, - }; - - let buf = await this.readFile(f.path); - /// Try not to template any non-text files. - if (isText(null, buf)) { - buf = Buffer.from( - _.template(buf.toString(), { interpolate: /{{([\s\S]+?)}}/g })(templateVars), - ); + async execute(name, destination, options) { + this.options = options; + this.name = name; + this.destination = destination; + this.config = readConfig(); + this.githubToken = await validateToken(); + const destinationPath = path.resolve(destination || process.cwd()); + if (!this.githubToken) { + printError(this.config.profiles[this.config.currentProfile].templateConfig + ? 'Github authorization is invalid. Running configuration now.\n' + : 'Workspace generator is not configured. Running configuration now.\n', this.options, false); + await (new WorkspaceConfigureCommand(this.program)).execute({ refresh: true }); + this.config = readConfig(); + } + if (name && fs.existsSync(path.join(destinationPath, 'skills', name))) { + printError(`Skill ${name} already exists!`, this.options); + return; + } + await this.loadTemplateTree(this.config.profiles[this.config.currentProfile].templateConfig); + if (this.tree.length) { + const template = await this.selectTemplate(options.template); + if (template) { + const templateFolder = path.posix.dirname(template.template.path); + const templateFiles = this.globTree(`${templateFolder}/**`); + const treeObj = {}; + if (fs.existsSync(path.join(destinationPath, 'skills', template.name))) { + printError(`Skill ${template.name} already exists!`, this.options); + return; } - - const relPath = f.path.slice(path.dirname(template.template.path).length); - const sourcePath = _.template(relPath, { interpolate: /__([\s\S]+?)__/g })(templateVars); - const targetPath = path.join(destinationPath, sourcePath); - - await mkdir(path.dirname(targetPath), { recursive: true }); - await writeFile(targetPath, buf); - - _.set(treeObj, sourcePath.split('/'), null); - } - } catch (err) { - printError(err.message, this.options); + const generatedFiles = _.map(templateFiles, (f) => { + try { + const rootPathComponents = templateFolder.split('/'); + const destFile = _.drop(f.path.split('/'), rootPathComponents.length); + const targetPath = path.join(...destFile); + return _.template(targetPath, { interpolate: /__([\s\S]+?)__/g })({ + skillname: generateNameFromTitle(template.name), + }); + } catch (err) { + printError(err.message, this.options); + } + return undefined; + }).join('<br>'); + console.log(''); + await Promise.all(_.map(templateFiles, async (f) => { + try { + const fileName = path.posix.basename(f.path); + if (fileName !== METADATA_FILENAME) { + const templateVars = { + skillname: generateNameFromTitle(template.name), + generatedFiles, + template: template.template, + }; + let buf = await this.readFile(f.path); + /// Try not to template any non-text files. + if (isText(null, buf)) { + buf = Buffer.from(_.template(buf.toString(), { interpolate: /{{([\s\S]+?)}}/g })(templateVars)); + } + const relPath = f.path.slice(path.dirname(template.template.path).length); + const sourcePath = _.template(relPath, { interpolate: /__([\s\S]+?)__/g })(templateVars); + const targetPath = path.join(destinationPath, sourcePath); + await mkdir(path.dirname(targetPath), { recursive: true }); + await writeFile(targetPath, buf); + _.set(treeObj, sourcePath.split('/'), null); + } + } catch (err) { + printError(err.message, this.options); + } + })); + if (!options || !boolean(options.notree)) { + printSuccess('Generated the following files:'); + console.log(''); + console.log(destinationPath); + console.log(treeify.asTree(treeObj, true)); + } + printSuccess('Workspace generation complete.', this.options); } - }), - ); - if (!options || !boolean(options.notree)) { - printSuccess('Generated the following files:'); - console.log(''); - console.log(destinationPath); - console.log(treeify.asTree(treeObj, true)); + } else { + printError('Unable to retrieve templates', this.options); } - - printSuccess('Workspace generation complete.', this.options); - } - } else { - printError('Unable to retrieve templates', this.options); } - } -}; +} diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 99d9a50e..15e4b156 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -1,381 +1,314 @@ -const glob = require('glob'); -const fs = require('fs'); -const path = require('path'); -const Docker = require('dockerode'); -const { readFile } = require('fs/promises'); -const { v1: uuid } = require('uuid'); -const inquirer = require('inquirer'); -const cliProgress = require('cli-progress'); -const { BarFormat } = require('cli-progress').Format; -const chalk = require('chalk'); - -const { - parseObject, printSuccess, printError, -} = require('../utils'); - -const { getSkillInfo, buildImageTag, getCurrentRegistry } = require('./workspace-utils'); -const { loadProfile, generateJwt } = require('../../config'); -const Catalog = require('../../client/catalog'); -const Models = require('../../client/models'); -const Content = require('../../client/content'); -const Experiments = require('../../client/experiments'); -const ApiServerClient = require('../../client/apiServerClient'); - -const _ = { - map: require('lodash/map'), - find: require('lodash/find'), - mean: require('lodash/mean'), - every: require('lodash/every'), -}; +import { globSync } from 'glob'; +import fs from 'node:fs'; +import path from 'node:path'; +import Docker from 'dockerode'; +import { readFile } from 'node:fs/promises'; +import { v1 as uuid } from 'uuid'; +import inquirer from 'inquirer'; +import cliProgress from 'cli-progress'; +import chalk from 'chalk'; +import _ from 'lodash'; +import { parseObject, printSuccess, printError } from '../utils.js'; +import { getSkillInfo, buildImageTag, getCurrentRegistry } from './workspace-utils.js'; +import { loadProfile, generateJwt } from '../../config.js'; +import Catalog from '../../client/catalog.js'; +import Models from '../../client/models.js'; +import Content from '../../client/content.js'; +import Experiments from '../../client/experiments.js'; +import ApiServerClient from '../../client/apiServerClient.js'; + +const { BarFormat } = cliProgress.Format; class DockerPushProgressTracker { - constructor() { - this.layers = { upload: {} }; - this.pushed = 0; - this.result = {}; - this.stage = ''; - - this.bars = new cliProgress.MultiBar({ - clearOnComplete: false, - hideCursor: true, - format: (opts, params, payload) => this.statusFormatter(opts, params, payload), - }, cliProgress.Presets.shades_grey); - - this.pushBar = this.bars.create(100, 0, { type: 'upload' }); - } - - statusFormatter(barOpts, params, payload) { - switch (payload.type) { - case 'upload': - if (params.progress >= 1) { - return chalk.green(`Pushing ${this.stage}: Complete`); - } - return chalk.green(`Pushing ${this.stage}: [${BarFormat(params.progress, barOpts)}]`); - case 'status': - return chalk.green(`Status: ${this.streamData.trim()}`); - default: - return ''; + constructor() { + this.layers = { upload: {} }; + this.pushed = 0; + this.result = {}; + this.stage = ''; + this.bars = new cliProgress.MultiBar({ + clearOnComplete: false, + hideCursor: true, + format: (opts, params, payload) => this.statusFormatter(opts, params, payload), + }, cliProgress.Presets.shades_grey); + this.pushBar = this.bars.create(100, 0, { type: 'upload' }); } - } - - updateProgress() { - this.pushBar.update(this.pushed); - } - - stop() { - this.bars.stop(); - } - - complete() { - this.pushed = 100; - this.updateProgress(); - return this.result; - } - processEvent(evt, imgtag) { - const { progressDetail } = evt; - let { status, id } = evt; - - if (imgtag) { - this.stage = imgtag; - } - - if (evt.aux) { - this.result = evt.aux; - } - - status = status || ''; - id = id || ''; - - if (evt.stream) { - const newStr = evt.stream.replace(/\n|\r/g, ''); - if (newStr) { - this.streamData = newStr; - } - } - - if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { - this.pushed = 100; + statusFormatter(barOpts, params, payload) { + switch (payload.type) { + case 'upload': + if (params.progress >= 1) { + return chalk.green(`Pushing ${this.stage}: Complete`); + } + return chalk.green(`Pushing ${this.stage}: [${BarFormat(params.progress, barOpts)}]`); + case 'status': + return chalk.green(`Status: ${this.streamData.trim()}`); + default: + return ''; + } } - if (status === 'Preparing') { - this.layers.upload[id] = { progress: 0 }; + updateProgress() { + this.pushBar.update(this.pushed); } - if (status === 'Pushing') { - this.layers.upload[id].progress = progressDetail.current / progressDetail.total || 0; + stop() { + this.bars.stop(); } - if ((status === 'Pushed') || (status === 'Layer already exists')) { - this.layers.upload[id].progress = 1; + complete() { + this.pushed = 100; + this.updateProgress(); + return this.result; } - const ulmap = _.map(this.layers.upload, 'progress'); - this.pushed = Math.round(100 * _.mean(ulmap)); - - return this.updateProgress(); - } -} - -module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { - constructor(program) { - this.program = program; - this.docker = new Docker(); - } - - async getRegistryAuth(profile, options) { - const reg = await getCurrentRegistry(profile); - - if (!profile.token) { - if (reg.isCortex) { - const ttl = options.ttl || '1d'; - const jwt = await generateJwt(profile, ttl); - // eslint-disable-next-line no-param-reassign - profile.token = jwt; - } else { - const answers = await inquirer.prompt([ - { - type: 'input', - name: 'username', - message: `Enter user name for ${reg.name}:`, - }, - { - type: 'password', - name: 'password', - message: `Enter password for ${reg.name}:`, - }, - ]).catch(() => { }); - - if (answers) { - return answers; + processEvent(evt, imgtag) { + const { progressDetail } = evt; + let { status, id } = evt; + if (imgtag) { + this.stage = imgtag; + } + if (evt.aux) { + this.result = evt.aux; + } + status = status || ''; + id = id || ''; + if (evt.stream) { + const newStr = evt.stream.replace(/\n|\r/g, ''); + if (newStr) { + this.streamData = newStr; + } + } + if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { + this.pushed = 100; + } + if (status === 'Preparing') { + this.layers.upload[id] = { progress: 0 }; + } + if (status === 'Pushing') { + this.layers.upload[id].progress = progressDetail.current / progressDetail.total || 0; + } + if ((status === 'Pushed') || (status === 'Layer already exists')) { + this.layers.upload[id].progress = 1; } - } + const ulmap = _.map(this.layers.upload, 'progress'); + this.pushed = Math.round(100 * _.mean(ulmap)); + return this.updateProgress(); } - - return { - username: 'cli', - password: profile.token, - }; - } - - async pushAction(action, imageTag, registryAuth, { skipPush }) { - let img = this.docker.getImage(imageTag); - - /// ------------------------------------- - /// RETAGGING IMAGE SO CORTEX PICKS IT UP - /// The cortex backend has a bug where the new image wont be used if the tag hasnt changed - /// Remove this when this problem is fixed. - const buildId = uuid().substr(0, 6); - const newTag = `${imageTag}:${buildId}`; - await img.tag({ repo: newTag }); - img = this.docker.getImage(newTag); - /// ------------------------------------- - // Set image tag to new image tag for skill/action deployment later - // eslint-disable-next-line no-param-reassign - action.image = newTag; - - if (skipPush) { - printSuccess(`Skipping docker push for: ${newTag}`); - return true; +} +export default class WorkspacePublishCommand { + constructor(program) { + this.program = program; + this.docker = new Docker(); } - const status = new DockerPushProgressTracker(); - - const imgPush = await img - .push({ - authconfig: registryAuth, - }); - - return new Promise((resolve, reject) => { - this.docker.modem.followProgress( - imgPush, - (err) => { - if (err) { - return reject(err); - } - status.complete(); - status.stop(); - return resolve(true); - }, - (evt) => { - if (evt.error) { - status.stop(); - reject(new Error(evt.error)); - return; - } - status.processEvent(evt, newTag); - }, - ); - }); - } - - async execute(folder, options) { - this.options = options; - let target = process.cwd(); - - try { - if (folder) { - const fldr = folder.replace(/'|"/g, ''); - target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); - } - if (options.skill) { - target = path.join(target, 'skills', options.skill, 'skill.yaml'); - if (!fs.existsSync(target)) { - throw new Error(`Skill ${options.skill} not found!`); + async getRegistryAuth(profile, options) { + const reg = await getCurrentRegistry(profile); + if (!profile.token) { + if (reg.isCortex) { + const ttl = options.ttl || '1d'; + profile.token = await generateJwt(profile, ttl); + } else { + const answers = await inquirer.prompt([ + { + type: 'input', + name: 'username', + message: `Enter user name for ${reg.name}:`, + }, + { + type: 'password', + name: 'password', + message: `Enter password for ${reg.name}:`, + }, + ]).catch(() => { }); + if (answers) { + return answers; + } + } } - } - const skillInfo = await getSkillInfo(target); - - if (skillInfo.length > 0) { - const profile = await loadProfile(options.profile); + return { + username: 'cli', + password: profile.token, + }; + } - /// If the user passed in a project name, validate it with the cluster - let project = options.project || profile.project; - if (project) { - const apiServer = new ApiServerClient(profile.url); - await apiServer.getProject(profile.token, project) - .then((prj) => project = prj.name) - .catch(() => printError(`Project ${project} not found.`, options)); - } else { - throw new Error('Project must be specified'); + async pushAction(action, imageTag, registryAuth, { skipPush }) { + let img = this.docker.getImage(imageTag); + /// ------------------------------------- + /// RETAGGING IMAGE SO CORTEX PICKS IT UP + /// The cortex backend has a bug where the new image wont be used if the tag hasnt changed + /// Remove this when this problem is fixed. + const buildId = uuid().substr(0, 6); + const newTag = `${imageTag}:${buildId}`; + await img.tag({ repo: newTag }); + img = this.docker.getImage(newTag); + /// ------------------------------------- + // Set image tag to new image tag for skill/action deployment later + // eslint-disable-next-line no-param-reassign + action.image = newTag; + if (skipPush) { + printSuccess(`Skipping docker push for: ${newTag}`); + return true; } - - this.catalogClient = new Catalog(profile.url); - this.modelsClient = new Models(profile.url); - this.experimentClient = new Experiments(profile.url); - this.contentClient = new Content(profile.url); - - const published = await Promise.all(_.map(skillInfo, async (info) => { - const skillName = info.skill.name; - const actions = info.skill.actions ? info.skill.actions : []; - const actionsPublished = await Promise.all(_.map(actions, async (action) => { - const tag = await buildImageTag(profile, action.image); - const imglist = await this.docker.listImages({ - filters: JSON.stringify({ - reference: [tag], - }), + const status = new DockerPushProgressTracker(); + const imgPush = await img + .push({ + authconfig: registryAuth, + }); + return new Promise((resolve, reject) => { + this.docker.modem.followProgress(imgPush, (err) => { + if (err) { + return reject(err); + } + status.complete(); + status.stop(); + return resolve(true); + }, (evt) => { + if (evt.error) { + status.stop(); + reject(new Error(evt.error)); + return; + } + status.processEvent(evt, newTag); }); + }); + } - if (imglist.length !== 0) { - const globOpts = { - cwd: target, - absolute: true, - }; - const regAuth = await this.getRegistryAuth(profile, action.image, options); - - const typesFiles = glob.sync(`types/${skillName}/**/*.yaml`, globOpts); - await Promise.all( - _.map(typesFiles, async (f) => { - const typeData = await readFile(f).catch(() => { }); - if (typeData) { - const type = parseObject(typeData.toString()); - let normalizedType = {}; - if (!('types' in type)) normalizedType.types = [type]; - else normalizedType = type; - await this.catalogClient.saveType(project, profile.token, normalizedType); - printSuccess(`Published type ${path.basename(f)}`, options); - } - }), - ); - - const modelsFiles = glob.sync(`models/${skillName}/**/*.yaml`, globOpts); - await Promise.all( - _.map(modelsFiles, async (f) => { - const modelData = await readFile(f).catch(() => { }); - if (modelData) { - const model = parseObject(modelData.toString()); - await this.modelsClient.saveModel(project, profile.token, model); - printSuccess(`Published model ${model.name}`, options); - } - }), - ); - - const experimentsFiles = glob.sync(`experiments/${skillName}/*/*.yaml`, globOpts); - await Promise.all( - _.map(experimentsFiles, async (expFile) => { - const experimentData = await readFile(expFile).catch(() => { }); - - if (experimentData) { - const experiment = parseObject(experimentData.toString()); - - const result = await this.experimentClient.saveExperiment(project, profile.token, experiment).then((response) => response.success) - .catch(() => false); - - if (result) { - printSuccess(`Published experiment ${experiment.name}`, options); - const runsFiles = glob.sync(`experiments/${skillName}/${experiment.name}/runs/**/*.yaml`, globOpts); - await Promise.all( - _.map(runsFiles, async (runFile) => { - const runData = await readFile(runFile).catch(() => { }); - - if (runData) { - const run = parseObject(runData.toString()); - /// - /// Note: I would prefer to do an Update operation here instead, but the update endpoint - /// for experiment runs is currently broken. - /// - /// In the interim, I just delete the run (if it exists) and then re-add it. - /// - await this.experimentClient.deleteRun(project, profile.token, experiment.name, run.runId); - run.experimentName = experiment.name; - await this.experimentClient.createRun(project, profile.token, run); - printSuccess(`Published run ${run.runId}`, options); - - const artifacts = glob.sync(`experiments/${skillName}/${experiment.name}/runs/${run.runId}/artifacts/*`, globOpts); - await Promise.all(_.map(artifacts, async (artifactUri) => { - const artifactName = path.basename(artifactUri).split('.')[0]; - await this.experimentClient.uploadArtifact(project, profile.token, experiment.name, run.runId, artifactUri, artifactName); - printSuccess(`Published artifact ${artifactName}`, options); - })); - } - }), - ); - } else { - printError('Failed to save experiment', options); - } + async execute(folder, options) { + this.options = options; + let target = process.cwd(); + try { + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + if (!fs.existsSync(target)) { + throw new Error(`Skill ${options.skill} not found!`); + } + } + const skillInfo = await getSkillInfo(target); + if (skillInfo.length > 0) { + const profile = await loadProfile(options.profile); + /// If the user passed in a project name, validate it with the cluster + let project = options.project || profile.project; + if (project) { + const apiServer = new ApiServerClient(profile.url); + await apiServer.getProject(profile.token, project) + .then((prj) => project = prj.name) + .catch(() => printError(`Project ${project} not found.`, options)); + } else { + throw new Error('Project must be specified'); + } + this.catalogClient = new Catalog(profile.url); + this.modelsClient = new Models(profile.url); + this.experimentClient = new Experiments(profile.url); + this.contentClient = new Content(profile.url); + const published = await Promise.all(_.map(skillInfo, async (info) => { + const skillName = info.skill.name; + const actions = info.skill.actions ? info.skill.actions : []; + const actionsPublished = await Promise.all(_.map(actions, async (action) => { + const tag = await buildImageTag(profile, action.image); + const imglist = await this.docker.listImages({ + filters: JSON.stringify({ + reference: [tag], + }), + }); + if (imglist.length !== 0) { + const globOpts = { + cwd: target, + absolute: true, + }; + const regAuth = await this.getRegistryAuth(profile, action.image, options); + const typesFiles = globSync(`types/${skillName}/**/*.yaml`, globOpts); + await Promise.all(_.map(typesFiles, async (f) => { + const typeData = await readFile(f).catch(() => { }); + if (typeData) { + const type = parseObject(typeData.toString()); + let normalizedType = {}; + if (!('types' in type)) normalizedType.types = [type]; + else normalizedType = type; + await this.catalogClient.saveType(project, profile.token, normalizedType); + printSuccess(`Published type ${path.basename(f)}`, options); + } + })); + const modelsFiles = globSync(`models/${skillName}/**/*.yaml`, globOpts); + await Promise.all(_.map(modelsFiles, async (f) => { + const modelData = await readFile(f).catch(() => { }); + if (modelData) { + const model = parseObject(modelData.toString()); + await this.modelsClient.saveModel(project, profile.token, model); + printSuccess(`Published model ${model.name}`, options); + } + })); + const experimentsFiles = globSync(`experiments/${skillName}/*/*.yaml`, globOpts); + await Promise.all(_.map(experimentsFiles, async (expFile) => { + const experimentData = await readFile(expFile).catch(() => { }); + if (experimentData) { + const experiment = parseObject(experimentData.toString()); + const result = await this.experimentClient.saveExperiment(project, profile.token, experiment).then((response) => response.success) + .catch(() => false); + if (result) { + printSuccess(`Published experiment ${experiment.name}`, options); + const runsFiles = globSync(`experiments/${skillName}/${experiment.name}/runs/**/*.yaml`, globOpts); + await Promise.all(_.map(runsFiles, async (runFile) => { + const runData = await readFile(runFile).catch(() => { }); + if (runData) { + const run = parseObject(runData.toString()); + /// + /// Note: I would prefer to do an Update operation here instead, but the update endpoint + /// for experiment runs is currently broken. + /// + /// In the interim, I just delete the run (if it exists) and then re-add it. + /// + await this.experimentClient.deleteRun(project, profile.token, experiment.name, run.runId); + run.experimentName = experiment.name; + await this.experimentClient.createRun(project, profile.token, run); + printSuccess(`Published run ${run.runId}`, options); + const artifacts = globSync(`experiments/${skillName}/${experiment.name}/runs/${run.runId}/artifacts/*`, globOpts); + await Promise.all(_.map(artifacts, async (artifactUri) => { + const artifactName = path.basename(artifactUri).split('.')[0]; + await this.experimentClient.uploadArtifact(project, profile.token, experiment.name, run.runId, artifactUri, artifactName); + printSuccess(`Published artifact ${artifactName}`, options); + })); + } + })); + } else { + printError('Failed to save experiment', options); + } + } + })); + const contentFiles = globSync(`content/${skillName}/*`, globOpts); + await Promise.all(_.map(contentFiles, async (f) => { + const key = `content/${skillName}/${path.posix.basename(f, path.posix.extname(f))}`; + await this.contentClient.uploadContentStreaming(project, profile.token, key, f); + printSuccess(`Published content ${key}`, options); + })); + // pass options if we want to skip docker push for example + await this.pushAction(action, tag, regAuth, options); + } else { + printError(`No image found for action ${action.name}. Has it been built?`, options); + return false; + } + return true; + })); + if (_.every(actionsPublished)) { + const saveResult = await this.catalogClient.saveSkill(project, profile.token, info.skill); + if (saveResult.success) return true; + printError(`Skill save failed for ${info.skill.name}: ${saveResult.message}`, false); + return false; } - }), - ); - - const contentFiles = glob.sync(`content/${skillName}/*`, globOpts); - await Promise.all( - _.map(contentFiles, async (f) => { - const key = `content/${skillName}/${path.posix.basename(f, path.posix.extname(f))}`; - await this.contentClient.uploadContentStreaming(project, profile.token, key, f); - printSuccess(`Published content ${key}`, options); - }), - ); - // pass options if we want to skip docker push for example - await this.pushAction(action, tag, regAuth, options); - } else { - printError(`No image found for action ${action.name}. Has it been built?`, options); - return false; + printError('Publish Failed', options); + return false; + })); + return _.every(published); } - - return true; - })); - - if (_.every(actionsPublished)) { - const saveResult = await this.catalogClient.saveSkill(project, profile.token, info.skill); - if (saveResult.success) return true; - printError(`Skill save failed for ${info.skill.name}: ${saveResult.message}`, false); - return false; - } - - printError('Publish Failed', options); - - return false; - })); - - return _.every(published); - } - - console.log('No skills found'); - return false; - } catch (err) { - printError(err.message, options); - printError('Publish Failed', options); - return false; + console.log('No skills found'); + return false; + } catch (err) { + printError(err.message, options); + printError('Publish Failed', options); + return false; + } } - } -}; +} diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js index 4849567f..df4be2bc 100644 --- a/src/commands/workspaces/registry.js +++ b/src/commands/workspaces/registry.js @@ -1,170 +1,144 @@ -const path = require('path'); -const inquirer = require('inquirer'); - -const _ = { - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - find: require('lodash/find'), -}; - -const { loadProfile, readConfig } = require('../../config'); -const { printSuccess, printError } = require('../utils'); - -module.exports.WorkspaceAddRegistryCommand = class WorkspaceAddRegistryCommand { - constructor(program) { - this.program = program; - } - - async execute(name, opts) { - await inquirer.prompt([ - { - type: 'input', - name: 'name', - message: 'Name for registry: ', - }, - { - type: 'input', - name: 'url', - message: 'Registry URL: ', - default: 'docker.io', - }, - { - type: 'input', - name: 'namespace', - message: 'Namespace: ', - }, - ], { - name, - url: opts.url, - namespace: opts.namespace, - }) - .then(async (answers) => { - const profile = await loadProfile(opts.profile); - - profile.registries[answers.name] = { - name: answers.name, - url: answers.url, - namespace: answers.namespace, - }; - - const cfg = readConfig(); - cfg.profiles[profile.name] = profile; - cfg.save(); - - printSuccess(`Registry ${answers.name} added`, opts); - }) - .catch((error) => { - printError(error.message, opts); - }); - } -}; - -module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCommand { - constructor(program) { - this.program = program; - } - - async execute(name, options) { - const profile = await loadProfile(options.profile); - - /// Use a function iteratee instead of the property test - const choices = _.map(_.filter(profile.registries, (r) => !r.isCortex && (!name || name === r.name)), (r) => ( - { - name: r.name, - value: r.name, - })); - - if (choices.length === 0) { - printError(name ? `Registry ${name} not found` : 'No registries found to remove', options); - return; +import path from 'path'; +import inquirer from 'inquirer'; +import _ from 'lodash'; +import { loadProfile, readConfig } from '../../config.js'; +import { printSuccess, printError } from '../utils.js'; + +export class WorkspaceAddRegistryCommand { + constructor(program) { + this.program = program; } - await inquirer.prompt([ - { - type: 'list', - name: 'name', - message: 'Select registry to remove: ', - choices, - }, - ], { - name, - }) - .then((answers) => { - delete profile.registries[answers.name]; - - const cfg = readConfig(); - cfg.profiles[profile.name] = profile; - cfg.save(); - - printSuccess(`Registry ${answers.name} removed`, options); - }) - .catch((error) => { - printError(error.message, options); - }); - } -}; - -module.exports.WorkspaceActivateRegistryCommand = class WorkspaceActivateRegistryCommand { - constructor(program) { - this.program = program; - } - - async execute(regname, options) { - const name = regname || undefined; - - const profile = await loadProfile(options.profile); - - const choices = _.map(_.filter(profile.registries, (r) => !name || (r.name === name)), (r) => ( - { - name: r.name, - value: r.name, - })); - - if (choices.length === 0) { - printError(name ? `Registry ${name} not found` : 'No registries found to activate', options); - return; + async execute(name, opts) { + await inquirer.prompt([ + { + type: 'input', + name: 'name', + message: 'Name for registry: ', + }, + { + type: 'input', + name: 'url', + message: 'Registry URL: ', + default: 'docker.io', + }, + { + type: 'input', + name: 'namespace', + message: 'Namespace: ', + }, + ], { + name, + url: opts.url, + namespace: opts.namespace, + }) + .then(async (answers) => { + const profile = await loadProfile(opts.profile); + profile.registries[answers.name] = { + name: answers.name, + url: answers.url, + namespace: answers.namespace, + }; + const cfg = readConfig(); + cfg.profiles[profile.name] = profile; + cfg.save(); + printSuccess(`Registry ${answers.name} added`, opts); + }) + .catch((error) => { + printError(error.message, opts); + }); + } +} +export class WorkspaceRemoveRegistryCommand { + constructor(program) { + this.program = program; } - await inquirer.prompt([ - { - type: 'list', - name: 'name', - message: 'Select registry to activate: ', - choices, - }, - ], { - name, - }) - .then((answers) => { - profile.currentRegistry = answers.name; - - const cfg = readConfig(); - cfg.profiles[profile.name] = profile; - cfg.save(); - - printSuccess(`Registry ${answers.name} activated`, options); - }) - .catch((error) => { - printError(error.message, options); - }); - } -}; + async execute(name, options) { + const profile = await loadProfile(options.profile); + /// Use a function iteratee instead of the property test + const choices = _.map(_.filter(profile.registries, (r) => !r.isCortex && (!name || name === r.name)), (r) => ({ + name: r.name, + value: r.name, + })); + if (choices.length === 0) { + printError(name ? `Registry ${name} not found` : 'No registries found to remove', options); + return; + } + await inquirer.prompt([ + { + type: 'list', + name: 'name', + message: 'Select registry to remove: ', + choices, + }, + ], { + name, + }) + .then((answers) => { + delete profile.registries[answers.name]; + const cfg = readConfig(); + cfg.profiles[profile.name] = profile; + cfg.save(); + printSuccess(`Registry ${answers.name} removed`, options); + }) + .catch((error) => { + printError(error.message, options); + }); + } +} +export class WorkspaceActivateRegistryCommand { + constructor(program) { + this.program = program; + } -module.exports.WorkspaceListRegistryCommand = class WorkspaceListRegistryCommand { - constructor(program) { - this.program = program; - } + async execute(regname, options) { + const name = regname || undefined; + const profile = await loadProfile(options.profile); + const choices = _.map(_.filter(profile.registries, (r) => !name || (r.name === name)), (r) => ({ + name: r.name, + value: r.name, + })); + if (choices.length === 0) { + printError(name ? `Registry ${name} not found` : 'No registries found to activate', options); + return; + } + await inquirer.prompt([ + { + type: 'list', + name: 'name', + message: 'Select registry to activate: ', + choices, + }, + ], { + name, + }) + .then((answers) => { + profile.currentRegistry = answers.name; + const cfg = readConfig(); + cfg.profiles[profile.name] = profile; + cfg.save(); + printSuccess(`Registry ${answers.name} activated`, options); + }) + .catch((error) => { + printError(error.message, options); + }); + } +} +export class WorkspaceListRegistryCommand { + constructor(program) { + this.program = program; + } - async execute(options) { - const profile = await loadProfile(options.profile); - _.forEach(profile.registries, (r) => { - const logStr = `${r.name} - ${path.posix.join(r.url, r.namespace || '')}`; - if (r.name === profile.currentRegistry) { - printSuccess(logStr, options); - } else { - console.log(logStr); - } - }); - } -}; + async execute(options) { + const profile = await loadProfile(options.profile); + _.forEach(profile.registries, (r) => { + const logStr = `${r.name} - ${path.posix.join(r.url, r.namespace || '')}`; + if (r.name === profile.currentRegistry) { + printSuccess(logStr, options); + } else { + console.log(logStr); + } + }); + } +} diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 33635a7f..fccd374b 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -1,140 +1,120 @@ -const _ = require('lodash'); -const path = require('path'); -const glob = require('glob'); -const yaml = require('js-yaml'); -const fs = require('fs'); -const os = require('os'); -const { - stat, - readFile, -} = require('fs/promises'); -const { statSync } = require('fs'); -const ghGot = require('gh-got'); - -const { configDir } = require('../../config'); -const { - printWarning, -} = require('../utils'); +import _ from 'lodash'; +import path from 'node:path'; +import { globSync } from 'glob'; +import yaml from 'js-yaml'; +import { + existsSync, readFileSync, writeFileSync, statSync, +} from 'node:fs'; +import { readFile } from 'node:fs/promises'; +import ghGot from 'gh-got'; +import { configDir, loadProfile } from '../../config.js'; +import { printWarning } from '../utils.js'; let keytar; // Is loading keytar fails, use headless fallback for secrets.. try { - // Don't load keytar for tests - if (process.env.NODE_ENV !== 'test') { - keytar = require('keytar'); - } + // Don't load keytar for tests + if (process.env.NODE_ENV !== 'test') { + keytar = await import('keytar'); + } } catch (err) { - printWarning(`Unable to use keyring service, falling back to file-based keystore: ${err.message}`); + printWarning(`Unable to use keyring service, falling back to file-based keystore: ${err.message}`); } - -const { loadProfile } = require('../../config'); -const buffer = require("buffer"); - const CORTEX_CLI_AUTH_ID = 'cortex-cli:github'; const CORTEX_CLI_AUTH_USER = 'cortex-cli'; +// eslint-disable-next-line require-await async function getPasswordHeaded() { - return await keytar.getPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER); + return keytar.getPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER); } - function readLocaFile() { - const dataFile = path.join(configDir(), 'cache.dat'); - // nothing stored - if (!fs.existsSync(dataFile)) return {}; - const rawData = fs.readFileSync(dataFile); - const decoded = Buffer.from(rawData.toString(), 'base64').toString(); - return JSON.parse(decoded); + const dataFile = path.join(configDir(), 'cache.dat'); + // nothing stored + if (!existsSync(dataFile)) return {}; + const rawData = readFileSync(dataFile); + const decoded = Buffer.from(rawData.toString(), 'base64').toString(); + return JSON.parse(decoded); } - -async function getPasswordHeadless() { - return _.get(readLocaFile(),[CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER]); +function getPasswordHeadless() { + return _.get(readLocaFile(), [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER]); } - async function storePasswordHeaded(val) { - await keytar.setPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER, val); + await keytar.setPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER, val); } - -async function storePasswordHeadless(val) { - const dataFile = path.join(configDir(), 'cache.dat'); - const originaldata = readLocaFile(); - const updated = _.set(originaldata, [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER], val); - fs.writeFileSync(dataFile, Buffer.from(JSON.stringify(updated)).toString('base64')); +function storePasswordHeadless(val) { + const dataFile = path.join(configDir(), 'cache.dat'); + const originaldata = readLocaFile(); + const updated = _.set(originaldata, [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER], val); + writeFileSync(dataFile, Buffer.from(JSON.stringify(updated)).toString('base64')); } - - -module.exports.validateToken = async function validateToken() { - try { - let authorization; - if (keytar !== undefined) { - authorization = await getPasswordHeaded(); - } else { - authorization = await getPasswordHeadless(); +export async function validateToken() { + try { + let authorization; + if (keytar !== undefined) { + authorization = await getPasswordHeaded(); + } else { + authorization = await getPasswordHeadless(); + } + if (authorization) { + const u = await ghGot('user', { headers: { authorization } }); + if (u?.statusCode === 200) return authorization; + } + } catch (err) { + console.error(err.message); } - if (authorization) { - const u = await ghGot('user', { headers: { authorization } }) - if (u?.statusCode === 200) - return authorization; + return undefined; +} +// eslint-disable-next-line require-await +export async function persistToken(token) { + const val = `${token.token_type} ${token.access_token}`; + if (keytar) { + return storePasswordHeaded(val); } - } catch (err) { - console.error(err.message) - } - return undefined; -}; - -module.exports.persistToken = async function persistToken(token) { - const val = `${token.token_type} ${token.access_token}` - if (keytar) { - return storePasswordHeaded(val); - } - return storePasswordHeadless(val); -}; - -module.exports.printToTerminal = function printToTerminal(txt) { - process.stdout.write(`${txt}\x1b[0K\x1b[1E`); -}; - -module.exports.saveTerminalPosition = function saveTerminalPosition() { - process.stdout.write('\x1b7'); -}; - -module.exports.restoreTerminalPosition = function saveTerminalPosition() { - process.stdout.write('\x1b8'); -}; - -module.exports.getSkillInfo = function getSkillInfo(target) { - let skillFiles = []; - if (target.endsWith('skill.yaml')) { - skillFiles = statSync(path.resolve(target)) ? [target] : []; - } else { - skillFiles = glob.sync('./skills/**/skill.yaml', { - cwd: target, - absolute: true, - }); - } - return Promise.all(_.map(skillFiles, async (uri) => { - const skill = await readFile(uri).catch((err) => { console.error(`Unable to open skill: ${err.message}`); }); - return { - name: path.basename(uri), - uri, - skill: skill ? yaml.load(skill.toString()) : undefined, - }; - })); -}; + return storePasswordHeadless(val); +} -module.exports.getCurrentRegistry = async function getCurrentRegistry(profile = undefined) { - const regProfile = profile || await loadProfile(); // old behavior was always getting "current" profile - return regProfile.registries[regProfile.currentRegistry]; -}; +export function printToTerminal(txt) { + process.stdout.write(`${txt}\x1b[0K\x1b[1E`); +} -module.exports.buildImageTag = async function buildImageTag(profile, actionName) { - if (actionName.includes('/')) { - return actionName; - } +export function saveTerminalPosition() { + process.stdout.write('\x1b7'); +} - const registry = await module.exports.getCurrentRegistry(profile); - if (registry.url.includes('docker.io')) { - return path.posix.join(registry.namespace || '', actionName); - } +export function restoreTerminalPosition() { + process.stdout.write('\x1b8'); +} - return path.posix.join(registry.url, registry.namespace || '', actionName); -}; +export function getSkillInfo(target) { + let skillFiles = []; + if (target.endsWith('skill.yaml')) { + skillFiles = statSync(path.resolve(target)) ? [target] : []; + } else { + skillFiles = globSync('./skills/**/skill.yaml', { + cwd: target, + absolute: true, + }); + } + return Promise.all(_.map(skillFiles, async (uri) => { + const skill = await readFile(uri).catch((err) => { console.error(`Unable to open skill: ${err.message}`); }); + return { + name: path.basename(uri), + uri, + skill: skill ? yaml.load(skill.toString()) : undefined, + }; + })); +} +export async function getCurrentRegistry(profile = undefined) { + const regProfile = profile || await loadProfile(); // old behavior was always getting "current" profile + return regProfile.registries[regProfile.currentRegistry]; +} +export async function buildImageTag(profile, actionName) { + if (actionName.includes('/')) { + return actionName; + } + const registry = await getCurrentRegistry(profile); + if (registry.url.includes('docker.io')) { + return path.posix.join(registry.namespace || '', actionName); + } + return path.posix.join(registry.url, registry.namespace || '', actionName); +} diff --git a/src/compatibility.js b/src/compatibility.js index 7a538109..d50057fe 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -1,78 +1,53 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +import _ from 'lodash'; +import * as Table from 'cli-table3'; +import chalk from 'chalk'; +import concat from 'lodash/fp/concat.js'; +import debugSetup from 'debug'; +import filter from 'lodash/fp/filter.js'; +import getOr from 'lodash/fp/getOr.js'; +import keys from 'lodash/fp/keys.js'; +import last from 'lodash/fp/last.js'; +import isInstalledGlobally from 'is-installed-globally'; +import npmFetch from 'npm-registry-fetch'; +import Semver from 'semver'; +import { got, getUserAgent } from './client/apiutils.js'; +import { loadProfile } from './config.js'; +import { printError, printWarning } from './commands/utils.js'; +import pkg from '../package.json' assert { type: 'json' }; -const _ = require('lodash'); -const Table = require('cli-table3'); -const chalk = require('chalk'); -const concat = require('lodash/fp/concat'); -const debug = require('debug')('cortex:cli'); -const filter = require('lodash/fp/filter'); -const findPackageJson = require('find-package-json'); -const getOr = require('lodash/fp/getOr'); -const isInstalledGlobally = require('is-installed-globally'); -const keys = require('lodash/fp/keys'); -const last = require('lodash/fp/last'); -const npmFetch = require('npm-registry-fetch'); -const Semver = require('semver'); -const uniq = require('lodash/fp/uniq'); -const { got, getUserAgent } = require('./client/apiutils'); -const { loadProfile } = require('./config'); -const { printError, printWarning } = require('./commands/utils'); - -const pkg = findPackageJson(__dirname).next().value; +const debug = debugSetup('cortex:cli'); function getAvailableVersions(name) { debug('getAvailableVersions => %s', name); return npmFetch .json(pkg.name) .then((manifest) => keys(getOr({}, 'versions', manifest))) - .then((versions) => uniq(concat(versions, pkg.version))) + .then((versions) => _.uniq(concat(versions, pkg.version))) .then((versions) => versions.sort(Semver.compare)) .catch(() => { - throw new Error('Unable to determine CLI available versions'); - }); + throw new Error('Unable to determine CLI available versions'); + }); } - function getRequiredVersion(profile) { const endpoint = `${profile.url}/fabric/v4/compatibility/applications/cortex-cli`; debug('getRequiredVersion => %s', endpoint); return got .get(endpoint, { - headers: { - Authorization: `Bearer ${profile.token}`, - 'user-agent': getUserAgent(), - }, -}) + headers: { + Authorization: `Bearer ${profile.token}`, + 'user-agent': getUserAgent(), + }, + }) .json() .then((res) => { - const { semver } = res; - return semver; - }).catch((err) => { - throw new Error(`Unable to fetch compatibility: ${err.message}`); - }); + const { semver } = res; + return semver; + }).catch((err) => { + throw new Error(`Unable to fetch compatibility: ${err.message}`); + }); } - -function notifyUpdate({ required = false, current, latest }) { - const message = `Update ${required ? chalk.bold('required') : 'available'} ${ - chalk.dim(current) - }${chalk.reset(' → ') - }${chalk.green(latest) - }\nRun ${ - chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) - } to update`; +export function notifyUpdate({ required = false, current, latest }) { + const message = `Update ${required ? chalk.bold('required') : 'available'} ${chalk.dim(current)}${chalk.reset(' → ')}${chalk.green(latest)}\nRun ${chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`)} to update`; const table = new Table({ chars: { 'top-left': '╭', @@ -85,19 +60,16 @@ function notifyUpdate({ required = false, current, latest }) { table.push([message]); console.warn(table.toString()); } - function upgradeAvailable(args) { process.on('exit', () => { notifyUpdate(args); }); } - function upgradeRequired(args) { notifyUpdate({ required: true, ...args }); process.exit(-1); } - -async function getCompatibility(profile) { +export async function getCompatibility(profile) { debug('getCompatibility => %s profile', profile.name); try { // fail if unable to contact cortex service @@ -121,8 +93,7 @@ async function getCompatibility(profile) { throw new Error(`Unable to contact cortex: ${e.message}`); } } - -function withCompatibilityCheck(fn) { +export function withCompatibilityCheck(fn) { return (...args) => { const command = args.find((a) => a !== undefined && typeof a.opts === 'function'); const options = command.opts(); @@ -131,23 +102,17 @@ function withCompatibilityCheck(fn) { const profile = loadProfile(profileName); return getCompatibility(profile) .then(({ current, latest, satisfied }) => { - if (!satisfied) { - upgradeRequired({ current, latest }); - } else if (Semver.gt(latest, current)) { - upgradeAvailable({ current, latest }); - } - }) + if (!satisfied) { + upgradeRequired({ current, latest }); + } else if (Semver.gt(latest, current)) { + upgradeAvailable({ current, latest }); + } + }) .then(() => fn(...args)) .catch((error) => { - printError(error); - }); + printError(error); + }); } return Promise.resolve().then(() => fn(...args)); }; } - -module.exports = { - notifyUpdate, - getCompatibility, - withCompatibilityCheck, -}; diff --git a/src/config.js b/src/config.js index cbc62e1c..71a84a20 100644 --- a/src/config.js +++ b/src/config.js @@ -1,34 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const _ = require('lodash'); -const os = require('os'); -const fs = require('fs'); -const path = require('path'); -const Joi = require('joi'); -const dayjs = require('dayjs'); -const debug = require('debug')('cortex:config'); -const jose = require('jose-node-cjs-runtime'); -const { printError } = require('./commands/utils'); -const Info = require('./client/info'); - +import _ from 'lodash'; +import os from 'os'; +import fs from 'node:fs'; +import path from 'path'; +import Joi from 'joi'; +import dayjs from 'dayjs'; +import debugSetup from 'debug'; +import * as jose from 'jose'; +import { printError } from './commands/utils.js'; +import Info from './client/info.js'; + +const debug = debugSetup('cortex:config'); function configDir() { return process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); } - // TODO deprecate CORTEX_URI function getCortexUrlFromEnv() { if (process.env.CORTEX_URI) { @@ -36,12 +20,11 @@ function getCortexUrlFromEnv() { } return process.env.CORTEX_URL; } - const durationRegex = /^([.\d]+)(ms|[smhdwMy])$/; async function generateJwt(profile, expiresIn = '2m') { const { - username, issuer, audience, jwk, - } = profile; + username, issuer, audience, jwk, +} = profile; const jwtSigner = await jose.importJWK(jwk, 'Ed25519'); const infoClient = new Info(profile.url); const infoResp = await infoClient.getInfo(); @@ -57,7 +40,6 @@ async function generateJwt(profile, expiresIn = '2m') { .setExpirationTime(expiry) .sign(jwtSigner, { kid: jwk.kid }); } - const ProfileSchema = Joi.object({ name: Joi.string().optional(), url: Joi.string().uri().required(), @@ -70,7 +52,6 @@ const ProfileSchema = Joi.object({ token: Joi.string().optional(), project: Joi.string().optional(), }); - const ProfileSchemaV4 = Joi.object().keys({ name: Joi.string().optional(), url: Joi.string().uri().required(), @@ -85,7 +66,6 @@ const ProfileSchemaV4 = Joi.object().keys({ registries: Joi.any().required(), currentRegistry: Joi.string().required(), }); - const ProfileSchemaV5 = Joi.object().keys({ name: Joi.string().optional(), url: Joi.string().uri().required(), @@ -101,10 +81,9 @@ const ProfileSchemaV5 = Joi.object().keys({ currentRegistry: Joi.string().required(), templateConfig: Joi.any().required(), }); - class Profile { constructor(name, { - url, username, issuer, audience, jwk, project, + url, username, issuer, audience, jwk, project, }) { this.name = name; this.url = url; @@ -135,13 +114,8 @@ class Profile { }; } } - class Config { - constructor({ - version, - profiles, - currentProfile, - }) { + constructor({ version, profiles, currentProfile }) { this.version = version || '3'; this.profiles = profiles || {}; this.currentProfile = currentProfile; @@ -170,10 +144,10 @@ class Config { } setProfile(name, { - url, username, issuer, audience, jwk, - }, project) { + url, username, issuer, audience, jwk, +}, project) { const profile = new Profile(name, { - url, username, issuer, audience, jwk, project, + url, username, issuer, audience, jwk, project, }); profile.validate(); // do not set/save invalid profiles .. this.profiles[name] = profile; @@ -184,10 +158,10 @@ class Config { Object.keys(this.profiles).forEach((name) => { profiles[name] = this.profiles[name].toJSON(); }); - return { - version: this.version, - profiles, - currentProfile: this.currentProfile, + return { + version: this.version, + profiles, + currentProfile: this.currentProfile, }; } @@ -196,19 +170,16 @@ class Config { if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } - _.forEach(this.profiles, (profile) => { delete profile.token; }); - const configFile = path.join(dir, 'config'); fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); } } - class ProfileV4 { constructor(name, { - url, username, issuer, audience, jwk, project, registries, currentRegistry, + url, username, issuer, audience, jwk, project, registries, currentRegistry, }) { this.name = name; this.url = url; @@ -249,13 +220,8 @@ class ProfileV4 { }; } } - class ConfigV4 { - constructor({ - profiles, - currentProfile, - templateConfig, - }) { + constructor({ profiles, currentProfile, templateConfig }) { this.version = '4'; this.profiles = profiles || {}; this.currentProfile = currentProfile; @@ -269,8 +235,8 @@ class ConfigV4 { } setProfile(name, { - url, username, issuer, audience, jwk, registries, currentRegistry, - }, project) { + url, username, issuer, audience, jwk, registries, currentRegistry, +}, project) { const profile = new ProfileV4(name, { url, username, issuer, audience, jwk, project, registries, currentRegistry, }); @@ -283,11 +249,11 @@ class ConfigV4 { Object.keys(this.profiles).forEach((name) => { profiles[name] = this.profiles[name].toJSON(); }); - return { - version: this.version, - profiles, - currentProfile: this.currentProfile, - templateConfig: this.templateConfig, + return { + version: this.version, + profiles, + currentProfile: this.currentProfile, + templateConfig: this.templateConfig, }; } @@ -315,19 +281,16 @@ class ConfigV4 { if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } - _.forEach(this.profiles, (profile) => { delete profile.token; }); - const configFile = path.join(dir, 'config'); fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); } } - class ProfileV5 { constructor(name, { - url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, + url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, }, templateConfigV4) { this.name = name; this.url = url; @@ -373,13 +336,8 @@ class ProfileV5 { }; } } - class ConfigV5 { - constructor({ - profiles, - currentProfile, - templateConfig, - }) { + constructor({ profiles, currentProfile, templateConfig }) { this.version = '5'; this.profiles = profiles || {}; this.currentProfile = currentProfile; @@ -389,8 +347,8 @@ class ConfigV5 { } setProfile(name, { - url, username, issuer, audience, jwk, registries, currentRegistry, templateConfig, - }, project) { + url, username, issuer, audience, jwk, registries, currentRegistry, templateConfig, +}, project) { const profile = new ProfileV5(name, { url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, }); @@ -403,10 +361,10 @@ class ConfigV5 { Object.keys(this.profiles).forEach((name) => { profiles[name] = this.profiles[name].toJSON(); }); - return { - version: this.version, - profiles, - currentProfile: this.currentProfile, + return { + version: this.version, + profiles, + currentProfile: this.currentProfile, }; } @@ -434,39 +392,31 @@ class ConfigV5 { if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } - _.forEach(this.profiles, (profile) => { delete profile.token; }); - const configFile = path.join(dir, 'config'); fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); } } - function defaultConfig() { return new ConfigV5({}); } - function readConfig() { try { const dir = configDir(); if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } - debug(`Reading config from ${dir}`); - const configFile = path.join(dir, 'config'); if (fs.existsSync(configFile)) { // deal with config versions const configObj = JSON.parse(fs.readFileSync(configFile)); - if (configObj.version) { switch (configObj.version) { case '5': return new ConfigV5(configObj); - case '4': { // version 5 (per-profile template support) @@ -475,7 +425,6 @@ function readConfig() { cfg.save(); return cfg; } - case '3': { // version 4 (template config support, with github token) @@ -484,14 +433,12 @@ function readConfig() { cfg.save(); return cfg; } - case '2': fs.copyFileSync(configFile, path.join(dir, 'config_v2')); defaultConfig().save(); printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); // version 2 return new Config(configObj); - default: // version 1 return new Config({ profiles: configObj }); @@ -503,13 +450,11 @@ function readConfig() { } return undefined; } - async function loadProfile(profileName, useenv = true) { const config = readConfig(); if (config === undefined) { printError('Please configure the Cortex CLI by running "cortex configure"'); } - const name = profileName || config.currentProfile || 'default'; const profile = await config.getProfile(name, useenv); if (!profile) { @@ -517,8 +462,13 @@ async function loadProfile(profileName, useenv = true) { } return profile; } - -module.exports = { +export { durationRegex }; +export { loadProfile }; +export { generateJwt }; +export { defaultConfig }; +export { configDir }; +export { readConfig }; +export default { durationRegex, loadProfile, generateJwt, diff --git a/src/constants.js b/src/constants.js index 7297f7a9..af8e161a 100644 --- a/src/constants.js +++ b/src/constants.js @@ -1,5 +1,4 @@ -// ToDo: move to cortex-express-common when adding server side validations FAB-4008 -module.exports.ALLOWED_QUERY_FIELDS = { +export const ALLOWED_QUERY_FIELDS = { SKILL: { filter: ['name', 'title', 'description', 'createdBy'], sort: ['name', 'title', 'description', 'createdAt', 'createdBy', 'updatedAt'], @@ -69,20 +68,14 @@ module.exports.ALLOWED_QUERY_FIELDS = { sort: ['name', 'state', 'startTime', 'endTime', 'skillName', 'actionName', 'jobType'], }, }; - -module.exports.DEFAULT_LIST_LIMIT_COUNT = '20'; - -module.exports.DEFAULT_LIST_SKIP_COUNT = '0'; - -module.exports.DEFAULT_LIST_SORT_PARAMS = { - updatedAt: 'updatedAt', // skills, agents, actions, connections, models, experiments, types, - _updatedAt: '_updatedAt', // projects, missions, campaigns, run, assessment, snapshot - start: 'start', // activations +export const DEFAULT_LIST_LIMIT_COUNT = '20'; +export const DEFAULT_LIST_SKIP_COUNT = '0'; +export const DEFAULT_LIST_SORT_PARAMS = { + updatedAt: 'updatedAt', + _updatedAt: '_updatedAt', + start: 'start', startTime: 'startTime', // tasks }; - -module.exports.LIST_JSON_HELP_TEXT = 'Output results in JSON, supports JMESPath query to filter the response data'; - -module.exports.QUERY_JSON_HELP_TEXT = 'A JMESPath query to use in filtering the response data'; - -module.exports.GET_DEFAULT_SORT_CLI_OPTION = (param) => JSON.stringify({ [param]: -1 }); +export const LIST_JSON_HELP_TEXT = 'Output results in JSON, supports JMESPath query to filter the response data'; +export const QUERY_JSON_HELP_TEXT = 'A JMESPath query to use in filtering the response data'; +export const GET_DEFAULT_SORT_CLI_OPTION = (param) => JSON.stringify({ [param]: -1 }); diff --git a/src/parsers.js b/src/parsers.js index 02ef74b2..599cd9dd 100644 --- a/src/parsers.js +++ b/src/parsers.js @@ -1,21 +1,5 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const _ = require('lodash'); -const { program } = require('commander'); +import _ from 'lodash'; +import { program } from 'commander'; function nonEmptyStringParser(opts) { const { message = 'empty string argument', variadic = false } = opts; @@ -34,20 +18,21 @@ function nonEmptyStringParser(opts) { return value; }; } - // append relevant prefix to keys function transformDynamicParams(params, prefix) { const jsonParams = JSON.parse(params); Object.keys(jsonParams) .forEach((key) => { - if (!_.startsWith(prefix, key)) { - jsonParams[`${prefix}${key}`] = jsonParams[key]; - delete jsonParams[key]; - } - }); + if (!_.startsWith(prefix, key)) { + jsonParams[`${prefix}${key}`] = jsonParams[key]; + delete jsonParams[key]; + } + }); return JSON.stringify(jsonParams); } - -module.exports = { - nonEmptyStringParser, transformDynamicParams, +export { nonEmptyStringParser }; +export { transformDynamicParams }; +export default { + nonEmptyStringParser, + transformDynamicParams, }; diff --git a/test/compatibility.js b/test/compatibility.js index c0e4a174..c9a6c0ff 100644 --- a/test/compatibility.js +++ b/test/compatibility.js @@ -1,32 +1,16 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chai = require('chai'); -const chaiAsPromised = require('chai-as-promised'); -const findPackageJson = require('find-package-json'); -const rewire = require('rewire'); -const semver = require('semver'); -const nock = require('nock'); - -const compatibilityModule = rewire('../src/compatibility'); +import chai from 'chai'; +import chaiAsPromised from 'chai-as-promised'; +import semver from 'semver'; +import nock from 'nock'; +import npmFetch from 'npm-registry-fetch'; +import sinon from 'sinon'; +import pkg from '../package.json' assert { type: 'json' }; +import * as compatibility from '../src/compatibility.js'; chai.use(chaiAsPromised); const { expect } = chai; -const pkg = findPackageJson(__dirname).next().value; +let sandbox; describe('compatibility checks', () => { const profile = { @@ -36,115 +20,88 @@ describe('compatibility checks', () => { username: 'testUser', token: 'testToken', }; - describe('with a compatible application version', () => { - let revertCompatibilityModule; - before(() => { + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {} } })); nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(200, () => ({ semver: pkg.version })); - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), - }, - }); }); - after(() => { - revertCompatibilityModule(); - nock.restore(); + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); }); - it('should resolve as satisfied', () => { const expected = { current: pkg.version, latest: pkg.version, satisfied: true }; - return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + return expect(compatibility.getCompatibility(profile)).to.become(expected); }); }); - describe('with an incompatible application version', () => { const nextMajorVersion = semver.inc(pkg.version, 'major'); - let revertCompatibilityModule; - before(() => { - nock.activate(); nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(200, () => ({ semver: nextMajorVersion })); - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.resolve({ + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {}, [nextMajorVersion]: {}, }, - }), - }, - }); + })); }); - after(() => { - revertCompatibilityModule(); - nock.restore(); + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); }); - it('should resolve as unsatisfied', () => { const expected = { current: pkg.version, latest: nextMajorVersion, satisfied: false }; - return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + return expect(compatibility.getCompatibility(profile)).to.become(expected); }); - // it('should resolve as box', () => { // // Just added a dumb test to test output.. - // compatibilityModule.notifyUpdate({ required: false, current: '1.0.0', latest: '2.0.0' }); + // compatibility.notifyUpdate({ required: false, current: '1.0.0', latest: '2.0.0' }); // }); }); - describe('when the compatibility service cannot be reached', () => { - let revertCompatibilityModule; - before(() => { - nock.activate(); nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(500, () => ('BOOM')); - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), - }, - }); + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {} } })); }); - after(() => { - revertCompatibilityModule(); - nock.restore(); + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); }); - - it('should reject', () => expect(compatibilityModule.getCompatibility(profile)).to.be.rejected); + it('should reject', () => expect(compatibility.getCompatibility(profile)).to.be.rejected); }); - describe('when the npm cannot be reached', () => { - let revertCompatibilityModule; before(() => { - nock.activate(); nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(200, () => ({ semver: pkg.version })); - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.reject(new Error('BOOM!')), - }, - }); + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .throws(new Error('BOOM!')); }); - after(() => { - revertCompatibilityModule(); - nock.restore(); + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); }); - it('should not reject', () => { // should default to current package version... const expected = { current: pkg.version, latest: pkg.version, satisfied: true }; - return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + return expect(compatibility.getCompatibility(profile)).to.become(expected); }); }); }); diff --git a/test/configure.js b/test/configure.js index 6917cd12..307eca1e 100644 --- a/test/configure.js +++ b/test/configure.js @@ -1,33 +1,17 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const mockedEnv = require('mocked-env'); -const _ = require('lodash'); -const assert = require('assert'); -const os = require('os'); -const path = require('path'); -const fs = require('fs'); -const sinon = require('sinon'); -const { expect } = require('chai'); -const yaml = require('js-yaml'); -const { stripAnsi } = require('./utils'); -const Info = require('../src/client/info'); +import mockedEnv from 'mocked-env'; +import _ from 'lodash'; +import assert from 'assert'; +import os from 'os'; +import path from 'path'; +import fs from 'node:fs'; +import sinon from 'sinon'; +import { expect } from 'chai'; +import yaml from 'js-yaml'; +import { stripAnsi } from './utils.js'; +import Info from '../src/client/info.js'; +import { create } from '../bin/cortex-configure.js'; const iatDate = new Date('January 11, 2011 11:11:11').getTime(); - function parseJwt(jwt) { const parts = jwt.split('.'); const header = JSON.parse(Buffer.from(parts[0], 'base64') @@ -39,7 +23,6 @@ function parseJwt(jwt) { payload, }; } - describe('configure', () => { const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cortex-cli')); let restore; @@ -51,57 +34,44 @@ describe('configure', () => { CORTEX_CONFIG_DIR: tmpDir, }); }); - beforeEach(() => { - delete require.cache[require.resolve('commander')]; - delete require.cache[require.resolve('../bin/cortex-configure')]; - + // delete require.cache[require.resolve('commander')]; + // delete require.cache[require.resolve('../bin/cortex-configure')]; sandbox = sinon.createSandbox(); - sandbox.stub(process, 'exit'); + sandbox.stub(process, 'exit').throws(Error('EXIT')); sandbox.stub(Info.prototype, 'getInfo').callsFake(() => ({ serverTs: iatDate, })); - printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); fs.copyFileSync('./test/cortex/config', path.join(tmpDir, 'config')); }); - afterEach(() => { sandbox.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - it('lists profiles', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'list']); + await create().parseAsync(['node', 'configure', 'list']); sandbox.assert.calledTwice(printSpy); // default is set at default... expect(getPrintedLines()).to.eql(['default', 'other']); }); - it('get profile other', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'describe', 'other']); + await create().parseAsync(['node', 'configure', 'describe', 'other']); const output = getPrintedLines(); expect(output).to.length(5); expect(output[4]).to.eql('Project: otherProj'); }); - it('ttl token default ttl', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token']); + await create().parseAsync(['node', 'configure', 'token']); const output = getPrintedLines(); const { payload } = parseJwt(output[0]); expect(payload.sub).to.equal('test_user'); @@ -110,10 +80,8 @@ describe('configure', () => { expect(payload.exp).to.equal((iatDate / 1000) + (24 * 3600)); // Expect 1 day default expect(output).to.length(1); }); - it('ttl token default with other profile', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token', '--profile', 'other']); + await create().parseAsync(['node', 'configure', 'token', '--profile', 'other']); const output = getPrintedLines(); const { payload } = parseJwt(output[0]); expect(payload.sub).to.equal('other_user'); @@ -122,10 +90,8 @@ describe('configure', () => { expect(payload.exp).to.equal((iatDate / 1000) + (24 * 3600)); // Expect 1 day default expect(output).to.length(1); }); - it('ttl token with ttl', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token', '--ttl', '5m', '--profile', 'other']); + await create().parseAsync(['node', 'configure', 'token', '--ttl', '5m', '--profile', 'other']); const output = getPrintedLines(); const { payload } = parseJwt(output[0]); expect(payload.sub).to.equal('other_user'); @@ -133,33 +99,26 @@ describe('configure', () => { expect(payload.iat).to.equal(iatDate / 1000); expect(payload.exp).to.equal((iatDate / 1000) + (5 * 60)); }); - it('ttl token with bad ttl', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); + await create().parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); const output = getErrorLines(); expect(output[0]).to.contain('Invalid --ttl'); }); - it('ttl token default with bad profile', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token', '--profile', 'nothere']); + await create().parseAsync(['node', 'configure', 'token', '--profile', 'nothere']); const output = getErrorLines(); expect(output[0]).to.contain('Profile with name "nothere" could not be located in your configuration.'); assert(process.exit.calledWith(1)); }); - - it('create profile pat file', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); + await create().parseAsync(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); const output = getPrintedLines(); expect(output).to.length(2); expect(output[1]).to.eql('Configuration for profile conftest saved.'); const conf = yaml.load(fs.readFileSync(path.join(tmpDir, 'config'))); expect(conf.profiles.conftest).to.haveOwnProperty('project', 'test'); printSpy.resetHistory(); - await program.parseAsync(['node', 'configure', 'list']); + await create().parseAsync(['node', 'configure', 'list']); expect(getPrintedLines()).to.eql(['default', 'other', 'conftest']); }); }); diff --git a/test/docgen.js b/test/docgen.js new file mode 100644 index 00000000..6f6e637f --- /dev/null +++ b/test/docgen.js @@ -0,0 +1,19 @@ +import chai from 'chai'; +import chaiAsPromised from 'chai-as-promised'; +import { globSync } from 'glob'; +import docGen from '../generate_docs.js'; + +chai.use(chaiAsPromised); +const { expect } = chai; + +describe('Test docgen', () => { + const cmdJses = globSync('./bin/*.js', { absolute: true }); + cmdJses.forEach((commandJS) => { + it(`Generate docs for ${commandJS}`, async () => { + const { default: program } = await import(commandJS); + const docStr = docGen(program); + // eslint-disable-next-line no-unused-expressions + expect(docStr).not.be.empty; + }); + }); +}); diff --git a/test/docker-registry.js b/test/docker-registry.js index be5e13e3..488dd183 100644 --- a/test/docker-registry.js +++ b/test/docker-registry.js @@ -1,25 +1,20 @@ -const { assert } = require('chai'); -const Actions = require('../src/client/actions'); +import { assert } from 'chai'; +import Actions from '../src/client/actions.js'; const action = new Actions('https://api.cortex-dev.insights.ai'); - describe('_cortexRegistryImagePath()', () => { it('returns the full URL of the image in the private registry', () => { const registryUrl = 'private-registry.cortex.insights.ai'; const tenant = 'tenant'; - const i1 = 'image'; const i2 = 'c12e/image'; const i3 = 'docker.io/library/image'; - const t1 = 'image:1234'; const t2 = 'c12e/image:1234'; const t3 = 'docker.io/library/image:1234'; - [i1, i2, i3].forEach((i) => { assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image'); }); - [t1, t2, t3].forEach((i) => { assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image:1234'); }); diff --git a/test/tasks.js b/test/tasks.js index 832d7d81..aaa5631c 100644 --- a/test/tasks.js +++ b/test/tasks.js @@ -1,29 +1,13 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chai = require('chai'); -const mockedEnv = require('mocked-env'); -const nock = require('nock'); -const _ = require('lodash'); -const sinon = require('sinon'); -const Tasks = require('../src/client/tasks'); -const { stripAnsi } = require('./utils'); +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import nock from 'nock'; +import _ from 'lodash'; +import sinon from 'sinon'; +import Tasks from '../src/client/tasks.js'; +import { stripAnsi } from './utils.js'; +import { create } from '../bin/cortex-tasks.js'; const { expect } = chai; - const PROJECT = 'project'; describe('Tasks', () => { let restoreEnv; @@ -38,41 +22,30 @@ describe('Tasks', () => { CORTEX_CONFIG_DIR: './test/cortex', }); sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit').throws(Error('EXIT')); printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); }); - - beforeEach(() => { - delete require.cache[require.resolve('commander')]; - delete require.cache[require.resolve('../bin/cortex-tasks')]; - }); - after(() => { restoreEnv(); sandbox.restore(); nock.restore(); }); - afterEach(() => { // clean up mocks that may not have been called nock.cleanAll(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - const serverUrl = 'http://localhost:8000'; - it('list tasks command (old response)', async () => { - const program = require('../bin/cortex-tasks'); const response = { success: true, tasks: ['task0', 'task1'] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.contain('task0'); @@ -81,12 +54,10 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command JSON no tasks', async () => { - const program = require('../bin/cortex-tasks'); const response = { success: true, tasks: [] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.contain('No tasks found'); @@ -94,12 +65,10 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command JSON without JSMEsearch', async () => { - const program = require('../bin/cortex-tasks'); const response = { success: true, tasks: ['task0', 'task1'] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.contain('name'); @@ -109,9 +78,7 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command JSON with JSMEsearch', async () => { - const program = require('../bin/cortex-tasks'); const now = Date.now(); const response = { success: true, @@ -125,7 +92,7 @@ describe('Tasks', () => { ], }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json', '[].{skillName: skillName, name: name}']); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json', '[].{skillName: skillName, name: name}']); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.not.contain('activationId'); @@ -136,9 +103,7 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command QUERY should work as JSON alias with JSMEsearch', async () => { - const program = require('../bin/cortex-tasks'); const now = Date.now(); const response = { success: true, @@ -152,7 +117,7 @@ describe('Tasks', () => { ], }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--query', '[].{skillName: skillName, name: name}']); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--query', '[].{skillName: skillName, name: name}']); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.not.contain('activationId'); @@ -163,43 +128,39 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command', async () => { - const program = require('../bin/cortex-tasks'); const now = Date.now(); const response = { success: true, tasks: [ - { - name: 'task0', startTime: now - (30 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx1', skillName: 'skill1', actionName: 'action1', status: 'COMPLETE', - }, - { - name: 'task1', startTime: now - (40 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx2', skillName: 'skill2', actionName: 'action1', status: 'FAIL', - }, + { + name: 'task0', startTime: now - (30 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx1', skillName: 'skill1', actionName: 'action1', status: 'COMPLETE', + }, + { + name: 'task1', startTime: now - (40 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx2', skillName: 'skill2', actionName: 'action1', status: 'FAIL', + }, ], }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); - const output = getPrintedLines(); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); + const output = getPrintedLines().join(''); const errs = getErrorLines(); - chai.expect(output.join('')).to.contain('task0'); - chai.expect(output.join('')).to.contain('20 minutes'); - chai.expect(output.join('')).to.contain('30 minutes'); - chai.expect(output.join('')).to.contain('30 minutes ago'); - chai.expect(output.join('')).to.contain('40 minutes ago'); - chai.expect(output.join('')).to.contain('task0'); - chai.expect(output.join('')).to.contain('task1'); + chai.expect(output).to.contain('task0', output); + chai.expect(output).to.contain('20 minutes', output); + chai.expect(output).to.contain('30 minutes', output); + chai.expect(output).to.contain('30 minutes ago', output); + chai.expect(output).to.contain('40 minutes ago', output); + chai.expect(output).to.contain('task0', output); + chai.expect(output).to.contain('task1', output); // eslint-disable-next-line no-unused-expressions chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks client JSON', async () => { const taskCtl = new Tasks(serverUrl); const options = { json: true, }; - const response = { success: true, tasks: ['task0', 'task1'] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); const taskList = await taskCtl.listTasks(PROJECT, '', options); diff --git a/test/testUtilFunctions.js b/test/testUtilFunctions.js index c99d99f7..33104f75 100644 --- a/test/testUtilFunctions.js +++ b/test/testUtilFunctions.js @@ -1,10 +1,9 @@ -const { expect } = require('chai'); -const _ = require('lodash'); -const mockedEnv = require('mocked-env'); -const sinon = require('sinon'); -const { getQueryOptions, getFilteredOutput } = require('../src/commands/utils'); - -const { stripAnsi } = require('./utils'); +import { expect } from 'chai'; +import _ from 'lodash'; +import mockedEnv from 'mocked-env'; +import sinon from 'sinon'; +import { getQueryOptions, getFilteredOutput } from '../src/commands/utils.js'; +import { stripAnsi } from './utils.js'; describe('Test getQueryOptions function', () => { it('should have empty query string if options.json is true', () => { @@ -14,7 +13,6 @@ describe('Test getQueryOptions function', () => { const queryOptions = getQueryOptions(options); expect(queryOptions.query).to.eql(null); }); - it('should retain the query string if options.json is not true', () => { const queryPath = '[].{name: name, title: title}'; const options = { @@ -23,7 +21,6 @@ describe('Test getQueryOptions function', () => { const queryOptions = getQueryOptions(options); expect(queryOptions.query).to.eql(queryPath); }); - // TODO remove --query on deprecation // handle cases 'cortex entity command --query <path> --json' it('--query [arg] should override --json [arg] the if both are passed', () => { @@ -37,7 +34,6 @@ describe('Test getQueryOptions function', () => { expect(queryOptions.query).to.eql(queryPath); }); }); - describe('Test getFilteredOutput function', () => { let restore; let printSpy; @@ -45,29 +41,23 @@ describe('Test getFilteredOutput function', () => { before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(process.stderr, 'write'); printSpyConsole = sinon.spy(console, 'log'); }); - afterEach(() => { printSpy.restore(); printSpyConsole.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getPrintedConsoleLines() { return _.flatten(printSpyConsole.args).map((s) => stripAnsi(s)); } - it('should print Deprecation warning when query option is present', () => { const queryPath = '[].{name: name, title: title}'; const options = { @@ -76,7 +66,6 @@ describe('Test getFilteredOutput function', () => { getFilteredOutput([], options); expect(getPrintedLines()).to.eql(['[DEPRECATION WARNING] --query\n']); }); - it('should print error message when query has invalid input', () => { // handle cases 'cortex entity command --query <path> --json' const queryPath = '--json'; @@ -86,7 +75,6 @@ describe('Test getFilteredOutput function', () => { getFilteredOutput([], options); expect(getPrintedLines()[1]).to.eql(`error: invalid argument: ${queryPath} \n`); }); - it('should print json output with correct params', () => { // handle cases 'cortex entity command --query <path> --json' const options = { @@ -99,7 +87,6 @@ describe('Test getFilteredOutput function', () => { expect(getPrintedConsoleLines()[0]).to.contain('title'); expect(getPrintedConsoleLines()[0]).to.contain('test-title'); }); - it('should print json output with correct query args', () => { const options = { query: 'title', @@ -111,7 +98,6 @@ describe('Test getFilteredOutput function', () => { expect(getPrintedConsoleLines()[0]).to.not.contain('test-name'); expect(getPrintedConsoleLines()[0]).to.contain('test-title'); }); - it('should print json output with correct json args without Deprecation warning', () => { const options = { json: 'title', @@ -123,7 +109,6 @@ describe('Test getFilteredOutput function', () => { expect(getPrintedConsoleLines()[0]).to.not.contain('test-name'); expect(getPrintedConsoleLines()[0]).to.contain('test-title'); }); - it('should override json path when both query and json path are passed', () => { const options = { json: 'title', diff --git a/test/testUtils.js b/test/testUtils.js index bd2790b2..fa214a39 100644 --- a/test/testUtils.js +++ b/test/testUtils.js @@ -1,62 +1,47 @@ -const _ = require('lodash'); -const { expect } = require('chai'); -const mockedEnv = require('mocked-env'); -const sinon = require('sinon'); - -const { - handleTable, - printExtendedLogs, - handleListFailure, - handleDeleteFailure, -} = require('../src/commands/utils'); - -const { stripAnsi } = require('./utils'); +import _ from 'lodash'; +import { expect } from 'chai'; +import mockedEnv from 'mocked-env'; +import sinon from 'sinon'; +import { + handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, +} from '../src/commands/utils.js'; +import { stripAnsi } from './utils.js'; const sampleData = [ { user: 'user-1', name: 'user-name-1' }, { user: 'user-2', name: 'user-name-2' }, { user: 'user-3', name: 'user-name-3' }, ]; - const tableSpec = [ { column: 'User', field: 'user' }, { column: 'Name', field: 'name' }, ]; - let restore; describe('Handle table function test', () => { let printSpy; - before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(console, 'log'); }); - afterEach(() => { printSpy.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - it('should print supplied error message when data is empty', () => { handleTable(tableSpec, [], null, 'No users found'); expect(getPrintedLines()).to.eql(['No users found']); }); - it('should print a table when data is present', () => { handleTable(tableSpec, sampleData, null, 'No users found'); - expect(getPrintedLines()).to.eql( - [ - '┌────────┬─────────────┐\n' + expect(getPrintedLines()).to.eql([ + '┌────────┬─────────────┐\n' + '│ User │ Name │\n' + '├────────┼─────────────┤\n' + '│ user-1 │ user-name-1 │\n' @@ -65,11 +50,9 @@ describe('Handle table function test', () => { + '├────────┼─────────────┤\n' + '│ user-3 │ user-name-3 │\n' + '└────────┴─────────────┘', - ], - ); + ]); }); }); - describe('Test printExtendedLogs function', () => { let printSpy; const data = [ @@ -82,58 +65,46 @@ describe('Test printExtendedLogs function', () => { before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(process.stderr, 'write'); }); - afterEach(() => { printSpy.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - it('should print the result limited message if data length is equal to limit value', () => { printExtendedLogs([...data, { key5: 'val5' }], { limit }); expect(getPrintedLines()).to.eql([`Results limited to ${limit} rows\n`]); }); - it('should not print the result limited message if data length is less than limit value', () => { printExtendedLogs(data, { limit }); expect(getPrintedLines()).to.eql([]); }); }); - describe('Test handleListFailure function', () => { let printSpy; before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(console, 'log'); sinon.stub(process, 'exit'); }); - afterEach(() => { printSpy.restore(); process.exit.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - const errResponse = { status: 400, details: [ @@ -144,53 +115,44 @@ describe('Test handleListFailure function', () => { }; it('should print tabular output if status is 400', () => { handleListFailure(errResponse, null, 'test-resource'); - expect((getPrintedLines()[0])).to.equal( - '┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n' - + '│ Option Type │ Message │\n' - + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' - + '│ type1 │ message1 │\n' - + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' - + '│ type2 │ message2 │\n' - + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' - + '│ type3 │ message3 │\n' - + '└────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘', - ); + expect((getPrintedLines()[0])).to.equal('┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n' + + '│ Option Type │ Message │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type1 │ message1 │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type2 │ message2 │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type3 │ message3 │\n' + + '└────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘'); // eslint-disable-next-line no-unused-expressions expect(process.exit.calledWith(1)).to.be.true; }); }); - describe('Test handleDeleteFailure', () => { let printSpy; let errorSpy; before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(console, 'log'); errorSpy = sinon.spy(console, 'error'); sinon.stub(process, 'exit'); }); - afterEach(() => { printSpy.restore(); errorSpy.restore(); process.exit.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - const depErrorResponse = { status: 403, message: 'message', @@ -200,31 +162,26 @@ describe('Test handleDeleteFailure', () => { { type: 'type3', name: 'name3' }, ], }; - const serverErrorResponse = { status: 500, message: 'Server Unavailable', details: [], }; - it('should print tabular output if status is 403', () => { handleDeleteFailure(depErrorResponse, null, 'test-resource'); expect(getErrorLines()[0]).to.equal('test-resource deletion failed: message.'); - expect((getPrintedLines()[0])).to.equal( - '┌────────────────────────────────────────────────────────────┬────────────────────────────────────────┐\n' - + '│ Dependency Name │ Dependency Type │\n' - + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' - + '│ name1 │ type1 │\n' - + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' - + '│ name2 │ type2 │\n' - + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' - + '│ name3 │ type3 │\n' - + '└────────────────────────────────────────────────────────────┴────────────────────────────────────────┘', - ); + expect((getPrintedLines()[0])).to.equal('┌────────────────────────────────────────────────────────────┬────────────────────────────────────────┐\n' + + '│ Dependency Name │ Dependency Type │\n' + + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' + + '│ name1 │ type1 │\n' + + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' + + '│ name2 │ type2 │\n' + + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' + + '│ name3 │ type3 │\n' + + '└────────────────────────────────────────────────────────────┴────────────────────────────────────────┘'); // eslint-disable-next-line no-unused-expressions expect(process.exit.calledWith(1)).to.be.true; }); - it('should print the default error message is not 403 (500)', () => { handleDeleteFailure(serverErrorResponse, null, 'test-resource'); expect(getErrorLines()[0]).to.equal('test-resource deletion failed: 500 Server Unavailable.'); diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index 33dbb671..ec90c761 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -1,72 +1,77 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const path = require('path'); -const commander = require('commander'); -const chai = require('chai'); -const mockedEnv = require('mocked-env'); -const { UploadContent } = require('../src/commands/content'); -const { humanReadableFileSize } = require('../src/commands/utils'); +import path from 'node:path'; +import url from 'node:url'; +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import sinon from 'sinon'; +import _ from 'lodash'; +import { create } from '../bin/cortex-content.js'; +import { humanReadableFileSize } from '../src/commands/utils.js'; +import { stripAnsi } from './utils.js'; +import Info from '../src/client/info.js'; +import Content from '../src/client/content.js'; const { expect } = chai; -let restoreEnv; describe('Upload Directory', () => { + let restoreEnv; + let sandbox; + let printSpy; + let errorSpy; + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + before(() => { restoreEnv = mockedEnv({ CORTEX_CONFIG_DIR: './test/cortex', }); }); - after(() => { - restoreEnv(); - }); - it('test upload', (done) => { - const program = new commander.Command(); - const command = new UploadContent(program); - const contentKey = '.shared'; - const dirname = __dirname.split(path.sep).join(path.posix.sep); + beforeEach(() => { + sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit'); + sandbox.stub(Info.prototype, 'getInfo').callsFake(() => ({ + serverTs: Date.now(), + })); + printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); + }); + + after(() => restoreEnv()); + afterEach(() => sandbox.restore()); + it('test upload successfull', async () => { + const program = create(); + const contentKey = '.shared'; + sandbox.stub(Content.prototype, 'uploadContentStreaming').returns({ success: true }); + const dirname = url.fileURLToPath(new URL('.', import.meta.url)).split(path.sep).join(path.posix.sep); const filePath = path.posix.join(dirname, 'cortex'); - const options = { - recursive: true, - test: true, - }; - - const expectedFileDicts = [ - { - canonical: path.posix.join(dirname, 'cortex', 'config'), - relative: 'config', - size: 1611, - }, - { - canonical: path.posix.join(dirname, 'cortex', 'pat-file.json'), - relative: 'pat-file.json', - size: 326, - }, - { - canonical: path.posix.join(dirname, 'cortex', 'sample', 'upload', 'config'), - relative: path.join('sample', 'upload', 'config'), - size: 483, - }, - ]; - - command.execute(contentKey, filePath, options, (fileDicts) => { - expect(fileDicts).to.deep.equal(expectedFileDicts); - done(); - }); + await program.parseAsync(['node', 'content', 'upload', '--project', 'FOO', '--recursive', contentKey, filePath]); + const lines = getPrintedLines(); + expect(lines).to.include('326B\tpat-file.json -> .shared/pat-file.json'); + expect(lines).to.include('1.6K\tconfig -> .shared/config'); + expect(lines).to.include('483B\tsample/upload/config -> .shared/sample/upload/config'); + // eslint-disable-next-line no-unused-expressions + expect(getErrorLines()).is.empty; // Assume no errors + }); + it('test upload error', async () => { + const program = create(); + const contentKey = '.shared'; + // can't contact cluster.. + // sandbox.stub(Content.prototype, 'uploadContentStreaming').returns({ success: true }); + const dirname = url.fileURLToPath(new URL('.', import.meta.url)).split(path.sep).join(path.posix.sep); + const filePath = path.posix.join(dirname, 'cortex'); + await program.parseAsync(['node', 'content', 'upload', '--project', 'FOO', '--chunkSize', 1, '--recursive', contentKey, filePath]); + const lines = getPrintedLines(); + const errLines = getErrorLines(); + expect(lines).to.include('326B\tpat-file.json -> .shared/pat-file.json'); + expect(lines).to.include('1.6K\tconfig -> .shared/config'); + expect(lines).to.include('483B\tsample/upload/config -> .shared/sample/upload/config'); + // eslint-disable-next-line no-unused-expressions + expect(errLines).to.have.length(2); // Should match concurrency ?? why +1 }); }); @@ -83,35 +88,30 @@ describe('Human Readable File Size', () => { expect(formattedFileSize).to.have.string('1.2K'); done(); }); - it('MB', (done) => { const sizeInBytes = 1000000; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('1M'); done(); }); - it('1MB less some', (done) => { const sizeInBytes = (10 ** 3) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999B'); done(); }); - it('1k 200 bytes less', (done) => { const sizeInBytes = 1000000 - 200; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.8K'); done(); }); - it('1k less', (done) => { const sizeInBytes = (10 ** 6) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.9K'); done(); }); - it('several GB', (done) => { const sizeInBytes = 32 * (10 ** 9) + 345 * (10 ** 6); const formattedFileSize = humanReadableFileSize(sizeInBytes); diff --git a/test/useragent.js b/test/useragent.js index 11936d7f..8f446456 100644 --- a/test/useragent.js +++ b/test/useragent.js @@ -1,31 +1,14 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chai = require('chai'); -const chaiAsPromised = require('chai-as-promised'); -const findPackageJson = require('find-package-json'); -const rewire = require('rewire'); -const nock = require('nock'); - -const compatibilityModule = rewire('../src/compatibility'); +import chai from 'chai'; +import chaiAsPromised from 'chai-as-promised'; +import nock from 'nock'; +import sinon from 'sinon'; +import npmFetch from 'npm-registry-fetch'; +import pkg from '../package.json' assert { type: 'json' }; +import * as compatibility from '../src/compatibility.js'; chai.use(chaiAsPromised); -const pkg = findPackageJson(__dirname).next().value; - +let sandbox; describe('useragent', () => { const profile = { url: 'http://example.com', @@ -34,33 +17,28 @@ describe('useragent', () => { username: 'testUser', token: 'testToken', }; - - let revertCompatibilityModule; - before(() => { + if (!nock.isActive()) { + nock.activate(); + } // Compatibility API call is as good as any to verify the request has user-agent, // so mock it the same way we do for that test, adding capture of headers. - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), - }, - }); + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {} } })); }); - after(() => { - revertCompatibilityModule(); + sandbox.restore(); + nock.cleanAll(); }); - it('should exist in request headers', async () => { - nock.activate(); - const n = nock(profile.url) + nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(200, () => ({ semver: pkg.version })) .matchHeader('user-agent', (val) => { - console.log(val); - return val.includes(`${pkg.name}/${pkg.version}`); - }); - await compatibilityModule.getCompatibility(profile); - n.done(); + console.log(val); + return val.includes(`${pkg.name}/${pkg.version}`); + }); + await compatibility.getCompatibility(profile); }); }); diff --git a/test/utils.js b/test/utils.js index 6af908d2..0a6d085f 100644 --- a/test/utils.js +++ b/test/utils.js @@ -6,8 +6,12 @@ function ansiRegex({ onlyFirst = false } = {}) { ].join('|'); return new RegExp(pattern, onlyFirst ? undefined : 'g'); } - function stripAnsi(s) { return s.replace(ansiRegex(), ''); } -module.exports = { ansiRegex, stripAnsi }; +export { ansiRegex }; +export { stripAnsi }; +export default { + ansiRegex, + stripAnsi, +}; diff --git a/test/workspaces.js b/test/workspaces.js index 19c08981..f788c61b 100644 --- a/test/workspaces.js +++ b/test/workspaces.js @@ -1,28 +1,13 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chai = require('chai'); -const mockedEnv = require('mocked-env'); -const _ = require('lodash'); -const sinon = require('sinon'); -const fs = require('fs'); -const isCI = require('is-ci'); -const rewire = require('rewire'); -const { stripAnsi } = require('./utils'); - +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import _ from 'lodash'; +import sinon from 'sinon'; +import fs from 'fs'; +import nock from 'nock'; +import isCI from 'is-ci'; +import { stripAnsi } from './utils.js'; +import { create } from '../bin/cortex-workspaces.js'; +import * as wsutils from '../src/commands/workspaces/workspace-utils.js'; describe('Workspaces', () => { let restoreEnv; @@ -30,63 +15,57 @@ describe('Workspaces', () => { let printSpy; let errorSpy; before(() => { + if (!nock.isActive()) { + nock.activate(); + } restoreEnv = mockedEnv({ CORTEX_CONFIG_DIR: '../cortex', }); sandbox = sinon.createSandbox(); printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); - fs.mkdirSync('test/workspaces', { recursive: true }); process.chdir('test/workspaces'); }); - - beforeEach(() => { - delete require.cache[require.resolve('commander')]; - delete require.cache[require.resolve('../bin/cortex-workspaces')]; - }); - + // beforeEach(() => { + // delete require.cache[require.resolve('commander')]; + // delete require.cache[require.resolve('../bin/cortex-workspaces')]; + // }); after(() => { restoreEnv(); sandbox.restore(); process.chdir('..'); + nock.cleanAll(); fs.rmSync('cortex/cache.dat'); fs.rmSync('workspaces', { recursive: true }); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - it('headless workspace persist token', async () => { + nock('https://api.github.com') + .get('/user').reply(200, { statusCode: 200 }); // test that headless token storage works ... - const wsutilsMock = rewire('../src/commands/workspaces/workspace-utils'); - wsutilsMock.__set__('ghGot', () => ({ statusCode: 200 })); - const token_tostore = { token_type: 'token_type', access_token: 'access_token' }; - await wsutilsMock.persistToken(token_tostore); - const token = await wsutilsMock.validateToken(); - chai.expect(token).equal(`${token_tostore.token_type} ${token_tostore.access_token}`); + const tokenToStore = { token_type: 'token_type', access_token: 'access_token' }; + await wsutils.persistToken(tokenToStore); + const token = await wsutils.validateToken(); + chai.expect(token).equal(`${tokenToStore.token_type} ${tokenToStore.access_token}`); }); - // eslint-disable-next-line func-names xit('should generate a job skill', async () => { if (!isCI) { - const program = require('../bin/cortex-workspaces'); - await program.parseAsync(['node', 'workspaces', 'generate', 'job1', '--notree', '--template', 'Custom Job Skill']); + await create().parseAsync(['node', 'workspaces', 'generate', 'job1', '--notree', '--template', 'Custom Job Skill']); const output = getPrintedLines(); const errs = getErrorLines(); - chai.expect(fs.existsSync('docs/job1/README.md')); chai.expect(fs.existsSync('skills/job1/skill.yaml')); chai.expect(fs.existsSync('skills/job1/actions/job1/main.py')); chai.expect(fs.existsSync('skills/job1/actions/job1/requirements.txt')); chai.expect(fs.existsSync('skills/job1/actions/job1/Dockerfile')); chai.expect(fs.existsSync('skills/job1/invoke/request/message.json')); - chai.expect(output.join('')).to.contain('Workspace generation complete.'); // eslint-disable-next-line no-unused-expressions chai.expect(errs).to.be.empty; @@ -94,22 +73,18 @@ describe('Workspaces', () => { this.skip(); } }); - // eslint-disable-next-line func-names xit('should generate a daemon skill', async function () { if (!isCI) { - const program = require('../bin/cortex-workspaces'); - await program.parseAsync(['node', 'workspaces', 'generate', 'dmn1', '--notree', '--template', 'Custom Daemon Skill']); + await create().parseAsync(['node', 'workspaces', 'generate', 'dmn1', '--notree', '--template', 'Custom Daemon Skill']); const output = getPrintedLines(); const errs = getErrorLines(); - chai.expect(fs.existsSync('docs/dmn1/README.md')); chai.expect(fs.existsSync('skills/dmn1/skill.yaml')); chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/main.py')); chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/requirements.txt')); chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/Dockerfile')); chai.expect(fs.existsSync('skills/dmn1/invoke/request/message.json')); - chai.expect(output.join('')).to.contain('Workspace generation complete.'); // eslint-disable-next-line no-unused-expressions chai.expect(errs).to.be.empty; From f6bef334acefbb3e81bf93bf0996d1e4c390431c Mon Sep 17 00:00:00 2001 From: Lalit Kumar Jha <ljha@cognitivescale.com> Date: Wed, 15 Mar 2023 09:43:39 +0530 Subject: [PATCH 777/864] agent changes for single batch job in mission runtime (#661) --- bin/cortex-missions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index cf5c4112..698a995d 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -105,7 +105,7 @@ export function create() { printError('payload cannot be empty'); throw new Error('Empty payload received in params'); } - new InvokeAgentServiceCommand(program).execute(`${missionName}-online-learner-agent`, 'online_learner_service', options); + new InvokeAgentServiceCommand(program).execute(`${campaignName}-${missionName}`, 'mission_manager_service', options); } catch (err) { console.error(chalk.red(err.message)); } From 45399c05865859d8a4121379d4d104e2eb022e11 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Jha <ljha@cognitivescale.com> Date: Thu, 23 Mar 2023 23:30:34 +0530 Subject: [PATCH 778/864] Single batch job (#662) * agent changes for single batch job in mission runtime * remove campaign name due to hashing issue in toK8sName * mission status cli * campaign name in invoke --------- Co-authored-by: ljha <ljha@c12e.com> --- bin/cortex-missions.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 698a995d..2d59f3ce 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -12,6 +12,7 @@ import { ListMissionsCommand, DeployMissionCommand, DescribeMissionCommand, UndeployMissionCommand, } from '../src/commands/campaigns.js'; import { InvokeAgentServiceCommand } from '../src/commands/agents.js'; +import { DownloadContent } from '../src/commands/content.js'; export function create() { const program = new Command(); @@ -124,6 +125,20 @@ export function create() { console.error(chalk.red(err.message)); } })); + program + .command('status <activationId>') + .description('Status of Missions activation') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((activationId, options) => { + try { + new DownloadContent(program).execute(`mission_runtime/${activationId}/status.chk`, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); return program; } if (esMain(import.meta)) { From 2f44f023a2798907d74d396bda05f2316ab1651e Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 28 Mar 2023 15:05:39 -0500 Subject: [PATCH 779/864] Fix keytar import (#663) --- src/commands/workspaces/workspace-utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index fccd374b..1dfc475c 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -15,7 +15,7 @@ let keytar; try { // Don't load keytar for tests if (process.env.NODE_ENV !== 'test') { - keytar = await import('keytar'); + keytar = (await import('keytar'))?.default; } } catch (err) { printWarning(`Unable to use keyring service, falling back to file-based keystore: ${err.message}`); From 1eae0e40d03bbafce3c786e4fbf2384d4404a562 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 28 Mar 2023 15:18:11 -0500 Subject: [PATCH 780/864] Fix behavior of cortex user cli, add message for default --- bin/cortex-users.js | 6 +++--- src/commands/users.js | 22 +++++++++++++++------- src/commands/utils.js | 4 ++-- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/bin/cortex-users.js b/bin/cortex-users.js index c0994cbe..c97602df 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -13,7 +13,7 @@ export function create() { program.name('cortex users'); program.description('Work with Cortex User'); - program.command('describe') + program.command('describe [user]') .alias('get') .description('Describe a users grants and roles') .option('--no-compat', 'Ignore API compatibility checks') @@ -21,9 +21,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--user <user>', 'The user to describe, self for default') .option('--roles', 'Include grant inheritance from roles') - .action(withCompatibilityCheck((options) => { + .action(withCompatibilityCheck(async (user, options) => { try { - new UserDescribeCommand(program).execute(options); + await new UserDescribeCommand(program).execute(user, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/commands/users.js b/src/commands/users.js index e6e977c2..bad49a2b 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -2,7 +2,7 @@ import debugSetup from 'debug'; import { loadProfile } from '../config.js'; import Users from '../client/users.js'; import { - printSuccess, printError, filterObject, handleTable, getFilteredOutput, + printSuccess, printError, printWarning, filterObject, handleTable, getFilteredOutput, } from './utils.js'; /* * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. @@ -135,7 +135,7 @@ export const UserDescribeCommand = class { this.program = program; } - async execute(options) { + async execute(cliUser, options) { const profile = await loadProfile(options.profile); debug('%s.describeForUser(%s)', profile.name, options.user || 'self'); const flags = []; @@ -145,18 +145,26 @@ export const UserDescribeCommand = class { if (options.roles) { flags.push('roles'); } - const client = new Users(profile.url, options.user, flags); - client.describeUser(profile.token).then((response) => { + console.log(cliUser); + if (options?.user !== undefined && cliUser !== undefined) { + printError('Bad options: --user <user> and <user> are mutually exclusive,', options); + } + const user = options?.user ?? cliUser; + if (user === undefined) { + printWarning('Defaulting to user from cortex profile', options); + } + const client = new Users(profile.url, user, flags); + try { + const response = await client.describeUser(profile.token); if (response.success) { const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printError(`Failed to describe user : ${response.message}`, options); } - }) - .catch((err) => { + } catch (err) { printError(`Failed to describe user : ${err.status} ${err.message}`, options); - }); + } } }; export const UserProjectAssignCommand = class { diff --git a/src/commands/utils.js b/src/commands/utils.js index 1ebff79b..ae8434e8 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -131,9 +131,9 @@ export const printSuccess = (message, options) => { }; export const printWarning = (message, options) => { if (useColor(options)) { - console.log(chalk.yellow(message)); + console.warn(chalk.yellow(message)); } else { - console.log(message); + console.warn(message); } }; export function filterObject(obj, options) { From f6a5926e65512a72c1d0edbcaa99b62b62d4ca7e Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 29 Mar 2023 09:16:07 -0500 Subject: [PATCH 781/864] remove debug (#664) --- src/commands/users.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/commands/users.js b/src/commands/users.js index bad49a2b..f8d28537 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -145,7 +145,6 @@ export const UserDescribeCommand = class { if (options.roles) { flags.push('roles'); } - console.log(cliUser); if (options?.user !== undefined && cliUser !== undefined) { printError('Bad options: --user <user> and <user> are mutually exclusive,', options); } From f0d309ef98fd7736b823b657caf764794843461d Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 29 Mar 2023 15:07:58 -0500 Subject: [PATCH 782/864] allow for proper response format {} not "Deleted" (#665) --- src/client/secrets.js | 4 +--- src/commands/secrets.js | 13 ++++++------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/client/secrets.js b/src/client/secrets.js index 4f1e3f7a..7ca6689d 100644 --- a/src/client/secrets.js +++ b/src/client/secrets.js @@ -56,9 +56,7 @@ export default (class Secrets { return got .delete(endpoint, { headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } writeSecret(projectId, token, keyName, value) { diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 4ecd417d..39d0f272 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -118,15 +118,14 @@ export const DeleteSecretCommand = class { const profile = await loadProfile(options.profile); debug('%s.deleteSecret(%s)', profile.name, keyName); const secretsClient = new Secrets(profile.url); - secretsClient.deleteSecret(options.project || profile.project, profile.token, keyName).then((response) => { + try { + const response = await secretsClient.deleteSecret(options.project || profile.project, profile.token, keyName); if (response.success) { - const result = filterObject(response.result, options); - return printSuccess(JSON.stringify(result, null, 2), options); + return printSuccess(response?.message ?? response, options); } return handleDeleteFailure(response, options, 'Secret'); - }) - .catch((err) => { - printError(`Failed to delete secure secret : ${err.status} ${err.message}`, options); - }); + } catch (err) { + return printError(`Failed to delete secure secret : ${err.status} ${err.message}`, options); + } } }; From 8c605346589be434e30e9b4aae5aa9681fe781c5 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 29 Mar 2023 18:12:57 -0500 Subject: [PATCH 783/864] Fix delete message (#666) --- src/commands/secrets.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 39d0f272..7530ac9a 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -125,7 +125,11 @@ export const DeleteSecretCommand = class { } return handleDeleteFailure(response, options, 'Secret'); } catch (err) { - return printError(`Failed to delete secure secret : ${err.status} ${err.message}`, options); + let message = err?.message; + if (err?.response?.body) { + message = JSON.parse(err?.response?.body)?.message ?? err.message; + } + return printError(`Failed to delete secure secret : ${err?.response?.statusCode ?? ''} ${message}`, options); } } }; From 20aa51834eb51867f26ace7469f1b08f25390e37 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 29 Mar 2023 20:24:50 -0500 Subject: [PATCH 784/864] Fix secret delete message (#667) --- src/commands/secrets.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 7530ac9a..a3723909 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -129,7 +129,7 @@ export const DeleteSecretCommand = class { if (err?.response?.body) { message = JSON.parse(err?.response?.body)?.message ?? err.message; } - return printError(`Failed to delete secure secret : ${err?.response?.statusCode ?? ''} ${message}`, options); + return printError(`Secret deletion failed: ${err?.response?.statusCode ?? ''} ${message}`, options); } } }; From 6b5d8bf82478697fa11f90de143c937de3e9135b Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 29 Mar 2023 21:16:11 -0500 Subject: [PATCH 785/864] . (#668) --- src/commands/secrets.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/secrets.js b/src/commands/secrets.js index a3723909..881d6d1d 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -129,7 +129,7 @@ export const DeleteSecretCommand = class { if (err?.response?.body) { message = JSON.parse(err?.response?.body)?.message ?? err.message; } - return printError(`Secret deletion failed: ${err?.response?.statusCode ?? ''} ${message}`, options); + return printError(`Secret deletion failed: ${err?.response?.statusCode ?? ''} ${message}.`, options); } } }; From 81adf5b866373ed85a8883bb30958b16794a4390 Mon Sep 17 00:00:00 2001 From: Prajna Kandarpa <pkandarpa@cognitivescale.com> Date: Mon, 3 Apr 2023 18:09:20 +0530 Subject: [PATCH 786/864] fix pipeline import to fix upload-artifact error (#669) --- src/client/experiments.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/experiments.js b/src/client/experiments.js index a9b25c03..8e00a2aa 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -1,5 +1,5 @@ import fs from 'node:fs'; -import pipeline from 'node:stream/promises'; +import { pipeline } from 'node:stream/promises'; import debugSetup from 'debug'; import { got, defaultHeaders } from './apiutils.js'; import { constructError, checkProject } from '../commands/utils.js'; From e40518be50fc7069b63f0d084120b6bdeae9cbe9 Mon Sep 17 00:00:00 2001 From: Prajna Kandarpa <pkandarpa@cognitivescale.com> Date: Wed, 5 Apr 2023 11:37:58 +0530 Subject: [PATCH 787/864] fix skills logs, add support for raw logs, and better error reporting (#670) * fix skills logs, add support for raw logs, and better error reporting * make the skillLogs call async --- bin/cortex-skills.js | 1 + src/client/catalog.js | 19 ++++++++++++------- src/commands/skills.js | 29 ++++++++++++++++++++--------- 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 83e213f6..99c9efd2 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -160,6 +160,7 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') + .option('--raw', 'Get raw logs as a stream') // TODO enable when we want to support tasks // .option('--type [type]', 'The type of action logs to fetch [skill|task]') .action(withCompatibilityCheck(async (skillName, actionName, options) => { diff --git a/src/client/catalog.js b/src/client/catalog.js index a0cf68b2..ce7feeec 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -112,17 +112,22 @@ export default (class Catalog { .catch((err) => constructError(err)); } - skillLogs(projectId, token, skillName, actionName, verbose = false) { + async skillLogs(projectId, token, skillName, actionName, raw = false) { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/action/${encodeURIComponent(actionName)}/logs`; debug('skillLogs(%s, %s) => %s', skillName, actionName, endpoint); - return got - .get(endpoint, { + const gotOptions = { headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + searchParams: { raw }, + }; + const gotResponse = raw ? got.get(endpoint, gotOptions).text() : got.get(endpoint, gotOptions).json(); + + try { + const res = await gotResponse; + return res; + } catch (err) { + return constructError(err); + } } listAgents(projectId, token, filter, limit, skip, sort) { diff --git a/src/commands/skills.js b/src/commands/skills.js index f0dc25d6..d4c7434a 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -161,19 +161,30 @@ export class SkillLogsCommand { } async execute(skillName, actionName, options) { - const profile = await loadProfile(options.profile); - debug('%s.executeSkillLogs(%s,%s)', profile.name, skillName, actionName); - const catalog = new Catalog(profile.url); - catalog.skillLogs(options.project || profile.project, profile.token, skillName, actionName, options.verbose).then((response) => { - if (response.success) { + try { + const profile = await loadProfile(options.profile); + debug('%s.executeSkillLogs(%s,%s)', profile.name, skillName, actionName); + + const catalog = new Catalog(profile.url); + const response = await catalog.skillLogs(options.project || profile.project, profile.token, skillName, actionName, options.raw); + + if (options.raw) { + try { + const respJSON = JSON.parse(response); // happens with errors + if (respJSON?.body) { + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${respJSON.body.message}`, options); + } + } catch (err) { + printSuccess(response, options); + } + } else if (response.success) { printSuccess(JSON.stringify(response.logs), options); } else { - printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${response.message}`, options); + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${response.body.message}`, options); } - }) - .catch((err) => { + } catch (err) { printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${err.status} ${err.message}`, options); - }); + } } } export class DeploySkillCommand { From bde2370e5ca7abf8c626fe17b3d5a1a25c1dda0e Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Thu, 6 Apr 2023 20:01:08 +0530 Subject: [PATCH 788/864] Release CLI for 6.4.0 (#671) * FAB-5460 glob.sync() use cwd not root (#649) * Update package.json Bump 2.1.1 -> 2.1.2 * FAB-5168 - Fix default sort params for tasks list (#653) * set the default sort options for tasks list. This probably wasn't set earlier because tasks list did not have persistence in the past * update package-lock.json * fix high vuln with json5 by using package.json override * updated help text for tasks list --sort * update package-lock.json * remove override for json5 * update help text * vuln fix and handling messgaing (#658) * vuln fix and handling messgaing * remove debug statement * Change the handleListFailure (#659) * vuln fix and handling messgaing * remove debug statement * change message util * change details and mesage priority * Migrate from cjs -> esm (#660) * FAB-5620 Migrate from cjs -> esm Update packages to major versions for esm Fix content upload issue with node 18 Replace nyc -> c8, add initial code coverage settings Change program structure in bin/* for better testability . * Add library that detect if bin/* are running as main script * Fix import issues lodash/fp * fix non /fp lodash imports * Fix import * FAB-3809 checked error message removed "undefined" * build * Fix docgen script * Add simple unit test for docgen script, bump deps, fix bin/*.js missing create()/export, upgrade glob to 9.x * Cleanup bad error handling in recursive content upload, use async/await, add unit tests * agent changes for single batch job in mission runtime (#661) * Single batch job (#662) * agent changes for single batch job in mission runtime * remove campaign name due to hashing issue in toK8sName * mission status cli * campaign name in invoke --------- Co-authored-by: ljha <ljha@c12e.com> * Fix keytar import (#663) * Fix behavior of cortex user cli, add message for default * remove debug (#664) * allow for proper response format {} not "Deleted" (#665) * Fix delete message (#666) * Fix secret delete message (#667) * . (#668) * fix pipeline import to fix upload-artifact error (#669) * fix skills logs, add support for raw logs, and better error reporting (#670) * fix skills logs, add support for raw logs, and better error reporting * make the skillLogs call async --------- Co-authored-by: Johan Gielstra <jgielstra@cognitivescale.com> Co-authored-by: Prajna Kandarpa <pkandarpa@cognitivescale.com> Co-authored-by: Lalit Kumar Jha <ljha@cognitivescale.com> Co-authored-by: ljha <ljha@c12e.com> --- .eslintrc.json | 11 + bin/cortex-actions.js | 230 +- bin/cortex-agents.js | 522 +- bin/cortex-assessments.js | 472 +- bin/cortex-campaigns.js | 264 +- bin/cortex-configure.js | 168 +- bin/cortex-connections.js | 236 +- bin/cortex-content.js | 190 +- bin/cortex-deploy.js | 209 +- bin/cortex-docker.js | 78 +- bin/cortex-experiments.js | 404 +- bin/cortex-generate.js | 53 +- bin/cortex-missions.js | 289 +- bin/cortex-models.js | 311 +- bin/cortex-projects.js | 202 +- bin/cortex-roles.js | 387 +- bin/cortex-secrets.js | 184 +- bin/cortex-sessions.js | 191 +- bin/cortex-skills.js | 345 +- bin/cortex-tasks.js | 261 +- bin/cortex-types.js | 197 +- bin/cortex-users.js | 230 +- bin/cortex-workspaces.js | 262 +- bin/cortex.js | 94 +- build.sh | 2 +- client/index.js | 34 +- generate_docs.js | 13 +- package-lock.json | 8740 +++++++++----------- package.json | 83 +- scripts/cortex | 2 +- src/client/actions.js | 71 +- src/client/agents.js | 50 +- src/client/apiServerClient.js | 14 +- src/client/apiutils.js | 103 +- src/client/assessments.js | 86 +- src/client/catalog.js | 176 +- src/client/connections.js | 38 +- src/client/content.js | 74 +- src/client/experiments.js | 94 +- src/client/info.js | 33 +- src/client/models.js | 47 +- src/client/roles.js | 92 +- src/client/secrets.js | 36 +- src/client/sessions.js | 33 +- src/client/tasks.js | 39 +- src/client/users.js | 55 +- src/commands/actions.js | 139 +- src/commands/agents.js | 272 +- src/commands/assessments.js | 374 +- src/commands/campaigns.js | 81 +- src/commands/configure.js | 86 +- src/commands/connections.js | 195 +- src/commands/content.js | 168 +- src/commands/deploy.js | 105 +- src/commands/docker.js | 22 +- src/commands/experiments.js | 106 +- src/commands/models.js | 138 +- src/commands/projects.js | 53 +- src/commands/roles.js | 129 +- src/commands/secrets.js | 114 +- src/commands/sessions.js | 90 +- src/commands/skills.js | 162 +- src/commands/tasks.js | 107 +- src/commands/types.js | 82 +- src/commands/users.js | 90 +- src/commands/utils.js | 402 +- src/commands/workspaces/build.js | 396 +- src/commands/workspaces/configure.js | 274 +- src/commands/workspaces/generate.js | 398 +- src/commands/workspaces/publish.js | 647 +- src/commands/workspaces/registry.js | 302 +- src/commands/workspaces/workspace-utils.js | 214 +- src/compatibility.js | 119 +- src/config.js | 144 +- src/constants.js | 32 +- src/parsers.js | 39 +- test/compatibility.js | 121 +- test/configure.js | 89 +- test/docgen.js | 19 + test/docker-registry.js | 9 +- test/tasks.js | 97 +- test/testUtilFunctions.js | 27 +- test/testUtils.js | 101 +- test/uploadDirectory.js | 126 +- test/useragent.js | 64 +- test/utils.js | 8 +- test/workspaces.js | 77 +- 87 files changed, 9613 insertions(+), 12310 deletions(-) create mode 100644 test/docgen.js diff --git a/.eslintrc.json b/.eslintrc.json index c71e92e9..9c549edf 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,9 +1,20 @@ { + "parser": "@babel/eslint-parser", + "parserOptions": { + "requireConfigFile": false, + "babelOptions": { + "plugins": [ + "@babel/plugin-syntax-import-assertions" + ] + }, + "ecmaVersion": 2022 + }, "extends": "airbnb-base", "rules": { "no-underscore-dangle": [ 0 ], + "import/extensions": "off", "require-await": "error", "max-classes-per-file": "off", "no-console": "off", // This is a cli app.. diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 8b03c95c..fb57f9ab 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -1,133 +1,109 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListActionsCommand, - DescribeActionCommand, - DeleteActionCommand, - DeployActionCommand, -} = require('../src/commands/actions'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, - GET_DEFAULT_SORT_CLI_OPTION, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex actions'); -program.description('Work with Cortex Actions'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + ListActionsCommand, DescribeActionCommand, DeleteActionCommand, DeployActionCommand, +} from '../src/commands/actions.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +export function create() { + const program = new Command(); + program.name('cortex actions'); + program.description('Work with Cortex Actions'); // List Actions -program - .command('list') - .description('List the deployed actions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListActionsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List the deployed actions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListActionsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Action -program - .command('describe <actionName>') - .alias('get') - .description('Describe an action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('-d, --download', 'Download code binary in response') - .action(withCompatibilityCheck((actionName, options) => { - try { - new DescribeActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <actionName>') + .alias('get') + .description('Describe an action') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('-d, --download', 'Download code binary in response') + .action(withCompatibilityCheck((actionName, options) => { + try { + new DescribeActionCommand(program).execute(actionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Action -program - .command('delete <actionName>') - .description('Delete an action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((actionName, options) => { - try { - new DeleteActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <actionName>') + .description('Delete an action') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((actionName, options) => { + try { + new DeleteActionCommand(program).execute(actionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Deploy Action -program - .command('deploy [actionDefinition]') - .alias('save') - .description('Deploy an action') - .storeOptionsAsProperties(false) - .option('--name, --actionName <name>', 'Action name') - .option('--type, --actionType <job|daemon>', 'Type of action') - .option('--cmd <cmd>', 'Command to be executed') // '<"--daemon">' - .option('--image, --docker <name[:tag]>', 'Docker image to use as the runner') - .option('--environmentVariables <environmentVariables>', 'Docker container environment variables, only used for daemon action types') - .option('--jobTimeout <jobTimeout>', 'Job Timeout in seconds until the job is marked as FAILED (default: no timeout), only used for job action types') - .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill, provide as last option specified or end list of files with "--"') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') - .option('--port <port>', 'Docker port, only used for daemon action types') // '9091' - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--scaleCount <count>', 'Scale count, only used for daemon action types') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - // TODO this command is non-functional, comment for now to avoid confusion - // .option('--push-docker', 'Push Docker image to the Cortex registry.') - .option('-y, --yaml', 'Use YAML format') - .action(withCompatibilityCheck((actionName, options) => { - try { - new DeployActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('deploy [actionDefinition]') + .alias('save') + .description('Deploy an action') + .storeOptionsAsProperties(false) + .option('--name, --actionName <name>', 'Action name') + .option('--type, --actionType <job|daemon>', 'Type of action') + .option('--cmd <cmd>', 'Command to be executed') // '<"--daemon">' + .option('--image, --docker <name[:tag]>', 'Docker image to use as the runner') + .option('--environmentVariables <environmentVariables>', 'Docker container environment variables, only used for daemon action types') + .option('--jobTimeout <jobTimeout>', 'Job Timeout in seconds until the job is marked as FAILED (default: no timeout), only used for job action types') + .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill, provide as last option specified or end list of files with "--"') + .option('--no-compat', 'Ignore API compatibility checks') + // eslint-disable-next-line max-len + .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the action definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('--port <port>', 'Docker port, only used for daemon action types') // '9091' + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--scaleCount <count>', 'Scale count, only used for daemon action types') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + // TODO this command is non-functional, comment for now to avoid confusion + // .option('--push-docker', 'Push Docker image to the Cortex registry.') + .option('-y, --yaml', 'Use YAML format') + .action(withCompatibilityCheck((actionName, options) => { + try { + new DeployActionCommand(program).execute(actionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 6e1aa2eb..2cbf7a3c 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -1,33 +1,17 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { +} from '../src/constants.js'; +import { CreateAgentSnapshotCommand, DeleteAgentCommand, DeployAgentCommand, @@ -41,264 +25,254 @@ const { ListServicesCommand, SaveAgentCommand, UndeployAgentCommand, -} = require('../src/commands/agents'); - -program.name('cortex agents'); -program.description('Work with Cortex Agents'); +} from '../src/commands/agents.js'; +export function create() { + const program = new Command(); + program.name('cortex agents'); + program.description('Work with Cortex Agents'); // Save Agent -program - .command('save <agentDefinitions...>') - .description('Save an agent definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for agent definition format') - .action(withCompatibilityCheck((agentDefinitions, options) => { - try { - new SaveAgentCommand(program).execute(agentDefinitions, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <agentDefinitions...>') + .description('Save an agent definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for agent definition format') + .action(withCompatibilityCheck((agentDefinitions, options) => { + try { + new SaveAgentCommand(program).execute(agentDefinitions, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Agents -program - .command('list') - .description('List agent definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListAgentsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List agent definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListAgentsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Deploy agent -program - .command('deploy <agentNames...>') - .description('Deploy the agent resource to the cluster') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentNames, options) => { - try { - new DeployAgentCommand(program).execute(agentNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('deploy <agentNames...>') + .description('Deploy the agent resource to the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((agentNames, options) => { + try { + new DeployAgentCommand(program).execute(agentNames, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Agent -program - .command('describe <agentName>') - .description('Describe agent') - .alias('get') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--versions', 'To get list of versions of an agent') - .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((agentName, options) => { - try { - new DescribeAgentCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <agentName>') + .description('Describe agent') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--versions', 'To get list of versions of an agent') + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((agentName, options) => { + try { + new DescribeAgentCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Invoke Agent Service -program - .command('invoke <agentName> <serviceName>') - .description('Invoke an agent service') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--params <params>', 'JSON params to send to the action') - .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') - .option('--scheduleName <name>', 'Identifier to uniquely identify an agents schedule, defaults to the agent\'s name') - .option('--scheduleCron <cron>', 'Schedule agent invoke periodically using a cron schedule string for example: "0 0 * * *", @hourly, or @daily') - .option('--sync', 'Invoke the agent synchronously') - .action(withCompatibilityCheck((agentName, serviceName, options) => { - try { - new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('invoke <agentName> <serviceName>') + .description('Invoke an agent service') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--params <params>', 'JSON params to send to the action') + .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') + .option('--scheduleName <name>', 'Identifier to uniquely identify an agents schedule, defaults to the agent\'s name') + .option('--scheduleCron <cron>', 'Schedule agent invoke periodically using a cron schedule string for example: "0 0 * * *", @hourly, or @daily') + .option('--sync', 'Invoke the agent synchronously') + .action(withCompatibilityCheck((agentName, serviceName, options) => { + try { + new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Agent -program - .command('delete <agentName>') - .description('Delete an agent') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentName, options) => { - try { - new DeleteAgentCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <agentName>') + .description('Delete an agent') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((agentName, options) => { + try { + new DeleteAgentCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Undeploy agent -program - .command('undeploy <agentNames...>') - .description('Undeploy the agent resource from the cluster') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentNames, options) => { - try { - new UndeployAgentCommand(program).execute(agentNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('undeploy <agentNames...>') + .description('Undeploy the agent resource from the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((agentNames, options) => { + try { + new UndeployAgentCommand(program).execute(agentNames, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Get activation -program - .command('get-activation <activationId>') - .description('Get dataset or service activation') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--verbose [boolean]', 'Get debugging info in activation response') - .option('--report [boolean]', 'Get additional debugging info in activation response') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((activationId, options) => { - try { - new GetActivationCommand(program).execute(activationId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('get-activation <activationId>') + .description('Get dataset or service activation') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--verbose [boolean]', 'Get debugging info in activation response') + .option('--report [boolean]', 'Get additional debugging info in activation response') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((activationId, options) => { + try { + new GetActivationCommand(program).execute(activationId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List activations -program - .command('list-activations') - .description('List activations for an agent') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--agentName <string>', 'Query activations by agentName') - .option('--skillName <string>', 'Query activations by skillName') - .option('--startBefore <timestamp>', 'Filters activations to include those that started before the specified timestamp.') - .option('--startAfter <timestamp>', 'Filters activations to include those that started after the specified timestamp.') - .option('--endBefore <timestamp>', 'Filters activations to include those that ended before the specified timestamp.') - .option('--endAfter <timestamp>', 'Filters activations to include those that ended after the specified timestamp.') - .option('--correlationId <string>', 'Query activations with same correlationId') - .option('--status <status>', 'Filters activations by status [complete|error].') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <asc|desc>', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) - .option('--filter <filter>', 'A Mongo style filter to use.') - .action(withCompatibilityCheck((options) => { - try { - new ListActivationsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - program - .command('list-services <agentName>') - .description('List agent service endpoints') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - + .command('list-activations') + .description('List activations for an agent') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--agentName <string>', 'Query activations by agentName') + .option('--skillName <string>', 'Query activations by skillName') + .option('--startBefore <timestamp>', 'Filters activations to include those that started before the specified timestamp.') + .option('--startAfter <timestamp>', 'Filters activations to include those that started after the specified timestamp.') + .option('--endBefore <timestamp>', 'Filters activations to include those that ended before the specified timestamp.') + .option('--endAfter <timestamp>', 'Filters activations to include those that ended after the specified timestamp.') + .option('--correlationId <string>', 'Query activations with same correlationId') + .option('--status <status>', 'Filters activations by status [complete|error].') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + // eslint-disable-next-line max-len + .option('--sort <asc|desc>', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) + .option('--filter <filter>', 'A Mongo style filter to use.') + .action(withCompatibilityCheck((options) => { + try { + new ListActivationsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list-services <agentName>') + .description('List agent service endpoints') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((agentName, options) => { - try { - new ListServicesCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + try { + new ListServicesCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Create Agent Snapshot -program - .command('create-snapshot [snapshotDefinition]') - .description('Create an agent snapshot') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--agentName <name[:version]>', 'The name of the agent to snapshot') - .option('--title <title>', 'A descriptive title for the snapshot') - .action(withCompatibilityCheck((snapshotDefinition, options) => { - try { - new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('list-snapshots <agentName>') - .description('List agent snapshots') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((agentName, options) => { - try { - new ListAgentSnapshotsCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('describe-snapshot <snapshotId>') - .alias('get-snapshot') - .description('Describe agent snapshot') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') - .action(withCompatibilityCheck((snapshotId, options) => { - try { - new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('create-snapshot [snapshotDefinition]') + .description('Create an agent snapshot') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--agentName <name[:version]>', 'The name of the agent to snapshot') + .option('--title <title>', 'A descriptive title for the snapshot') + .action(withCompatibilityCheck((snapshotDefinition, options) => { + try { + new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list-snapshots <agentName>') + .description('List agent snapshots') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((agentName, options) => { + try { + new ListAgentSnapshotsCommand(program).execute(agentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('describe-snapshot <snapshotId>') + .alias('get-snapshot') + .description('Describe agent snapshot') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') + .action(withCompatibilityCheck((snapshotId, options) => { + try { + new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index c016599e..d5facfdc 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -1,251 +1,229 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - ListResourcesCommand, - ListResourceTypesCommand, +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { CreateAssessmentCommand, - ListAssessmentCommand, - DescribeAssessmentCommand, DeleteAssessmentCommand, - RunAssessmentCommand, - ListAssessmentReportCommand, - GetAssessmentReportCommand, - ExportAssessmentReportCommand, DependencyTreeCommand, -} = require('../src/commands/assessments'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex assessments'); -program.description('Work with Cortex Assessments'); - -program - .command('list-types') - .description('List Cortex resource types') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((options) => { - try { - new ListResourceTypesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('dependency-tree [dependencyFile]') - .description('Dependencies of a resource or find missing ones from dependencyFile') - .storeOptionsAsProperties(false) - .requiredOption('--scope <project>', 'project name of the resource') - .option('--name <Cortex component name>', 'Cortex component name', ' ') - .option('--type <Cortex component type>', 'Cortex resource type', ' ') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--missing [boolean]', 'Filter only missing dependencies') - .action(withCompatibilityCheck((dependencyFile, options) => { - try { - new DependencyTreeCommand(program).execute(dependencyFile, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('list-resources') - .description('List matching resources') - .storeOptionsAsProperties(false) - .option('--scope <projects>', 'Assessment scope projects (comma separated values)') - .option('--name <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') - .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') - .action(withCompatibilityCheck((options) => { - try { - new ListResourcesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('create [assessmentDefinition]') - .alias('save') - .description('Create an assessment. Do `list-resources` and `list-types` to select component and type') - .storeOptionsAsProperties(false) - .option('--name <name>', 'Assessment name') - .option('--title <title>', 'Assessment title') - .option('--description <description>', 'Assessment description') - .option('--scope <projects>', 'Assessment scope projects (comma separated values)') - .option('--component <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') - .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') - .option('--overwrite [boolean]', 'Overwrite existing assessment, if exists') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('-y, --yaml', 'Use YAML format') - .action(withCompatibilityCheck((assessmentDefinition, options) => { - try { - new CreateAssessmentCommand(program).execute(assessmentDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('list') - .description('List assessments') - .alias('l') - .option('--skip <Skip records for pagination>', 'Skip records for pagination') - .option('--limit <Limit records for pagination>', 'Limit records for pagination') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - - .action(withCompatibilityCheck((options) => { - try { - new ListAssessmentCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('describe <assessmentName>') - .alias('get') - .description('Describe the assessment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, options) => { - try { - new DescribeAssessmentCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('delete <assessmentName>') - .description('Delete the assessment and its generated reports') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, options) => { - try { - new DeleteAssessmentCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('report <assessmentName>') - .description('Run report generation of the assessment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, options) => { - try { - new RunAssessmentCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('list-report <assessmentName>') - .alias('report-list') - .description('Lists reports of the assessment') - .option('--skip <Skip records for pagination>', 'Skip records for pagination') - .option('--limit <Limit records for pagination>', 'Limit records for pagination') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((assessmentName, options) => { - try { - new ListAssessmentReportCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('get-report <assessmentName> <reportId>') - .alias('report-get') - .description('Get report of the assessment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((assessmentName, reportId, options) => { - try { - new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('export-report <assessmentName> <reportId>') - .alias('report-export') - .description('Export report of the assessment') - .storeOptionsAsProperties(false) - .option('--type <Cortex component types>', 'Component types to export (comma separated values)') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, reportId, options) => { - try { - new ExportAssessmentReportCommand(program).execute(assessmentName, reportId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + DescribeAssessmentCommand, + ExportAssessmentReportCommand, + GetAssessmentReportCommand, + ListAssessmentCommand, + ListAssessmentReportCommand, + ListResourceTypesCommand, + ListResourcesCommand, + RunAssessmentCommand, +} from '../src/commands/assessments.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; + +export function create() { + const program = new Command(); + program.name('cortex assessments'); + program.description('Work with Cortex Assessments'); + program + .command('list-types') + .description('List Cortex resource types') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((options) => { + try { + new ListResourceTypesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('dependency-tree [dependencyFile]') + .description('Dependencies of a resource or find missing ones from dependencyFile') + .storeOptionsAsProperties(false) + .requiredOption('--scope <project>', 'project name of the resource') + .option('--name <Cortex component name>', 'Cortex component name', ' ') + .option('--type <Cortex component type>', 'Cortex resource type', ' ') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--missing [boolean]', 'Filter only missing dependencies') + .action(withCompatibilityCheck((dependencyFile, options) => { + try { + new DependencyTreeCommand(program).execute(dependencyFile, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list-resources') + .description('List matching resources') + .storeOptionsAsProperties(false) + .option('--scope <projects>', 'Assessment scope projects (comma separated values)') + .option('--name <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') + .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .action(withCompatibilityCheck((options) => { + try { + new ListResourcesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('create [assessmentDefinition]') + .alias('save') + .description('Create an assessment. Do `list-resources` and `list-types` to select component and type') + .storeOptionsAsProperties(false) + .option('--name <name>', 'Assessment name') + .option('--title <title>', 'Assessment title') + .option('--description <description>', 'Assessment description') + .option('--scope <projects>', 'Assessment scope projects (comma separated values)') + .option('--component <Cortex component name>', 'Cortex component name (case insensitive regex/substring match)') + .option('--type <Cortex component types>', 'Assessment scope component types (comma separated values)') + .option('--overwrite [boolean]', 'Overwrite existing assessment, if exists') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('-y, --yaml', 'Use YAML format') + .action(withCompatibilityCheck((assessmentDefinition, options) => { + try { + new CreateAssessmentCommand(program).execute(assessmentDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list') + .description('List assessments') + .alias('l') + .option('--skip <Skip records for pagination>', 'Skip records for pagination') + .option('--limit <Limit records for pagination>', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListAssessmentCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('describe <assessmentName>') + .alias('get') + .description('Describe the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new DescribeAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('delete <assessmentName>') + .description('Delete the assessment and its generated reports') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new DeleteAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('report <assessmentName>') + .description('Run report generation of the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new RunAssessmentCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('list-report <assessmentName>') + .alias('report-list') + .description('Lists reports of the assessment') + .option('--skip <Skip records for pagination>', 'Skip records for pagination') + .option('--limit <Limit records for pagination>', 'Limit records for pagination') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((assessmentName, options) => { + try { + new ListAssessmentReportCommand(program).execute(assessmentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('get-report <assessmentName> <reportId>') + .alias('report-get') + .description('Get report of the assessment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((assessmentName, reportId, options) => { + try { + new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('export-report <assessmentName> <reportId>') + .alias('report-export') + .description('Export report of the assessment') + .storeOptionsAsProperties(false) + .option('--type <Cortex component types>', 'Component types to export (comma separated values)') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((assessmentName, reportId, options) => { + try { + new ExportAssessmentReportCommand(program).execute(assessmentName, reportId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 146d6687..9f92151e 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -1,150 +1,122 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - ListCampaignsCommand, - DescribeCampaignCommand, - ExportCampaignCommand, - ImportCampaignCommand, - DeployCampaignCommand, - UndeployCampaignCommand, -} = require('../src/commands/campaigns'); - -program.name('cortex campaigns'); -program.description('Work with Cortex Campaigns'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + ListCampaignsCommand, DescribeCampaignCommand, ExportCampaignCommand, ImportCampaignCommand, DeployCampaignCommand, UndeployCampaignCommand, +} from '../src/commands/campaigns.js'; +export function create() { + const program = new Command(); + program.name('cortex campaigns'); + program.description('Work with Cortex Campaigns'); // List Campaigns -program - .command('list') - .description('List Campaigns') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListCampaignsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List Campaigns') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListCampaignsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Get|Describe Campaign -program - .command('describe <campaignName>') - .alias('get') - .description('Describe Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((campaignName, options) => { - try { - new DescribeCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('export <campaignName>') - .description('Export Campaign Archive') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--deployable [boolean]', 'Export only deployable missions', true) - .option('--o <output>', 'Export file name') - .action(withCompatibilityCheck(async (campaignName, options) => { - try { - await new ExportCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('import <campaignExportFilepath>') - .description('Import Campaign Archive') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--deploy [boolean]', 'Set missions status Ready To Deploy', true) - .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) - .action(withCompatibilityCheck((campaignName, options) => { - try { - new ImportCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('deploy <campaignName>') - .description('Deploy Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, options) => { - try { - new DeployCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('undeploy <campaignName>') - .description('Undeploy Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, options) => { - try { - new UndeployCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('describe <campaignName>') + .alias('get') + .description('Describe Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DescribeCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('export <campaignName>') + .description('Export Campaign Archive') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--deployable [boolean]', 'Export only deployable missions', true) + .option('--o <output>', 'Export file name') + .action(withCompatibilityCheck(async (campaignName, options) => { + try { + await new ExportCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('import <campaignExportFilepath>') + .description('Import Campaign Archive') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--deploy [boolean]', 'Set missions status Ready To Deploy', true) + .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ImportCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('deploy <campaignName>') + .description('Deploy Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('undeploy <campaignName>') + .description('Undeploy Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, options) => { + try { + new UndeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index 0687bd5e..cc259e96 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -1,98 +1,74 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const chalk = require('chalk'); -// const { program } = require('commander'); -const { program } = require('commander'); +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { + ConfigureCommand, DescribeProfileCommand, ListProfilesCommand, SetProfileCommand, GetAccessToken, PrintEnvVars, +} from '../src/commands/configure.js'; -const { - ConfigureCommand, - DescribeProfileCommand, - ListProfilesCommand, - SetProfileCommand, - GetAccessToken, - PrintEnvVars, -} = require('../src/commands/configure'); - -program.name('cortex configure'); -program.description('Configure cortex connection profiles'); - -program.command('create', { isDefault: true }) - .description('Authenticate to cortex (default command)') - .option('--file <file>', 'Personal access config file location') - .option('--profile <profile>', 'The profile to configure', 'default') - .option('--project <project>', 'The default project') - .action(async (options, command) => { - try { - await new ConfigureCommand(command).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - -program - .command('token') - .description('Create access token') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .action(async (options) => { - try { - await new GetAccessToken(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - -program - .command('list') - .description('List configured profiles') - .alias('l') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .action(async (options) => { - await new ListProfilesCommand(program).execute(options); - }); - -program - .command('describe <profileName>') - .alias('get') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .description('Describe a configured profile') - .action(async (profileName, options) => { - await new DescribeProfileCommand(program).execute({ profile: profileName, ...options }); - }); - -program - .command('env') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') - .description('Print cortex environment variables') - .action(async (options) => { - await new PrintEnvVars(program).execute(options); - }); - -program - .command('set-profile <profileName>') - .description('Sets the current profile.') - .action(async (profileName, options) => { - await new SetProfileCommand(program).execute(profileName, options); - }); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); +export function create() { + const program = new Command(); + program.name('cortex configure'); + program.description('Configure cortex connection profiles'); + program.command('create', { isDefault: true }) + .description('Authenticate to cortex (default command)') + .option('--file <file>', 'Personal access config file location') + .option('--profile <profile>', 'The profile to configure', 'default') + .option('--project <project>', 'The default project') + .action(async (options, command) => { + try { + await new ConfigureCommand(command).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + program + .command('token') + .description('Create access token') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .action(async (options) => { + try { + await new GetAccessToken(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + }); + program + .command('list') + .description('List configured profiles') + .alias('l') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .action(async (options) => { + await new ListProfilesCommand(program).execute(options); + }); + program + .command('describe <profileName>') + .alias('get') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .description('Describe a configured profile') + .action(async (profileName, options) => { + await new DescribeProfileCommand(program).execute({ profile: profileName, ...options }); + }); + program + .command('env') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '1d') + .description('Print cortex environment variables') + .action(async (options) => { + await new PrintEnvVars(program).execute(options); + }); + program + .command('set-profile <profileName>') + .description('Sets the current profile.') + .action(async (profileName, options) => { + await new SetProfileCommand(program).execute(profileName, options); + }); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index cf58c5c5..edaa6e93 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -1,138 +1,112 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - ListConnections, - SaveConnectionCommand, - DescribeConnectionCommand, - ListConnectionsTypes, - DeleteConnectionCommand, -} = require('../src/commands/connections'); - -program.name('cortex connections'); -program.description('Work with Cortex Connections'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + ListConnections, SaveConnectionCommand, DescribeConnectionCommand, ListConnectionsTypes, DeleteConnectionCommand, +} from '../src/commands/connections.js'; +export function create() { + const program = new Command(); + program.name('cortex connections'); + program.description('Work with Cortex Connections'); // List Connections -program - .command('list') - .description('List connections definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListConnections(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List connections definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListConnections(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Connections -program - .command('save <connectionDefinition>') - .description('Save a connections definition. Takes JSON file by default.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for agent definition format') - .action(withCompatibilityCheck((connDefinition, options) => { - try { - new SaveConnectionCommand(program).execute(connDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <connectionDefinition>') + .description('Save a connections definition. Takes JSON file by default.') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for agent definition format') + .action(withCompatibilityCheck((connDefinition, options) => { + try { + new SaveConnectionCommand(program).execute(connDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Connection -program - .command('describe <connectionName>') - .alias('get') - .description('Describe connection') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DescribeConnectionCommand(program).execute(connectionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <connectionName>') + .alias('get') + .description('Describe connection') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DescribeConnectionCommand(program).execute(connectionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Connections Types -program - .command('list-types') - .description('List connections types') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') - .action(withCompatibilityCheck((options) => { - try { - new ListConnectionsTypes(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list-types') + .description('List connections types') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') + .action(withCompatibilityCheck((options) => { + try { + new ListConnectionsTypes(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Connection -program - .command('delete <connectionName>') - .description('Delete a connection') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DeleteConnectionCommand(program).execute(connectionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('delete <connectionName>') + .description('Delete a connection') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DeleteConnectionCommand(program).execute(connectionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-content.js b/bin/cortex-content.js index cd7cab80..035c2a50 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -1,112 +1,90 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListContent, - UploadContent, - DeleteContent, - DownloadContent, -} = require('../src/commands/content'); -const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); - -program.name('cortex content'); -program.description('Work with Cortex Managed Content'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + ListContent, UploadContent, DeleteContent, DownloadContent, +} from '../src/commands/content.js'; +import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; +export function create() { + const program = new Command(); + program.name('cortex content'); + program.description('Work with Cortex Managed Content'); // List Content -program - .command('list') - .description('List content') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--prefix <prefix>', 'Filter contents with the given prefix.') - .action(withCompatibilityCheck((options) => { - try { - new ListContent(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List content') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--prefix <prefix>', 'Filter contents with the given prefix.') + .action(withCompatibilityCheck((options) => { + try { + new ListContent(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Upload Content -program - .command('upload <contentKey> <filePath>') - .description('Upload content') - .option('--progress', 'Show upload progress') - .option('--test', 'Show what would be uploaded along with file size') - .option('--recursive', 'Recursively walk <filePath> and prefix each path stored with <contentKey>') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) - .action(withCompatibilityCheck((contentKey, filePath, options) => { - try { - new UploadContent(program).execute(contentKey, filePath, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('upload <contentKey> <filePath>') + .description('Upload content') + .option('--progress', 'Show upload progress') + .option('--test', 'Show what would be uploaded along with file size') + .option('-r, --recursive', 'Recursively walk <filePath> and prefix each path stored with <contentKey>') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) + .action(withCompatibilityCheck(async (contentKey, filePath, options) => { + try { + return await new UploadContent(program).execute(contentKey, filePath, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Delete Content -program - .command('delete <contentKey>') - .description('Delete content') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((contentKey, options) => { - try { - new DeleteContent(program).execute(contentKey, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <contentKey>') + .description('Delete content') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((contentKey, options) => { + try { + new DeleteContent(program).execute(contentKey, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Download Content -program - .command('download <contentKey>') - .description('Downloads content which can be piped to a file on disk. `cortex content download filename > filename.json`') - .option('--progress', 'Show download progress') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((contentKey, options) => { - try { - new DownloadContent(program).execute(contentKey, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('download <contentKey>') + .description('Downloads content which can be piped to a file on disk. `cortex content download filename > filename.json`') + .option('--progress', 'Show download progress') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((contentKey, options) => { + try { + new DownloadContent(program).execute(contentKey, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index f309a4ff..f7f444a1 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -1,120 +1,97 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - DeploySnapshotCommand, - DeployCampaignCommand, - DeployConnectionCommand, - DeployExperimentCommand, - DeploySkillCommand, -} = require('../src/commands/deploy'); - -program.name('cortex deploy'); -program.description('Export Cortex artifacts for deployment'); +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DeploySnapshotCommand, DeployCampaignCommand, DeployConnectionCommand, DeployExperimentCommand, DeploySkillCommand, +} from '../src/commands/deploy.js'; +export function create() { + const program = new Command(); + program.name('cortex deploy'); + program.description('Export Cortex artifacts for deployment'); // Export Agent Snapshot. Provide snapshotIds in quotes separated by space like "snapshotId1 snapshotId2". This is to support multiple agents in one deployment manifest file. -program - .command('snapshots <snapshotIds>') - .description('Export Agent(s) snapshots(s) for deployment. Provide snapshotIds separated by space, as <"snapshotId1 snapshotId2 ...">') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for snapshot export format') - .option('-f, --force', 'Force delete existing exported files') - .option('--latestRun [boolean]', 'Export latest run of Experiment(s) if not specified') - .action(withCompatibilityCheck((snapshotIds, options) => { - try { - new DeploySnapshotCommand(program).execute(snapshotIds, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('campaign <campaignName>') - .description('Export Campaigns for deployment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--deployable [boolean]', 'Export only ready to deploy Campaigns', true) - .action(withCompatibilityCheck((campaignName, options) => { - try { - new DeployCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('connection <connectionName>') - .description('Export Connection for deployment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((connectionName, options) => { - try { - new DeployConnectionCommand(program).execute(connectionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('skill <skillName>') - .description('Export Skill for deployment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') - .action(withCompatibilityCheck((skillName, options) => { - try { - new DeploySkillCommand(program).execute(skillName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('experiment <experimentName> [runId]') - .description('Export Experiment with Model and Run for deployment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') - .action(withCompatibilityCheck((experimentName, runId, options) => { - try { - new DeployExperimentCommand(program).execute(experimentName, runId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('snapshots <snapshotIds>') + .description('Export Agent(s) snapshots(s) for deployment. Provide snapshotIds separated by space, as <"snapshotId1 snapshotId2 ...">') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for snapshot export format') + .option('-f, --force', 'Force delete existing exported files') + .option('--latestRun [boolean]', 'Export latest run of Experiment(s) if not specified') + .action(withCompatibilityCheck((snapshotIds, options) => { + try { + new DeploySnapshotCommand(program).execute(snapshotIds, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('campaign <campaignName>') + .description('Export Campaigns for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--deployable [boolean]', 'Export only ready to deploy Campaigns', true) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new DeployCampaignCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('connection <connectionName>') + .description('Export Connection for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((connectionName, options) => { + try { + new DeployConnectionCommand(program).execute(connectionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('skill <skillName>') + .description('Export Skill for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') + .action(withCompatibilityCheck((skillName, options) => { + try { + new DeploySkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('experiment <experimentName> [runId]') + .description('Export Experiment with Model and Run for deployment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DeployExperimentCommand(program).execute(experimentName, runId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index fad37f2f..3188e768 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -1,51 +1,33 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - DockerLoginCommand, -} = require('../src/commands/docker'); - -program.name('cortex docker'); -program.description('Work with Docker'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import DockerLoginCommand from '../src/commands/docker.js'; +export function create() { + const program = new Command(); + program.name('cortex docker'); + program.description('Work with Docker'); // Login -program - .command('login') - .description('Docker login to the Cortex registry with your jwt token') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '14d') - .action(withCompatibilityCheck((options) => { - try { - new DockerLoginCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('login') + .description('Docker login to the Cortex registry with your jwt token') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '14d') + .action(withCompatibilityCheck((options) => { + try { + new DockerLoginCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index b9b17c8c..e89f7e28 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -1,232 +1,210 @@ -#!/usr/bin/env node - -/* - * Copyright 2019 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - ListExperiments, +} from '../src/constants.js'; +import { + CreateRunCommand, + DeleteExperimentCommand, + DeleteRunCommand, DescribeExperimentCommand, - ListRuns, DescribeRunCommand, - DeleteRunCommand, - DeleteExperimentCommand, DownloadArtifactCommand, + ListExperiments, + ListRuns, SaveExperimentCommand, - CreateRunCommand, UploadArtifactCommand, -} = require('../src/commands/experiments'); - -program.name('cortex experiments'); -program.description('Work with Cortex Experiments'); +} from '../src/commands/experiments.js'; +export function create() { + const program = new Command(); + program.name('cortex experiments'); + program.description('Work with Cortex Experiments'); // List Experiments -program - .command('list') - .description('Find experiments') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--model <model>', 'The model to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListExperiments(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('Find experiments') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--model <model>', 'The model to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListExperiments(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Experiment -program - .command('describe <experimentName>') - .description('Describe experiment') - .alias('get') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((experimentName, options) => { - try { - new DescribeExperimentCommand(program).execute(experimentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <experimentName>') + .description('Describe experiment') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((experimentName, options) => { + try { + new DescribeExperimentCommand(program).execute(experimentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Experiment -program - .command('delete <experimentName>') - .description('Delete an experiment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((experimentName, options) => { - try { - new DeleteExperimentCommand(program).execute(experimentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <experimentName>') + .description('Delete an experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((experimentName, options) => { + try { + new DeleteExperimentCommand(program).execute(experimentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Runs -program - .command('list-runs <experimentName>') - .description('Find runs within an experiment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((experimentName, options) => { - try { - new ListRuns(program).execute(experimentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list-runs <experimentName>') + .description('Find runs within an experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((experimentName, options) => { + try { + new ListRuns(program).execute(experimentName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Run -program - .command('describe-run <experimentName> <runId>') - .description('Describe run') - .alias('get-run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((experimentName, runId, options) => { - try { - new DescribeRunCommand(program).execute(experimentName, runId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe-run <experimentName> <runId>') + .description('Describe run') + .alias('get-run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DescribeRunCommand(program).execute(experimentName, runId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Run -program - .command('delete-run <experimentName> <runId>') - .description('Delete run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((experimentName, runId, options) => { - try { - new DeleteRunCommand(program).execute(experimentName, runId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete-run <experimentName> <runId>') + .description('Delete run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((experimentName, runId, options) => { + try { + new DeleteRunCommand(program).execute(experimentName, runId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Download Artifact -program - .command('download-artifact <experimentName> <runId> <artifactName>') - .description('Download artifact from run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { - try { - new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('download-artifact <experimentName> <runId> <artifactName>') + .description('Download artifact from run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { + try { + new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Experiment -program - .command('save <experimentDefinition>') - .description('Save an experiment definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for experiment definition format') - .action(withCompatibilityCheck((experimentDefinition, options) => { - try { - new SaveExperimentCommand(program).execute(experimentDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <experimentDefinition>') + .description('Save an experiment definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for experiment definition format') + .action(withCompatibilityCheck((experimentDefinition, options) => { + try { + new SaveExperimentCommand(program).execute(experimentDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Experiment -program - .command('create-run <runDefinition>') - .description('Create run for experiment') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for run definition format') - .action(withCompatibilityCheck((runDefinition, options) => { - try { - new CreateRunCommand(program).execute(runDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('create-run <runDefinition>') + .description('Create run for experiment') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for run definition format') + .action(withCompatibilityCheck((runDefinition, options) => { + try { + new CreateRunCommand(program).execute(runDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Upload Artifact -program - .command('upload-artifact <experimentName> <runId> <filePath> <artifactKey>') - .description('Upload artifact for run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) - .action(withCompatibilityCheck((experimentName, runId, filePath, artifactKey, options) => { - try { - new UploadArtifactCommand(program).execute(experimentName, runId, filePath, artifactKey, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('upload-artifact <experimentName> <runId> <filePath> <artifactKey>') + .description('Upload artifact for run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) + .action(withCompatibilityCheck((experimentName, runId, filePath, artifactKey, options) => { + try { + new UploadArtifactCommand(program).execute(experimentName, runId, filePath, artifactKey, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index 6296a410..3a4183c7 100644 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -1,36 +1,23 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import { Command } from 'commander'; +import esMain from 'es-main'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +function create() { + const program = new Command(); -const chalk = require('chalk'); -const { program } = require('commander'); - -program.name('cortex generate'); -program.description('Scaffolding Cortex Components [DEPRECATED]'); - -program - .command('skill [skillName] [type]') - .description('Generates the structure and top level build script for a skill in current directory') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .action(() => { // deliberately not using withCompatibilityCheck() - console.error(chalk.red('Generate command has been superceded by the Workspaces command.')); - }); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program.name('cortex generate'); + program.description('Scaffolding Cortex Components [DEPRECATED]'); + program + .command('skill [skillName] [type]') + .description('Generates the structure and top level build script for a skill in current directory') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .action(() => { + console.error(chalk.red('Generate command has been superceded by the Workspaces command.')); + }); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index ab82ead3..2d59f3ce 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -1,156 +1,147 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import fs from 'node:fs'; +import { Command } from 'commander'; +import { parseObject, printError } from '../src/commands/utils.js'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + ListMissionsCommand, DeployMissionCommand, DescribeMissionCommand, UndeployMissionCommand, +} from '../src/commands/campaigns.js'; +import { InvokeAgentServiceCommand } from '../src/commands/agents.js'; +import { DownloadContent } from '../src/commands/content.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +export function create() { + const program = new Command(); -const chalk = require('chalk'); -const fs = require('fs'); -const { program } = require('commander'); -const { parseObject, printError } = require('../src/commands/utils'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - ListMissionsCommand, - DeployMissionCommand, - DescribeMissionCommand, - UndeployMissionCommand, -} = require('../src/commands/campaigns'); - -const { InvokeAgentServiceCommand } = require('../src/commands/agents'); - -program.name('cortex missions'); -program.description('Work with Cortex Missions'); - -program - .command('list <campaignName>') - .alias('l') - .description('List Missions of the Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((campaignName, options) => { - try { - new ListMissionsCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('describe <campaignName> <missionName>') - .alias('get') - .description('Describe the selected Missions of the Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { - new DescribeMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('deploy <campaignName> <missionName>') - .description('Deploy the selected Missions of the Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { - new DeployMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('invoke <campaignName> <missionName>') - .description('Invoke the mission') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--params <params>', 'JSON params to send to the action') - .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { - let params = {}; - if (options.params) { - try { - params = parseObject(options.params, options); - } catch (e) { - printError(`Failed to parse params: ${options.params} Error: ${e}`, options); - } - } else if (options.paramsFile) { - const paramsStr = fs.readFileSync(options.paramsFile); - params = parseObject(paramsStr, options); + program.name('cortex missions'); + program.description('Work with Cortex Missions'); + program + .command('list <campaignName>') + .alias('l') + .description('List Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((campaignName, options) => { + try { + new ListMissionsCommand(program).execute(campaignName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('describe <campaignName> <missionName>') + .alias('get') + .description('Describe the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new DescribeMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); } - if (params.payload) { - // apply validations - if (!params.payload.campaign_name || !params.payload.mission_name || !params.payload.profile_schema) { - printError('payload must contain campaign_name, mission_name and profile_schema'); - throw new Error('Payload must contain campaign_name, mission_name and profile_schema'); + })); + program + .command('deploy <campaignName> <missionName>') + .description('Deploy the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new DeployMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('invoke <campaignName> <missionName>') + .description('Invoke the mission') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--params <params>', 'JSON params to send to the action') + .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + let params = {}; + if (options.params) { + try { + params = parseObject(options.params, options); + } catch (e) { + printError(`Failed to parse params: ${options.params} Error: ${e}`, options); + } + } else if (options.paramsFile) { + const paramsStr = fs.readFileSync(options.paramsFile); + params = parseObject(paramsStr, options); } - // batch size can't be empty, can't be negative - if (!params.payload.batch_size || params.payload.batch_size <= 0) { - printError(`batch_size cannot be "${params.payload.batch_size}"`); - throw new Error('Inappropriate Batch Size passed in params'); + if (params.payload) { + // apply validations + if (!params.payload.campaign_name || !params.payload.mission_name || !params.payload.profile_schema) { + printError('payload must contain campaign_name, mission_name and profile_schema'); + throw new Error('Payload must contain campaign_name, mission_name and profile_schema'); + } + // batch size can't be empty, can't be negative + if (!params.payload.batch_size || params.payload.batch_size <= 0) { + printError(`batch_size cannot be "${params.payload.batch_size}"`); + throw new Error('Inappropriate Batch Size passed in params'); + } + } else { + printError('payload cannot be empty'); + throw new Error('Empty payload received in params'); } - } else { - printError('payload cannot be empty'); - throw new Error('Empty payload received in params'); + new InvokeAgentServiceCommand(program).execute(`${campaignName}-${missionName}`, 'mission_manager_service', options); + } catch (err) { + console.error(chalk.red(err.message)); } - new InvokeAgentServiceCommand(program).execute(`${missionName}-online-learner-agent`, 'online_learner_service', options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('undeploy <campaignName> <missionName>') - .description('Undeploy the selected Missions of the Campaign') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { - new UndeployMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + })); + program + .command('undeploy <campaignName> <missionName>') + .description('Undeploy the selected Missions of the Campaign') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((campaignName, missionName, options) => { + try { + new UndeployMissionCommand(program).execute(campaignName, missionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('status <activationId>') + .description('Status of Missions activation') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((activationId, options) => { + try { + new DownloadContent(program).execute(`mission_runtime/${activationId}/status.chk`, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index e81e548c..39763778 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -1,180 +1,151 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DeleteModelCommand, SaveModelCommand, DescribeModelCommand, ListModelsCommand, UpdateModelStatusCommand, ListModelRunsCommand, +} from '../src/commands/models.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - DeleteModelCommand, - SaveModelCommand, - DescribeModelCommand, - ListModelsCommand, - // RegisterModelCommand, - UpdateModelStatusCommand, - ListModelRunsCommand, -} = require('../src/commands/models'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex models'); -program.description('Work with Cortex Models'); +export function create() { + const program = new Command(); + program.name('cortex models'); + program.description('Work with Cortex Models'); // List Models -program - .command('list') - .description('List model definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--tags <tags>', 'The tags to use (comma separated values)') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListModelsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List model definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--tags <tags>', 'The tags to use (comma separated values)') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + new ListModelsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Model -program - .command('describe <modelName>') - .description('Describe model') - .alias('get') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((modelName, options) => { - try { - new DescribeModelCommand(program).execute(modelName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <modelName>') + .description('Describe model') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((modelName, options) => { + try { + new DescribeModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Model -program - .command('delete <modelName>') - .description('Delete a model') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((modelName, options) => { - try { - new DeleteModelCommand(program).execute(modelName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <modelName>') + .description('Delete a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((modelName, options) => { + try { + new DeleteModelCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Model -program - .command('save <modelDefinition>') - .description('Save a model definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for model definition format') - .action(withCompatibilityCheck((modelDefinition, options) => { - try { - new SaveModelCommand(program).execute(modelDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <modelDefinition>') + .description('Save a model definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .action(withCompatibilityCheck((modelDefinition, options) => { + try { + new SaveModelCommand(program).execute(modelDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Publish a Model -program - .command('publish <modelName>') - .description('Publish a model') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for model definition format') - .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .action(withCompatibilityCheck((modelName, options) => { - try { - new UpdateModelStatusCommand(program).execute(modelName, options, 'publish'); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('publish <modelName>') + .description('Publish a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .action(withCompatibilityCheck((modelName, options) => { + try { + new UpdateModelStatusCommand(program).execute(modelName, options, 'publish'); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Unpublish a Model -program - .command('unpublish <modelName>') - .description('Unpublish a model') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for model definition format') - .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .action(withCompatibilityCheck((modelName, options) => { - try { - new UpdateModelStatusCommand(program).execute(modelName, options, 'unpublish'); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('unpublish <modelName>') + .description('Unpublish a model') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for model definition format') + .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') + .action(withCompatibilityCheck((modelName, options) => { + try { + new UpdateModelStatusCommand(program).execute(modelName, options, 'unpublish'); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List model runs -program - .command('list-runs <modelName>') - .description('List model run') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((modelName, options) => { - try { - new ListModelRunsCommand(program).execute(modelName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('list-runs <modelName>') + .description('List model run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((modelName, options) => { + try { + new ListModelRunsCommand(program).execute(modelName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 61c6e3da..2d69dc8e 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -1,118 +1,96 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + CreateProjectCommand, ListProjectsCommand, DescribeProjectCommand, DeleteProjectCommand, +} from '../src/commands/projects.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - CreateProjectCommand, - ListProjectsCommand, - DescribeProjectCommand, - DeleteProjectCommand, -} = require('../src/commands/projects'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex projects'); -program.description('Work with Cortex Projects'); +export function create() { + const program = new Command(); + program.name('cortex projects'); + program.description('Work with Cortex Projects'); // Create Project -program - .command('save [projectDefinition]') - .description('Save a project definition') - .storeOptionsAsProperties(false) - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('-n, --name <string>', 'The project name') - .option('-t, --title <string>', 'The project title') - .option('-d, --description <string>', 'The project description') - .option('-y, --yaml', 'Use YAML for project definition format') - .action(withCompatibilityCheck((projectDefinition, options) => { - try { - new CreateProjectCommand(program).execute(projectDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save [projectDefinition]') + .description('Save a project definition') + .storeOptionsAsProperties(false) + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('-n, --name <string>', 'The project name') + .option('-t, --title <string>', 'The project title') + .option('-d, --description <string>', 'The project description') + .option('-y, --yaml', 'Use YAML for project definition format') + .action(withCompatibilityCheck((projectDefinition, options) => { + try { + return new CreateProjectCommand(program).execute(projectDefinition, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // List Projects -program - .command('list') - .description('List project definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListProjectsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List project definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + return new ListProjectsCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Get|Describe Project -program - .command('describe <projectName>') - .alias('get') - .description('Describe project') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((projectName, options) => { - try { - new DescribeProjectCommand(program).execute(projectName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - - // Delete Project -program - .command('delete <projectName>') - .alias('d') - .description('Delete project') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((projectName, options) => { - try { - new DeleteProjectCommand(program).execute(projectName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('describe <projectName>') + .alias('get') + .description('Describe project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((projectName, options) => { + try { + return new DescribeProjectCommand(program).execute(projectName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); +// Delete Project + program + .command('delete <projectName>') + .alias('d') + .description('Delete project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((projectName, options) => { + try { + return new DeleteProjectCommand(program).execute(projectName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 95d7280a..db859389 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -1,215 +1,196 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { nonEmptyStringParser } = require('../src/parsers'); - -const { +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { nonEmptyStringParser } from '../src/parsers.js'; +import { ExternalGroupAssignCommand, ExternalGroupDeleteCommand, ExternalGroupDescribeCommand, ExternalGroupListCommand, - RoleProjectAssignCommand, RoleAssignCommand, RoleCreateCommand, RoleDeleteCommand, - RoleGrantCommand, RoleDescribeCommand, + RoleGrantCommand, RoleListCommand, -} = require('../src/commands/roles'); -const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); - -program.name('cortex roles'); -program.description('Work with Cortex Roles'); - -program.command('list') - .description('List roles by project and user') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'Project to list roles for') - .action(withCompatibilityCheck((options) => { - try { - new RoleListCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('describe <role>') - .alias('get') - .description('Describe role grants and users') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--users', 'List users associated with role') - .option('--no-grants', 'Ignore grants associated with role') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleDescribeCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('delete <role>') - .description('Delete a role and remove grants/assignments') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleDeleteCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('create <role>') - .description('Create a role with the given grant') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--project <project>', 'Grant project') - .requiredOption('--resource <resource>', 'Grant resource') - .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') - .option('--deny', 'Explicit deny of action(s)') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleCreateCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('grant <role>') - .description('Manage grants on an existing role') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--project <project>', 'Grant project') - .requiredOption('--resource <resource>', 'Grant resource') - .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') - .option('--delete', 'Remove grant from role') - .option('--deny', 'Explicit deny of action(s)') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleGrantCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('assign <role>') - .description('Manage a list of user assignments on a role') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--users <users...>', 'Users to add/remove to/from a role', nonEmptyStringParser({ message: 'user names must not be empty', variadic: true })) - .option('--delete', 'Unassign users from role') - .action(withCompatibilityCheck((role, options) => { - try { - new RoleAssignCommand(program).execute(role, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('project <project>') - .description('Manage a list of role assignments on a project') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--roles <roles...>', 'Roles to add/remove on project') - .option('--delete', 'Unassign roles from project') - .action(withCompatibilityCheck((project, options) => { - try { - new RoleProjectAssignCommand(program).execute(project, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('list-external') - .description('List external groups') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((options) => { - try { - new ExternalGroupListCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('describe-external <externalGroup>') - .alias('get-external') - .description('Describe external group roles and users') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--users', 'List users associated with external group') - .option('--roles', 'List roles associated with external group') - .action(withCompatibilityCheck((externalGroup, options) => { - try { - new ExternalGroupDescribeCommand(program).execute(externalGroup, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); + RoleProjectAssignCommand, +} from '../src/commands/roles.js'; +import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; -program.command('delete-external <externalGroup>') - .description('Delete an external group and remove assignments') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((externalGroup, options) => { - try { - new ExternalGroupDeleteCommand(program).execute(externalGroup, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); +export function create() { + const program = new Command(); -program.command('assign-external') - .description('Manage an external group assignment on a role') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--role <role>', 'Role to add/remove assignment') - .requiredOption('--externalGroup <externalGroup>', 'External group to add/remove on role') - .option('--delete', 'Unassign external group from role') - .action(withCompatibilityCheck((options) => { - try { - new ExternalGroupAssignCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program.name('cortex roles'); + program.description('Work with Cortex Roles'); + program.command('list') + .description('List roles by project and user') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'Project to list roles for') + .action(withCompatibilityCheck((options) => { + try { + return new RoleListCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('describe <role>') + .alias('get') + .description('Describe role grants and users') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--users', 'List users associated with role') + .option('--no-grants', 'Ignore grants associated with role') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleDescribeCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('delete <role>') + .description('Delete a role and remove grants/assignments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleDeleteCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('create <role>') + .description('Create a role with the given grant') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--project <project>', 'Grant project') + .requiredOption('--resource <resource>', 'Grant resource') + .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') + .option('--deny', 'Explicit deny of action(s)') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleCreateCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('grant <role>') + .description('Manage grants on an existing role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--project <project>', 'Grant project') + .requiredOption('--resource <resource>', 'Grant resource') + .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') + .option('--delete', 'Remove grant from role') + .option('--deny', 'Explicit deny of action(s)') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleGrantCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('assign <role>') + .description('Manage a list of user assignments on a role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--users <users...>', 'Users to add/remove to/from a role', nonEmptyStringParser({ + message: 'user names must not be empty', + variadic: true, + })) + .option('--delete', 'Unassign users from role') + .action(withCompatibilityCheck((role, options) => { + try { + return new RoleAssignCommand(program).execute(role, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('project <project>') + .description('Manage a list of role assignments on a project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--roles <roles...>', 'Roles to add/remove on project') + .option('--delete', 'Unassign roles from project') + .action(withCompatibilityCheck((project, options) => { + try { + return new RoleProjectAssignCommand(program).execute(project, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('list-external') + .description('List external groups') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((options) => { + try { + return new ExternalGroupListCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('describe-external <externalGroup>') + .alias('get-external') + .description('Describe external group roles and users') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--users', 'List users associated with external group') + .option('--roles', 'List roles associated with external group') + .action(withCompatibilityCheck((externalGroup, options) => { + try { + return new ExternalGroupDescribeCommand(program).execute(externalGroup, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('delete-external <externalGroup>') + .description('Delete an external group and remove assignments') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((externalGroup, options) => { + try { + return new ExternalGroupDeleteCommand(program).execute(externalGroup, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + program.command('assign-external') + .description('Manage an external group assignment on a role') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--role <role>', 'Role to add/remove assignment') + .requiredOption('--externalGroup <externalGroup>', 'External group to add/remove on role') + .option('--delete', 'Unassign external group from role') + .action(withCompatibilityCheck((options) => { + try { + return new ExternalGroupAssignCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 2eb49c04..bb6b9571 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -1,109 +1,89 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + ListSecretsCommand, ReadSecretsCommand, WriteSecretsCommand, DeleteSecretCommand, +} from '../src/commands/secrets.js'; +import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListSecretsCommand, - ReadSecretsCommand, - WriteSecretsCommand, - DeleteSecretCommand, -} = require('../src/commands/secrets'); -const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); - -program.name('cortex secrets'); -program.description('Work with Cortex Secrets'); +export function create() { + const program = new Command(); + program.name('cortex secrets'); + program.description('Work with Cortex Secrets'); // List Secure Keys -program - .command('list') - .description('List secure keys') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((options) => { - try { - new ListSecretsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List secure keys') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((options) => { + try { + return new ListSecretsCommand(program).execute(options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Read Secure Value -program - .command('describe <keyName>') - .alias('get') - .description('Retrieve the value stored for the given key.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json', 'Output results using JSON') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((keyName, options) => { - try { - new ReadSecretsCommand(program).execute(keyName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <keyName>') + .alias('get') + .description('Retrieve the value stored for the given key.') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json', 'Output results using JSON') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((keyName, options) => { + try { + return new ReadSecretsCommand(program).execute(keyName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Write Secure Value -program - .command('save <keyName> [value]') - .description('Save or overwrite a secure value. By default values are stored as strings but can also be saved as JSON or YAML.') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--data <data>', 'JSON value to save') - .option('--data-file <dataFile>', 'A file containing either JSON or YAML formatted value to save') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((keyName, value, options) => { - try { - new WriteSecretsCommand(program).execute(keyName, value, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <keyName> [value]') + .description('Save or overwrite a secure value. By default values are stored as strings but can also be saved as JSON or YAML.') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--data <data>', 'JSON value to save') + .option('--data-file <dataFile>', 'A file containing either JSON or YAML formatted value to save') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((keyName, value, options) => { + try { + return new WriteSecretsCommand(program).execute(keyName, value, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Delete Secret -program - .command('delete <keyName>') - .description('Delete a secret') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((keyName, options) => { - try { - new DeleteSecretCommand(program).execute(keyName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('delete <keyName>') + .description('Delete a secret') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((keyName, options) => { + try { + return new DeleteSecretCommand(program).execute(keyName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index 3898bc87..32bf2830 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -1,115 +1,90 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DeleteSessionCommand, SaveSessionCommand, DescribeSessionCommand, ListSessionsCommand, +} from '../src/commands/sessions.js'; +import { DEFAULT_LIST_LIMIT_COUNT, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - DeleteSessionCommand, - SaveSessionCommand, - DescribeSessionCommand, - ListSessionsCommand, -} = require('../src/commands/sessions'); -const { - DEFAULT_LIST_LIMIT_COUNT, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex sessions'); -program.description('Work with Cortex Sessions'); +export function create() { + const program = new Command(); + program.name('cortex sessions'); + program.description('Work with Cortex Sessions'); // List Sessions -program - .command('list') - .description('List session definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--limit <limit>', 'Number of sessions to list', DEFAULT_LIST_LIMIT_COUNT) - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((options) => { - try { - new ListSessionsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List session definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--limit <limit>', 'Number of sessions to list', DEFAULT_LIST_LIMIT_COUNT) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck((options) => { + try { + new ListSessionsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Session -program - .command('describe <sessionId>') - .description('Describe session') - .alias('get') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((sessionName, options) => { - try { - new DescribeSessionCommand(program).execute(sessionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <sessionId>') + .description('Describe session') + .alias('get') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck((sessionName, options) => { + try { + new DescribeSessionCommand(program).execute(sessionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Session -program - .command('delete <sessionId>') - .description('Delete a session') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((sessionName, options) => { - try { - new DeleteSessionCommand(program).execute(sessionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <sessionId>') + .description('Delete a session') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((sessionName, options) => { + try { + new DeleteSessionCommand(program).execute(sessionName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Session -program - .command('save <sessionDefinition>') - .description('Save a session definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for session definition format') - .action(withCompatibilityCheck((sessionDefinition, options) => { - try { - new SaveSessionCommand(program).execute(sessionDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('save <sessionDefinition>') + .description('Save a session definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for session definition format') + .action(withCompatibilityCheck((sessionDefinition, options) => { + try { + new SaveSessionCommand(program).execute(sessionDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index aff83760..99c9efd2 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -1,197 +1,178 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - SaveSkillCommand, - ListSkillsCommand, +} from '../src/constants.js'; +import { + DeleteSkillCommand, + DeploySkillCommand, DescribeSkillCommand, InvokeSkillCommand, - DeploySkillCommand, - UndeploySkillCommand, + ListSkillsCommand, + SaveSkillCommand, SkillLogsCommand, - DeleteSkillCommand, -} = require('../src/commands/skills'); - -program.name('cortex skills'); -program.description('Work with Cortex Skills'); + UndeploySkillCommand, +} from '../src/commands/skills.js'; +export function create() { + const program = new Command(); + program.name('cortex skills'); + program.description('Work with Cortex Skills'); // Deploy Skill -program - .command('deploy <skillNames...>') - .description('Deploy the skill resource to the cluster') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillNames, options) => { - try { - await new DeploySkillCommand(program).execute(skillNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('deploy <skillNames...>') + .description('Deploy the skill resource to the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (skillNames, options) => { + try { + await new DeploySkillCommand(program).execute(skillNames, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Skill -program - .command('describe <skillName>') - .alias('get') - .description('Describe skill') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resource') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck(async (skillName, options) => { - try { - await new DescribeSkillCommand(program).execute(skillName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('describe <skillName>') + .alias('get') + .description('Describe skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resource') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--verbose', 'Verbose output') + .action(withCompatibilityCheck(async (skillName, options) => { + try { + await new DescribeSkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Invoke Skill -program - .command('invoke <skillName> <inputName>') - .description('Invoke a skill') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--params <params>', 'JSON params to send to the action') - .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') - .option('--sync', 'Invoke the skill synchronously') - .action(withCompatibilityCheck(async (skillName, inputName, options) => { - try { - await new InvokeSkillCommand(program).execute(skillName, inputName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('invoke <skillName> <inputName>') + .description('Invoke a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--params <params>', 'JSON params to send to the action') + .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') + .option('--sync', 'Invoke the skill synchronously') + .action(withCompatibilityCheck(async (skillName, inputName, options) => { + try { + await new InvokeSkillCommand(program).execute(skillName, inputName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Skills -program - .command('list') - .description('List skill definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--nostatus', 'skip extra call for skill status') - .option('--noshared', 'do not list shared skills') - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - - .action(withCompatibilityCheck(async (options) => { - try { - await new ListSkillsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List skill definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--nostatus', 'skip extra call for skill status') + .option('--noshared', 'do not list shared skills') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck(async (options) => { + try { + await new ListSkillsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete Skill -program - .command('delete <skillName>') - .description('Delete a skill') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json', 'Output results using JSON') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillName, options) => { - try { - await new DeleteSkillCommand(program).execute(skillName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <skillName>') + .description('Delete a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json', 'Output results using JSON') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (skillName, options) => { + try { + await new DeleteSkillCommand(program).execute(skillName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Save Skill -program - .command('save <skillDefinitions...>') - .description('Save a skill definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill') - .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') - .option('-y, --yaml', 'Use YAML for skill definition format') - .option('--scaleCount <count>', 'Scale count, only used for daemon action types') - .action(withCompatibilityCheck(async (skillDefinitions, options) => { - try { - await new SaveSkillCommand(program).execute(skillDefinitions, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <skillDefinitions...>') + .description('Save a skill definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill') + // eslint-disable-next-line max-len + .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('-y, --yaml', 'Use YAML for skill definition format') + .option('--scaleCount <count>', 'Scale count, only used for daemon action types') + .action(withCompatibilityCheck(async (skillDefinitions, options) => { + try { + await new SaveSkillCommand(program).execute(skillDefinitions, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Undeploy Skill -program - .command('undeploy <skillNames...>') - .description('Undeploy the skill resource from the cluster') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillNames, options) => { - try { - await new UndeploySkillCommand(program).execute(skillNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('undeploy <skillNames...>') + .description('Undeploy the skill resource from the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (skillNames, options) => { + try { + return await new UndeploySkillCommand(program).execute(skillNames, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); // Get Skill/action logs -program - .command('logs <skillName> <actionName>') - .description('Get logs of a skill and action') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - // TODO enable when we want to support tasks - - // .option('--type [type]', 'The type of action logs to fetch [skill|task]') - .action(withCompatibilityCheck(async (skillName, actionName, options) => { - try { - await new SkillLogsCommand(program).execute(skillName, actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('logs <skillName> <actionName>') + .description('Get logs of a skill and action') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--raw', 'Get raw logs as a stream') + // TODO enable when we want to support tasks + // .option('--type [type]', 'The type of action logs to fetch [skill|task]') + .action(withCompatibilityCheck(async (skillName, actionName, options) => { + try { + return await new SkillLogsCommand(program).execute(skillName, actionName, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 3c54cb25..646b8ea2 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -1,152 +1,123 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - ListTasksCommand, - DescribeTaskCommand, - TaskLogsCommand, - TaskDeleteCommand, - TaskPauseCommand, - TaskResumeCommand, -} = require('../src/commands/tasks'); -const { - DEFAULT_LIST_LIMIT_COUNT, - DEFAULT_LIST_SKIP_COUNT, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -program.name('cortex tasks'); -program.description('Work with Cortex Tasks'); +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + ListTasksCommand, DescribeTaskCommand, TaskLogsCommand, TaskDeleteCommand, TaskPauseCommand, TaskResumeCommand, +} from '../src/commands/tasks.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SKIP_COUNT, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, +} from '../src/constants.js'; +export function create() { + const program = new Command(); + program.name('cortex tasks'); + program.description('Work with Cortex Tasks'); // List tasks -program - .command('list') - .description('List tasks') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--actionName <string>', 'Filter tasks by action name') - .option('--activationId <string>', 'filter tasks by activation id') - .option('--skillName <string>', 'Filter tasks by skill name') - .option('--scheduled', 'Show scheduled tasks only') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - // This is a client-side sort - .option('--filter <filter>', 'A Mongo style filter to use.') - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <asc|desc|sort>', 'Sort asc|desc on startTime or Mongo style sort statement.', 'desc') - .action(withCompatibilityCheck(async (options) => { - try { - await new ListTasksCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program - .command('describe <taskName>') - .alias('get') - .description('Describe a task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--k8s', 'Return the full k8sResource in the response') - // .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') - .action(withCompatibilityCheck((taskName, options) => { - try { - new DescribeTaskCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List tasks') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--actionName <string>', 'Filter tasks by action name') + .option('--activationId <string>', 'filter tasks by activation id') + .option('--skillName <string>', 'Filter tasks by skill name') + .option('--scheduled', 'Show scheduled tasks only') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + // This is a client-side sort + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <asc|desc|<mongo-style-sort-expr>', 'Ascending, descending or Mongo style sort statement.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.startTime)) + .action(withCompatibilityCheck(async (options) => { + try { + await new ListTasksCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('describe <taskName>') + .alias('get') + .description('Describe a task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--k8s', 'Return the full k8sResource in the response') + // .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') + .action(withCompatibilityCheck((taskName, options) => { + try { + new DescribeTaskCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Get task logs -program - .command('logs <taskName>') - .description('Get logs of a task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - // TODO enable when we want to support tasks - // .option('--type [type]', 'The type of action logs to fetch [skill|task]') - .action(withCompatibilityCheck((taskName, options) => { - try { - new TaskLogsCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('logs <taskName>') + .description('Get logs of a task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + // TODO enable when we want to support tasks + // .option('--type [type]', 'The type of action logs to fetch [skill|task]') + .action(withCompatibilityCheck((taskName, options) => { + try { + new TaskLogsCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Delete a task -program - .command('delete <taskName...>') - .description('Delete a task, if it exists') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (taskName, options) => { - try { - await new TaskDeleteCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('delete <taskName...>') + .description('Delete a task, if it exists') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (taskName, options) => { + try { + await new TaskDeleteCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Pause a task -program - .command('pauseSchedule <taskNames...>') - .description('Pause scheduling for a scheduled task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (taskName, options) => { - try { - await new TaskPauseCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('pauseSchedule <taskNames...>') + .description('Pause scheduling for a scheduled task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (taskName, options) => { + try { + await new TaskPauseCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Resume a task -program - .command('resumeSchedule <taskNames...>') - .description('Resume paused schedule for a scheduled task') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (taskName, options) => { - try { - await new TaskResumeCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program + .command('resumeSchedule <taskNames...>') + .description('Resume paused schedule for a scheduled task') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (taskName, options) => { + try { + await new TaskResumeCommand(program).execute(taskName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; } - -module.exports = program; +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); +} +export default create(); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 52ec7b07..85591ea0 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -1,116 +1,93 @@ -#!/usr/bin/env node - -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chalk = require('chalk'); -const { program } = require('commander'); - -const { withCompatibilityCheck } = require('../src/compatibility'); -const { - DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, - LIST_JSON_HELP_TEXT, - QUERY_JSON_HELP_TEXT, -} = require('../src/constants'); - -const { - SaveTypeCommand, - ListTypesCommand, - DescribeTypeCommand, - DeleteTypeCommand, -} = require('../src/commands/types'); - -program.name('cortex types'); -program.description('Work with Cortex Types'); +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + SaveTypeCommand, ListTypesCommand, DescribeTypeCommand, DeleteTypeCommand, +} from '../src/commands/types.js'; +export function create() { + const program = new Command(); + program.name('cortex types'); + program.description('Work with Cortex Types'); // Save Type -program - .command('save <typeDefinition>') - .description('Save a type definition') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('-y, --yaml', 'Use YAML for type definition format') - .action(withCompatibilityCheck((typeDefinition, options) => { - try { - new SaveTypeCommand(program).execute(typeDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('save <typeDefinition>') + .description('Save a type definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for type definition format') + .action(withCompatibilityCheck(async (typeDefinition, options) => { + try { + await new SaveTypeCommand(program).execute(typeDefinition, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // List Types -program - .command('list') - .description('List type definitions') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) - .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListTypesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - + program + .command('list') + .description('List type definitions') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck(async (options) => { + try { + await new ListTypesCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); // Describe Type -program - .command('describe <typeName>') - .alias('get') - .description('Describe type') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((typeName, options) => { - try { - new DescribeTypeCommand(program).execute(typeName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - program - .command('delete <typeName>') - .description('Delete a type') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--json', 'Output results using JSON') - .option('--profile <profile>', 'The profile to use') - .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (typeName, options) => { - try { - await new DeleteTypeCommand(program).execute(typeName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + .command('describe <typeName>') + .alias('get') + .description('Describe type') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .action(withCompatibilityCheck(async (typeName, options) => { + try { + await new DescribeTypeCommand(program).execute(typeName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program + .command('delete <typeName>') + .description('Delete a type') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json', 'Output results using JSON') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (typeName, options) => { + try { + await new DeleteTypeCommand(program).execute(typeName, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 70826b2b..c97602df 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -1,130 +1,106 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import chalk from 'chalk'; +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, UserCreateCommand, UserListCommand, UserDeleteCommand, +} from '../src/commands/users.js'; +import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const chalk = require('chalk'); -const { program } = require('commander'); +export function create() { + const program = new Command(); -const { withCompatibilityCheck } = require('../src/compatibility'); - -const { - UserProjectAssignCommand, - UserDescribeCommand, - UserGrantCommand, - UserCreateCommand, - UserListCommand, - UserDeleteCommand, -} = require('../src/commands/users'); -const { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } = require('../src/constants'); - -program.name('cortex users'); -program.description('Work with Cortex User'); - -program.command('describe') - .alias('get') - .description('Describe a users grants and roles') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .option('--user <user>', 'The user to describe, self for default') - .option('--roles', 'Include grant inheritance from roles') - .action(withCompatibilityCheck((options) => { - try { - new UserDescribeCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('grant <user>') - .description('Manage user grants') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .requiredOption('--project <project>', 'Grant project') - .requiredOption('--resource <resource>', 'Grant resource') - .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') - .option('--profile <profile>', 'The profile to use') - .option('--delete', 'Remove grant from user') - .option('--deny', 'Explicit deny of action(s)') - .action(withCompatibilityCheck((user, options) => { - try { - new UserGrantCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('project <project>') - .description('Manage a list of user assignments on a project') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .requiredOption('--users <users...>', 'Users to add/remove on project') - .option('--delete', 'Unassign users from project') - .action(withCompatibilityCheck((project, options) => { - try { - new UserProjectAssignCommand(program).execute(project, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('delete <user>') - .description('Deletes a service user and disables any existing tokens created by the user') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((user, options) => { - try { - new UserDeleteCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('create <user>') - .description('Creates a service user (with no assigned roles/grants) that can authenticate with and call Fabric API\'s') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((user, options) => { - try { - new UserCreateCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -program.command('list') - .description('Lists all service users created within Cortex') - .alias('l') - .option('--no-compat', 'Ignore API compatibility checks') - .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) - .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((options) => { - try { - new UserListCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + program.name('cortex users'); + program.description('Work with Cortex User'); + program.command('describe [user]') + .alias('get') + .description('Describe a users grants and roles') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--user <user>', 'The user to describe, self for default') + .option('--roles', 'Include grant inheritance from roles') + .action(withCompatibilityCheck(async (user, options) => { + try { + await new UserDescribeCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('grant <user>') + .description('Manage user grants') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .requiredOption('--project <project>', 'Grant project') + .requiredOption('--resource <resource>', 'Grant resource') + .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') + .option('--profile <profile>', 'The profile to use') + .option('--delete', 'Remove grant from user') + .option('--deny', 'Explicit deny of action(s)') + .action(withCompatibilityCheck((user, options) => { + try { + new UserGrantCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('project <project>') + .description('Manage a list of user assignments on a project') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .requiredOption('--users <users...>', 'Users to add/remove on project') + .option('--delete', 'Unassign users from project') + .action(withCompatibilityCheck((project, options) => { + try { + new UserProjectAssignCommand(program).execute(project, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('delete <user>') + .description('Deletes a service user and disables any existing tokens created by the user') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((user, options) => { + try { + new UserDeleteCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('create <user>') + .description('Creates a service user (with no assigned roles/grants) that can authenticate with and call Fabric API\'s') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((user, options) => { + try { + new UserCreateCommand(program).execute(user, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('list') + .description('Lists all service users created within Cortex') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .action(withCompatibilityCheck((options) => { + try { + new UserListCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index 76197a89..f032ac52 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -1,155 +1,129 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +import { Command } from 'commander'; +import process from 'node:process'; +import esMain from 'es-main'; +import WorkspaceConfigureCommand from '../src/commands/workspaces/configure.js'; +import WorkspaceGenerateCommand from '../src/commands/workspaces/generate.js'; +import WorkspaceBuildCommand from '../src/commands/workspaces/build.js'; +import WorkspacePublishCommand from '../src/commands/workspaces/publish.js'; +import { + WorkspaceAddRegistryCommand, WorkspaceRemoveRegistryCommand, WorkspaceActivateRegistryCommand, WorkspaceListRegistryCommand, +} from '../src/commands/workspaces/registry.js'; +import { printError } from '../src/commands/utils.js'; -const chalk = require('chalk'); -const { program } = require('commander'); - -const { WorkspaceConfigureCommand } = require('../src/commands/workspaces/configure'); -const { WorkspaceGenerateCommand } = require('../src/commands/workspaces/generate'); -const { WorkspaceBuildCommand } = require('../src/commands/workspaces/build'); -const { WorkspacePublishCommand } = require('../src/commands/workspaces/publish'); -const { - WorkspaceAddRegistryCommand, - WorkspaceRemoveRegistryCommand, - WorkspaceActivateRegistryCommand, - WorkspaceListRegistryCommand, -} = require('../src/commands/workspaces/registry'); - -program.name('cortex workspaces'); -program.description('Scaffolding Cortex Components'); - -program - .command('configure') - .option('--refresh', 'Refresh the Github access token') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .description('Configures the Cortex Template System for generating skill templates') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceConfigureCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); +export function create() { + const program = new Command(); + program.name('cortex workspaces'); + program.description('Scaffolding Cortex Components'); program - .command('generate [name] [destination]') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .option('--notree [boolean]', 'Do not display generated file tree', 'false') - .option('--template <templateName>', 'Name of template to use') - .description('Generates a workspace based on a template from the template repository') - .action((name, destination, options) => { // deliberately not using withCompatibilityCheck() - try { - return new WorkspaceGenerateCommand(program).execute(name, destination, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - return Promise.reject(); - }); - + .command('configure') + .option('--refresh', 'Refresh the Github access token') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .description('Configures the Cortex Template System for generating skill templates') + .action((options) => { + try { + return new WorkspaceConfigureCommand(program).execute(options); + } catch (err) { + return printError(err.message); + } + }); program - .command('build [folder]') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .option('--skill <skill name>', 'Build only the specified skill') - .description('Builds all skills in the workspace, or optionally only the specified skill') - .action((folder, options) => { // deliberately not using withCompatibilityCheck() - try { - return new WorkspaceBuildCommand(program).execute(folder, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - return Promise.reject(); - }); - + .command('generate [name] [destination]') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--notree [boolean]', 'Do not display generated file tree', 'false') + .option('--template <templateName>', 'Name of template to use') + .description('Generates a workspace based on a template from the template repository') + .action((name, destination, options) => { + try { + return new WorkspaceGenerateCommand(program).execute(name, destination, options); + } catch (err) { + return printError(err.message); + } + }); program - .command('publish [folder]') - .option('--profile <profile>', 'The profile to use') - .option('--project <project name>', 'Publish to the specified project') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .option('--skip-push', 'Don\'t push images to docker registry') - .option('--skill <skill name>', 'Publish only the specified skill') - .description('Publishes all skills and resources in the workspace') - .action((folder, options) => { // deliberately not using withCompatibilityCheck() - try { - return new WorkspacePublishCommand(program).execute(folder, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - return Promise.reject(); - }); - + .command('build [folder]') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--skill <skill name>', 'Build only the specified skill') + .description('Builds all skills in the workspace, or optionally only the specified skill') + .action((folder, options) => { + try { + return new WorkspaceBuildCommand(program).execute(folder, options); + } catch (err) { + return printError(err.message); + } + }); + program + .command('publish [folder]') + .option('--profile <profile>', 'The profile to use') + .option('--project <project name>', 'Publish to the specified project') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--skip-push', 'Don\'t push images to docker registry') + .option('--skill <skill name>', 'Publish only the specified skill') + .description('Publishes all skills and resources in the workspace') + .action((folder, options) => { + try { + return new WorkspacePublishCommand(program).execute(folder, options); + } catch (err) { + return printError(err.message); + } + }); const registry = program - .command('registry') - .description('Manage image repositories.'); - + .command('registry') + .description('Manage image repositories.'); registry - .command('add [name]') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .option('--url <registry url>', 'Registry URL') - .option('--namespace <registry namespace>', 'Registry Namespace') - .description('Adds an image registry to publish to.') - .action((name, options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceAddRegistryCommand(program).execute(name, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - + .command('add [name]') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--url <registry url>', 'Registry URL') + .option('--namespace <registry namespace>', 'Registry Namespace') + .description('Adds an image registry to publish to.') + .action((name, options) => { + try { + return new WorkspaceAddRegistryCommand(program).execute(name, options); + } catch (err) { + return printError(err.message); + } + }); registry - .command('remove [name]') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .description('Removes the specified image registry.') - .action((name, options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceRemoveRegistryCommand(program).execute(name, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - + .command('remove [name]') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .description('Removes the specified image registry.') + .action((name, options) => { + try { + return new WorkspaceRemoveRegistryCommand(program).execute(name, options); + } catch (err) { + return printError(err.message); + } + }); registry - .command('activate [name]') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .description('Activates the specified image registry.') - .action((name, options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceActivateRegistryCommand(program).execute(name, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - + .command('activate [name]') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .description('Activates the specified image registry.') + .action((name, options) => { + try { + return new WorkspaceActivateRegistryCommand(program).execute(name, options); + } catch (err) { + return printError(err.message); + } + }); registry - .command('list') - .option('--profile <profile>', 'The profile to use') - .option('--color [boolean]', 'Turn on/off colors', 'true') - .description('Lists all image registries') - .action((options) => { // deliberately not using withCompatibilityCheck() - try { - new WorkspaceListRegistryCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } - }); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); + .command('list') + .option('--profile <profile>', 'The profile to use') + .option('--color [boolean]', 'Turn on/off colors', 'true') + .description('Lists all image registries') + .action((options) => { + try { + return new WorkspaceListRegistryCommand(program).execute(options); + } catch (err) { + return printError(err.message); + } + }); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/bin/cortex.js b/bin/cortex.js index 2b5bf462..35789f8e 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -1,54 +1,44 @@ -#!/usr/bin/env node +#!/usr/bin/env -S node --no-warnings +import { Command } from 'commander'; +import esMain from 'es-main'; +import info from '../package.json' assert { type: 'json' }; -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const findPackageJson = require('find-package-json'); -const { program } = require('commander'); - -const pkg = findPackageJson(__dirname).next().value; -program.name('cortex'); -program - .version(pkg.version, '-v, --version') - .description('Cortex CLI') - .option('--debug', 'Enables enhanced log output for debugging', false) - .on('option:debug', () => { process.env.DEBUG = '*'; }) - .command('actions <cmd>', 'Work with Cortex Actions') - .command('agents <cmd>', 'Work with Cortex Agents') - .command('assessments <cmd>', 'Work with Cortex Impact Assessments') - .command('campaigns <cmd>', 'Work with Cortex Campaigns') - .command('configure', 'Configure the Cortex CLI') - .command('connections <cmd>', 'Work with Cortex Connections') - .command('content <cmd>', 'Work with Cortex Managed Content') - .command('deploy <cmd>', 'Work with Cortex Artifacts export for deployment') - .command('docker <cmd>', 'Work with Docker') - .command('experiments <cmd>', 'Work with Cortex Experiments') - .command('generate <cmd>', 'Scaffold Cortex Components') - .command('workspaces <cmd>', 'Scaffold Cortex Components') - .command('missions <cmd>', 'Work with Cortex Missions') - .command('models <cmd>', 'Work with Cortex Models') - .command('projects <cmd>', 'Work with Cortex Projects') - .command('roles <cmd>', 'Work with a Cortex Roles') - .command('secrets <cmd>', 'Work with Cortex Secrets') - .command('sessions <cmd>', 'Work with Cortex Sessions') - .command('skills <cmd>', 'Work with Cortex Skills') - .command('tasks <cmd>', 'Work with Cortex Tasks') - .command('types <cmd>', 'Work with Cortex Types') - .command('users <cmd>', 'Work with a Cortex Users'); - -if (require.main === module) { - program.showHelpAfterError().parseAsync(process.argv); +export function create() { + const program = new Command(); + program.name('cortex'); + program + .version(info?.version, '-v, --version') + .description('Cortex CLI') + .option('--debug', 'Enables enhanced log output for debugging', false) + .on('option:debug', () => { + process.env.DEBUG = '*'; + }) + .command('actions <cmd>', 'Work with Cortex Actions') + .command('agents <cmd>', 'Work with Cortex Agents') + .command('assessments <cmd>', 'Work with Cortex Impact Assessments') + .command('campaigns <cmd>', 'Work with Cortex Campaigns') + .command('configure', 'Configure the Cortex CLI') + .command('connections <cmd>', 'Work with Cortex Connections') + .command('content <cmd>', 'Work with Cortex Managed Content') + .command('deploy <cmd>', 'Work with Cortex Artifacts export for deployment') + .command('docker <cmd>', 'Work with Docker') + .command('experiments <cmd>', 'Work with Cortex Experiments') + .command('generate <cmd>', 'Scaffold Cortex Components') + .command('workspaces <cmd>', 'Scaffold Cortex Components') + .command('missions <cmd>', 'Work with Cortex Missions') + .command('models <cmd>', 'Work with Cortex Models') + .command('projects <cmd>', 'Work with Cortex Projects') + .command('roles <cmd>', 'Work with a Cortex Roles') + .command('secrets <cmd>', 'Work with Cortex Secrets') + .command('sessions <cmd>', 'Work with Cortex Sessions') + .command('skills <cmd>', 'Work with Cortex Skills') + .command('tasks <cmd>', 'Work with Cortex Tasks') + .command('types <cmd>', 'Work with Cortex Types') + .command('users <cmd>', 'Work with a Cortex Users'); + return program; +} +if (esMain(import.meta)) { + // module was not imported but called directly + create().showHelpAfterError().parseAsync(process.argv); } -module.exports = program; +export default create(); diff --git a/build.sh b/build.sh index 8a09ab77..281402a4 100755 --- a/build.sh +++ b/build.sh @@ -53,7 +53,7 @@ function docker_build(){ # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi npm pack . - # TODO Should we cache this distros ? + # TODO Should we cache these distros ? export PKG_CACHE_PATH=/tmp/pkg-cache npm run build-binaries mv cortex-cli-*.tgz cortex-cli.tgz diff --git a/client/index.js b/client/index.js index 86ded809..6d5c9702 100644 --- a/client/index.js +++ b/client/index.js @@ -1,11 +1,23 @@ -exports.Info = require('../src/client/info'); -exports.Users = require('../src/client/users'); -exports.Catalog = require('../src/client/catalog'); -exports.Agents = require('../src/client/agents'); -exports.Connections = require('../src/client/connections'); -exports.Content = require('../src/client/content'); -exports.Experiments = require('../src/client/experiments'); -exports.Models = require('../src/client/models'); -exports.Secrets = require('../src/client/secrets'); -exports.Sessions = require('../src/client/sessions'); -exports.AmpServer = require('../src/client/apiServerClient'); +import info from '../src/client/info.js'; +import users from '../src/client/users.js'; +import catalog from '../src/client/catalog.js'; +import agents from '../src/client/agents.js'; +import connections from '../src/client/connections.js'; +import content from '../src/client/content.js'; +import experiments from '../src/client/experiments.js'; +import models from '../src/client/models.js'; +import secrets from '../src/client/secrets.js'; +import sessions from '../src/client/sessions.js'; +import apiServerClient from '../src/client/apiServerClient.js'; + +export { info as Info }; +export { users as Users }; +export { catalog as Catalog }; +export { agents as Agents }; +export { connections as Connections }; +export { content as Content }; +export { experiments as Experiments }; +export { models as Models }; +export { secrets as Secrets }; +export { sessions as Sessions }; +export { apiServerClient as AmpServer }; diff --git a/generate_docs.js b/generate_docs.js index bf799ffe..5e88daa8 100644 --- a/generate_docs.js +++ b/generate_docs.js @@ -1,7 +1,9 @@ /** * Opted to use pure JS versus adding handlebars as a dep, as handlebars always has vulns.. */ -const _ = require('lodash'); +import process from 'node:process'; +import _ from 'lodash'; +import esMain from 'es-main'; function docObject(program) { return program.commands.map((c) => ({ @@ -46,11 +48,14 @@ ${cmd.name()} ${cmd.usage()} ${cmd.description()} `; -function markdownForCmd(program) { +export default function markdownForCmd(program) { const docObj = docObject(program); return `${cmdHeading(program)}\n${subcmdTable(docObj)}`; } +if (esMain(import.meta)) { + const { default: program } = await import(process.argv[2]); + console.log(markdownForCmd(program)); +} + // eslint-disable-next-line import/no-dynamic-require -const cmd = require(process.argv[2]); -console.log(markdownForCmd(cmd)); diff --git a/package-lock.json b/package-lock.json index 0c2bbe20..05a948eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,128 +1,135 @@ { "name": "cortex-cli", - "version": "2.1.1", + "version": "2.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.1.1", + "version": "2.2.0", "license": "Apache-2.0", "dependencies": { + "@supercharge/promise-pool": "2.4.0", "boolean": "3.2.0", - "chalk": "4.1.2", - "cli-progress": "3.11.2", - "cli-table3": "0.6.2", - "commander": "9.4.0", - "dayjs": "1.11.5", + "chalk": "5.2.0", + "cli-progress": "3.12.0", + "cli-table3": "0.6.3", + "commander": "10.0.0", + "dayjs": "1.11.7", "debug": "4.3.4", "dockerode": "3.3.4", - "find-package-json": "1.2.0", + "es-main": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", - "gh-got": "9.0.0", - "glob": "8.0.3", - "got": "11.8.5", - "graphql": "15.6.1", - "graphql-request": "3.7.0", - "inquirer": "8.2.4", + "gh-got": "10.0.0", + "glob": "9.2.1", + "got": "12.6.0", + "graphql": "16.6.0", + "graphql-request": "5.2.0", + "inquirer": "9.1.4", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.6.2", - "jose-node-cjs-runtime": "4.10.0", + "joi": "17.8.3", + "jose": "4.13.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "3.1.2", - "npm-registry-fetch": "12.0.0", - "open": "8.4.0", + "minimatch": "7.4.2", + "npm-registry-fetch": "14.0.3", + "open": "8.4.2", "prompts": "2.4.2", - "semver": "7.3.7", + "semver": "7.3.8", "treeify": "1.1.0", - "url-join": "4.0.1", + "url-join": "5.0.0", "url-parse": "1.5.10", - "uuid": "8.3.2", + "uuid": "9.0.0", "yauzl": "2.10.0" }, "bin": { "cortex": "bin/cortex.js" }, "devDependencies": { - "audit-ci": "6.3.0", - "chai": "4.3.6", + "@babel/eslint-parser": "7.19.1", + "@babel/plugin-syntax-import-assertions": "7.20.0", + "audit-ci": "6.6.1", + "c8": "7.13.0", + "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.22.0", + "eslint": "8.35.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.26.0", - "husky": "7.0.4", + "eslint-plugin-import": "2.27.5", + "husky": "8.0.3", "is-ci": "3.0.1", - "mocha": "9.2.2", + "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.2.9", - "nyc": "15.1.0", - "pkg": "5.8.0", - "rewire": "6.0.0", - "sinon": "11.1.2" + "nock": "13.3.0", + "pkg": "5.8.1", + "sinon": "15.0.1" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, + "peer": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, + "peer": true, "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -134,6 +141,43 @@ } }, "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "dev": true, + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", @@ -143,28 +187,46 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, + "peer": true, "dependencies": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, + "peer": true, "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "engines": { @@ -174,146 +236,189 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, + "peer": true, "bin": { "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "peer": true + }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, + "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, + "peer": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, + "peer": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, + "peer": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, + "peer": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, + "peer": true, "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, + "peer": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", "dev": true, + "peer": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, + "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -326,6 +431,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "peer": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -338,6 +444,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -352,6 +459,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "peer": true, "dependencies": { "color-name": "1.1.3" } @@ -359,14 +467,16 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "peer": true }, "node_modules/@babel/highlight/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "peer": true, "engines": { "node": ">=0.8.0" } @@ -374,8 +484,9 @@ "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -385,6 +496,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "peer": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -393,10 +505,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", "dev": true, + "peer": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -404,34 +517,51 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, + "peer": true, "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", + "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -444,17 +574,20 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "peer": true, "engines": { "node": ">=4" } }, "node_modules/@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, + "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -466,6 +599,12 @@ "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -476,15 +615,15 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", + "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", + "espree": "^9.4.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -493,172 +632,97 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" - }, - "node_modules/@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" + "node": "*" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@eslint/js": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", + "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "node_modules/@graphql-typed-document-node/core": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", + "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "@hapi/hoek": "^9.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.10.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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==", + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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, - "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", @@ -670,23 +734,23 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, + "peer": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", - "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { "node": ">=6.0.0" @@ -702,19 +766,50 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" } }, "node_modules/@nodelib/fs.scandir": { @@ -753,24 +848,14 @@ } }, "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", "dependencies": { - "@gar/promisify": "^1.0.1", "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@sideway/address": { @@ -782,9 +867,9 @@ } }, "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", @@ -792,79 +877,76 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/is?sponsor=1" } }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^2.0.0" } }, "node_modules/@sinonjs/samsam": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", - "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.6.0", + "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } }, "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, + "node_modules/@supercharge/promise-pool": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz", + "integrity": "sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w==", "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, "engines": { - "node": ">= 6" + "node": ">=14.16" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" } }, "node_modules/@types/http-cache-semantics": { @@ -872,48 +954,22 @@ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, - "node_modules/@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "17.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", - "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -993,25 +1049,25 @@ } }, "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", + "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", "dependencies": { - "type-fest": "^0.21.3" + "type-fest": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.0.tgz", + "integrity": "sha512-RqTRtKTzvPpNdDUp1dVkKQRunlPITk4mXeqFlAZoJsS+fLRn8AdPK0TcQDumGayhU7fjlBfiBjsq3pe3rIfXZQ==", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1029,6 +1085,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -1040,9 +1097,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -1052,80 +1109,21 @@ "node": ">= 8" } }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" }, "engines": { @@ -1145,14 +1143,32 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1179,19 +1195,10 @@ "node": "*" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -1203,9 +1210,9 @@ } }, "node_modules/audit-ci": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.3.0.tgz", - "integrity": "sha512-rVCn4J7SUMQw2A21E3PPLzMz70A5RqWIx5BzvuU0iKeEGuuC6vGE00eeo4mFEnr439WdvI9i2lCXnmgABqLSeQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.6.1.tgz", + "integrity": "sha512-zqZEoYfEC4QwX5yBkDNa0h7YhZC63HWtKtP19BVq+RS0dxRBInfmHogxe4VUeOzoADQjuTLZUI7zp3Pjyl+a5g==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", @@ -1224,31 +1231,16 @@ "node": ">=12.9.0" } }, - "node_modules/audit-ci/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/audit-ci/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/balanced-match": { @@ -1278,7 +1270,7 @@ "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dependencies": { "tweetnacl": "^0.14.3" } @@ -1322,6 +1314,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1346,9 +1339,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "funding": [ { @@ -1360,12 +1353,12 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "peer": true, "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" @@ -1400,7 +1393,7 @@ "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "engines": { "node": "*" } @@ -1415,109 +1408,176 @@ } }, "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dependencies": { + "semver": "^7.0.0" + } }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "node_modules/c8": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", + "integrity": "sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==", + "dev": true, "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/c8/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/c8/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/c8/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", + "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^8.0.1", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", + "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" }, "engines": { - "node": ">= 10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/cacache/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", "engines": { - "node": ">=10.6.0" + "node": ">=12" } }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "node_modules/cacache/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, + "node_modules/cacache/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.8", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.8.tgz", + "integrity": "sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A==", "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" } }, "node_modules/call-bind": { @@ -1542,19 +1602,10 @@ "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001332", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", - "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "version": "1.0.30001442", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", + "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", "dev": true, "funding": [ { @@ -1565,17 +1616,18 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - ] + ], + "peer": true }, "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -1598,15 +1650,11 @@ } }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" @@ -1620,7 +1668,7 @@ "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true, "engines": { "node": "*" @@ -1629,7 +1677,7 @@ "node_modules/check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -1683,10 +1731,19 @@ } }, "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } }, "node_modules/clean-stack": { "version": "2.2.0", @@ -1697,20 +1754,23 @@ } }, "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-progress": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz", - "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", "dependencies": { "string-width": "^4.2.3" }, @@ -1719,9 +1779,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", "engines": { "node": ">=6" }, @@ -1730,9 +1790,9 @@ } }, "node_modules/cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dependencies": { "string-width": "^4.2.0" }, @@ -1744,52 +1804,40 @@ } }, "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", + "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "engines": { "node": ">=0.8" } }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1800,7 +1848,8 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/combined-stream": { "version": "1.0.8", @@ -1814,35 +1863,18 @@ } }, "node_modules/commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/compress-brotli": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", - "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", - "dependencies": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - }, + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", "engines": { - "node": ">= 12" + "node": ">=14" } }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/confusing-browser-globals": { "version": "1.0.11", @@ -1850,24 +1882,17 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, "node_modules/convert-source-map": { - "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, - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true }, "node_modules/cpu-features": { "version": "0.0.4", @@ -1924,9 +1949,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -1944,15 +1969,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -1979,15 +1995,15 @@ } }, "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "dependencies": { "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.12" + "node": ">=6" } }, "node_modules/deep-extend": { @@ -2004,24 +2020,15 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defer-to-connect": { @@ -2059,20 +2066,15 @@ "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "engines": { "node": ">= 0.6" } @@ -2107,14 +2109,14 @@ } }, "node_modules/docker-modem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", - "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", + "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", "dependencies": { "debug": "^4.1.1", "readable-stream": "^3.5.0", "split-ca": "^1.0.1", - "ssh2": "^1.4.0" + "ssh2": "^1.11.0" }, "engines": { "node": ">= 8.0" @@ -2151,11 +2153,17 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/electron-to-chromium": { - "version": "1.4.122", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", - "integrity": "sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw==", - "dev": true + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true, + "peer": true }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -2191,49 +2199,49 @@ "once": "^1.4.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "node_modules/es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", + "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", "dev": true, "dependencies": { "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.0", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.0", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" @@ -2242,6 +2250,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-main": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.2.0.tgz", + "integrity": "sha512-A4tCSY43O/mH4rHjG1n0mI4DhK2BmKDr8Lk8PXK/GBB6zxGFGmIW4bbkbTQ2Gi9iNamMZ9vbGrwjZOIeiM7vMw==" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", @@ -2268,12 +2295,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -2296,14 +2317,16 @@ } }, "node_modules/eslint": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", - "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", + "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@eslint/eslintrc": "^2.0.0", + "@eslint/js": "8.35.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -2313,21 +2336,21 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.3", - "esquery": "^1.4.0", + "espree": "^9.4.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -2338,8 +2361,7 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" @@ -2380,13 +2402,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "dependencies": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -2399,16 +2422,20 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-module-utils/node_modules/debug": { @@ -2421,23 +2448,25 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "engines": { @@ -2448,12 +2477,12 @@ } }, "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { @@ -2468,11 +2497,26 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, "node_modules/eslint-scope": { "version": "7.1.1", @@ -2523,80 +2567,38 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" + "brace-expansion": "^1.1.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/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, "engines": { - "node": ">=8" + "node": "*" } }, "node_modules/espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "dependencies": { "acorn": "^8.8.0", @@ -2610,23 +2612,10 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -2719,9 +2708,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -2755,13 +2744,13 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -2770,31 +2759,46 @@ "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dependencies": { "pend": "~1.2.0" } }, "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "dependencies": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" }, "engines": { - "node": ">=8" + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "engines": { - "node": ">=0.8.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/file-entry-cache": { @@ -2821,38 +2825,20 @@ "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-package-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" - }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat": { @@ -2878,11 +2864,20 @@ } }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -2909,10 +2904,18 @@ "node": ">= 6" } }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "engines": { + "node": ">= 14.17" + } + }, "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "dev": true }, "node_modules/from2": { @@ -2946,6 +2949,12 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/from2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/from2/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -2955,26 +2964,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -2996,20 +2985,28 @@ } }, "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", + "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", "dependencies": { - "minipass": "^3.0.0" + "minipass": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" } }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -3031,68 +3028,31 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, "dependencies": { - "number-is-nan": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "node": ">= 0.4" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { @@ -3100,6 +3060,7 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -3116,35 +3077,26 @@ "node_modules/get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -3173,14 +3125,14 @@ } }, "node_modules/gh-got": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-9.0.0.tgz", - "integrity": "sha512-RH5n6CDdb6AozElmiKwFhmO/1FmhWWVhfQAVv+JtU8jtPK12JLErce/VQFsFwZ9dTa01SfD7WXb/1iyZp/5XKg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-10.0.0.tgz", + "integrity": "sha512-ac0AmNAmdJt/PSCQEqG+qoKPZCmHP00kMWNjV1ve9nQpuQoyku7uyIACtYVtvTsCV+BLibfPo/LTvPOYBnV5sQ==", "dependencies": { - "got": "^10.5.7" + "got": "^12.5.2" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" @@ -3189,21 +3141,20 @@ "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", + "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", "dependencies": { "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3221,29 +3172,18 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "node_modules/glob/node_modules/minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dependencies": { "ini": "2.0.0" }, @@ -3255,9 +3195,9 @@ } }, "node_modules/globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3269,6 +3209,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -3289,25 +3244,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", + "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=10.19.0" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" @@ -3326,19 +3293,20 @@ "dev": true }, "node_modules/graphql": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", - "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==", + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", "engines": { - "node": ">= 10.x" + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, "node_modules/graphql-request": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", - "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.2.0.tgz", + "integrity": "sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ==", "dependencies": { - "cross-fetch": "^3.0.6", + "@graphql-typed-document-node/core": "^3.1.1", + "cross-fetch": "^3.1.5", "extract-files": "^9.0.0", "form-data": "^3.0.0" }, @@ -3359,15 +3327,6 @@ "node": ">= 6" } }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3393,6 +3352,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3409,6 +3369,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -3436,36 +3408,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/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, - "engines": { - "node": ">=8" - } - }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -3476,14 +3418,22 @@ } }, "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", "dependencies": { - "lru-cache": "^6.0.0" + "lru-cache": "^7.5.1" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "engines": { + "node": ">=12" } }, "node_modules/html-escaper": { @@ -3493,16 +3443,16 @@ "dev": true }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dependencies": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, @@ -3511,12 +3461,12 @@ } }, "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", "dependencies": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" }, "engines": { "node": ">=10.19.0" @@ -3537,21 +3487,21 @@ "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dependencies": { "ms": "^2.0.0" } }, "node_modules/husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, "bin": { "husky": "lib/bin.js" }, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/typicode" @@ -3588,9 +3538,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "engines": { "node": ">= 4" @@ -3615,7 +3565,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { "node": ">=0.8.19" } @@ -3628,15 +3578,10 @@ "node": ">=8" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3656,37 +3601,110 @@ } }, "node_modules/inquirer": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", - "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", + "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "dependencies": { + "ansi-escapes": "^6.0.0", + "chalk": "^5.1.2", + "cli-cursor": "^4.0.0", + "cli-width": "^4.0.0", "external-editor": "^3.0.3", - "figures": "^3.0.0", + "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", - "ora": "^5.4.1", + "ora": "^6.1.2", "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", + "rxjs": "^7.5.7", + "string-width": "^5.1.2", + "strip-ansi": "^7.0.1", "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^8.0.1" }, "engines": { "node": ">=12.0.0" } }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.1.3", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -3711,9 +3729,23 @@ } }, "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "node_modules/is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-bigint": { "version": "1.0.4", @@ -3756,9 +3788,9 @@ } }, "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { "node": ">= 0.4" @@ -3780,9 +3812,9 @@ } }, "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -3823,7 +3855,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -3865,17 +3897,20 @@ } }, "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" }, "node_modules/is-negative-zero": { "version": "2.0.2", @@ -3958,18 +3993,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -4000,16 +4023,30 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, "engines": { "node": ">=10" }, @@ -4029,15 +4066,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -4052,13 +4080,13 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/istanbul-lib-coverage": { @@ -4070,82 +4098,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -4160,33 +4112,10 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4214,7 +4143,7 @@ "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", "dev": true }, "node_modules/jmespath": { @@ -4226,30 +4155,41 @@ } }, "node_modules/joi": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", - "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", + "version": "17.8.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", + "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/jose-node-cjs-runtime": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.10.0.tgz", - "integrity": "sha512-Hh3xUCq+7+khSI85Xj82diw2fAx67ItFOu/tW6v83pQYqTR30g3GNytyHJ2HKUAHpcNTAK5IQ/yfJ8sHPPG7PQ==", + "node_modules/jose": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz", + "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==", "funding": { "url": "https://github.com/sponsors/panva" } }, + "node_modules/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/js-yaml": { "version": "4.1.0", @@ -4288,20 +4228,21 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -4324,7 +4265,7 @@ "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" ] @@ -4362,11 +4303,10 @@ } }, "node_modules/keyv": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", - "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "dependencies": { - "compress-brotli": "^1.3.6", "json-buffer": "3.0.1" } }, @@ -4381,7 +4321,7 @@ "node_modules/lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true, "engines": { "node": "> 0.8" @@ -4401,16 +4341,18 @@ } }, "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -4418,16 +4360,10 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, "node_modules/lodash.merge": { @@ -4436,16 +4372,11 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -4457,21 +4388,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "dependencies": { "get-func-name": "^2.0.0" } }, "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lru-cache": { @@ -4510,35 +4460,50 @@ } }, "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", + "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", + "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" }, "engines": { - "node": ">= 10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" } }, "node_modules/map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", "dev": true }, "node_modules/merge2": { @@ -4591,33 +4556,50 @@ } }, "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", + "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { "yallist": "^4.0.0" }, @@ -4637,19 +4619,27 @@ } }, "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", + "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", "dependencies": { - "minipass": "^3.1.0", + "minipass": "^4.0.0", "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "minizlib": "^2.1.2" }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "optionalDependencies": { - "encoding": "^0.1.12" + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" } }, "node_modules/minipass-flush": { @@ -4723,85 +4713,54 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "dependencies": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.2.0", - "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", + "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 14.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mochajs" } }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/mocha/node_modules/glob": { @@ -4836,31 +4795,25 @@ "node": "*" } }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": ">=10" + "balanced-match": "^1.0.0" } }, "node_modules/mocha/node_modules/ms": { @@ -4869,58 +4822,37 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/mocked-env": { @@ -4990,15 +4922,15 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", "optional": true }, "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -5015,7 +4947,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/negotiator": { @@ -5027,22 +4959,22 @@ } }, "node_modules/nise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", - "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", + "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": ">=5", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" } }, "node_modules/nock": { - "version": "13.2.9", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", - "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", + "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -5055,9 +4987,9 @@ } }, "node_modules/node-abi": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.15.0.tgz", - "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", + "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", "dependencies": { "semver": "^7.3.5" }, @@ -5089,23 +5021,12 @@ } } }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/node-releases": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", - "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", - "dev": true + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true, + "peer": true }, "node_modules/normalize-path": { "version": "3.0.0", @@ -5117,294 +5038,59 @@ } }, "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-registry-fetch": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", - "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", + "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", + "make-fetch-happen": "^11.0.0", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "minizlib": "^2.1.2", + "npm-package-arg": "^10.0.0", + "proc-log": "^3.0.0" }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, + "node_modules/npm-registry-fetch/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", "engines": { "node": ">=8" } }, - "node_modules/nyc/node_modules/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, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5420,14 +5106,14 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -5438,28 +5124,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -5471,7 +5157,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } @@ -5491,9 +5177,9 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -5524,41 +5210,125 @@ } }, "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", + "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", + "dependencies": { + "bl": "^5.0.0", + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "strip-ansi": "^7.0.1", "wcwidth": "^1.0.1" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ora/node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/ora/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "engines": { "node": ">=0.10.0" } }, "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "engines": { - "node": ">=8" + "node": ">=12.20" } }, "node_modules/p-is-promise": { @@ -5571,27 +5341,33 @@ } }, "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "p-try": "^1.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { @@ -5608,30 +5384,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -5645,18 +5397,19 @@ } }, "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "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, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5676,6 +5429,37 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", + "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "dependencies": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "engines": { + "node": ">=8" + } + }, "node_modules/path-to-regexp": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", @@ -5706,7 +5490,7 @@ "node_modules/pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "dev": true, "dependencies": { "through": "~2.3" @@ -5715,13 +5499,14 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -5736,14 +5521,14 @@ } }, "node_modules/pkg": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.0.tgz", - "integrity": "sha512-8h9PUDYFi+LOMLbIyGRdP21g08mAtHidSpofSrf8LWhxUWGHymaRzcopEGiynB5EhQmZUKM6PQ9kCImV2TpdjQ==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", + "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", "dev": true, "dependencies": { "@babel/generator": "7.18.2", "@babel/parser": "7.18.4", - "@babel/types": "7.18.4", + "@babel/types": "7.19.0", "chalk": "^4.1.2", "fs-extra": "^9.1.0", "globby": "^11.1.0", @@ -5752,7 +5537,7 @@ "minimist": "^1.2.6", "multistream": "^4.1.0", "pkg-fetch": "3.4.2", - "prebuild-install": "6.1.4", + "prebuild-install": "7.1.1", "resolve": "^1.22.0", "stream-meter": "^1.0.4" }, @@ -5768,88 +5553,6 @@ } } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/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, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/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, - "engines": { - "node": ">=8" - } - }, "node_modules/pkg-fetch": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", @@ -5869,12 +5572,39 @@ "pkg-fetch": "lib-es5/bin.js" } }, + "node_modules/pkg-fetch/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/pkg-fetch/node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "node_modules/pkg-fetch/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/pkg-fetch/node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -5887,102 +5617,110 @@ "tar-stream": "^2.1.4" } }, - "node_modules/pkg/node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "node_modules/pkg-fetch/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "mimic-response": "^2.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/pkg/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "node_modules/pkg/node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "dev": true, - "bin": { - "detect-libc": "bin/detect-libc.js" + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" }, "engines": { - "node": ">=0.10" + "node": ">=6.9.0" } }, - "node_modules/pkg/node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "node_modules/pkg/node_modules/@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", "dev": true, - "engines": { - "node": ">=8" + "bin": { + "parser": "bin/babel-parser.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/pkg/node_modules/node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", + "node_modules/pkg/node_modules/@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "dependencies": { - "semver": "^5.4.1" + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/pkg/node_modules/prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", + "node_modules/pkg/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": ">=6" + "node": ">=6.0.0" } }, - "node_modules/pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/pkg/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "bin": { - "semver": "bin/semver" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/pkg/node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "node_modules/pkg/node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/prebuild-install": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", - "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -5991,7 +5729,6 @@ "mkdirp-classic": "^0.5.3", "napi-build-utils": "^1.0.1", "node-abi": "^3.3.0", - "npmlog": "^4.0.1", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", @@ -6014,22 +5751,19 @@ "node": ">= 0.8.0" } }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "node_modules/progress": { "version": "2.0.3", @@ -6043,7 +5777,7 @@ "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" }, "node_modules/promise-retry": { "version": "2.0.1", @@ -6088,9 +5822,9 @@ } }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { "node": ">=6" @@ -6155,427 +5889,185 @@ "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readline-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rewire": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", - "dev": true, - "dependencies": { - "eslint": "^7.32.0" - } - }, - "node_modules/rewire/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/rewire/node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/rewire/node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/rewire/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/rewire/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/rewire/node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "strip-json-comments": "~2.0.1" }, "bin": { - "eslint": "bin/eslint.js" - }, + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">= 6" } }, - "node_modules/rewire/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=8.10.0" } }, - "node_modules/rewire/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/readline-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" }, "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rewire/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/rewire/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/rewire/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rewire/node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/rewire/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rewire/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dependencies": { - "is-glob": "^4.0.1" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">= 6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rewire/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "engines": { "node": ">= 4" } }, - "node_modules/rewire/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -6590,6 +6082,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6605,6 +6098,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -6637,17 +6142,45 @@ } }, "node_modules/rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -6655,9 +6188,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6677,11 +6210,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6766,16 +6294,16 @@ } }, "node_modules/sinon": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", + "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/samsam": "^6.0.2", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "10.0.2", + "@sinonjs/samsam": "^7.0.1", "diff": "^5.0.0", - "nise": "^5.1.0", + "nise": "^5.1.2", "supports-color": "^7.2.0" }, "funding": { @@ -6797,23 +6325,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -6824,11 +6335,11 @@ } }, "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dependencies": { - "ip": "^1.1.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" }, "engines": { @@ -6837,9 +6348,9 @@ } }, "node_modules/socks-proxy-agent": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", - "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -6849,23 +6360,6 @@ "node": ">= 10" } }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -6881,18 +6375,12 @@ "node_modules/split-ca": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" }, "node_modules/ssh2": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz", - "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", + "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", "hasInstallScript": true, "dependencies": { "asn1": "^0.2.4", @@ -6903,24 +6391,32 @@ }, "optionalDependencies": { "cpu-features": "~0.0.4", - "nan": "^2.15.0" + "nan": "^2.16.0" } }, "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", + "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", "dependencies": { - "minipass": "^3.1.1" + "minipass": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ssri/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" } }, "node_modules/stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", "dev": true, "dependencies": { "duplexer": "~0.1.1", @@ -6957,41 +6453,28 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/stream-meter/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "node_modules/stream-meter/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/stream-meter/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } }, "node_modules/string-width": { "version": "4.2.3", @@ -7007,26 +6490,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7043,15 +6528,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -7068,6 +6544,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7087,58 +6564,20 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { - "node": ">= 10" + "node": ">=10" } }, "node_modules/tar-fs": { @@ -7172,6 +6611,36 @@ "node": ">=6" } }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "engines": { + "node": ">=8" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -7206,10 +6675,22 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/textextensions": { @@ -7226,7 +6707,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/tmp": { "version": "0.0.33", @@ -7242,7 +6723,7 @@ "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" @@ -7263,7 +6744,7 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/treeify": { "version": "1.1.0", @@ -7286,9 +6767,9 @@ } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" @@ -7300,21 +6781,21 @@ "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -7325,7 +6806,7 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "node_modules/type-check": { "version": "0.4.0", @@ -7360,13 +6841,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, "dependencies": { - "is-typedarray": "^1.0.0" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/unbox-primitive": { @@ -7385,19 +6871,25 @@ } }, "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dependencies": { - "unique-slug": "^2.0.0" + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dependencies": { "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/universalify": { @@ -7409,6 +6901,33 @@ "node": ">= 10.0.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "peer": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -7419,9 +6938,12 @@ } }, "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", + "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } }, "node_modules/url-parse": { "version": "1.5.10", @@ -7435,34 +6957,45 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "bin": { "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } }, "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", "dependencies": { - "builtins": "^1.0.3" + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dependencies": { "defaults": "^1.0.3" } @@ -7470,12 +7003,12 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -7512,18 +7045,24 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/word-wrap": { @@ -7536,15 +7075,16 @@ } }, "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7560,19 +7100,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/y18n": { "version": "5.0.8", @@ -7589,21 +7117,21 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { @@ -7654,10 +7182,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -7678,52 +7215,83 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, + "peer": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, + "peer": true, "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "dev": true + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "dev": true, + "peer": true }, "@babel/core": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", - "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, + "peer": true, "requires": { "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "peer": true + } + } + }, + "@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "dev": true, + "requires": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", "semver": "^6.3.0" }, "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -7733,137 +7301,191 @@ } }, "@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, + "peer": true, "requires": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, + "peer": true, "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "peer": true, + "requires": { + "yallist": "^3.0.2" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "dev": true, + "peer": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "peer": true } } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } + "peer": true }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, + "peer": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, + "peer": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, + "peer": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, + "peer": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" } }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true + }, "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, + "peer": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.20.2" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, + "peer": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "peer": true }, "@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", "dev": true, + "peer": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, + "peer": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -7873,6 +7495,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "peer": true, "requires": { "color-convert": "^1.9.0" } @@ -7882,6 +7505,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "peer": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -7893,6 +7517,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "peer": true, "requires": { "color-name": "1.1.3" } @@ -7900,26 +7525,30 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "peer": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "peer": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "peer": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "peer": true, "requires": { "has-flag": "^3.0.0" } @@ -7927,36 +7556,48 @@ } }, "@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", - "dev": true + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "dev": true, + "peer": true + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, + "peer": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/traverse": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", - "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", + "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", + "dev": true, + "peer": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -7965,17 +7606,20 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "dev": true, + "peer": true } } }, "@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, + "peer": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -7984,6 +7628,12 @@ "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -7991,31 +7641,49 @@ "optional": true }, "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", + "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", + "espree": "^9.4.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + "@eslint/js": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", + "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "dev": true + }, + "@graphql-typed-document-node/core": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", + "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", + "requires": {} }, "@hapi/hoek": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", - "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "@hapi/topo": { "version": "5.1.0", @@ -8026,20 +7694,31 @@ } }, "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, - "@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true }, "@humanwhocodes/object-schema": { @@ -8048,95 +7727,6 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "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", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "find-up": { - "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": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "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": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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": { - "p-limit": "^2.2.0" - } - }, - "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 - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -8144,20 +7734,20 @@ "dev": true }, "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, + "peer": true, "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@jridgewell/resolve-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", - "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, "@jridgewell/set-array": { @@ -8167,19 +7757,46 @@ "dev": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "requires": { + "eslint-scope": "5.1.1" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } } }, "@nodelib/fs.scandir": { @@ -8209,23 +7826,13 @@ } }, "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", "requires": { - "@gar/promisify": "^1.0.1", "semver": "^7.3.5" } }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, "@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -8235,9 +7842,9 @@ } }, "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "@sideway/pinpoint": { "version": "2.0.0", @@ -8245,116 +7852,84 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==" + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==" }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", + "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^2.0.0" } }, "@sinonjs/samsam": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", - "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", "dev": true, "requires": { - "@sinonjs/commons": "^1.6.0", + "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", "type-detect": "^4.0.8" } }, "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, + "@supercharge/promise-pool": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz", + "integrity": "sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w==" + }, "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "requires": { - "defer-to-connect": "^2.0.0" + "defer-to-connect": "^2.0.1" } }, "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, - "@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "17.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.27.tgz", - "integrity": "sha512-4/Ke7bbWOasuT3kceBZFGakP1dYN2XFd8v2l9bqF2LNWrmeU07JLpp56aEeG6+Q3olqO5TvXpW0yaiYnZJ5CXg==" - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "requires": { - "@types/node": "*" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", "dev": true }, "acorn-jsx": { @@ -8410,17 +7985,17 @@ "dev": true }, "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", + "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", "requires": { - "type-fest": "^0.21.3" + "type-fest": "^3.0.0" }, "dependencies": { "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.0.tgz", + "integrity": "sha512-RqTRtKTzvPpNdDUp1dVkKQRunlPITk4mXeqFlAZoJsS+fLRn8AdPK0TcQDumGayhU7fjlBfiBjsq3pe3rIfXZQ==" } } }, @@ -8433,93 +8008,36 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" } }, @@ -8530,14 +8048,26 @@ "dev": true }, "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" } }, @@ -8555,16 +8085,10 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "at-least-node": { "version": "1.0.0", @@ -8573,9 +8097,9 @@ "dev": true }, "audit-ci": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.3.0.tgz", - "integrity": "sha512-rVCn4J7SUMQw2A21E3PPLzMz70A5RqWIx5BzvuU0iKeEGuuC6vGE00eeo4mFEnr439WdvI9i2lCXnmgABqLSeQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.6.1.tgz", + "integrity": "sha512-zqZEoYfEC4QwX5yBkDNa0h7YhZC63HWtKtP19BVq+RS0dxRBInfmHogxe4VUeOzoADQjuTLZUI7zp3Pjyl+a5g==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -8586,31 +8110,14 @@ "readline-transform": "1.0.0", "semver": "^7.0.0", "yargs": "^17.0.0" - }, - "dependencies": { - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true - } } }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -8624,7 +8131,7 @@ "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "requires": { "tweetnacl": "^0.14.3" } @@ -8659,6 +8166,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8680,16 +8188,16 @@ "dev": true }, "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, + "peer": true, "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" } }, "buffer": { @@ -8704,7 +8212,7 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" }, "buildcheck": { "version": "0.0.3", @@ -8713,89 +8221,144 @@ "optional": true }, "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "requires": { + "semver": "^7.0.0" + } }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "c8": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", + "integrity": "sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==", + "dev": true, "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "cacache": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", + "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^8.0.1", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", + "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" }, "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==" + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" } + }, + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" } } }, "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==" }, "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, + "version": "10.2.8", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.8.tgz", + "integrity": "sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A==", "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" } }, "call-bind": { @@ -8814,27 +8377,22 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "caniuse-lite": { - "version": "1.0.30001332", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", - "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", - "dev": true + "version": "1.0.30001442", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", + "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", + "dev": true, + "peer": true }, "chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -8851,13 +8409,9 @@ } }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==" }, "chardet": { "version": "0.7.0", @@ -8867,13 +8421,13 @@ "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, "check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", "dev": true }, "chokidar": { @@ -8909,9 +8463,9 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "dev": true }, "clean-stack": { @@ -8920,73 +8474,61 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "requires": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^4.0.0" } }, "cli-progress": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.2.tgz", - "integrity": "sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", "requires": { "string-width": "^4.2.3" } }, "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" }, "cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "requires": { "@colors/colors": "1.5.0", "string-width": "^4.2.0" } }, "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", + "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==" }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -8994,7 +8536,8 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "combined-stream": { "version": "1.0.8", @@ -9005,29 +8548,15 @@ } }, "commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compress-brotli": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.6.tgz", - "integrity": "sha512-au99/GqZtUtiCBliqLFbWlhnCxn+XSYjwZ77q6mKN4La4qOXDoLVPZ50iXr0WmAyMxl8yqoq3Yq4OeQNPPkyeQ==", - "requires": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - } + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "confusing-browser-globals": { "version": "1.0.11", @@ -9035,24 +8564,17 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, "convert-source-map": { - "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" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true }, "cpu-features": { "version": "0.0.4", @@ -9093,9 +8615,9 @@ } }, "dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.7", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", + "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" }, "debug": { "version": "4.3.4", @@ -9105,12 +8627,6 @@ "ms": "2.1.2" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -9127,9 +8643,9 @@ } }, "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -9146,19 +8662,10 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "default-require-extensions": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "requires": { "clone": "^1.0.2" } @@ -9186,17 +8693,12 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" }, "detect-libc": { "version": "2.0.1", @@ -9219,14 +8721,14 @@ } }, "docker-modem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", - "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", + "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", "requires": { "debug": "^4.1.1", "readable-stream": "^3.5.0", "split-ca": "^1.0.1", - "ssh2": "^1.4.0" + "ssh2": "^1.11.0" } }, "dockerode": { @@ -9254,11 +8756,17 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "electron-to-chromium": { - "version": "1.4.122", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.122.tgz", - "integrity": "sha512-VuLNxTIt8sBWIT2sd186xPd18Y8KcK8myLd9nMdSJOYZwFUxxbLVmX/T1VX+qqaytRlrYYQv39myxJdXtu7Ysw==", - "dev": true + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true, + "peer": true }, "emoji-regex": { "version": "8.0.0", @@ -9293,46 +8801,65 @@ "once": "^1.4.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", + "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", "dev": true, "requires": { "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.0", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.4", + "is-array-buffer": "^3.0.0", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-main": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.2.0.tgz", + "integrity": "sha512-A4tCSY43O/mH4rHjG1n0mI4DhK2BmKDr8Lk8PXK/GBB6zxGFGmIW4bbkbTQ2Gi9iNamMZ9vbGrwjZOIeiM7vMw==" + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" } }, "es-shim-unscopables": { @@ -9355,12 +8882,6 @@ "is-symbol": "^1.0.2" } }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -9374,14 +8895,16 @@ "dev": true }, "eslint": { - "version": "8.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", - "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", + "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.10.4", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@eslint/eslintrc": "^2.0.0", + "@eslint/js": "8.35.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -9391,21 +8914,21 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.3", - "esquery": "^1.4.0", + "espree": "^9.4.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "globby": "^11.1.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -9416,52 +8939,27 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { - "p-limit": "^3.0.2" + "brace-expansion": "^1.1.7" } - }, - "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 } } }, @@ -9486,13 +8984,14 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "dev": true, "requires": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" }, "dependencies": { "debug": { @@ -9507,13 +9006,12 @@ } }, "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { @@ -9528,33 +9026,35 @@ } }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.11.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", "tsconfig-paths": "^3.14.1" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "doctrine": { @@ -9566,10 +9066,19 @@ "esutils": "^2.0.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -9608,9 +9117,9 @@ "dev": true }, "espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { "acorn": "^8.8.0", @@ -9618,16 +9127,10 @@ "eslint-visitor-keys": "^3.3.0" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -9696,9 +9199,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -9728,13 +9231,13 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -9743,23 +9246,29 @@ "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "requires": { "pend": "~1.2.0" } }, "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" }, "dependencies": { "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" } } }, @@ -9781,29 +9290,14 @@ "to-regex-range": "^5.0.1" } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-package-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", - "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" - }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, "flat": { @@ -9823,11 +9317,20 @@ } }, "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, "foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -9848,10 +9351,15 @@ "mime-types": "^2.1.12" } }, + "form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==" + }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "dev": true }, "from2": { @@ -9885,6 +9393,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9896,12 +9410,6 @@ } } }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -9920,17 +9428,24 @@ } }, "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", + "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", "requires": { - "minipass": "^3.0.0" + "minipass": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + } } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.2", @@ -9945,65 +9460,30 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" } }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "dev": true, + "peer": true }, "get-caller-file": { "version": "2.0.5", @@ -10014,26 +9494,20 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -10050,45 +9524,33 @@ } }, "gh-got": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-9.0.0.tgz", - "integrity": "sha512-RH5n6CDdb6AozElmiKwFhmO/1FmhWWVhfQAVv+JtU8jtPK12JLErce/VQFsFwZ9dTa01SfD7WXb/1iyZp/5XKg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-10.0.0.tgz", + "integrity": "sha512-ac0AmNAmdJt/PSCQEqG+qoKPZCmHP00kMWNjV1ve9nQpuQoyku7uyIACtYVtvTsCV+BLibfPo/LTvPOYBnV5sQ==", "requires": { - "got": "11.8.5" + "got": "^12.5.2" } }, "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "requires": { - "brace-expansion": "^2.0.1" - } + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", + "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "requires": { + "fs.realpath": "^1.0.0", + "minimatch": "^7.4.1", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "dependencies": { + "minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" } } }, @@ -10102,22 +9564,31 @@ } }, "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "requires": { "ini": "2.0.0" } }, "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -10132,22 +9603,31 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", + "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" } }, "graceful-fs": { @@ -10163,16 +9643,17 @@ "dev": true }, "graphql": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.6.1.tgz", - "integrity": "sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw==" + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" }, "graphql-request": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.7.0.tgz", - "integrity": "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.2.0.tgz", + "integrity": "sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ==", "requires": { - "cross-fetch": "^3.0.6", + "@graphql-typed-document-node/core": "^3.1.1", + "cross-fetch": "^3.1.5", "extract-files": "^9.0.0", "form-data": "^3.0.0" }, @@ -10189,12 +9670,6 @@ } } }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -10213,7 +9688,8 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "has-property-descriptors": { "version": "1.0.0", @@ -10224,6 +9700,12 @@ "get-intrinsic": "^1.1.1" } }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -10239,29 +9721,6 @@ "has-symbols": "^1.0.2" } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "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 - } - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -10269,11 +9728,18 @@ "dev": true }, "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", "requires": { - "lru-cache": "^6.0.0" + "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==" + } } }, "html-escaper": { @@ -10283,27 +9749,27 @@ "dev": true }, "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "requires": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } }, "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", "requires": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" } }, "https-proxy-agent": { @@ -10318,15 +9784,15 @@ "humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "requires": { "ms": "^2.0.0" } }, "husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true }, "iconv-lite": { @@ -10343,9 +9809,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, "import-fresh": { @@ -10361,22 +9827,17 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -10393,34 +9854,79 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", - "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", + "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "requires": { + "ansi-escapes": "^6.0.0", + "chalk": "^5.1.2", + "cli-cursor": "^4.0.0", + "cli-width": "^4.0.0", "external-editor": "^3.0.3", - "figures": "^3.0.0", + "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", - "ora": "^5.4.1", + "ora": "^6.1.2", "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", + "rxjs": "^7.5.7", + "string-width": "^5.1.2", + "strip-ansi": "^7.0.1", "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^8.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } } }, "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.1.3", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -10436,9 +9942,20 @@ } }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "is-array-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", + "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-typed-array": "^1.1.10" + } }, "is-bigint": { "version": "1.0.4", @@ -10469,9 +9986,9 @@ } }, "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, "is-ci": { @@ -10484,9 +10001,9 @@ } }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { "has": "^1.0.3" @@ -10509,7 +10026,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-fullwidth-code-point": { @@ -10536,14 +10053,14 @@ } }, "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" }, "is-negative-zero": { "version": "2.0.2", @@ -10596,12 +10113,6 @@ "call-bind": "^1.0.2" } }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -10620,16 +10131,24 @@ "has-symbols": "^1.0.2" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true }, "is-weakref": { "version": "1.0.2", @@ -10640,12 +10159,6 @@ "call-bind": "^1.0.2" } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -10657,13 +10170,13 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "istanbul-lib-coverage": { @@ -10672,67 +10185,6 @@ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, "istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -10744,29 +10196,10 @@ "supports-color": "^7.1.0" } }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "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 - } - } - }, "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -10785,7 +10218,7 @@ "jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", "dev": true }, "jmespath": { @@ -10794,27 +10227,34 @@ "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz", - "integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==", + "version": "17.8.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", + "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", + "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, - "jose-node-cjs-runtime": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/jose-node-cjs-runtime/-/jose-node-cjs-runtime-4.10.0.tgz", - "integrity": "sha512-Hh3xUCq+7+khSI85Xj82diw2fAx67ItFOu/tW6v83pQYqTR30g3GNytyHJ2HKUAHpcNTAK5IQ/yfJ8sHPPG7PQ==" + "jose": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz", + "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==" + }, + "js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "peer": true }, "js-yaml": { "version": "4.1.0", @@ -10844,20 +10284,21 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "peer": true }, "jsonfile": { "version": "6.1.0", @@ -10872,7 +10313,7 @@ "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" }, "JSONStream": { "version": "1.3.5", @@ -10900,11 +10341,10 @@ } }, "keyv": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.2.tgz", - "integrity": "sha512-uYS0vKTlBIjNCAUqrjlxmruxOEiZxZIHXyp32sdcGmP+ukFrmWUnE//RcPXJH3Vxrni1H2gsQbjHE0bH7MtMQQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "requires": { - "compress-brotli": "^1.3.6", "json-buffer": "3.0.1" } }, @@ -10916,7 +10356,7 @@ "lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true }, "levn": { @@ -10930,13 +10370,12 @@ } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" } }, "lodash": { @@ -10944,16 +10383,10 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, "lodash.merge": { @@ -10962,34 +10395,41 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, "requires": { "get-func-name": "^2.0.0" } }, "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" }, "lru-cache": { "version": "6.0.0", @@ -11017,32 +10457,43 @@ } }, "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", + "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", + "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", + "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==" + }, + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + } } }, "map-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", "dev": true }, "merge2": { @@ -11080,27 +10531,37 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", + "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + } } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" }, "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "requires": { "yallist": "^4.0.0" } @@ -11114,14 +10575,21 @@ } }, "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", + "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", + "encoding": "^0.1.13", + "minipass": "^4.0.0", "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "minizlib": "^2.1.2" + }, + "dependencies": { + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + } } }, "minipass-flush": { @@ -11177,62 +10645,43 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "requires": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.2.0", - "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", + "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "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 - } - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "glob": { @@ -11260,52 +10709,30 @@ } } }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } } }, - "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==", + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "supports-color": { @@ -11316,6 +10743,21 @@ "requires": { "has-flag": "^4.0.0" } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } } } }, @@ -11363,15 +10805,15 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", "optional": true }, "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, "napi-build-utils": { @@ -11382,7 +10824,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "negotiator": { @@ -11391,22 +10833,22 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "nise": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", - "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", + "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": ">=5", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" } }, "nock": { - "version": "13.2.9", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz", - "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", + "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", "dev": true, "requires": { "debug": "^4.1.0", @@ -11416,9 +10858,9 @@ } }, "node-abi": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.15.0.tgz", - "integrity": "sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", + "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", "requires": { "semver": "^7.3.5" } @@ -11436,20 +10878,12 @@ "whatwg-url": "^5.0.0" } }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, "node-releases": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", - "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", - "dev": true + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true, + "peer": true }, "normalize-path": { "version": "3.0.0", @@ -11458,230 +10892,46 @@ "dev": true }, "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==" }, "npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", "requires": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" } }, "npm-registry-fetch": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.0.tgz", - "integrity": "sha512-nd1I90UHoETjgWpo3GbcoM1l2S4JCUpzDcahU4x/GVCiDQ6yRiw2KyDoPVD8+MqODbPtWwHHGiyc4O5sgdEqPQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", + "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", "requires": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", + "make-fetch-happen": "^11.0.0", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" + "minizlib": "^2.1.2", + "npm-package-arg": "^10.0.0", + "proc-log": "^3.0.0" }, "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "find-up": { - "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": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "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 - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-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" - } + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" } } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, "object-keys": { @@ -11691,43 +10941,43 @@ "dev": true }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } @@ -11741,9 +10991,9 @@ } }, "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "requires": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -11765,30 +11015,78 @@ } }, "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", + "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", + "requires": { + "bl": "^5.0.0", + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "strip-ansi": "^7.0.1", "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" + }, + "log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "requires": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + } } }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" }, "p-is-promise": { "version": "3.0.0", @@ -11797,21 +11095,21 @@ "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-try": "^1.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "^3.0.2" } }, "p-map": { @@ -11822,24 +11120,6 @@ "aggregate-error": "^3.0.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11850,15 +11130,16 @@ } }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "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 }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true }, "path-key": { "version": "3.1.1", @@ -11872,6 +11153,27 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "path-scurry": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", + "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "requires": { + "lru-cache": "^7.14.1", + "minipass": "^4.0.2" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + }, + "minipass": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", + "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + } + } + }, "path-to-regexp": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", @@ -11896,7 +11198,7 @@ "pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "dev": true, "requires": { "through": "~2.3" @@ -11905,13 +11207,14 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "peer": true }, "picomatch": { "version": "2.3.1", @@ -11920,14 +11223,14 @@ "dev": true }, "pkg": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.0.tgz", - "integrity": "sha512-8h9PUDYFi+LOMLbIyGRdP21g08mAtHidSpofSrf8LWhxUWGHymaRzcopEGiynB5EhQmZUKM6PQ9kCImV2TpdjQ==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", + "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", "dev": true, "requires": { "@babel/generator": "7.18.2", "@babel/parser": "7.18.4", - "@babel/types": "7.18.4", + "@babel/types": "7.19.0", "chalk": "^4.1.2", "fs-extra": "^9.1.0", "globby": "^11.1.0", @@ -11936,138 +11239,68 @@ "minimist": "^1.2.6", "multistream": "^4.1.0", "pkg-fetch": "3.4.2", - "prebuild-install": "6.1.4", + "prebuild-install": "7.1.1", "resolve": "^1.22.0", "stream-meter": "^1.0.4" }, "dependencies": { - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dev": true, - "requires": { - "mimic-response": "^2.0.0" - } - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true - }, - "node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "dev": true, - "requires": { - "semver": "^5.4.1" - } - }, - "prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", + "@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "dev": true, "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", "dev": true }, - "simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dev": true, - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - } - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "p-try": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "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==", + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "has": "^1.0.3" } - }, - "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 } } }, @@ -12087,12 +11320,33 @@ "yargs": "^16.2.0" }, "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -12104,13 +11358,28 @@ "pump": "^3.0.0", "tar-stream": "^2.1.4" } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } } } }, "prebuild-install": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.0.tgz", - "integrity": "sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", "requires": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -12119,7 +11388,6 @@ "mkdirp-classic": "^0.5.3", "napi-build-utils": "^1.0.1", "node-abi": "^3.3.0", - "npmlog": "^4.0.1", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", @@ -12133,19 +11401,16 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "progress": { "version": "2.0.3", @@ -12156,7 +11421,7 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" }, "promise-retry": { "version": "2.0.1", @@ -12192,9 +11457,9 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, "querystringify": { @@ -12247,7 +11512,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" } } }, @@ -12276,51 +11541,41 @@ "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", "dev": true }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -12337,17 +11592,17 @@ "dev": true }, "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "requires": { - "lowercase-keys": "^2.0.0" + "lowercase-keys": "^3.0.0" } }, "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -12356,7 +11611,7 @@ "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" }, "reusify": { "version": "1.0.4", @@ -12364,204 +11619,11 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, - "rewire": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rewire/-/rewire-6.0.0.tgz", - "integrity": "sha512-7sZdz5dptqBCapJYocw9EcppLU62KMEqDLIILJnNET2iqzXHaQfaVP5SOJ06XvjX+dNIDJbzjw0ZWzrgDhtjYg==", - "dev": true, - "requires": { - "eslint": "^7.32.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } - } - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "requires": { "glob": "^7.1.3" }, @@ -12570,6 +11632,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12578,6 +11641,15 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } } }, @@ -12596,17 +11668,28 @@ } }, "rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "requires": { "tslib": "^2.1.0" } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } }, "safer-buffer": { "version": "2.1.2", @@ -12614,9 +11697,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "requires": { "lru-cache": "^6.0.0" } @@ -12630,11 +11713,6 @@ "randombytes": "^2.1.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12682,16 +11760,16 @@ } }, "sinon": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", - "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", + "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/samsam": "^6.0.2", + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "10.0.2", + "@sinonjs/samsam": "^7.0.1", "diff": "^5.0.0", - "nise": "^5.1.0", + "nise": "^5.1.2", "supports-color": "^7.2.0" } }, @@ -12706,55 +11784,30 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, "smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" }, "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "requires": { - "ip": "^1.1.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" } }, "socks-proxy-agent": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.0.tgz", - "integrity": "sha512-wWqJhjb32Q6GsrUqzuFkukxb/zzide5quXYcMVpIjxalDBBYy2nqKCFQ/9+Ie4dvOYSQdOk3hUlZSdzZOd3zMQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "requires": { "agent-base": "^6.0.2", "debug": "^4.3.3", "socks": "^2.6.2" } }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - } - }, "split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -12767,37 +11820,38 @@ "split-ca": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" }, "ssh2": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.9.0.tgz", - "integrity": "sha512-rhhIZT0eMPvCBSOG8CpqZZ7gre2vgXaIqmb3Jb83t88rjsxIsFzDanqBJM9Ns8BmP1835A5IbQ199io4EUZwOA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", + "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", "requires": { "asn1": "^0.2.4", "bcrypt-pbkdf": "^1.0.2", "cpu-features": "~0.0.4", - "nan": "^2.15.0" + "nan": "^2.16.0" } }, "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", + "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", "requires": { - "minipass": "^3.1.1" + "minipass": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + } } }, "stream-combiner": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", "dev": true, "requires": { "duplexer": "~0.1.1", @@ -12834,6 +11888,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -12851,13 +11911,6 @@ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } } }, "string-width": { @@ -12871,23 +11924,25 @@ } }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "strip-ansi": { @@ -12898,12 +11953,6 @@ "ansi-regex": "^5.0.1" } }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -12914,6 +11963,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -12924,50 +11974,42 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "minipass": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", + "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + } } }, "tar-fs": { @@ -13024,13 +12066,22 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } } }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "textextensions": { @@ -13041,7 +12092,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "tmp": { "version": "0.0.33", @@ -13054,7 +12105,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true }, "to-regex-range": { @@ -13069,7 +12120,7 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "treeify": { "version": "1.1.0", @@ -13089,9 +12140,9 @@ }, "dependencies": { "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -13100,20 +12151,20 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true } } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "requires": { "safe-buffer": "^5.0.1" } @@ -13121,7 +12172,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "type-check": { "version": "0.4.0", @@ -13144,13 +12195,15 @@ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, "requires": { - "is-typedarray": "^1.0.0" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" } }, "unbox-primitive": { @@ -13166,17 +12219,17 @@ } }, "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "requires": { - "unique-slug": "^2.0.0" + "unique-slug": "^4.0.0" } }, "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "requires": { "imurmurhash": "^0.1.4" } @@ -13187,6 +12240,17 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "peer": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -13197,9 +12261,9 @@ } }, "url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", + "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==" }, "url-parse": { "version": "1.5.10", @@ -13213,31 +12277,36 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } }, "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", "requires": { - "builtins": "^1.0.3" + "builtins": "^5.0.0" } }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "requires": { "defaults": "^1.0.3" } @@ -13245,12 +12314,12 @@ "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -13278,18 +12347,18 @@ "is-symbol": "^1.0.3" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" } }, "word-wrap": { @@ -13299,15 +12368,16 @@ "dev": true }, "workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13317,19 +12387,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "y18n": { "version": "5.0.8", @@ -13343,18 +12401,26 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dev": true, "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } } }, "yargs-parser": { @@ -13392,7 +12458,7 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" diff --git a/package.json b/package.json index a4d8b66f..9056be99 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,9 @@ { "name": "cortex-cli", - "version": "2.1.1", + "version": "2.2.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", + "type": "module", "types": "./client/index.d.ts", "scripts": { "build-binaries": "pkg .", @@ -10,7 +11,7 @@ "prepack": "cp package-lock.json npm-shrinkwrap.json", "postpack": "rm npm-shrinkwrap.json", "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", - "test": "cross-env NODE_ENV=test nyc mocha", + "test": "cross-env NODE_ENV=test c8 mocha", "test:workspaces": "cross-env NODE_ENV=test mocha --grep='Workspaces'", "clean": "rm -rf dist/ coverage/ .nyc_output/ node_modules/ cortex-cli.tgz cortex-cli-docs.md version.txt" }, @@ -56,67 +57,75 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { + "@supercharge/promise-pool": "2.4.0", "boolean": "3.2.0", - "chalk": "4.1.2", - "cli-progress": "3.11.2", - "cli-table3": "0.6.2", - "commander": "9.4.0", - "dayjs": "1.11.5", + "chalk": "5.2.0", + "cli-progress": "3.12.0", + "cli-table3": "0.6.3", + "commander": "10.0.0", + "dayjs": "1.11.7", "debug": "4.3.4", "dockerode": "3.3.4", - "find-package-json": "1.2.0", + "es-main": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", - "gh-got": "9.0.0", - "glob": "8.0.3", - "got": "11.8.5", - "graphql": "15.6.1", - "graphql-request": "3.7.0", - "inquirer": "8.2.4", + "gh-got": "10.0.0", + "glob": "9.2.1", + "got": "12.6.0", + "graphql": "16.6.0", + "graphql-request": "5.2.0", + "inquirer": "9.1.4", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.6.2", - "jose-node-cjs-runtime": "4.10.0", + "joi": "17.8.3", + "jose": "4.13.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "3.1.2", - "npm-registry-fetch": "12.0.0", - "open": "8.4.0", + "minimatch": "7.4.2", + "npm-registry-fetch": "14.0.3", + "open": "8.4.2", "prompts": "2.4.2", - "semver": "7.3.7", + "semver": "7.3.8", "treeify": "1.1.0", - "url-join": "4.0.1", + "url-join": "5.0.0", "url-parse": "1.5.10", - "uuid": "8.3.2", + "uuid": "9.0.0", "yauzl": "2.10.0" }, "devDependencies": { - "audit-ci": "6.3.0", - "chai": "4.3.6", + "@babel/eslint-parser": "7.19.1", + "@babel/plugin-syntax-import-assertions": "7.20.0", + "audit-ci": "6.6.1", + "c8": "7.13.0", + "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.22.0", + "eslint": "8.35.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.26.0", - "husky": "7.0.4", + "eslint-plugin-import": "2.27.5", + "husky": "8.0.3", "is-ci": "3.0.1", - "mocha": "9.2.2", + "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.2.9", - "nyc": "15.1.0", - "pkg": "5.8.0", - "rewire": "6.0.0", - "sinon": "11.1.2" + "nock": "13.3.0", + "pkg": "5.8.1", + "sinon": "15.0.1" }, - "nyc": { + "c8": { + "check-coverage": true, + "statements": 40, + "branches": 72, + "functions": 17, + "lines": 40, + "include": [ + "bin", + "src" + ], "reporter": [ "text", "html" ] - }, - "overrides": { - "got": "11.8.5" } } diff --git a/scripts/cortex b/scripts/cortex index bdd2867b..1cfd5707 100755 --- a/scripts/cortex +++ b/scripts/cortex @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. +# Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the “License”); # you may not use this file except in compliance with the License. diff --git a/src/client/actions.js b/src/client/actions.js index fd42f66b..3e79d4ac 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -1,27 +1,10 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const debug = require('debug')('cortex:cli'); -// eslint-disable-next-line import/no-unresolved -const { got, defaultHeaders } = require('./apiutils'); -const { - constructError, callMe, checkProject, -} = require('../commands/utils'); +import _ from 'lodash'; +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, callMe, checkProject } from '../commands/utils.js'; -module.exports = class Actions { +const debug = debugSetup('cortex:cli'); +export default class Actions { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/actions`; @@ -33,8 +16,7 @@ module.exports = class Actions { if (actionInst.actionType) { endpoint = `${endpoint}?actionType=${actionInst.actionType}`; } - debug('deployAction(%s, docker=%s, ttl=%s) => %s', - actionInst.name, actionInst.image, actionInst.ttl, endpoint); + debug('deployAction(%s, docker=%s, ttl=%s) => %s', actionInst.name, actionInst.image, actionInst.ttl, endpoint); const body = { ...actionInst }; // image & docker floating around fixup just in case.. if (body.docker) { @@ -46,14 +28,13 @@ module.exports = class Actions { } catch (error) { return { success: false, status: 400, message: error.message || error }; } - return got - .post(endpoint, { + .post(endpoint, { headers: defaultHeaders(token), - json: body, - }).json() - .then((res) => ({ success: true, message: res })) - .catch((err) => constructError(err)); + json: body, + }).json() + .then((res) => ({ success: true, message: res })) + .catch((err) => constructError(err)); } listActions(projectId, token, filter, limit, skip, sort) { @@ -66,9 +47,9 @@ module.exports = class Actions { if (skip) query.skip = skip; return got .get(this.endpointV4(projectId), { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((actions) => actions) .catch((err) => constructError(err)); } @@ -92,12 +73,12 @@ module.exports = class Actions { .get(endpoint, { headers: defaultHeaders(token) }) .json() .then((logs) => { - if (_.isArray(logs)) { - // returns plain array for Rancher daemons - return { success: true, logs }; - } - return logs; - }) + if (_.isArray(logs)) { + // returns plain array for Rancher daemons + return { success: true, logs }; + } + return logs; + }) .catch((err) => constructError(err)); } @@ -107,8 +88,8 @@ module.exports = class Actions { debug('deleteAction(%s) => %s', actionName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((action) => ({ success: true, action })) .catch((err) => constructError(err)); @@ -120,8 +101,8 @@ module.exports = class Actions { debug('getConfig() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((config) => ({ success: true, config })) .catch((err) => constructError(err)); @@ -162,4 +143,4 @@ module.exports = class Actions { await callMe(`docker push ${cortexImageUrl}`); return cortexImageUrl; } -}; +} diff --git a/src/client/agents.js b/src/client/agents.js index d8f2413e..0d6c5746 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); - -module.exports = class Agents { +const debug = debugSetup('cortex:cli'); +export default (class Agents { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}`; @@ -30,11 +30,11 @@ module.exports = class Agents { debug('invokeAgentService(%s, %s) => %s', agentName, serviceName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: params, - searchParams: { sync: options.sync, scheduleName: options.scheduleName, scheduleCron: options.scheduleCron }, - }).json() - .then((result) => ({ success: true, result })) + headers: defaultHeaders(token), + json: params, + searchParams: { sync: options.sync, scheduleName: options.scheduleName, scheduleCron: options.scheduleCron }, + }).json() + .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -44,10 +44,10 @@ module.exports = class Agents { debug('invokeSkill(%s, %s) => %s', skillName, inputName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: params, - searchParams: { sync }, - }).json() + headers: defaultHeaders(token), + json: params, + searchParams: { sync }, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -99,9 +99,9 @@ module.exports = class Agents { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -112,9 +112,9 @@ module.exports = class Agents { debug('describeAgentSnapshot(%s) => %s', snapshotId, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { output, deps: true }, - }).text() + headers: defaultHeaders(token), + searchParams: { output, deps: true }, + }).text() .catch((err) => constructError(err)); } @@ -124,10 +124,10 @@ module.exports = class Agents { debug('createAgentSnapshot(%s)=> %s', snapshot, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: snapshot, - }).json() + headers: defaultHeaders(token), + json: snapshot, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/apiServerClient.js b/src/client/apiServerClient.js index 06a036ba..92934816 100644 --- a/src/client/apiServerClient.js +++ b/src/client/apiServerClient.js @@ -1,8 +1,9 @@ -const _ = require('lodash'); -const { GraphQLClient, gql } = require('graphql-request'); -const { defaultHeaders } = require('./apiutils'); +import _ from 'lodash'; +// eslint-disable-next-line import/no-unresolved +import { GraphQLClient, gql } from 'graphql-request'; +import { defaultHeaders } from './apiutils.js'; -module.exports = class ApiServerClient { +export default (class ApiServerClient { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoint = `${cortexUrl}/fabric/v4/graphql`; @@ -34,7 +35,7 @@ module.exports = class ApiServerClient { */ async listProjects(token, filter, limit, skip, sort) { const fetched = await this._client(token) - .request(gql`{ + .request(gql`{ projects ( filter: "${filter}", limit: "${limit}", skip: "${skip}", sort: "${sort}" ) { name, title, description} } `); return _.get(fetched, 'projects', []); @@ -52,7 +53,6 @@ module.exports = class ApiServerClient { return _.get(fetched, 'createProject', {}); } - /** * Delete project using graphql * @param token @@ -116,4 +116,4 @@ module.exports = class ApiServerClient { .request(gql`{ modelByName ( project: "${projectId}", name: "${name}" ) { name, description, model_mode, source, status, title, type } }`); return _.get(fetched, 'modelByName', []); } -}; +}); diff --git a/src/client/apiutils.js b/src/client/apiutils.js index 613649f9..b6dcec4a 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -1,17 +1,15 @@ -const _ = require('lodash'); -const got = require('got'); -const debug = require('debug')('cortex:cli'); -const findPackageJson = require('find-package-json'); -const os = require('os'); - -const pkg = findPackageJson(__dirname).next().value; +import _ from 'lodash'; +// eslint-disable-next-line import/no-unresolved +import got from 'got'; +import debugSetup from 'debug'; +import os from 'os'; +import pkg from '../../package.json' assert { type: 'json' }; + +const debug = debugSetup('cortex:cli'); function getUserAgent() { return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${os.platform()})`; } - -module.exports.getUserAgent = getUserAgent; -// TODO add debug for request response -module.exports.got = got.extend({ +const gotExt = got.extend({ followRedirect: false, hooks: { beforeRequest: [ @@ -39,83 +37,8 @@ module.exports.got = got.extend({ return res; }, ], - - }, + }, }); - - -module.exports.defaultHeaders = (token, otherHeaders = {}) => ({ Authorization: `Bearer ${token}`, 'user-agent': getUserAgent(), ...otherHeaders }); - -/** - * makes a request via superagent. proxy methods will be utilized - * if the user (i.e. person running cli commands) has set environment - * variables for their proxy (this is assuming ofc they have a proxy). if - * no env variables set, the request just keeps piping through. - */ -// TODO for proxies https://github.com/gajus/global-agent -/** -function requestWrapper() { - // @tutorial: https://stackoverflow.com/questions/22156326/private-properties-in-javascript-es6-classes - // below are private variables - const proxyEnv = process.env.https_proxy || process.env.http_proxy; - const bothProxiesSet = process.env.https_proxy && process.env.http_proxy; - const bothProxiesWarning = 'Both process.env.https_proxy AND process.env.http_proxy are set as env variables. Will default to process.env.https_proxy'; - - const bypassProxy = process.env.bypass_proxy; - - this.get = function(endpoint) { - if (bypassProxy) - return superagentRequest - .get(endpoint) - .on('redirect', handleAuthError); - - bothProxiesSet && printWarning(bothProxiesWarning); - return superagentRequest - .get(endpoint) - .proxy(proxyEnv) - .on('redirect', handleAuthError) - .set('User-Agent', getUserAgent()); - }; - this.delete = function(endpoint) { - if (bypassProxy) - return superagentRequest - .delete(endpoint) - .on('redirect', handleAuthError); - - bothProxiesSet && printWarning(bothProxiesWarning); - return superagentRequest - .delete(endpoint) - .on('redirect', handleAuthError) - .proxy(proxyEnv) - .set('User-Agent', getUserAgent()); - }; - this.post = function(endpoint) { - if (bypassProxy) - return superagentRequest - .post(endpoint) - .on('redirect', handleAuthError); - - bothProxiesSet && printWarning(bothProxiesWarning); - return superagentRequest - .post(endpoint) - .on('redirect', handleAuthError) - .proxy(proxyEnv) - .set('User-Agent', getUserAgent()); - } - this.put = function(endpoint) { - if (bypassProxy) - return superagentRequest - .put(endpoint) - .on('redirect', handleAuthError); - - bothProxiesSet && printWarning(bothProxiesWarning); - return superagentRequest - .put(endpoint) - .on('redirect', handleAuthError) - .proxy(proxyEnv) - .set('User-Agent', getUserAgent()); - } -} - -module.exports.request = new requestWrapper(); -* */ +export const defaultHeaders = (token, otherHeaders = {}) => ({ Authorization: `Bearer ${token}`, 'user-agent': getUserAgent(), ...otherHeaders }); +export { getUserAgent }; +export { gotExt as got }; diff --git a/src/client/assessments.js b/src/client/assessments.js index ca86ea11..01b81fde 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -1,28 +1,13 @@ -/* - * Copyright 2021 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const querystring = require('querystring'); -const { pipeline } = require('stream'); -const { createWriteStream } = require('fs'); -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { printSuccess } = require('../commands/utils'); -const { printError } = require('../commands/utils'); -const { constructError } = require('../commands/utils'); +import querystring from 'querystring'; +import stream from 'node:stream'; +import { createWriteStream } from 'node:fs'; +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { printSuccess, printError, constructError } from '../commands/utils.js'; -module.exports = class Assessments { +const { pipeline } = stream; +const debug = debugSetup('cortex:cli'); +export default (class Assessments { constructor(cortexUrl) { this.endpointV4 = `${cortexUrl}/fabric/v4/impactassessment`; this.endpointApiV4 = `${cortexUrl}/fabric/v4/dependencies`; @@ -44,10 +29,10 @@ module.exports = class Assessments { queryResources(token, name, projectId, type, skip, limit, filter, sort) { const url = `${this.endpointV4}/resources?${querystring.stringify({ - projectId, - name, - type, - skip, + projectId, + name, + type, + skip, limit, filter, sort, @@ -75,17 +60,17 @@ module.exports = class Assessments { debug('createAssessment => %s', url); return got .post(url, { - headers: defaultHeaders(token, { 'Content-Type': 'application/json' }), - body: JSON.stringify({ - name, - title, - description, - scope, - componentName, - componentTypes, - overwrite, - }), - }).json() + headers: defaultHeaders(token, { 'Content-Type': 'application/json' }), + body: JSON.stringify({ + name, + title, + description, + scope, + componentName, + componentTypes, + overwrite, + }), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -106,8 +91,8 @@ module.exports = class Assessments { debug('getAssessment => %s', url); return got .get(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -117,8 +102,8 @@ module.exports = class Assessments { debug('deleteAssessment => %s', url); return got .delete(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -128,8 +113,8 @@ module.exports = class Assessments { debug('runAssessment => %s', url); return got .post(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -139,8 +124,8 @@ module.exports = class Assessments { debug('listAssessmentReports => %s', url); return got .get(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -150,8 +135,8 @@ module.exports = class Assessments { debug('getAssessmentReport => %s', url); return got .get(url, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => res) .catch((err) => constructError(err)); } @@ -162,7 +147,6 @@ module.exports = class Assessments { const filter = types && types.trim() ? `?components=${types.trim()}` : ''; const url = `${this.endpointV4}/assessments/${encodeURIComponent(name)}/reports/${encodeURIComponent(reportId)}/export${filter}`; debug('exportAssessmentReport => %s', url); - const rs = got.stream(url, { headers: defaultHeaders(token) }); pipeline(rs, createWriteStream(file), (e) => { if (e) { @@ -173,4 +157,4 @@ module.exports = class Assessments { } }); } -}; +}); diff --git a/src/client/catalog.js b/src/client/catalog.js index ab636f33..ce7feeec 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,24 +13,25 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const FormData = require('form-data'); -const http = require('https'); -const fs = require('fs'); -const { got, defaultHeaders } = require('./apiutils'); -const { - constructError, formatAllServiceInputParameters, checkProject, printSuccess, printError, printTable, -} = require('../commands/utils'); -const createEndpoints = (baseUri) => ({ - skills: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/skills`, - agents: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agents`, - agentinvoke: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agentinvoke`, - types: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/types`, - campaigns: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, - }); +import debugSetup from 'debug'; +import FormData from 'form-data'; +import http from 'https'; +import fs from 'node:fs'; +import { got, defaultHeaders } from './apiutils.js'; +import { + constructError, formatAllServiceInputParameters, checkProject, printSuccess, printError, printTable, +} from '../commands/utils.js'; -module.exports = class Catalog { +const debug = debugSetup('cortex:cli'); +const createEndpoints = (baseUri) => ({ + skills: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/skills`, + agents: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agents`, + agentinvoke: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agentinvoke`, + types: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/types`, + campaigns: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, +}); +export default (class Catalog { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoints = createEndpoints(cortexUrl); @@ -41,9 +42,9 @@ module.exports = class Catalog { debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills(projectId)); return got .post(this.endpoints.skills(projectId), { - headers: defaultHeaders(token), - json: skillObj, - }).json() + headers: defaultHeaders(token), + json: skillObj, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -57,9 +58,9 @@ module.exports = class Catalog { if (skip) query.skip = skip; return got .get(this.endpoints.skills(projectId), { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((skills) => ({ success: true, ...skills })) .catch((err) => constructError(err)); } @@ -91,9 +92,9 @@ module.exports = class Catalog { debug('deploySkill(%s) => %s', skillName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -104,24 +105,29 @@ module.exports = class Catalog { debug('undeploySkill(%s) => %s', skillName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } - skillLogs(projectId, token, skillName, actionName, verbose = false) { + async skillLogs(projectId, token, skillName, actionName, raw = false) { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/action/${encodeURIComponent(actionName)}/logs`; debug('skillLogs(%s, %s) => %s', skillName, actionName, endpoint); - return got - .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + const gotOptions = { + headers: defaultHeaders(token), + searchParams: { raw }, + }; + const gotResponse = raw ? got.get(endpoint, gotOptions).text() : got.get(endpoint, gotOptions).json(); + + try { + const res = await gotResponse; + return res; + } catch (err) { + return constructError(err); + } } listAgents(projectId, token, filter, limit, skip, sort) { @@ -135,9 +141,9 @@ module.exports = class Catalog { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((agentResp) => ({ success: true, ...agentResp })) .catch((err) => constructError(err)); @@ -166,9 +172,9 @@ module.exports = class Catalog { debug('saveAgent(%s) => %s', agentObj.name, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: agentObj, - }).json() + headers: defaultHeaders(token), + json: agentObj, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -179,9 +185,9 @@ module.exports = class Catalog { debug('describeAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((agent) => ({ success: true, agent })) .catch((err) => constructError(err)); } @@ -192,8 +198,8 @@ module.exports = class Catalog { debug('describeAgentVersions(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((agent) => ({ success: true, agent })) .catch((err) => constructError(err)); @@ -205,9 +211,9 @@ module.exports = class Catalog { debug('deployAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -218,9 +224,9 @@ module.exports = class Catalog { debug('undeployAgent(%s) => %s', agentName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -232,9 +238,9 @@ module.exports = class Catalog { debug('saveType(%s) => %s', JSON.stringify(names), this.endpoints.types(projectId)); return got .post(endpoint, { - headers: defaultHeaders(token), - json: types, - }) + headers: defaultHeaders(token), + json: types, + }) .json() .then((message) => ({ success: true, message })) .catch((err) => constructError(err)); @@ -246,8 +252,8 @@ module.exports = class Catalog { debug('describeType(%s) => %s', typeName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((type) => ({ success: true, type })) .catch((err) => constructError(err)); @@ -261,12 +267,11 @@ module.exports = class Catalog { if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((types) => ({ success: true, ...types })) .catch((err) => constructError(err)); @@ -278,8 +283,8 @@ module.exports = class Catalog { debug('deleteType(%s) => %s', typeName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((type) => ({ success: true, type })) .catch((err) => constructError(err)); @@ -310,13 +315,10 @@ module.exports = class Catalog { printError(`Campaign export file ${filepath} doesn't exists or not a valid export file`); } const readStream = fs.createReadStream(filepath); - const form = new FormData(); form.append('file', readStream); - const headers = form.getHeaders(); headers.Authorization = `Bearer ${token}`; - const req = http.request(importUrl, { method: 'POST', headers, @@ -348,8 +350,8 @@ module.exports = class Catalog { debug('undeployCampaign() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -361,8 +363,8 @@ module.exports = class Catalog { debug('deployCampaign() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -374,8 +376,8 @@ module.exports = class Catalog { debug('undeployMissions() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -390,12 +392,11 @@ module.exports = class Catalog { if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -407,8 +408,8 @@ module.exports = class Catalog { debug('deployMissions() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -420,8 +421,8 @@ module.exports = class Catalog { debug('getMissions() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((res) => ({ success: true, data: res })) .catch((err) => constructError(err)); @@ -515,15 +516,14 @@ module.exports = class Catalog { // return constructError(err); // }); // } - deleteSkill(projectId, token, skillName) { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; debug('deleteSkill(%s) => %s', skillName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((skill) => skill) .catch((err) => constructError(err)); @@ -535,10 +535,10 @@ module.exports = class Catalog { debug('deleteAgent(%s) => %s', agentName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((agent) => ({ success: true, agent })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/connections.js b/src/client/connections.js index e1c68ccd..f7e7e415 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); - -module.exports = class Connections { +const debug = debugSetup('cortex:cli'); +export default (class Connections { constructor(cortexUrl) { this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/connections`; this.cortexUrl = cortexUrl; @@ -35,9 +35,9 @@ module.exports = class Connections { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -48,7 +48,7 @@ module.exports = class Connections { debug('saveConnection(%s) => %s', connObj.name, endpoint); try { const message = await got - .post(endpoint, { + .post(endpoint, { headers: defaultHeaders(token), json: connObj, }).json(); @@ -64,8 +64,8 @@ module.exports = class Connections { debug('describeConnection(%s) => %s', connectionName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -76,8 +76,8 @@ module.exports = class Connections { debug('deleteConnection(%s) => %s', connectionName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -89,12 +89,12 @@ module.exports = class Connections { if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - return got + return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/content.js b/src/client/content.js index 76619bd7..90da2b95 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -1,31 +1,13 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +import fs from 'node:fs'; +import process from 'node:process'; +import { PassThrough } from 'node:stream'; +import { pipeline } from 'node:stream/promises'; +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { createFileStream, constructError, checkProject } from '../commands/utils.js'; -const fs = require('fs'); -const stream = require('stream'); - -const { promisify } = require('util'); -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { createFileStream } = require('../commands/utils'); -const { constructError, checkProject } = require('../commands/utils'); - -const pipeline = promisify(stream.pipeline); - -module.exports = class Content { +const debug = debugSetup('cortex:cli'); +export default (class Content { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/content`; @@ -44,9 +26,9 @@ module.exports = class Content { if (prefix) query.filter = prefix; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((message) => ({ success: true, message })) .catch((err) => constructError(err)); } @@ -59,17 +41,15 @@ module.exports = class Content { // todo show progress.. debug('uploadContentStreaming(%s, %s) => %s', key, content, endpoint); try { - const message = await pipeline( - fs.createReadStream(content), - got.stream.post(endpoint, { - headers: defaultHeaders(token, { 'Content-Type': contentType }), - }), - // https://github.com/sindresorhus/got/blob/HEAD/documentation/3-streams.md#stream-api - // new stream.PassThrough() is required to catch errors. - new stream.PassThrough(), - ); + const message = await pipeline(fs.createReadStream(content), got.stream.post(endpoint, { + headers: defaultHeaders(token, { 'Content-Type': contentType }), + }), + // https://github.com/sindresorhus/got/blob/HEAD/documentation/3-streams.md#stream-api + // new stream.PassThrough() is required to catch errors. + new PassThrough()); return { success: true, message }; } catch (err) { + // TODO this should just throw return constructError(err); } } @@ -81,8 +61,8 @@ module.exports = class Content { debug('deleteContent() => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((message) => ({ success: true, message })) .catch((err) => constructError(err)); } @@ -95,17 +75,15 @@ module.exports = class Content { const endpoint = `${this.endpoint(projectId)}/${contentKey}`; debug('downloadContent() => %s', endpoint); try { + let toFileStream; if (toFile) { - toFile = createFileStream(toFile); + toFileStream = createFileStream(toFile); } else { - toFile = process.stdout; + toFileStream = process.stdout; } - return pipeline( - got.stream(endpoint, { headers: defaultHeaders(token) }), - toFile, - ); + return pipeline(got.stream(endpoint, { headers: defaultHeaders(token) }), toFileStream); } catch (err) { return constructError(err); } } -}; +}); diff --git a/src/client/experiments.js b/src/client/experiments.js index 8403b882..8e00a2aa 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -1,29 +1,12 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const fs = require('fs'); -const stream = require('stream'); -const { promisify } = require('util'); - -const pipeline = promisify(stream.pipeline); -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); -const Content = require('./content'); - -module.exports = class Experiments { +import fs from 'node:fs'; +import { pipeline } from 'node:stream/promises'; +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; +import Content from './content.js'; + +const debug = debugSetup('cortex:cli'); +export default (class Experiments { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/experiments`; @@ -40,9 +23,9 @@ module.exports = class Experiments { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -53,8 +36,8 @@ module.exports = class Experiments { debug('describeExperiment(%s) => %s', name, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -65,8 +48,8 @@ module.exports = class Experiments { debug('deleteExperiment(%s) => %s', name, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -82,9 +65,9 @@ module.exports = class Experiments { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json() + headers: defaultHeaders(token), + searchParams: query, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -95,8 +78,8 @@ module.exports = class Experiments { debug('describeRun(%s) => %s', runId, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -107,8 +90,8 @@ module.exports = class Experiments { debug('deleteRun(%s, %s) => %s', experimentName, runId, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -138,9 +121,9 @@ module.exports = class Experiments { debug('saveExperiment(%s) => %s', experimentObj.name, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: experimentObj, - }).json() + headers: defaultHeaders(token), + json: experimentObj, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -151,9 +134,9 @@ module.exports = class Experiments { debug('createRun(%s) => %s', runObj.experimentName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: runObj, - }).json() + headers: defaultHeaders(token), + json: runObj, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -164,29 +147,24 @@ module.exports = class Experiments { debug('updateRun(%s) => %s', runObj.experimentName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: runObj, - }).json() + headers: defaultHeaders(token), + json: runObj, + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } async uploadArtifact(projectId, token, experimentName, runId, content, artifact, contentType = 'application/octet-stream') { checkProject(projectId); - const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${encodeURIComponent(runId)}/artifacts/${artifact}`; - debug('uploadArtifact(%s, %s) => %s', artifact, content, endpoint); try { - const message = await pipeline( - fs.createReadStream(content), - got.stream.put(endpoint, { - headers: defaultHeaders(token, { 'Content-Type': contentType }), - }), - ); + const message = await pipeline(fs.createReadStream(content), got.stream.put(endpoint, { + headers: defaultHeaders(token, { 'Content-Type': contentType }), + })); return { success: true, message }; } catch (err) { return constructError(err); } } -}; +}); diff --git a/src/client/info.js b/src/client/info.js index a6329b24..efbd4b7a 100644 --- a/src/client/info.js +++ b/src/client/info.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,26 +13,29 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, getUserAgent } from './apiutils.js'; +import { constructError } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, getUserAgent } = require('./apiutils'); -const { constructError } = require('../commands/utils'); - -module.exports = class Info { +const debug = debugSetup('cortex:cli'); +export default (class Info { constructor(cortexUrl) { this.endpoint = () => `${cortexUrl}`; this.cortexUrl = cortexUrl; } - getInfo() { + async getInfo() { const endpoint = `${this.cortexUrl}/fabric/v4/info`; debug('getInfo() => %s', endpoint); - return got - .get(endpoint, { - headers: { 'user-agent': getUserAgent() }, - followRedirect: false, - }).json() - .then((result) => result) - .catch((err) => constructError(err)); + try { + return await got + .get(endpoint, { + headers: { 'user-agent': getUserAgent() }, + followRedirect: false, + }) + .json(); + } catch (err) { + return constructError(err); + } } -}; +}); diff --git a/src/client/models.js b/src/client/models.js index 0f84448e..5268a9fc 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -module.exports = class Models { +const debug = debugSetup('cortex:cli'); +export default (class Models { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/models`; @@ -29,9 +30,9 @@ module.exports = class Models { debug('saveModel(%s) => %s', modelObj.name, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: modelObj, - }).json() + headers: defaultHeaders(token), + json: modelObj, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -42,9 +43,9 @@ module.exports = class Models { debug('updateModelStatus(%s) => %s', modelName, status, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: {}, - }).json() + headers: defaultHeaders(token), + json: {}, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -55,8 +56,8 @@ module.exports = class Models { debug('deleteAction(%s) => %s', modelName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((model) => ({ success: true, model })) .catch((err) => constructError(err)); @@ -68,9 +69,9 @@ module.exports = class Models { debug('describeModel(%s) => %s', modelName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((model) => ({ success: true, model })) .catch((err) => constructError(err)); } @@ -87,9 +88,9 @@ module.exports = class Models { if (tags) query.tags = tags; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((modelsResp) => ({ success: true, ...modelsResp })) .catch((err) => constructError(err)); @@ -106,11 +107,11 @@ module.exports = class Models { if (skip) query.skip = skip; return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }) + headers: defaultHeaders(token), + searchParams: query, + }) .json() .then((modelsResp) => ({ success: true, ...modelsResp })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/roles.js b/src/client/roles.js index 93933cc1..066d39ec 100644 --- a/src/client/roles.js +++ b/src/client/roles.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,16 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError } = require('../commands/utils'); +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError } from '../commands/utils.js'; -module.exports = class Roles { +const debug = debugSetup('cortex:cli'); +export default class Roles { constructor(cortexUrl, role, flags = []) { this.cortexUrl = cortexUrl; this.endpoint = `${cortexUrl}/fabric/v4`; this.flags = ''; - if (role) { this.rolesEndpoint = `${this.endpoint}/roles/${role}`; } else { @@ -31,9 +31,7 @@ module.exports = class Roles { this.rolesUsersEndpoint = `${this.rolesEndpoint}/users`; this.rolesGrantsEndpoint = `${this.rolesEndpoint}/grants`; this.rolesProjectsEndpoint = `${this.rolesEndpoint}/projects`; - this.rolesMappingsEndpoint = `${this.rolesEndpoint}/mappings`; - if (flags.length > 0) { this.flags = `${flags.reduce((flagString, flag) => { if (flagString) { @@ -51,8 +49,8 @@ module.exports = class Roles { debug('describeRole => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -62,8 +60,8 @@ module.exports = class Roles { debug('deleteRole => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -73,9 +71,9 @@ module.exports = class Roles { debug('createRole => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -85,9 +83,9 @@ module.exports = class Roles { debug('addUsersToRole => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: { users }, - }).json() + headers: defaultHeaders(token), + json: { users }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -97,9 +95,9 @@ module.exports = class Roles { debug('removeUsersFromRole => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: { users }, - }).json() + headers: defaultHeaders(token), + json: { users }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -109,9 +107,9 @@ module.exports = class Roles { debug('createGrantForRole => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -121,9 +119,9 @@ module.exports = class Roles { debug('removeGrantFromRole => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -136,8 +134,8 @@ module.exports = class Roles { debug('listRoles => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -147,9 +145,9 @@ module.exports = class Roles { debug('addRolesToProject(%s) => %s', roles, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: { project, roles }, - }).json() + headers: defaultHeaders(token), + json: { project, roles }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -159,9 +157,9 @@ module.exports = class Roles { debug('removeRolesFromProject => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: { project, roles }, - }).json() + headers: defaultHeaders(token), + json: { project, roles }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -171,8 +169,8 @@ module.exports = class Roles { debug('listExternalGroups => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -182,8 +180,8 @@ module.exports = class Roles { debug('describeExternalGroup => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -193,8 +191,8 @@ module.exports = class Roles { debug('deleteExternalGroup => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -204,9 +202,9 @@ module.exports = class Roles { debug('addExternalGroupToRole(%s) => %s', externalGroup, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: { externalGroup }, - }).json() + headers: defaultHeaders(token), + json: { externalGroup }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -216,9 +214,9 @@ module.exports = class Roles { debug('removeExternalGroupFromRole => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } -}; +} diff --git a/src/client/secrets.js b/src/client/secrets.js index 8b3e3ceb..7ca6689d 100644 --- a/src/client/secrets.js +++ b/src/client/secrets.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import urljoin from 'url-join'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const urljoin = require('url-join'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); - -module.exports = class Secrets { +const debug = debugSetup('cortex:cli'); +export default (class Secrets { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoint = (projectId) => urljoin(cortexUrl, 'fabric/v4/projects', projectId, 'secrets'); @@ -31,8 +31,8 @@ module.exports = class Secrets { debug('listSecrets => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -43,8 +43,8 @@ module.exports = class Secrets { debug('readSecret(%s) => %s', keyName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((result) => ({ success: true, result })) .catch((err) => constructError(err)); } @@ -55,10 +55,8 @@ module.exports = class Secrets { debug('deleteSecret(%s) => %s', keyName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + headers: defaultHeaders(token), + }).json(); } writeSecret(projectId, token, keyName, value) { @@ -68,10 +66,10 @@ module.exports = class Secrets { const body = { value }; return got .post(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((result) => ({ ...result })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/sessions.js b/src/client/sessions.js index 2055087c..c472978b 100644 --- a/src/client/sessions.js +++ b/src/client/sessions.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -module.exports = class Sessions { +const debug = debugSetup('cortex:cli'); +export default (class Sessions { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/sessions`; @@ -29,9 +30,9 @@ module.exports = class Sessions { debug('saveSession(%s) => %s', sessionObj.name, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: sessionObj, - }).json() + headers: defaultHeaders(token), + json: sessionObj, + }).json() .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } @@ -42,8 +43,8 @@ module.exports = class Sessions { debug('deleteSession(%s) => %s', sessionName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((session) => ({ success: true, session })) .catch((err) => constructError(err)); @@ -55,9 +56,9 @@ module.exports = class Sessions { debug('describeSession(%s) => %s', sessionName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((session) => ({ success: true, session })) .catch((err) => constructError(err)); } @@ -68,10 +69,10 @@ module.exports = class Sessions { debug('listSessions() => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }) + headers: defaultHeaders(token), + }) .json() .then((sessionsResp) => ({ success: true, ...sessionsResp })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/tasks.js b/src/client/tasks.js index a84f927f..7f9539b2 100644 --- a/src/client/tasks.js +++ b/src/client/tasks.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError, checkProject } = require('../commands/utils'); - -module.exports = class Tasks { +const debug = debugSetup('cortex:cli'); +export default (class Tasks { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}`; @@ -49,7 +49,6 @@ module.exports = class Tasks { if (params) { opts.searchParams = params; } - return got .get(endpoint, opts).json() .catch((err) => constructError(err)); @@ -61,9 +60,9 @@ module.exports = class Tasks { debug('taskLogs(%s) => %s', taskName, endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -74,9 +73,9 @@ module.exports = class Tasks { debug('deleteTask(%s) => %s', taskName, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -87,9 +86,9 @@ module.exports = class Tasks { debug('pauseTask(%s) => %s', taskName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } @@ -100,10 +99,10 @@ module.exports = class Tasks { debug('resumeTask(%s) => %s', taskName, endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() + headers: defaultHeaders(token), + searchParams: { verbose }, + }).json() .then((res) => ({ ...res })) .catch((err) => constructError(err)); } -}; +}); diff --git a/src/client/users.js b/src/client/users.js index 75ff7b0c..ba52b7ae 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,17 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError } from '../commands/utils.js'; -const debug = require('debug')('cortex:cli'); -const { got, defaultHeaders } = require('./apiutils'); -const { constructError } = require('../commands/utils'); - -module.exports = class Users { +const debug = debugSetup('cortex:cli'); +export default class Users { constructor(cortexUrl, user, flags = []) { this.cortexUrl = cortexUrl; this.endpoint = `${cortexUrl}/fabric/v4`; this.flags = ''; - if (user) { this.usersEndpoint = `${this.endpoint}/usergrants/${user}`; } else { @@ -47,8 +46,8 @@ module.exports = class Users { debug('createServiceUser => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -58,8 +57,8 @@ module.exports = class Users { debug('deleteServiceUser => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -69,8 +68,8 @@ module.exports = class Users { debug('listServiceUser => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -80,8 +79,8 @@ module.exports = class Users { debug('describeUser => %s', endpoint); return got .get(endpoint, { - headers: defaultHeaders(token), - }).json() + headers: defaultHeaders(token), + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -91,9 +90,9 @@ module.exports = class Users { debug('createGrantForUser => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -103,9 +102,9 @@ module.exports = class Users { debug('removeGrantFromUser => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: body, - }).json() + headers: defaultHeaders(token), + json: body, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -115,9 +114,9 @@ module.exports = class Users { debug('addUsersToProject => %s', endpoint); return got .post(endpoint, { - headers: defaultHeaders(token), - json: { project, users }, - }).json() + headers: defaultHeaders(token), + json: { project, users }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } @@ -127,10 +126,10 @@ module.exports = class Users { debug('removeUsersFromProject => %s', endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - json: { project, users }, - }).json() + headers: defaultHeaders(token), + json: { project, users }, + }).json() .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } -}; +} diff --git a/src/commands/actions.js b/src/commands/actions.js index df271fb0..35a45628 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -1,35 +1,17 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Actions = require('../client/actions'); - +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Actions from '../client/actions.js'; +import { + printSuccess, printError, filterObject, parseObject, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, filterObject, parseObject, isNumeric, - handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListActionsCommand = class { +export const ListActionsCommand = class { constructor(program) { this.program = program; } @@ -38,43 +20,36 @@ module.exports.ListActionsCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListActions()', profile.name); - const actions = new Actions(profile.url); actions.listActions(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort) // eslint-disable-next-line consistent-return .then((response) => { - if (response.success) { - const result = response.actions; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Type', field: 'type', width: 8 }, - { column: 'Image', field: 'image', width: 50 }, - { column: 'Modified', field: 'updatedAt', width: 26 }, - { column: 'Author', field: 'createdBy', width: 26 }, - ]; - handleTable( - tableSpec, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No actions found', - ); - } + if (response.success) { + const result = response.actions; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - return handleListFailure(response, options, 'Actions'); + printExtendedLogs(result, options); + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Type', field: 'type', width: 8 }, + { column: 'Image', field: 'image', width: 50 }, + { column: 'Modified', field: 'updatedAt', width: 26 }, + { column: 'Author', field: 'createdBy', width: 26 }, + ]; + handleTable(tableSpec, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No actions found'); } - }) + } else { + return handleListFailure(response, options, 'Actions'); + } + }) .catch((err) => { - printError(`Failed to list actions: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list actions: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DescribeActionCommand = class { +export const DescribeActionCommand = class { constructor(program) { this.program = program; } @@ -82,23 +57,21 @@ module.exports.DescribeActionCommand = class { async execute(actionName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeAction(%s)', profile.name, actionName); - const actions = new Actions(profile.url); actions.describeAction(options.project || profile.project, profile.token, actionName) .then((response) => { - if (response.success) { - getFilteredOutput(response.action, options); - } else { - printError(`Failed to describe action: ${response.status} ${response.message}`, options); - } - }) + if (response.success) { + getFilteredOutput(response.action, options); + } else { + printError(`Failed to describe action: ${response.status} ${response.message}`, options); + } + }) .catch((err) => { - printError(`Failed to describe action: ${err.status} ${err.message}`, options); - }); + printError(`Failed to describe action: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DeployActionCommand = class { +export const DeployActionCommand = class { constructor(program) { this.program = program; } @@ -106,7 +79,6 @@ module.exports.DeployActionCommand = class { async execute(actionDefinition, options) { try { const profile = await loadProfile(options.profile); - let actionInst = {}; if (actionDefinition) { debug('%s.deployActionCommand(%s)', profile.name, actionDefinition); @@ -137,7 +109,6 @@ module.exports.DeployActionCommand = class { if (options.image) { actionInst.image = options.image; } - if (options.type) { actionInst.type = options.type; } @@ -165,14 +136,12 @@ module.exports.DeployActionCommand = class { } actionInst.scaleCount = parseInt(options.scaleCount, 10); } - if (options.jobTimeout) { if (!isNumeric(options.jobTimeout)) { printError('--jobTimeout must be a number', options); } actionInst.jobTimeout = parseInt(options.jobTimeout, 10); } - // handle mutually exclusive options if (actionInst.type === 'job' && _.has(actionInst, 'port')) { printError('Option port not valid on job action types'); @@ -180,7 +149,6 @@ module.exports.DeployActionCommand = class { if (actionInst.type === 'daemon' && _.has(actionInst, 'jobTimeout')) { printError('Option jobTimeout not valid on daemon action types'); } - const actions = new Actions(profile.url); const response = await actions.deployAction(options.project || profile.project, profile.token, actionInst); if (response.success) { @@ -189,12 +157,11 @@ module.exports.DeployActionCommand = class { printError(`Action deployment failed: ${response.status} ${response.message}`, options); } } catch (err) { - printError(`Failed to deploy action: ${err.status} ${err.message}`, options); + printError(`Failed to deploy action: ${err.status} ${err.message}`, options); } } }; - -module.exports.DeleteActionCommand = class { +export const DeleteActionCommand = class { constructor(program) { this.program = program; } @@ -205,14 +172,14 @@ module.exports.DeleteActionCommand = class { const actions = new Actions(profile.url); actions.deleteAction(options.project || profile.project, profile.token, actionName) .then((response) => { - if (response.success) { - const result = filterObject(response, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Action'); - }) + if (response.success) { + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + return handleDeleteFailure(response, options, 'Action'); + }) .catch((err) => { - printError(`Failed to delete action: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete action: ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/commands/agents.js b/src/commands/agents.js index 22379059..ce0914a2 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -1,79 +1,30 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Catalog = require('../client/catalog'); -const Agents = require('../client/agents'); - +import fs from 'node:fs'; +import debugSetup from 'debug'; +import _ from 'lodash'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Catalog from '../client/catalog.js'; +import Agents from '../client/agents.js'; +import { + LISTTABLEFORMAT, + filterObject, + formatValidationPath, + getFilteredOutput, + getQueryOptions, + handleDeleteFailure, + handleListFailure, + handleTable, + parseObject, + printError, + printExtendedLogs, + printSuccess, + printTable, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, getQueryOptions, -} = require('./utils'); - -module.exports.SaveAgentCommand = class SaveAgentCommand { - constructor(program) { - this.program = program; - } - - async execute(agentDefinitions, options) { - const profile = await loadProfile(options.profile); - await Promise.all(agentDefinitions.map(async (agentDefinition) => { - debug('%s.executeSaveAgent(%s)', profile.name, agentDefinition); - if (!fs.existsSync(agentDefinition)) { - printError(`File does not exist at: ${agentDefinition}`); - } - const agentDefStr = fs.readFileSync(agentDefinition); - const agent = parseObject(agentDefStr, options); - debug('%o', agent); - - const catalog = new Catalog(profile.url); - const project = options.project || profile.project; - try { - const response = await catalog.saveAgent(project, profile.token, agent); - if (response.success) { - printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); - } else if (response.details) { - console.log(`Failed to save agent: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - printError(''); // Just exit - } else { - printError(JSON.stringify(response)); - } - } catch (err) { - printError(`Failed to save agent: ${err.status} ${err.message}`, options); - } - })); - } -}; - -module.exports.ListAgentsCommand = class ListAgentsCommand { +export class ListAgentsCommand { constructor(program) { this.program = program; } @@ -82,7 +33,6 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListAgents()', profile.name); - const catalog = new Catalog(profile.url); // eslint-disable-next-line consistent-return catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { @@ -93,25 +43,19 @@ module.exports.ListAgentsCommand = class ListAgentsCommand { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - LISTTABLEFORMAT, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No agents found', - ); + handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No agents found'); } } else { return handleListFailure(response, options, 'Agents'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list agents: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DescribeAgentCommand = class DescribeAgentCommand { +} +export class DescribeAgentCommand { constructor(program) { this.program = program; } @@ -128,7 +72,7 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { printError(`Failed to describe agent versions ${agentName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe agent versions ${agentName}: ${err.status} ${err.message}`, options); }); } else { @@ -141,14 +85,13 @@ module.exports.DescribeAgentCommand = class DescribeAgentCommand { printError(`Failed to describe agent ${agentName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe agent ${agentName}: ${err.status} ${err.message}`, options); }); } } -}; - -module.exports.InvokeAgentServiceCommand = class { +} +export class InvokeAgentServiceCommand { constructor(program) { this.program = program; } @@ -156,7 +99,6 @@ module.exports.InvokeAgentServiceCommand = class { async execute(agentName, serviceName, options) { const profile = await loadProfile(options.profile); debug('%s.invokeAgentService(%s, %s)', profile.name, agentName, serviceName); - let params = {}; if (options.params) { try { @@ -171,9 +113,7 @@ module.exports.InvokeAgentServiceCommand = class { const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); } - debug('params: %o', params); - const agents = new Agents(profile.url); agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params, options).then((response) => { if (response.success) { @@ -183,7 +123,7 @@ module.exports.InvokeAgentServiceCommand = class { printError(`Invocation failed: ${response.status} ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { if (err.response && err.response.body) { debug('Raw error response: %o', err.response.body); printError(`Failed to invoke agent service (${err.status} ${err.message}): ${err.response.body.error}`, options); @@ -192,9 +132,8 @@ module.exports.InvokeAgentServiceCommand = class { } }); } -}; - -module.exports.GetActivationCommand = class { +} +export class GetActivationCommand { constructor(program) { this.program = program; } @@ -225,27 +164,25 @@ module.exports.GetActivationCommand = class { printError(`Failed to get activation ${activationId}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to get activation ${activationId}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.ListActivationsCommand = class { +} +export class ListActivationsCommand { constructor(program) { this.program = program; } async execute(options) { - if (_.isEmpty(options.agentName) - && _.isEmpty(options.skillName) - && _.isEmpty(options.correlationId) + if (_.isEmpty(options.agentName) + && _.isEmpty(options.skillName) + && _.isEmpty(options.correlationId) && _.isEmpty(options.status)) { printError('Either --agentName, --skillName, --correlationId, or --status must be provided', options); } const profile = await loadProfile(options.profile); debug('%s.listActivations(%s)', profile.name); - const agents = new Agents(profile.url); // TODO validate param types? const queryParams = {}; @@ -261,7 +198,6 @@ module.exports.ListActivationsCommand = class { if (options.skip) queryParams.skip = options.skip; if (options.sort) queryParams.sort = _.toLower(options.sort); if (options.filter) queryParams.filter = options.filter; - // eslint-disable-next-line consistent-return agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { if (response.success) { @@ -277,7 +213,6 @@ module.exports.ListActivationsCommand = class { { column: 'Status', field: 'status', width: 20 }, { column: 'Started', field: 'start', width: 65 }, ]; - const genName = (o) => { if (o.agentName) { return `${o.agentName} (Agent)`; @@ -287,7 +222,6 @@ module.exports.ListActivationsCommand = class { } return '-'; }; - handleTable(tableSpec, _.map(result, (o) => ({ ...o, name: genName(o), @@ -299,12 +233,11 @@ module.exports.ListActivationsCommand = class { } }) .catch((err) => { - printError(`Failed to list activations: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list activations: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.ListServicesCommand = class ListServicesCommand { +} +export class ListServicesCommand { constructor(program) { this.program = program; } @@ -312,7 +245,6 @@ module.exports.ListServicesCommand = class ListServicesCommand { async execute(agentName, options) { const profile = await loadProfile(options.profile); debug('%s.listServices(%s)', profile.name, agentName); - const catalog = new Catalog(profile.url); catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { if (response.success) { @@ -336,9 +268,8 @@ module.exports.ListServicesCommand = class ListServicesCommand { printError(`Failed to return agent service information: ${agentName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.ListAgentSnapshotsCommand = class { +} +export class ListAgentSnapshotsCommand { constructor(program) { this.program = program; } @@ -347,7 +278,6 @@ module.exports.ListAgentSnapshotsCommand = class { async execute(agentName, options) { const profile = await loadProfile(options.profile); debug('%s.listAgentSnapshots(%s)', profile.name, agentName); - const agents = new Agents(profile.url); agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, options.filter, options.limit, options.skip, options.sort) // eslint-disable-next-line consistent-return @@ -362,29 +292,23 @@ module.exports.ListAgentSnapshotsCommand = class { const tableSpec = [ { column: 'Snapshot ID', field: 'snapshotId', width: 40 }, { column: 'Title', field: 'title', width: 40 }, -// Removed as this is confusing for end users, agent version may not change -// { column: 'Agent Version', field: 'agentVersion', width: 15 }, + // Removed as this is confusing for end users, agent version may not change + // { column: 'Agent Version', field: 'agentVersion', width: 15 }, { column: 'Created', field: 'createdAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 26 }, ]; - handleTable( - tableSpec, - result, - (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), - 'No snapshots found', - ); + handleTable(tableSpec, result, (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), 'No snapshots found'); } } else { return handleListFailure(response, options, 'Agent-snapshots'); } }) .catch((err) => { - printError(`Failed to list agent snapshots ${agentName}: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list agent snapshots ${agentName}: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.DescribeAgentSnapshotCommand = class { +} +export class DescribeAgentSnapshotCommand { constructor(program) { this.program = program; } @@ -392,7 +316,6 @@ module.exports.DescribeAgentSnapshotCommand = class { async execute(snapshotId, options) { const profile = await loadProfile(options.profile); debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); - const agents = new Agents(profile.url); const output = _.get(options, 'output', 'json'); try { @@ -409,9 +332,8 @@ module.exports.DescribeAgentSnapshotCommand = class { return printError(`Failed to describe agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); } } -}; - -module.exports.CreateAgentSnapshotCommand = class { +} +export class CreateAgentSnapshotCommand { constructor(program) { this.program = program; } @@ -440,12 +362,11 @@ module.exports.CreateAgentSnapshotCommand = class { } }) .catch((err) => { - printError(`Failed to create agent snapshot ${agentName}: ${err.status} ${err.message}`, options); - }); + printError(`Failed to create agent snapshot ${agentName}: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.DeleteAgentCommand = class DeleteAgentCommand { +} +export class DeleteAgentCommand { constructor(program) { this.program = program; } @@ -456,19 +377,18 @@ module.exports.DeleteAgentCommand = class DeleteAgentCommand { const catalog = new Catalog(profile.url); catalog.deleteAgent(options.project || profile.project, profile.token, agentName) .then((response) => { - if (response.success) { - const result = filterObject(response, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Agent'); - }) + if (response.success) { + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + return handleDeleteFailure(response, options, 'Agent'); + }) .catch((err) => { - printError(`Failed to delete agent: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete agent: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.DeployAgentCommand = class DeployAgentCommand { +} +export class DeployAgentCommand { constructor(program) { this.program = program; } @@ -490,10 +410,8 @@ module.exports.DeployAgentCommand = class DeployAgentCommand { } })); } -}; - - -module.exports.UndeployAgentCommand = class UndeployAgentCommand { +} +export class UndeployAgentCommand { constructor(program) { this.program = program; } @@ -515,4 +433,44 @@ module.exports.UndeployAgentCommand = class UndeployAgentCommand { } })); } -}; +} +export class SaveAgentCommand { + constructor(program) { + this.program = program; + } + + async execute(agentDefinitions, options) { + const profile = await loadProfile(options.profile); + await Promise.all(agentDefinitions.map(async (agentDefinition) => { + debug('%s.executeSaveAgent(%s)', profile.name, agentDefinition); + if (!fs.existsSync(agentDefinition)) { + printError(`File does not exist at: ${agentDefinition}`); + } + const agentDefStr = fs.readFileSync(agentDefinition); + const agent = parseObject(agentDefStr, options); + debug('%o', agent); + const catalog = new Catalog(profile.url); + const project = options.project || profile.project; + try { + const response = await catalog.saveAgent(project, profile.token, agent); + if (response.success) { + printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); + } else if (response.details) { + console.log(`Failed to save agent: ${response.status} ${response.message}`); + console.log('The following issues were found:'); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + response.details.map((d) => d.path = formatValidationPath(d.path)); + printTable(tableSpec, response.details); + printError(''); // Just exit + } else { + printError(JSON.stringify(response)); + } + } catch (err) { + printError(`Failed to save agent: ${err.status} ${err.message}`, options); + } + })); + } +} diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 33b867dd..1aa3b1ce 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -1,42 +1,28 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const fs = require('fs'); +import fs from 'node:fs'; +import uniqBy from 'lodash/uniqBy.js'; +import sortBy from 'lodash/sortBy.js'; +import flatten from 'lodash/flatten.js'; +import compact from 'lodash/compact.js'; +import startsWith from 'lodash/startsWith.js'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Assessments from '../client/assessments.js'; +import { + printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, getFilteredOutput, +} from './utils.js'; const _ = { - uniqBy: require('lodash/uniqBy'), - sortBy: require('lodash/sortBy'), - flatten: require('lodash/flatten'), - compact: require('lodash/compact'), - startsWith: require('lodash/startsWith'), + uniqBy, + sortBy, + flatten, + compact, + startsWith, }; -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Assessments = require('../client/assessments'); - +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, parseObject, - handleTable, printExtendedLogs, handleListFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListResourcesCommand = class { +export const ListResourcesCommand = class { constructor(program) { this.program = program; } @@ -50,28 +36,27 @@ module.exports.ListResourcesCommand = class { client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, options.filter, options.sort) // eslint-disable-next-line consistent-return .then((response) => { - if (response.success === false) return handleListFailure(response, options, 'Cortex resources'); - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(response, options); - } else { - printExtendedLogs(response.data, options); - const tableSpec = [ - { column: 'Name', field: 'resourceName' }, - { column: 'Title', field: 'resourceTitle' }, - { column: 'Resource Type', field: 'resourceType' }, - { column: 'Project', field: '_projectId' }, - ]; - handleTable(tableSpec, response.data, null, 'No matching resources found'); - } - }) + if (response.success === false) return handleListFailure(response, options, 'Cortex resources'); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); + } else { + printExtendedLogs(response.data, options); + const tableSpec = [ + { column: 'Name', field: 'resourceName' }, + { column: 'Title', field: 'resourceTitle' }, + { column: 'Resource Type', field: 'resourceType' }, + { column: 'Project', field: '_projectId' }, + ]; + handleTable(tableSpec, response.data, null, 'No matching resources found'); + } + }) .catch((err) => { - printError(`Failed to list Cortex resources: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list Cortex resources: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ListResourceTypesCommand = class { +export const ListResourceTypesCommand = class { constructor(program) { this.program = program; } @@ -80,30 +65,28 @@ module.exports.ListResourceTypesCommand = class { const options = command; const profile = await loadProfile(options.profile); debug('%s.ListResourceTypesCommand()', profile.name); - const client = new Assessments(profile.url); client.listResourceTypes(profile.token) .then((response) => { - if (response.success === false) throw response; - const data = _.compact(response.data); - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(data, options); - } else { - const types = data.map((t) => ({ type: t })); - const tableSpec = [ - { column: 'Resource Type', field: 'type' }, - ]; - handleTable(tableSpec, types, null, 'Resource Types not available'); - } - }) + if (response.success === false) throw response; + const data = _.compact(response.data); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(data, options); + } else { + const types = data.map((t) => ({ type: t })); + const tableSpec = [ + { column: 'Resource Type', field: 'type' }, + ]; + handleTable(tableSpec, types, null, 'Resource Types not available'); + } + }) .catch((err) => { - printError(`Failed to list Cortex resource types: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list Cortex resource types: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DependencyTreeCommand = class { +export const DependencyTreeCommand = class { constructor(program) { this.program = program; } @@ -112,7 +95,6 @@ module.exports.DependencyTreeCommand = class { const options = command; const profile = await loadProfile(options.profile); debug('%s.DependencyTreeCommand()', profile.name); - const client = new Assessments(profile.url); let body; if (dependencyFile) { @@ -120,26 +102,25 @@ module.exports.DependencyTreeCommand = class { } client.getDependenciesOfResource(profile.token, options.scope, options.type, options.name, body, options.missing) .then((response) => { - if (response.success === false) throw response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(response, options); - } else { - const tableSpec = [ - { column: 'Name', field: 'name' }, - { column: 'Title', field: 'title' }, - { column: 'Resource Type', field: 'type' }, - ]; - handleTable(tableSpec, response.data, null, 'No downstream dependency found'); - } - }) + if (response.success === false) throw response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Resource Type', field: 'type' }, + ]; + handleTable(tableSpec, response.data, null, 'No downstream dependency found'); + } + }) .catch((err) => { - printError(`Failed to list dependency Cortex resource: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list dependency Cortex resource: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.CreateAssessmentCommand = class { +export const CreateAssessmentCommand = class { constructor(program) { this.program = program; } @@ -158,25 +139,21 @@ module.exports.CreateAssessmentCommand = class { printError(`Failed to read assessment definition "${assessmentDef}": ${err.message}`, options); } } - client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, - options.description || assessment.description, options.scope || assessment.scope, - options.component || assessment.component, options.type || assessment.type, - options.overwrite || assessment.overwrite) + client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, options.description || assessment.description, options.scope || assessment.scope, options.component || assessment.component, options.type || assessment.type, options.overwrite || assessment.overwrite) .then((response) => { - if (response.success === false) throw response; - if (response.success) { - printSuccess(`Assessment ${options.name} saved successfully`, options); - } else { - printError(`Failed to save assessment: ${JSON.stringify(response)}`); - } - }) + if (response.success === false) throw response; + if (response.success) { + printSuccess(`Assessment ${options.name} saved successfully`, options); + } else { + printError(`Failed to save assessment: ${JSON.stringify(response)}`); + } + }) .catch((err) => { - printError(`Failed to save assessment: ${err.status} ${err.message}`, options); - }); + printError(`Failed to save assessment: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ListAssessmentCommand = class { +export const ListAssessmentCommand = class { constructor(program) { this.program = program; } @@ -185,37 +162,35 @@ module.exports.ListAssessmentCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.ListAssessmentCommand()', profile.name); - const client = new Assessments(profile.url); client.listAssessment(profile.token, options.skip, options.limit, options.filter, options.sort) // eslint-disable-next-line consistent-return .then((response) => { - if (response.success === false) return handleListFailure(response, options, 'Assessments'); - const result = response.data; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - const tableSpec = [ - { column: 'Name', field: 'name' }, - { column: 'Title', field: 'title' }, - { column: 'Description', field: 'description' }, - { column: 'Projects', field: 'scope' }, - { column: '# Reports', field: 'reportCount' }, - { column: 'Modified', field: '_updatedAt' }, - { column: 'Author', field: '_createdBy' }, - ]; - handleTable(tableSpec, result, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); - } - }) + if (response.success === false) return handleListFailure(response, options, 'Assessments'); + const result = response.data; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); + } else { + printExtendedLogs(result, options); + const tableSpec = [ + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Description', field: 'description' }, + { column: 'Projects', field: 'scope' }, + { column: '# Reports', field: 'reportCount' }, + { column: 'Modified', field: '_updatedAt' }, + { column: 'Author', field: '_createdBy' }, + ]; + handleTable(tableSpec, result, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); + } + }) .catch((err) => { - printError(`Failed to list assessment: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list assessment: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DescribeAssessmentCommand = class { +export const DescribeAssessmentCommand = class { constructor(program) { this.program = program; } @@ -223,20 +198,18 @@ module.exports.DescribeAssessmentCommand = class { async execute(name, options) { const profile = await loadProfile(options.profile); debug('%s.DescribeAssessmentCommand()', profile.name); - const client = new Assessments(profile.url); client.getAssessment(profile.token, name) .then((response) => { - if (response.success === false) throw response; - printSuccess(JSON.stringify(response, null, 2), options); - }) + if (response.success === false) throw response; + printSuccess(JSON.stringify(response, null, 2), options); + }) .catch((err) => { - printError(`Failed to get assessment "${name}": ${err.status} ${err.message}`, options); - }); + printError(`Failed to get assessment "${name}": ${err.status} ${err.message}`, options); + }); } }; - -module.exports.DeleteAssessmentCommand = class { +export const DeleteAssessmentCommand = class { constructor(program) { this.program = program; } @@ -244,20 +217,18 @@ module.exports.DeleteAssessmentCommand = class { async execute(name, options) { const profile = await loadProfile(options.profile); debug('%s.DeleteAssessmentCommand()', profile.name); - const client = new Assessments(profile.url); client.deleteAssessment(profile.token, name) .then((response) => { - if (response.success === false) throw response; - printSuccess(JSON.stringify(response, null, 2), options); - }) + if (response.success === false) throw response; + printSuccess(JSON.stringify(response, null, 2), options); + }) .catch((err) => { - printError(`Failed to delete assessment "${name}": ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete assessment "${name}": ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RunAssessmentCommand = class { +export const RunAssessmentCommand = class { constructor(program) { this.program = program; } @@ -265,20 +236,18 @@ module.exports.RunAssessmentCommand = class { async execute(name, options) { const profile = await loadProfile(options.profile); debug('%s.RunAssessmentCommand()', profile.name); - const client = new Assessments(profile.url); client.runAssessment(profile.token, name) .then((response) => { - if (response.success === false) throw response; - printSuccess(JSON.stringify(response, null, 2), options); - }) + if (response.success === false) throw response; + printSuccess(JSON.stringify(response, null, 2), options); + }) .catch((err) => { - printError(`Failed to run assessment "${name}": ${err.status} ${err.message}`, options); - }); + printError(`Failed to run assessment "${name}": ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ListAssessmentReportCommand = class { +export const ListAssessmentReportCommand = class { constructor(program) { this.program = program; } @@ -286,33 +255,31 @@ module.exports.ListAssessmentReportCommand = class { async execute(name, options) { const profile = await loadProfile(options.profile); debug('%s.ListAssessmentReportCommand()', profile.name); - const client = new Assessments(profile.url); client.listAssessmentReports(profile.token, name) .then((response) => { - if (response.success === false) throw response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(response, options); - } else { - const tableSpec = [ - { column: 'Assessment Name', field: 'assessmentId' }, - { column: 'Report Id', field: 'reportId' }, - { column: 'Impact Summary', field: 'summary' }, - { column: 'Modified', field: '_updatedAt' }, - { column: 'Author', field: '_createdBy' }, - ]; - response.data.forEach((r) => r.summary = JSON.stringify(Object.fromEntries(r.summary.map((item) => [item.type, item.count])))); - handleTable(tableSpec, response.data, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), `No report found for the Assessment ${name}`); - } - }) + if (response.success === false) throw response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); + } else { + const tableSpec = [ + { column: 'Assessment Name', field: 'assessmentId' }, + { column: 'Report Id', field: 'reportId' }, + { column: 'Impact Summary', field: 'summary' }, + { column: 'Modified', field: '_updatedAt' }, + { column: 'Author', field: '_createdBy' }, + ]; + response.data.forEach((r) => r.summary = JSON.stringify(Object.fromEntries(r.summary.map((item) => [item.type, item.count])))); + handleTable(tableSpec, response.data, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), `No report found for the Assessment ${name}`); + } + }) .catch((err) => { - printError(`Failed to list assessment "${name}" reports: ${err.status} ${err.message}`, options); - }); + printError(`Failed to list assessment "${name}" reports: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.GetAssessmentReportCommand = class { +export const GetAssessmentReportCommand = class { constructor(program) { this.program = program; } @@ -320,44 +287,38 @@ module.exports.GetAssessmentReportCommand = class { async execute(name, reportId, options) { const profile = await loadProfile(options.profile); debug('%s.GetAssessmentReportCommand()', profile.name); - const client = new Assessments(profile.url); client.getAssessmentReport(profile.token, name, reportId) .then((response) => { - if (response.success === false) throw response; - // TODO remove --query on deprecation - if (options.json || options.query) { - const output = { - name: response.reportId, - assessment: response.assessmentId, - summary: Object.fromEntries(response.summary.map((item) => [item.type, item.count])), - report: response.detail, - _createdAt: response._createdAt, - _createdBy: response._createdBy, - }; - getFilteredOutput(output, options); - } else { - const flattenRefs = _.uniqBy( - _.flatten( - response.detail.map((ref) => ref.sourcePath.map((s) => ({ ...s, projectId: ref._projectId }))), - ), (r) => `${r.name}-${r.type}-${r.projectId}`, - ); - const tableSpec = [ - { column: 'Name', field: 'name' }, - { column: 'Title', field: 'title' }, - { column: 'Resource Type', field: 'type' }, - { column: 'Project', field: 'projectId' }, - ]; - handleTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type']), null, 'No upstream dependencies found'); - } - }) + if (response.success === false) throw response; + // TODO remove --query on deprecation + if (options.json || options.query) { + const output = { + name: response.reportId, + assessment: response.assessmentId, + summary: Object.fromEntries(response.summary.map((item) => [item.type, item.count])), + report: response.detail, + _createdAt: response._createdAt, + _createdBy: response._createdBy, + }; + getFilteredOutput(output, options); + } else { + const flattenRefs = _.uniqBy(_.flatten(response.detail.map((ref) => ref.sourcePath.map((s) => ({ ...s, projectId: ref._projectId })))), (r) => `${r.name}-${r.type}-${r.projectId}`); + const tableSpec = [ + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Resource Type', field: 'type' }, + { column: 'Project', field: 'projectId' }, + ]; + handleTable(tableSpec, _.sortBy(flattenRefs, ['projectId', 'type']), null, 'No upstream dependencies found'); + } + }) .catch((err) => { - printError(`Failed to get assessment "${name}" report "${reportId}": ${err.status} ${err.message}`, options); - }); + printError(`Failed to get assessment "${name}" report "${reportId}": ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExportAssessmentReportCommand = class { +export const ExportAssessmentReportCommand = class { constructor(program) { this.program = program; } @@ -366,7 +327,6 @@ module.exports.ExportAssessmentReportCommand = class { const options = command; const profile = await loadProfile(options.profile); debug('%s.ExportAssessmentReportCommand()', profile.name); - const client = new Assessments(profile.url); client.exportAssessmentReport(profile.token, name, reportId, options.type); } diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index 2a73fbf7..f2cb3c7d 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -1,5 +1,13 @@ +import debugSetup from 'debug'; +import get from 'lodash/get.js'; +import { loadProfile } from '../config.js'; +import ApiServerClient from '../client/apiServerClient.js'; +import Catalog from '../client/catalog.js'; +import { + printSuccess, printError, printTable, handleTable, printExtendedLogs, handleListFailure, getFilteredOutput, +} from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,19 +21,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const ApiServerClient = require('../client/apiServerClient'); -const Catalog = require('../client/catalog'); - -const _ = { get: require('lodash/get') }; -const { - printSuccess, printError, printTable, handleTable, - printExtendedLogs, handleListFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListCampaignsCommand = class ListCampaignsCommand { +const debug = debugSetup('cortex:cli'); +const _ = { get }; +export class ListCampaignsCommand { constructor(program) { this.program = program; } @@ -56,9 +54,8 @@ module.exports.ListCampaignsCommand = class ListCampaignsCommand { handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Campaigns'); } } -}; - -module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { +} +export class DescribeCampaignCommand { constructor(program) { this.program = program; } @@ -68,7 +65,6 @@ module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeCampaign(%s)', profile.name, campaignName); const cli = new ApiServerClient(profile.url); - try { const response = await cli.getCampaign(options.project || profile.project, profile.token, campaignName); getFilteredOutput(response, options); @@ -76,9 +72,8 @@ module.exports.DescribeCampaignCommand = class DescribeCampaignCommand { printError(`Failed to describe campaign: ${err.status} ${err.message}`, options); } } -}; - -module.exports.ExportCampaignCommand = class ExportCampaignCommand { +} +export class ExportCampaignCommand { constructor(program) { this.program = program; } @@ -97,9 +92,8 @@ module.exports.ExportCampaignCommand = class ExportCampaignCommand { printError(`Failed to export Campaign ${campaignName} from project ${project}. Error: ${e}`); } } -}; - -module.exports.ImportCampaignCommand = class ImportCampaignCommand { +} +export class ImportCampaignCommand { constructor(program) { this.program = program; } @@ -109,16 +103,14 @@ module.exports.ImportCampaignCommand = class ImportCampaignCommand { const profile = await loadProfile(options.profile); debug('%s.executeImportCampaignCommand(%s)', profile.name, campaignFilepath); const cli = new Catalog(profile.url); - try { cli.importCampaign(options.project || profile.project, profile.token, campaignFilepath, options.deploy, options.overwrite); } catch (err) { printError(`Failed to import campaign: ${err.status} ${err.message}`, options); } } -}; - -module.exports.DeployCampaignCommand = class DeployCampaignCommand { +} +export class DeployCampaignCommand { constructor(program) { this.program = program; } @@ -128,7 +120,6 @@ module.exports.DeployCampaignCommand = class DeployCampaignCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); - try { cli.deployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { if (response.success === false) throw response; @@ -146,9 +137,8 @@ module.exports.DeployCampaignCommand = class DeployCampaignCommand { printError(`Failed to deploy campaign: ${err.status} ${err.message}`, options); } } -}; - -module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { +} +export class UndeployCampaignCommand { constructor(program) { this.program = program; } @@ -158,7 +148,6 @@ module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { const profile = await loadProfile(options.profile); debug('%s.executeUndeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); - try { cli.undeployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { if (response.success === false) throw response; @@ -176,9 +165,8 @@ module.exports.UndeployCampaignCommand = class UndeployCampaignCommand { printError(`Failed to undeploy campaign: ${err.status} ${err.message}`, options); } } -}; - -module.exports.UndeployMissionCommand = class UndeployMissionCommand { +} +export class UndeployMissionCommand { constructor(program) { this.program = program; } @@ -188,7 +176,6 @@ module.exports.UndeployMissionCommand = class UndeployMissionCommand { const profile = await loadProfile(options.profile); debug('%s.executeUndeployMissionCommand(%s)', profile.name, missionName); const cli = new Catalog(profile.url); - try { cli.undeployMission(options.project || profile.project, profile.token, campaignName, missionName).then((response) => { if (response.success === false) throw response; @@ -201,9 +188,8 @@ module.exports.UndeployMissionCommand = class UndeployMissionCommand { printError(`Failed to undeploy mission: ${err.status} ${err.message}`, options); } } -}; - -module.exports.ListMissionsCommand = class ListMissionsCommand { +} +export class ListMissionsCommand { constructor(program) { this.program = program; } @@ -212,7 +198,6 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { async execute(campaign, cmd) { const options = cmd; const profile = await loadProfile(options.profile); - debug('%s.executeListMissionsCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); try { @@ -241,9 +226,8 @@ module.exports.ListMissionsCommand = class ListMissionsCommand { handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Missions'); } } -}; - -module.exports.DeployMissionCommand = class DeployMissionCommand { +} +export class DeployMissionCommand { constructor(program) { this.program = program; } @@ -253,16 +237,14 @@ module.exports.DeployMissionCommand = class DeployMissionCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { if (response.success === false) throw response; const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); printSuccess(output, options); }).catch((err) => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); } -}; - -module.exports.DescribeMissionCommand = class DescribeMissionCommand { +} +export class DescribeMissionCommand { constructor(program) { this.program = program; } @@ -272,10 +254,9 @@ module.exports.DescribeMissionCommand = class DescribeMissionCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.getMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { if (response.success === false) throw response; printSuccess(JSON.stringify(response.data, null, 2), options); }).catch((err) => printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); } -}; +} diff --git a/src/commands/configure.js b/src/commands/configure.js index 6ba39003..ac26ab00 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -1,5 +1,14 @@ +import debugSetup from 'debug'; +import _ from 'lodash'; +import prompts from 'prompts'; +import chalk from 'chalk'; +import fs from 'node:fs'; +import { + readConfig, defaultConfig, generateJwt, loadProfile, durationRegex, +} from '../config.js'; +import { printSuccess, printError, useColor } from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,30 +22,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const prompts = require('prompts'); -const chalk = require('chalk'); -const fs = require('fs'); - -const { - readConfig, - defaultConfig, - generateJwt, - loadProfile, - durationRegex, -} = require('../config'); -const { printSuccess, printError, useColor } = require('./utils'); - +const debug = debugSetup('cortex:cli'); function _validatePatFile(patFile) { if (!fs.existsSync(patFile)) { printError(`Personal Access Token file does not exist at: ${patFile}`); } return JSON.parse(fs.readFileSync(patFile)); } - -module.exports.ConfigureCommand = class { +export const ConfigureCommand = class { constructor(program) { this.program = program; } @@ -45,28 +38,26 @@ module.exports.ConfigureCommand = class { const { profile, file, project } = options; const config = readConfig(); const profileName = profile || _.get(config, 'currentProfile', 'default'); - debug('configuring profile: %s', profileName); console.log(`Configuring profile ${chalk.green.bold(profileName)}:`); - const cmd = this; - try { - let patData = null; - if (file) { - patData = _validatePatFile(file); - } else { - const { patjson } = await prompts({ - type: 'text', - name: 'patjson', - message: 'Cortex Personal Access Config:', - }); - patData = JSON.parse(patjson); - } - cmd.saveConfig(config, profileName, patData, project); - console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); - } catch (err) { - printError(err); + try { + let patData = null; + if (file) { + patData = _validatePatFile(file); + } else { + const { patjson } = await prompts({ + type: 'text', + name: 'patjson', + message: 'Cortex Personal Access Config:', + }); + patData = JSON.parse(patjson); } + cmd.saveConfig(config, profileName, patData, project); + console.log(`Configuration for profile ${chalk.green.bold(profileName)} saved.`); + } catch (err) { + printError(err); + } } saveConfig(config, profileName, cfg, project) { @@ -76,8 +67,7 @@ module.exports.ConfigureCommand = class { config.save(); } }; - -module.exports.SetProfileCommand = class { +export const SetProfileCommand = class { constructor(program) { this.program = program; } @@ -89,15 +79,12 @@ module.exports.SetProfileCommand = class { printError(`No profile named ${profileName}. Run cortex configure --profile ${profileName} to create it.`, options); return; } - config.currentProfile = profileName; config.save(); - console.log(`Current profile set to ${chalk.green.bold(profileName)}`); } }; - -module.exports.DescribeProfileCommand = class { +export const DescribeProfileCommand = class { constructor(program) { this.program = program; } @@ -108,16 +95,13 @@ module.exports.DescribeProfileCommand = class { printError('Configuration not found. Please run "cortex configure".'); return; } - const profileName = options.profile || config.currentProfile; debug('describing profile: %s', profileName); - const profile = await config.getProfile(profileName); if (profile === undefined) { printError(`No profile named ${profileName}. Run cortex configure --profile ${profileName} to create it.`, options); return; } - printSuccess(`Profile: ${profile.name}`, options); printSuccess(`Cortex URL: ${profile.url}`, options); printSuccess(`Username: ${profile.username}`, options); @@ -125,8 +109,7 @@ module.exports.DescribeProfileCommand = class { printSuccess(`Project: ${profile.project || 'undefined'}`, options); } }; - -module.exports.ListProfilesCommand = class { +export const ListProfilesCommand = class { constructor(program) { this.program = program; } @@ -137,7 +120,6 @@ module.exports.ListProfilesCommand = class { printError('Configuration not found. Please run "cortex configure".', options); return; } - const profiles = Object.keys(config.profiles); profiles.forEach((name) => { if (name === config.currentProfile) { @@ -152,8 +134,7 @@ module.exports.ListProfilesCommand = class { }); } }; - -module.exports.GetAccessToken = class { +export const GetAccessToken = class { constructor(program) { this.program = program; } @@ -169,8 +150,7 @@ module.exports.GetAccessToken = class { return printSuccess(jwt, options); } }; - -module.exports.PrintEnvVars = class { +export const PrintEnvVars = class { constructor(program) { this.program = program; } diff --git a/src/commands/connections.js b/src/commands/connections.js index 7349a12f..eba0cf4b 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -1,36 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Connections = require('../client/connections'); -const Content = require('../client/content'); - +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Connections from '../client/connections.js'; +import Content from '../client/content.js'; +import { + printSuccess, printError, filterObject, parseObject, CONNECTIONTABLEFORMAT, fileExists, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, filterObject, parseObject, CONNECTIONTABLEFORMAT, fileExists, - handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListConnections = class ListConnections { +export class ListConnections { constructor(program) { this.program = program; } @@ -39,7 +21,6 @@ module.exports.ListConnections = class ListConnections { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listConnections()', profile.name); - const conns = new Connections(profile.url); // eslint-disable-next-line consistent-return conns.listConnections(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { @@ -50,94 +31,83 @@ module.exports.ListConnections = class ListConnections { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - CONNECTIONTABLEFORMAT, - result, - (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), - 'No connections found', - ); + handleTable(CONNECTIONTABLEFORMAT, result, (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), 'No connections found'); } } else { return handleListFailure(response, options, 'Connections'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list connections: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.SaveConnectionCommand = class SaveConnectionCommand { +} +export class SaveConnectionCommand { constructor(program) { this.program = program; } - getParamsValue(connectionDefinition, paramName) { - const results = _.filter(_.get(connectionDefinition, 'params', []), (item) => item.name === paramName); - if (results && results.length) { + getParamsValue(connectionDefinition, paramName) { + const results = _.filter(_.get(connectionDefinition, 'params', []), (item) => item.name === paramName); + if (results && results.length) { return results[0].value; - } - return undefined; - } + } + return undefined; + } - stripJarPathFromParams(params) { - return params.filter((item) => item.name !== 'jdbc_jar_file'); - } + stripJarPathFromParams(params) { + return params.filter((item) => item.name !== 'jdbc_jar_file'); + } - async execute(connectionDefinition, options) { - const profile = await loadProfile(options.profile); - debug('%s.executeSaveDefinition(%s)', profile.name, connectionDefinition); + async execute(connectionDefinition, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeSaveDefinition(%s)', profile.name, connectionDefinition); if (!fileExists(connectionDefinition)) { printError(`File does not exist at: ${connectionDefinition}`); } - const connDefStr = fs.readFileSync(connectionDefinition); - const connObj = parseObject(connDefStr, options); - debug('%o', connObj); - - const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); - const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); - - if (jdbcJarFilePath && !jdbcJarFilePath.includes('--Insert jar file path--')) { - const content = new Content(profile.url); - const connection = new Connections(profile.url); - - content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) - .then(() => { - const marshaledConnObj = connObj; - marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); - - connection.saveConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { - if (response.success) { - printSuccess('Connection saved', options); - } else { - printError(`Failed to save connection: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to save connection: ${err.response.body.message}`, options); - }); - }) - .catch((err) => { - printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); - }); - } else { - const connection = new Connections(profile.url); - connection.saveConnection(options.project || profile.project, profile.token, connObj).then((response) => { - if (response.success) { - printSuccess('Connection saved', options); - } else { - printError(`Failed to save connection: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to save connection: ${err.response.body.message}`, options); - }); - } - } -}; - -module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { + const connDefStr = fs.readFileSync(connectionDefinition); + const connObj = parseObject(connDefStr, options); + debug('%o', connObj); + const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); + const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); + if (jdbcJarFilePath && !jdbcJarFilePath.includes('--Insert jar file path--')) { + const content = new Content(profile.url); + const connection = new Connections(profile.url); + content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) + .then(() => { + const marshaledConnObj = connObj; + marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); + connection.saveConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { + if (response.success) { + printSuccess('Connection saved', options); + } else { + printError(`Failed to save connection: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to save connection: ${err.response.body.message}`, options); + }); + }) + .catch((err) => { + printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); + }); + } else { + const connection = new Connections(profile.url); + connection.saveConnection(options.project || profile.project, profile.token, connObj).then((response) => { + if (response.success) { + printSuccess('Connection saved', options); + } else { + printError(`Failed to save connection: ${response.status} ${response.message}`, options); + } + }) + .catch((err) => { + printError(`Failed to save connection: ${err.response.body.message}`, options); + }); + } + } +} +export class DescribeConnectionCommand { constructor(program) { this.program = program; } @@ -145,7 +115,6 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { async execute(connectionName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeConnection(%s)', profile.name, connectionName); - const connection = new Connections(profile.url); connection.describeConnection(options.project || profile.project, profile.token, connectionName).then((response) => { if (response.success) { @@ -154,13 +123,12 @@ module.exports.DescribeConnectionCommand = class DescribeConnectionCommand { printError(`Failed to describe connection ${connectionName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe connection ${connectionName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { +} +export class DeleteConnectionCommand { constructor(program) { this.program = program; } @@ -168,7 +136,6 @@ module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { async execute(connectionName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDeleteConnection(%s)', profile.name, connectionName); - const connection = new Connections(profile.url); connection.deleteConnection(options.project || profile.project, profile.token, connectionName).then((response) => { if (response.success) { @@ -177,13 +144,12 @@ module.exports.DeleteConnectionCommand = class DeleteConnectionCommand { } return handleDeleteFailure(response, options, 'Connection'); }) - .catch((err) => { + .catch((err) => { printError(`Failed to delete connection ${connectionName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.ListConnectionsTypes = class ListConnectionsTypes { +} +export class ListConnectionsTypes { constructor(program) { this.program = program; } @@ -192,7 +158,6 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listConnectionsTypes()', profile.name); - const conns = new Connections(profile.url); // eslint-disable-next-line consistent-return conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort).then((response) => { @@ -216,9 +181,9 @@ module.exports.ListConnectionsTypes = class ListConnectionsTypes { return handleListFailure(response, options, 'Connection-types'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list connection types: ${err.status} ${err.message}`, options); }); } -}; +} diff --git a/src/commands/content.js b/src/commands/content.js index 6fac0bff..2cd895ae 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -1,28 +1,33 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Content = require('../client/content'); -const { - printSuccess, printError, getSourceFiles, humanReadableFileSize, handleTable, - getFilteredOutput, -} = require('./utils'); +import _ from 'lodash'; +import process from 'node:process'; +import fs from 'node:fs'; +import { PromisePool } from '@supercharge/promise-pool'; +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import Content from '../client/content.js'; +import { + printSuccess, printError, getSourceFiles, humanReadableFileSize, handleTable, getFilteredOutput, checkProject, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); + +async function upload(contentClient, profile, options, contentKey, filePath, exit = true) { + if (fs.lstatSync(filePath).isDirectory()) { + printError('Uploads of directories require the option --recursive | -r', options); + } + const showProgress = !!options.progress; + const contentType = _.get(options, 'contentType', 'application/octet-stream'); + const response = await contentClient.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, filePath, showProgress, contentType); + if (response.success) { + printSuccess('Content successfully uploaded.', options); + } else { + const message = `Failed to upload content ${filePath}: ${response.status} ${response.message}`; + printError(message, options, exit); + throw Error(message); // Temp fix to make recursive upload stop uploading, until uploadContentStreaming() throws + } +} -module.exports.ListContent = class ListContent { +export class ListContent { constructor(program) { this.program = program; } @@ -30,7 +35,6 @@ module.exports.ListContent = class ListContent { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listContent()', profile.name); - const content = new Content(profile.url); content.listContent(options.project || profile.project, profile.token, options.prefix).then((response) => { if (response.success) { @@ -45,89 +49,61 @@ module.exports.ListContent = class ListContent { { column: 'Last Modified', field: 'LastModified', width: 30 }, { column: 'Size (bytes)', field: 'Size', width: 20 }, ]; - handleTable(tableSpec, response.message, null, 'No content found'); } } else { printError(`Failed to list content: ${response.status} ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list content: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.UploadContent = class UploadContent { +} +export class UploadContent { constructor(program) { this.program = program; } - async execute(contentKey, filePath, options, cbTest) { + async execute(contentKey, filePath, options) { const profile = await loadProfile(options.profile); + const project = options.project || profile.project; + checkProject(project); debug('%s.uploadContent()', profile.name); - const contentClient = new Content(profile.url); - const chunkSize = parseInt(options.chunkSize, 10); - const upload = _.partial(UploadContent.upload, contentClient, profile, options); - if (options.recursive) { - getSourceFiles(filePath, (err, filesDict) => { - if (err) { - debug(err); - printError(`Failed to upload content: ${err.status} ${err.message}`, options); - } - - const totalBytes = filesDict.reduce((accum, current) => { - console.log(`${humanReadableFileSize(current.size)}\t${current.relative} -> ${contentKey}/${current.relative}`); - return accum + current.size; - }, 0); - console.log(`\nTotal:\n${humanReadableFileSize(totalBytes)}\t${filePath}`); - - debug(`chunksize ${chunkSize}`); - - if (!options.test) { - _.chunk(filesDict, chunkSize) - .reduce((promise, currentChunk) => promise - .then(() => { - debug(`working on chunk of files: ${JSON.stringify(currentChunk)}`); - const promises = currentChunk.map((item) => upload(`${contentKey}/${item.relative}`, item.canonical)); - return Promise.all(promises); - }), Promise.resolve()); - } else { - console.log('Test option set. Nothing uploaded.'); - } - - if (cbTest) { - // for unit tests - cbTest(filesDict); - } - }); - } else { - upload(contentKey, filePath); - } - } - - static upload(contentClient, profile, options, contentKey, filePath) { - const showProgress = !!options.progress; - const contentType = _.get(options, 'contentType', 'application/octet-stream'); - return contentClient.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, filePath, showProgress, contentType).then((response) => { - if (response.success) { - printSuccess('Content successfully uploaded.', options); - } else { - printError(`Failed to upload content: ${response.status} ${response.message}`, options); + const files = getSourceFiles(filePath); + // if (err) { + // debug(err); + // printError(`Failed to upload content: ${err.status} ${err.message}`, options); + // } + const totalBytes = files.reduce((accum, current) => { + console.log(`${humanReadableFileSize(current.size)}\t${current.relative} -> ${contentKey}/${current.relative}`); + return accum + current.size; + }, 0); + console.log(`\nTotal:\n${humanReadableFileSize(totalBytes)}\t${filePath}`); + debug(`chunksize ${chunkSize}`); + if (!options.test) { + return PromisePool + .withConcurrency(chunkSize) + .for(files) + .handleError((err, item, pool) => { + pool.stop(); + process.exit(1); + }) + .process(async (item) => { + // TODO progress + await upload(contentClient, profile, options, `${contentKey}/${item.relative}`, item.canonical, false); + }); } - }) - .catch((err) => { - debug(err); - printError(`Failed to upload content: ${err.status} ${err.message}`, options); - }); + return console.log('Test option set. Nothing uploaded.'); + } + return upload(contentClient, profile, options, contentKey, filePath); } -}; - -module.exports.DeleteContent = class DeleteContent { +} +export class DeleteContent { constructor(program) { this.program = program; } @@ -135,23 +111,21 @@ module.exports.DeleteContent = class DeleteContent { async execute(contentKey, options) { const profile = await loadProfile(options.profile); debug('%s.deleteContent()', profile.name); - const content = new Content(profile.url); content.deleteContent(options.project || profile.project, profile.token, contentKey).then((response) => { if (response.success) { - printSuccess('Content successfully deleted.', options); + printSuccess('Content successfully deleted.', options); } else { printError(`Failed to delete content: ${response.status} ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to delete content: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DownloadContent = class DownloadContent { +} +export class DownloadContent { constructor(program) { this.program = program; } @@ -159,13 +133,11 @@ module.exports.DownloadContent = class DownloadContent { async execute(contentKey, options) { const profile = await loadProfile(options.profile); debug('%s.DownloadContent()', profile.name); - const content = new Content(profile.url); const showProgress = !!options.progress; - content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).catch((err) => { - debug(err); - printError(`Failed to download content: ${err.status} ${err.message}`, options); + debug(err); + printError(`Failed to download content: ${err.message}`, options); }); } -}; +} diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 48b3a791..ec8cd2d9 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -1,5 +1,5 @@ /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,31 +13,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const path = require('path'); -const fs = require('fs'); -const getStream = require('get-stream'); -const yauzl = require('yauzl'); -const yaml = require('js-yaml'); -const { loadProfile } = require('../config'); -const Agents = require('../client/agents'); -const Catalog = require('../client/catalog'); -const Assessments = require('../client/assessments'); -const Connections = require('../client/connections'); -const Experiments = require('../client/experiments'); -const Models = require('../client/models'); -const Actions = require('../client/actions'); -const Content = require('../client/content'); +import _ from 'lodash'; +import debugSetup from 'debug'; +import path from 'path'; +import fs from 'fs'; +import getStream from 'get-stream'; +import * as yauzl from 'yauzl'; +import yaml from 'js-yaml'; +import { loadProfile } from '../config.js'; +import Agents from '../client/agents.js'; +import Catalog from '../client/catalog.js'; +import Assessments from '../client/assessments.js'; +import Connections from '../client/connections.js'; +import Experiments from '../client/experiments.js'; +import Models from '../client/models.js'; +import Actions from '../client/actions.js'; +import Content from '../client/content.js'; +import { + printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, filterObject, +} from './utils.js'; -const _ = { - get: require('lodash/get'), - set: require('lodash/set'), - uniq: require('lodash/uniq'), - size: require('lodash/size'), -}; -const { - printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, filterObject, -} = require('./utils'); +const debug = debugSetup('cortex:cli'); const artifactsDir = '.fabric'; const manifestFile = 'fabric.yaml'; @@ -46,7 +42,6 @@ const manifestMeta = { kind: 'deployment-manifest', cortex: {}, }; - function updateManifest(filepaths) { const manifest = fileExists(manifestFile) ? yaml.load(fs.readFileSync(manifestFile).toString()) : manifestMeta; Object.keys(filepaths).forEach((type) => { @@ -56,7 +51,6 @@ function updateManifest(filepaths) { }); writeToFile(jsonToYaml(manifest), manifestFile); } - async function addDependencies(url, token, project, resourceType, resourceName) { const assessments = new Assessments(url); const dependencies = await assessments.getDependenciesOfResource(token, project, resourceType, resourceName); @@ -71,7 +65,6 @@ async function addDependencies(url, token, project, resourceType, resourceName) } return dependencies; } - const DeployExperimentCommand = class { constructor(program) { this.program = program; @@ -81,13 +74,11 @@ const DeployExperimentCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeployExperimentCommand%s)', profile.name, experimentName); - const manifest = {}; const exports = {}; const experiments = new Experiments(profile.url); const model = new Models(profile.url); const content = new Content(profile.url); - let modelName; let response; response = await experiments.describeExperiment(project, profile.token, experimentName); @@ -97,7 +88,7 @@ const DeployExperimentCommand = class { const filepath = path.join(artifactsDir, 'experiments', `${experimentName}.json`); writeToFile(expDesc, filepath); manifest.experiment = [filepath]; - exports.experiment = experimentName; + // TODO ??? module.exports ??? experimentName; modelName = result.modelId; } else { printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); @@ -112,7 +103,7 @@ const DeployExperimentCommand = class { const filepath = path.join(artifactsDir, 'models', `${modelName}.json`); writeToFile(modelDesc, filepath); manifest.model = [filepath]; - exports.model = modelName; + // TODO ??? module.exports ??? modelName; } else { printError(`Only Published models can be exported. Model ${modelName} is in ${result.status}`); } @@ -142,7 +133,7 @@ const DeployExperimentCommand = class { .map((value) => content.downloadContent(project, profile.token, value, false, path.join(artifactsDir, value)))); } manifest.run = [filepath]; - exports.run = exportRun; + // TODO ??? module.exports ??? exportRun; } else { printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); } @@ -153,9 +144,6 @@ const DeployExperimentCommand = class { printSuccess(`Successfully exported ${JSON.stringify(exports)} in ${artifactsDir} and updated manifest file ${manifestFile}`); } }; - -module.exports.DeployExperimentCommand = DeployExperimentCommand; - const DeployConnectionCommand = class { constructor(program) { this.program = program; @@ -165,7 +153,6 @@ const DeployConnectionCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploymentConnection%s)', profile.name, connectionName); - const connection = new Connections(profile.url); connection.describeConnection(project, profile.token, connectionName).then(async (response) => { if (response.success) { @@ -184,31 +171,7 @@ const DeployConnectionCommand = class { }); } }; - -module.exports.DeployConnectionCommand = DeployConnectionCommand; - -/** - * Cortex deploy command is to export Cortex artifacts (agent, snapshot, skill, action etc) for CI/CD deployment. This command: - * 1. Exports cortex artifacts - * 2. generates manifest files to drive artifacts deployment - * Files are exported/generated in pre-determined layout to support CI/CD deployment - * .fabric - * snapshots - * snapshot1.yaml - * snapshot2.yaml - * agents - * ... - * skills - * ... - * actions - * ... - * fabric.yaml (manifest file) - * - * Currently only exporting agent snapshots. - * - * @type {DeploySnapshotCommand} - */ -module.exports.DeploySnapshotCommand = class { +export const DeploySnapshotCommand = class { constructor(program) { this.program = program; } @@ -252,15 +215,13 @@ module.exports.DeploySnapshotCommand = class { printError(`Failed to export agent snapshot ${snapshotId}: ${err.status} ${err.message}`, options); })); }); - Promise.all(promises).then((result) => { updateManifest({ snapshots: result }); printSuccess(`Successfully updated manifest file ${manifestFile}`); }); } }; - -module.exports.DeployCampaignCommand = class { +export const DeployCampaignCommand = class { constructor(program) { this.program = program; } @@ -292,12 +253,10 @@ module.exports.DeployCampaignCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploymentCampaigns(%s)', profile.name, campaignName); - const catalog = new Catalog(profile.url); await catalog.exportCampaign(project, profile.token, campaignName, options.deployable, `${campaignName}.zip`); const filepaths = {}; const promises = []; - yauzl.open(`${campaignName}.zip`, { lazyEntries: true }, (err, zipfile) => { if (err) { throw err; @@ -324,8 +283,7 @@ module.exports.DeployCampaignCommand = class { }); } }; - -module.exports.DeploySkillCommand = class { +export const DeploySkillCommand = class { constructor(program) { this.program = program; } @@ -334,7 +292,6 @@ module.exports.DeploySkillCommand = class { const profile = await loadProfile(options.profile); const project = options.project || profile.project; debug('%s.exportDeploySkillCommand%s)', profile.name, skillName); - const manifest = {}; const exports = {}; const catalog = new Catalog(profile.url); @@ -348,7 +305,6 @@ module.exports.DeploySkillCommand = class { const filepath = path.join(artifactsDir, 'skills', `${skillName}.json`); writeToFile(skillDesc, filepath); manifest.skill = [filepath]; - exports.skill = skillName; const dependencies = await addDependencies(profile.url, profile.token, project, 'Skill', skillName); // export linked connections of skill const connections = dependencies.data.filter((d) => d.type === 'Connection').map((d) => d.name); @@ -375,7 +331,6 @@ module.exports.DeploySkillCommand = class { } })); manifest.action = actions.map((a) => path.join(artifactsDir, 'actions', `${a}.json`)); - exports.action = actions; } // export types of skill const types = dependencies.data.filter((d) => d.type === 'Type').map((d) => d.name); @@ -390,7 +345,6 @@ module.exports.DeploySkillCommand = class { } })); manifest.type = types.map((a) => path.join(artifactsDir, 'types', `${a}.json`)); - exports.type = types; } updateManifest(manifest); printSuccess(`Successfully exported ${JSON.stringify(Object.assign(exports, mlOps))} in ${artifactsDir} and updated manifest file ${manifestFile}`); @@ -400,3 +354,8 @@ module.exports.DeploySkillCommand = class { }); } }; +export { DeployExperimentCommand as experiment }; +export { DeployExperimentCommand as model }; +export { DeployExperimentCommand as run }; +export { DeployExperimentCommand }; +export { DeployConnectionCommand }; diff --git a/src/commands/docker.js b/src/commands/docker.js index 20124143..9030ded5 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -1,5 +1,9 @@ +import debugSetup from 'debug'; +import URL from 'url-parse'; +import { printSuccess, printError, callMe } from './utils.js'; +import { generateJwt, loadProfile } from '../config.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,17 +17,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -const debug = require('debug')('cortex:cli'); -const URL = require('url-parse'); -const { printSuccess, printError } = require('./utils'); -const { callMe } = require('./utils'); -const { - generateJwt, - loadProfile, -} = require('../config'); - -module.exports.DockerLoginCommand = class { +const debug = debugSetup('cortex:cli'); +export default class DockerLoginCommand { constructor(program) { this.program = program; } @@ -31,7 +26,6 @@ module.exports.DockerLoginCommand = class { async execute(options) { const profile = await loadProfile(options.profile); const ttl = options.ttl || '14d'; - try { // TODO fetch this from new endpoint or maybe store this in the profile?? const registryUrl = (new URL(profile.url)).hostname.replace('api', 'private-registry'); @@ -44,4 +38,4 @@ module.exports.DockerLoginCommand = class { printError(`Failed to docker login: ${err.message || err}`, options); } } -}; +} diff --git a/src/commands/experiments.js b/src/commands/experiments.js index fe727678..ea4c4a00 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -1,36 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const _ = require('lodash'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const duration = require('dayjs/plugin/duration'); -const { loadProfile } = require('../config'); -const Experiments = require('../client/experiments'); -const { - printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, - handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - +import fs from 'node:fs'; +import _ from 'lodash'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import duration from 'dayjs/plugin/duration.js'; +import { loadProfile } from '../config.js'; +import Experiments from '../client/experiments.js'; +import { + printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(duration); dayjs.extend(relativeTime); - class ListExperiments { constructor(program) { this.program = program; @@ -40,7 +22,6 @@ class ListExperiments { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listExperiments()', profile.name); - const exp = new Experiments(profile.url); // eslint-disable-next-line consistent-return exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { @@ -57,20 +38,18 @@ class ListExperiments { { column: 'Version', field: '_version', width: 25 }, { column: 'Description', field: 'description', width: 50 }, ]; - handleTable(tableSpec, result.experiments, null, 'No experiments found'); } } else { return handleListFailure(response, options, 'Experiments'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list experiments: ${err.status} - ${err.message}`, options); }); } } - class DescribeExperimentCommand { constructor(program) { this.program = program; @@ -79,7 +58,6 @@ class DescribeExperimentCommand { async execute(experimentName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeExperiment(%s)', profile.name, experimentName); - const exp = new Experiments(profile.url); exp.describeExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { @@ -88,12 +66,11 @@ class DescribeExperimentCommand { printError(`Failed to describe experiment ${experimentName}: ${response.status} - ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe experiment ${experimentName}: ${err.status} - ${err.message}`, options); }); } } - class DeleteExperimentCommand { constructor(program) { this.program = program; @@ -102,7 +79,6 @@ class DeleteExperimentCommand { async execute(experimentName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDeleteExperiment(%s)', profile.name, experimentName); - const exp = new Experiments(profile.url); exp.deleteExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { if (response.success) { @@ -111,12 +87,11 @@ class DeleteExperimentCommand { } return handleDeleteFailure(response, options, 'Experiment'); }) - .catch((err) => { + .catch((err) => { printError(`Failed to delete experiment ${experimentName}: ${err.status} - ${err.message}`, options); }); } } - class ListRuns { constructor(program) { this.program = program; @@ -126,7 +101,6 @@ class ListRuns { async execute(experimentName, options) { const profile = await loadProfile(options.profile); debug('%s.listRuns()', profile.name); - const exp = new Experiments(profile.url); const sort = options.sort || JSON.stringify({ startTime: -1 }); // eslint-disable-next-line consistent-return @@ -160,13 +134,12 @@ class ListRuns { return handleListFailure(response, options, 'Experiment-runs'); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to list runs: ${err.status} - ${err.message}`, options); }); } } - class DescribeRunCommand { constructor(program) { this.program = program; @@ -175,7 +148,6 @@ class DescribeRunCommand { async execute(experimentName, runId, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeRun(%s)', profile.name, runId); - const exp = new Experiments(profile.url); exp.describeRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { @@ -184,12 +156,11 @@ class DescribeRunCommand { printError(`Failed to describe run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); }); } } - class DeleteRunCommand { constructor(program) { this.program = program; @@ -198,7 +169,6 @@ class DeleteRunCommand { async execute(experimentName, runId, options) { const profile = await loadProfile(options.profile); debug('%s.executeDeleteRun(%s)', profile.name, runId); - const exp = new Experiments(profile.url); exp.deleteRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { if (response.success) { @@ -206,12 +176,11 @@ class DeleteRunCommand { } return handleDeleteFailure(response, options, 'Run'); }) - .catch((err) => { + .catch((err) => { printError(`Failed to delete run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); }); } } - class DownloadArtifactCommand { constructor(program) { this.program = program; @@ -220,7 +189,6 @@ class DownloadArtifactCommand { async execute(experimentName, runId, artifactName, options) { const profile = await loadProfile(options.profile); debug('%s.downloadArtifact(%s)', profile.name, artifactName); - const exp = new Experiments(profile.url); const showProgress = !!options.progress; // To download content from Secrets @@ -230,7 +198,6 @@ class DownloadArtifactCommand { }); } } - class SaveExperimentCommand { constructor(program) { this.program = program; @@ -239,14 +206,12 @@ class SaveExperimentCommand { async execute(experimentDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveExperiment(%s)', profile.name, experimentDefinition); - - if (!fileExists(experimentDefinition)) { + if (!fileExists(experimentDefinition)) { printError(`File does not exist at: ${experimentDefinition}`); } const experimentDefStr = fs.readFileSync(experimentDefinition); const experiment = parseObject(experimentDefStr, options); debug('%o', experiment); - const experiments = new Experiments(profile.url); experiments.saveExperiment(options.project || profile.project, profile.token, experiment).then((response) => { if (response.success) { @@ -266,11 +231,10 @@ class SaveExperimentCommand { } }) .catch((err) => { - printError(`Failed to save experiment: ${err.status} ${err.message}`, options); - }); + printError(`Failed to save experiment: ${err.status} ${err.message}`, options); + }); } } - class CreateRunCommand { constructor(program) { this.program = program; @@ -279,12 +243,11 @@ class CreateRunCommand { async execute(runDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeCreateRun(%s)', profile.name, runDefinition); - if (!fs.existsSync(runDefinition)) { + if (!fs.existsSync(runDefinition)) { printError(`File does not exist at: ${runDefinition}`); } const runDefinitionStr = fs.readFileSync(runDefinition); const run = parseObject(runDefinitionStr, options); - const experiments = new Experiments(profile.url); experiments.createRun(options.project || profile.project, profile.token, run).then((response) => { if (response.success) { @@ -305,11 +268,10 @@ class CreateRunCommand { } }) .catch((err) => { - printError(`Failed to create run: ${err.status} ${err.message}`, options); - }); + printError(`Failed to create run: ${err.status} ${err.message}`, options); + }); } } - class UploadArtifactCommand { constructor(program) { this.program = program; @@ -318,11 +280,8 @@ class UploadArtifactCommand { async execute(experimentName, runId, filePath, artifact, options) { const profile = await loadProfile(options.profile); debug('%s.executeUploadArtifact()', profile.name); - const experiments = new Experiments(profile.url); - const upload = _.partial(UploadArtifactCommand.upload, experiments, profile, options); - upload(filePath, artifact, experimentName, runId); } @@ -336,14 +295,23 @@ class UploadArtifactCommand { printError(`Failed to upload Artifact: ${response.status} ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { debug(err); printError(`Failed to upload Artifact: ${err.status} ${err.message}`, options); }); } } - -module.exports = { +export { ListExperiments }; +export { ListRuns }; +export { DescribeExperimentCommand }; +export { DescribeRunCommand }; +export { DeleteRunCommand }; +export { DeleteExperimentCommand }; +export { DownloadArtifactCommand }; +export { SaveExperimentCommand }; +export { CreateRunCommand }; +export { UploadArtifactCommand }; +export default { ListExperiments, ListRuns, DescribeExperimentCommand, diff --git a/src/commands/models.js b/src/commands/models.js index 0dcfd63a..71d82ec6 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -1,39 +1,23 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const fs = require('fs'); +import fs from 'node:fs'; +import get from 'lodash/get.js'; +import pick from 'lodash/pick.js'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Models from '../client/models.js'; +import Experiments from '../client/experiments.js'; +import { + LISTTABLEFORMAT, RUNTABLEFORMAT, printExtendedLogs, handleListFailure, handleDeleteFailure, printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, getFilteredOutput, +} from './utils.js'; const _ = { - get: require('lodash/get'), - pick: require('lodash/pick'), + get, + pick, }; -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Models = require('../client/models'); -const Experiments = require('../client/experiments'); -const { - LISTTABLEFORMAT, RUNTABLEFORMAT, printExtendedLogs, handleListFailure, handleDeleteFailure, - printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, - getFilteredOutput, -} = require('./utils'); - +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -module.exports.SaveModelCommand = class SaveModelCommand { +export class SaveModelCommand { constructor(program) { this.program = program; } @@ -41,13 +25,12 @@ module.exports.SaveModelCommand = class SaveModelCommand { async execute(modelDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSaveModel(%s)', profile.name, modelDefinition); - if (!fileExists(modelDefinition)) { + if (!fileExists(modelDefinition)) { printError(`File does not exist at: ${modelDefinition}`); } const modelDefStr = fs.readFileSync(modelDefinition); const model = parseObject(modelDefStr, options); debug('%o', model); - const models = new Models(profile.url); models.saveModel(options.project || profile.project, profile.token, model).then((response) => { if (response.success) { @@ -68,12 +51,11 @@ module.exports.SaveModelCommand = class SaveModelCommand { } }) .catch((err) => { - printError(`Failed to save model: ${err.status} ${err.message}`, options); - }); + printError(`Failed to save model: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.ListModelsCommand = class ListModelsCommand { +} +export class ListModelsCommand { constructor(program) { this.program = program; } @@ -92,25 +74,19 @@ module.exports.ListModelsCommand = class ListModelsCommand { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - LISTTABLEFORMAT, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No models found', - ); + handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No models found'); } } else { return handleListFailure(response, options, 'Models'); } }) .catch((err) => { - debug(err); - printError(`Failed to list models: ${err.status} ${err.message}`, options); - }); + debug(err); + printError(`Failed to list models: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.ListModelRunsCommand = class ListModelsCommand { +} +export class ListModelRunsCommand { constructor(program) { this.program = program; } @@ -129,25 +105,20 @@ module.exports.ListModelRunsCommand = class ListModelsCommand { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - RUNTABLEFORMAT, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No runs found', - ); + handleTable(RUNTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No runs found'); } } else { return handleListFailure(response, options, 'Model-runs'); } }) .catch((err) => { - debug(err); - printError(`Failed to list model runs: ${err.status} ${err.message}`, options); - }); + debug(err); + printError(`Failed to list model runs: ${err.status} ${err.message}`, options); + }); } -}; +} -module.exports.DescribeModelCommand = class DescribeModelCommand { +export class DescribeModelCommand { constructor(program) { this.program = program; } @@ -163,13 +134,12 @@ module.exports.DescribeModelCommand = class DescribeModelCommand { printError(`Failed to describe model ${modelName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe model ${modelName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DeleteModelCommand = class { +} +export const DeleteModelCommand = class { constructor(program) { this.program = program; } @@ -180,19 +150,18 @@ module.exports.DeleteModelCommand = class { const models = new Models(profile.url); models.deleteModel(options.project || profile.project, profile.token, modelName) .then((response) => { - if (response && response.success) { - const result = filterObject(response, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Model'); - }) + if (response && response.success) { + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } + return handleDeleteFailure(response, options, 'Model'); + }) .catch((err) => { - printError(`Failed to delete model: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete model: ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UpdateModelStatusCommand = class UpdateModelStatusCommand { +export class UpdateModelStatusCommand { constructor(program) { this.program = program; } @@ -211,16 +180,14 @@ module.exports.UpdateModelStatusCommand = class UpdateModelStatusCommand { printError(`Failed to publish model ${modelName}: ${err.status} ${err.message}`, options); } } -}; - -module.exports.RegisterModelCommand = class RegisterModelCommand { +} +export class RegisterModelCommand { constructor(program) { this.program = program; } async execute(modelDefinition, options) { const profile = await loadProfile(options.profile); - function printErrorDetails(response) { const tableSpec = [ { column: 'Path', field: 'path', width: 50 }, @@ -230,16 +197,12 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { printTable(tableSpec, response.details); printError(''); // Just exit } - const experiments = new Experiments(profile.url); - try { debug('%s.executeRegisterModel(%s)', profile.name, modelDefinition); - const modelDefStr = fs.readFileSync(modelDefinition); const model = parseObject(modelDefStr, options); debug('%o', model); - const saveExperimentResponse = await experiments.saveExperiment(options.project || profile.project, profile.token, model); if (!saveExperimentResponse.success) { if (saveExperimentResponse.details) { @@ -261,10 +224,7 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { } const runId = _.get(saveRunResponse, 'result.runId', ''); const contentType = _.get(options, 'contentType', 'application/octet-stream'); - const uploadArtifactResponse = await experiments.uploadArtifact( - options.project || profile.project, profile.token, - experimentName, runId, model.filePath, model.artifact, contentType, - ); + const uploadArtifactResponse = await experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, model.filePath, model.artifact, contentType); if (uploadArtifactResponse.success) { printSuccess('Artifact successfully uploaded.', options); printSuccess(JSON.stringify(saveRunResponse.result, null, 2), options); @@ -275,4 +235,4 @@ module.exports.RegisterModelCommand = class RegisterModelCommand { printError(`Failed to upload model: ${err.status} ${err.message}`, options); } } -}; +} diff --git a/src/commands/projects.js b/src/commands/projects.js index 70fd9b0e..697d1f78 100644 --- a/src/commands/projects.js +++ b/src/commands/projects.js @@ -1,29 +1,14 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const ApiServerClient = require('../client/apiServerClient'); -const { - printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, - getFilteredOutput, -} = require('./utils'); +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import ApiServerClient from '../client/apiServerClient.js'; +import { + printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, getFilteredOutput, +} from './utils.js'; -module.exports.CreateProjectCommand = class CreateProjectCommand { +const debug = debugSetup('cortex:cli'); +export class CreateProjectCommand { constructor(program) { this.program = program; } @@ -52,9 +37,8 @@ module.exports.CreateProjectCommand = class CreateProjectCommand { printError(`Failed to save project: ${err.message}`, options); } } -}; - -module.exports.ListProjectsCommand = class ListProjectsCommand { +} +export class ListProjectsCommand { constructor(program) { this.program = program; } @@ -85,9 +69,8 @@ module.exports.ListProjectsCommand = class ListProjectsCommand { handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Projects'); } } -}; - -module.exports.DescribeProjectCommand = class DescribeProjectCommand { +} +export class DescribeProjectCommand { constructor(program) { this.program = program; } @@ -97,7 +80,6 @@ module.exports.DescribeProjectCommand = class DescribeProjectCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeProject(%s)', profile.name, projectName); const cli = new ApiServerClient(profile.url); - try { const response = await cli.getProject(profile.token, projectName); getFilteredOutput(response, options); @@ -105,9 +87,8 @@ module.exports.DescribeProjectCommand = class DescribeProjectCommand { printError(`Failed to describe project: ${err.status} ${err.message}`, options); } } -}; - -module.exports.DeleteProjectCommand = class DeleteProjectCommand { +} +export class DeleteProjectCommand { constructor(program) { this.program = program; } @@ -128,4 +109,4 @@ module.exports.DeleteProjectCommand = class DeleteProjectCommand { printError(`Failed to delete project: ${err.message}`, options); } } -}; +} diff --git a/src/commands/roles.js b/src/commands/roles.js index 9c212ec4..da9f2955 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -1,5 +1,11 @@ +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import Roles from '../client/roles.js'; +import { + printSuccess, printError, filterObject, EXTERNALROLESFORMAT, handleTable, getFilteredOutput, +} from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,14 +19,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Roles = require('../client/roles'); -const { - printSuccess, printError, filterObject, EXTERNALROLESFORMAT, handleTable, - getFilteredOutput, -} = require('./utils'); - +const debug = debugSetup('cortex:cli'); function createGrant(options) { return { project: options.project, @@ -29,8 +28,7 @@ function createGrant(options) { effect: options.deny ? 'deny' : 'allow', }; } - -module.exports.RoleDeleteCommand = class { +export const RoleDeleteCommand = class { constructor(program) { this.program = program; } @@ -38,9 +36,7 @@ module.exports.RoleDeleteCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); debug('%s.deleteRole(%s)', profile.name, role); - const client = new Roles(profile.url, role); - client.deleteRole(profile.token).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -50,12 +46,11 @@ module.exports.RoleDeleteCommand = class { } }) .catch((err) => { - printError(`Failed to delete role : ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleCreateCommand = class { +export const RoleCreateCommand = class { constructor(program) { this.program = program; } @@ -65,9 +60,7 @@ module.exports.RoleCreateCommand = class { const form = createGrant(options); form.role = role; debug('%s.createRole(%s)', profile.name); - const client = new Roles(profile.url); - client.createRole(profile.token, form).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -77,12 +70,11 @@ module.exports.RoleCreateCommand = class { } }) .catch((err) => { - printError(`Failed to create role : ${err.status} ${err.message}`, options); - }); + printError(`Failed to create role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleAssignCommand = class { +export const RoleAssignCommand = class { constructor(program) { this.program = program; } @@ -90,15 +82,13 @@ module.exports.RoleAssignCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); debug('%s.grantRole(%s)', profile.name, role); - const client = new Roles(profile.url, role); const call = (deleteFlag, token, users) => { if (deleteFlag) { return client.removeUsersFromRole(token, users); } - return client.addUsersToRole(token, users); + return client.addUsersToRole(token, users); }; - call(options.delete, profile.token, options.users).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -109,13 +99,12 @@ module.exports.RoleAssignCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} user from role : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} user from role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleGrantCommand = class { +export const RoleGrantCommand = class { constructor(program) { this.program = program; } @@ -124,15 +113,13 @@ module.exports.RoleGrantCommand = class { const profile = await loadProfile(options.profile); const form = createGrant(options); debug('%s.grantRole(%s)', profile.name, role); - const client = new Roles(profile.url, role); const call = (deleteFlag, token, body) => { if (deleteFlag) { return client.removeGrantFromRole(token, body); } - return client.createGrantForRole(token, body); + return client.createGrantForRole(token, body); }; - call(options.delete, profile.token, form).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -143,13 +130,12 @@ module.exports.RoleGrantCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'delete' : 'create'; - printError(`Failed to ${func} grant for role : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleDescribeCommand = class { +export const RoleDescribeCommand = class { constructor(program) { this.program = program; } @@ -157,9 +143,7 @@ module.exports.RoleDescribeCommand = class { async execute(role, options) { const profile = await loadProfile(options.profile); debug('%s.describeForRole(%s)', profile.name, role); - const flags = []; - if (options.grants) { flags.push('grants'); } @@ -176,12 +160,11 @@ module.exports.RoleDescribeCommand = class { } }) .catch((err) => { - printError(`Failed to describe role : ${err.status} ${err.message}`, options); - }); + printError(`Failed to describe role : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleListCommand = class { +export const RoleListCommand = class { constructor(program) { this.program = program; } @@ -189,9 +172,7 @@ module.exports.RoleListCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listRole(%s)', profile.name); - const flags = []; - const client = new Roles(profile.url, flags); client.listRoles(profile.token, options.project).then((response) => { if (response.success) { @@ -207,12 +188,11 @@ module.exports.RoleListCommand = class { } }) .catch((err) => { - printError(`Failed to list roles : ${err.status} ${err.message}`, options); - }); + printError(`Failed to list roles : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.RoleProjectAssignCommand = class { +export const RoleProjectAssignCommand = class { constructor(program) { this.program = program; } @@ -220,7 +200,6 @@ module.exports.RoleProjectAssignCommand = class { async execute(project, options) { const profile = await loadProfile(options.profile); debug('%s.assignRoleProject(%s)', profile.name, project); - const client = new Roles(profile.url, null); const call = (deleteFlag, token, assignProject, roles) => { if (deleteFlag) { @@ -228,7 +207,6 @@ module.exports.RoleProjectAssignCommand = class { } return client.addRolesToProject(token, assignProject, roles); }; - call(options.delete, profile.token, project, options.roles).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -239,13 +217,12 @@ module.exports.RoleProjectAssignCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} roles from project : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} roles from project : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExternalGroupListCommand = class { +export const ExternalGroupListCommand = class { constructor(program) { this.program = program; } @@ -253,7 +230,6 @@ module.exports.ExternalGroupListCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listExternalGroup(%s)', profile.name); - const client = new Roles(profile.url, null); client.listExternalGroups(profile.token).then((response) => { if (response.success) { @@ -269,12 +245,11 @@ module.exports.ExternalGroupListCommand = class { } }) .catch((err) => { - printError(`Failed to list external groups : ${err.status} ${err.message}`, options); - }); + printError(`Failed to list external groups : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExternalGroupDescribeCommand = class { +export const ExternalGroupDescribeCommand = class { constructor(program) { this.program = program; } @@ -282,9 +257,7 @@ module.exports.ExternalGroupDescribeCommand = class { async execute(externalGroup, options) { const profile = await loadProfile(options.profile); debug('%s.describeExternalGroup(%s)', profile.name, externalGroup); - const flags = []; - if (options.roles) { flags.push('roles'); } @@ -301,12 +274,11 @@ module.exports.ExternalGroupDescribeCommand = class { } }) .catch((err) => { - printError(`Failed to describe external group : ${err.status} ${err.message}`, options); - }); + printError(`Failed to describe external group : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExternalGroupDeleteCommand = class { +export const ExternalGroupDeleteCommand = class { constructor(program) { this.program = program; } @@ -314,9 +286,7 @@ module.exports.ExternalGroupDeleteCommand = class { async execute(externalGroup, options) { const profile = await loadProfile(options.profile); debug('%s.deleteExternalGroup(%s)', profile.name, externalGroup); - const client = new Roles(profile.url, null); - client.deleteExternalGroup(profile.token, externalGroup).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -326,12 +296,11 @@ module.exports.ExternalGroupDeleteCommand = class { } }) .catch((err) => { - printError(`Failed to delete external group : ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete external group : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ExternalGroupAssignCommand = class { +export const ExternalGroupAssignCommand = class { constructor(program) { this.program = program; } @@ -339,7 +308,6 @@ module.exports.ExternalGroupAssignCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.externalGroupAssign(%s)', profile.name, options.role); - const client = new Roles(profile.url, options.role); const call = (deleteFlag, token, externalGroup) => { if (deleteFlag) { @@ -347,7 +315,6 @@ module.exports.ExternalGroupAssignCommand = class { } return client.addExternalGroupToRole(token, externalGroup); }; - call(options.delete, profile.token, options.externalGroup).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -358,10 +325,8 @@ module.exports.ExternalGroupAssignCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'unassign' : 'assign'; - printError( - `Failed to ${func} external group from role : ${err.status} ${err.message}`, options, - ); - }); + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} external group from role : ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 563d983d..881d6d1d 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -1,33 +1,16 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const getOr = require('lodash/fp/getOr'); -const isUndefined = require('lodash/fp/isUndefined'); -const map = require('lodash/fp/map'); - -const { loadProfile } = require('../config'); -const Secrets = require('../client/secrets'); -const { - printSuccess, printError, filterObject, parseObject, printTable, handleTable, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.ListSecretsCommand = class { +import fs from 'node:fs'; +import debugSetup from 'debug'; +import getOr from 'lodash/fp/getOr.js'; +import isUndefined from 'lodash/fp/isUndefined.js'; +import map from 'lodash/fp/map.js'; +import { loadProfile } from '../config.js'; +import Secrets from '../client/secrets.js'; +import { + printSuccess, printError, filterObject, parseObject, printTable, handleTable, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); +export const ListSecretsCommand = class { constructor(program) { this.program = program; } @@ -35,32 +18,30 @@ module.exports.ListSecretsCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listsecrets(%s)', profile.name); - const secrets = new Secrets(profile.url); secrets.listSecrets(options.project || profile.project, profile.token) .then((response) => { - if (response.success) { - const { result } = response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - const tableSpec = [ - { column: 'Secret Key Name', field: 'keyName', width: 50 }, - ]; - handleTable(tableSpec, map((x) => ({ keyName: x }), result), null, 'No secrets found'); - } + if (response.success) { + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - printError(`Failed to list secrets: ${response.message}`, options); + const tableSpec = [ + { column: 'Secret Key Name', field: 'keyName', width: 50 }, + ]; + handleTable(tableSpec, map((x) => ({ keyName: x }), result), null, 'No secrets found'); } - }) + } else { + printError(`Failed to list secrets: ${response.message}`, options); + } + }) .catch((err) => { - printError(`Failed to list secrets : ${err.status} ${err.message}`, options); - }); + printError(`Failed to list secrets : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.ReadSecretsCommand = class { +export const ReadSecretsCommand = class { constructor(program) { this.program = program; } @@ -68,7 +49,6 @@ module.exports.ReadSecretsCommand = class { async execute(keyName, options) { const profile = await loadProfile(options.profile); debug('%s.readsecret(%s)', profile.name, keyName); - const secrets = new Secrets(profile.url); secrets.readSecret(options.project || profile.project, profile.token, keyName).then((response) => { if (response.success) { @@ -86,12 +66,11 @@ module.exports.ReadSecretsCommand = class { } }) .catch((err) => { - printError(`Failed to read secure secret : ${err.status} ${err.message}`, options); - }); + printError(`Failed to read secure secret : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.WriteSecretsCommand = class { +export const WriteSecretsCommand = class { constructor(program) { this.program = program; } @@ -99,7 +78,6 @@ module.exports.WriteSecretsCommand = class { async execute(keyName, value, options) { const profile = await loadProfile(options.profile); debug('%s.writeSecret(%s)', profile.name, keyName); - let data = value; if (options.data) { try { @@ -111,17 +89,14 @@ module.exports.WriteSecretsCommand = class { const dataStr = fs.readFileSync(options.dataFile); data = parseObject(dataStr, options); } - if (isUndefined(data)) { - return printError('Failed to write secret : no value specified', options); + return printError('Failed to write secret : no value specified', options); } - // FAB-1775: validate secret key name const invalidCharsRegex = /^\w+([./-]?\w+)*$/; if (!invalidCharsRegex.test(keyName)) { return printError(`Failed to write secret : keyName did not conform to regex ${JSON.stringify(invalidCharsRegex)}`, options); } - const secrets = new Secrets(profile.url); return secrets.writeSecret(options.project || profile.project, profile.token, keyName, data).then((response) => { if (response.success) { @@ -129,13 +104,12 @@ module.exports.WriteSecretsCommand = class { } return printError(`Failed to write secret: ${response.status} ${response.message}`, options); }) - .catch((err) => { + .catch((err) => { printError(`Failed to write secret : ${err.status} ${err.message}`, options); }); } }; - -module.exports.DeleteSecretCommand = class { +export const DeleteSecretCommand = class { constructor(program) { this.program = program; } @@ -143,17 +117,19 @@ module.exports.DeleteSecretCommand = class { async execute(keyName, options) { const profile = await loadProfile(options.profile); debug('%s.deleteSecret(%s)', profile.name, keyName); - const secretsClient = new Secrets(profile.url); - secretsClient.deleteSecret(options.project || profile.project, profile.token, keyName).then((response) => { + try { + const response = await secretsClient.deleteSecret(options.project || profile.project, profile.token, keyName); if (response.success) { - const result = filterObject(response.result, options); - return printSuccess(JSON.stringify(result, null, 2), options); + return printSuccess(response?.message ?? response, options); } return handleDeleteFailure(response, options, 'Secret'); - }) - .catch((err) => { - printError(`Failed to delete secure secret : ${err.status} ${err.message}`, options); - }); + } catch (err) { + let message = err?.message; + if (err?.response?.body) { + message = JSON.parse(err?.response?.body)?.message ?? err.message; + } + return printError(`Secret deletion failed: ${err?.response?.statusCode ?? ''} ${message}.`, options); + } } }; diff --git a/src/commands/sessions.js b/src/commands/sessions.js index bef5ff36..2b36ecde 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -1,36 +1,16 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const fs = require('fs'); -const _ = require('lodash'); +import fs from 'node:fs'; +import _ from 'lodash'; +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import Sessions from '../client/sessions.js'; +import { + SESSIONTABLEFORMAT, formatValidationPath, handleListFailure, getFilteredOutput, -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Sessions = require('../client/sessions'); -const { - SESSIONTABLEFORMAT, - formatValidationPath, - handleListFailure, - getFilteredOutput, -} = require('./utils'); + printSuccess, printError, filterObject, parseObject, printTable, handleTable, +} from './utils.js'; -const { - printSuccess, printError, filterObject, parseObject, printTable, handleTable, -} = require('./utils'); - -module.exports.SaveSessionCommand = class SaveSessionCommand { +const debug = debugSetup('cortex:cli'); +export class SaveSessionCommand { constructor(program) { this.program = program; } @@ -44,7 +24,6 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { const sessionDefStr = fs.readFileSync(sessionDefinition); const session = parseObject(sessionDefStr, options); debug('%o', session); - const sessions = new Sessions(profile.url); sessions.saveSession(options.project || profile.project, profile.token, session).then((response) => { if (response.success) { @@ -64,12 +43,11 @@ module.exports.SaveSessionCommand = class SaveSessionCommand { } }) .catch((err) => { - printError(`Failed to save session: ${err.status} ${err.message}`, options); - }); + printError(`Failed to save session: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.ListSessionsCommand = class ListSessionsCommand { +} +export class ListSessionsCommand { constructor(program) { this.program = program; } @@ -90,13 +68,12 @@ module.exports.ListSessionsCommand = class ListSessionsCommand { return handleListFailure(response, options, 'Sessions'); }) .catch((err) => { - debug(err); - printError(`Failed to list sessions: ${err.status} ${err.message}`, options); - }); + debug(err); + printError(`Failed to list sessions: ${err.status} ${err.message}`, options); + }); } -}; - -module.exports.DescribeSessionCommand = class DescribeSessionCommand { +} +export class DescribeSessionCommand { constructor(program) { this.program = program; } @@ -112,13 +89,12 @@ module.exports.DescribeSessionCommand = class DescribeSessionCommand { printError(`Failed to describe session ${sessionName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe session ${sessionName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DeleteSessionCommand = class DeleteSessionCommand { +} +export class DeleteSessionCommand { constructor(program) { this.program = program; } @@ -129,15 +105,15 @@ module.exports.DeleteSessionCommand = class DeleteSessionCommand { const sessions = new Sessions(profile.url); sessions.deleteSession(options.project || profile.project, profile.token, sessionName) .then((response) => { - if (response && response.success) { - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Session deletion failed: ${response.status} ${response.message}.`, options); - } - }) + if (response && response.success) { + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Session deletion failed: ${response.status} ${response.message}.`, options); + } + }) .catch((err) => { - printError(`Failed to delete session: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete session: ${err.status} ${err.message}`, options); + }); } -}; +} diff --git a/src/commands/skills.js b/src/commands/skills.js index 73df064d..d4c7434a 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -1,36 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const _ = require('lodash'); -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Catalog = require('../client/catalog'); -const Agent = require('../client/agents'); +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Catalog from '../client/catalog.js'; +import Agent from '../client/agents.js'; +import { + printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -const { - printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, - LISTTABLEFORMAT, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, - getFilteredOutput, -} = require('./utils'); - -module.exports.SaveSkillCommand = class SaveSkillCommand { +export class SaveSkillCommand { constructor(program) { this.program = program; } @@ -63,7 +45,6 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { const scaleCount = parseInt(options.scaleCount, 10); skill.actions.map((a) => a.scaleCount = scaleCount); } - if (options.podspec) { const paramsStr = fs.readFileSync(options.podspec); const podSpec = parseObject(paramsStr, options); @@ -93,9 +74,8 @@ module.exports.SaveSkillCommand = class SaveSkillCommand { printError(`Failed to save skill: ${_.get(err, 'status', '')} ${_.get(err, 'response.body.error', err.message)}`, options); } } -}; - -module.exports.ListSkillsCommand = class ListSkillsCommand { +} +export class ListSkillsCommand { constructor(program) { this.program = program; } @@ -103,14 +83,11 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListSkills()', profile.name); - const catalog = new Catalog(profile.url); try { const status = !_.get(options, 'nostatus', false); // default show status, if nostatus==true status == false const shared = !_.get(options, 'noshared', false); - const response = await catalog.listSkills( - options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort, - ); + const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort); if (response.success) { let result = response.skills; const tableFormat = LISTTABLEFORMAT; @@ -129,21 +106,15 @@ module.exports.ListSkillsCommand = class ListSkillsCommand { return getFilteredOutput(result, options); } printExtendedLogs(result, options); - return handleTable( - tableFormat, - _.sortBy(result, options.sort ? [] : ['name']), - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No skills found', - ); + return handleTable(tableFormat, _.sortBy(result, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No skills found'); } return handleListFailure(response, options, 'Skills'); } catch (err) { return printError(`Failed to list skills: ${err.status} ${err.message}`, options); } } -}; - -module.exports.DescribeSkillCommand = class DescribeSkillCommand { +} +export class DescribeSkillCommand { constructor(program) { this.program = program; } @@ -151,7 +122,6 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { async execute(skillName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeSkill(%s)', profile.name, skillName); - const catalog = new Catalog(profile.url); try { const response = await catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose, options.output); @@ -161,9 +131,8 @@ module.exports.DescribeSkillCommand = class DescribeSkillCommand { return printError(`Failed to describe skill ${skillName}: ${err.status} ${err.message}`, options); } } -}; - -module.exports.UndeploySkillCommand = class UndeploySkillCommand { +} +export class UndeploySkillCommand { constructor(program) { this.program = program; } @@ -185,31 +154,40 @@ module.exports.UndeploySkillCommand = class UndeploySkillCommand { } })); } -}; - -module.exports.SkillLogsCommand = class SkillLogsCommand { +} +export class SkillLogsCommand { constructor(program) { this.program = program; } async execute(skillName, actionName, options) { - const profile = await loadProfile(options.profile); - debug('%s.executeSkillLogs(%s,%s)', profile.name, skillName, actionName); - const catalog = new Catalog(profile.url); - catalog.skillLogs(options.project || profile.project, profile.token, skillName, actionName, options.verbose).then((response) => { - if (response.success) { + try { + const profile = await loadProfile(options.profile); + debug('%s.executeSkillLogs(%s,%s)', profile.name, skillName, actionName); + + const catalog = new Catalog(profile.url); + const response = await catalog.skillLogs(options.project || profile.project, profile.token, skillName, actionName, options.raw); + + if (options.raw) { + try { + const respJSON = JSON.parse(response); // happens with errors + if (respJSON?.body) { + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${respJSON.body.message}`, options); + } + } catch (err) { + printSuccess(response, options); + } + } else if (response.success) { printSuccess(JSON.stringify(response.logs), options); } else { - printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${response.message}`, options); + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${response.body.message}`, options); } - }) - .catch((err) => { - printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${err.status} ${err.message}`, options); - }); + } catch (err) { + printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${err.status} ${err.message}`, options); + } } -}; - -module.exports.DeploySkillCommand = class DeploySkillCommand { +} +export class DeploySkillCommand { constructor(program) { this.program = program; } @@ -231,9 +209,8 @@ module.exports.DeploySkillCommand = class DeploySkillCommand { } })); } -}; - -module.exports.InvokeSkillCommand = class InvokeSkillCommand { +} +export class InvokeSkillCommand { constructor(program) { this.program = program; } @@ -241,7 +218,6 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { async execute(skillName, inputName, options) { const profile = await loadProfile(options.profile); debug('%s.executeInvokeSkill(%s/%s)', profile.name, skillName, inputName); - let params = {}; if (options.params) { try { @@ -256,7 +232,6 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); } - const agent = new Agent(profile.url); agent.invokeSkill(options.project || profile.project, profile.token, skillName, inputName, params, options.sync).then((response) => { if (response.success) { @@ -267,17 +242,16 @@ module.exports.InvokeSkillCommand = class InvokeSkillCommand { } }) .catch((err) => { - if (err.response && err.response.body) { - debug('Raw error response: %o', err.response.body); - printError(`Failed to invoke skill(${err.status} ${err.message}): ${err.response.body.error}`, options); - } else { - printError(`Failed to invoke skill: ${err.status} ${err.message}`, options); - } - }); + if (err.response && err.response.body) { + debug('Raw error response: %o', err.response.body); + printError(`Failed to invoke skill(${err.status} ${err.message}): ${err.response.body.error}`, options); + } else { + printError(`Failed to invoke skill: ${err.status} ${err.message}`, options); + } + }); } -}; - -module.exports.DeleteSkillCommand = class DeleteSkillCommand { +} +export class DeleteSkillCommand { constructor(program) { this.program = program; } @@ -288,17 +262,17 @@ module.exports.DeleteSkillCommand = class DeleteSkillCommand { const catalog = new Catalog(profile.url); catalog.deleteSkill(options.project || profile.project, profile.token, skillName) .then((response) => { - if (response.success) { - const result = filterObject(response, options); - if (options.json) { - return printSuccess(JSON.stringify(result, null, 2), options); - } - return printSuccess(result.message); + if (response.success) { + const result = filterObject(response, options); + if (options.json) { + return printSuccess(JSON.stringify(result, null, 2), options); } - return handleDeleteFailure(response, options, 'Skill'); - }) + return printSuccess(result.message); + } + return handleDeleteFailure(response, options, 'Skill'); + }) .catch((err) => { - printError(`Failed to delete skill: ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete skill: ${err.status} ${err.message}`, options); + }); } -}; +} diff --git a/src/commands/tasks.js b/src/commands/tasks.js index e3b4725f..82689248 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -1,5 +1,14 @@ +import debugSetup from 'debug'; +import _ from 'lodash'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Tasks from '../client/tasks.js'; +import { + printSuccess, printError, handleTable, printExtendedLogs, getFilteredOutput, +} from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,29 +22,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -const debug = require('debug')('cortex:cli'); -const _ = require('lodash'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Tasks = require('../client/tasks'); -const { - printSuccess, printError, handleTable, printExtendedLogs, - getFilteredOutput, -} = require('./utils'); - +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - const TASK_LIST_TABLE = [ - { column: 'Name', field: 'name', width: 60 }, - { column: 'Activation Id', field: 'activationId', width: 40 }, - { column: 'Skill Name', field: 'skillName', width: 40 }, - { column: 'Status', field: 'state', width: 20 }, - { column: 'Started', field: 'start', width: 25 }, - { column: 'Took', field: 'took', width: 25 }, - ]; - + { column: 'Name', field: 'name', width: 60 }, + { column: 'Activation Id', field: 'activationId', width: 40 }, + { column: 'Skill Name', field: 'skillName', width: 40 }, + { column: 'Status', field: 'state', width: 20 }, + { column: 'Started', field: 'start', width: 25 }, + { column: 'Took', field: 'took', width: 25 }, +]; const SCHED_LIST_TABLE = [ { column: 'Name', field: 'name', width: 60 }, { column: 'Skill Name', field: 'skillName', width: 40 }, @@ -43,8 +39,7 @@ const SCHED_LIST_TABLE = [ { column: 'Started', field: 'start', width: 25 }, { column: 'Schedule', field: 'schedule', width: 12 }, ]; - -module.exports.ListTasksCommand = class { +export const ListTasksCommand = class { constructor(program) { this.program = program; } @@ -68,7 +63,6 @@ module.exports.ListTasksCommand = class { if (_.isEmpty(taskList)) { return printSuccess('No tasks found'); } - // Old response format ["taskName", "taskName",...] if (_.isString(taskList[0])) { taskList = _.map(taskList, (t) => ({ name: t })); @@ -78,7 +72,7 @@ module.exports.ListTasksCommand = class { } taskList = _.map(taskList, (t) => ({ ...t, - state: t.status || t.state, // remap just in case.. + state: t.status || t.state, start: t.startTime ? dayjs(t.startTime).fromNow() : '-', took: t.endTime ? dayjs(t.endTime).from(dayjs(t.startTime), true) : '-', })); @@ -110,8 +104,7 @@ module.exports.ListTasksCommand = class { } } }; - -module.exports.DescribeTaskCommand = class { +export const DescribeTaskCommand = class { constructor(program) { this.program = program; } @@ -120,7 +113,6 @@ module.exports.DescribeTaskCommand = class { const profile = await loadProfile(options.profile); const queryParams = {}; debug('%s.describeTask(%s)', profile.name, taskName); - if (options.k8s) queryParams.k8s = true; const tasks = new Tasks(profile.url); try { @@ -134,8 +126,7 @@ module.exports.DescribeTaskCommand = class { } } }; - -module.exports.TaskLogsCommand = class TaskLogsCommand { +export class TaskLogsCommand { constructor(program) { this.program = program; } @@ -154,9 +145,8 @@ module.exports.TaskLogsCommand = class TaskLogsCommand { return printError(`Failed to query Task Logs "${taskName}": ${err.status} ${err.message}`, options); } } -}; - -module.exports.TaskDeleteCommand = class TaskDeleteCommand { +} +export class TaskDeleteCommand { constructor(program) { this.program = program; } @@ -175,9 +165,8 @@ module.exports.TaskDeleteCommand = class TaskDeleteCommand { return printError(`Error deleting ${taskName}: ${err.status} ${err.message}`, options); } } -}; - -module.exports.TaskPauseCommand = class TaskPauseCommand { +} +export class TaskPauseCommand { constructor(program) { this.program = program; } @@ -198,28 +187,26 @@ module.exports.TaskPauseCommand = class TaskPauseCommand { return printError(`Error pausing "${taskNames.join(',')}": ${err.status} ${err.message}`, options); } } -}; - -module.exports.TaskResumeCommand = class TaskResumeCommand { - constructor(program) { - this.program = program; - } +} +export class TaskResumeCommand { + constructor(program) { + this.program = program; + } - async execute(taskNames, options) { - const profile = await loadProfile(options.profile); - debug('%s.executeResumeTask(%s)', profile.name, taskNames.join(',')); - const tasks = new Tasks(profile.url); - try { - return Promise.all(taskNames.map(async (taskName) => { - const response = await tasks.resumeTask(options.project || profile.project, profile.token, taskName, options.verbose); - if (response.success) { - return printSuccess(JSON.stringify(response), options); - } - return printError(`Failed to resume task "${taskName}": ${response.message}`, options); - })); - } catch (err) { - return printError(`Error resume tasks "${taskNames.join(',')}": ${err.status} ${err.message}`, options); - } + async execute(taskNames, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeResumeTask(%s)', profile.name, taskNames.join(',')); + const tasks = new Tasks(profile.url); + try { + return Promise.all(taskNames.map(async (taskName) => { + const response = await tasks.resumeTask(options.project || profile.project, profile.token, taskName, options.verbose); + if (response.success) { + return printSuccess(JSON.stringify(response), options); + } + return printError(`Failed to resume task "${taskName}": ${response.message}`, options); + })); + } catch (err) { + return printError(`Error resume tasks "${taskNames.join(',')}": ${err.status} ${err.message}`, options); } -}; - + } +} diff --git a/src/commands/types.js b/src/commands/types.js index ff85e3b7..9cebb6b9 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -1,37 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const fs = require('fs'); -const debug = require('debug')('cortex:cli'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { loadProfile } = require('../config'); -const Catalog = require('../client/catalog'); -const { - LISTTABLEFORMAT, filterObject, printExtendedLogs, handleListFailure, - getFilteredOutput, -} = require('./utils'); - -const { - printSuccess, printError, parseObject, handleTable, -} = require('./utils'); - +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Catalog from '../client/catalog.js'; +import { + LISTTABLEFORMAT, filterObject, printExtendedLogs, handleListFailure, getFilteredOutput, + + printSuccess, printError, parseObject, handleTable, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); dayjs.extend(relativeTime); - -module.exports.SaveTypeCommand = class SaveTypeCommand { +export class SaveTypeCommand { constructor(program) { this.program = program; } @@ -43,11 +24,9 @@ module.exports.SaveTypeCommand = class SaveTypeCommand { const typeDefStr = fs.readFileSync(typeDefinition); const type = parseObject(typeDefStr, options); debug('%o', type); - let normalizedType = {}; if (!('types' in type)) normalizedType.types = [type]; else normalizedType = type; - const catalog = new Catalog(profile.url); const response = await catalog.saveType(options.project || profile.project, profile.token, normalizedType); if (response.success) { @@ -58,9 +37,8 @@ module.exports.SaveTypeCommand = class SaveTypeCommand { return printError(`Failed to save type: ${err.status} ${err.message}`, options); } } -}; - -module.exports.ListTypesCommand = class ListTypesCommand { +} +export class ListTypesCommand { constructor(program) { this.program = program; } @@ -69,7 +47,6 @@ module.exports.ListTypesCommand = class ListTypesCommand { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListTypes()', profile.name); - const catalog = new Catalog(profile.url); // eslint-disable-next-line consistent-return catalog.listTypes(options.project || profile.project, profile.token, options.limit, options.skip, options.sort).then((response) => { @@ -80,24 +57,18 @@ module.exports.ListTypesCommand = class ListTypesCommand { getFilteredOutput(result, options); } else { printExtendedLogs(result, options); - handleTable( - LISTTABLEFORMAT, - result, - (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), - 'No types found', - ); + handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No types found'); } } else { return handleListFailure(response, options, 'Types'); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to list types: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DescribeTypeCommand = class DescribeTypeCommand { +} +export class DescribeTypeCommand { constructor(program) { this.program = program; } @@ -105,7 +76,6 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { async execute(typeName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribeType(%s)', profile.name, typeName); - const catalog = new Catalog(profile.url); catalog.describeType(options.project || profile.project, profile.token, typeName).then((response) => { if (response.success) { @@ -114,13 +84,12 @@ module.exports.DescribeTypeCommand = class DescribeTypeCommand { printError(`Failed to describe type ${typeName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to describe type ${typeName}: ${err.status} ${err.message}`, options); }); } -}; - -module.exports.DeleteTypeCommand = class DeleteTypeCommand { +} +export class DeleteTypeCommand { constructor(program) { this.program = program; } @@ -128,7 +97,6 @@ module.exports.DeleteTypeCommand = class DeleteTypeCommand { async execute(typeName, options) { const profile = await loadProfile(options.profile); debug('%s.executeDeleteType(%s)', profile.name, typeName); - const catalog = new Catalog(profile.url); catalog.deleteType(options.project || profile.project, profile.token, typeName).then((response) => { if (response.success) { @@ -138,8 +106,8 @@ module.exports.DeleteTypeCommand = class DeleteTypeCommand { printError(`Failed to delete type ${typeName}: ${response.message}`, options); } }) - .catch((err) => { + .catch((err) => { printError(`Failed to delete type ${typeName}: ${err.status} ${err.message}`, options); }); } -}; +} diff --git a/src/commands/users.js b/src/commands/users.js index 55a17d1b..f8d28537 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -1,5 +1,11 @@ +import debugSetup from 'debug'; +import { loadProfile } from '../config.js'; +import Users from '../client/users.js'; +import { + printSuccess, printError, printWarning, filterObject, handleTable, getFilteredOutput, +} from './utils.js'; /* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. + * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. @@ -13,14 +19,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = require('debug')('cortex:cli'); -const { loadProfile } = require('../config'); -const Users = require('../client/users'); -const { - printSuccess, printError, filterObject, handleTable, - getFilteredOutput, -} = require('./utils'); - +const debug = debugSetup('cortex:cli'); function createGrant(options) { return { project: options.project, @@ -29,8 +28,7 @@ function createGrant(options) { effect: options.deny ? 'deny' : 'allow', }; } - -module.exports.UserGrantCommand = class { +export const UserGrantCommand = class { constructor(program) { this.program = program; } @@ -44,9 +42,8 @@ module.exports.UserGrantCommand = class { if (deleteFlag) { return client.removeGrantFromUser(token, body); } - return client.createGrantForUser(token, body); + return client.createGrantForUser(token, body); }; - call(options.delete, profile.token, form).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -57,13 +54,12 @@ module.exports.UserGrantCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'delete' : 'create'; - printError(`Failed to ${func} grant for user : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'delete' : 'create'; + printError(`Failed to ${func} grant for user : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UserDeleteCommand = class { +export const UserDeleteCommand = class { constructor(program) { this.program = program; } @@ -71,7 +67,6 @@ module.exports.UserDeleteCommand = class { async execute(user, options) { const profile = await loadProfile(options.profile); debug('%s.deleteServiceUser(%s)', profile.name, user); - const client = new Users(profile.url, user); client.deleteServiceUser(profile.token, user).then((response) => { if (response.success) { @@ -82,12 +77,11 @@ module.exports.UserDeleteCommand = class { } }) .catch((err) => { - printError(`Failed to delete user : ${err.status} ${err.message}`, options); - }); + printError(`Failed to delete user : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UserCreateCommand = class { +export const UserCreateCommand = class { constructor(program) { this.program = program; } @@ -95,7 +89,6 @@ module.exports.UserCreateCommand = class { async execute(user, options) { const profile = await loadProfile(options.profile); debug('%s.createServiceUser(%s)', profile.name, user); - const client = new Users(profile.url, user); client.createServiceUser(profile.token, user).then((response) => { if (response.success) { @@ -106,12 +99,11 @@ module.exports.UserCreateCommand = class { } }) .catch((err) => { - printError(`Failed to create user : ${err.status} ${err.message}`, options); - }); + printError(`Failed to create user : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UserListCommand = class { +export const UserListCommand = class { constructor(program) { this.program = program; } @@ -119,7 +111,6 @@ module.exports.UserListCommand = class { async execute(options) { const profile = await loadProfile(options.profile); debug('%s.listServiceUsers', profile.name); - const client = new Users(profile.url, 'self'); client.listServiceUsers(profile.token).then((response) => { if (response.success) { @@ -135,44 +126,47 @@ module.exports.UserListCommand = class { } }) .catch((err) => { - printError(`Failed to list service users : ${err.status} ${err.message}`, options); - }); + printError(`Failed to list service users : ${err.status} ${err.message}`, options); + }); } }; - -module.exports.UserDescribeCommand = class { +export const UserDescribeCommand = class { constructor(program) { this.program = program; } - async execute(options) { + async execute(cliUser, options) { const profile = await loadProfile(options.profile); debug('%s.describeForUser(%s)', profile.name, options.user || 'self'); - const flags = []; - if (options.grants) { flags.push('grants'); } if (options.roles) { flags.push('roles'); } - const client = new Users(profile.url, options.user, flags); - client.describeUser(profile.token).then((response) => { + if (options?.user !== undefined && cliUser !== undefined) { + printError('Bad options: --user <user> and <user> are mutually exclusive,', options); + } + const user = options?.user ?? cliUser; + if (user === undefined) { + printWarning('Defaulting to user from cortex profile', options); + } + const client = new Users(profile.url, user, flags); + try { + const response = await client.describeUser(profile.token); if (response.success) { const result = filterObject(response.result, options); printSuccess(JSON.stringify(result, null, 2), options); } else { printError(`Failed to describe user : ${response.message}`, options); } - }) - .catch((err) => { - printError(`Failed to describe user : ${err.status} ${err.message}`, options); - }); + } catch (err) { + printError(`Failed to describe user : ${err.status} ${err.message}`, options); + } } }; - -module.exports.UserProjectAssignCommand = class { +export const UserProjectAssignCommand = class { constructor(program) { this.program = program; } @@ -180,7 +174,6 @@ module.exports.UserProjectAssignCommand = class { async execute(project, options) { const profile = await loadProfile(options.profile); debug('%s.assignUserProject(%s)', profile.name, project); - const client = new Users(profile.url, null); const call = (deleteFlag, token, assignProject, users) => { if (deleteFlag) { @@ -188,7 +181,6 @@ module.exports.UserProjectAssignCommand = class { } return client.addUsersToProject(token, assignProject, users); }; - call(options.delete, profile.token, project, options.users).then((response) => { if (response.success) { const result = filterObject(response.result, options); @@ -199,8 +191,8 @@ module.exports.UserProjectAssignCommand = class { } }) .catch((err) => { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} users from project : ${err.status} ${err.message}`, options); - }); + const func = (options.delete) ? 'unassign' : 'assign'; + printError(`Failed to ${func} users from project : ${err.status} ${err.message}`, options); + }); } }; diff --git a/src/commands/utils.js b/src/commands/utils.js index 4dad0e1a..ae8434e8 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -1,40 +1,103 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const Table = require('cli-table3'); -const _ = require('lodash'); -const { boolean } = require('boolean'); -const chalk = require('chalk'); -const debug = require('debug')('cortex:cli'); -const fs = require('fs'); -const glob = require('glob'); -const jmsepath = require('jmespath'); -const path = require('path'); -const yaml = require('js-yaml'); -const { exec } = require('child_process'); - +import Table from 'cli-table3'; +import _ from 'lodash'; +import { boolean } from 'boolean'; +import chalk from 'chalk'; +import debugSetup from 'debug'; +import fs from 'node:fs'; +import process from 'node:process'; +import { globSync } from 'glob'; +import * as jmsepath from 'jmespath'; +import path from 'node:path'; +import yaml from 'js-yaml'; +import { exec } from 'child_process'; + +const debug = debugSetup('cortex:cli'); const MAX_NAME_LENGTH = 20; - const space = /\s+/; const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/; const beginAndEndWithHyphen = /^[-]+|[-]+$/; -const vaildationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; +const validationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; const nameRequirementMessage = 'You must provide a name for the skill.'; +export function useColor(options) { + return boolean(options?.color); +} -module.exports.constructError = (error) => { +export const printExtendedLogs = (data, options) => { + if (options.limit && Array.isArray(data) && data.length === Number(options.limit) && options.limit !== '0') { + // don't log if showing all the results + process.stderr.write(`Results limited to ${options.limit} rows\n`); + } +}; + +export function printError(message, options = { color: true }, exitProgram = true) { + if (useColor(options)) { + console.error(chalk.red(message)); + } else { + console.error(message); + } + if (exitProgram) { + process.exit(1); + } +} +function _extractValues(fields, obj) { + const rv = []; + fields.forEach((f) => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null) ? obj[f].toString() : '-')); + return rv; +} +/** + * Execute a sub command, return stdout on success, return stderr on failure + * @param commandStr + * @returns {Promise<*>} + */ +// eslint-disable-next-line require-await +export async function callMe(commandStr) { + return new Promise((resolve, reject) => { + const proc = exec(commandStr, (err, stdout) => { + if (err) { + reject(Error(err.message + stdout)); + } else { + resolve(stdout); + } + }); + // Pipe stdout to stderr in real time: + proc.stdout.pipe(process.stderr); + }); +} +function round(value, precision) { + const multiplier = 10 ** (precision || 0); + return Math.floor(value * multiplier) / multiplier; +} +function formatServiceInputParameter(inputParameter) { + if (inputParameter.type === 'array') { + return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}<${inputParameter.format}>`); + } + return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); +} +// connections get returns createdAt (not prefixed by _) field that cause saving exported connection to fail. Hence removing them manually +const systemFields = ['createdAt', 'updatedAt', 'createdBy', 'updatedBy']; +// Alternatively, we can use fs.rmdirSync(<path>, {recursive: true}), but that requires node v12+ +const deleteFolderRecursive = (filepath) => { + try { + if (fs.existsSync(filepath)) { + if (fs.lstatSync(filepath).isDirectory()) { + fs.readdirSync(filepath).forEach((file) => { + const curPath = path.join(filepath, file); + if (fs.lstatSync(curPath).isDirectory()) { // recurse + deleteFolderRecursive(curPath); + } else { // delete file + fs.unlinkSync(curPath); + } + }); + fs.rmdirSync(filepath); + } else { + fs.unlinkSync(filepath); + } + } + } catch (e) { + console.error(chalk.red(e.message)); + } +}; +export const constructError = (error) => { // fallback to text in message or standard error message const errResp = error.response; let errorText = _.get(errResp, 'body'); @@ -59,55 +122,33 @@ module.exports.constructError = (error) => { success: false, message: errorText, details, status, }; }; - -function useColor(options) { - return boolean(_.get(options, 'color')); -} -module.exports.useColor = useColor; - -module.exports.printSuccess = (message, options) => { +export const printSuccess = (message, options) => { if (useColor(options)) { console.log(chalk.green(message)); } else { console.log(message); } }; - -module.exports.printWarning = (message, options) => { +export const printWarning = (message, options) => { if (useColor(options)) { - console.log(chalk.yellow(message)); + console.warn(chalk.yellow(message)); } else { - console.log(message); + console.warn(message); } }; - -function printError(message, options, exit = true) { - if (useColor(options)) { - console.error(chalk.red(message)); - } else { - console.error(message); - } - if (exit) { - process.exit(1); - } -} -module.exports.printError = printError; - -// eslint-disable-next-line consistent-return -module.exports.filterObject = (obj, options) => { +export function filterObject(obj, options) { try { if (options.query) { debug(`filtering results with query: ${options.query}`); return jmsepath.search(obj, options.query); } - return obj; } catch (e) { // TODO remove --query on deprecation process.stderr.write(`error: invalid argument: ${options.query} \n`); } -}; - -module.exports.getQueryOptions = (options) => { + return obj; +} +export const getQueryOptions = (options) => { // TODO remove --query on deprecation if (options.query) process.stderr.write('[DEPRECATION WARNING] --query\n'); if (options.query && options.json && typeof (options.json) === 'string') process.stderr.write('Warning! --query overrides --json args\n'); @@ -117,96 +158,49 @@ module.exports.getQueryOptions = (options) => { // set searchPath to null if there's no path return { query: queryOptions === true ? null : queryOptions }; }; - -module.exports.getFilteredOutput = (result, options) => { - const filteredResult = this.filterObject(result, this.getQueryOptions(options)); +export const getFilteredOutput = (result, options) => { + const filteredResult = filterObject(result, getQueryOptions(options)); if (filteredResult) { // print extended logs iff --query arg is valid - this.printExtendedLogs(filteredResult, options); - this.printSuccess(JSON.stringify(filteredResult, null, 2), options); + printExtendedLogs(filteredResult, options); + printSuccess(JSON.stringify(filteredResult, null, 2), options); } }; - -module.exports.filterListObject = (obj, options) => { +export function filterListObject(obj, options) { const { map, pick, partialRight } = _; if (options.query) { debug(`filtering results with query: ${options.query}`); return map(obj, partialRight(pick, options.query.split(','))); } return obj; -}; - -// YAML 1.2 parses both yaml & json -module.exports.parseObject = (str) => yaml.load(str); - -function _extractValues(fields, obj) { - const rv = []; - fields.forEach((f) => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null) ? obj[f].toString() : '-')); - return rv; } - -module.exports.printTable = (spec, objects, transform) => { - transform = transform || function (obj) { return obj; }; - +export const parseObject = (str) => yaml.load(str); +export function printTable(spec, objects, transform) { + const fn = transform ?? ((obj) => obj); const head = spec.map((s) => s.column); const colWidths = spec.map((s) => s.width); const fields = spec.map((s) => s.field); - const values = objects.map((obj) => _extractValues(fields, transform(obj))); + const values = objects.map((obj) => _extractValues(fields, fn(obj))); debug('printing fields: %o', fields); - const table = new Table({ head, colWidths, style: { head: ['cyan'] } }); values.forEach((v) => table.push(v)); - console.log(table.toString()); -}; - -/** - * Execute a sub command, return stdout on success, return stderr on failure - * @param commandStr - * @returns {Promise<*>} - */ -// eslint-disable-next-line require-await -async function callMe(commandStr) { - return new Promise((resolve, reject) => { - const proc = exec(commandStr, (err, stdout) => { - if (err) { - reject(err.message + stdout); - } else { - resolve(stdout); - } - }); - // Pipe stdout to stderr in real time: - proc.stdout.pipe(process.stderr); - }); } -module.exports.callMe = callMe; - -module.exports.getSourceFiles = (source, cb) => { +export function getSourceFiles(source) { const options = { silent: true }; const normalizedSource = (source.endsWith('/')) ? source : `${source}/`; const normalizedPath = path.posix.join(normalizedSource, '**', '*'); - glob(normalizedPath, options, (err, files) => { - // files is an array of filenames. - if (err) { - cb(err, null); - } else { - const results = files.filter((fpath) => fs.lstatSync(fpath).isFile()).map((fpath) => ({ - canonical: fpath, - relative: path.relative(normalizedSource, fpath), - size: fs.lstatSync(fpath).size, - })); - cb(null, results); - } - }); -}; - -function round(value, precision) { - const multiplier = 10 ** (precision || 0); - return Math.floor(value * multiplier) / multiplier; + const files = globSync(normalizedPath, options); + // files is an array of filenames. + return files.filter((fpath) => fs.lstatSync(fpath).isFile()).map((fpath) => ({ + canonical: fpath, + relative: path.relative(normalizedSource, fpath), + size: fs.lstatSync(fpath).size, + })); } -module.exports.humanReadableFileSize = (sizeInBytes) => { +export const humanReadableFileSize = (sizeInBytes) => { const ranges = { K: 10 ** 3, M: 10 ** 6, @@ -215,33 +209,25 @@ module.exports.humanReadableFileSize = (sizeInBytes) => { }; if (sizeInBytes < ranges.K) { return `${sizeInBytes}B`; - } if (sizeInBytes < ranges.M) { + } + if (sizeInBytes < ranges.M) { return `${round(sizeInBytes / ranges.K, 1)}K`; - } if (sizeInBytes < ranges.G) { + } + if (sizeInBytes < ranges.G) { return `${round(sizeInBytes / ranges.M, 1)}M`; - } if (sizeInBytes < ranges.T) { + } + if (sizeInBytes < ranges.T) { return `${round(sizeInBytes / ranges.G, 1)}G`; } return sizeInBytes; // Umm fix logic }; - -function formatServiceInputParameter(inputParameter) { - if (inputParameter.type === 'array') { - return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}<${inputParameter.format}>`); - } - - return (`-Name: ${inputParameter.name}, Type: ${inputParameter.type}`); -} - -module.exports.formatAllServiceInputParameters = (allParameters) => { +export const formatAllServiceInputParameters = (allParameters) => { if (allParameters.$ref != null) { return `$ref:${allParameters.$ref}`; } - return allParameters.map((inputParameters) => formatServiceInputParameter(inputParameters)).join('\n'); }; - -module.exports.countLinesInFile = (filePath) => new Promise((resolve, reject) => { +export const countLinesInFile = (filePath) => new Promise((resolve, reject) => { // Bug ... this code ignores the final line that does not end with a new line ... thats why leftovers was added // eslint-disable-next-line implicit-arrow-linebreak let count = 0; @@ -249,18 +235,18 @@ module.exports.countLinesInFile = (filePath) => new Promise((resolve, reject) => fs.createReadStream(filePath) .on('error', (e) => reject(e)) .on('data', (chunk) => { - for (let i = 0; i < chunk.length; i += 1) { - if (chunk[i] === 10) { - count += 1; - leftovers = false; - } else { - leftovers = true; - } + for (let i = 0; i < chunk.length; i += 1) { + if (chunk[i] === 10) { + count += 1; + leftovers = false; + } else { + leftovers = true; } - }) + } + }) .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); }); -module.exports.formatValidationPath = (p) => { +export const formatValidationPath = (p) => { let cnt = 0; let res = ''; const len = p.length; @@ -274,174 +260,126 @@ module.exports.formatValidationPath = (p) => { }); return res; }; - -// connections get returns createdAt (not prefixed by _) field that cause saving exported connection to fail. Hence removing them manually -const systemFields = ['createdAt', 'updatedAt', 'createdBy', 'updatedBy']; -module.exports.cleanInternalFields = (jsobj) => JSON.stringify(jsobj, (a, obj) => { +export const cleanInternalFields = (jsobj) => JSON.stringify(jsobj, (a, obj) => { if (a.startsWith('_') || systemFields.includes(a)) { return undefined; } return obj; }, 2); - -module.exports.jsonToYaml = (json) => { +export const jsonToYaml = (json) => { if (typeof json === 'string') { json = JSON.parse(json); } return yaml.dump(json); }; - -module.exports.createFileStream = (filepath) => { +export const createFileStream = (filepath) => { const dir = path.dirname(filepath); if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } return fs.createWriteStream(filepath); }; - -module.exports.writeToFile = (content, filepath) => { +export const writeToFile = (content, filepath) => { const dir = path.dirname(filepath); if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } - fs.writeFileSync(filepath, content); }; - -module.exports.fileExists = (filepath) => fs.existsSync(filepath); - -// Alternatively, we can use fs.rmdirSync(<path>, {recursive: true}), but that requires node v12+ -const deleteFolderRecursive = (filepath) => { - try { - if (fs.existsSync(filepath)) { - if (fs.lstatSync(filepath).isDirectory()) { - fs.readdirSync(filepath).forEach((file) => { - const curPath = path.join(filepath, file); - if (fs.lstatSync(curPath).isDirectory()) { // recurse - deleteFolderRecursive(curPath); - } else { // delete file - fs.unlinkSync(curPath); - } - }); - fs.rmdirSync(filepath); - } else { - fs.unlinkSync(filepath); - } - } - } catch (e) { - console.error(chalk.red(e.message)); - } -}; - -module.exports.deleteFile = deleteFolderRecursive; - -module.exports.checkProject = (projectId) => { +export const fileExists = (filepath) => fs.existsSync(filepath); +export const checkProject = (projectId) => { if (_.isEmpty(projectId)) { printError('\'project\' is required, please provide using \'cortex configure\' or --project'); } }; - -module.exports.LISTTABLEFORMAT = [ +export const LISTTABLEFORMAT = [ { column: 'Name', field: 'name', width: 30 }, { column: 'Title', field: 'title', width: 40 }, { column: 'Description', field: 'description', width: 50 }, { column: 'Modified', field: 'updatedAt', width: 26 }, { column: 'Author', field: 'createdBy', width: 25 }, ]; - -module.exports.DEPENDENCYTABLEFORMAT = [ +export const DEPENDENCYTABLEFORMAT = [ { column: 'Dependency Name', field: 'name', width: 60 }, { column: 'Dependency Type', field: 'type', width: 40 }, ]; - -module.exports.OPTIONSTABLEFORMAT = [ +export const OPTIONSTABLEFORMAT = [ { column: 'Option Type', field: 'type', width: 20 }, { column: 'Message', field: 'message', width: 120 }, ]; - -module.exports.RUNTABLEFORMAT = [ +export const RUNTABLEFORMAT = [ { column: 'Run ID', field: 'runId', width: 30 }, { column: 'Experiment Name', field: 'experimentName', width: 40 }, { column: 'Took', field: 'took', width: 50 }, { column: 'Modified', field: '_updatedAt', width: 26 }, ]; -module.exports.SESSIONTABLEFORMAT = [ +export const SESSIONTABLEFORMAT = [ { column: 'Session ID', field: 'sessionId', width: 45 }, { column: 'TTL', field: 'ttl', width: 15 }, { column: 'Description', field: 'description', width: 70 }, ]; - -module.exports.isNumeric = (value) => /^-?\d+$/.test(value); - -module.exports.CONNECTIONTABLEFORMAT = [ +export const isNumeric = (value) => /^-?\d+$/.test(value); +export const CONNECTIONTABLEFORMAT = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 50 }, { column: 'Description', field: 'description', width: 50 }, { column: 'Connection Type', field: 'connectionType', width: 25 }, { column: 'Created On', field: 'createdAt', width: 26 }, ]; - -module.exports.EXTERNALROLESFORMAT = [ +export const EXTERNALROLESFORMAT = [ { column: 'Group', field: 'group' }, { column: 'Roles', field: 'roles' }, ]; - -module.exports.generateNameFromTitle = (title) => title.replace(specialCharsExceptHyphen, '') +export const generateNameFromTitle = (title) => title.replace(specialCharsExceptHyphen, '') .replace(space, '-') .replace(beginAndEndWithHyphen, '') .substr(0, MAX_NAME_LENGTH) .replace(beginAndEndWithHyphen, '') .toLowerCase(); - -module.exports.hasUppercase = (s) => /[A-Z]/.test(s); - -module.exports.validateName = (name) => (space.test(name) +export const hasUppercase = (s) => /[A-Z]/.test(s); +export const validateName = (name) => (space.test(name) || specialCharsExceptHyphen.test(name) || beginAndEndWithHyphen.test(name) || (!name) || (name && name.length > MAX_NAME_LENGTH) - || module.exports.hasUppercase(name) + || hasUppercase(name) ? { status: false, - message: name ? vaildationErrorMessage : nameRequirementMessage, + message: name ? validationErrorMessage : nameRequirementMessage, } : { status: true, message: '', }); - -module.exports.handleTable = (spec, data, transformer, noDataMessage) => { +export const handleTable = (spec, data, transformer, noDataMessage) => { if (!data || data.length === 0) { - this.printSuccess(noDataMessage); + printSuccess(noDataMessage); } else { - this.printTable(spec, data, transformer); - } -}; - -module.exports.printExtendedLogs = (data, options) => { - if (options.limit && Array.isArray(data) && data.length === Number(options.limit) && options.limit !== '0') { - // don't log if showing all the results - process.stderr.write(`Results limited to ${options.limit} rows\n`); + printTable(spec, data, transformer); } }; -module.exports.handleListFailure = (response, options, type) => { +export const handleListFailure = (response, options, type) => { if (response.status === 400) { - const optionTableFormat = this.OPTIONSTABLEFORMAT; + const optionTableFormat = OPTIONSTABLEFORMAT; printError(`${type} list failed.`, options, false); - this.printTable(optionTableFormat, response.details); + if (response.details !== undefined && response.details !== null) { + printTable(optionTableFormat, response.details); + } else { + printError(response.message, options); + } printError(''); // Just exit } return printError(`Failed to list ${type}: ${response.status} ${response.message}`, options); }; - -module.exports.handleDeleteFailure = (response, options, type) => { +export const handleDeleteFailure = (response, options, type) => { if (response.status === 403) { // has dependencies - const tableFormat = this.DEPENDENCYTABLEFORMAT; + const tableFormat = DEPENDENCYTABLEFORMAT; printError(`${type} deletion failed: ${response.message}.`, options, false); - this.printTable(tableFormat, response.details); + printTable(tableFormat, response.details); return printError(''); // Just exit } const defaultErrorMessage = `${type} deletion failed: ${response.status} ${response.message}.`; return printError(defaultErrorMessage, options); }; +export { deleteFolderRecursive as deleteFile }; diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index 61d42fa2..e6bd5127 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -1,244 +1,198 @@ -const fs = require('fs'); -const path = require('path'); -const glob = require('glob'); -const Docker = require('dockerode'); -const cliProgress = require('cli-progress'); -const { BarFormat } = require('cli-progress').Format; -const debug = require('debug')('cortex:cli'); -const { printError, printSuccess } = require('../utils'); - -const _ = { - get: require('lodash/get'), - groupBy: require('lodash/groupBy'), - orderBy: require('lodash/orderBy'), - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - template: require('lodash/template'), - isEmpty: require('lodash/isEmpty'), - set: require('lodash/set'), - mean: require('lodash/mean'), -}; - -const { getSkillInfo, buildImageTag } = require('./workspace-utils'); -const { loadProfile } = require('../../config'); +import _ from 'lodash'; +import fs from 'node:fs'; +import path from 'node:path'; +import { globSync } from 'glob'; +import Docker from 'dockerode'; +import cliProgress from 'cli-progress'; +import { printError, printSuccess } from '../utils.js'; +import { getSkillInfo, buildImageTag } from './workspace-utils.js'; +import { loadProfile } from '../../config.js'; + +const { BarFormat } = cliProgress.Format; class DockerBuildProgressTracker { - constructor(data) { - this.layers = { download: {}, extract: {} }; - this.downloaded = 0; - this.extracted = 0; - this.streamData = ''; - this.eventData = data || ''; - - this.bars = new cliProgress.MultiBar({ - clearOnComplete: false, - hideCursor: true, - format: (opts, params, payload) => this.statusFormatter(opts, params, payload), - }, cliProgress.Presets.shades_grey); - - this.sectionBar = this.bars.create(0, 0, { type: 'section' }); - this.dlBar = this.bars.create(100, 0, { type: 'download' }); - this.exBar = this.bars.create(100, 0, { type: 'extract' }); - this.statusBar = this.bars.create(0, 0, { type: 'status' }); - } - - statusFormatter(barOpts, params, payload) { - switch (payload.type) { - case 'download': - if (params.progress >= 1) { - return 'Downloading: Complete'; - } - return `Downloading: [${BarFormat(params.progress, barOpts)}]`; - case 'extract': - if (params.progress >= 1) { - return 'Extracting: Complete'; - } - return `Extracting: [${BarFormat(params.progress, barOpts)}]`; - case 'status': - return `Status: ${this.streamData.trim()}`; - case 'section': - return `Building: ${this.eventData || ''}`; - default: - return ''; - } - } - - updateProgress() { - this.sectionBar.update(null); - this.dlBar.update(this.downloaded); - this.exBar.update(this.extracted); - this.statusBar.update(null); - } - - stop() { - this.bars.stop(); - } - - complete() { - this.downloaded = 100; - this.extracted = 100; - this.updateProgress(); - } - - processEvent(evt, data) { - const { progressDetail } = evt; - let { status, id } = evt; - - status = status || ''; - id = id || ''; - - if (data) { - this.eventData = data; + constructor(data) { + this.layers = { download: {}, extract: {} }; + this.downloaded = 0; + this.extracted = 0; + this.streamData = ''; + this.eventData = data || ''; + this.bars = new cliProgress.MultiBar({ + clearOnComplete: false, + hideCursor: true, + format: (opts, params, payload) => this.statusFormatter(opts, params, payload), + }, cliProgress.Presets.shades_grey); + this.sectionBar = this.bars.create(0, 0, { type: 'section' }); + this.dlBar = this.bars.create(100, 0, { type: 'download' }); + this.exBar = this.bars.create(100, 0, { type: 'extract' }); + this.statusBar = this.bars.create(0, 0, { type: 'status' }); } - if (evt.stream) { - const newStr = evt.stream.replace(/\n|\r/g, ''); - if (newStr) { - this.streamData = newStr; - } - } - - if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { - this.downloaded = 100; - this.extracted = 100; - } - - if (status === 'Pulling fs layer') { - this.layers.download[id] = { progress: 0 }; - this.layers.extract[id] = { progress: 0 }; - } - - if (status === 'Downloading' && this.layers.download[id]) { - this.layers.download[id].progress = progressDetail.current / progressDetail.total || 0; + statusFormatter(barOpts, params, payload) { + switch (payload.type) { + case 'download': + if (params.progress >= 1) { + return 'Downloading: Complete'; + } + return `Downloading: [${BarFormat(params.progress, barOpts)}]`; + case 'extract': + if (params.progress >= 1) { + return 'Extracting: Complete'; + } + return `Extracting: [${BarFormat(params.progress, barOpts)}]`; + case 'status': + return `Status: ${this.streamData.trim()}`; + case 'section': + return `Building: ${this.eventData || ''}`; + default: + return ''; + } } - if (status === 'Extracting' && this.layers.extract[id]) { - this.layers.extract[id].progress = progressDetail.current / progressDetail.total || 0; + updateProgress() { + this.sectionBar.update(null); + this.dlBar.update(this.downloaded); + this.exBar.update(this.extracted); + this.statusBar.update(null); } - if (status === 'Download complete' && this.layers.download[id]) { - this.layers.download[id].progress = 1; + stop() { + this.bars.stop(); } - if (status === 'Pull complete' && this.layers.extract[id]) { - this.layers.extract[id].progress = 1; + complete() { + this.downloaded = 100; + this.extracted = 100; + this.updateProgress(); } - if (status === 'Already exists' && this.layers.download[id] && this.layers.extract[id]) { - this.layers.download[id].progress = 1; - this.layers.extract[id].progress = 1; + processEvent(evt, data) { + const { progressDetail } = evt; + let { status, id } = evt; + status = status || ''; + id = id || ''; + if (data) { + this.eventData = data; + } + if (evt.stream) { + const newStr = evt.stream.replace(/\n|\r/g, ''); + if (newStr) { + this.streamData = newStr; + } + } + if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { + this.downloaded = 100; + this.extracted = 100; + } + if (status === 'Pulling fs layer') { + this.layers.download[id] = { progress: 0 }; + this.layers.extract[id] = { progress: 0 }; + } + if (status === 'Downloading' && this.layers.download[id]) { + this.layers.download[id].progress = progressDetail.current / progressDetail.total || 0; + } + if (status === 'Extracting' && this.layers.extract[id]) { + this.layers.extract[id].progress = progressDetail.current / progressDetail.total || 0; + } + if (status === 'Download complete' && this.layers.download[id]) { + this.layers.download[id].progress = 1; + } + if (status === 'Pull complete' && this.layers.extract[id]) { + this.layers.extract[id].progress = 1; + } + if (status === 'Already exists' && this.layers.download[id] && this.layers.extract[id]) { + this.layers.download[id].progress = 1; + this.layers.extract[id].progress = 1; + } + const dlmap = _.map(this.layers.download, 'progress'); + const exmap = _.map(this.layers.extract, 'progress'); + this.downloaded = Math.round(100 * _.mean(dlmap)); + this.extracted = Math.round(100 * _.mean(exmap)); + return this.updateProgress(); } - - const dlmap = _.map(this.layers.download, 'progress'); - const exmap = _.map(this.layers.extract, 'progress'); - - this.downloaded = Math.round(100 * _.mean(dlmap)); - this.extracted = Math.round(100 * _.mean(exmap)); - - return this.updateProgress(); - } } +export default class WorkspaceBuildCommand { + constructor(program) { + this.program = program; + } -module.exports.WorkspaceBuildCommand = class WorkspaceBuildCommand { - constructor(program) { - this.program = program; - } - - async buildAction(target, action, status, options) { - const actionPath = path.join(target, 'actions', action.name); - const expectedDockerfile = path.join(actionPath, 'Dockerfile'); - try { - if (!fs.existsSync(expectedDockerfile)) { - throw Error(`Unable to build action '${action.name}': Missing Dockerfile '${expectedDockerfile}', \nCheck that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); - } - const globList = glob.sync('./**/*', { - root: actionPath, - absolute: true, - }); - - const buildList = _.map(globList, (g) => path.posix.join(...(path.relative(actionPath, g)).split(path.sep))); - const docker = new Docker(); - const imageTag = await buildImageTag(this.profile, action.image); - const stream = await docker.buildImage( - { - context: actionPath, - src: buildList, - }, - { t: imageTag }, - ); - - return new Promise((resolve, reject) => { + async buildAction(target, action, status, options) { + const actionPath = path.join(target, 'actions', action.name); + const expectedDockerfile = path.join(actionPath, 'Dockerfile'); try { - docker.modem.followProgress( - stream, - (err) => { - if (err) { - return reject(err); - } - status.complete(); - return resolve(true); - }, - (evt) => { - if (evt.error) { - reject(evt.error); - return; - } - status.processEvent(evt); - }, - ); + if (!fs.existsSync(expectedDockerfile)) { + throw Error(`Unable to build action '${action.name}': Missing Dockerfile '${expectedDockerfile}', \nCheck that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); + } + const globList = globSync('./**/*', { + cwd: actionPath, + absolute: true, + }); + const buildList = _.map(globList, (g) => path.posix.join(...(path.relative(actionPath, g)).split(path.sep))); + const docker = new Docker(); + const imageTag = await buildImageTag(this.profile, action.image); + const stream = await docker.buildImage({ + context: actionPath, + src: buildList, + }, { t: imageTag }); + return new Promise((resolve, reject) => { + try { + docker.modem.followProgress(stream, (err) => { + if (err) { + return reject(err); + } + status.complete(); + return resolve(true); + }, (evt) => { + if (evt.error) { + reject(evt.error); + return; + } + status.processEvent(evt); + }); + } catch (err) { + printError(`${expectedDockerfile}:\n\t ${err.message}`, options); + reject(err); + } + }); } catch (err) { - printError(`${expectedDockerfile}:\n\t ${err.message}`, options); - reject(err); + printError(`${expectedDockerfile}:\n\t ${err.message}`, options); + return Promise.reject(err); } - }); - } catch (err) { - printError(`${expectedDockerfile}:\n\t ${err.message}`, options); - return Promise.reject(err); } - } - - async execute(folder, options) { - this.options = options; - let target = process.cwd(); - this.profile = await loadProfile(options.profile); - try { - if (folder) { - const fldr = folder.replace(/'|"/g, ''); - target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); - } - if (options.skill) { - target = path.join(target, 'skills', options.skill, 'skill.yaml'); - if (!fs.existsSync(target)) { - throw new Error(`Skill ${options.skill} not found!`); - } - } - - const skillInfo = await getSkillInfo(target); - - if (skillInfo.length > 0) { - const skillNameList = _.map(skillInfo, 'skill.name'); - const status = new DockerBuildProgressTracker(skillNameList.join(', ')); + async execute(folder, options) { + this.options = options; + let target = process.cwd(); + this.profile = await loadProfile(options.profile); try { - await Promise.all(_.map(skillInfo, (info) => { - const actions = info.skill.actions ? info.skill.actions : []; - return Promise.all(_.map(actions, (action) => this.buildAction( - path.dirname(info.uri), - action, - status, - options, - ))); - })); - } finally { - status.stop(); + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + if (!fs.existsSync(target)) { + throw new Error(`Skill ${options.skill} not found!`); + } + } + const skillInfo = await getSkillInfo(target); + if (skillInfo.length > 0) { + const skillNameList = _.map(skillInfo, 'skill.name'); + const status = new DockerBuildProgressTracker(skillNameList.join(', ')); + try { + await Promise.all(_.map(skillInfo, (info) => { + const actions = info.skill.actions ? info.skill.actions : []; + return Promise.all(_.map(actions, (action) => this.buildAction(path.dirname(info.uri), action, status, options))); + })); + } finally { + status.stop(); + } + printSuccess('Build Complete', options); + } else { + printSuccess('No skills found', options); + } + } catch (err) { + printError(`Build Failed: ${err.message}`, options); } - printSuccess('Build Complete', options); - } else { - printSuccess('No skills found', options); - } - } catch (err) { - printError(`Build Failed: ${err.message}`, options); } - } -}; +} diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index fb7c344d..4b03f545 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -1,165 +1,135 @@ -const inquirer = require('inquirer'); -const chalk = require('chalk'); -const got = require('got'); -const open = require('open'); -const dayjs = require('dayjs'); -const relativeTime = require('dayjs/plugin/relativeTime'); -const { validateToken, persistToken } = require('./workspace-utils'); - -const _ = { - get: require('lodash/get'), - groupBy: require('lodash/groupBy'), - orderBy: require('lodash/orderBy'), - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - template: require('lodash/template'), - isEmpty: require('lodash/isEmpty'), - set: require('lodash/set'), - mean: require('lodash/mean'), -}; - -const { readConfig } = require('../../config'); -const { printSuccess, printError, useColor } = require('../utils'); +import _ from 'lodash'; +import inquirer from 'inquirer'; +import chalk from 'chalk'; +// eslint-disable-next-line import/no-unresolved +import got from 'got'; +import open from 'open'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { validateToken, persistToken } from './workspace-utils.js'; +import { readConfig } from '../../config.js'; +import { printSuccess, printError, useColor } from '../utils.js'; dayjs.extend(relativeTime); - const GITHUB_APP_CLIENTID = 'Iv1.e0e84c2a5fa7c935'; const DEFAULT_TEMPLATE_REPO = 'CognitiveScale/cortex-code-templates'; const DEFAULT_TEMPLATE_BRANCH = 'main'; - const GITHUB_DEVICECODE_REQUEST_URL = 'https://github.com/login/device/code'; const GITHUB_DEVICECODE_RESPONSE_URL = 'https://github.com/login/oauth/access_token'; -module.exports.WorkspaceConfigureCommand = class WorkspaceConfigureCommand { - constructor(program) { - this.program = program; - } - - async execute(opts) { - this.options = opts; - try { - const config = readConfig(); - const currentProfile = config.profiles[config.currentProfile]; - - console.log(`Configuring workspaces for profile ${chalk.green(config.currentProfile)}`); - - const answers = await inquirer.prompt([ - { - type: 'input', - name: 'repo', - message: 'Template Repository URL: ', - default: _.get(currentProfile, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), - }, - { - type: 'input', - name: 'branch', - message: 'Template Repository Branch:', - default: _.get(currentProfile, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), - }, - ]); - const githubToken = await validateToken(); - - if (!githubToken && !this.options.refresh) { - printError('Current Github credentials invalid. Reauthorization required.', this.options, false); - } - - if (!githubToken || this.options.refresh) { - const { body: deviceCode } = await got.post(GITHUB_DEVICECODE_REQUEST_URL, { - json: { - client_id: GITHUB_APP_CLIENTID, - }, - responseType: 'json', - headers: { - Accept: 'application/json', - }, - }); - - if (deviceCode) { - console.log(`Opening browser at ${deviceCode.verification_uri}`); - await open(deviceCode.verification_uri); - - await new Promise((resolve, reject) => { - let expiry = deviceCode.expires_in; - let pollInterval = deviceCode.interval; - let accessToken; - - const mom = dayjs().add(expiry, 'seconds'); - - (function poller(options) { - process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${useColor(options) - ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) - : deviceCode.user_code - } ${dayjs(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); - - const pollTimer = setTimeout(async () => { - const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { - json: { +export default class WorkspaceConfigureCommand { + constructor(program) { + this.program = program; + } + + async execute(opts) { + this.options = opts; + try { + const config = readConfig(); + const currentProfile = config.profiles[config.currentProfile]; + console.log(`Configuring workspaces for profile ${chalk.green(config.currentProfile)}`); + const answers = await inquirer.prompt([ + { + type: 'input', + name: 'repo', + message: 'Template Repository URL: ', + default: _.get(currentProfile, 'templateConfig.repo', DEFAULT_TEMPLATE_REPO), + }, + { + type: 'input', + name: 'branch', + message: 'Template Repository Branch:', + default: _.get(currentProfile, 'templateConfig.branch', DEFAULT_TEMPLATE_BRANCH), + }, + ]); + const githubToken = await validateToken(); + if (!githubToken && !this.options.refresh) { + printError('Current Github credentials invalid. Reauthorization required.', this.options, false); + } + if (!githubToken || this.options.refresh) { + const { body: deviceCode } = await got.post(GITHUB_DEVICECODE_REQUEST_URL, { + json: { client_id: GITHUB_APP_CLIENTID, - device_code: deviceCode.device_code, - grant_type: 'urn:ietf:params:oauth:grant-type:device_code', - }, - responseType: 'json', - headers: { + }, + responseType: 'json', + headers: { Accept: 'application/json', - }, + }, + }); + if (deviceCode) { + console.log(`Opening browser at ${deviceCode.verification_uri}`); + await open(deviceCode.verification_uri); + await new Promise((resolve, reject) => { + let expiry = deviceCode.expires_in; + let pollInterval = deviceCode.interval; + let accessToken; + const mom = dayjs().add(expiry, 'seconds'); + (function poller(options) { + process.stdout.write(`\x1b[0GPlease enter the following code to authorize the Cortex CLI: ${useColor(options) + ? chalk.bgBlackBright.whiteBright(`[ ${deviceCode.user_code} ]`) + : deviceCode.user_code} ${dayjs(mom.diff()).format(' [( Expires in] mm [minutes and] ss [seconds ) - CTRL-C to abort]')}`); + const pollTimer = setTimeout(async () => { + const { body } = await got.post(GITHUB_DEVICECODE_RESPONSE_URL, { + json: { + client_id: GITHUB_APP_CLIENTID, + device_code: deviceCode.device_code, + grant_type: 'urn:ietf:params:oauth:grant-type:device_code', + }, + responseType: 'json', + headers: { + Accept: 'application/json', + }, + }); + accessToken = body; + if (accessToken.access_token) { + clearTimeout(pollTimer); + persistToken(accessToken); + config.profiles[config.currentProfile].templateConfig = answers; + config.save(); + printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); + resolve(); + } else { + switch (accessToken.error) { + case 'authorization_pending': + expiry = Math.max(expiry - pollInterval, 0); + break; + case 'slow_down': + pollInterval += 5; + break; + case 'expired_token': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); + reject(); + return; + case 'incorrect_device_code': + printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); + reject(); + return; + case 'access_denied': + clearInterval(pollTimer); + printError('\x1b[0G\x1b[2KAccess denied by user.', options); + reject(); + return; + default: + clearInterval(pollTimer); + printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); + reject(); + return; + } + poller(options); + } + }, (pollInterval) * 1000); + }(this.options)); }); - accessToken = body; - - if (accessToken.access_token) { - clearTimeout(pollTimer); - persistToken(accessToken); - config.profiles[config.currentProfile].templateConfig = answers; - config.save(); - printSuccess('\x1b[0G\x1b[2KGithub token configuration successful.', options); - resolve(); - } else { - switch (accessToken.error) { - case 'authorization_pending': - expiry = Math.max(expiry - pollInterval, 0); - break; - - case 'slow_down': - pollInterval += 5; - break; - - case 'expired_token': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess code entry expired. Please re-run configure and try again.', options); - reject(); - return; - - case 'incorrect_device_code': - printError('\x1b[0G\x1b[2KIncorrect Device Code entered.', options); - reject(); - return; - - case 'access_denied': - clearInterval(pollTimer); - printError('\x1b[0G\x1b[2KAccess denied by user.', options); - reject(); - return; - - default: - clearInterval(pollTimer); - printError(`\x1b[0G\x1b[2KAuthorization error: ${accessToken.error}. Please re-run configure and try again.`, options); - reject(); - return; - } - poller(options); - } - }, (pollInterval) * 1000); - }(this.options)); - }); + } else { + printError('\x1b[2KDevice Code request failed. Please try again.', this.options); + } } else { - printError('\x1b[2KDevice Code request failed. Please try again.', this.options); + config.profiles[config.currentProfile].templateConfig = answers; + config.save(); } - } else { - config.profiles[config.currentProfile].templateConfig = answers; - config.save(); - } - } catch (error) { - printError(error.message, this.options); - } - } -}; + } catch (error) { + printError(error.message, this.options); + } + } +} diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index 041fb58f..774e04fa 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -1,245 +1,185 @@ -const fs = require('fs'); -const path = require('path'); -const URL = require('url-parse'); -const { - mkdir, writeFile, -} = require('fs/promises'); -const minimatch = require('minimatch'); -const inquirer = require('inquirer'); -const ghGot = require('gh-got'); -const { isText } = require('istextorbinary'); -const treeify = require('treeify'); -const { boolean } = require('boolean'); - -const _ = { - get: require('lodash/get'), - groupBy: require('lodash/groupBy'), - orderBy: require('lodash/orderBy'), - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - template: require('lodash/template'), - isEmpty: require('lodash/isEmpty'), - set: require('lodash/set'), - mean: require('lodash/mean'), - find: require('lodash/find'), - drop: require('lodash/drop'), -}; - -const { WorkspaceConfigureCommand } = require('./configure'); - -const { readConfig, loadProfile } = require('../../config'); -const { - printToTerminal, - validateToken, -} = require('./workspace-utils'); - -const { - printSuccess, - printError, - validateName, - generateNameFromTitle, -} = require('../utils'); +import fs from 'node:fs'; +import path from 'path'; +import URL from 'url-parse'; +import { mkdir, writeFile } from 'fs/promises'; +import minimatch from 'minimatch'; +import inquirer from 'inquirer'; +import ghGot from 'gh-got'; +import { isText } from 'istextorbinary'; +import treeify from 'treeify'; +import { boolean } from 'boolean'; +import _ from 'lodash'; +import WorkspaceConfigureCommand from './configure.js'; +import { readConfig, loadProfile } from '../../config.js'; +import { printToTerminal, validateToken } from './workspace-utils.js'; +import { + printSuccess, printError, validateName, generateNameFromTitle, +} from '../utils.js'; const METADATA_FILENAME = 'metadata.json'; - -module.exports.WorkspaceGenerateCommand = class WorkspaceGenerateCommand { - constructor(program) { - this.program = program; - } - - async loadTemplateTree({ repo, branch }) { - printToTerminal('\x1b[0G\x1b[2KLoading templates...'); - - this.gitRepo = repo; - this.branch = branch; - - this.authorization = this.githubToken; - - this.tree = await ghGot(`repos/${repo}/branches/${branch || 'main'}`, { - headers: { authorization: this.authorization }, - }) - .then((resp) => resp.body) - .then((resp) => ghGot(`repos/${repo}/git/trees/${resp.commit.sha}?recursive=true`, { - headers: { authorization: this.authorization }, - })) - .then((resp) => resp.body.tree) - .catch(() => []); - - printToTerminal('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); - } - - globTree(glob) { - const filterFunc = minimatch.filter(glob, { matchBase: true }); - return _.filter(this.tree, (f) => f.type === 'blob' && filterFunc(f.path)); - } - - async readFile(filePath) { - const response = await ghGot(`repos/${this.gitRepo}/contents/${filePath}?ref=${this.branch}`, { - headers: { authorization: this.authorization }, - }); - return Buffer.from(response.body.content, 'base64'); - } - - async getRegistry() { - const profile = await loadProfile(this.options.profile); - - const registryUrl = _.get(this, 'options.registry') - || _.get(profile, `registries['${profile.currentRegistry}'].url`) - || (new URL(profile.url)).hostname.replace('api', 'private-registry'); - - return registryUrl; - } - - async selectTemplate(templateName) { - const registryUrl = await this.getRegistry(); - const fileNames = this.globTree(METADATA_FILENAME); - - const choices = await Promise.all(_.map(fileNames, async (value) => { - const data = JSON.parse((await this.readFile(value.path)).toString()); - return { - name: data.title, - value: { ...data, path: value.path }, - }; - })); - - let template; - - if (templateName) { - const templateChoice = _.find(choices, { name: templateName }); - if (templateChoice) { - template = templateChoice.value; - } else { - printError(`Template ${templateName} not found!`); - } +export default class WorkspaceGenerateCommand { + constructor(program) { + this.program = program; } - const answers = await inquirer.prompt([ - { - type: 'list', - name: 'template', - message: 'Select the template you want to use:', - choices, - }, - { - type: 'input', - name: 'name', - message: 'Enter a name for the skill:', - validate: (answer) => { - const validation = validateName(answer); - return validation.status || validation.message; - }, - }, - ], { - name: this.name, - registry: registryUrl, - template, - }).catch(() => { }); - - return answers; - } - - async execute(name, destination, options) { - this.options = options; - this.name = name; - this.destination = destination; - - this.config = readConfig(); - this.githubToken = await validateToken(); - - const destinationPath = path.resolve(destination || process.cwd()); - - if (!this.githubToken) { - printError( - this.config.profiles[this.config.currentProfile].templateConfig - ? 'Github authorization is invalid. Running configuration now.\n' - : 'Workspace generator is not configured. Running configuration now.\n', - this.options, false, - ); - await (new WorkspaceConfigureCommand(this.program)).execute({ refresh: true }); - this.config = readConfig(); + async loadTemplateTree({ repo, branch }) { + printToTerminal('\x1b[0G\x1b[2KLoading templates...'); + this.gitRepo = repo; + this.branch = branch; + this.authorization = this.githubToken; + this.tree = await ghGot(`repos/${repo}/branches/${branch || 'main'}`, { + headers: { authorization: this.authorization }, + }) + .then((resp) => resp.body) + .then((resp) => ghGot(`repos/${repo}/git/trees/${resp.commit.sha}?recursive=true`, { + headers: { authorization: this.authorization }, + })) + .then((resp) => resp.body.tree) + .catch(() => []); + printToTerminal('\x1b[0G\x1b[2KTemplates loaded.\x1b[1E'); } - if (name && fs.existsSync(path.join(destinationPath, 'skills', name))) { - printError(`Skill ${name} already exists!`, this.options); - return; + globTree(glob) { + const filterFunc = minimatch.filter(glob, { matchBase: true }); + return _.filter(this.tree, (f) => f.type === 'blob' && filterFunc(f.path)); } - await this.loadTemplateTree(this.config.profiles[this.config.currentProfile].templateConfig); + async readFile(filePath) { + const response = await ghGot(`repos/${this.gitRepo}/contents/${filePath}?ref=${this.branch}`, { + headers: { authorization: this.authorization }, + }); + return Buffer.from(response.body.content, 'base64'); + } - if (this.tree.length) { - const template = await this.selectTemplate(options.template); - if (template) { - const templateFolder = path.posix.dirname(template.template.path); - const templateFiles = this.globTree(`${templateFolder}/**`); - const treeObj = {}; + async getRegistry() { + const profile = await loadProfile(this.options.profile); + const registryUrl = _.get(this, 'options.registry') + || _.get(profile, `registries['${profile.currentRegistry}'].url`) + || (new URL(profile.url)).hostname.replace('api', 'private-registry'); + return registryUrl; + } - if (fs.existsSync(path.join(destinationPath, 'skills', template.name))) { - printError(`Skill ${template.name} already exists!`, this.options); - return; + async selectTemplate(templateName) { + const registryUrl = await this.getRegistry(); + const fileNames = this.globTree(METADATA_FILENAME); + const choices = await Promise.all(_.map(fileNames, async (value) => { + const data = JSON.parse((await this.readFile(value.path)).toString()); + return { + name: data.title, + value: { ...data, path: value.path }, + }; + })); + let template; + if (templateName) { + const templateChoice = _.find(choices, { name: templateName }); + if (templateChoice) { + template = templateChoice.value; + } else { + printError(`Template ${templateName} not found!`); + } } + const answers = await inquirer.prompt([ + { + type: 'list', + name: 'template', + message: 'Select the template you want to use:', + choices, + }, + { + type: 'input', + name: 'name', + message: 'Enter a name for the skill:', + validate: (answer) => { + const validation = validateName(answer); + return validation.status || validation.message; + }, + }, + ], { + name: this.name, + registry: registryUrl, + template, + }).catch(() => { }); + return answers; + } - const generatedFiles = _.map(templateFiles, (f) => { - try { - const rootPathComponents = templateFolder.split('/'); - const destFile = _.drop(f.path.split('/'), rootPathComponents.length); - const targetPath = path.join(...destFile); - - return _.template(targetPath, { interpolate: /__([\s\S]+?)__/g })({ - skillname: generateNameFromTitle(template.name), - }); - } catch (err) { - printError(err.message, this.options); - } - return undefined; - }).join('<br>'); - - console.log(''); - - await Promise.all( - _.map(templateFiles, async (f) => { - try { - const fileName = path.posix.basename(f.path); - if (fileName !== METADATA_FILENAME) { - const templateVars = { - skillname: generateNameFromTitle(template.name), - generatedFiles, - template: template.template, - }; - - let buf = await this.readFile(f.path); - /// Try not to template any non-text files. - if (isText(null, buf)) { - buf = Buffer.from( - _.template(buf.toString(), { interpolate: /{{([\s\S]+?)}}/g })(templateVars), - ); + async execute(name, destination, options) { + this.options = options; + this.name = name; + this.destination = destination; + this.config = readConfig(); + this.githubToken = await validateToken(); + const destinationPath = path.resolve(destination || process.cwd()); + if (!this.githubToken) { + printError(this.config.profiles[this.config.currentProfile].templateConfig + ? 'Github authorization is invalid. Running configuration now.\n' + : 'Workspace generator is not configured. Running configuration now.\n', this.options, false); + await (new WorkspaceConfigureCommand(this.program)).execute({ refresh: true }); + this.config = readConfig(); + } + if (name && fs.existsSync(path.join(destinationPath, 'skills', name))) { + printError(`Skill ${name} already exists!`, this.options); + return; + } + await this.loadTemplateTree(this.config.profiles[this.config.currentProfile].templateConfig); + if (this.tree.length) { + const template = await this.selectTemplate(options.template); + if (template) { + const templateFolder = path.posix.dirname(template.template.path); + const templateFiles = this.globTree(`${templateFolder}/**`); + const treeObj = {}; + if (fs.existsSync(path.join(destinationPath, 'skills', template.name))) { + printError(`Skill ${template.name} already exists!`, this.options); + return; } - - const relPath = f.path.slice(path.dirname(template.template.path).length); - const sourcePath = _.template(relPath, { interpolate: /__([\s\S]+?)__/g })(templateVars); - const targetPath = path.join(destinationPath, sourcePath); - - await mkdir(path.dirname(targetPath), { recursive: true }); - await writeFile(targetPath, buf); - - _.set(treeObj, sourcePath.split('/'), null); - } - } catch (err) { - printError(err.message, this.options); + const generatedFiles = _.map(templateFiles, (f) => { + try { + const rootPathComponents = templateFolder.split('/'); + const destFile = _.drop(f.path.split('/'), rootPathComponents.length); + const targetPath = path.join(...destFile); + return _.template(targetPath, { interpolate: /__([\s\S]+?)__/g })({ + skillname: generateNameFromTitle(template.name), + }); + } catch (err) { + printError(err.message, this.options); + } + return undefined; + }).join('<br>'); + console.log(''); + await Promise.all(_.map(templateFiles, async (f) => { + try { + const fileName = path.posix.basename(f.path); + if (fileName !== METADATA_FILENAME) { + const templateVars = { + skillname: generateNameFromTitle(template.name), + generatedFiles, + template: template.template, + }; + let buf = await this.readFile(f.path); + /// Try not to template any non-text files. + if (isText(null, buf)) { + buf = Buffer.from(_.template(buf.toString(), { interpolate: /{{([\s\S]+?)}}/g })(templateVars)); + } + const relPath = f.path.slice(path.dirname(template.template.path).length); + const sourcePath = _.template(relPath, { interpolate: /__([\s\S]+?)__/g })(templateVars); + const targetPath = path.join(destinationPath, sourcePath); + await mkdir(path.dirname(targetPath), { recursive: true }); + await writeFile(targetPath, buf); + _.set(treeObj, sourcePath.split('/'), null); + } + } catch (err) { + printError(err.message, this.options); + } + })); + if (!options || !boolean(options.notree)) { + printSuccess('Generated the following files:'); + console.log(''); + console.log(destinationPath); + console.log(treeify.asTree(treeObj, true)); + } + printSuccess('Workspace generation complete.', this.options); } - }), - ); - if (!options || !boolean(options.notree)) { - printSuccess('Generated the following files:'); - console.log(''); - console.log(destinationPath); - console.log(treeify.asTree(treeObj, true)); + } else { + printError('Unable to retrieve templates', this.options); } - - printSuccess('Workspace generation complete.', this.options); - } - } else { - printError('Unable to retrieve templates', this.options); } - } -}; +} diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index ae6680ac..15e4b156 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -1,381 +1,314 @@ -const glob = require('glob'); -const fs = require('fs'); -const path = require('path'); -const Docker = require('dockerode'); -const { readFile } = require('fs/promises'); -const { v1: uuid } = require('uuid'); -const inquirer = require('inquirer'); -const cliProgress = require('cli-progress'); -const { BarFormat } = require('cli-progress').Format; -const chalk = require('chalk'); - -const { - parseObject, printSuccess, printError, -} = require('../utils'); - -const { getSkillInfo, buildImageTag, getCurrentRegistry } = require('./workspace-utils'); -const { loadProfile, generateJwt } = require('../../config'); -const Catalog = require('../../client/catalog'); -const Models = require('../../client/models'); -const Content = require('../../client/content'); -const Experiments = require('../../client/experiments'); -const ApiServerClient = require('../../client/apiServerClient'); - -const _ = { - map: require('lodash/map'), - find: require('lodash/find'), - mean: require('lodash/mean'), - every: require('lodash/every'), -}; +import { globSync } from 'glob'; +import fs from 'node:fs'; +import path from 'node:path'; +import Docker from 'dockerode'; +import { readFile } from 'node:fs/promises'; +import { v1 as uuid } from 'uuid'; +import inquirer from 'inquirer'; +import cliProgress from 'cli-progress'; +import chalk from 'chalk'; +import _ from 'lodash'; +import { parseObject, printSuccess, printError } from '../utils.js'; +import { getSkillInfo, buildImageTag, getCurrentRegistry } from './workspace-utils.js'; +import { loadProfile, generateJwt } from '../../config.js'; +import Catalog from '../../client/catalog.js'; +import Models from '../../client/models.js'; +import Content from '../../client/content.js'; +import Experiments from '../../client/experiments.js'; +import ApiServerClient from '../../client/apiServerClient.js'; + +const { BarFormat } = cliProgress.Format; class DockerPushProgressTracker { - constructor() { - this.layers = { upload: {} }; - this.pushed = 0; - this.result = {}; - this.stage = ''; - - this.bars = new cliProgress.MultiBar({ - clearOnComplete: false, - hideCursor: true, - format: (opts, params, payload) => this.statusFormatter(opts, params, payload), - }, cliProgress.Presets.shades_grey); - - this.pushBar = this.bars.create(100, 0, { type: 'upload' }); - } - - statusFormatter(barOpts, params, payload) { - switch (payload.type) { - case 'upload': - if (params.progress >= 1) { - return chalk.green(`Pushing ${this.stage}: Complete`); - } - return chalk.green(`Pushing ${this.stage}: [${BarFormat(params.progress, barOpts)}]`); - case 'status': - return chalk.green(`Status: ${this.streamData.trim()}`); - default: - return ''; + constructor() { + this.layers = { upload: {} }; + this.pushed = 0; + this.result = {}; + this.stage = ''; + this.bars = new cliProgress.MultiBar({ + clearOnComplete: false, + hideCursor: true, + format: (opts, params, payload) => this.statusFormatter(opts, params, payload), + }, cliProgress.Presets.shades_grey); + this.pushBar = this.bars.create(100, 0, { type: 'upload' }); } - } - - updateProgress() { - this.pushBar.update(this.pushed); - } - - stop() { - this.bars.stop(); - } - - complete() { - this.pushed = 100; - this.updateProgress(); - return this.result; - } - processEvent(evt, imgtag) { - const { progressDetail } = evt; - let { status, id } = evt; - - if (imgtag) { - this.stage = imgtag; - } - - if (evt.aux) { - this.result = evt.aux; - } - - status = status || ''; - id = id || ''; - - if (evt.stream) { - const newStr = evt.stream.replace(/\n|\r/g, ''); - if (newStr) { - this.streamData = newStr; - } - } - - if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { - this.pushed = 100; + statusFormatter(barOpts, params, payload) { + switch (payload.type) { + case 'upload': + if (params.progress >= 1) { + return chalk.green(`Pushing ${this.stage}: Complete`); + } + return chalk.green(`Pushing ${this.stage}: [${BarFormat(params.progress, barOpts)}]`); + case 'status': + return chalk.green(`Status: ${this.streamData.trim()}`); + default: + return ''; + } } - if (status === 'Preparing') { - this.layers.upload[id] = { progress: 0 }; + updateProgress() { + this.pushBar.update(this.pushed); } - if (status === 'Pushing') { - this.layers.upload[id].progress = progressDetail.current / progressDetail.total || 0; + stop() { + this.bars.stop(); } - if ((status === 'Pushed') || (status === 'Layer already exists')) { - this.layers.upload[id].progress = 1; + complete() { + this.pushed = 100; + this.updateProgress(); + return this.result; } - const ulmap = _.map(this.layers.upload, 'progress'); - this.pushed = Math.round(100 * _.mean(ulmap)); - - return this.updateProgress(); - } -} - -module.exports.WorkspacePublishCommand = class WorkspacePublishCommand { - constructor(program) { - this.program = program; - this.docker = new Docker(); - } - - async getRegistryAuth(profile, options) { - const reg = await getCurrentRegistry(profile); - - if (!profile.token) { - if (reg.isCortex) { - const ttl = options.ttl || '1d'; - const jwt = await generateJwt(profile, ttl); - // eslint-disable-next-line no-param-reassign - profile.token = jwt; - } else { - const answers = await inquirer.prompt([ - { - type: 'input', - name: 'username', - message: `Enter user name for ${reg.name}:`, - }, - { - type: 'password', - name: 'password', - message: `Enter password for ${reg.name}:`, - }, - ]).catch(() => { }); - - if (answers) { - return answers; + processEvent(evt, imgtag) { + const { progressDetail } = evt; + let { status, id } = evt; + if (imgtag) { + this.stage = imgtag; + } + if (evt.aux) { + this.result = evt.aux; + } + status = status || ''; + id = id || ''; + if (evt.stream) { + const newStr = evt.stream.replace(/\n|\r/g, ''); + if (newStr) { + this.streamData = newStr; + } + } + if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { + this.pushed = 100; + } + if (status === 'Preparing') { + this.layers.upload[id] = { progress: 0 }; + } + if (status === 'Pushing') { + this.layers.upload[id].progress = progressDetail.current / progressDetail.total || 0; + } + if ((status === 'Pushed') || (status === 'Layer already exists')) { + this.layers.upload[id].progress = 1; } - } + const ulmap = _.map(this.layers.upload, 'progress'); + this.pushed = Math.round(100 * _.mean(ulmap)); + return this.updateProgress(); } - - return { - username: 'cli', - password: profile.token, - }; - } - - async pushAction(action, imageTag, registryAuth, { skipPush }) { - let img = this.docker.getImage(imageTag); - - /// ------------------------------------- - /// RETAGGING IMAGE SO CORTEX PICKS IT UP - /// The cortex backend has a bug where the new image wont be used if the tag hasnt changed - /// Remove this when this problem is fixed. - const buildId = uuid().substr(0, 6); - const newTag = `${imageTag}:${buildId}`; - await img.tag({ repo: newTag }); - img = this.docker.getImage(newTag); - /// ------------------------------------- - // Set image tag to new image tag for skill/action deployment later - // eslint-disable-next-line no-param-reassign - action.image = newTag; - - if (skipPush) { - printSuccess(`Skipping docker push for: ${newTag}`); - return true; +} +export default class WorkspacePublishCommand { + constructor(program) { + this.program = program; + this.docker = new Docker(); } - const status = new DockerPushProgressTracker(); - - const imgPush = await img - .push({ - authconfig: registryAuth, - }); - - return new Promise((resolve, reject) => { - this.docker.modem.followProgress( - imgPush, - (err) => { - if (err) { - return reject(err); - } - status.complete(); - status.stop(); - return resolve(true); - }, - (evt) => { - if (evt.error) { - status.stop(); - reject(new Error(evt.error)); - return; - } - status.processEvent(evt, newTag); - }, - ); - }); - } - - async execute(folder, options) { - this.options = options; - let target = process.cwd(); - - try { - if (folder) { - const fldr = folder.replace(/'|"/g, ''); - target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); - } - if (options.skill) { - target = path.join(target, 'skills', options.skill, 'skill.yaml'); - if (!fs.existsSync(target)) { - throw new Error(`Skill ${options.skill} not found!`); + async getRegistryAuth(profile, options) { + const reg = await getCurrentRegistry(profile); + if (!profile.token) { + if (reg.isCortex) { + const ttl = options.ttl || '1d'; + profile.token = await generateJwt(profile, ttl); + } else { + const answers = await inquirer.prompt([ + { + type: 'input', + name: 'username', + message: `Enter user name for ${reg.name}:`, + }, + { + type: 'password', + name: 'password', + message: `Enter password for ${reg.name}:`, + }, + ]).catch(() => { }); + if (answers) { + return answers; + } + } } - } - const skillInfo = await getSkillInfo(target); - - if (skillInfo.length > 0) { - const profile = await loadProfile(options.profile); + return { + username: 'cli', + password: profile.token, + }; + } - /// If the user passed in a project name, validate it with the cluster - let project = options.project || profile.project; - if (project) { - const apiServer = new ApiServerClient(profile.url); - await apiServer.getProject(profile.token, project) - .then((prj) => project = prj.name) - .catch(() => printError(`Project ${project} not found.`, options)); - } else { - throw new Error('Project must be specified'); + async pushAction(action, imageTag, registryAuth, { skipPush }) { + let img = this.docker.getImage(imageTag); + /// ------------------------------------- + /// RETAGGING IMAGE SO CORTEX PICKS IT UP + /// The cortex backend has a bug where the new image wont be used if the tag hasnt changed + /// Remove this when this problem is fixed. + const buildId = uuid().substr(0, 6); + const newTag = `${imageTag}:${buildId}`; + await img.tag({ repo: newTag }); + img = this.docker.getImage(newTag); + /// ------------------------------------- + // Set image tag to new image tag for skill/action deployment later + // eslint-disable-next-line no-param-reassign + action.image = newTag; + if (skipPush) { + printSuccess(`Skipping docker push for: ${newTag}`); + return true; } - - this.catalogClient = new Catalog(profile.url); - this.modelsClient = new Models(profile.url); - this.experimentClient = new Experiments(profile.url); - this.contentClient = new Content(profile.url); - - const published = await Promise.all(_.map(skillInfo, async (info) => { - const skillName = info.skill.name; - const actions = info.skill.actions ? info.skill.actions : []; - const actionsPublished = await Promise.all(_.map(actions, async (action) => { - const tag = await buildImageTag(profile, action.image); - const imglist = await this.docker.listImages({ - filters: JSON.stringify({ - reference: [tag], - }), + const status = new DockerPushProgressTracker(); + const imgPush = await img + .push({ + authconfig: registryAuth, + }); + return new Promise((resolve, reject) => { + this.docker.modem.followProgress(imgPush, (err) => { + if (err) { + return reject(err); + } + status.complete(); + status.stop(); + return resolve(true); + }, (evt) => { + if (evt.error) { + status.stop(); + reject(new Error(evt.error)); + return; + } + status.processEvent(evt, newTag); }); + }); + } - if (imglist.length !== 0) { - const globOpts = { - root: target, - absolute: true, - }; - const regAuth = await this.getRegistryAuth(profile, action.image, options); - - const typesFiles = glob.sync(`types/${skillName}/**/*.yaml`, globOpts); - await Promise.all( - _.map(typesFiles, async (f) => { - const typeData = await readFile(f).catch(() => { }); - if (typeData) { - const type = parseObject(typeData.toString()); - let normalizedType = {}; - if (!('types' in type)) normalizedType.types = [type]; - else normalizedType = type; - await this.catalogClient.saveType(project, profile.token, normalizedType); - printSuccess(`Published type ${path.basename(f)}`, options); - } - }), - ); - - const modelsFiles = glob.sync(`models/${skillName}/**/*.yaml`, globOpts); - await Promise.all( - _.map(modelsFiles, async (f) => { - const modelData = await readFile(f).catch(() => { }); - if (modelData) { - const model = parseObject(modelData.toString()); - await this.modelsClient.saveModel(project, profile.token, model); - printSuccess(`Published model ${model.name}`, options); - } - }), - ); - - const experimentsFiles = glob.sync(`experiments/${skillName}/*/*.yaml`, globOpts); - await Promise.all( - _.map(experimentsFiles, async (expFile) => { - const experimentData = await readFile(expFile).catch(() => { }); - - if (experimentData) { - const experiment = parseObject(experimentData.toString()); - - const result = await this.experimentClient.saveExperiment(project, profile.token, experiment).then((response) => response.success) - .catch(() => false); - - if (result) { - printSuccess(`Published experiment ${experiment.name}`, options); - const runsFiles = glob.sync(`experiments/${skillName}/${experiment.name}/runs/**/*.yaml`, globOpts); - await Promise.all( - _.map(runsFiles, async (runFile) => { - const runData = await readFile(runFile).catch(() => { }); - - if (runData) { - const run = parseObject(runData.toString()); - /// - /// Note: I would prefer to do an Update operation here instead, but the update endpoint - /// for experiment runs is currently broken. - /// - /// In the interim, I just delete the run (if it exists) and then re-add it. - /// - await this.experimentClient.deleteRun(project, profile.token, experiment.name, run.runId); - run.experimentName = experiment.name; - await this.experimentClient.createRun(project, profile.token, run); - printSuccess(`Published run ${run.runId}`, options); - - const artifacts = glob.sync(`experiments/${skillName}/${experiment.name}/runs/${run.runId}/artifacts/*`, globOpts); - await Promise.all(_.map(artifacts, async (artifactUri) => { - const artifactName = path.basename(artifactUri).split('.')[0]; - await this.experimentClient.uploadArtifact(project, profile.token, experiment.name, run.runId, artifactUri, artifactName); - printSuccess(`Published artifact ${artifactName}`, options); - })); - } - }), - ); - } else { - printError('Failed to save experiment', options); - } + async execute(folder, options) { + this.options = options; + let target = process.cwd(); + try { + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + if (!fs.existsSync(target)) { + throw new Error(`Skill ${options.skill} not found!`); + } + } + const skillInfo = await getSkillInfo(target); + if (skillInfo.length > 0) { + const profile = await loadProfile(options.profile); + /// If the user passed in a project name, validate it with the cluster + let project = options.project || profile.project; + if (project) { + const apiServer = new ApiServerClient(profile.url); + await apiServer.getProject(profile.token, project) + .then((prj) => project = prj.name) + .catch(() => printError(`Project ${project} not found.`, options)); + } else { + throw new Error('Project must be specified'); + } + this.catalogClient = new Catalog(profile.url); + this.modelsClient = new Models(profile.url); + this.experimentClient = new Experiments(profile.url); + this.contentClient = new Content(profile.url); + const published = await Promise.all(_.map(skillInfo, async (info) => { + const skillName = info.skill.name; + const actions = info.skill.actions ? info.skill.actions : []; + const actionsPublished = await Promise.all(_.map(actions, async (action) => { + const tag = await buildImageTag(profile, action.image); + const imglist = await this.docker.listImages({ + filters: JSON.stringify({ + reference: [tag], + }), + }); + if (imglist.length !== 0) { + const globOpts = { + cwd: target, + absolute: true, + }; + const regAuth = await this.getRegistryAuth(profile, action.image, options); + const typesFiles = globSync(`types/${skillName}/**/*.yaml`, globOpts); + await Promise.all(_.map(typesFiles, async (f) => { + const typeData = await readFile(f).catch(() => { }); + if (typeData) { + const type = parseObject(typeData.toString()); + let normalizedType = {}; + if (!('types' in type)) normalizedType.types = [type]; + else normalizedType = type; + await this.catalogClient.saveType(project, profile.token, normalizedType); + printSuccess(`Published type ${path.basename(f)}`, options); + } + })); + const modelsFiles = globSync(`models/${skillName}/**/*.yaml`, globOpts); + await Promise.all(_.map(modelsFiles, async (f) => { + const modelData = await readFile(f).catch(() => { }); + if (modelData) { + const model = parseObject(modelData.toString()); + await this.modelsClient.saveModel(project, profile.token, model); + printSuccess(`Published model ${model.name}`, options); + } + })); + const experimentsFiles = globSync(`experiments/${skillName}/*/*.yaml`, globOpts); + await Promise.all(_.map(experimentsFiles, async (expFile) => { + const experimentData = await readFile(expFile).catch(() => { }); + if (experimentData) { + const experiment = parseObject(experimentData.toString()); + const result = await this.experimentClient.saveExperiment(project, profile.token, experiment).then((response) => response.success) + .catch(() => false); + if (result) { + printSuccess(`Published experiment ${experiment.name}`, options); + const runsFiles = globSync(`experiments/${skillName}/${experiment.name}/runs/**/*.yaml`, globOpts); + await Promise.all(_.map(runsFiles, async (runFile) => { + const runData = await readFile(runFile).catch(() => { }); + if (runData) { + const run = parseObject(runData.toString()); + /// + /// Note: I would prefer to do an Update operation here instead, but the update endpoint + /// for experiment runs is currently broken. + /// + /// In the interim, I just delete the run (if it exists) and then re-add it. + /// + await this.experimentClient.deleteRun(project, profile.token, experiment.name, run.runId); + run.experimentName = experiment.name; + await this.experimentClient.createRun(project, profile.token, run); + printSuccess(`Published run ${run.runId}`, options); + const artifacts = globSync(`experiments/${skillName}/${experiment.name}/runs/${run.runId}/artifacts/*`, globOpts); + await Promise.all(_.map(artifacts, async (artifactUri) => { + const artifactName = path.basename(artifactUri).split('.')[0]; + await this.experimentClient.uploadArtifact(project, profile.token, experiment.name, run.runId, artifactUri, artifactName); + printSuccess(`Published artifact ${artifactName}`, options); + })); + } + })); + } else { + printError('Failed to save experiment', options); + } + } + })); + const contentFiles = globSync(`content/${skillName}/*`, globOpts); + await Promise.all(_.map(contentFiles, async (f) => { + const key = `content/${skillName}/${path.posix.basename(f, path.posix.extname(f))}`; + await this.contentClient.uploadContentStreaming(project, profile.token, key, f); + printSuccess(`Published content ${key}`, options); + })); + // pass options if we want to skip docker push for example + await this.pushAction(action, tag, regAuth, options); + } else { + printError(`No image found for action ${action.name}. Has it been built?`, options); + return false; + } + return true; + })); + if (_.every(actionsPublished)) { + const saveResult = await this.catalogClient.saveSkill(project, profile.token, info.skill); + if (saveResult.success) return true; + printError(`Skill save failed for ${info.skill.name}: ${saveResult.message}`, false); + return false; } - }), - ); - - const contentFiles = glob.sync(`content/${skillName}/*`, globOpts); - await Promise.all( - _.map(contentFiles, async (f) => { - const key = `content/${skillName}/${path.posix.basename(f, path.posix.extname(f))}`; - await this.contentClient.uploadContentStreaming(project, profile.token, key, f); - printSuccess(`Published content ${key}`, options); - }), - ); - // pass options if we want to skip docker push for example - await this.pushAction(action, tag, regAuth, options); - } else { - printError(`No image found for action ${action.name}. Has it been built?`, options); - return false; + printError('Publish Failed', options); + return false; + })); + return _.every(published); } - - return true; - })); - - if (_.every(actionsPublished)) { - const saveResult = await this.catalogClient.saveSkill(project, profile.token, info.skill); - if (saveResult.success) return true; - printError(`Skill save failed for ${info.skill.name}: ${saveResult.message}`, false); - return false; - } - - printError('Publish Failed', options); - - return false; - })); - - return _.every(published); - } - - console.log('No skills found'); - return false; - } catch (err) { - printError(err.message, options); - printError('Publish Failed', options); - return false; + console.log('No skills found'); + return false; + } catch (err) { + printError(err.message, options); + printError('Publish Failed', options); + return false; + } } - } -}; +} diff --git a/src/commands/workspaces/registry.js b/src/commands/workspaces/registry.js index 4849567f..df4be2bc 100644 --- a/src/commands/workspaces/registry.js +++ b/src/commands/workspaces/registry.js @@ -1,170 +1,144 @@ -const path = require('path'); -const inquirer = require('inquirer'); - -const _ = { - map: require('lodash/map'), - filter: require('lodash/filter'), - forEach: require('lodash/forEach'), - find: require('lodash/find'), -}; - -const { loadProfile, readConfig } = require('../../config'); -const { printSuccess, printError } = require('../utils'); - -module.exports.WorkspaceAddRegistryCommand = class WorkspaceAddRegistryCommand { - constructor(program) { - this.program = program; - } - - async execute(name, opts) { - await inquirer.prompt([ - { - type: 'input', - name: 'name', - message: 'Name for registry: ', - }, - { - type: 'input', - name: 'url', - message: 'Registry URL: ', - default: 'docker.io', - }, - { - type: 'input', - name: 'namespace', - message: 'Namespace: ', - }, - ], { - name, - url: opts.url, - namespace: opts.namespace, - }) - .then(async (answers) => { - const profile = await loadProfile(opts.profile); - - profile.registries[answers.name] = { - name: answers.name, - url: answers.url, - namespace: answers.namespace, - }; - - const cfg = readConfig(); - cfg.profiles[profile.name] = profile; - cfg.save(); - - printSuccess(`Registry ${answers.name} added`, opts); - }) - .catch((error) => { - printError(error.message, opts); - }); - } -}; - -module.exports.WorkspaceRemoveRegistryCommand = class WorkspaceRemoveRegistryCommand { - constructor(program) { - this.program = program; - } - - async execute(name, options) { - const profile = await loadProfile(options.profile); - - /// Use a function iteratee instead of the property test - const choices = _.map(_.filter(profile.registries, (r) => !r.isCortex && (!name || name === r.name)), (r) => ( - { - name: r.name, - value: r.name, - })); - - if (choices.length === 0) { - printError(name ? `Registry ${name} not found` : 'No registries found to remove', options); - return; +import path from 'path'; +import inquirer from 'inquirer'; +import _ from 'lodash'; +import { loadProfile, readConfig } from '../../config.js'; +import { printSuccess, printError } from '../utils.js'; + +export class WorkspaceAddRegistryCommand { + constructor(program) { + this.program = program; } - await inquirer.prompt([ - { - type: 'list', - name: 'name', - message: 'Select registry to remove: ', - choices, - }, - ], { - name, - }) - .then((answers) => { - delete profile.registries[answers.name]; - - const cfg = readConfig(); - cfg.profiles[profile.name] = profile; - cfg.save(); - - printSuccess(`Registry ${answers.name} removed`, options); - }) - .catch((error) => { - printError(error.message, options); - }); - } -}; - -module.exports.WorkspaceActivateRegistryCommand = class WorkspaceActivateRegistryCommand { - constructor(program) { - this.program = program; - } - - async execute(regname, options) { - const name = regname || undefined; - - const profile = await loadProfile(options.profile); - - const choices = _.map(_.filter(profile.registries, (r) => !name || (r.name === name)), (r) => ( - { - name: r.name, - value: r.name, - })); - - if (choices.length === 0) { - printError(name ? `Registry ${name} not found` : 'No registries found to activate', options); - return; + async execute(name, opts) { + await inquirer.prompt([ + { + type: 'input', + name: 'name', + message: 'Name for registry: ', + }, + { + type: 'input', + name: 'url', + message: 'Registry URL: ', + default: 'docker.io', + }, + { + type: 'input', + name: 'namespace', + message: 'Namespace: ', + }, + ], { + name, + url: opts.url, + namespace: opts.namespace, + }) + .then(async (answers) => { + const profile = await loadProfile(opts.profile); + profile.registries[answers.name] = { + name: answers.name, + url: answers.url, + namespace: answers.namespace, + }; + const cfg = readConfig(); + cfg.profiles[profile.name] = profile; + cfg.save(); + printSuccess(`Registry ${answers.name} added`, opts); + }) + .catch((error) => { + printError(error.message, opts); + }); + } +} +export class WorkspaceRemoveRegistryCommand { + constructor(program) { + this.program = program; } - await inquirer.prompt([ - { - type: 'list', - name: 'name', - message: 'Select registry to activate: ', - choices, - }, - ], { - name, - }) - .then((answers) => { - profile.currentRegistry = answers.name; - - const cfg = readConfig(); - cfg.profiles[profile.name] = profile; - cfg.save(); - - printSuccess(`Registry ${answers.name} activated`, options); - }) - .catch((error) => { - printError(error.message, options); - }); - } -}; + async execute(name, options) { + const profile = await loadProfile(options.profile); + /// Use a function iteratee instead of the property test + const choices = _.map(_.filter(profile.registries, (r) => !r.isCortex && (!name || name === r.name)), (r) => ({ + name: r.name, + value: r.name, + })); + if (choices.length === 0) { + printError(name ? `Registry ${name} not found` : 'No registries found to remove', options); + return; + } + await inquirer.prompt([ + { + type: 'list', + name: 'name', + message: 'Select registry to remove: ', + choices, + }, + ], { + name, + }) + .then((answers) => { + delete profile.registries[answers.name]; + const cfg = readConfig(); + cfg.profiles[profile.name] = profile; + cfg.save(); + printSuccess(`Registry ${answers.name} removed`, options); + }) + .catch((error) => { + printError(error.message, options); + }); + } +} +export class WorkspaceActivateRegistryCommand { + constructor(program) { + this.program = program; + } -module.exports.WorkspaceListRegistryCommand = class WorkspaceListRegistryCommand { - constructor(program) { - this.program = program; - } + async execute(regname, options) { + const name = regname || undefined; + const profile = await loadProfile(options.profile); + const choices = _.map(_.filter(profile.registries, (r) => !name || (r.name === name)), (r) => ({ + name: r.name, + value: r.name, + })); + if (choices.length === 0) { + printError(name ? `Registry ${name} not found` : 'No registries found to activate', options); + return; + } + await inquirer.prompt([ + { + type: 'list', + name: 'name', + message: 'Select registry to activate: ', + choices, + }, + ], { + name, + }) + .then((answers) => { + profile.currentRegistry = answers.name; + const cfg = readConfig(); + cfg.profiles[profile.name] = profile; + cfg.save(); + printSuccess(`Registry ${answers.name} activated`, options); + }) + .catch((error) => { + printError(error.message, options); + }); + } +} +export class WorkspaceListRegistryCommand { + constructor(program) { + this.program = program; + } - async execute(options) { - const profile = await loadProfile(options.profile); - _.forEach(profile.registries, (r) => { - const logStr = `${r.name} - ${path.posix.join(r.url, r.namespace || '')}`; - if (r.name === profile.currentRegistry) { - printSuccess(logStr, options); - } else { - console.log(logStr); - } - }); - } -}; + async execute(options) { + const profile = await loadProfile(options.profile); + _.forEach(profile.registries, (r) => { + const logStr = `${r.name} - ${path.posix.join(r.url, r.namespace || '')}`; + if (r.name === profile.currentRegistry) { + printSuccess(logStr, options); + } else { + console.log(logStr); + } + }); + } +} diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 4c8b5c25..1dfc475c 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -1,140 +1,120 @@ -const _ = require('lodash'); -const path = require('path'); -const glob = require('glob'); -const yaml = require('js-yaml'); -const fs = require('fs'); -const os = require('os'); -const { - stat, - readFile, -} = require('fs/promises'); -const { statSync } = require('fs'); -const ghGot = require('gh-got'); - -const { configDir } = require('../../config'); -const { - printWarning, -} = require('../utils'); +import _ from 'lodash'; +import path from 'node:path'; +import { globSync } from 'glob'; +import yaml from 'js-yaml'; +import { + existsSync, readFileSync, writeFileSync, statSync, +} from 'node:fs'; +import { readFile } from 'node:fs/promises'; +import ghGot from 'gh-got'; +import { configDir, loadProfile } from '../../config.js'; +import { printWarning } from '../utils.js'; let keytar; // Is loading keytar fails, use headless fallback for secrets.. try { - // Don't load keytar for tests - if (process.env.NODE_ENV !== 'test') { - keytar = require('keytar'); - } + // Don't load keytar for tests + if (process.env.NODE_ENV !== 'test') { + keytar = (await import('keytar'))?.default; + } } catch (err) { - printWarning(`Unable to use keyring service, falling back to file-based keystore: ${err.message}`); + printWarning(`Unable to use keyring service, falling back to file-based keystore: ${err.message}`); } - -const { loadProfile } = require('../../config'); -const buffer = require("buffer"); - const CORTEX_CLI_AUTH_ID = 'cortex-cli:github'; const CORTEX_CLI_AUTH_USER = 'cortex-cli'; +// eslint-disable-next-line require-await async function getPasswordHeaded() { - return await keytar.getPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER); + return keytar.getPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER); } - function readLocaFile() { - const dataFile = path.join(configDir(), 'cache.dat'); - // nothing stored - if (!fs.existsSync(dataFile)) return {}; - const rawData = fs.readFileSync(dataFile); - const decoded = Buffer.from(rawData.toString(), 'base64').toString(); - return JSON.parse(decoded); + const dataFile = path.join(configDir(), 'cache.dat'); + // nothing stored + if (!existsSync(dataFile)) return {}; + const rawData = readFileSync(dataFile); + const decoded = Buffer.from(rawData.toString(), 'base64').toString(); + return JSON.parse(decoded); } - -async function getPasswordHeadless() { - return _.get(readLocaFile(),[CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER]); +function getPasswordHeadless() { + return _.get(readLocaFile(), [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER]); } - async function storePasswordHeaded(val) { - await keytar.setPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER, val); + await keytar.setPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER, val); } - -async function storePasswordHeadless(val) { - const dataFile = path.join(configDir(), 'cache.dat'); - const originaldata = readLocaFile(); - const updated = _.set(originaldata, [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER], val); - fs.writeFileSync(dataFile, Buffer.from(JSON.stringify(updated)).toString('base64')); +function storePasswordHeadless(val) { + const dataFile = path.join(configDir(), 'cache.dat'); + const originaldata = readLocaFile(); + const updated = _.set(originaldata, [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER], val); + writeFileSync(dataFile, Buffer.from(JSON.stringify(updated)).toString('base64')); } - - -module.exports.validateToken = async function validateToken() { - try { - let authorization; - if (keytar !== undefined) { - authorization = await getPasswordHeaded(); - } else { - authorization = await getPasswordHeadless(); +export async function validateToken() { + try { + let authorization; + if (keytar !== undefined) { + authorization = await getPasswordHeaded(); + } else { + authorization = await getPasswordHeadless(); + } + if (authorization) { + const u = await ghGot('user', { headers: { authorization } }); + if (u?.statusCode === 200) return authorization; + } + } catch (err) { + console.error(err.message); } - if (authorization) { - const u = await ghGot('user', { headers: { authorization } }) - if (u?.statusCode === 200) - return authorization; + return undefined; +} +// eslint-disable-next-line require-await +export async function persistToken(token) { + const val = `${token.token_type} ${token.access_token}`; + if (keytar) { + return storePasswordHeaded(val); } - } catch (err) { - console.error(err.message) - } - return undefined; -}; - -module.exports.persistToken = async function persistToken(token) { - const val = `${token.token_type} ${token.access_token}` - if (keytar) { - return storePasswordHeaded(val); - } - return storePasswordHeadless(val); -}; - -module.exports.printToTerminal = function printToTerminal(txt) { - process.stdout.write(`${txt}\x1b[0K\x1b[1E`); -}; - -module.exports.saveTerminalPosition = function saveTerminalPosition() { - process.stdout.write('\x1b7'); -}; - -module.exports.restoreTerminalPosition = function saveTerminalPosition() { - process.stdout.write('\x1b8'); -}; - -module.exports.getSkillInfo = function getSkillInfo(target) { - let skillFiles = []; - if (target.endsWith('skill.yaml')) { - skillFiles = statSync(path.resolve(target)) ? [target] : []; - } else { - skillFiles = glob.sync('./skills/**/skill.yaml', { - root: target, - absolute: true, - }); - } - return Promise.all(_.map(skillFiles, async (uri) => { - const skill = await readFile(uri).catch((err) => { console.error(`Unable to open skill: ${err.message}`); }); - return { - name: path.basename(uri), - uri, - skill: skill ? yaml.load(skill.toString()) : undefined, - }; - })); -}; + return storePasswordHeadless(val); +} -module.exports.getCurrentRegistry = async function getCurrentRegistry(profile = undefined) { - const regProfile = profile || await loadProfile(); // old behavior was always getting "current" profile - return regProfile.registries[regProfile.currentRegistry]; -}; +export function printToTerminal(txt) { + process.stdout.write(`${txt}\x1b[0K\x1b[1E`); +} -module.exports.buildImageTag = async function buildImageTag(profile, actionName) { - if (actionName.includes('/')) { - return actionName; - } +export function saveTerminalPosition() { + process.stdout.write('\x1b7'); +} - const registry = await module.exports.getCurrentRegistry(profile); - if (registry.url.includes('docker.io')) { - return path.posix.join(registry.namespace || '', actionName); - } +export function restoreTerminalPosition() { + process.stdout.write('\x1b8'); +} - return path.posix.join(registry.url, registry.namespace || '', actionName); -}; +export function getSkillInfo(target) { + let skillFiles = []; + if (target.endsWith('skill.yaml')) { + skillFiles = statSync(path.resolve(target)) ? [target] : []; + } else { + skillFiles = globSync('./skills/**/skill.yaml', { + cwd: target, + absolute: true, + }); + } + return Promise.all(_.map(skillFiles, async (uri) => { + const skill = await readFile(uri).catch((err) => { console.error(`Unable to open skill: ${err.message}`); }); + return { + name: path.basename(uri), + uri, + skill: skill ? yaml.load(skill.toString()) : undefined, + }; + })); +} +export async function getCurrentRegistry(profile = undefined) { + const regProfile = profile || await loadProfile(); // old behavior was always getting "current" profile + return regProfile.registries[regProfile.currentRegistry]; +} +export async function buildImageTag(profile, actionName) { + if (actionName.includes('/')) { + return actionName; + } + const registry = await getCurrentRegistry(profile); + if (registry.url.includes('docker.io')) { + return path.posix.join(registry.namespace || '', actionName); + } + return path.posix.join(registry.url, registry.namespace || '', actionName); +} diff --git a/src/compatibility.js b/src/compatibility.js index 7a538109..d50057fe 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -1,78 +1,53 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +import _ from 'lodash'; +import * as Table from 'cli-table3'; +import chalk from 'chalk'; +import concat from 'lodash/fp/concat.js'; +import debugSetup from 'debug'; +import filter from 'lodash/fp/filter.js'; +import getOr from 'lodash/fp/getOr.js'; +import keys from 'lodash/fp/keys.js'; +import last from 'lodash/fp/last.js'; +import isInstalledGlobally from 'is-installed-globally'; +import npmFetch from 'npm-registry-fetch'; +import Semver from 'semver'; +import { got, getUserAgent } from './client/apiutils.js'; +import { loadProfile } from './config.js'; +import { printError, printWarning } from './commands/utils.js'; +import pkg from '../package.json' assert { type: 'json' }; -const _ = require('lodash'); -const Table = require('cli-table3'); -const chalk = require('chalk'); -const concat = require('lodash/fp/concat'); -const debug = require('debug')('cortex:cli'); -const filter = require('lodash/fp/filter'); -const findPackageJson = require('find-package-json'); -const getOr = require('lodash/fp/getOr'); -const isInstalledGlobally = require('is-installed-globally'); -const keys = require('lodash/fp/keys'); -const last = require('lodash/fp/last'); -const npmFetch = require('npm-registry-fetch'); -const Semver = require('semver'); -const uniq = require('lodash/fp/uniq'); -const { got, getUserAgent } = require('./client/apiutils'); -const { loadProfile } = require('./config'); -const { printError, printWarning } = require('./commands/utils'); - -const pkg = findPackageJson(__dirname).next().value; +const debug = debugSetup('cortex:cli'); function getAvailableVersions(name) { debug('getAvailableVersions => %s', name); return npmFetch .json(pkg.name) .then((manifest) => keys(getOr({}, 'versions', manifest))) - .then((versions) => uniq(concat(versions, pkg.version))) + .then((versions) => _.uniq(concat(versions, pkg.version))) .then((versions) => versions.sort(Semver.compare)) .catch(() => { - throw new Error('Unable to determine CLI available versions'); - }); + throw new Error('Unable to determine CLI available versions'); + }); } - function getRequiredVersion(profile) { const endpoint = `${profile.url}/fabric/v4/compatibility/applications/cortex-cli`; debug('getRequiredVersion => %s', endpoint); return got .get(endpoint, { - headers: { - Authorization: `Bearer ${profile.token}`, - 'user-agent': getUserAgent(), - }, -}) + headers: { + Authorization: `Bearer ${profile.token}`, + 'user-agent': getUserAgent(), + }, + }) .json() .then((res) => { - const { semver } = res; - return semver; - }).catch((err) => { - throw new Error(`Unable to fetch compatibility: ${err.message}`); - }); + const { semver } = res; + return semver; + }).catch((err) => { + throw new Error(`Unable to fetch compatibility: ${err.message}`); + }); } - -function notifyUpdate({ required = false, current, latest }) { - const message = `Update ${required ? chalk.bold('required') : 'available'} ${ - chalk.dim(current) - }${chalk.reset(' → ') - }${chalk.green(latest) - }\nRun ${ - chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`) - } to update`; +export function notifyUpdate({ required = false, current, latest }) { + const message = `Update ${required ? chalk.bold('required') : 'available'} ${chalk.dim(current)}${chalk.reset(' → ')}${chalk.green(latest)}\nRun ${chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`)} to update`; const table = new Table({ chars: { 'top-left': '╭', @@ -85,19 +60,16 @@ function notifyUpdate({ required = false, current, latest }) { table.push([message]); console.warn(table.toString()); } - function upgradeAvailable(args) { process.on('exit', () => { notifyUpdate(args); }); } - function upgradeRequired(args) { notifyUpdate({ required: true, ...args }); process.exit(-1); } - -async function getCompatibility(profile) { +export async function getCompatibility(profile) { debug('getCompatibility => %s profile', profile.name); try { // fail if unable to contact cortex service @@ -121,8 +93,7 @@ async function getCompatibility(profile) { throw new Error(`Unable to contact cortex: ${e.message}`); } } - -function withCompatibilityCheck(fn) { +export function withCompatibilityCheck(fn) { return (...args) => { const command = args.find((a) => a !== undefined && typeof a.opts === 'function'); const options = command.opts(); @@ -131,23 +102,17 @@ function withCompatibilityCheck(fn) { const profile = loadProfile(profileName); return getCompatibility(profile) .then(({ current, latest, satisfied }) => { - if (!satisfied) { - upgradeRequired({ current, latest }); - } else if (Semver.gt(latest, current)) { - upgradeAvailable({ current, latest }); - } - }) + if (!satisfied) { + upgradeRequired({ current, latest }); + } else if (Semver.gt(latest, current)) { + upgradeAvailable({ current, latest }); + } + }) .then(() => fn(...args)) .catch((error) => { - printError(error); - }); + printError(error); + }); } return Promise.resolve().then(() => fn(...args)); }; } - -module.exports = { - notifyUpdate, - getCompatibility, - withCompatibilityCheck, -}; diff --git a/src/config.js b/src/config.js index cbc62e1c..71a84a20 100644 --- a/src/config.js +++ b/src/config.js @@ -1,34 +1,18 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const _ = require('lodash'); -const os = require('os'); -const fs = require('fs'); -const path = require('path'); -const Joi = require('joi'); -const dayjs = require('dayjs'); -const debug = require('debug')('cortex:config'); -const jose = require('jose-node-cjs-runtime'); -const { printError } = require('./commands/utils'); -const Info = require('./client/info'); - +import _ from 'lodash'; +import os from 'os'; +import fs from 'node:fs'; +import path from 'path'; +import Joi from 'joi'; +import dayjs from 'dayjs'; +import debugSetup from 'debug'; +import * as jose from 'jose'; +import { printError } from './commands/utils.js'; +import Info from './client/info.js'; + +const debug = debugSetup('cortex:config'); function configDir() { return process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); } - // TODO deprecate CORTEX_URI function getCortexUrlFromEnv() { if (process.env.CORTEX_URI) { @@ -36,12 +20,11 @@ function getCortexUrlFromEnv() { } return process.env.CORTEX_URL; } - const durationRegex = /^([.\d]+)(ms|[smhdwMy])$/; async function generateJwt(profile, expiresIn = '2m') { const { - username, issuer, audience, jwk, - } = profile; + username, issuer, audience, jwk, +} = profile; const jwtSigner = await jose.importJWK(jwk, 'Ed25519'); const infoClient = new Info(profile.url); const infoResp = await infoClient.getInfo(); @@ -57,7 +40,6 @@ async function generateJwt(profile, expiresIn = '2m') { .setExpirationTime(expiry) .sign(jwtSigner, { kid: jwk.kid }); } - const ProfileSchema = Joi.object({ name: Joi.string().optional(), url: Joi.string().uri().required(), @@ -70,7 +52,6 @@ const ProfileSchema = Joi.object({ token: Joi.string().optional(), project: Joi.string().optional(), }); - const ProfileSchemaV4 = Joi.object().keys({ name: Joi.string().optional(), url: Joi.string().uri().required(), @@ -85,7 +66,6 @@ const ProfileSchemaV4 = Joi.object().keys({ registries: Joi.any().required(), currentRegistry: Joi.string().required(), }); - const ProfileSchemaV5 = Joi.object().keys({ name: Joi.string().optional(), url: Joi.string().uri().required(), @@ -101,10 +81,9 @@ const ProfileSchemaV5 = Joi.object().keys({ currentRegistry: Joi.string().required(), templateConfig: Joi.any().required(), }); - class Profile { constructor(name, { - url, username, issuer, audience, jwk, project, + url, username, issuer, audience, jwk, project, }) { this.name = name; this.url = url; @@ -135,13 +114,8 @@ class Profile { }; } } - class Config { - constructor({ - version, - profiles, - currentProfile, - }) { + constructor({ version, profiles, currentProfile }) { this.version = version || '3'; this.profiles = profiles || {}; this.currentProfile = currentProfile; @@ -170,10 +144,10 @@ class Config { } setProfile(name, { - url, username, issuer, audience, jwk, - }, project) { + url, username, issuer, audience, jwk, +}, project) { const profile = new Profile(name, { - url, username, issuer, audience, jwk, project, + url, username, issuer, audience, jwk, project, }); profile.validate(); // do not set/save invalid profiles .. this.profiles[name] = profile; @@ -184,10 +158,10 @@ class Config { Object.keys(this.profiles).forEach((name) => { profiles[name] = this.profiles[name].toJSON(); }); - return { - version: this.version, - profiles, - currentProfile: this.currentProfile, + return { + version: this.version, + profiles, + currentProfile: this.currentProfile, }; } @@ -196,19 +170,16 @@ class Config { if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } - _.forEach(this.profiles, (profile) => { delete profile.token; }); - const configFile = path.join(dir, 'config'); fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); } } - class ProfileV4 { constructor(name, { - url, username, issuer, audience, jwk, project, registries, currentRegistry, + url, username, issuer, audience, jwk, project, registries, currentRegistry, }) { this.name = name; this.url = url; @@ -249,13 +220,8 @@ class ProfileV4 { }; } } - class ConfigV4 { - constructor({ - profiles, - currentProfile, - templateConfig, - }) { + constructor({ profiles, currentProfile, templateConfig }) { this.version = '4'; this.profiles = profiles || {}; this.currentProfile = currentProfile; @@ -269,8 +235,8 @@ class ConfigV4 { } setProfile(name, { - url, username, issuer, audience, jwk, registries, currentRegistry, - }, project) { + url, username, issuer, audience, jwk, registries, currentRegistry, +}, project) { const profile = new ProfileV4(name, { url, username, issuer, audience, jwk, project, registries, currentRegistry, }); @@ -283,11 +249,11 @@ class ConfigV4 { Object.keys(this.profiles).forEach((name) => { profiles[name] = this.profiles[name].toJSON(); }); - return { - version: this.version, - profiles, - currentProfile: this.currentProfile, - templateConfig: this.templateConfig, + return { + version: this.version, + profiles, + currentProfile: this.currentProfile, + templateConfig: this.templateConfig, }; } @@ -315,19 +281,16 @@ class ConfigV4 { if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } - _.forEach(this.profiles, (profile) => { delete profile.token; }); - const configFile = path.join(dir, 'config'); fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); } } - class ProfileV5 { constructor(name, { - url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, + url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, }, templateConfigV4) { this.name = name; this.url = url; @@ -373,13 +336,8 @@ class ProfileV5 { }; } } - class ConfigV5 { - constructor({ - profiles, - currentProfile, - templateConfig, - }) { + constructor({ profiles, currentProfile, templateConfig }) { this.version = '5'; this.profiles = profiles || {}; this.currentProfile = currentProfile; @@ -389,8 +347,8 @@ class ConfigV5 { } setProfile(name, { - url, username, issuer, audience, jwk, registries, currentRegistry, templateConfig, - }, project) { + url, username, issuer, audience, jwk, registries, currentRegistry, templateConfig, +}, project) { const profile = new ProfileV5(name, { url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, }); @@ -403,10 +361,10 @@ class ConfigV5 { Object.keys(this.profiles).forEach((name) => { profiles[name] = this.profiles[name].toJSON(); }); - return { - version: this.version, - profiles, - currentProfile: this.currentProfile, + return { + version: this.version, + profiles, + currentProfile: this.currentProfile, }; } @@ -434,39 +392,31 @@ class ConfigV5 { if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } - _.forEach(this.profiles, (profile) => { delete profile.token; }); - const configFile = path.join(dir, 'config'); fs.writeFileSync(configFile, JSON.stringify(this.toJSON(), null, 2)); } } - function defaultConfig() { return new ConfigV5({}); } - function readConfig() { try { const dir = configDir(); if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } - debug(`Reading config from ${dir}`); - const configFile = path.join(dir, 'config'); if (fs.existsSync(configFile)) { // deal with config versions const configObj = JSON.parse(fs.readFileSync(configFile)); - if (configObj.version) { switch (configObj.version) { case '5': return new ConfigV5(configObj); - case '4': { // version 5 (per-profile template support) @@ -475,7 +425,6 @@ function readConfig() { cfg.save(); return cfg; } - case '3': { // version 4 (template config support, with github token) @@ -484,14 +433,12 @@ function readConfig() { cfg.save(); return cfg; } - case '2': fs.copyFileSync(configFile, path.join(dir, 'config_v2')); defaultConfig().save(); printError('Old profile found and moved to ~/.cortex/config_v2. Please run "cortex configure"'); // version 2 return new Config(configObj); - default: // version 1 return new Config({ profiles: configObj }); @@ -503,13 +450,11 @@ function readConfig() { } return undefined; } - async function loadProfile(profileName, useenv = true) { const config = readConfig(); if (config === undefined) { printError('Please configure the Cortex CLI by running "cortex configure"'); } - const name = profileName || config.currentProfile || 'default'; const profile = await config.getProfile(name, useenv); if (!profile) { @@ -517,8 +462,13 @@ async function loadProfile(profileName, useenv = true) { } return profile; } - -module.exports = { +export { durationRegex }; +export { loadProfile }; +export { generateJwt }; +export { defaultConfig }; +export { configDir }; +export { readConfig }; +export default { durationRegex, loadProfile, generateJwt, diff --git a/src/constants.js b/src/constants.js index bb734207..af8e161a 100644 --- a/src/constants.js +++ b/src/constants.js @@ -1,5 +1,4 @@ -// ToDo: move to cortex-express-common when adding server side validations FAB-4008 -module.exports.ALLOWED_QUERY_FIELDS = { +export const ALLOWED_QUERY_FIELDS = { SKILL: { filter: ['name', 'title', 'description', 'createdBy'], sort: ['name', 'title', 'description', 'createdAt', 'createdBy', 'updatedAt'], @@ -64,20 +63,19 @@ module.exports.ALLOWED_QUERY_FIELDS = { filter: ['status', 'start', 'end', 'skillName', 'agentName'], sort: ['status', 'start', 'end', 'skillName', 'agentName'], }, + TASK: { + filter: ['name', 'state', 'startTime', 'endTime', 'skillName', 'actionName', 'jobType', 'scheduled'], + sort: ['name', 'state', 'startTime', 'endTime', 'skillName', 'actionName', 'jobType'], + }, }; - -module.exports.DEFAULT_LIST_LIMIT_COUNT = '20'; - -module.exports.DEFAULT_LIST_SKIP_COUNT = '0'; - -module.exports.DEFAULT_LIST_SORT_PARAMS = { - updatedAt: 'updatedAt', // skills, agents, actions, connections, models, experiments, types, - _updatedAt: '_updatedAt', // projects, missions, campaigns, run, assessment, snapshot - start: 'start', // activations +export const DEFAULT_LIST_LIMIT_COUNT = '20'; +export const DEFAULT_LIST_SKIP_COUNT = '0'; +export const DEFAULT_LIST_SORT_PARAMS = { + updatedAt: 'updatedAt', + _updatedAt: '_updatedAt', + start: 'start', + startTime: 'startTime', // tasks }; - -module.exports.LIST_JSON_HELP_TEXT = 'Output results in JSON, supports JMESPath query to filter the response data'; - -module.exports.QUERY_JSON_HELP_TEXT = 'A JMESPath query to use in filtering the response data'; - -module.exports.GET_DEFAULT_SORT_CLI_OPTION = (param) => JSON.stringify({ [param]: -1 }); +export const LIST_JSON_HELP_TEXT = 'Output results in JSON, supports JMESPath query to filter the response data'; +export const QUERY_JSON_HELP_TEXT = 'A JMESPath query to use in filtering the response data'; +export const GET_DEFAULT_SORT_CLI_OPTION = (param) => JSON.stringify({ [param]: -1 }); diff --git a/src/parsers.js b/src/parsers.js index 02ef74b2..599cd9dd 100644 --- a/src/parsers.js +++ b/src/parsers.js @@ -1,21 +1,5 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const _ = require('lodash'); -const { program } = require('commander'); +import _ from 'lodash'; +import { program } from 'commander'; function nonEmptyStringParser(opts) { const { message = 'empty string argument', variadic = false } = opts; @@ -34,20 +18,21 @@ function nonEmptyStringParser(opts) { return value; }; } - // append relevant prefix to keys function transformDynamicParams(params, prefix) { const jsonParams = JSON.parse(params); Object.keys(jsonParams) .forEach((key) => { - if (!_.startsWith(prefix, key)) { - jsonParams[`${prefix}${key}`] = jsonParams[key]; - delete jsonParams[key]; - } - }); + if (!_.startsWith(prefix, key)) { + jsonParams[`${prefix}${key}`] = jsonParams[key]; + delete jsonParams[key]; + } + }); return JSON.stringify(jsonParams); } - -module.exports = { - nonEmptyStringParser, transformDynamicParams, +export { nonEmptyStringParser }; +export { transformDynamicParams }; +export default { + nonEmptyStringParser, + transformDynamicParams, }; diff --git a/test/compatibility.js b/test/compatibility.js index c0e4a174..c9a6c0ff 100644 --- a/test/compatibility.js +++ b/test/compatibility.js @@ -1,32 +1,16 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chai = require('chai'); -const chaiAsPromised = require('chai-as-promised'); -const findPackageJson = require('find-package-json'); -const rewire = require('rewire'); -const semver = require('semver'); -const nock = require('nock'); - -const compatibilityModule = rewire('../src/compatibility'); +import chai from 'chai'; +import chaiAsPromised from 'chai-as-promised'; +import semver from 'semver'; +import nock from 'nock'; +import npmFetch from 'npm-registry-fetch'; +import sinon from 'sinon'; +import pkg from '../package.json' assert { type: 'json' }; +import * as compatibility from '../src/compatibility.js'; chai.use(chaiAsPromised); const { expect } = chai; -const pkg = findPackageJson(__dirname).next().value; +let sandbox; describe('compatibility checks', () => { const profile = { @@ -36,115 +20,88 @@ describe('compatibility checks', () => { username: 'testUser', token: 'testToken', }; - describe('with a compatible application version', () => { - let revertCompatibilityModule; - before(() => { + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {} } })); nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(200, () => ({ semver: pkg.version })); - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), - }, - }); }); - after(() => { - revertCompatibilityModule(); - nock.restore(); + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); }); - it('should resolve as satisfied', () => { const expected = { current: pkg.version, latest: pkg.version, satisfied: true }; - return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + return expect(compatibility.getCompatibility(profile)).to.become(expected); }); }); - describe('with an incompatible application version', () => { const nextMajorVersion = semver.inc(pkg.version, 'major'); - let revertCompatibilityModule; - before(() => { - nock.activate(); nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(200, () => ({ semver: nextMajorVersion })); - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.resolve({ + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {}, [nextMajorVersion]: {}, }, - }), - }, - }); + })); }); - after(() => { - revertCompatibilityModule(); - nock.restore(); + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); }); - it('should resolve as unsatisfied', () => { const expected = { current: pkg.version, latest: nextMajorVersion, satisfied: false }; - return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + return expect(compatibility.getCompatibility(profile)).to.become(expected); }); - // it('should resolve as box', () => { // // Just added a dumb test to test output.. - // compatibilityModule.notifyUpdate({ required: false, current: '1.0.0', latest: '2.0.0' }); + // compatibility.notifyUpdate({ required: false, current: '1.0.0', latest: '2.0.0' }); // }); }); - describe('when the compatibility service cannot be reached', () => { - let revertCompatibilityModule; - before(() => { - nock.activate(); nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(500, () => ('BOOM')); - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), - }, - }); + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {} } })); }); - after(() => { - revertCompatibilityModule(); - nock.restore(); + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); }); - - it('should reject', () => expect(compatibilityModule.getCompatibility(profile)).to.be.rejected); + it('should reject', () => expect(compatibility.getCompatibility(profile)).to.be.rejected); }); - describe('when the npm cannot be reached', () => { - let revertCompatibilityModule; before(() => { - nock.activate(); nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(200, () => ({ semver: pkg.version })); - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.reject(new Error('BOOM!')), - }, - }); + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .throws(new Error('BOOM!')); }); - after(() => { - revertCompatibilityModule(); - nock.restore(); + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); }); - it('should not reject', () => { // should default to current package version... const expected = { current: pkg.version, latest: pkg.version, satisfied: true }; - return expect(compatibilityModule.getCompatibility(profile)).to.become(expected); + return expect(compatibility.getCompatibility(profile)).to.become(expected); }); }); }); diff --git a/test/configure.js b/test/configure.js index 6917cd12..307eca1e 100644 --- a/test/configure.js +++ b/test/configure.js @@ -1,33 +1,17 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const mockedEnv = require('mocked-env'); -const _ = require('lodash'); -const assert = require('assert'); -const os = require('os'); -const path = require('path'); -const fs = require('fs'); -const sinon = require('sinon'); -const { expect } = require('chai'); -const yaml = require('js-yaml'); -const { stripAnsi } = require('./utils'); -const Info = require('../src/client/info'); +import mockedEnv from 'mocked-env'; +import _ from 'lodash'; +import assert from 'assert'; +import os from 'os'; +import path from 'path'; +import fs from 'node:fs'; +import sinon from 'sinon'; +import { expect } from 'chai'; +import yaml from 'js-yaml'; +import { stripAnsi } from './utils.js'; +import Info from '../src/client/info.js'; +import { create } from '../bin/cortex-configure.js'; const iatDate = new Date('January 11, 2011 11:11:11').getTime(); - function parseJwt(jwt) { const parts = jwt.split('.'); const header = JSON.parse(Buffer.from(parts[0], 'base64') @@ -39,7 +23,6 @@ function parseJwt(jwt) { payload, }; } - describe('configure', () => { const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cortex-cli')); let restore; @@ -51,57 +34,44 @@ describe('configure', () => { CORTEX_CONFIG_DIR: tmpDir, }); }); - beforeEach(() => { - delete require.cache[require.resolve('commander')]; - delete require.cache[require.resolve('../bin/cortex-configure')]; - + // delete require.cache[require.resolve('commander')]; + // delete require.cache[require.resolve('../bin/cortex-configure')]; sandbox = sinon.createSandbox(); - sandbox.stub(process, 'exit'); + sandbox.stub(process, 'exit').throws(Error('EXIT')); sandbox.stub(Info.prototype, 'getInfo').callsFake(() => ({ serverTs: iatDate, })); - printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); fs.copyFileSync('./test/cortex/config', path.join(tmpDir, 'config')); }); - afterEach(() => { sandbox.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - it('lists profiles', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'list']); + await create().parseAsync(['node', 'configure', 'list']); sandbox.assert.calledTwice(printSpy); // default is set at default... expect(getPrintedLines()).to.eql(['default', 'other']); }); - it('get profile other', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'describe', 'other']); + await create().parseAsync(['node', 'configure', 'describe', 'other']); const output = getPrintedLines(); expect(output).to.length(5); expect(output[4]).to.eql('Project: otherProj'); }); - it('ttl token default ttl', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token']); + await create().parseAsync(['node', 'configure', 'token']); const output = getPrintedLines(); const { payload } = parseJwt(output[0]); expect(payload.sub).to.equal('test_user'); @@ -110,10 +80,8 @@ describe('configure', () => { expect(payload.exp).to.equal((iatDate / 1000) + (24 * 3600)); // Expect 1 day default expect(output).to.length(1); }); - it('ttl token default with other profile', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token', '--profile', 'other']); + await create().parseAsync(['node', 'configure', 'token', '--profile', 'other']); const output = getPrintedLines(); const { payload } = parseJwt(output[0]); expect(payload.sub).to.equal('other_user'); @@ -122,10 +90,8 @@ describe('configure', () => { expect(payload.exp).to.equal((iatDate / 1000) + (24 * 3600)); // Expect 1 day default expect(output).to.length(1); }); - it('ttl token with ttl', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token', '--ttl', '5m', '--profile', 'other']); + await create().parseAsync(['node', 'configure', 'token', '--ttl', '5m', '--profile', 'other']); const output = getPrintedLines(); const { payload } = parseJwt(output[0]); expect(payload.sub).to.equal('other_user'); @@ -133,33 +99,26 @@ describe('configure', () => { expect(payload.iat).to.equal(iatDate / 1000); expect(payload.exp).to.equal((iatDate / 1000) + (5 * 60)); }); - it('ttl token with bad ttl', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); + await create().parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); const output = getErrorLines(); expect(output[0]).to.contain('Invalid --ttl'); }); - it('ttl token default with bad profile', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', 'token', '--profile', 'nothere']); + await create().parseAsync(['node', 'configure', 'token', '--profile', 'nothere']); const output = getErrorLines(); expect(output[0]).to.contain('Profile with name "nothere" could not be located in your configuration.'); assert(process.exit.calledWith(1)); }); - - it('create profile pat file', async () => { - const program = require('../bin/cortex-configure'); - await program.parseAsync(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); + await create().parseAsync(['node', 'configure', '--file', './test/cortex/pat-file.json', '--project', 'test', '--profile', 'conftest']); const output = getPrintedLines(); expect(output).to.length(2); expect(output[1]).to.eql('Configuration for profile conftest saved.'); const conf = yaml.load(fs.readFileSync(path.join(tmpDir, 'config'))); expect(conf.profiles.conftest).to.haveOwnProperty('project', 'test'); printSpy.resetHistory(); - await program.parseAsync(['node', 'configure', 'list']); + await create().parseAsync(['node', 'configure', 'list']); expect(getPrintedLines()).to.eql(['default', 'other', 'conftest']); }); }); diff --git a/test/docgen.js b/test/docgen.js new file mode 100644 index 00000000..6f6e637f --- /dev/null +++ b/test/docgen.js @@ -0,0 +1,19 @@ +import chai from 'chai'; +import chaiAsPromised from 'chai-as-promised'; +import { globSync } from 'glob'; +import docGen from '../generate_docs.js'; + +chai.use(chaiAsPromised); +const { expect } = chai; + +describe('Test docgen', () => { + const cmdJses = globSync('./bin/*.js', { absolute: true }); + cmdJses.forEach((commandJS) => { + it(`Generate docs for ${commandJS}`, async () => { + const { default: program } = await import(commandJS); + const docStr = docGen(program); + // eslint-disable-next-line no-unused-expressions + expect(docStr).not.be.empty; + }); + }); +}); diff --git a/test/docker-registry.js b/test/docker-registry.js index be5e13e3..488dd183 100644 --- a/test/docker-registry.js +++ b/test/docker-registry.js @@ -1,25 +1,20 @@ -const { assert } = require('chai'); -const Actions = require('../src/client/actions'); +import { assert } from 'chai'; +import Actions from '../src/client/actions.js'; const action = new Actions('https://api.cortex-dev.insights.ai'); - describe('_cortexRegistryImagePath()', () => { it('returns the full URL of the image in the private registry', () => { const registryUrl = 'private-registry.cortex.insights.ai'; const tenant = 'tenant'; - const i1 = 'image'; const i2 = 'c12e/image'; const i3 = 'docker.io/library/image'; - const t1 = 'image:1234'; const t2 = 'c12e/image:1234'; const t3 = 'docker.io/library/image:1234'; - [i1, i2, i3].forEach((i) => { assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image'); }); - [t1, t2, t3].forEach((i) => { assert.equal(action._cortexRegistryImagePath(registryUrl, i, tenant), 'private-registry.cortex.insights.ai/tenant/image:1234'); }); diff --git a/test/tasks.js b/test/tasks.js index 832d7d81..aaa5631c 100644 --- a/test/tasks.js +++ b/test/tasks.js @@ -1,29 +1,13 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chai = require('chai'); -const mockedEnv = require('mocked-env'); -const nock = require('nock'); -const _ = require('lodash'); -const sinon = require('sinon'); -const Tasks = require('../src/client/tasks'); -const { stripAnsi } = require('./utils'); +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import nock from 'nock'; +import _ from 'lodash'; +import sinon from 'sinon'; +import Tasks from '../src/client/tasks.js'; +import { stripAnsi } from './utils.js'; +import { create } from '../bin/cortex-tasks.js'; const { expect } = chai; - const PROJECT = 'project'; describe('Tasks', () => { let restoreEnv; @@ -38,41 +22,30 @@ describe('Tasks', () => { CORTEX_CONFIG_DIR: './test/cortex', }); sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit').throws(Error('EXIT')); printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); }); - - beforeEach(() => { - delete require.cache[require.resolve('commander')]; - delete require.cache[require.resolve('../bin/cortex-tasks')]; - }); - after(() => { restoreEnv(); sandbox.restore(); nock.restore(); }); - afterEach(() => { // clean up mocks that may not have been called nock.cleanAll(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - const serverUrl = 'http://localhost:8000'; - it('list tasks command (old response)', async () => { - const program = require('../bin/cortex-tasks'); const response = { success: true, tasks: ['task0', 'task1'] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.contain('task0'); @@ -81,12 +54,10 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command JSON no tasks', async () => { - const program = require('../bin/cortex-tasks'); const response = { success: true, tasks: [] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.contain('No tasks found'); @@ -94,12 +65,10 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command JSON without JSMEsearch', async () => { - const program = require('../bin/cortex-tasks'); const response = { success: true, tasks: ['task0', 'task1'] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json']); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.contain('name'); @@ -109,9 +78,7 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command JSON with JSMEsearch', async () => { - const program = require('../bin/cortex-tasks'); const now = Date.now(); const response = { success: true, @@ -125,7 +92,7 @@ describe('Tasks', () => { ], }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json', '[].{skillName: skillName, name: name}']); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--json', '[].{skillName: skillName, name: name}']); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.not.contain('activationId'); @@ -136,9 +103,7 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command QUERY should work as JSON alias with JSMEsearch', async () => { - const program = require('../bin/cortex-tasks'); const now = Date.now(); const response = { success: true, @@ -152,7 +117,7 @@ describe('Tasks', () => { ], }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--query', '[].{skillName: skillName, name: name}']); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT, '--query', '[].{skillName: skillName, name: name}']); const output = getPrintedLines(); const errs = getErrorLines(); chai.expect(output.join('')).to.not.contain('activationId'); @@ -163,43 +128,39 @@ describe('Tasks', () => { chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks command', async () => { - const program = require('../bin/cortex-tasks'); const now = Date.now(); const response = { success: true, tasks: [ - { - name: 'task0', startTime: now - (30 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx1', skillName: 'skill1', actionName: 'action1', status: 'COMPLETE', - }, - { - name: 'task1', startTime: now - (40 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx2', skillName: 'skill2', actionName: 'action1', status: 'FAIL', - }, + { + name: 'task0', startTime: now - (30 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx1', skillName: 'skill1', actionName: 'action1', status: 'COMPLETE', + }, + { + name: 'task1', startTime: now - (40 * 60000), endTime: now - (10 * 60000), activationId: 'xxxxxx2', skillName: 'skill2', actionName: 'action1', status: 'FAIL', + }, ], }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); - await program.parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); - const output = getPrintedLines(); + await create().parseAsync(['node', 'tasks', 'list', '--project', PROJECT]); + const output = getPrintedLines().join(''); const errs = getErrorLines(); - chai.expect(output.join('')).to.contain('task0'); - chai.expect(output.join('')).to.contain('20 minutes'); - chai.expect(output.join('')).to.contain('30 minutes'); - chai.expect(output.join('')).to.contain('30 minutes ago'); - chai.expect(output.join('')).to.contain('40 minutes ago'); - chai.expect(output.join('')).to.contain('task0'); - chai.expect(output.join('')).to.contain('task1'); + chai.expect(output).to.contain('task0', output); + chai.expect(output).to.contain('20 minutes', output); + chai.expect(output).to.contain('30 minutes', output); + chai.expect(output).to.contain('30 minutes ago', output); + chai.expect(output).to.contain('40 minutes ago', output); + chai.expect(output).to.contain('task0', output); + chai.expect(output).to.contain('task1', output); // eslint-disable-next-line no-unused-expressions chai.expect(errs).to.be.empty; nock.isDone(); }); - it('list tasks client JSON', async () => { const taskCtl = new Tasks(serverUrl); const options = { json: true, }; - const response = { success: true, tasks: ['task0', 'task1'] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); const taskList = await taskCtl.listTasks(PROJECT, '', options); diff --git a/test/testUtilFunctions.js b/test/testUtilFunctions.js index c99d99f7..33104f75 100644 --- a/test/testUtilFunctions.js +++ b/test/testUtilFunctions.js @@ -1,10 +1,9 @@ -const { expect } = require('chai'); -const _ = require('lodash'); -const mockedEnv = require('mocked-env'); -const sinon = require('sinon'); -const { getQueryOptions, getFilteredOutput } = require('../src/commands/utils'); - -const { stripAnsi } = require('./utils'); +import { expect } from 'chai'; +import _ from 'lodash'; +import mockedEnv from 'mocked-env'; +import sinon from 'sinon'; +import { getQueryOptions, getFilteredOutput } from '../src/commands/utils.js'; +import { stripAnsi } from './utils.js'; describe('Test getQueryOptions function', () => { it('should have empty query string if options.json is true', () => { @@ -14,7 +13,6 @@ describe('Test getQueryOptions function', () => { const queryOptions = getQueryOptions(options); expect(queryOptions.query).to.eql(null); }); - it('should retain the query string if options.json is not true', () => { const queryPath = '[].{name: name, title: title}'; const options = { @@ -23,7 +21,6 @@ describe('Test getQueryOptions function', () => { const queryOptions = getQueryOptions(options); expect(queryOptions.query).to.eql(queryPath); }); - // TODO remove --query on deprecation // handle cases 'cortex entity command --query <path> --json' it('--query [arg] should override --json [arg] the if both are passed', () => { @@ -37,7 +34,6 @@ describe('Test getQueryOptions function', () => { expect(queryOptions.query).to.eql(queryPath); }); }); - describe('Test getFilteredOutput function', () => { let restore; let printSpy; @@ -45,29 +41,23 @@ describe('Test getFilteredOutput function', () => { before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(process.stderr, 'write'); printSpyConsole = sinon.spy(console, 'log'); }); - afterEach(() => { printSpy.restore(); printSpyConsole.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getPrintedConsoleLines() { return _.flatten(printSpyConsole.args).map((s) => stripAnsi(s)); } - it('should print Deprecation warning when query option is present', () => { const queryPath = '[].{name: name, title: title}'; const options = { @@ -76,7 +66,6 @@ describe('Test getFilteredOutput function', () => { getFilteredOutput([], options); expect(getPrintedLines()).to.eql(['[DEPRECATION WARNING] --query\n']); }); - it('should print error message when query has invalid input', () => { // handle cases 'cortex entity command --query <path> --json' const queryPath = '--json'; @@ -86,7 +75,6 @@ describe('Test getFilteredOutput function', () => { getFilteredOutput([], options); expect(getPrintedLines()[1]).to.eql(`error: invalid argument: ${queryPath} \n`); }); - it('should print json output with correct params', () => { // handle cases 'cortex entity command --query <path> --json' const options = { @@ -99,7 +87,6 @@ describe('Test getFilteredOutput function', () => { expect(getPrintedConsoleLines()[0]).to.contain('title'); expect(getPrintedConsoleLines()[0]).to.contain('test-title'); }); - it('should print json output with correct query args', () => { const options = { query: 'title', @@ -111,7 +98,6 @@ describe('Test getFilteredOutput function', () => { expect(getPrintedConsoleLines()[0]).to.not.contain('test-name'); expect(getPrintedConsoleLines()[0]).to.contain('test-title'); }); - it('should print json output with correct json args without Deprecation warning', () => { const options = { json: 'title', @@ -123,7 +109,6 @@ describe('Test getFilteredOutput function', () => { expect(getPrintedConsoleLines()[0]).to.not.contain('test-name'); expect(getPrintedConsoleLines()[0]).to.contain('test-title'); }); - it('should override json path when both query and json path are passed', () => { const options = { json: 'title', diff --git a/test/testUtils.js b/test/testUtils.js index bd2790b2..fa214a39 100644 --- a/test/testUtils.js +++ b/test/testUtils.js @@ -1,62 +1,47 @@ -const _ = require('lodash'); -const { expect } = require('chai'); -const mockedEnv = require('mocked-env'); -const sinon = require('sinon'); - -const { - handleTable, - printExtendedLogs, - handleListFailure, - handleDeleteFailure, -} = require('../src/commands/utils'); - -const { stripAnsi } = require('./utils'); +import _ from 'lodash'; +import { expect } from 'chai'; +import mockedEnv from 'mocked-env'; +import sinon from 'sinon'; +import { + handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, +} from '../src/commands/utils.js'; +import { stripAnsi } from './utils.js'; const sampleData = [ { user: 'user-1', name: 'user-name-1' }, { user: 'user-2', name: 'user-name-2' }, { user: 'user-3', name: 'user-name-3' }, ]; - const tableSpec = [ { column: 'User', field: 'user' }, { column: 'Name', field: 'name' }, ]; - let restore; describe('Handle table function test', () => { let printSpy; - before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(console, 'log'); }); - afterEach(() => { printSpy.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - it('should print supplied error message when data is empty', () => { handleTable(tableSpec, [], null, 'No users found'); expect(getPrintedLines()).to.eql(['No users found']); }); - it('should print a table when data is present', () => { handleTable(tableSpec, sampleData, null, 'No users found'); - expect(getPrintedLines()).to.eql( - [ - '┌────────┬─────────────┐\n' + expect(getPrintedLines()).to.eql([ + '┌────────┬─────────────┐\n' + '│ User │ Name │\n' + '├────────┼─────────────┤\n' + '│ user-1 │ user-name-1 │\n' @@ -65,11 +50,9 @@ describe('Handle table function test', () => { + '├────────┼─────────────┤\n' + '│ user-3 │ user-name-3 │\n' + '└────────┴─────────────┘', - ], - ); + ]); }); }); - describe('Test printExtendedLogs function', () => { let printSpy; const data = [ @@ -82,58 +65,46 @@ describe('Test printExtendedLogs function', () => { before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(process.stderr, 'write'); }); - afterEach(() => { printSpy.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - it('should print the result limited message if data length is equal to limit value', () => { printExtendedLogs([...data, { key5: 'val5' }], { limit }); expect(getPrintedLines()).to.eql([`Results limited to ${limit} rows\n`]); }); - it('should not print the result limited message if data length is less than limit value', () => { printExtendedLogs(data, { limit }); expect(getPrintedLines()).to.eql([]); }); }); - describe('Test handleListFailure function', () => { let printSpy; before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(console, 'log'); sinon.stub(process, 'exit'); }); - afterEach(() => { printSpy.restore(); process.exit.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - const errResponse = { status: 400, details: [ @@ -144,53 +115,44 @@ describe('Test handleListFailure function', () => { }; it('should print tabular output if status is 400', () => { handleListFailure(errResponse, null, 'test-resource'); - expect((getPrintedLines()[0])).to.equal( - '┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n' - + '│ Option Type │ Message │\n' - + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' - + '│ type1 │ message1 │\n' - + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' - + '│ type2 │ message2 │\n' - + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' - + '│ type3 │ message3 │\n' - + '└────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘', - ); + expect((getPrintedLines()[0])).to.equal('┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n' + + '│ Option Type │ Message │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type1 │ message1 │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type2 │ message2 │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type3 │ message3 │\n' + + '└────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘'); // eslint-disable-next-line no-unused-expressions expect(process.exit.calledWith(1)).to.be.true; }); }); - describe('Test handleDeleteFailure', () => { let printSpy; let errorSpy; before(() => { restore = mockedEnv({}); }); - beforeEach(() => { printSpy = sinon.spy(console, 'log'); errorSpy = sinon.spy(console, 'error'); sinon.stub(process, 'exit'); }); - afterEach(() => { printSpy.restore(); errorSpy.restore(); process.exit.restore(); }); - after(() => { restore(); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - const depErrorResponse = { status: 403, message: 'message', @@ -200,31 +162,26 @@ describe('Test handleDeleteFailure', () => { { type: 'type3', name: 'name3' }, ], }; - const serverErrorResponse = { status: 500, message: 'Server Unavailable', details: [], }; - it('should print tabular output if status is 403', () => { handleDeleteFailure(depErrorResponse, null, 'test-resource'); expect(getErrorLines()[0]).to.equal('test-resource deletion failed: message.'); - expect((getPrintedLines()[0])).to.equal( - '┌────────────────────────────────────────────────────────────┬────────────────────────────────────────┐\n' - + '│ Dependency Name │ Dependency Type │\n' - + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' - + '│ name1 │ type1 │\n' - + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' - + '│ name2 │ type2 │\n' - + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' - + '│ name3 │ type3 │\n' - + '└────────────────────────────────────────────────────────────┴────────────────────────────────────────┘', - ); + expect((getPrintedLines()[0])).to.equal('┌────────────────────────────────────────────────────────────┬────────────────────────────────────────┐\n' + + '│ Dependency Name │ Dependency Type │\n' + + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' + + '│ name1 │ type1 │\n' + + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' + + '│ name2 │ type2 │\n' + + '├────────────────────────────────────────────────────────────┼────────────────────────────────────────┤\n' + + '│ name3 │ type3 │\n' + + '└────────────────────────────────────────────────────────────┴────────────────────────────────────────┘'); // eslint-disable-next-line no-unused-expressions expect(process.exit.calledWith(1)).to.be.true; }); - it('should print the default error message is not 403 (500)', () => { handleDeleteFailure(serverErrorResponse, null, 'test-resource'); expect(getErrorLines()[0]).to.equal('test-resource deletion failed: 500 Server Unavailable.'); diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index 33dbb671..ec90c761 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -1,72 +1,77 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const path = require('path'); -const commander = require('commander'); -const chai = require('chai'); -const mockedEnv = require('mocked-env'); -const { UploadContent } = require('../src/commands/content'); -const { humanReadableFileSize } = require('../src/commands/utils'); +import path from 'node:path'; +import url from 'node:url'; +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import sinon from 'sinon'; +import _ from 'lodash'; +import { create } from '../bin/cortex-content.js'; +import { humanReadableFileSize } from '../src/commands/utils.js'; +import { stripAnsi } from './utils.js'; +import Info from '../src/client/info.js'; +import Content from '../src/client/content.js'; const { expect } = chai; -let restoreEnv; describe('Upload Directory', () => { + let restoreEnv; + let sandbox; + let printSpy; + let errorSpy; + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + before(() => { restoreEnv = mockedEnv({ CORTEX_CONFIG_DIR: './test/cortex', }); }); - after(() => { - restoreEnv(); - }); - it('test upload', (done) => { - const program = new commander.Command(); - const command = new UploadContent(program); - const contentKey = '.shared'; - const dirname = __dirname.split(path.sep).join(path.posix.sep); + beforeEach(() => { + sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit'); + sandbox.stub(Info.prototype, 'getInfo').callsFake(() => ({ + serverTs: Date.now(), + })); + printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); + }); + + after(() => restoreEnv()); + afterEach(() => sandbox.restore()); + it('test upload successfull', async () => { + const program = create(); + const contentKey = '.shared'; + sandbox.stub(Content.prototype, 'uploadContentStreaming').returns({ success: true }); + const dirname = url.fileURLToPath(new URL('.', import.meta.url)).split(path.sep).join(path.posix.sep); const filePath = path.posix.join(dirname, 'cortex'); - const options = { - recursive: true, - test: true, - }; - - const expectedFileDicts = [ - { - canonical: path.posix.join(dirname, 'cortex', 'config'), - relative: 'config', - size: 1611, - }, - { - canonical: path.posix.join(dirname, 'cortex', 'pat-file.json'), - relative: 'pat-file.json', - size: 326, - }, - { - canonical: path.posix.join(dirname, 'cortex', 'sample', 'upload', 'config'), - relative: path.join('sample', 'upload', 'config'), - size: 483, - }, - ]; - - command.execute(contentKey, filePath, options, (fileDicts) => { - expect(fileDicts).to.deep.equal(expectedFileDicts); - done(); - }); + await program.parseAsync(['node', 'content', 'upload', '--project', 'FOO', '--recursive', contentKey, filePath]); + const lines = getPrintedLines(); + expect(lines).to.include('326B\tpat-file.json -> .shared/pat-file.json'); + expect(lines).to.include('1.6K\tconfig -> .shared/config'); + expect(lines).to.include('483B\tsample/upload/config -> .shared/sample/upload/config'); + // eslint-disable-next-line no-unused-expressions + expect(getErrorLines()).is.empty; // Assume no errors + }); + it('test upload error', async () => { + const program = create(); + const contentKey = '.shared'; + // can't contact cluster.. + // sandbox.stub(Content.prototype, 'uploadContentStreaming').returns({ success: true }); + const dirname = url.fileURLToPath(new URL('.', import.meta.url)).split(path.sep).join(path.posix.sep); + const filePath = path.posix.join(dirname, 'cortex'); + await program.parseAsync(['node', 'content', 'upload', '--project', 'FOO', '--chunkSize', 1, '--recursive', contentKey, filePath]); + const lines = getPrintedLines(); + const errLines = getErrorLines(); + expect(lines).to.include('326B\tpat-file.json -> .shared/pat-file.json'); + expect(lines).to.include('1.6K\tconfig -> .shared/config'); + expect(lines).to.include('483B\tsample/upload/config -> .shared/sample/upload/config'); + // eslint-disable-next-line no-unused-expressions + expect(errLines).to.have.length(2); // Should match concurrency ?? why +1 }); }); @@ -83,35 +88,30 @@ describe('Human Readable File Size', () => { expect(formattedFileSize).to.have.string('1.2K'); done(); }); - it('MB', (done) => { const sizeInBytes = 1000000; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('1M'); done(); }); - it('1MB less some', (done) => { const sizeInBytes = (10 ** 3) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999B'); done(); }); - it('1k 200 bytes less', (done) => { const sizeInBytes = 1000000 - 200; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.8K'); done(); }); - it('1k less', (done) => { const sizeInBytes = (10 ** 6) - 1; const formattedFileSize = humanReadableFileSize(sizeInBytes); expect(formattedFileSize).to.have.string('999.9K'); done(); }); - it('several GB', (done) => { const sizeInBytes = 32 * (10 ** 9) + 345 * (10 ** 6); const formattedFileSize = humanReadableFileSize(sizeInBytes); diff --git a/test/useragent.js b/test/useragent.js index 11936d7f..8f446456 100644 --- a/test/useragent.js +++ b/test/useragent.js @@ -1,31 +1,14 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chai = require('chai'); -const chaiAsPromised = require('chai-as-promised'); -const findPackageJson = require('find-package-json'); -const rewire = require('rewire'); -const nock = require('nock'); - -const compatibilityModule = rewire('../src/compatibility'); +import chai from 'chai'; +import chaiAsPromised from 'chai-as-promised'; +import nock from 'nock'; +import sinon from 'sinon'; +import npmFetch from 'npm-registry-fetch'; +import pkg from '../package.json' assert { type: 'json' }; +import * as compatibility from '../src/compatibility.js'; chai.use(chaiAsPromised); -const pkg = findPackageJson(__dirname).next().value; - +let sandbox; describe('useragent', () => { const profile = { url: 'http://example.com', @@ -34,33 +17,28 @@ describe('useragent', () => { username: 'testUser', token: 'testToken', }; - - let revertCompatibilityModule; - before(() => { + if (!nock.isActive()) { + nock.activate(); + } // Compatibility API call is as good as any to verify the request has user-agent, // so mock it the same way we do for that test, adding capture of headers. - revertCompatibilityModule = compatibilityModule.__set__({ - npmFetch: { - json: () => Promise.resolve({ versions: { [pkg.version]: {} } }), - }, - }); + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {} } })); }); - after(() => { - revertCompatibilityModule(); + sandbox.restore(); + nock.cleanAll(); }); - it('should exist in request headers', async () => { - nock.activate(); - const n = nock(profile.url) + nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(200, () => ({ semver: pkg.version })) .matchHeader('user-agent', (val) => { - console.log(val); - return val.includes(`${pkg.name}/${pkg.version}`); - }); - await compatibilityModule.getCompatibility(profile); - n.done(); + console.log(val); + return val.includes(`${pkg.name}/${pkg.version}`); + }); + await compatibility.getCompatibility(profile); }); }); diff --git a/test/utils.js b/test/utils.js index 6af908d2..0a6d085f 100644 --- a/test/utils.js +++ b/test/utils.js @@ -6,8 +6,12 @@ function ansiRegex({ onlyFirst = false } = {}) { ].join('|'); return new RegExp(pattern, onlyFirst ? undefined : 'g'); } - function stripAnsi(s) { return s.replace(ansiRegex(), ''); } -module.exports = { ansiRegex, stripAnsi }; +export { ansiRegex }; +export { stripAnsi }; +export default { + ansiRegex, + stripAnsi, +}; diff --git a/test/workspaces.js b/test/workspaces.js index 19c08981..f788c61b 100644 --- a/test/workspaces.js +++ b/test/workspaces.js @@ -1,28 +1,13 @@ -/* - * Copyright 2020 Cognitive Scale, Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the “License”); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an “AS IS” BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const chai = require('chai'); -const mockedEnv = require('mocked-env'); -const _ = require('lodash'); -const sinon = require('sinon'); -const fs = require('fs'); -const isCI = require('is-ci'); -const rewire = require('rewire'); -const { stripAnsi } = require('./utils'); - +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import _ from 'lodash'; +import sinon from 'sinon'; +import fs from 'fs'; +import nock from 'nock'; +import isCI from 'is-ci'; +import { stripAnsi } from './utils.js'; +import { create } from '../bin/cortex-workspaces.js'; +import * as wsutils from '../src/commands/workspaces/workspace-utils.js'; describe('Workspaces', () => { let restoreEnv; @@ -30,63 +15,57 @@ describe('Workspaces', () => { let printSpy; let errorSpy; before(() => { + if (!nock.isActive()) { + nock.activate(); + } restoreEnv = mockedEnv({ CORTEX_CONFIG_DIR: '../cortex', }); sandbox = sinon.createSandbox(); printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); - fs.mkdirSync('test/workspaces', { recursive: true }); process.chdir('test/workspaces'); }); - - beforeEach(() => { - delete require.cache[require.resolve('commander')]; - delete require.cache[require.resolve('../bin/cortex-workspaces')]; - }); - + // beforeEach(() => { + // delete require.cache[require.resolve('commander')]; + // delete require.cache[require.resolve('../bin/cortex-workspaces')]; + // }); after(() => { restoreEnv(); sandbox.restore(); process.chdir('..'); + nock.cleanAll(); fs.rmSync('cortex/cache.dat'); fs.rmSync('workspaces', { recursive: true }); }); - function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } - function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - it('headless workspace persist token', async () => { + nock('https://api.github.com') + .get('/user').reply(200, { statusCode: 200 }); // test that headless token storage works ... - const wsutilsMock = rewire('../src/commands/workspaces/workspace-utils'); - wsutilsMock.__set__('ghGot', () => ({ statusCode: 200 })); - const token_tostore = { token_type: 'token_type', access_token: 'access_token' }; - await wsutilsMock.persistToken(token_tostore); - const token = await wsutilsMock.validateToken(); - chai.expect(token).equal(`${token_tostore.token_type} ${token_tostore.access_token}`); + const tokenToStore = { token_type: 'token_type', access_token: 'access_token' }; + await wsutils.persistToken(tokenToStore); + const token = await wsutils.validateToken(); + chai.expect(token).equal(`${tokenToStore.token_type} ${tokenToStore.access_token}`); }); - // eslint-disable-next-line func-names xit('should generate a job skill', async () => { if (!isCI) { - const program = require('../bin/cortex-workspaces'); - await program.parseAsync(['node', 'workspaces', 'generate', 'job1', '--notree', '--template', 'Custom Job Skill']); + await create().parseAsync(['node', 'workspaces', 'generate', 'job1', '--notree', '--template', 'Custom Job Skill']); const output = getPrintedLines(); const errs = getErrorLines(); - chai.expect(fs.existsSync('docs/job1/README.md')); chai.expect(fs.existsSync('skills/job1/skill.yaml')); chai.expect(fs.existsSync('skills/job1/actions/job1/main.py')); chai.expect(fs.existsSync('skills/job1/actions/job1/requirements.txt')); chai.expect(fs.existsSync('skills/job1/actions/job1/Dockerfile')); chai.expect(fs.existsSync('skills/job1/invoke/request/message.json')); - chai.expect(output.join('')).to.contain('Workspace generation complete.'); // eslint-disable-next-line no-unused-expressions chai.expect(errs).to.be.empty; @@ -94,22 +73,18 @@ describe('Workspaces', () => { this.skip(); } }); - // eslint-disable-next-line func-names xit('should generate a daemon skill', async function () { if (!isCI) { - const program = require('../bin/cortex-workspaces'); - await program.parseAsync(['node', 'workspaces', 'generate', 'dmn1', '--notree', '--template', 'Custom Daemon Skill']); + await create().parseAsync(['node', 'workspaces', 'generate', 'dmn1', '--notree', '--template', 'Custom Daemon Skill']); const output = getPrintedLines(); const errs = getErrorLines(); - chai.expect(fs.existsSync('docs/dmn1/README.md')); chai.expect(fs.existsSync('skills/dmn1/skill.yaml')); chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/main.py')); chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/requirements.txt')); chai.expect(fs.existsSync('skills/dmn1/actions/dmn1/Dockerfile')); chai.expect(fs.existsSync('skills/dmn1/invoke/request/message.json')); - chai.expect(output.join('')).to.contain('Workspace generation complete.'); // eslint-disable-next-line no-unused-expressions chai.expect(errs).to.be.empty; From 38b73787e2b0d5e1aad2b3b302bf89bed6deefbd Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 11 Apr 2023 21:56:17 -0500 Subject: [PATCH 789/864] Fix shebang, remove import json assert syntax (#673) * Fix shebang, remove import json assert syntax . . * Use path not URL --- bin/cortex-actions.js | 2 +- bin/cortex-agents.js | 2 +- bin/cortex-assessments.js | 2 +- bin/cortex-campaigns.js | 2 +- bin/cortex-connections.js | 2 +- bin/cortex-content.js | 2 +- bin/cortex-deploy.js | 2 +- bin/cortex-docker.js | 2 +- bin/cortex-experiments.js | 2 +- bin/cortex-generate.js | 2 +- bin/cortex-missions.js | 2 +- bin/cortex-models.js | 2 +- bin/cortex-projects.js | 2 +- bin/cortex-roles.js | 2 +- bin/cortex-secrets.js | 2 +- bin/cortex-sessions.js | 2 +- bin/cortex-skills.js | 2 +- bin/cortex-types.js | 2 +- bin/cortex-users.js | 2 +- bin/cortex.js | 6 +- package-lock.json | 1024 ++++++++++++++++++++------- package.json | 22 +- src/client/apiutils.js | 5 +- src/commands/utils.js | 7 + src/commands/workspaces/generate.js | 2 +- src/compatibility.js | 5 +- test/compatibility.js | 3 +- test/useragent.js | 4 +- 28 files changed, 809 insertions(+), 307 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index fb57f9ab..a4adf938 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 2cbf7a3c..2431e11d 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index d5facfdc..bbb0e4cc 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 9f92151e..c0b4e419 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index edaa6e93..d786bf79 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 035c2a50..1112ea30 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index f7f444a1..efaf397e 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 3188e768..3949b5ef 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index e89f7e28..59b13911 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index 3a4183c7..92c1ff6f 100644 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import { Command } from 'commander'; import esMain from 'es-main'; diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 2d59f3ce..5e2818e8 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import fs from 'node:fs'; diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 39763778..8b19d005 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 2d69dc8e..ad3becb0 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index db859389..3d99e929 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index bb6b9571..a432ae58 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index 32bf2830..ddf5b4b8 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 99c9efd2..51ef23dc 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 85591ea0..b663a3bc 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-users.js b/bin/cortex-users.js index c97602df..3f8deb18 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex.js b/bin/cortex.js index 35789f8e..40691dd3 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -1,13 +1,13 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import { Command } from 'commander'; import esMain from 'es-main'; -import info from '../package.json' assert { type: 'json' }; +import { readPackageJSON } from '../src/commands/utils.js'; export function create() { const program = new Command(); + program.version(readPackageJSON('../../package.json').version); program.name('cortex'); program - .version(info?.version, '-v, --version') .description('Cortex CLI') .option('--debug', 'Enables enhanced log output for debugging', false) .on('option:debug', () => { diff --git a/package-lock.json b/package-lock.json index 05a948eb..16ebc0d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,29 +17,29 @@ "commander": "10.0.0", "dayjs": "1.11.7", "debug": "4.3.4", - "dockerode": "3.3.4", + "dockerode": "3.3.5", "es-main": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", "gh-got": "10.0.0", - "glob": "9.2.1", + "glob": "10.0.0", "got": "12.6.0", "graphql": "16.6.0", "graphql-request": "5.2.0", - "inquirer": "9.1.4", + "inquirer": "9.1.5", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.8.3", + "joi": "17.9.1", "jose": "4.13.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "7.4.2", + "minimatch": "9.0.0", "npm-registry-fetch": "14.0.3", - "open": "8.4.2", + "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.3.8", + "semver": "7.4.0", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", @@ -50,14 +50,14 @@ "cortex": "bin/cortex.js" }, "devDependencies": { - "@babel/eslint-parser": "7.19.1", + "@babel/eslint-parser": "7.21.3", "@babel/plugin-syntax-import-assertions": "7.20.0", "audit-ci": "6.6.1", "c8": "7.13.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.35.0", + "eslint": "8.38.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", "husky": "8.0.3", @@ -66,7 +66,7 @@ "mocked-env": "1.3.5", "nock": "13.3.0", "pkg": "5.8.1", - "sinon": "15.0.1" + "sinon": "15.0.3" }, "engines": { "node": ">=16.0.0" @@ -151,9 +151,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", + "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -614,15 +614,39 @@ "node": ">=0.1.90" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", - "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -650,9 +674,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", - "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -906,9 +930,9 @@ } }, "node_modules/@sinonjs/samsam": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", - "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", "dev": true, "dependencies": { "@sinonjs/commons": "^2.0.0", @@ -1275,6 +1299,14 @@ "tweetnacl": "^0.14.3" } }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -1310,6 +1342,17 @@ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1415,6 +1458,20 @@ "semver": "^7.0.0" } }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/c8": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", @@ -1938,7 +1995,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2020,6 +2076,38 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -2040,11 +2128,14 @@ } }, "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -2123,9 +2214,9 @@ } }, "node_modules/dockerode": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.4.tgz", - "integrity": "sha512-3EUwuXnCU+RUlQEheDjmBE0B7q66PV9Rw5NiH1sXwINq0M9c5ERP9fxgkw36ZHOtzf4AGEEYySnkx/sACC9EgQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", + "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", "dependencies": { "@balena/dockerignore": "^1.0.2", "docker-modem": "^3.0.0", @@ -2317,13 +2408,15 @@ } }, "node_modules/eslint": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", - "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^2.0.0", - "@eslint/js": "8.35.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -2334,9 +2427,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2358,7 +2450,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -2531,40 +2622,16 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/chalk": { @@ -2596,14 +2663,14 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2669,6 +2736,53 @@ "through": "^2.3.8" } }, + "node_modules/execa": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -3144,14 +3258,14 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", - "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", + "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", "dependencies": { "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.6.4" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -3173,9 +3287,9 @@ } }, "node_modules/glob/node_modules/minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -3484,6 +3598,14 @@ "node": ">= 6" } }, + "node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "engines": { + "node": ">=14.18.0" + } + }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", @@ -3601,28 +3723,28 @@ } }, "node_modules/inquirer": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", - "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.5.tgz", + "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", "dependencies": { "ansi-escapes": "^6.0.0", - "chalk": "^5.1.2", + "chalk": "^5.2.0", "cli-cursor": "^4.0.0", "cli-width": "^4.0.0", "external-editor": "^3.0.3", "figures": "^5.0.0", "lodash": "^4.17.21", - "mute-stream": "0.0.8", + "mute-stream": "1.0.0", "ora": "^6.1.2", "run-async": "^2.4.0", - "rxjs": "^7.5.7", + "rxjs": "^7.8.0", "string-width": "^5.1.2", "strip-ansi": "^7.0.1", "through": "^2.3.6", - "wrap-ansi": "^8.0.1" + "wrap-ansi": "^8.1.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.18.0" } }, "node_modules/inquirer/node_modules/ansi-regex": { @@ -3881,6 +4003,37 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -3993,6 +4146,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -4086,8 +4250,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -4155,9 +4318,9 @@ } }, "node_modules/joi": { - "version": "17.8.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", - "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", + "version": "17.9.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.1.tgz", + "integrity": "sha512-FariIi9j6QODKATGBrEX7HZcja8Bsh3rfdGYy/Sb65sGlZWK/QWesU1ghk7aJWDj95knjXlQfSmzFSPPkLVsfw==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4506,6 +4669,11 @@ "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", "dev": true }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4567,14 +4735,14 @@ } }, "node_modules/minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4917,9 +5085,12 @@ } }, "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/nan": { "version": "2.17.0", @@ -5087,6 +5258,31 @@ "node": ">=8" } }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -5177,16 +5373,17 @@ } }, "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", "is-wsl": "^2.2.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5418,7 +5615,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -5430,32 +5626,32 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", - "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", + "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", "dependencies": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" }, "engines": { - "node": ">=14" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz", + "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==", "engines": { - "node": ">=12" + "node": "14 || >=16.14" } }, "node_modules/path-scurry/node_modules/minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -5959,18 +6155,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6110,6 +6294,80 @@ "node": "*" } }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -6188,9 +6446,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6214,7 +6472,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -6226,7 +6483,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -6294,16 +6550,16 @@ } }, "node_modules/sinon": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", - "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.3.tgz", + "integrity": "sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw==", "dev": true, "dependencies": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "10.0.2", - "@sinonjs/samsam": "^7.0.1", - "diff": "^5.0.0", - "nise": "^5.1.2", + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.4", "supports-color": "^7.2.0" }, "funding": { @@ -6311,6 +6567,24 @@ "url": "https://opencollective.com/sinon" } }, + "node_modules/sinon/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/sinon/node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -6528,6 +6802,17 @@ "node": ">=8" } }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -6709,6 +6994,17 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -6901,6 +7197,14 @@ "node": ">= 10.0.0" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -7018,7 +7322,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -7276,9 +7579,9 @@ } }, "@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", + "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", "dev": true, "requires": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -7640,15 +7943,30 @@ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "optional": true }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true + }, "@eslint/eslintrc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", - "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -7669,9 +7987,9 @@ } }, "@eslint/js": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", - "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", "dev": true }, "@graphql-typed-document-node/core": { @@ -7875,9 +8193,9 @@ } }, "@sinonjs/samsam": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", - "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", "dev": true, "requires": { "@sinonjs/commons": "^2.0.0", @@ -8136,6 +8454,11 @@ "tweetnacl": "^0.14.3" } }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -8162,6 +8485,14 @@ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "requires": { + "big-integer": "^1.6.44" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8228,6 +8559,14 @@ "semver": "^7.0.0" } }, + "bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "requires": { + "run-applescript": "^5.0.0" + } + }, "c8": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", @@ -8607,7 +8946,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8662,6 +9000,26 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "requires": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + } + }, + "default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "requires": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + } + }, "defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -8676,9 +9034,9 @@ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==" }, "define-properties": { "version": "1.1.4", @@ -8732,9 +9090,9 @@ } }, "dockerode": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.4.tgz", - "integrity": "sha512-3EUwuXnCU+RUlQEheDjmBE0B7q66PV9Rw5NiH1sXwINq0M9c5ERP9fxgkw36ZHOtzf4AGEEYySnkx/sACC9EgQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", + "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", "requires": { "@balena/dockerignore": "^1.0.2", "docker-modem": "^3.0.0", @@ -8895,13 +9253,15 @@ "dev": true }, "eslint": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", - "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "requires": { - "@eslint/eslintrc": "^2.0.0", - "@eslint/js": "8.35.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -8912,9 +9272,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -8936,7 +9295,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -9093,38 +9451,21 @@ "estraverse": "^5.2.0" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true }, "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" } }, "esquery": { @@ -9172,6 +9513,37 @@ "through": "^2.3.8" } }, + "execa": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "requires": { + "mimic-fn": "^4.0.0" + } + } + } + }, "expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -9537,20 +9909,20 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "glob": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", - "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", + "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", "requires": { "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.6.4" }, "dependencies": { "minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" } } }, @@ -9781,6 +10153,11 @@ "debug": "4" } }, + "human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==" + }, "humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", @@ -9854,25 +10231,25 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", - "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.5.tgz", + "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", "requires": { "ansi-escapes": "^6.0.0", - "chalk": "^5.1.2", + "chalk": "^5.2.0", "cli-cursor": "^4.0.0", "cli-width": "^4.0.0", "external-editor": "^3.0.3", "figures": "^5.0.0", "lodash": "^4.17.21", - "mute-stream": "0.0.8", + "mute-stream": "1.0.0", "ora": "^6.1.2", "run-async": "^2.4.0", - "rxjs": "^7.5.7", + "rxjs": "^7.8.0", "string-width": "^5.1.2", "strip-ansi": "^7.0.1", "through": "^2.3.6", - "wrap-ansi": "^8.0.1" + "wrap-ansi": "^8.1.0" }, "dependencies": { "ansi-regex": { @@ -10043,6 +10420,21 @@ "is-extglob": "^2.1.1" } }, + "is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "requires": { + "is-docker": "^3.0.0" + }, + "dependencies": { + "is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==" + } + } + }, "is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -10113,6 +10505,11 @@ "call-bind": "^1.0.2" } }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -10176,8 +10573,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "istanbul-lib-coverage": { "version": "3.2.0", @@ -10227,9 +10623,9 @@ "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { - "version": "17.8.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", - "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", + "version": "17.9.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.1.tgz", + "integrity": "sha512-FariIi9j6QODKATGBrEX7HZcja8Bsh3rfdGYy/Sb65sGlZWK/QWesU1ghk7aJWDj95knjXlQfSmzFSPPkLVsfw==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -10496,6 +10892,11 @@ "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", "dev": true }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -10536,9 +10937,9 @@ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" }, "minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "requires": { "brace-expansion": "^2.0.1" }, @@ -10800,9 +11201,9 @@ } }, "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==" }, "nan": { "version": "2.17.0", @@ -10928,6 +11329,21 @@ } } }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + } + } + }, "object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -10991,12 +11407,13 @@ } }, "open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", "is-wsl": "^2.2.0" } }, @@ -11144,8 +11561,7 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", @@ -11154,23 +11570,23 @@ "dev": true }, "path-scurry": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", - "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", + "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", "requires": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" }, "dependencies": { "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz", + "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==" }, "minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" } } }, @@ -11552,12 +11968,6 @@ "functions-have-names": "^1.2.2" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -11653,6 +12063,55 @@ } } }, + "run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "requires": { + "execa": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + } + } + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -11697,9 +12156,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", "requires": { "lru-cache": "^6.0.0" } @@ -11717,7 +12176,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -11725,8 +12183,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "side-channel": { "version": "1.0.4", @@ -11760,17 +12217,34 @@ } }, "sinon": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", - "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.3.tgz", + "integrity": "sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw==", "dev": true, "requires": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "10.0.2", - "@sinonjs/samsam": "^7.0.1", - "diff": "^5.0.0", - "nise": "^5.1.2", + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.4", "supports-color": "^7.2.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true + } } }, "sisteransi": { @@ -11953,6 +12427,11 @@ "ansi-regex": "^5.0.1" } }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -12094,6 +12573,11 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, + "titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -12240,6 +12724,11 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + }, "update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -12329,7 +12818,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } diff --git a/package.json b/package.json index 9056be99..36990d06 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.2.0", + "version": "2.2.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "type": "module", @@ -65,29 +65,29 @@ "commander": "10.0.0", "dayjs": "1.11.7", "debug": "4.3.4", - "dockerode": "3.3.4", + "dockerode": "3.3.5", "es-main": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", "gh-got": "10.0.0", - "glob": "9.2.1", + "glob": "10.0.0", "got": "12.6.0", "graphql": "16.6.0", "graphql-request": "5.2.0", - "inquirer": "9.1.4", + "inquirer": "9.1.5", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.8.3", + "joi": "17.9.1", "jose": "4.13.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "7.4.2", + "minimatch": "9.0.0", "npm-registry-fetch": "14.0.3", - "open": "8.4.2", + "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.3.8", + "semver": "7.4.0", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", @@ -95,14 +95,14 @@ "yauzl": "2.10.0" }, "devDependencies": { - "@babel/eslint-parser": "7.19.1", + "@babel/eslint-parser": "7.21.3", "@babel/plugin-syntax-import-assertions": "7.20.0", "audit-ci": "6.6.1", "c8": "7.13.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.35.0", + "eslint": "8.38.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", "husky": "8.0.3", @@ -111,7 +111,7 @@ "mocked-env": "1.3.5", "nock": "13.3.0", "pkg": "5.8.1", - "sinon": "15.0.1" + "sinon": "15.0.3" }, "c8": { "check-coverage": true, diff --git a/src/client/apiutils.js b/src/client/apiutils.js index b6dcec4a..a9bd436d 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -3,12 +3,15 @@ import _ from 'lodash'; import got from 'got'; import debugSetup from 'debug'; import os from 'os'; -import pkg from '../../package.json' assert { type: 'json' }; +import { readPackageJSON } from '../commands/utils.js'; + +const pkg = readPackageJSON('../../package.json'); const debug = debugSetup('cortex:cli'); function getUserAgent() { return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${os.platform()})`; } + const gotExt = got.extend({ followRedirect: false, hooks: { diff --git a/src/commands/utils.js b/src/commands/utils.js index ae8434e8..0b3c940c 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -6,6 +6,7 @@ import debugSetup from 'debug'; import fs from 'node:fs'; import process from 'node:process'; import { globSync } from 'glob'; +import { fileURLToPath } from 'node:url'; import * as jmsepath from 'jmespath'; import path from 'node:path'; import yaml from 'js-yaml'; @@ -382,4 +383,10 @@ export const handleDeleteFailure = (response, options, type) => { const defaultErrorMessage = `${type} deletion failed: ${response.status} ${response.message}.`; return printError(defaultErrorMessage, options); }; + +export function readPackageJSON(relPath) { + const absPath = fileURLToPath(new URL(relPath, import.meta.url)); + return JSON.parse(fs.readFileSync(absPath)); +} + export { deleteFolderRecursive as deleteFile }; diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index 774e04fa..79bc591a 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -2,7 +2,7 @@ import fs from 'node:fs'; import path from 'path'; import URL from 'url-parse'; import { mkdir, writeFile } from 'fs/promises'; -import minimatch from 'minimatch'; +import { minimatch } from 'minimatch'; import inquirer from 'inquirer'; import ghGot from 'gh-got'; import { isText } from 'istextorbinary'; diff --git a/src/compatibility.js b/src/compatibility.js index d50057fe..9784b6ad 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -12,11 +12,12 @@ import npmFetch from 'npm-registry-fetch'; import Semver from 'semver'; import { got, getUserAgent } from './client/apiutils.js'; import { loadProfile } from './config.js'; -import { printError, printWarning } from './commands/utils.js'; -import pkg from '../package.json' assert { type: 'json' }; +import { printError, printWarning, readPackageJSON } from './commands/utils.js'; const debug = debugSetup('cortex:cli'); +const pkg = readPackageJSON('../../package.json'); + function getAvailableVersions(name) { debug('getAvailableVersions => %s', name); return npmFetch diff --git a/test/compatibility.js b/test/compatibility.js index c9a6c0ff..9c1ff0d9 100644 --- a/test/compatibility.js +++ b/test/compatibility.js @@ -4,12 +4,13 @@ import semver from 'semver'; import nock from 'nock'; import npmFetch from 'npm-registry-fetch'; import sinon from 'sinon'; -import pkg from '../package.json' assert { type: 'json' }; import * as compatibility from '../src/compatibility.js'; +import { readPackageJSON } from '../src/commands/utils.js'; chai.use(chaiAsPromised); const { expect } = chai; +const pkg = readPackageJSON('../../package.json'); let sandbox; describe('compatibility checks', () => { diff --git a/test/useragent.js b/test/useragent.js index 8f446456..005f1eba 100644 --- a/test/useragent.js +++ b/test/useragent.js @@ -3,8 +3,10 @@ import chaiAsPromised from 'chai-as-promised'; import nock from 'nock'; import sinon from 'sinon'; import npmFetch from 'npm-registry-fetch'; -import pkg from '../package.json' assert { type: 'json' }; import * as compatibility from '../src/compatibility.js'; +import { readPackageJSON } from '../src/commands/utils.js'; + +const pkg = readPackageJSON('../../package.json'); chai.use(chaiAsPromised); From f9b50775c0f91c7742bef0f4bce64c5686d21b6c Mon Sep 17 00:00:00 2001 From: Prajna Kandarpa <pkandarpa@cognitivescale.com> Date: Wed, 12 Apr 2023 12:00:59 +0530 Subject: [PATCH 790/864] Override "-V" default version option set by commander (#674) - Use the previous `-v` flag instead --- bin/cortex.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex.js b/bin/cortex.js index 40691dd3..139dcb51 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -5,7 +5,7 @@ import { readPackageJSON } from '../src/commands/utils.js'; export function create() { const program = new Command(); - program.version(readPackageJSON('../../package.json').version); + program.version(readPackageJSON('../../package.json').version, '-v, --version', 'Outputs the installed version of the Cortex CLI'); program.name('cortex'); program .description('Cortex CLI') From 16ee4fa5d847846cf00d28527c70a8fe3a05c935 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Wed, 12 Apr 2023 13:48:18 +0530 Subject: [PATCH 791/864] Merge conflict (#676) * Release CLI for 6.4.0 (#671) * FAB-5460 glob.sync() use cwd not root (#649) * Update package.json Bump 2.1.1 -> 2.1.2 * FAB-5168 - Fix default sort params for tasks list (#653) * set the default sort options for tasks list. This probably wasn't set earlier because tasks list did not have persistence in the past * update package-lock.json * fix high vuln with json5 by using package.json override * updated help text for tasks list --sort * update package-lock.json * remove override for json5 * update help text * vuln fix and handling messgaing (#658) * vuln fix and handling messgaing * remove debug statement * Change the handleListFailure (#659) * vuln fix and handling messgaing * remove debug statement * change message util * change details and mesage priority * Migrate from cjs -> esm (#660) * FAB-5620 Migrate from cjs -> esm Update packages to major versions for esm Fix content upload issue with node 18 Replace nyc -> c8, add initial code coverage settings Change program structure in bin/* for better testability . * Add library that detect if bin/* are running as main script * Fix import issues lodash/fp * fix non /fp lodash imports * Fix import * FAB-3809 checked error message removed "undefined" * build * Fix docgen script * Add simple unit test for docgen script, bump deps, fix bin/*.js missing create()/export, upgrade glob to 9.x * Cleanup bad error handling in recursive content upload, use async/await, add unit tests * agent changes for single batch job in mission runtime (#661) * Single batch job (#662) * agent changes for single batch job in mission runtime * remove campaign name due to hashing issue in toK8sName * mission status cli * campaign name in invoke --------- Co-authored-by: ljha <ljha@c12e.com> * Fix keytar import (#663) * Fix behavior of cortex user cli, add message for default * remove debug (#664) * allow for proper response format {} not "Deleted" (#665) * Fix delete message (#666) * Fix secret delete message (#667) * . (#668) * fix pipeline import to fix upload-artifact error (#669) * fix skills logs, add support for raw logs, and better error reporting (#670) * fix skills logs, add support for raw logs, and better error reporting * make the skillLogs call async --------- Co-authored-by: Johan Gielstra <jgielstra@cognitivescale.com> Co-authored-by: Prajna Kandarpa <pkandarpa@cognitivescale.com> Co-authored-by: Lalit Kumar Jha <ljha@cognitivescale.com> Co-authored-by: ljha <ljha@c12e.com> * generated package-lock --------- Co-authored-by: Johan Gielstra <jgielstra@cognitivescale.com> Co-authored-by: Prajna Kandarpa <pkandarpa@cognitivescale.com> Co-authored-by: Lalit Kumar Jha <ljha@cognitivescale.com> Co-authored-by: ljha <ljha@c12e.com> --- package-lock.json | 4 ++-- src/client/apiutils.js | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 16ebc0d6..18c958df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.2.0", + "version": "2.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.2.0", + "version": "2.2.1", "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "2.4.0", diff --git a/src/client/apiutils.js b/src/client/apiutils.js index a9bd436d..5c4a74cf 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -11,7 +11,6 @@ const debug = debugSetup('cortex:cli'); function getUserAgent() { return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${os.platform()})`; } - const gotExt = got.extend({ followRedirect: false, hooks: { From 35b538c825a69992d65be90e5939fa1dee9456f3 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Wed, 12 Apr 2023 15:24:41 +0530 Subject: [PATCH 792/864] Fix Windows, node version issues (#675) * FAB-5460 glob.sync() use cwd not root (#649) * Update package.json Bump 2.1.1 -> 2.1.2 * FAB-5168 - Fix default sort params for tasks list (#653) * set the default sort options for tasks list. This probably wasn't set earlier because tasks list did not have persistence in the past * update package-lock.json * fix high vuln with json5 by using package.json override * updated help text for tasks list --sort * update package-lock.json * remove override for json5 * update help text * vuln fix and handling messgaing (#658) * vuln fix and handling messgaing * remove debug statement * Change the handleListFailure (#659) * vuln fix and handling messgaing * remove debug statement * change message util * change details and mesage priority * Migrate from cjs -> esm (#660) * FAB-5620 Migrate from cjs -> esm Update packages to major versions for esm Fix content upload issue with node 18 Replace nyc -> c8, add initial code coverage settings Change program structure in bin/* for better testability . * Add library that detect if bin/* are running as main script * Fix import issues lodash/fp * fix non /fp lodash imports * Fix import * FAB-3809 checked error message removed "undefined" * build * Fix docgen script * Add simple unit test for docgen script, bump deps, fix bin/*.js missing create()/export, upgrade glob to 9.x * Cleanup bad error handling in recursive content upload, use async/await, add unit tests * agent changes for single batch job in mission runtime (#661) * Single batch job (#662) * agent changes for single batch job in mission runtime * remove campaign name due to hashing issue in toK8sName * mission status cli * campaign name in invoke --------- Co-authored-by: ljha <ljha@c12e.com> * Fix keytar import (#663) * Fix behavior of cortex user cli, add message for default * remove debug (#664) * allow for proper response format {} not "Deleted" (#665) * Fix delete message (#666) * Fix secret delete message (#667) * . (#668) * fix pipeline import to fix upload-artifact error (#669) * fix skills logs, add support for raw logs, and better error reporting (#670) * fix skills logs, add support for raw logs, and better error reporting * make the skillLogs call async * Fix shebang, remove import json assert syntax (#673) * Fix shebang, remove import json assert syntax . . * Use path not URL * Override "-V" default version option set by commander (#674) - Use the previous `-v` flag instead * Merge conflict (#676) * Release CLI for 6.4.0 (#671) * FAB-5460 glob.sync() use cwd not root (#649) * Update package.json Bump 2.1.1 -> 2.1.2 * FAB-5168 - Fix default sort params for tasks list (#653) * set the default sort options for tasks list. This probably wasn't set earlier because tasks list did not have persistence in the past * update package-lock.json * fix high vuln with json5 by using package.json override * updated help text for tasks list --sort * update package-lock.json * remove override for json5 * update help text * vuln fix and handling messgaing (#658) * vuln fix and handling messgaing * remove debug statement * Change the handleListFailure (#659) * vuln fix and handling messgaing * remove debug statement * change message util * change details and mesage priority * Migrate from cjs -> esm (#660) * FAB-5620 Migrate from cjs -> esm Update packages to major versions for esm Fix content upload issue with node 18 Replace nyc -> c8, add initial code coverage settings Change program structure in bin/* for better testability . * Add library that detect if bin/* are running as main script * Fix import issues lodash/fp * fix non /fp lodash imports * Fix import * FAB-3809 checked error message removed "undefined" * build * Fix docgen script * Add simple unit test for docgen script, bump deps, fix bin/*.js missing create()/export, upgrade glob to 9.x * Cleanup bad error handling in recursive content upload, use async/await, add unit tests * agent changes for single batch job in mission runtime (#661) * Single batch job (#662) * agent changes for single batch job in mission runtime * remove campaign name due to hashing issue in toK8sName * mission status cli * campaign name in invoke --------- Co-authored-by: ljha <ljha@c12e.com> * Fix keytar import (#663) * Fix behavior of cortex user cli, add message for default * remove debug (#664) * allow for proper response format {} not "Deleted" (#665) * Fix delete message (#666) * Fix secret delete message (#667) * . (#668) * fix pipeline import to fix upload-artifact error (#669) * fix skills logs, add support for raw logs, and better error reporting (#670) * fix skills logs, add support for raw logs, and better error reporting * make the skillLogs call async --------- Co-authored-by: Johan Gielstra <jgielstra@cognitivescale.com> Co-authored-by: Prajna Kandarpa <pkandarpa@cognitivescale.com> Co-authored-by: Lalit Kumar Jha <ljha@cognitivescale.com> Co-authored-by: ljha <ljha@c12e.com> * generated package-lock --------- Co-authored-by: Johan Gielstra <jgielstra@cognitivescale.com> Co-authored-by: Prajna Kandarpa <pkandarpa@cognitivescale.com> Co-authored-by: Lalit Kumar Jha <ljha@cognitivescale.com> Co-authored-by: ljha <ljha@c12e.com> --------- Co-authored-by: Johan Gielstra <jgielstra@cognitivescale.com> Co-authored-by: Prajna Kandarpa <pkandarpa@cognitivescale.com> Co-authored-by: Lalit Kumar Jha <ljha@cognitivescale.com> Co-authored-by: ljha <ljha@c12e.com> --- bin/cortex-actions.js | 2 +- bin/cortex-agents.js | 2 +- bin/cortex-assessments.js | 2 +- bin/cortex-campaigns.js | 2 +- bin/cortex-connections.js | 2 +- bin/cortex-content.js | 2 +- bin/cortex-deploy.js | 2 +- bin/cortex-docker.js | 2 +- bin/cortex-experiments.js | 2 +- bin/cortex-generate.js | 2 +- bin/cortex-missions.js | 2 +- bin/cortex-models.js | 2 +- bin/cortex-projects.js | 2 +- bin/cortex-roles.js | 2 +- bin/cortex-secrets.js | 2 +- bin/cortex-sessions.js | 2 +- bin/cortex-skills.js | 2 +- bin/cortex-types.js | 2 +- bin/cortex-users.js | 2 +- bin/cortex.js | 6 +- package-lock.json | 1101 ++++++++++++++++++++------- package.json | 22 +- src/client/apiutils.js | 4 +- src/commands/utils.js | 7 + src/commands/workspaces/generate.js | 2 +- src/compatibility.js | 5 +- test/compatibility.js | 3 +- test/useragent.js | 4 +- 28 files changed, 883 insertions(+), 309 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index fb57f9ab..a4adf938 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 2cbf7a3c..2431e11d 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index d5facfdc..bbb0e4cc 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 9f92151e..c0b4e419 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index edaa6e93..d786bf79 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 035c2a50..1112ea30 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index f7f444a1..efaf397e 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 3188e768..3949b5ef 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index e89f7e28..59b13911 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js index 3a4183c7..92c1ff6f 100644 --- a/bin/cortex-generate.js +++ b/bin/cortex-generate.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import { Command } from 'commander'; import esMain from 'es-main'; diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 2d59f3ce..5e2818e8 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import fs from 'node:fs'; diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 39763778..8b19d005 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 2d69dc8e..ad3becb0 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index db859389..3d99e929 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index bb6b9571..a432ae58 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index 32bf2830..ddf5b4b8 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 99c9efd2..51ef23dc 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-types.js b/bin/cortex-types.js index 85591ea0..b663a3bc 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; diff --git a/bin/cortex-users.js b/bin/cortex-users.js index c97602df..3f8deb18 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -1,4 +1,4 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; diff --git a/bin/cortex.js b/bin/cortex.js index 35789f8e..139dcb51 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -1,13 +1,13 @@ -#!/usr/bin/env -S node --no-warnings +#!/usr/bin/env node import { Command } from 'commander'; import esMain from 'es-main'; -import info from '../package.json' assert { type: 'json' }; +import { readPackageJSON } from '../src/commands/utils.js'; export function create() { const program = new Command(); + program.version(readPackageJSON('../../package.json').version, '-v, --version', 'Outputs the installed version of the Cortex CLI'); program.name('cortex'); program - .version(info?.version, '-v, --version') .description('Cortex CLI') .option('--debug', 'Enables enhanced log output for debugging', false) .on('option:debug', () => { diff --git a/package-lock.json b/package-lock.json index 05a948eb..afb72fff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.2.0", + "version": "2.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.2.0", + "version": "2.2.1", "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "2.4.0", @@ -17,29 +17,29 @@ "commander": "10.0.0", "dayjs": "1.11.7", "debug": "4.3.4", - "dockerode": "3.3.4", + "dockerode": "3.3.5", "es-main": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", "gh-got": "10.0.0", - "glob": "9.2.1", + "glob": "10.0.0", "got": "12.6.0", "graphql": "16.6.0", "graphql-request": "5.2.0", - "inquirer": "9.1.4", + "inquirer": "9.1.5", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.8.3", + "joi": "17.9.1", "jose": "4.13.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "7.4.2", + "minimatch": "9.0.0", "npm-registry-fetch": "14.0.3", - "open": "8.4.2", + "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.3.8", + "semver": "7.4.0", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", @@ -50,14 +50,14 @@ "cortex": "bin/cortex.js" }, "devDependencies": { - "@babel/eslint-parser": "7.19.1", + "@babel/eslint-parser": "7.21.3", "@babel/plugin-syntax-import-assertions": "7.20.0", "audit-ci": "6.6.1", "c8": "7.13.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.35.0", + "eslint": "8.38.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", "husky": "8.0.3", @@ -66,7 +66,7 @@ "mocked-env": "1.3.5", "nock": "13.3.0", "pkg": "5.8.1", - "sinon": "15.0.1" + "sinon": "15.0.3" }, "engines": { "node": ">=16.0.0" @@ -151,9 +151,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", + "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -614,15 +614,39 @@ "node": ">=0.1.90" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", - "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -650,9 +674,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", - "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -906,9 +930,9 @@ } }, "node_modules/@sinonjs/samsam": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", - "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", "dev": true, "dependencies": { "@sinonjs/commons": "^2.0.0", @@ -1275,6 +1299,14 @@ "tweetnacl": "^0.14.3" } }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -1310,6 +1342,17 @@ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1415,6 +1458,20 @@ "semver": "^7.0.0" } }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/c8": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", @@ -1938,7 +1995,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2020,6 +2076,38 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -2040,11 +2128,14 @@ } }, "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -2123,9 +2214,9 @@ } }, "node_modules/dockerode": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.4.tgz", - "integrity": "sha512-3EUwuXnCU+RUlQEheDjmBE0B7q66PV9Rw5NiH1sXwINq0M9c5ERP9fxgkw36ZHOtzf4AGEEYySnkx/sACC9EgQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", + "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", "dependencies": { "@balena/dockerignore": "^1.0.2", "docker-modem": "^3.0.0", @@ -2317,13 +2408,15 @@ } }, "node_modules/eslint": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", - "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^2.0.0", - "@eslint/js": "8.35.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -2334,9 +2427,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2358,7 +2450,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -2531,40 +2622,16 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/chalk": { @@ -2596,14 +2663,14 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2669,6 +2736,53 @@ "through": "^2.3.8" } }, + "node_modules/execa": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execa/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -3144,14 +3258,14 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", - "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", + "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", "dependencies": { "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.6.4" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -3173,9 +3287,9 @@ } }, "node_modules/glob/node_modules/minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -3484,6 +3598,14 @@ "node": ">= 6" } }, + "node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "engines": { + "node": ">=14.18.0" + } + }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", @@ -3601,28 +3723,101 @@ } }, "node_modules/inquirer": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", - "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.5.tgz", + "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", "dependencies": { "ansi-escapes": "^6.0.0", - "chalk": "^5.1.2", + "chalk": "^5.2.0", "cli-cursor": "^4.0.0", "cli-width": "^4.0.0", "external-editor": "^3.0.3", "figures": "^5.0.0", "lodash": "^4.17.21", - "mute-stream": "0.0.8", + "mute-stream": "1.0.0", "ora": "^6.1.2", "run-async": "^2.4.0", - "rxjs": "^7.5.7", + "rxjs": "^7.8.0", "string-width": "^5.1.2", "strip-ansi": "^7.0.1", "through": "^2.3.6", - "wrap-ansi": "^8.0.1" + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/inquirer/node_modules/ansi-regex": { @@ -3881,6 +4076,37 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -3993,6 +4219,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -4086,8 +4323,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -4155,9 +4391,9 @@ } }, "node_modules/joi": { - "version": "17.8.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", - "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", + "version": "17.9.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.1.tgz", + "integrity": "sha512-FariIi9j6QODKATGBrEX7HZcja8Bsh3rfdGYy/Sb65sGlZWK/QWesU1ghk7aJWDj95knjXlQfSmzFSPPkLVsfw==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4506,6 +4742,11 @@ "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", "dev": true }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4567,14 +4808,14 @@ } }, "node_modules/minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4917,9 +5158,12 @@ } }, "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/nan": { "version": "2.17.0", @@ -5087,6 +5331,31 @@ "node": ">=8" } }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -5177,16 +5446,17 @@ } }, "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", "is-wsl": "^2.2.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5418,7 +5688,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -5430,32 +5699,32 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", - "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", + "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", "dependencies": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" }, "engines": { - "node": ">=14" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz", + "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==", "engines": { - "node": ">=12" + "node": "14 || >=16.14" } }, "node_modules/path-scurry/node_modules/minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -5959,18 +6228,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6110,6 +6367,80 @@ "node": "*" } }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -6188,9 +6519,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6214,7 +6545,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -6226,7 +6556,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -6294,16 +6623,16 @@ } }, "node_modules/sinon": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", - "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.3.tgz", + "integrity": "sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw==", "dev": true, "dependencies": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "10.0.2", - "@sinonjs/samsam": "^7.0.1", - "diff": "^5.0.0", - "nise": "^5.1.2", + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.4", "supports-color": "^7.2.0" }, "funding": { @@ -6311,6 +6640,24 @@ "url": "https://opencollective.com/sinon" } }, + "node_modules/sinon/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/sinon/node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -6528,6 +6875,17 @@ "node": ">=8" } }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -6709,6 +7067,17 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -6901,6 +7270,14 @@ "node": ">= 10.0.0" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -7018,7 +7395,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -7276,9 +7652,9 @@ } }, "@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", + "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", "dev": true, "requires": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -7640,15 +8016,30 @@ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "optional": true }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true + }, "@eslint/eslintrc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", - "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -7669,9 +8060,9 @@ } }, "@eslint/js": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", - "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", "dev": true }, "@graphql-typed-document-node/core": { @@ -7875,9 +8266,9 @@ } }, "@sinonjs/samsam": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", - "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", "dev": true, "requires": { "@sinonjs/commons": "^2.0.0", @@ -8136,6 +8527,11 @@ "tweetnacl": "^0.14.3" } }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -8162,6 +8558,14 @@ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "requires": { + "big-integer": "^1.6.44" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8228,6 +8632,14 @@ "semver": "^7.0.0" } }, + "bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "requires": { + "run-applescript": "^5.0.0" + } + }, "c8": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", @@ -8607,7 +9019,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8662,6 +9073,26 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "requires": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + } + }, + "default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "requires": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + } + }, "defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -8676,9 +9107,9 @@ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==" }, "define-properties": { "version": "1.1.4", @@ -8732,9 +9163,9 @@ } }, "dockerode": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.4.tgz", - "integrity": "sha512-3EUwuXnCU+RUlQEheDjmBE0B7q66PV9Rw5NiH1sXwINq0M9c5ERP9fxgkw36ZHOtzf4AGEEYySnkx/sACC9EgQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", + "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", "requires": { "@balena/dockerignore": "^1.0.2", "docker-modem": "^3.0.0", @@ -8895,13 +9326,15 @@ "dev": true }, "eslint": { - "version": "8.35.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", - "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "requires": { - "@eslint/eslintrc": "^2.0.0", - "@eslint/js": "8.35.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -8912,9 +9345,8 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -8936,7 +9368,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -9093,38 +9524,21 @@ "estraverse": "^5.2.0" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true }, "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" } }, "esquery": { @@ -9172,6 +9586,37 @@ "through": "^2.3.8" } }, + "execa": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "requires": { + "mimic-fn": "^4.0.0" + } + } + } + }, "expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -9537,20 +9982,20 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "glob": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.2.1.tgz", - "integrity": "sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", + "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", "requires": { "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.6.4" }, "dependencies": { "minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" } } }, @@ -9781,6 +10226,11 @@ "debug": "4" } }, + "human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==" + }, "humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", @@ -9854,25 +10304,25 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.4.tgz", - "integrity": "sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==", + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.5.tgz", + "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", "requires": { "ansi-escapes": "^6.0.0", - "chalk": "^5.1.2", + "chalk": "^5.2.0", "cli-cursor": "^4.0.0", "cli-width": "^4.0.0", "external-editor": "^3.0.3", "figures": "^5.0.0", "lodash": "^4.17.21", - "mute-stream": "0.0.8", + "mute-stream": "1.0.0", "ora": "^6.1.2", "run-async": "^2.4.0", - "rxjs": "^7.5.7", + "rxjs": "^7.8.0", "string-width": "^5.1.2", "strip-ansi": "^7.0.1", "through": "^2.3.6", - "wrap-ansi": "^8.0.1" + "wrap-ansi": "^8.1.0" }, "dependencies": { "ansi-regex": { @@ -10043,6 +10493,21 @@ "is-extglob": "^2.1.1" } }, + "is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "requires": { + "is-docker": "^3.0.0" + }, + "dependencies": { + "is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==" + } + } + }, "is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -10113,6 +10578,11 @@ "call-bind": "^1.0.2" } }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -10176,8 +10646,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "istanbul-lib-coverage": { "version": "3.2.0", @@ -10227,9 +10696,9 @@ "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { - "version": "17.8.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.8.3.tgz", - "integrity": "sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==", + "version": "17.9.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.1.tgz", + "integrity": "sha512-FariIi9j6QODKATGBrEX7HZcja8Bsh3rfdGYy/Sb65sGlZWK/QWesU1ghk7aJWDj95knjXlQfSmzFSPPkLVsfw==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -10496,6 +10965,11 @@ "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", "dev": true }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -10536,9 +11010,9 @@ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" }, "minimatch": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.2.tgz", - "integrity": "sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "requires": { "brace-expansion": "^2.0.1" }, @@ -10800,9 +11274,9 @@ } }, "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==" }, "nan": { "version": "2.17.0", @@ -10928,6 +11402,21 @@ } } }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + } + } + }, "object-inspect": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", @@ -10991,12 +11480,13 @@ } }, "open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", "is-wsl": "^2.2.0" } }, @@ -11144,8 +11634,7 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", @@ -11154,23 +11643,23 @@ "dev": true }, "path-scurry": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.1.tgz", - "integrity": "sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", + "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", "requires": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.0.0", + "minipass": "^5.0.0" }, "dependencies": { "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz", + "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==" }, "minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" } } }, @@ -11552,12 +12041,6 @@ "functions-have-names": "^1.2.2" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -11653,6 +12136,55 @@ } } }, + "run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "requires": { + "execa": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + } + } + }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -11697,9 +12229,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", + "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", "requires": { "lru-cache": "^6.0.0" } @@ -11717,7 +12249,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -11725,8 +12256,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "side-channel": { "version": "1.0.4", @@ -11760,17 +12290,34 @@ } }, "sinon": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.1.tgz", - "integrity": "sha512-PZXKc08f/wcA/BMRGBze2Wmw50CWPiAH3E21EOi4B49vJ616vW4DQh4fQrqsYox2aNR/N3kCqLuB0PwwOucQrg==", + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.3.tgz", + "integrity": "sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw==", "dev": true, "requires": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "10.0.2", - "@sinonjs/samsam": "^7.0.1", - "diff": "^5.0.0", - "nise": "^5.1.2", + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.4", "supports-color": "^7.2.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true + } } }, "sisteransi": { @@ -11953,6 +12500,11 @@ "ansi-regex": "^5.0.1" } }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -12094,6 +12646,11 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, + "titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -12240,6 +12797,11 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + }, "update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -12329,7 +12891,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } diff --git a/package.json b/package.json index 9056be99..36990d06 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.2.0", + "version": "2.2.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "type": "module", @@ -65,29 +65,29 @@ "commander": "10.0.0", "dayjs": "1.11.7", "debug": "4.3.4", - "dockerode": "3.3.4", + "dockerode": "3.3.5", "es-main": "1.2.0", "form-data": "4.0.0", "get-stream": "6.0.1", "gh-got": "10.0.0", - "glob": "9.2.1", + "glob": "10.0.0", "got": "12.6.0", "graphql": "16.6.0", "graphql-request": "5.2.0", - "inquirer": "9.1.4", + "inquirer": "9.1.5", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.8.3", + "joi": "17.9.1", "jose": "4.13.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "7.4.2", + "minimatch": "9.0.0", "npm-registry-fetch": "14.0.3", - "open": "8.4.2", + "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.3.8", + "semver": "7.4.0", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", @@ -95,14 +95,14 @@ "yauzl": "2.10.0" }, "devDependencies": { - "@babel/eslint-parser": "7.19.1", + "@babel/eslint-parser": "7.21.3", "@babel/plugin-syntax-import-assertions": "7.20.0", "audit-ci": "6.6.1", "c8": "7.13.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.35.0", + "eslint": "8.38.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", "husky": "8.0.3", @@ -111,7 +111,7 @@ "mocked-env": "1.3.5", "nock": "13.3.0", "pkg": "5.8.1", - "sinon": "15.0.1" + "sinon": "15.0.3" }, "c8": { "check-coverage": true, diff --git a/src/client/apiutils.js b/src/client/apiutils.js index b6dcec4a..5c4a74cf 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -3,7 +3,9 @@ import _ from 'lodash'; import got from 'got'; import debugSetup from 'debug'; import os from 'os'; -import pkg from '../../package.json' assert { type: 'json' }; +import { readPackageJSON } from '../commands/utils.js'; + +const pkg = readPackageJSON('../../package.json'); const debug = debugSetup('cortex:cli'); function getUserAgent() { diff --git a/src/commands/utils.js b/src/commands/utils.js index ae8434e8..0b3c940c 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -6,6 +6,7 @@ import debugSetup from 'debug'; import fs from 'node:fs'; import process from 'node:process'; import { globSync } from 'glob'; +import { fileURLToPath } from 'node:url'; import * as jmsepath from 'jmespath'; import path from 'node:path'; import yaml from 'js-yaml'; @@ -382,4 +383,10 @@ export const handleDeleteFailure = (response, options, type) => { const defaultErrorMessage = `${type} deletion failed: ${response.status} ${response.message}.`; return printError(defaultErrorMessage, options); }; + +export function readPackageJSON(relPath) { + const absPath = fileURLToPath(new URL(relPath, import.meta.url)); + return JSON.parse(fs.readFileSync(absPath)); +} + export { deleteFolderRecursive as deleteFile }; diff --git a/src/commands/workspaces/generate.js b/src/commands/workspaces/generate.js index 774e04fa..79bc591a 100644 --- a/src/commands/workspaces/generate.js +++ b/src/commands/workspaces/generate.js @@ -2,7 +2,7 @@ import fs from 'node:fs'; import path from 'path'; import URL from 'url-parse'; import { mkdir, writeFile } from 'fs/promises'; -import minimatch from 'minimatch'; +import { minimatch } from 'minimatch'; import inquirer from 'inquirer'; import ghGot from 'gh-got'; import { isText } from 'istextorbinary'; diff --git a/src/compatibility.js b/src/compatibility.js index d50057fe..9784b6ad 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -12,11 +12,12 @@ import npmFetch from 'npm-registry-fetch'; import Semver from 'semver'; import { got, getUserAgent } from './client/apiutils.js'; import { loadProfile } from './config.js'; -import { printError, printWarning } from './commands/utils.js'; -import pkg from '../package.json' assert { type: 'json' }; +import { printError, printWarning, readPackageJSON } from './commands/utils.js'; const debug = debugSetup('cortex:cli'); +const pkg = readPackageJSON('../../package.json'); + function getAvailableVersions(name) { debug('getAvailableVersions => %s', name); return npmFetch diff --git a/test/compatibility.js b/test/compatibility.js index c9a6c0ff..9c1ff0d9 100644 --- a/test/compatibility.js +++ b/test/compatibility.js @@ -4,12 +4,13 @@ import semver from 'semver'; import nock from 'nock'; import npmFetch from 'npm-registry-fetch'; import sinon from 'sinon'; -import pkg from '../package.json' assert { type: 'json' }; import * as compatibility from '../src/compatibility.js'; +import { readPackageJSON } from '../src/commands/utils.js'; chai.use(chaiAsPromised); const { expect } = chai; +const pkg = readPackageJSON('../../package.json'); let sandbox; describe('compatibility checks', () => { diff --git a/test/useragent.js b/test/useragent.js index 8f446456..005f1eba 100644 --- a/test/useragent.js +++ b/test/useragent.js @@ -3,8 +3,10 @@ import chaiAsPromised from 'chai-as-promised'; import nock from 'nock'; import sinon from 'sinon'; import npmFetch from 'npm-registry-fetch'; -import pkg from '../package.json' assert { type: 'json' }; import * as compatibility from '../src/compatibility.js'; +import { readPackageJSON } from '../src/commands/utils.js'; + +const pkg = readPackageJSON('../../package.json'); chai.use(chaiAsPromised); From f660046ce054ee71c57f4083c9e203aad09c8c41 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Tue, 18 Apr 2023 16:46:25 +0530 Subject: [PATCH 793/864] remove the old asc and desc sort (#678) --- bin/cortex-agents.js | 2 +- bin/cortex-tasks.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 2431e11d..b42823eb 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -192,7 +192,7 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) // eslint-disable-next-line max-len - .option('--sort <asc|desc>', 'Sort the activations by start timestamp ascending (asc) or descending (desc) or as mongo query', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) .option('--filter <filter>', 'A Mongo style filter to use.') .action(withCompatibilityCheck((options) => { try { diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index 646b8ea2..dfa91054 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -32,7 +32,7 @@ export function create() { .option('--filter <filter>', 'A Mongo style filter to use.') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .option('--sort <asc|desc|<mongo-style-sort-expr>', 'Ascending, descending or Mongo style sort statement.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.startTime)) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.startTime)) .action(withCompatibilityCheck(async (options) => { try { await new ListTasksCommand(program).execute(options); From fccd457ef9c5158029afe355f353ccb61940d8a1 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Wed, 26 Apr 2023 15:13:53 +0530 Subject: [PATCH 794/864] remove generate from CLI (#680) --- bin/cortex-generate.js | 23 ---------------------- bin/cortex.js | 7 +++---- src/commands/workspaces/workspace-utils.js | 6 +++--- 3 files changed, 6 insertions(+), 30 deletions(-) delete mode 100644 bin/cortex-generate.js diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js deleted file mode 100644 index 92c1ff6f..00000000 --- a/bin/cortex-generate.js +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env node -import chalk from 'chalk'; -import { Command } from 'commander'; -import esMain from 'es-main'; - -function create() { - const program = new Command(); - - program.name('cortex generate'); - program.description('Scaffolding Cortex Components [DEPRECATED]'); - program - .command('skill [skillName] [type]') - .description('Generates the structure and top level build script for a skill in current directory') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .action(() => { - console.error(chalk.red('Generate command has been superceded by the Workspaces command.')); - }); - return program; -} -if (esMain(import.meta)) { - create().showHelpAfterError().parseAsync(process.argv); -} -export default create(); diff --git a/bin/cortex.js b/bin/cortex.js index 139dcb51..980003c1 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -22,9 +22,7 @@ export function create() { .command('content <cmd>', 'Work with Cortex Managed Content') .command('deploy <cmd>', 'Work with Cortex Artifacts export for deployment') .command('docker <cmd>', 'Work with Docker') - .command('experiments <cmd>', 'Work with Cortex Experiments') - .command('generate <cmd>', 'Scaffold Cortex Components') - .command('workspaces <cmd>', 'Scaffold Cortex Components') + .command('experiments <cmd>', 'Work with Cortex Experiments') .command('missions <cmd>', 'Work with Cortex Missions') .command('models <cmd>', 'Work with Cortex Models') .command('projects <cmd>', 'Work with Cortex Projects') @@ -34,7 +32,8 @@ export function create() { .command('skills <cmd>', 'Work with Cortex Skills') .command('tasks <cmd>', 'Work with Cortex Tasks') .command('types <cmd>', 'Work with Cortex Types') - .command('users <cmd>', 'Work with a Cortex Users'); + .command('users <cmd>', 'Work with a Cortex Users') + .command('workspaces <cmd>', 'Scaffold Cortex Components'); return program; } if (esMain(import.meta)) { diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 1dfc475c..0e5e19dd 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -27,7 +27,7 @@ const CORTEX_CLI_AUTH_USER = 'cortex-cli'; async function getPasswordHeaded() { return keytar.getPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER); } -function readLocaFile() { +function readLocalFile() { const dataFile = path.join(configDir(), 'cache.dat'); // nothing stored if (!existsSync(dataFile)) return {}; @@ -36,14 +36,14 @@ function readLocaFile() { return JSON.parse(decoded); } function getPasswordHeadless() { - return _.get(readLocaFile(), [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER]); + return _.get(readLocalFile(), [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER]); } async function storePasswordHeaded(val) { await keytar.setPassword(CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER, val); } function storePasswordHeadless(val) { const dataFile = path.join(configDir(), 'cache.dat'); - const originaldata = readLocaFile(); + const originaldata = readLocalFile(); const updated = _.set(originaldata, [CORTEX_CLI_AUTH_ID, CORTEX_CLI_AUTH_USER], val); writeFileSync(dataFile, Buffer.from(JSON.stringify(updated)).toString('base64')); } From b597fc9d7ca76bcb8392495264db56dbe035a92b Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Thu, 27 Apr 2023 13:50:24 +0530 Subject: [PATCH 795/864] handling dependecy check for types delete (#681) --- src/commands/types.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/commands/types.js b/src/commands/types.js index 9cebb6b9..f16d2431 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -5,7 +5,7 @@ import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Catalog from '../client/catalog.js'; import { - LISTTABLEFORMAT, filterObject, printExtendedLogs, handleListFailure, getFilteredOutput, + LISTTABLEFORMAT, filterObject, printExtendedLogs, handleListFailure, getFilteredOutput, handleDeleteFailure, printSuccess, printError, parseObject, handleTable, } from './utils.js'; @@ -102,9 +102,8 @@ export class DeleteTypeCommand { if (response.success) { const result = filterObject(response.type, options); printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to delete type ${typeName}: ${response.message}`, options); - } + } + return handleDeleteFailure(response, options, 'Types'); }) .catch((err) => { printError(`Failed to delete type ${typeName}: ${err.status} ${err.message}`, options); From 562374c5b71a0486b4324fbe4807583e014311fb Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Fri, 28 Apr 2023 12:15:21 +0530 Subject: [PATCH 796/864] fix incorrect logic (#682) --- src/commands/types.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/types.js b/src/commands/types.js index f16d2431..4ab51f66 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -101,8 +101,8 @@ export class DeleteTypeCommand { catalog.deleteType(options.project || profile.project, profile.token, typeName).then((response) => { if (response.success) { const result = filterObject(response.type, options); - printSuccess(JSON.stringify(result, null, 2), options); - } + return printSuccess(JSON.stringify(result, null, 2), options); + } return handleDeleteFailure(response, options, 'Types'); }) .catch((err) => { From 29b3a9b2750c5dfba2b00e51ba0f1ec15601bccb Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Thu, 4 May 2023 12:22:08 +0530 Subject: [PATCH 797/864] Bump version (#684) * Update package-lock.json * Update package.json --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index afb72fff..290b5f14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.2.1", + "version": "2.2.2", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 36990d06..019e9df5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.2.1", + "version": "2.2.2", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "type": "module", From a45afc31caf1f4626ce22c33a50244fd9c9891ec Mon Sep 17 00:00:00 2001 From: Davyd Ramirez <98486199+dramirez-cs@users.noreply.github.com> Date: Wed, 17 May 2023 15:52:16 -0400 Subject: [PATCH 798/864] Create skills.yaml added test yaml; file --- skills.yaml | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 skills.yaml diff --git a/skills.yaml b/skills.yaml new file mode 100644 index 00000000..af5a7059 --- /dev/null +++ b/skills.yaml @@ -0,0 +1,63 @@ +camel: 1.0.0 +name: smoketest +title: smoketest Title +description: smoketest Description + +inputs: + - name: request + title: API Request + parameters: + - name: params + type: object + description: Request Parameters + required: true + routing: + all: + action: smoketest + runtime: cortex/daemons + output: response + +outputs: + - name: response + title: API Response + parameters: + - name: result + type: object + description: API Response + required: true + +properties: + - name: daemon.method + title: Daemon method + description: Update default value to HTTP method supported by endpoint + required: true + type: String + defaultValue: POST + - name: daemon.path + title: Daemon path + description: Update default value to HTTP endpoint path in container + required: true + type: String + defaultValue: invoke + - name: daemon.port + title: Daemon Port + description: Update default value to port on which app will be running + required: true + type: String + defaultValue: 5000 + +actions: + - name: smoketest + type: daemon + image: jgielstracs/smoketest:906c95 + environmentVariables: '"TEST"="value"' + command: + - uvicorn + - "main:app" + - --host + - "0.0.0.0" + - --port + - "5000" + - --workers + - "2" + port: 5000 From d94901e307f875e74677bfc264be35130d3423e5 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Thu, 18 May 2023 11:53:35 +0530 Subject: [PATCH 799/864] Not the right place for the test file (#685) --- skills.yaml | 63 ----------------------------------------------------- 1 file changed, 63 deletions(-) delete mode 100644 skills.yaml diff --git a/skills.yaml b/skills.yaml deleted file mode 100644 index af5a7059..00000000 --- a/skills.yaml +++ /dev/null @@ -1,63 +0,0 @@ -camel: 1.0.0 -name: smoketest -title: smoketest Title -description: smoketest Description - -inputs: - - name: request - title: API Request - parameters: - - name: params - type: object - description: Request Parameters - required: true - routing: - all: - action: smoketest - runtime: cortex/daemons - output: response - -outputs: - - name: response - title: API Response - parameters: - - name: result - type: object - description: API Response - required: true - -properties: - - name: daemon.method - title: Daemon method - description: Update default value to HTTP method supported by endpoint - required: true - type: String - defaultValue: POST - - name: daemon.path - title: Daemon path - description: Update default value to HTTP endpoint path in container - required: true - type: String - defaultValue: invoke - - name: daemon.port - title: Daemon Port - description: Update default value to port on which app will be running - required: true - type: String - defaultValue: 5000 - -actions: - - name: smoketest - type: daemon - image: jgielstracs/smoketest:906c95 - environmentVariables: '"TEST"="value"' - command: - - uvicorn - - "main:app" - - --host - - "0.0.0.0" - - --port - - "5000" - - --workers - - "2" - port: 5000 From c0d0a824edffd929ca249a63c2ab313b8829f199 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 22 May 2023 16:01:49 -0500 Subject: [PATCH 800/864] Add --output openapi to get skill and agent (#686) . --- bin/cortex-agents.js | 1 + bin/cortex-skills.js | 2 +- src/client/catalog.js | 54 ++++++++++++++++++++++++++---------------- src/commands/agents.js | 40 ++++++++++++++----------------- src/commands/skills.js | 2 +- src/commands/utils.js | 2 +- 6 files changed, 56 insertions(+), 45 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index b42823eb..90fa4907 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -90,6 +90,7 @@ export function create() { .alias('get') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('-o, --output <json|yaml|openapi>', 'Format output as yaml or k8s resource') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 51ef23dc..7e559e79 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -50,7 +50,7 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resource') + .option('-o, --output <json|yaml|k8s|openapi>', 'Format output as yaml or k8s resource') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output') diff --git a/src/client/catalog.js b/src/client/catalog.js index ce7feeec..26ae395b 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -18,6 +18,7 @@ import debugSetup from 'debug'; import FormData from 'form-data'; import http from 'https'; import fs from 'node:fs'; +import urljoin from 'url-join'; import { got, defaultHeaders } from './apiutils.js'; import { constructError, formatAllServiceInputParameters, checkProject, printSuccess, printError, printTable, @@ -31,7 +32,7 @@ const createEndpoints = (baseUri) => ({ types: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/types`, campaigns: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/campaigns/`, }); -export default (class Catalog { +export default class Catalog { constructor(cortexUrl) { this.cortexUrl = cortexUrl; this.endpoints = createEndpoints(cortexUrl); @@ -79,7 +80,7 @@ export default (class Catalog { headers: defaultHeaders(token), searchParams, }); - if (output === 'json') return res.json(); + if (output.toLocaleLowerCase() === 'json') return res.json(); return res.text(); } catch (err) { return constructError(err); @@ -179,30 +180,43 @@ export default (class Catalog { .catch((err) => constructError(err)); } - describeAgent(projectId, token, agentName, verbose) { + async describeAgent(projectId, token, agentName, options) { checkProject(projectId); - const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; + let endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; + if (options?.output?.toLocaleLowerCase() === 'openapi') { + endpoint = urljoin(endpoint, 'openapi.json'); + } debug('describeAgent(%s) => %s', agentName, endpoint); - return got - .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() - .then((agent) => ({ success: true, agent })) - .catch((err) => constructError(err)); + try { + const res = await got + .get(endpoint, { + headers: defaultHeaders(token), + searchParams: { verbose: options?.verbose, output: options?.output }, + }); + if (options?.output?.toLocaleLowerCase() === 'yaml') return res.body; + return res.json; + } catch (err) { + return constructError(err); + } } - describeAgentVersions(projectId, token, agentName) { + async describeAgentVersions(projectId, token, agentName) { checkProject(projectId); const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}/versions`; debug('describeAgentVersions(%s) => %s', agentName, endpoint); - return got - .get(endpoint, { - headers: defaultHeaders(token), - }) - .json() - .then((agent) => ({ success: true, agent })) - .catch((err) => constructError(err)); + try { + const agent = await got + .get(endpoint, { + headers: defaultHeaders(token), + }) + .json(); + return ({ + success: true, + agent, + }); + } catch (err) { + return constructError(err); + } } deployAgent(projectId, token, agentName, verbose = false) { @@ -541,4 +555,4 @@ export default (class Catalog { .then((agent) => ({ success: true, agent })) .catch((err) => constructError(err)); } -}); +} diff --git a/src/commands/agents.js b/src/commands/agents.js index ce0914a2..672f3966 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -4,6 +4,7 @@ import _ from 'lodash'; import dayjs from 'dayjs'; import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; +// eslint-disable-next-line import/no-named-as-default import Catalog from '../client/catalog.js'; import Agents from '../client/agents.js'; import { @@ -64,30 +65,25 @@ export class DescribeAgentCommand { const profile = await loadProfile(options.profile); const catalog = new Catalog(profile.url); if (options.versions) { - debug('%s.executeDescribeAgentVersions(%s)', profile.name, agentName); - catalog.describeAgentVersions(options.project || profile.project, profile.token, agentName).then((response) => { + try { + debug('%s.executeDescribeAgentVersions(%s)', profile.name, agentName); + const response = await catalog.describeAgentVersions(options.project || profile.project, profile.token, agentName); if (response.success) { - getFilteredOutput(response.agent, options); - } else { - printError(`Failed to describe agent versions ${agentName}: ${response.message}`, options); + return getFilteredOutput(response.agent, options); } - }) - .catch((err) => { - printError(`Failed to describe agent versions ${agentName}: ${err.status} ${err.message}`, options); - }); + return printError(`Failed to describe agent versions ${agentName}: ${response.message}`, options); + } catch (err) { + return printError(`Failed to describe agent versions ${agentName}: ${err.status} ${err.message}`, options); + } } else { debug('%s.executeDescribeAgent(%s)', profile.name, agentName); - catalog.describeAgent(options.project || profile.project, profile.token, agentName, options.verbose).then((response) => { - if (response.success) { - const result = filterObject(response.agent, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe agent ${agentName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe agent ${agentName}: ${err.status} ${err.message}`, options); - }); + try { + const response = await catalog.describeAgent(options.project || profile.project, profile.token, agentName, options); + if ((options?.output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); + return printSuccess(response, options); + } catch (err) { + return printError(`Failed to describe agent ${agentName}: ${err.status} ${err.message}`, options); + } } } } @@ -317,13 +313,13 @@ export class DescribeAgentSnapshotCommand { const profile = await loadProfile(options.profile); debug('%s.describeAgentSnapshot(%s)', profile.name, snapshotId); const agents = new Agents(profile.url); - const output = _.get(options, 'output', 'json'); + const output = options?.output?.toLowerCase() ?? 'json'; try { const response = await agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, output); if (response.success === false) { return printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`); } - if (output.toLowerCase() === 'json') { + if (output === 'json') { const result = filterObject(JSON.parse(response), options); return printSuccess(JSON.stringify(result, null, 2), options); } diff --git a/src/commands/skills.js b/src/commands/skills.js index d4c7434a..bbdffbe5 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -125,7 +125,7 @@ export class DescribeSkillCommand { const catalog = new Catalog(profile.url); try { const response = await catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose, options.output); - if (_.get(options, 'output', 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); + if ((options?.output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); return printSuccess(response, options); } catch (err) { return printError(`Failed to describe skill ${skillName}: ${err.status} ${err.message}`, options); diff --git a/src/commands/utils.js b/src/commands/utils.js index 0b3c940c..53c20acb 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -10,7 +10,7 @@ import { fileURLToPath } from 'node:url'; import * as jmsepath from 'jmespath'; import path from 'node:path'; import yaml from 'js-yaml'; -import { exec } from 'child_process'; +import { exec } from 'node:child_process'; const debug = debugSetup('cortex:cli'); const MAX_NAME_LENGTH = 20; From 50e7e3a9a3b541e8525da81b5da2a6ab048d3846 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 5 Jun 2023 14:03:45 -0500 Subject: [PATCH 801/864] =?UTF-8?q?Make=20handling=20of=20response=20consi?= =?UTF-8?q?stent=20(=20don't=20await=20got=20use=20json(),=20tex=E2=80=A6?= =?UTF-8?q?=20(#687)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Make handling of response consistent ( dont await got use json(), text(); make method sig same as skill describe (default output and verbose in method params) * Bump deps --- package-lock.json | 1591 +++++++++++++++++++++------------------- package.json | 34 +- src/client/catalog.js | 26 +- src/commands/agents.js | 9 +- 4 files changed, 875 insertions(+), 785 deletions(-) diff --git a/package-lock.json b/package-lock.json index 290b5f14..9985a478 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "cortex-cli", - "version": "2.2.1", + "version": "2.2.2", "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "2.4.0", @@ -14,32 +14,32 @@ "chalk": "5.2.0", "cli-progress": "3.12.0", "cli-table3": "0.6.3", - "commander": "10.0.0", - "dayjs": "1.11.7", + "commander": "10.0.1", + "dayjs": "1.11.8", "debug": "4.3.4", "dockerode": "3.3.5", "es-main": "1.2.0", "form-data": "4.0.0", - "get-stream": "6.0.1", + "get-stream": "7.0.0", "gh-got": "10.0.0", - "glob": "10.0.0", - "got": "12.6.0", + "glob": "10.2.6", + "got": "13.0.0", "graphql": "16.6.0", - "graphql-request": "5.2.0", - "inquirer": "9.1.5", + "graphql-request": "6.1.0", + "inquirer": "9.2.7", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.9.1", - "jose": "4.13.1", + "joi": "17.9.2", + "jose": "4.14.4", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "9.0.0", - "npm-registry-fetch": "14.0.3", + "minimatch": "9.0.1", + "npm-registry-fetch": "14.0.5", "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.4.0", + "semver": "7.5.1", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", @@ -50,23 +50,23 @@ "cortex": "bin/cortex.js" }, "devDependencies": { - "@babel/eslint-parser": "7.21.3", + "@babel/eslint-parser": "7.21.8", "@babel/plugin-syntax-import-assertions": "7.20.0", "audit-ci": "6.6.1", - "c8": "7.13.0", + "c8": "7.14.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.38.0", + "eslint": "8.42.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", "husky": "8.0.3", "is-ci": "3.0.1", "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.3.0", + "nock": "13.3.1", "pkg": "5.8.1", - "sinon": "15.0.3" + "sinon": "15.1.0" }, "engines": { "node": ">=16.0.0" @@ -151,9 +151,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", - "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.8.tgz", + "integrity": "sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -639,14 +639,14 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -674,18 +674,18 @@ } }, "node_modules/@eslint/js": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz", + "integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@graphql-typed-document-node/core": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", - "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } @@ -704,9 +704,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -748,6 +748,95 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -882,6 +971,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -921,12 +1019,21 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz", + "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, "dependencies": { - "@sinonjs/commons": "^2.0.0" + "type-detect": "4.0.8" } }, "node_modules/@sinonjs/samsam": { @@ -1073,25 +1180,25 @@ } }, "node_modules/ansi-escapes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", - "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dependencies": { - "type-fest": "^3.0.0" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=14.16" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.0.tgz", - "integrity": "sha512-RqTRtKTzvPpNdDUp1dVkKQRunlPITk4mXeqFlAZoJsS+fLRn8AdPK0TcQDumGayhU7fjlBfiBjsq3pe3rIfXZQ==", + "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==", "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1109,7 +1216,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -1473,9 +1579,9 @@ } }, "node_modules/c8": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", - "integrity": "sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz", + "integrity": "sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", @@ -1637,6 +1743,17 @@ "node": ">=14.16" } }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -1811,17 +1928,14 @@ } }, "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dependencies": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^3.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/cli-progress": { @@ -1836,9 +1950,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", "engines": { "node": ">=6" }, @@ -1894,7 +2008,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1905,8 +2018,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -1920,9 +2032,9 @@ } }, "node_modules/commander": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "engines": { "node": ">=14" } @@ -2005,9 +2117,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", - "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", + "integrity": "sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -2408,16 +2520,16 @@ } }, "node_modules/eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", - "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz", + "integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.38.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.42.0", + "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -2426,9 +2538,9 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2436,13 +2548,12 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -2610,9 +2721,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -2620,12 +2731,15 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2663,14 +2777,14 @@ } }, "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2758,6 +2872,17 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/execa/node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -2804,17 +2929,6 @@ "node": ">=4" } }, - "node_modules/extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", - "engines": { - "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3212,11 +3326,11 @@ } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.0.tgz", + "integrity": "sha512-ql6FW5b8tgMYvI4UaoxG3EQN3VyZ6VeQpxNBGg5BZ4xD4u+HJeprzhMMA4OCBEGQgSR+m87pstWMpiVW64W8Fw==", "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3252,20 +3366,59 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, + "node_modules/gh-got/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-got/node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", - "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", + "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.6.4" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -3286,6 +3439,21 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob/node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -3294,6 +3462,17 @@ "node": ">=8" } }, + "node_modules/glob/node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", @@ -3371,9 +3550,9 @@ } }, "node_modules/got": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", - "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -3388,22 +3567,33 @@ "responselike": "^3.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" } }, + "node_modules/got/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/graphql": { @@ -3415,32 +3605,17 @@ } }, "node_modules/graphql-request": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.2.0.tgz", - "integrity": "sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-fetch": "^3.1.5", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" }, "peerDependencies": { "graphql": "14 - 16" } }, - "node_modules/graphql-request/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3466,7 +3641,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -3723,174 +3897,41 @@ } }, "node_modules/inquirer": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.5.tgz", - "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", + "version": "9.2.7", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.7.tgz", + "integrity": "sha512-Bf52lnfvNxGPJPltiNO2tLBp3zC339KNlGMqOkW+dsvNikBhcVDK5kqU2lVX2FTPzuXUFX5WJDlsw//w3ZwoTw==", "dependencies": { - "ansi-escapes": "^6.0.0", + "ansi-escapes": "^4.3.2", "chalk": "^5.2.0", - "cli-cursor": "^4.0.0", + "cli-cursor": "^3.1.0", "cli-width": "^4.0.0", "external-editor": "^3.0.3", "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", - "ora": "^6.1.2", - "run-async": "^2.4.0", - "rxjs": "^7.8.0", - "string-width": "^5.1.2", - "strip-ansi": "^7.0.1", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", "through": "^2.3.6", - "wrap-ansi": "^8.1.0" + "wrap-ansi": "^6.0.1" }, "engines": { "node": ">=14.18.0" } }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/internal-slot": { @@ -4123,14 +4164,11 @@ } }, "node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/is-lambda": { @@ -4283,7 +4321,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, "engines": { "node": ">=10" }, @@ -4376,6 +4413,23 @@ "url": "https://bevry.me/fund" } }, + "node_modules/jackspeak": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -4391,9 +4445,9 @@ } }, "node_modules/joi": { - "version": "17.9.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.1.tgz", - "integrity": "sha512-FariIi9j6QODKATGBrEX7HZcja8Bsh3rfdGYy/Sb65sGlZWK/QWesU1ghk7aJWDj95knjXlQfSmzFSPPkLVsfw==", + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4403,23 +4457,13 @@ } }, "node_modules/jose": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz", - "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==", + "version": "4.14.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", + "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==", "funding": { "url": "https://github.com/sponsors/panva" } }, - "node_modules/js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4612,7 +4656,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -4628,7 +4671,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4808,9 +4850,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5216,9 +5258,9 @@ } }, "node_modules/nock": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", - "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.1.tgz", + "integrity": "sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -5307,12 +5349,12 @@ } }, "node_modules/npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dependencies": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -5324,9 +5366,9 @@ } }, "node_modules/npm-registry-fetch/node_modules/minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -5480,109 +5522,40 @@ } }, "node_modules/ora": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", - "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", - "dependencies": { - "bl": "^5.0.0", - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "strip-ansi": "^7.0.1", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ora/node_modules/bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/ora/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/os-tmpdir": { @@ -5699,12 +5672,12 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", + "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", "dependencies": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -5714,19 +5687,19 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz", - "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz", + "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-scurry/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/path-to-regexp": { @@ -6288,18 +6261,15 @@ } }, "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/retry": { @@ -6403,6 +6373,17 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-applescript/node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -6442,9 +6423,9 @@ } }, "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", "engines": { "node": ">=0.12.0" } @@ -6473,9 +6454,9 @@ } }, "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dependencies": { "tslib": "^2.1.0" } @@ -6519,9 +6500,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6623,13 +6604,13 @@ } }, "node_modules/sinon": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.3.tgz", - "integrity": "sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.1.0.tgz", + "integrity": "sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/fake-timers": "^10.2.0", "@sinonjs/samsam": "^8.0.0", "diff": "^5.1.0", "nise": "^5.1.4", @@ -6836,6 +6817,20 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.trimend": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", @@ -6875,6 +6870,18 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -6902,7 +6909,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7157,9 +7163,9 @@ } }, "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" }, "node_modules/tunnel-agent": { "version": "0.6.0", @@ -7450,17 +7456,34 @@ "node": ">=0.10.0" } }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "node_modules/wrap-ansi": { + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7652,9 +7675,9 @@ } }, "@babel/eslint-parser": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", - "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", + "version": "7.21.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.8.tgz", + "integrity": "sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==", "dev": true, "requires": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -8032,14 +8055,14 @@ "dev": true }, "@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -8060,15 +8083,15 @@ } }, "@eslint/js": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz", + "integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==", "dev": true }, "@graphql-typed-document-node/core": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.2.tgz", - "integrity": "sha512-9anpBMM9mEgZN4wr2v8wHJI2/u5TnnggewRN6OlvXTTnuVyoY19X6rOv9XTqKRw6dcGKwZsBi8n0kDE2I5i4VA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "requires": {} }, "@hapi/hoek": { @@ -8085,9 +8108,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -8118,6 +8141,64 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -8224,6 +8305,12 @@ "semver": "^7.3.5" } }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, "@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -8257,12 +8344,23 @@ } }, "@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz", + "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==", "dev": true, "requires": { - "@sinonjs/commons": "^2.0.0" + "@sinonjs/commons": "^3.0.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } } }, "@sinonjs/samsam": { @@ -8376,17 +8474,17 @@ "dev": true }, "ansi-escapes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.0.0.tgz", - "integrity": "sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { - "type-fest": "^3.0.0" + "type-fest": "^0.21.3" }, "dependencies": { "type-fest": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.6.0.tgz", - "integrity": "sha512-RqTRtKTzvPpNdDUp1dVkKQRunlPITk4mXeqFlAZoJsS+fLRn8AdPK0TcQDumGayhU7fjlBfiBjsq3pe3rIfXZQ==" + "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==" } } }, @@ -8399,7 +8497,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -8641,9 +8738,9 @@ } }, "c8": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.13.0.tgz", - "integrity": "sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz", + "integrity": "sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", @@ -8771,6 +8868,13 @@ "mimic-response": "^4.0.0", "normalize-url": "^8.0.0", "responselike": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + } } }, "call-bind": { @@ -8886,11 +8990,11 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, "cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "requires": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^3.1.0" } }, "cli-progress": { @@ -8902,9 +9006,9 @@ } }, "cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==" + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==" }, "cli-table3": { "version": "0.6.3", @@ -8940,7 +9044,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -8948,8 +9051,7 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "combined-stream": { "version": "1.0.8", @@ -8960,9 +9062,9 @@ } }, "commander": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==" + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==" }, "concat-map": { "version": "0.0.1", @@ -9026,9 +9128,9 @@ } }, "dayjs": { - "version": "1.11.7", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz", - "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==" + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", + "integrity": "sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==" }, "debug": { "version": "4.3.4", @@ -9326,16 +9428,16 @@ "dev": true }, "eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", - "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", + "version": "8.42.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz", + "integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.38.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.42.0", + "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", @@ -9344,9 +9446,9 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -9354,13 +9456,12 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -9515,9 +9616,9 @@ } }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -9525,20 +9626,20 @@ } }, "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true }, "espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" } }, "esquery": { @@ -9602,6 +9703,11 @@ "strip-final-newline": "^3.0.0" }, "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, "mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -9632,11 +9738,6 @@ "tmp": "^0.0.33" } }, - "extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==" - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -9954,9 +10055,9 @@ } }, "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.0.tgz", + "integrity": "sha512-ql6FW5b8tgMYvI4UaoxG3EQN3VyZ6VeQpxNBGg5BZ4xD4u+HJeprzhMMA4OCBEGQgSR+m87pstWMpiVW64W8Fw==" }, "get-symbol-description": { "version": "1.0.0", @@ -9974,6 +10075,31 @@ "integrity": "sha512-ac0AmNAmdJt/PSCQEqG+qoKPZCmHP00kMWNjV1ve9nQpuQoyku7uyIACtYVtvTsCV+BLibfPo/LTvPOYBnV5sQ==", "requires": { "got": "^12.5.2" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + } + } } }, "github-from-package": { @@ -9982,20 +10108,35 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "glob": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.0.0.tgz", - "integrity": "sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==", + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", + "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", "requires": { - "fs.realpath": "^1.0.0", - "minimatch": "^9.0.0", - "minipass": "^5.0.0", - "path-scurry": "^1.6.4" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2", + "path-scurry": "^1.7.0" }, "dependencies": { + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, "minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + }, + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" } } }, @@ -10058,9 +10199,9 @@ } }, "got": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.0.tgz", - "integrity": "sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", "requires": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -10073,6 +10214,13 @@ "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", "responselike": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + } } }, "graceful-fs": { @@ -10081,10 +10229,10 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "graphql": { @@ -10093,26 +10241,12 @@ "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" }, "graphql-request": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.2.0.tgz", - "integrity": "sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-fetch": "^3.1.5", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" } }, "has": { @@ -10133,8 +10267,7 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-property-descriptors": { "version": "1.0.0", @@ -10304,68 +10437,35 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.5.tgz", - "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", + "version": "9.2.7", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.7.tgz", + "integrity": "sha512-Bf52lnfvNxGPJPltiNO2tLBp3zC339KNlGMqOkW+dsvNikBhcVDK5kqU2lVX2FTPzuXUFX5WJDlsw//w3ZwoTw==", "requires": { - "ansi-escapes": "^6.0.0", + "ansi-escapes": "^4.3.2", "chalk": "^5.2.0", - "cli-cursor": "^4.0.0", + "cli-cursor": "^3.1.0", "cli-width": "^4.0.0", "external-editor": "^3.0.3", "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", - "ora": "^6.1.2", - "run-async": "^2.4.0", - "rxjs": "^7.8.0", - "string-width": "^5.1.2", - "strip-ansi": "^7.0.1", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", "through": "^2.3.6", - "wrap-ansi": "^8.1.0" + "wrap-ansi": "^6.0.1" }, "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } @@ -10518,9 +10618,9 @@ } }, "is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" }, "is-lambda": { "version": "1.0.1", @@ -10617,8 +10717,7 @@ "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, "is-weakref": { "version": "1.0.2", @@ -10684,6 +10783,15 @@ "textextensions": "^5.14.0" } }, + "jackspeak": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -10696,9 +10804,9 @@ "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { - "version": "17.9.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.1.tgz", - "integrity": "sha512-FariIi9j6QODKATGBrEX7HZcja8Bsh3rfdGYy/Sb65sGlZWK/QWesU1ghk7aJWDj95knjXlQfSmzFSPPkLVsfw==", + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", + "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -10708,15 +10816,9 @@ } }, "jose": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz", - "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==" - }, - "js-sdsl": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", - "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", - "dev": true + "version": "4.14.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", + "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==" }, "js-tokens": { "version": "4.0.0", @@ -10868,7 +10970,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -10878,7 +10979,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11010,9 +11110,9 @@ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" }, "minimatch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", - "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", "requires": { "brace-expansion": "^2.0.1" }, @@ -11320,9 +11420,9 @@ } }, "nock": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", - "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.1.tgz", + "integrity": "sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw==", "dev": true, "requires": { "debug": "^4.1.0", @@ -11382,12 +11482,12 @@ } }, "npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "requires": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -11396,9 +11496,9 @@ }, "dependencies": { "minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" } } }, @@ -11505,65 +11605,28 @@ } }, "ora": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz", - "integrity": "sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==", - "requires": { - "bl": "^5.0.0", - "chalk": "^5.0.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.6.1", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.1.0", - "log-symbols": "^5.1.0", - "strip-ansi": "^7.0.1", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" - }, - "log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", - "requires": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "ansi-regex": "^6.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } } } @@ -11643,23 +11706,23 @@ "dev": true }, "path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", + "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", "requires": { - "lru-cache": "^9.0.0", - "minipass": "^5.0.0" + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.2" }, "dependencies": { "lru-cache": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.1.tgz", - "integrity": "sha512-C8QsKIN1UIXeOs3iWmiZ1lQY+EnKDojWd37fXy1aSbJvH4iSma1uy2OWuoB3m4SYRli5+CUjDv3Dij5DVoetmg==" + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz", + "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==" }, "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==" } } }, @@ -12083,9 +12146,9 @@ } }, "restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -12160,6 +12223,11 @@ "strip-final-newline": "^2.0.0" } }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -12186,9 +12254,9 @@ } }, "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==" }, "run-parallel": { "version": "1.2.0", @@ -12200,9 +12268,9 @@ } }, "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "requires": { "tslib": "^2.1.0" } @@ -12229,9 +12297,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", "requires": { "lru-cache": "^6.0.0" } @@ -12290,13 +12358,13 @@ } }, "sinon": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.0.3.tgz", - "integrity": "sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.1.0.tgz", + "integrity": "sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ==", "dev": true, "requires": { "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/fake-timers": "^10.2.0", "@sinonjs/samsam": "^8.0.0", "diff": "^5.1.0", "nise": "^5.1.4", @@ -12470,6 +12538,16 @@ "strip-ansi": "^6.0.1" } }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "string.prototype.trimend": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", @@ -12500,6 +12578,14 @@ "ansi-regex": "^5.0.1" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -12515,7 +12601,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -12714,9 +12799,9 @@ } }, "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" }, "tunnel-agent": { "version": "0.6.0", @@ -12945,6 +13030,16 @@ "strip-ansi": "^6.0.0" } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 019e9df5..b78d2565 100644 --- a/package.json +++ b/package.json @@ -62,32 +62,32 @@ "chalk": "5.2.0", "cli-progress": "3.12.0", "cli-table3": "0.6.3", - "commander": "10.0.0", - "dayjs": "1.11.7", + "commander": "10.0.1", + "dayjs": "1.11.8", "debug": "4.3.4", "dockerode": "3.3.5", "es-main": "1.2.0", "form-data": "4.0.0", - "get-stream": "6.0.1", + "get-stream": "7.0.0", "gh-got": "10.0.0", - "glob": "10.0.0", - "got": "12.6.0", + "glob": "10.2.6", + "got": "13.0.0", "graphql": "16.6.0", - "graphql-request": "5.2.0", - "inquirer": "9.1.5", + "graphql-request": "6.1.0", + "inquirer": "9.2.7", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.9.1", - "jose": "4.13.1", + "joi": "17.9.2", + "jose": "4.14.4", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "9.0.0", - "npm-registry-fetch": "14.0.3", + "minimatch": "9.0.1", + "npm-registry-fetch": "14.0.5", "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.4.0", + "semver": "7.5.1", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", @@ -95,23 +95,23 @@ "yauzl": "2.10.0" }, "devDependencies": { - "@babel/eslint-parser": "7.21.3", + "@babel/eslint-parser": "7.21.8", "@babel/plugin-syntax-import-assertions": "7.20.0", "audit-ci": "6.6.1", - "c8": "7.13.0", + "c8": "7.14.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.38.0", + "eslint": "8.42.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", "husky": "8.0.3", "is-ci": "3.0.1", "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.3.0", + "nock": "13.3.1", "pkg": "5.8.1", - "sinon": "15.0.3" + "sinon": "15.1.0" }, "c8": { "check-coverage": true, diff --git a/src/client/catalog.js b/src/client/catalog.js index 26ae395b..a1bd5d08 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -18,7 +18,6 @@ import debugSetup from 'debug'; import FormData from 'form-data'; import http from 'https'; import fs from 'node:fs'; -import urljoin from 'url-join'; import { got, defaultHeaders } from './apiutils.js'; import { constructError, formatAllServiceInputParameters, checkProject, printSuccess, printError, printTable, @@ -180,24 +179,17 @@ export default class Catalog { .catch((err) => constructError(err)); } - async describeAgent(projectId, token, agentName, options) { + describeAgent(projectId, token, agentName, verbose = false, output = 'json') { checkProject(projectId); - let endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; - if (options?.output?.toLocaleLowerCase() === 'openapi') { - endpoint = urljoin(endpoint, 'openapi.json'); - } + const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; debug('describeAgent(%s) => %s', agentName, endpoint); - try { - const res = await got - .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose: options?.verbose, output: options?.output }, - }); - if (options?.output?.toLocaleLowerCase() === 'yaml') return res.body; - return res.json; - } catch (err) { - return constructError(err); - } + const res = got + .get(endpoint, { + headers: defaultHeaders(token), + searchParams: { verbose, output }, + }); + if (output?.toLocaleLowerCase() === 'json') return res.json(); + return res.text(); } async describeAgentVersions(projectId, token, agentName) { diff --git a/src/commands/agents.js b/src/commands/agents.js index 672f3966..f66dced1 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -64,7 +64,10 @@ export class DescribeAgentCommand { async execute(agentName, options) { const profile = await loadProfile(options.profile); const catalog = new Catalog(profile.url); - if (options.versions) { + const { + versions, verbose, output, project, + } = options; + if (versions) { try { debug('%s.executeDescribeAgentVersions(%s)', profile.name, agentName); const response = await catalog.describeAgentVersions(options.project || profile.project, profile.token, agentName); @@ -78,8 +81,8 @@ export class DescribeAgentCommand { } else { debug('%s.executeDescribeAgent(%s)', profile.name, agentName); try { - const response = await catalog.describeAgent(options.project || profile.project, profile.token, agentName, options); - if ((options?.output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); + const response = await catalog.describeAgent(project || profile.project, profile.token, agentName, verbose, output); + if ((output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); return printSuccess(response, options); } catch (err) { return printError(`Failed to describe agent ${agentName}: ${err.status} ${err.message}`, options); From b6b5d03594f65470474988a5abe8b818bb02ad53 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Fri, 9 Jun 2023 13:20:15 -0500 Subject: [PATCH 802/864] Add -f --output-file to the cli for skills/agents get (#688) --- bin/cortex-agents.js | 1 + bin/cortex-skills.js | 1 + src/commands/agents.js | 6 +-- src/commands/skills.js | 23 +++++++++-- src/commands/utils.js | 91 +++++++++++++++++++----------------------- 5 files changed, 67 insertions(+), 55 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 90fa4907..f934b526 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -90,6 +90,7 @@ export function create() { .alias('get') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('-f --output-file <file>', 'Write output to file instead of stdout') .option('-o, --output <json|yaml|openapi>', 'Format output as yaml or k8s resource') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 7e559e79..53b30855 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -50,6 +50,7 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') + .option('-f --output-file <file>', 'Write output to file instead of stdout') .option('-o, --output <json|yaml|k8s|openapi>', 'Format output as yaml or k8s resource') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) diff --git a/src/commands/agents.js b/src/commands/agents.js index f66dced1..c734f7b7 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -20,7 +20,7 @@ import { printError, printExtendedLogs, printSuccess, - printTable, + printTable, writeOutput, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -72,7 +72,7 @@ export class DescribeAgentCommand { debug('%s.executeDescribeAgentVersions(%s)', profile.name, agentName); const response = await catalog.describeAgentVersions(options.project || profile.project, profile.token, agentName); if (response.success) { - return getFilteredOutput(response.agent, options); + return writeOutput(getFilteredOutput(response.agent, options), options); } return printError(`Failed to describe agent versions ${agentName}: ${response.message}`, options); } catch (err) { @@ -83,7 +83,7 @@ export class DescribeAgentCommand { try { const response = await catalog.describeAgent(project || profile.project, profile.token, agentName, verbose, output); if ((output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); - return printSuccess(response, options); + return writeOutput(response, options); } catch (err) { return printError(`Failed to describe agent ${agentName}: ${err.status} ${err.message}`, options); } diff --git a/src/commands/skills.js b/src/commands/skills.js index bbdffbe5..48dce64f 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -7,7 +7,21 @@ import { loadProfile } from '../config.js'; import Catalog from '../client/catalog.js'; import Agent from '../client/agents.js'; import { - printSuccess, printError, printWarning, filterObject, parseObject, printTable, formatValidationPath, LISTTABLEFORMAT, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, + printSuccess, + printError, + printWarning, + filterObject, + parseObject, + printTable, + formatValidationPath, + LISTTABLEFORMAT, + isNumeric, + handleTable, + printExtendedLogs, + handleListFailure, + handleDeleteFailure, + getFilteredOutput, + writeOutput, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -121,12 +135,15 @@ export class DescribeSkillCommand { async execute(skillName, options) { const profile = await loadProfile(options.profile); + const { + verbose, output, project, + } = options; debug('%s.executeDescribeSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); try { - const response = await catalog.describeSkill(options.project || profile.project, profile.token, skillName, options.verbose, options.output); + const response = await catalog.describeSkill(project || profile.project, profile.token, skillName, verbose, output); if ((options?.output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); - return printSuccess(response, options); + return writeOutput(response, options); } catch (err) { return printError(`Failed to describe skill ${skillName}: ${err.status} ${err.message}`, options); } diff --git a/src/commands/utils.js b/src/commands/utils.js index 53c20acb..aabfa62f 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -19,6 +19,8 @@ const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/; const beginAndEndWithHyphen = /^[-]+|[-]+$/; const validationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; const nameRequirementMessage = 'You must provide a name for the skill.'; + + export function useColor(options) { return boolean(options?.color); } @@ -30,6 +32,21 @@ export const printExtendedLogs = (data, options) => { } }; +export const printSuccess = (message, options) => { + if (useColor(options)) { + console.log(chalk.green(message)); + } else { + console.log(message); + } +}; +export const printWarning = (message, options) => { + if (useColor(options)) { + console.warn(chalk.yellow(message)); + } else { + console.warn(message); + } +}; + export function printError(message, options = { color: true }, exitProgram = true) { if (useColor(options)) { console.error(chalk.red(message)); @@ -123,20 +140,26 @@ export const constructError = (error) => { success: false, message: errorText, details, status, }; }; -export const printSuccess = (message, options) => { - if (useColor(options)) { - console.log(chalk.green(message)); - } else { - console.log(message); +export function writeToFile(content, filepath, createDir = true) { + const dir = path.dirname(filepath); + if (createDir && !fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); } -}; -export const printWarning = (message, options) => { - if (useColor(options)) { - console.warn(chalk.yellow(message)); - } else { - console.warn(message); + fs.writeFileSync(filepath, content); +} + +/** + * If provided write to file otherwise dump to stdout + * @param content + * @param opts - expects `outputFile` property or dumps to stdout + */ +export function writeOutput(content, opts) { + if (opts?.outputFile) { + return writeToFile(content, opts.outputFile); } -}; + return printSuccess(content, opts); +} + export function filterObject(obj, options) { try { if (options.query) { @@ -164,17 +187,10 @@ export const getFilteredOutput = (result, options) => { if (filteredResult) { // print extended logs iff --query arg is valid printExtendedLogs(filteredResult, options); - printSuccess(JSON.stringify(filteredResult, null, 2), options); + writeOutput(JSON.stringify(filteredResult, null, 2), options); } }; -export function filterListObject(obj, options) { - const { map, pick, partialRight } = _; - if (options.query) { - debug(`filtering results with query: ${options.query}`); - return map(obj, partialRight(pick, options.query.split(','))); - } - return obj; -} + export const parseObject = (str) => yaml.load(str); export function printTable(spec, objects, transform) { const fn = transform ?? ((obj) => obj); @@ -228,25 +244,7 @@ export const formatAllServiceInputParameters = (allParameters) => { } return allParameters.map((inputParameters) => formatServiceInputParameter(inputParameters)).join('\n'); }; -export const countLinesInFile = (filePath) => new Promise((resolve, reject) => { - // Bug ... this code ignores the final line that does not end with a new line ... thats why leftovers was added - // eslint-disable-next-line implicit-arrow-linebreak - let count = 0; - let leftovers = true; - fs.createReadStream(filePath) - .on('error', (e) => reject(e)) - .on('data', (chunk) => { - for (let i = 0; i < chunk.length; i += 1) { - if (chunk[i] === 10) { - count += 1; - leftovers = false; - } else { - leftovers = true; - } - } - }) - .on('end', () => (leftovers ? resolve(count + 1) : resolve(count))); -}); + export const formatValidationPath = (p) => { let cnt = 0; let res = ''; @@ -268,10 +266,11 @@ export const cleanInternalFields = (jsobj) => JSON.stringify(jsobj, (a, obj) => return obj; }, 2); export const jsonToYaml = (json) => { + let res = json; if (typeof json === 'string') { - json = JSON.parse(json); + res = JSON.parse(json); } - return yaml.dump(json); + return yaml.dump(res); }; export const createFileStream = (filepath) => { const dir = path.dirname(filepath); @@ -280,13 +279,7 @@ export const createFileStream = (filepath) => { } return fs.createWriteStream(filepath); }; -export const writeToFile = (content, filepath) => { - const dir = path.dirname(filepath); - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }); - } - fs.writeFileSync(filepath, content); -}; + export const fileExists = (filepath) => fs.existsSync(filepath); export const checkProject = (projectId) => { if (_.isEmpty(projectId)) { From d4c8a4e5a51f1c91860ea17146b2d7185d1d3b20 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Tue, 20 Jun 2023 11:15:50 +0530 Subject: [PATCH 803/864] 6.4.1 version change (#690) * Update package.json * Update package-lock.json --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9985a478..09f5b44e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.2.2", + "version": "2.2.3", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index b78d2565..048b7a2a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.2.2", + "version": "2.2.3", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "type": "module", From ec96f18e8045927d75e4761648323392f3332388 Mon Sep 17 00:00:00 2001 From: Prajna Kandarpa <pkandarpa@cognitivescale.com> Date: Thu, 22 Jun 2023 11:53:42 +0530 Subject: [PATCH 804/864] fix validation for workspaces generate (#691) --- src/commands/utils.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index aabfa62f..c420378c 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -15,6 +15,7 @@ import { exec } from 'node:child_process'; const debug = debugSetup('cortex:cli'); const MAX_NAME_LENGTH = 20; const space = /\s+/; +const validNameRegex = /^[a-zA-Z][a-zA-Z0-9_-]*[a-zA-Z0-9]$/; const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/; const beginAndEndWithHyphen = /^[-]+|[-]+$/; const validationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; @@ -331,19 +332,14 @@ export const generateNameFromTitle = (title) => title.replace(specialCharsExcept .replace(beginAndEndWithHyphen, '') .toLowerCase(); export const hasUppercase = (s) => /[A-Z]/.test(s); -export const validateName = (name) => (space.test(name) - || specialCharsExceptHyphen.test(name) - || beginAndEndWithHyphen.test(name) - || (!name) - || (name && name.length > MAX_NAME_LENGTH) - || hasUppercase(name) +export const validateName = (name) => (validNameRegex.test(name) && (name.length <= MAX_NAME_LENGTH) ? { - status: false, - message: name ? validationErrorMessage : nameRequirementMessage, - } - : { status: true, message: '', + } + : { + status: false, + message: name ? validationErrorMessage : nameRequirementMessage, }); export const handleTable = (spec, data, transformer, noDataMessage) => { if (!data || data.length === 0) { From cbb6660d3564b2208a43dd532166de617c310ea5 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Wed, 19 Jul 2023 22:52:14 +0530 Subject: [PATCH 805/864] Cortex CLI - 2.2.4 Release (#696) * update validation message so that it matches what skills save returns for invalid skill names (#693) * Bump deps, add default text for sync (#694) * Bump deps Add default text for sync option in skills/agents remove duplicate code for details Fix workspaces build with default registry Add generic function to dump details FAB-5923, FAB-5921 fix cle error messages from TSOA, and agent services output * FAB-5617 fix connection type list * Update package-lock.json * Update package.json --------- Co-authored-by: Yashwanth Reddy <yreddy@cognitivescale.com> --------- Co-authored-by: Prajna Kandarpa <pkandarpa@cognitivescale.com> Co-authored-by: Johan Gielstra <jgielstra@cognitivescale.com> --- .eslintrc.json | 10 +- bin/cortex-agents.js | 8 +- bin/cortex-skills.js | 8 +- package-lock.json | 1443 ++------------------ package.json | 20 +- src/client/agents.js | 8 +- src/client/catalog.js | 23 +- src/client/connections.js | 4 +- src/commands/agents.js | 69 +- src/commands/connections.js | 78 +- src/commands/experiments.js | 30 +- src/commands/models.js | 36 +- src/commands/sessions.js | 12 +- src/commands/skills.js | 81 +- src/commands/utils.js | 24 +- src/commands/workspaces/workspace-utils.js | 10 +- 16 files changed, 331 insertions(+), 1533 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 9c549edf..06a1644b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,13 +1,7 @@ { - "parser": "@babel/eslint-parser", "parserOptions": { - "requireConfigFile": false, - "babelOptions": { - "plugins": [ - "@babel/plugin-syntax-import-assertions" - ] - }, - "ecmaVersion": 2022 + "ecmaVersion": "latest", + "sourceType": "module" }, "extends": "airbnb-base", "rules": { diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index f934b526..56ea9ee9 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -91,13 +91,13 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('-f --output-file <file>', 'Write output to file instead of stdout') - .option('-o, --output <json|yaml|openapi>', 'Format output as yaml or k8s resource') + .option('-o, --output <json|yaml|openapi>', 'Format output as yaml or k8s resource', 'json') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--versions', 'To get list of versions of an agent') - .option('--verbose', 'Verbose output') + .option('--verbose', 'Verbose output', false) .action(withCompatibilityCheck((agentName, options) => { try { new DescribeAgentCommand(program).execute(agentName, options); @@ -110,14 +110,14 @@ export function create() { .command('invoke <agentName> <serviceName>') .description('Invoke an agent service') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', true) .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--params <params>', 'JSON params to send to the action') .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') .option('--scheduleName <name>', 'Identifier to uniquely identify an agents schedule, defaults to the agent\'s name') .option('--scheduleCron <cron>', 'Schedule agent invoke periodically using a cron schedule string for example: "0 0 * * *", @hourly, or @daily') - .option('--sync', 'Invoke the agent synchronously') + .option('--sync', 'Invoke the agent synchronously', false) .action(withCompatibilityCheck((agentName, serviceName, options) => { try { new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 53b30855..7562c990 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -51,10 +51,10 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-f --output-file <file>', 'Write output to file instead of stdout') - .option('-o, --output <json|yaml|k8s|openapi>', 'Format output as yaml or k8s resource') + .option('-o, --output <json|yaml|k8s|openapi>', 'Format output as yaml or k8s resource', 'json') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .option('--verbose', 'Verbose output') + .option('--verbose', 'Verbose output', false) .action(withCompatibilityCheck(async (skillName, options) => { try { await new DescribeSkillCommand(program).execute(skillName, options); @@ -67,12 +67,12 @@ export function create() { .command('invoke <skillName> <inputName>') .description('Invoke a skill') .option('--no-compat', 'Ignore API compatibility checks') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', true) .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--params <params>', 'JSON params to send to the action') .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') - .option('--sync', 'Invoke the skill synchronously') + .option('--sync', 'Invoke the skill synchronously', false) .action(withCompatibilityCheck(async (skillName, inputName, options) => { try { await new InvokeSkillCommand(program).execute(skillName, inputName, options); diff --git a/package-lock.json b/package-lock.json index 09f5b44e..677f862d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.2.3", + "version": "2.2.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.2.2", + "version": "2.2.3", "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "2.4.0", @@ -14,7 +14,7 @@ "chalk": "5.2.0", "cli-progress": "3.12.0", "cli-table3": "0.6.3", - "commander": "10.0.1", + "commander": "11.0.0", "dayjs": "1.11.8", "debug": "4.3.4", "dockerode": "3.3.5", @@ -22,9 +22,9 @@ "form-data": "4.0.0", "get-stream": "7.0.0", "gh-got": "10.0.0", - "glob": "10.2.6", + "glob": "10.3.1", "got": "13.0.0", - "graphql": "16.6.0", + "graphql": "16.7.1", "graphql-request": "6.1.0", "inquirer": "9.2.7", "is-installed-globally": "0.4.0", @@ -35,11 +35,11 @@ "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "9.0.1", + "minimatch": "9.0.2", "npm-registry-fetch": "14.0.5", "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.5.1", + "semver": "7.5.3", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", @@ -50,14 +50,12 @@ "cortex": "bin/cortex.js" }, "devDependencies": { - "@babel/eslint-parser": "7.21.8", - "@babel/plugin-syntax-import-assertions": "7.20.0", "audit-ci": "6.6.1", - "c8": "7.14.0", + "c8": "8.0.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.42.0", + "eslint": "8.43.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", "husky": "8.0.3", @@ -66,530 +64,35 @@ "mocked-env": "1.3.5", "nock": "13.3.1", "pkg": "5.8.1", - "sinon": "15.1.0" + "sinon": "15.2.0" }, "engines": { "node": ">=16.0.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.8.tgz", - "integrity": "sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==", - "dev": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "peer": true - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "peer": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", - "dev": true, - "peer": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, "engines": { "node": ">=6.9.0" } @@ -674,9 +177,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz", - "integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==", + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", + "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -846,20 +349,6 @@ "node": ">=8" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", @@ -894,37 +383,6 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1019,9 +477,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz", - "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0" @@ -1487,35 +945,6 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -1579,9 +1008,9 @@ } }, "node_modules/c8": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz", - "integrity": "sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.0.tgz", + "integrity": "sha512-XHA5vSfCLglAc0Xt8eLBZMv19lgiBSjnb1FLAQgnwkuhJYEonpilhEB4Ea3jPAbm0FhD6VVJrc0z73jPe7JyGQ==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", @@ -1601,7 +1030,7 @@ "c8": "bin/c8.js" }, "engines": { - "node": ">=10.12.0" + "node": ">=12" } }, "node_modules/c8/node_modules/cliui": { @@ -1776,23 +1205,6 @@ "node": ">=6" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001442", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", - "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ], - "peer": true - }, "node_modules/chai": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", @@ -2032,11 +1444,11 @@ } }, "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/concat-map": { @@ -2361,13 +1773,6 @@ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, - "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true, - "peer": true - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2520,15 +1925,15 @@ } }, "node_modules/eslint": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz", - "integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==", + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", + "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.42.0", + "@eslint/js": "8.43.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3283,16 +2688,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3407,15 +2802,15 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", - "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.1.tgz", + "integrity": "sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" + "path-scurry": "^1.10.0" }, "bin": { "glob": "dist/cjs/src/bin.js" @@ -3597,9 +2992,9 @@ "dev": true }, "node_modules/graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", + "version": "16.7.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.7.1.tgz", + "integrity": "sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -4464,13 +3859,6 @@ "url": "https://github.com/sponsors/panva" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "peer": true - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -4509,26 +3897,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true }, "node_modules/jsonfile": { "version": "6.1.0", @@ -4850,9 +4225,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", + "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5307,13 +4682,6 @@ } } }, - "node_modules/node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", - "dev": true, - "peer": true - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5505,17 +4873,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -5672,11 +5040,11 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.0.tgz", + "integrity": "sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==", "dependencies": { - "lru-cache": "^9.1.1", + "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2" }, "engines": { @@ -5687,9 +5055,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz", - "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", "engines": { "node": "14 || >=16.14" } @@ -5743,13 +5111,6 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "peer": true - }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -6500,9 +5861,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6604,13 +5965,13 @@ } }, "node_modules/sinon": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.1.0.tgz", - "integrity": "sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz", + "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.2.0", + "@sinonjs/fake-timers": "^10.3.0", "@sinonjs/samsam": "^8.0.0", "diff": "^5.1.0", "nise": "^5.1.4", @@ -7284,33 +6645,6 @@ "node": ">=8" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "peer": true, - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -7447,15 +6781,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -7613,415 +6938,24 @@ } }, "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "peer": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", - "dev": true, - "peer": true - }, - "@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "peer": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "peer": true - } - } - }, - "@babel/eslint-parser": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.8.tgz", - "integrity": "sha512-HLhI+2q+BP3sf78mFUZNCGc10KEmoUqtUT1OCdMZsN+qr4qFeLUod62/zAnF3jNQstwyasDkZnVXwfK2Bml7MQ==", - "dev": true, - "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", - "dev": true, - "peer": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "peer": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "peer": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "peer": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "peer": true - }, - "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "peer": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dev": true, - "peer": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "peer": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "peer": true - }, - "@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", - "dev": true, - "peer": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "peer": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "peer": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "peer": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "peer": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "peer": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "peer": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "peer": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "peer": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", - "dev": true, - "peer": true - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "peer": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", - "dev": true, - "peer": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "peer": true - } - } - }, - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", - "dev": true, - "peer": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, "@balena/dockerignore": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", @@ -8083,9 +7017,9 @@ } }, "@eslint/js": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.42.0.tgz", - "integrity": "sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==", + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", + "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", "dev": true }, "@graphql-typed-document-node/core": { @@ -8205,17 +7139,6 @@ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", @@ -8244,33 +7167,6 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "requires": { - "eslint-scope": "5.1.1" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -8344,9 +7240,9 @@ } }, "@sinonjs/fake-timers": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz", - "integrity": "sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "requires": { "@sinonjs/commons": "^3.0.0" @@ -8688,19 +7584,6 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "peer": true, - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - } - }, "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -8738,9 +7621,9 @@ } }, "c8": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz", - "integrity": "sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.0.tgz", + "integrity": "sha512-XHA5vSfCLglAc0Xt8eLBZMv19lgiBSjnb1FLAQgnwkuhJYEonpilhEB4Ea3jPAbm0FhD6VVJrc0z73jPe7JyGQ==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", @@ -8893,13 +7776,6 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "caniuse-lite": { - "version": "1.0.30001442", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", - "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==", - "dev": true, - "peer": true - }, "chai": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", @@ -9062,9 +7938,9 @@ } }, "commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==" + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==" }, "concat-map": { "version": "0.0.1", @@ -9294,13 +8170,6 @@ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true, - "peer": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -9428,15 +8297,15 @@ "dev": true }, "eslint": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.42.0.tgz", - "integrity": "sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==", + "version": "8.43.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", + "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.42.0", + "@eslint/js": "8.43.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -10024,13 +8893,6 @@ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "peer": true - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -10108,15 +8970,15 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "glob": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", - "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.1.tgz", + "integrity": "sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==", "requires": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" + "path-scurry": "^1.10.0" }, "dependencies": { "foreground-child": { @@ -10236,9 +9098,9 @@ "dev": true }, "graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" + "version": "16.7.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.7.1.tgz", + "integrity": "sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==" }, "graphql-request": { "version": "6.1.0", @@ -10820,13 +9682,6 @@ "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==" }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "peer": true - }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -10864,13 +9719,6 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "peer": true - }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -11110,9 +9958,9 @@ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" }, "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", + "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", "requires": { "brace-expansion": "^2.0.1" }, @@ -11452,13 +10300,6 @@ "whatwg-url": "^5.0.0" } }, - "node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", - "dev": true, - "peer": true - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -11591,17 +10432,17 @@ } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "ora": { @@ -11706,18 +10547,18 @@ "dev": true }, "path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.0.tgz", + "integrity": "sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==", "requires": { - "lru-cache": "^9.1.1", + "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2" }, "dependencies": { "lru-cache": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz", - "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==" + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==" }, "minipass": { "version": "6.0.2", @@ -11761,13 +10602,6 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "peer": true - }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -12297,9 +11131,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", "requires": { "lru-cache": "^6.0.0" } @@ -12358,13 +11192,13 @@ } }, "sinon": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.1.0.tgz", - "integrity": "sha512-cS5FgpDdE9/zx7no8bxROHymSlPLZzq0ChbbLk1DrxBfc+eTeBK3y8nIL+nu/0QeYydhhbLIr7ecHJpywjQaoQ==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz", + "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==", "dev": true, "requires": { "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.2.0", + "@sinonjs/fake-timers": "^10.3.0", "@sinonjs/samsam": "^8.0.0", "diff": "^5.1.0", "nise": "^5.1.4", @@ -12887,17 +11721,6 @@ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "peer": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -13007,12 +11830,6 @@ "is-typed-array": "^1.1.10" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", diff --git a/package.json b/package.json index 048b7a2a..b0237f3a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.2.3", + "version": "2.2.4", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "type": "module", @@ -62,7 +62,7 @@ "chalk": "5.2.0", "cli-progress": "3.12.0", "cli-table3": "0.6.3", - "commander": "10.0.1", + "commander": "11.0.0", "dayjs": "1.11.8", "debug": "4.3.4", "dockerode": "3.3.5", @@ -70,9 +70,9 @@ "form-data": "4.0.0", "get-stream": "7.0.0", "gh-got": "10.0.0", - "glob": "10.2.6", + "glob": "10.3.1", "got": "13.0.0", - "graphql": "16.6.0", + "graphql": "16.7.1", "graphql-request": "6.1.0", "inquirer": "9.2.7", "is-installed-globally": "0.4.0", @@ -83,11 +83,11 @@ "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "9.0.1", + "minimatch": "9.0.2", "npm-registry-fetch": "14.0.5", "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.5.1", + "semver": "7.5.3", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", @@ -95,14 +95,12 @@ "yauzl": "2.10.0" }, "devDependencies": { - "@babel/eslint-parser": "7.21.8", - "@babel/plugin-syntax-import-assertions": "7.20.0", "audit-ci": "6.6.1", - "c8": "7.14.0", + "c8": "8.0.0", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "eslint": "8.42.0", + "eslint": "8.43.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", "husky": "8.0.3", @@ -111,7 +109,7 @@ "mocked-env": "1.3.5", "nock": "13.3.1", "pkg": "5.8.1", - "sinon": "15.1.0" + "sinon": "15.2.0" }, "c8": { "check-coverage": true, diff --git a/src/client/agents.js b/src/client/agents.js index 0d6c5746..7774961a 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -33,9 +33,7 @@ export default (class Agents { headers: defaultHeaders(token), json: params, searchParams: { sync: options.sync, scheduleName: options.scheduleName, scheduleCron: options.scheduleCron }, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } invokeSkill(projectId, token, skillName, inputName, params, sync) { @@ -47,9 +45,7 @@ export default (class Agents { headers: defaultHeaders(token), json: params, searchParams: { sync }, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } getActivation(projectId, token, activationId, verbose, report) { diff --git a/src/client/catalog.js b/src/client/catalog.js index a1bd5d08..d08cf9ec 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -60,9 +60,7 @@ export default class Catalog { .get(this.endpoints.skills(projectId), { headers: defaultHeaders(token), searchParams: query, - }).json() - .then((skills) => ({ success: true, ...skills })) - .catch((err) => constructError(err)); + }).json(); } describeSkill(projectId, token, skillName, verbose = false, output = 'json') { @@ -153,17 +151,14 @@ export default class Catalog { // TODO removed profile should I use that as the URL ?? checkProject(projectId); debug('listServices() using describeAgent'); - const response = await this.describeAgent(projectId, token, agentName); - if (response.success) { - const urlBase = `${this.endpoints.agentinvoke(projectId)}/${encodeURIComponent(agentName)}/services`; - debug('listServices(%s) => %s', agentName, urlBase); - const servicesList = response.agent.inputs - .filter((i) => i.signalType === 'Service') - .map((i) => ({ ...i, url: `${urlBase}/${i.name}` })) - .map((i) => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); - return { success: true, services: servicesList }; - } - return response; + const agent = await this.describeAgent(projectId, token, agentName); + const urlBase = `${this.endpoints.agentinvoke(projectId)}/${encodeURIComponent(agentName)}/services`; + debug('listServices(%s) => %s', agentName, urlBase); + const servicesList = agent.inputs + .filter((i) => i.signalType === 'Service') + .map((i) => ({ ...i, url: `${urlBase}/${i.name}` })) + .map((i) => ({ ...i, formatted_types: formatAllServiceInputParameters(i.parameters) })); + return servicesList; } saveAgent(projectId, token, agentObj) { diff --git a/src/client/connections.js b/src/client/connections.js index f7e7e415..e5d4b7f9 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -93,8 +93,6 @@ export default (class Connections { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } }); diff --git a/src/commands/agents.js b/src/commands/agents.js index c734f7b7..ece85a88 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -10,7 +10,6 @@ import Agents from '../client/agents.js'; import { LISTTABLEFORMAT, filterObject, - formatValidationPath, getFilteredOutput, getQueryOptions, handleDeleteFailure, @@ -20,7 +19,7 @@ import { printError, printExtendedLogs, printSuccess, - printTable, writeOutput, + printTable, writeOutput, printErrorDetails, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -114,22 +113,18 @@ export class InvokeAgentServiceCommand { } debug('params: %o', params); const agents = new Agents(profile.url); - agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params, options).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Invocation failed: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - if (err.response && err.response.body) { - debug('Raw error response: %o', err.response.body); - printError(`Failed to invoke agent service (${err.status} ${err.message}): ${err.response.body.error}`, options); - } else { - printError(`Failed to invoke agent service: ${err.status} ${err.message}`, options); + try { + const response = await agents.invokeAgentService(options.project || profile.project, profile.token, agentName, serviceName, params, options); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + let message = `Failed to invoke agent service (${err.message})`; + if (err?.response?.body) { + message = `${message}: ${err.response.body}`; } - }); + printError(message, options, false); + printErrorDetails(err, options); + } } } export class GetActivationCommand { @@ -245,27 +240,22 @@ export class ListServicesCommand { const profile = await loadProfile(options.profile); debug('%s.listServices(%s)', profile.name, agentName); const catalog = new Catalog(profile.url); - catalog.listServices(options.project || profile.project, profile.token, agentName, profile).then((response) => { - if (response.success) { - const result = response.services; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - const tableSpec = [ - { column: 'Service Name', field: 'name', width: 25 }, - { column: 'Service Endpoint URL', field: 'url', width: 115 }, - { column: 'Parameters', field: 'formatted_types', width: 65 }, - ]; - handleTable(tableSpec, result, null, 'No services found'); - } + try { + const result = await catalog.listServices(options.project || profile.project, profile.token, agentName, profile); + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - printError(`Failed to return agent service information: ${agentName}: ${response.message}`, options); + printExtendedLogs(result, options); + const tableSpec = [ + { column: 'Service Name', field: 'name', width: 25 }, + { column: 'Service Endpoint URL', field: 'url', width: 115 }, + { column: 'Parameters', field: 'formatted_types', width: 65 }, + ]; + handleTable(tableSpec, result, null, 'No services found'); } - }).catch((err) => { + } catch (err) { printError(`Failed to return agent service information: ${agentName}: ${err.status} ${err.message}`, options); - }); + } } } export class ListAgentSnapshotsCommand { @@ -456,14 +446,7 @@ export class SaveAgentCommand { printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); } else if (response.details) { console.log(`Failed to save agent: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - printError(''); // Just exit + printErrorDetails(response, options); } else { printError(JSON.stringify(response)); } diff --git a/src/commands/connections.js b/src/commands/connections.js index eba0cf4b..de96a98e 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -7,7 +7,18 @@ import { loadProfile } from '../config.js'; import Connections from '../client/connections.js'; import Content from '../client/content.js'; import { - printSuccess, printError, filterObject, parseObject, CONNECTIONTABLEFORMAT, fileExists, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, + printSuccess, + printError, + filterObject, + parseObject, + CONNECTIONTABLEFORMAT, + fileExists, + handleTable, + printExtendedLogs, + handleListFailure, + handleDeleteFailure, + getFilteredOutput, + printErrorDetails, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -160,30 +171,47 @@ export class ListConnectionsTypes { debug('%s.listConnectionsTypes()', profile.name); const conns = new Connections(profile.url); // eslint-disable-next-line consistent-return - conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort).then((response) => { - if (response.success) { - const result = response.result.connectionTypes; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - const tableSpec = [ - { column: 'Name', field: 'name', width: 50 }, - { column: 'Title', field: 'title', width: 25 }, - { column: 'Description', field: 'description', width: 50 }, - { column: 'Created On', field: 'createdAt', width: 26 }, - { column: 'Updated On', field: 'updatedAt', width: 26 }, - ]; - handleTable(tableSpec, result, null, 'No connection types found'); - } + try { + const response = await conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort); + const result = response?.connectionTypes; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - return handleListFailure(response, options, 'Connection-types'); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list connection types: ${err.status} ${err.message}`, options); - }); + printExtendedLogs(result, options); + const tableSpec = [ + { + column: 'Name', + field: 'name', + width: 50, + }, + { + column: 'Title', + field: 'title', + width: 25, + }, + { + column: 'Description', + field: 'description', + width: 50, + }, + { + column: 'Created On', + field: 'createdAt', + width: 26, + }, + { + column: 'Updated On', + field: 'updatedAt', + width: 26, + }, + ]; + handleTable(tableSpec, result, null, 'No connection types found'); + } + } catch (err) { + debug(err); + printError(`Failed to list connection types: ${err.status} ${err.message}`, options, false); + printErrorDetails(err?.response, options); + } } } diff --git a/src/commands/experiments.js b/src/commands/experiments.js index ea4c4a00..4f7f940f 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -7,7 +7,17 @@ import duration from 'dayjs/plugin/duration.js'; import { loadProfile } from '../config.js'; import Experiments from '../client/experiments.js'; import { - printSuccess, printError, filterObject, printTable, parseObject, fileExists, formatValidationPath, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, + printSuccess, + printError, + filterObject, + parseObject, + fileExists, + handleTable, + printExtendedLogs, + handleListFailure, + handleDeleteFailure, + getFilteredOutput, + printErrorDetails, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -218,14 +228,7 @@ class SaveExperimentCommand { printSuccess('Experiment saved', options); } else if (response.details) { console.log(`Failed to save experiment: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - printError(''); // Just exit + printErrorDetails(response, options); } else { printError(JSON.stringify(response)); } @@ -255,14 +258,7 @@ class CreateRunCommand { printSuccess(JSON.stringify(response.result, null, 2), options); } else if (response.details) { console.log(`Failed to create run: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - printError(''); // Just exit + printErrorDetails(response, options); } else { printError(JSON.stringify(response)); } diff --git a/src/commands/models.js b/src/commands/models.js index 71d82ec6..6f307d43 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -8,7 +8,19 @@ import { loadProfile } from '../config.js'; import Models from '../client/models.js'; import Experiments from '../client/experiments.js'; import { - LISTTABLEFORMAT, RUNTABLEFORMAT, printExtendedLogs, handleListFailure, handleDeleteFailure, printSuccess, printError, filterObject, parseObject, printTable, formatValidationPath, fileExists, handleTable, getFilteredOutput, + LISTTABLEFORMAT, + RUNTABLEFORMAT, + printExtendedLogs, + handleListFailure, + handleDeleteFailure, + printSuccess, + printError, + filterObject, + parseObject, + fileExists, + handleTable, + getFilteredOutput, + printErrorDetails, } from './utils.js'; const _ = { @@ -38,13 +50,7 @@ export class SaveModelCommand { printSuccess(JSON.stringify(_.pick(response.message, ['version', 'created', 'modelId']), null, 2)); } else if (response.details) { console.log(`Failed to save model: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); + printErrorDetails(response, options); printError(''); // Just exit } else { printError(JSON.stringify(response)); @@ -188,15 +194,6 @@ export class RegisterModelCommand { async execute(modelDefinition, options) { const profile = await loadProfile(options.profile); - function printErrorDetails(response) { - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - printError(''); // Just exit - } const experiments = new Experiments(profile.url); try { debug('%s.executeRegisterModel(%s)', profile.name, modelDefinition); @@ -205,10 +202,7 @@ export class RegisterModelCommand { debug('%o', model); const saveExperimentResponse = await experiments.saveExperiment(options.project || profile.project, profile.token, model); if (!saveExperimentResponse.success) { - if (saveExperimentResponse.details) { - printErrorDetails(saveExperimentResponse); - return; - } + printErrorDetails(saveExperimentResponse, options); printError(JSON.stringify(saveExperimentResponse)); return; } diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 2b36ecde..9c0adbfc 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -4,9 +4,9 @@ import debugSetup from 'debug'; import { loadProfile } from '../config.js'; import Sessions from '../client/sessions.js'; import { - SESSIONTABLEFORMAT, formatValidationPath, handleListFailure, getFilteredOutput, + SESSIONTABLEFORMAT, handleListFailure, getFilteredOutput, - printSuccess, printError, filterObject, parseObject, printTable, handleTable, + printSuccess, printError, filterObject, parseObject, handleTable, printErrorDetails, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -30,13 +30,7 @@ export class SaveSessionCommand { printSuccess(_.get(response, 'message.message', 'Session saved'), options); } else if (response.details) { console.log(`Failed to save session: ${response.status} ${response.message}`); - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); + printErrorDetails(response, options); printError(''); // Just exit } else { printError(JSON.stringify(response)); diff --git a/src/commands/skills.js b/src/commands/skills.js index 48dce64f..ce09b733 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -12,16 +12,13 @@ import { printWarning, filterObject, parseObject, - printTable, - formatValidationPath, LISTTABLEFORMAT, isNumeric, handleTable, printExtendedLogs, - handleListFailure, handleDeleteFailure, getFilteredOutput, - writeOutput, + writeOutput, printErrorDetails, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -72,15 +69,7 @@ export class SaveSkillCommand { printSuccess(`Skill saved: ${JSON.stringify(response.message)}`, options); } else { console.log(`Failed to save skill: ${response.message}`); - if (response.details) { - console.log('The following issues were found:'); - const tableSpec = [ - { column: 'Path', field: 'path', width: 50 }, - { column: 'Message', field: 'message', width: 100 }, - ]; - response.details.map((d) => d.path = formatValidationPath(d.path)); - printTable(tableSpec, response.details); - } + printErrorDetails(response, options); printError(''); // Just exit } })); @@ -102,29 +91,27 @@ export class ListSkillsCommand { const status = !_.get(options, 'nostatus', false); // default show status, if nostatus==true status == false const shared = !_.get(options, 'noshared', false); const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort); - if (response.success) { - let result = response.skills; - const tableFormat = LISTTABLEFORMAT; - if (options.nostatus === undefined) { - result = result.map((skillStat) => { - const statuses = _.isEmpty(skillStat.actionStatuses) ? skillStat.deployStatus : skillStat.actionStatuses.map((s) => `${s.name}: ${s.state}`).join(' '); - return { - ...skillStat, - status: statuses, - }; - }); - tableFormat.push({ column: 'Status', field: 'status', width: 30 }); - } - // TODO remove --query on deprecation - if (options.json || options.query) { - return getFilteredOutput(result, options); - } - printExtendedLogs(result, options); - return handleTable(tableFormat, _.sortBy(result, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No skills found'); + let result = response.skills; + const tableFormat = LISTTABLEFORMAT; + if (options.nostatus === undefined) { + result = result.map((skillStat) => { + const statuses = _.isEmpty(skillStat.actionStatuses) ? skillStat.deployStatus : skillStat.actionStatuses.map((s) => `${s.name}: ${s.state}`).join(' '); + return { + ...skillStat, + status: statuses, + }; + }); + tableFormat.push({ column: 'Status', field: 'status', width: 30 }); } - return handleListFailure(response, options, 'Skills'); + // TODO remove --query on deprecation + if (options.json || options.query) { + return getFilteredOutput(result, options); + } + printExtendedLogs(result, options); + return handleTable(tableFormat, _.sortBy(result, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No skills found'); } catch (err) { - return printError(`Failed to list skills: ${err.status} ${err.message}`, options); + printError(`Failed to list skills: (${err.message}): ${err.response?.body ?? ''}`, options, false); + return printErrorDetails(err.response, options, true); } } } @@ -250,22 +237,18 @@ export class InvokeSkillCommand { params = parseObject(paramsStr, options); } const agent = new Agent(profile.url); - agent.invokeSkill(options.project || profile.project, profile.token, skillName, inputName, params, options.sync).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Skill invoke failed: ${response.message}`, options); - } - }) - .catch((err) => { - if (err.response && err.response.body) { - debug('Raw error response: %o', err.response.body); - printError(`Failed to invoke skill(${err.status} ${err.message}): ${err.response.body.error}`, options); - } else { - printError(`Failed to invoke skill: ${err.status} ${err.message}`, options); + try { + const response = await agent.invokeSkill(options.project || profile.project, profile.token, skillName, inputName, params, options.sync); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + let message = `Failed to invoke skill (${err.message})`; + if (err?.response?.body) { + message = `${message}: ${err.response.body}`; } - }); + printError(message, options, false); + printErrorDetails(err, options); + } } } export class DeleteSkillCommand { diff --git a/src/commands/utils.js b/src/commands/utils.js index c420378c..2ecee473 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -18,7 +18,7 @@ const space = /\s+/; const validNameRegex = /^[a-zA-Z][a-zA-Z0-9_-]*[a-zA-Z0-9]$/; const specialCharsExceptHyphen = /[^A-Za-z0-9- ]/; const beginAndEndWithHyphen = /^[-]+|[-]+$/; -const validationErrorMessage = 'Must be 20 characters or less, contain only lowercase a-z, 0-9, or -, and cannot begin or end with -'; +const validationErrorMessage = 'Must be 20 characters or less, contain only alphanumeric characters, or -, and cannot begin with a number and cannot begin or end with -'; const nameRequirementMessage = 'You must provide a name for the skill.'; @@ -378,4 +378,26 @@ export function readPackageJSON(relPath) { return JSON.parse(fs.readFileSync(absPath)); } +/** + * pretty print the 400 response from TSOA router + */ +export function printErrorDetails(response, options, exit = true) { + let details = response?.details; + if (!details && response?.body) { + details = parseObject(response?.body)?.details; + } + if (!details) return; // nothing to process... + printWarning('The following issues were found:', options); + const tableSpec = [ + { column: 'Path', field: 'path', width: 50 }, + { column: 'Message', field: 'message', width: 100 }, + ]; + if (_.isArray(details)) { + details.map((d) => d.path = formatValidationPath(d.path)); + } else { + details = Object.entries(details).map(([path2, body]) => ({ path: path2, message: body?.message })); + } + printTable(tableSpec, details); + if (exit) printError(''); // Just use this over exit() as tests already stub this call .. +} export { deleteFolderRecursive as deleteFile }; diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 0e5e19dd..53f4dede 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -5,6 +5,7 @@ import yaml from 'js-yaml'; import { existsSync, readFileSync, writeFileSync, statSync, } from 'node:fs'; +import urljoin from 'url-join'; import { readFile } from 'node:fs/promises'; import ghGot from 'gh-got'; import { configDir, loadProfile } from '../../config.js'; @@ -106,15 +107,14 @@ export function getSkillInfo(target) { } export async function getCurrentRegistry(profile = undefined) { const regProfile = profile || await loadProfile(); // old behavior was always getting "current" profile - return regProfile.registries[regProfile.currentRegistry]; + // use internal name instead of key/label + return Object.values(regProfile.registries).find((r) => r.name = regProfile.currentRegistry); } export async function buildImageTag(profile, actionName) { if (actionName.includes('/')) { return actionName; } const registry = await getCurrentRegistry(profile); - if (registry.url.includes('docker.io')) { - return path.posix.join(registry.namespace || '', actionName); - } - return path.posix.join(registry.url, registry.namespace || '', actionName); + const namespace = registry.namespace || ''; + return urljoin(registry.url, namespace, actionName); } From 9675932f992813d8894e47cead3778de0d559e60 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Thu, 20 Jul 2023 22:49:52 -0500 Subject: [PATCH 806/864] Add initial github actions --- .github/workflows/package-binary.yaml | 61 + README.md | 8 +- package-lock.json | 1473 ++++++++++++++++++++++++- package.json | 17 +- 4 files changed, 1502 insertions(+), 57 deletions(-) create mode 100644 .github/workflows/package-binary.yaml diff --git a/.github/workflows/package-binary.yaml b/.github/workflows/package-binary.yaml new file mode 100644 index 00000000..68cf4be3 --- /dev/null +++ b/.github/workflows/package-binary.yaml @@ -0,0 +1,61 @@ +name: package-standalone-binary +run-name: +on: + push: + branches: + - main +jobs: + package-linux: + runs-on: ubuntu-latest + steps: + - name: Check out + uses: actions/checkout@v3 + - name: Build, test, package + uses: actions/setup-node@v3 + with: + node-version: '18' + run: | + npm ci + npm test + npm run package-binary + - name: Upload binary + uses: actions/upload-artifact@v3 + with: + name: binary-linux + path: ./dist/cortex + package-mac: + runs-on: macos-latest + steps: + - name: Check out + uses: actions/checkout@v3 + - name: Build, test, package + uses: actions/setup-node@v3 + with: + node-version: '18' + run: | + npm ci + npm test + npm run package-binary + - name: Upload binary + uses: actions/upload-artifact@v3 + with: + name: binary-macos + path: ./dist/cortex + package-windows: + runs-on: windows-latest + steps: + - name: Check out + uses: actions/checkout@v3 + - name: Build, test, package + uses: actions/setup-node@v3 + with: + node-version: '18' + run: | + npm ci + npm test + npm run package-binary + - name: Upload binary + uses: actions/upload-artifact@v3 + with: + name: binary-win64 + path: ./dist/cortex diff --git a/README.md b/README.md index a6360ea3..4e0171fb 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,8 @@ cortex agents list --json "[].{name: name, title: title}" ## Standalone binary -We use [pkg](https://www.npmjs.com/package/pkg) to bundle the Cortex cli's source, dependencies, and node runtime into a standalone executable +We use caxa https://github.com/leafac/caxa to build standalone binaries. +Previously, we used `pkg` but it doesn't support ESM without transpilation as of 07/2023 Executables are created for the following platforms: - Linux 64bit intel @@ -127,11 +128,6 @@ Executables are created for the following platforms: - macOS 64 bit intel. - macOS 64 bit M1/M2. -__NOTE:__ Apple M1/M2 (arm64 binary) is experimental - ### Signed binaries status * windows: binaries are currently **unsigned** * macOS: adhoc signature using [ldid](https://github.com/xerub/ldid) - -**Known Issues** -cortex workspaces - is non functional on Window and macOs until we can provide pre-compiled binaries for the following dependencies: ssh2, keytar, cpufeatures diff --git a/package-lock.json b/package-lock.json index 677f862d..f8f91aaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "cortex-cli", - "version": "2.2.3", + "version": "2.2.4", "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "2.4.0", @@ -52,9 +52,11 @@ "devDependencies": { "audit-ci": "6.6.1", "c8": "8.0.0", + "caxa": "3.0.1", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", + "esbuild": "0.18.15", "eslint": "8.43.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", @@ -117,6 +119,358 @@ "node": ">=0.1.90" } }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.15.tgz", + "integrity": "sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.15.tgz", + "integrity": "sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.15.tgz", + "integrity": "sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.15.tgz", + "integrity": "sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.15.tgz", + "integrity": "sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.15.tgz", + "integrity": "sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.15.tgz", + "integrity": "sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.15.tgz", + "integrity": "sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.15.tgz", + "integrity": "sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.15.tgz", + "integrity": "sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.15.tgz", + "integrity": "sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.15.tgz", + "integrity": "sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.15.tgz", + "integrity": "sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.15.tgz", + "integrity": "sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.15.tgz", + "integrity": "sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.15.tgz", + "integrity": "sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.15.tgz", + "integrity": "sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.15.tgz", + "integrity": "sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.15.tgz", + "integrity": "sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.15.tgz", + "integrity": "sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.15.tgz", + "integrity": "sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.15.tgz", + "integrity": "sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -697,6 +1051,113 @@ "node": ">= 8" } }, + "node_modules/archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "dev": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.3", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/archiver-utils/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -783,6 +1244,12 @@ "node": "*" } }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1169,40 +1636,189 @@ "responselike": "^3.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=14.16" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caxa": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/caxa/-/caxa-3.0.1.tgz", + "integrity": "sha512-ZVJg1FHU4KCJFCu46L6QI5bu8zxDYe5ExHoiTzW1SypKGpSkAOEVLI/+y6CMKlnwdWhyT+ZOYUBA09HzDgakpA==", + "dev": true, + "funding": [ + "https://patreon.com/leafac", + "https://paypal.me/LeandroFacchinettiEU", + "https://github.com/sponsors/leafac", + "https://btc.com/34KJBgtaFYMtDqpSgMayw9qiKWg2GQXA9M" + ], + "dependencies": { + "archiver": "^5.3.1", + "commander": "^9.4.1", + "crypto-random-string": "^5.0.0", + "dedent": "^0.7.0", + "execa": "^6.1.0", + "fs-extra": "^10.1.0", + "globby": "^13.1.2" + }, + "bin": { + "caxa": "build/index.mjs" + } + }, + "node_modules/caxa/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/caxa/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/caxa/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/caxa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caxa/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caxa/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/caxa/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/caxa/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/caxa/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/chai": { @@ -1451,6 +2067,21 @@ "node": ">=16" } }, + "node_modules/compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "dev": true, + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1489,6 +2120,31 @@ "node": ">=10.0.0" } }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -1528,6 +2184,33 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-5.0.0.tgz", + "integrity": "sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==", + "dev": true, + "dependencies": { + "type-fest": "^2.12.2" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/dayjs": { "version": "1.11.8", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", @@ -1574,6 +2257,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, "node_modules/deep-eql": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", @@ -1903,6 +2592,43 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/esbuild": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.15.tgz", + "integrity": "sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.15", + "@esbuild/android-arm64": "0.18.15", + "@esbuild/android-x64": "0.18.15", + "@esbuild/darwin-arm64": "0.18.15", + "@esbuild/darwin-x64": "0.18.15", + "@esbuild/freebsd-arm64": "0.18.15", + "@esbuild/freebsd-x64": "0.18.15", + "@esbuild/linux-arm": "0.18.15", + "@esbuild/linux-arm64": "0.18.15", + "@esbuild/linux-ia32": "0.18.15", + "@esbuild/linux-loong64": "0.18.15", + "@esbuild/linux-mips64el": "0.18.15", + "@esbuild/linux-ppc64": "0.18.15", + "@esbuild/linux-riscv64": "0.18.15", + "@esbuild/linux-s390x": "0.18.15", + "@esbuild/linux-x64": "0.18.15", + "@esbuild/netbsd-x64": "0.18.15", + "@esbuild/openbsd-x64": "0.18.15", + "@esbuild/sunos-x64": "0.18.15", + "@esbuild/win32-arm64": "0.18.15", + "@esbuild/win32-ia32": "0.18.15", + "@esbuild/win32-x64": "0.18.15" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -2341,9 +3067,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -3982,6 +4708,54 @@ "node": "> 0.8" } }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4015,18 +4789,48 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -5524,6 +6328,36 @@ "node": ">= 6" } }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -6935,6 +7769,20 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "dev": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } } }, "dependencies": { @@ -6956,21 +7804,175 @@ "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true }, - "@balena/dockerignore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", - "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" + "@balena/dockerignore": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", + "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.15.tgz", + "integrity": "sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.15.tgz", + "integrity": "sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.15.tgz", + "integrity": "sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.15.tgz", + "integrity": "sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.15.tgz", + "integrity": "sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.15.tgz", + "integrity": "sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.15.tgz", + "integrity": "sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.15.tgz", + "integrity": "sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.15.tgz", + "integrity": "sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.15.tgz", + "integrity": "sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.15.tgz", + "integrity": "sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.15.tgz", + "integrity": "sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.15.tgz", + "integrity": "sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.15.tgz", + "integrity": "sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.15.tgz", + "integrity": "sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.15.tgz", + "integrity": "sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.15.tgz", + "integrity": "sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.15.tgz", + "integrity": "sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.15.tgz", + "integrity": "sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.15.tgz", + "integrity": "sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==", + "dev": true, + "optional": true }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "@esbuild/win32-ia32": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.15.tgz", + "integrity": "sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==", + "dev": true, + "optional": true }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "@esbuild/win32-x64": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.15.tgz", + "integrity": "sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==", + "dev": true, "optional": true }, "@eslint-community/eslint-utils": { @@ -7407,6 +8409,100 @@ "picomatch": "^2.0.4" } }, + "archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "async": "^3.2.3", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + } + }, + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -7469,6 +8565,12 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -7776,6 +8878,103 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, + "caxa": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/caxa/-/caxa-3.0.1.tgz", + "integrity": "sha512-ZVJg1FHU4KCJFCu46L6QI5bu8zxDYe5ExHoiTzW1SypKGpSkAOEVLI/+y6CMKlnwdWhyT+ZOYUBA09HzDgakpA==", + "dev": true, + "requires": { + "archiver": "^5.3.1", + "commander": "^9.4.1", + "crypto-random-string": "^5.0.0", + "dedent": "^0.7.0", + "execa": "^6.1.0", + "fs-extra": "^10.1.0", + "globby": "^13.1.2" + }, + "dependencies": { + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, "chai": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", @@ -7942,6 +9141,18 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==" }, + "compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -7976,6 +9187,22 @@ "nan": "^2.15.0" } }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true + }, + "crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "dev": true, + "requires": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + } + }, "cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -8003,6 +9230,23 @@ "which": "^2.0.1" } }, + "crypto-random-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-5.0.0.tgz", + "integrity": "sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==", + "dev": true, + "requires": { + "type-fest": "^2.12.2" + }, + "dependencies": { + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + } + } + }, "dayjs": { "version": "1.11.8", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", @@ -8031,6 +9275,12 @@ } } }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, "deep-eql": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", @@ -8284,6 +9534,36 @@ "is-symbol": "^1.0.2" } }, + "esbuild": { + "version": "0.18.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.15.tgz", + "integrity": "sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.15", + "@esbuild/android-arm64": "0.18.15", + "@esbuild/android-x64": "0.18.15", + "@esbuild/darwin-arm64": "0.18.15", + "@esbuild/darwin-x64": "0.18.15", + "@esbuild/freebsd-arm64": "0.18.15", + "@esbuild/freebsd-x64": "0.18.15", + "@esbuild/linux-arm": "0.18.15", + "@esbuild/linux-arm64": "0.18.15", + "@esbuild/linux-ia32": "0.18.15", + "@esbuild/linux-loong64": "0.18.15", + "@esbuild/linux-mips64el": "0.18.15", + "@esbuild/linux-ppc64": "0.18.15", + "@esbuild/linux-riscv64": "0.18.15", + "@esbuild/linux-s390x": "0.18.15", + "@esbuild/linux-x64": "0.18.15", + "@esbuild/netbsd-x64": "0.18.15", + "@esbuild/openbsd-x64": "0.18.15", + "@esbuild/sunos-x64": "0.18.15", + "@esbuild/win32-arm64": "0.18.15", + "@esbuild/win32-ia32": "0.18.15", + "@esbuild/win32-x64": "0.18.15" + } + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -8614,9 +9894,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -9778,6 +11058,53 @@ "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -9802,18 +11129,48 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", "dev": true }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true + }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -10912,6 +12269,35 @@ "util-deprecate": "^1.0.1" } }, + "readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "requires": { + "minimatch": "^5.1.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -11942,6 +13328,17 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true + }, + "zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" + } } } } diff --git a/package.json b/package.json index b0237f3a..a4105c31 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "type": "module", "types": "./client/index.d.ts", "scripts": { - "build-binaries": "pkg .", + "package-binary": "caxa --input . --output 'dist/cortex' '{{caxa}}/node_modules/.bin/node' '{{caxa}}/bin/cortex.js' --exclude '*' '.*' '!bin' '!src' '!client' '!package.json'", + "package-binary-windows": "caxa --input . --output 'dist/cortex.exe' '{{caxa}}/node_modules/.bin/node' '{{caxa}}/bin/cortex.js' --exclude '*' '.*' '!bin' '!src' '!client' '!package.json'", "prepare": "is-ci || husky install", "prepack": "cp package-lock.json npm-shrinkwrap.json", "postpack": "rm npm-shrinkwrap.json", @@ -15,18 +16,6 @@ "test:workspaces": "cross-env NODE_ENV=test mocha --grep='Workspaces'", "clean": "rm -rf dist/ coverage/ .nyc_output/ node_modules/ cortex-cli.tgz cortex-cli-docs.md version.txt" }, - "pkg": { - "outputPath": "dist", - "targets": [ - "node16-win-x64", - "node16-linux-x64", - "node16-macos-x64", - "node16-macos-arm64" - ], - "assets": [ - "node_modules/open/xdg-open" - ] - }, "files": [ "bin/*", "src/*", @@ -97,9 +86,11 @@ "devDependencies": { "audit-ci": "6.6.1", "c8": "8.0.0", + "caxa": "3.0.1", "chai": "4.3.7", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", + "esbuild": "0.18.15", "eslint": "8.43.0", "eslint-config-airbnb-base": "15.0.0", "eslint-plugin-import": "2.27.5", From 7cb8fd0ce8f2e99e6d4b25b6fa9a2b5f58140758 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Thu, 20 Jul 2023 22:58:32 -0500 Subject: [PATCH 807/864] Fix action uses/runs typo --- .github/workflows/package-binary.yaml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/package-binary.yaml b/.github/workflows/package-binary.yaml index 68cf4be3..fed2bac3 100644 --- a/.github/workflows/package-binary.yaml +++ b/.github/workflows/package-binary.yaml @@ -8,12 +8,13 @@ jobs: package-linux: runs-on: ubuntu-latest steps: - - name: Check out + - name: Check out source uses: actions/checkout@v3 - - name: Build, test, package + - name: Install node uses: actions/setup-node@v3 with: node-version: '18' + - name: Build, test, package run: | npm ci npm test @@ -28,10 +29,11 @@ jobs: steps: - name: Check out uses: actions/checkout@v3 - - name: Build, test, package + - name: Install node uses: actions/setup-node@v3 with: node-version: '18' + - name: Build, test, package run: | npm ci npm test @@ -46,16 +48,17 @@ jobs: steps: - name: Check out uses: actions/checkout@v3 - - name: Build, test, package + - name: Install node uses: actions/setup-node@v3 with: node-version: '18' + - name: Build, test, package run: | npm ci npm test - npm run package-binary + npm run package-binary-windows - name: Upload binary uses: actions/upload-artifact@v3 with: name: binary-win64 - path: ./dist/cortex + path: ./dist/cortex.exe From 6c2cd32bc848467b805f890e280824a779d5bdac Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 24 Jul 2023 10:01:06 -0500 Subject: [PATCH 808/864] Remove binary build from pkg, this has moved to a git action --- build.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/build.sh b/build.sh index 281402a4..010aad09 100755 --- a/build.sh +++ b/build.sh @@ -53,10 +53,6 @@ function docker_build(){ # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi npm pack . - # TODO Should we cache these distros ? - export PKG_CACHE_PATH=/tmp/pkg-cache - npm run build-binaries - mv cortex-cli-*.tgz cortex-cli.tgz } ## MAIN From fef471426a77e2af52c0965589d30bcc9a46f317 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 24 Jul 2023 10:47:23 -0500 Subject: [PATCH 809/864] rename packed src to cortex-cli.tgz --- build.sh | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/build.sh b/build.sh index 010aad09..137eccac 100755 --- a/build.sh +++ b/build.sh @@ -27,18 +27,6 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ export CI="script" - apt-get update - apt-get install -y apt-utils libsecret-1-dev - # Grab signing util for MACOS - mkdir /tmp/macsign - OPWD=$PWD - cd /tmp/macsign - wget https://github.com/xerub/ldid/releases/download/42/ldid.zip - echo "b93efbc32136cf2778bfe7191dc2a7fb ldid.zip" > ldid.md5 - md5sum -c ldid.md5 - unzip ldid.zip - cd $OPWD - export PATH=$PATH:/tmp/macsign/linux64 npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm rebuild npm test @@ -53,6 +41,8 @@ function docker_build(){ # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi npm pack . + mv cortex-cli-*.tgz cortex-cli.tgz + } ## MAIN From c23c848ee85cdb242c02b50f10e026cd1f33f658 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 24 Jul 2023 11:15:11 -0500 Subject: [PATCH 810/864] Re-add libsecret for keytar build --- build.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.sh b/build.sh index 137eccac..97339554 100755 --- a/build.sh +++ b/build.sh @@ -27,6 +27,9 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ export CI="script" + # libsecrets is needed for keytar node-gyp build + apt-get update + apt-get install -y apt-utils libsecret-1-dev npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm rebuild npm test From 9effab2a955de2d7f0087a2537fdeada0e3a9fe4 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Tue, 25 Jul 2023 09:15:46 -0500 Subject: [PATCH 811/864] Fix windows binary build script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a4105c31..e3fcee32 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "types": "./client/index.d.ts", "scripts": { "package-binary": "caxa --input . --output 'dist/cortex' '{{caxa}}/node_modules/.bin/node' '{{caxa}}/bin/cortex.js' --exclude '*' '.*' '!bin' '!src' '!client' '!package.json'", - "package-binary-windows": "caxa --input . --output 'dist/cortex.exe' '{{caxa}}/node_modules/.bin/node' '{{caxa}}/bin/cortex.js' --exclude '*' '.*' '!bin' '!src' '!client' '!package.json'", + "package-binary-windows": "caxa --input . --output \"dist/cortex.exe\" \"{{caxa}}/node_modules/.bin/node\" \"{{caxa}}/bin/cortex.js\" --exclude \"*\" \".*\" \"!bin\" \"!src\" \"!client\" \"!package.json\"", "prepare": "is-ci || husky install", "prepack": "cp package-lock.json npm-shrinkwrap.json", "postpack": "rm npm-shrinkwrap.json", From f2de8d021ef710ed97246c47c92ff60f3500faa3 Mon Sep 17 00:00:00 2001 From: Prajna Kandarpa <pkandarpa@cognitivescale.com> Date: Wed, 30 Aug 2023 12:54:15 +0530 Subject: [PATCH 812/864] also build binary from develop (#698) --- .github/workflows/package-binary.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/package-binary.yaml b/.github/workflows/package-binary.yaml index fed2bac3..3e09d904 100644 --- a/.github/workflows/package-binary.yaml +++ b/.github/workflows/package-binary.yaml @@ -4,6 +4,7 @@ on: push: branches: - main + - develop jobs: package-linux: runs-on: ubuntu-latest From e283f2e5215ca593da4f594fac273d9bf11fea18 Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Wed, 6 Sep 2023 10:23:51 -0500 Subject: [PATCH 813/864] FAB 5713 reset get PAT (#697) * added reset-pat command * added get-pat command * fixed es-lint stuff * removed --user from get-pat command * send user as options for get-pat * fixed es-lint issues --- bin/cortex-users.js | 28 +++++++++++++++++++++++++++- src/client/users.js | 28 ++++++++++++++++++++++++++++ src/commands/users.js | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 1 deletion(-) diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 3f8deb18..7723de07 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -4,7 +4,7 @@ import esMain from 'es-main'; import { Command } from 'commander'; import { withCompatibilityCheck } from '../src/compatibility.js'; import { - UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, UserCreateCommand, UserListCommand, UserDeleteCommand, + UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, UserCreateCommand, UserListCommand, UserDeleteCommand, UserResetPATCommand, UserGetPATCommand, } from '../src/commands/users.js'; import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; @@ -98,6 +98,32 @@ export function create() { console.error(chalk.red(err.message)); } })); + program.command('reset-pat') + .description('Invalidates personal access token (PAT) for a specified user within Cortex') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--user <user>', 'The user to reset personal access token') + .action(withCompatibilityCheck((options) => { + try { + new UserResetPATCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + program.command('get-pat') + .description('Fetch personal access token (PAT) for a specified user within Cortex') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--user <user>', 'The user to reset personal access token (admins only)') + .action(withCompatibilityCheck((options) => { + try { + new UserGetPATCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); return program; } if (esMain(import.meta)) { diff --git a/src/client/users.js b/src/client/users.js index ba52b7ae..b415f9be 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -14,6 +14,7 @@ * limitations under the License. */ import debugSetup from 'debug'; +import _ from 'lodash'; import { got, defaultHeaders } from './apiutils.js'; import { constructError } from '../commands/utils.js'; @@ -132,4 +133,31 @@ export default class Users { .then((res) => ({ success: true, result: res })) .catch((err) => constructError(err)); } + + resetUserPAT(token, user) { + const endpoint = `${this.endpoint}/accounts/pat/invalidate`; + debug('resetUserPAT => %s', endpoint); + return got + .post(endpoint, { + headers: defaultHeaders(token), + json: { user }, + }).json() + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); + } + + getUserPAT(token, user) { + const endpoint = `${this.endpoint}/accounts/pat`; + debug('resetUserPAT => %s', endpoint); + const requestOptions = { + headers: defaultHeaders(token), + }; + if (!_.isEmpty(user)) { + requestOptions.searchParams = { user }; + } + return got + .get(endpoint, requestOptions).json() + .then((res) => ({ success: true, result: res })) + .catch((err) => constructError(err)); + } } diff --git a/src/commands/users.js b/src/commands/users.js index f8d28537..88ec9de0 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -196,3 +196,43 @@ export const UserProjectAssignCommand = class { }); } }; +export const UserResetPATCommand = class { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = await loadProfile(options.profile); + const { user } = options; + debug('%s.UserResetPATCommand(%s)', profile.name, user); + const client = new Users(profile.url, 'self'); + client.resetUserPAT(profile.token, user).then((response) => { + if (response.success) { + const { result } = response; + printSuccess(JSON.stringify(result, null, 2), options); + } else { + printError(`Failed to invalidate user PAT: ${response.message}`, options); + } + }); + } +}; +export const UserGetPATCommand = class { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = await loadProfile(options.profile); + const { user } = options; + debug('%s.UserGetPATCommand(%s)', profile.name); + const client = new Users(profile.url, 'self'); + client.getUserPAT(profile.token, user).then((response) => { + if (response.success) { + const { result } = response; + printSuccess(JSON.stringify(result.config, null, 2), options); + } else { + printError(`Failed to fetch user PAT: ${response.message}`, options); + } + }); + } +}; From 412ad152dfdda0893737f423b84bb9b5174d2768 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Tue, 19 Sep 2023 16:43:22 -0500 Subject: [PATCH 814/864] Add Save, Describe, List, Delete commands for Pipeline Repo Resource (#699) * Add initial implemmentation of pipeline repos commands * Fix linting errors * Move pipeline repo CLI commands to single module with other pipeline commands * Fix existing unit tests * Add missing eslint comment * Add additional unit tests * Bump version in package.json * Move code from pipelines.js -> pipelineRepositories.js, etc. * FAB 6047 pipeline describe list (#700) * added pipelinest list, describe commands * fixed unit tests for pipeline repositories * added unit tests for pipelines commands * added gitRepoName as param to pipeline describe * updated test cases * removed unnecessary lines --------- Co-authored-by: Mayank Chutani <mchutani-CS@users.noreply.github.com> Co-authored-by: Mayank Chutani <mchutani@cognitivescale.com> --- bin/cortex-pipelines-repos.js | 97 ++++++++++++++ bin/cortex-pipelines.js | 67 ++++++++++ bin/cortex.js | 1 + package.json | 2 +- src/client/pipelineRepositories.js | 72 +++++++++++ src/client/pipelines.js | 51 ++++++++ src/commands/pipelineRepositories.js | 115 +++++++++++++++++ src/commands/pipelines.js | 71 +++++++++++ test/pipelineRepositories.js | 181 +++++++++++++++++++++++++++ test/pipelines.js | 123 ++++++++++++++++++ 10 files changed, 779 insertions(+), 1 deletion(-) create mode 100644 bin/cortex-pipelines-repos.js create mode 100644 bin/cortex-pipelines.js create mode 100644 src/client/pipelineRepositories.js create mode 100644 src/client/pipelines.js create mode 100644 src/commands/pipelineRepositories.js create mode 100644 src/commands/pipelines.js create mode 100644 test/pipelineRepositories.js create mode 100644 test/pipelines.js diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js new file mode 100644 index 00000000..6ea0b305 --- /dev/null +++ b/bin/cortex-pipelines-repos.js @@ -0,0 +1,97 @@ +#!/usr/bin/env node +import esMain from 'es-main'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + ListPipelineRepoCommand, DescribePipelineRepoCommand, DeletePipelineRepoCommand, SavePipelineRepoCommand, +} from '../src/commands/pipelineRepositories.js'; +import { + DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { printError } from '../src/commands/utils.js'; + +export function create() { + const repos = new Command(); + repos.name('cortex pipelines repos'); + repos.description('Work with Cortex Pipeline Repositories'); + + // List + repos + .command('list') + .description('List Pipeline Repositories') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + return new ListPipelineRepoCommand(repos).execute(options); + } catch (err) { + return printError(err.message); + } + })); + + // Describe + repos + .command('describe <pipelineRepoName>') + .alias('get') + .description('Describe a Pipeline Repository') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .action(withCompatibilityCheck((pipelineRepoName, options) => { + try { + return new DescribePipelineRepoCommand(repos).execute(pipelineRepoName, options); + } catch (err) { + return printError(err.message); + } + })); + + // Delete + repos + .command('delete <pipelineRepoName>') + .description('Delete a Pipeline Repository') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck((actionName, options) => { + try { + return new DeletePipelineRepoCommand(repos).execute(actionName, options); + } catch (err) { + return printError(err.message); + } + })); + + // Save + repos + .command('save <pipelineRepoDefinition>') + .description('Save a Pipeline Repository definition. Takes JSON file by default.') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-y, --yaml', 'Use YAML for Pipeline Repository definition format') + // TODO: should this have CLI args for <repo> & <branch>?? + .action(withCompatibilityCheck((pipelineRepoDefinition, options) => { + try { + return new SavePipelineRepoCommand(repos).execute(pipelineRepoDefinition, options); + } catch (err) { + return printError(err.message); + } + })); + + return repos; +} + +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); +} +export default create(); diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js new file mode 100644 index 00000000..0787a134 --- /dev/null +++ b/bin/cortex-pipelines.js @@ -0,0 +1,67 @@ +#!/usr/bin/env node +import esMain from 'es-main'; +import { Command } from 'commander'; +import { ListPipelineCommand, DescribePipelineCommand } from '../src/commands/pipelines.js'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + LIST_JSON_HELP_TEXT, + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + GET_DEFAULT_SORT_CLI_OPTION, + DEFAULT_LIST_SORT_PARAMS, + QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { printError } from '../src/commands/utils.js'; + +export function create() { + const pipelines = new Command(); + pipelines.name('cortex pipelines'); + pipelines.description('Work with Cortex Pipelines'); + pipelines.command('repos <cmd>', 'Work with Cortex Pipeline Repositories'); + + // List + pipelines + .command('list') + .description('List Pipelines') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck((options) => { + try { + return new ListPipelineCommand(pipelines).execute(options); + } catch (err) { + return printError(err.message); + } + })); + + // Describe + pipelines + .command('describe <pipelineName> <gitRepoName>') + .alias('get') + .description('Describe a Pipeline') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { + try { + return new DescribePipelineCommand(pipelines).execute(pipelineName, gitRepoName, options); + } catch (err) { + return printError(err.message); + } + })); + + return pipelines; +} + +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); +} +export default create(); diff --git a/bin/cortex.js b/bin/cortex.js index 980003c1..d61e631a 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -25,6 +25,7 @@ export function create() { .command('experiments <cmd>', 'Work with Cortex Experiments') .command('missions <cmd>', 'Work with Cortex Missions') .command('models <cmd>', 'Work with Cortex Models') + .command('pipelines <cmd>', 'Work with Cortex Pipelines') .command('projects <cmd>', 'Work with Cortex Projects') .command('roles <cmd>', 'Work with a Cortex Roles') .command('secrets <cmd>', 'Work with Cortex Secrets') diff --git a/package.json b/package.json index e3fcee32..0463cbda 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.2.4", + "version": "2.3.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "type": "module", diff --git a/src/client/pipelineRepositories.js b/src/client/pipelineRepositories.js new file mode 100644 index 00000000..6afa66cb --- /dev/null +++ b/src/client/pipelineRepositories.js @@ -0,0 +1,72 @@ +import debugSetup from 'debug'; +import { got, defaultHeaders } from './apiutils.js'; +import { constructError, checkProject } from '../commands/utils.js'; + +const PIPELINE_REPO_API = 'pipeline-repositories'; +const debug = debugSetup('cortex:cli'); + +export default class PipelineRepos { + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpoint = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/${PIPELINE_REPO_API}`; + } + + async listPipelineRepo(projectId, token, filter, limit, skip, sort) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}`; + debug('listPipelineRepo() => %s', endpoint); + const query = {}; + if (filter) query.filer = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; + try { + return await got.get(endpoint, { + headers: defaultHeaders(token), + searchParams: query, + }).json(); + } catch (err) { + return constructError(err); + } + } + + async savePipelineRepo(projectId, token, repoObj) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}`; + debug('savePipelineRepo(%s) => %s', repoObj.name, endpoint); + try { + return await got.post(endpoint, { + headers: defaultHeaders(token), + json: repoObj, + }).json(); + } catch (err) { + return constructError(err); + } + } + + async describePipelineRepo(projectId, token, pipelineRepoName) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(pipelineRepoName)}`; + debug('describePipelineRepo(%s) => %s', pipelineRepoName, endpoint); + try { + return await got.get(endpoint, { + headers: defaultHeaders(token), + }).json(); + } catch (err) { + return constructError(err); + } + } + + async deletePipelineRepo(projectId, token, pipelineRepoName) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(pipelineRepoName)}`; + debug('deletePipelineRepo(%s) => %s', pipelineRepoName, endpoint); + try { + return await got.delete(endpoint, { + headers: defaultHeaders(token), + }).json(); + } catch (err) { + return constructError(err); + } + } +} diff --git a/src/client/pipelines.js b/src/client/pipelines.js new file mode 100644 index 00000000..251c7e31 --- /dev/null +++ b/src/client/pipelines.js @@ -0,0 +1,51 @@ +import debugSetup from 'debug'; +import { constructError, checkProject } from '../commands/utils.js'; +import { got, defaultHeaders } from './apiutils.js'; +import PipelineRepos from './pipelineRepositories.js'; + +const PIPELINE_API = 'pipelines'; +const debug = debugSetup('cortex:cli'); + +export default class Pipelines { + constructor(cortexUrl) { + this.cortexUrl = cortexUrl; + this.endpointV4 = (projectId) => `http://localhost:4445/fabric/v4/projects/${projectId}/${PIPELINE_API}`; + } + + async listPipelines(projectId, token, filter, limit, skip, sort) { + checkProject(projectId); + const endpoint = this.endpointV4(projectId); + debug('listPipelines() => %s', endpoint); + const query = {}; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; + try { + return await got.get(endpoint, { + headers: defaultHeaders(token), + searchParams: query, + }).json(); + } catch (err) { + return constructError(err); + } + } + + async describePipeline(projectId, token, name, gitRepoName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}`; + debug('describePipeline(%s, %s) => %s', name, gitRepoName, endpoint); + try { + return await got.get(endpoint, { + headers: defaultHeaders(token), + searchParams: { gitRepoName }, + }).json(); + } catch (err) { + return constructError(err); + } + } + + repos() { + return new PipelineRepos(this.cortexUrl); + } + } diff --git a/src/commands/pipelineRepositories.js b/src/commands/pipelineRepositories.js new file mode 100644 index 00000000..885be045 --- /dev/null +++ b/src/commands/pipelineRepositories.js @@ -0,0 +1,115 @@ +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Pipelines from '../client/pipelineRepositories.js'; +import { + fileExists, printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); +dayjs.extend(relativeTime); + +export const SavePipelineRepoCommand = class { + constructor(program) { + this.program = program; + } + + async execute(pipelineRepoDefinition, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeSavePipelineRepoDefinition(%s)', profile.name, pipelineRepoDefinition); + if (!fileExists(pipelineRepoDefinition)) { + printError(`File does not exist at: ${pipelineRepoDefinition}`); + } + + const repoDefStr = fs.readFileSync(pipelineRepoDefinition); + const repoObj = parseObject(repoDefStr, options); + debug('%s', repoObj); + const repo = new Pipelines(profile.url); + try { + const response = await repo.savePipelineRepo(options.project || profile.project, profile.token, repoObj); + if (response.success) { + return printSuccess('Pipeline Repository saved', options); + } + return printError(`Failed to save pipeline repository: ${response.status} ${response.message}`, options); + } catch (err) { + return printError(`Failed to save pipeline repository: ${err.response.body.message}`, options); + } + } +}; + +export const ListPipelineRepoCommand = class { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = await loadProfile(options.profile); + debug('%s.executeListPipelineRepos()', profile.name); + const repos = new Pipelines(profile.url); + try { + const response = await repos.listPipelineRepo(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort); + if (response.success) { + const result = response.pipelineRepositories; + if (options.json) { + return getFilteredOutput(result, options); + } + printExtendedLogs(result, options); + const tableSpec = [ + { column: 'Name', field: 'name', width: 20 }, + { column: 'Repo', field: 'repo', width: 40 }, + { column: 'Branch', field: 'branch', width: 15 }, + { column: 'Modified', field: 'updatedAt', width: 22 }, + { column: 'Author', field: 'createdBy', width: 22 }, + ]; + return handleTable(tableSpec, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No pipeline repositories found'); + } + return handleListFailure(response, options, 'Pipeline Repositories'); + } catch (err) { + return printError(`Failed to list pipeline repositories: ${err.status} ${err.message}`, options); + } + } +}; + +export const DescribePipelineRepoCommand = class { + constructor(program) { + this.program = program; + } + + async execute(pipelineRepoName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeDescribePipelineRepo(%s)', profile.name, pipelineRepoName); + const repos = new Pipelines(profile.url); + try { + const response = await repos.describePipelineRepo(options.project || profile.project, profile.token, pipelineRepoName); + if (response.success) { + return getFilteredOutput(response.pipelineRepository, options); + } + return printError(`Failed to describe pipeline repository: ${response.status} ${response.message}`, options); + } catch (err) { + return printError(`Failed to describe pipeline repository: ${err.status} ${err.message}`, options); + } + } +}; + +export const DeletePipelineRepoCommand = class { + constructor(program) { + this.program = program; + } + + async execute(pipelineRepoName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeDeleteProfileRepo(%s)', profile.name, pipelineRepoName); + const repos = new Pipelines(profile.url); + try { + const response = await repos.deletePipelineRepo(options.project || profile.project, profile.token, pipelineRepoName); + if (response.success) { + return printSuccess(response?.message ?? response, options); + } + return handleDeleteFailure(response, options, 'Pipeline Repository'); + } catch (err) { + return printError(`Failed to delete pipeline repository: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js new file mode 100644 index 00000000..56307cba --- /dev/null +++ b/src/commands/pipelines.js @@ -0,0 +1,71 @@ +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Pipelines from '../client/pipelines.js'; +import { + printError, + handleTable, + printExtendedLogs, + handleListFailure, + getFilteredOutput, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); +dayjs.extend(relativeTime); + + + +export const ListPipelineCommand = class { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = await loadProfile(options.profile); + debug('%s.executeListPipelines()', profile.name); + const pipelines = new Pipelines(profile.url); + try { + const response = await pipelines.listPipelines(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort); + if (response.success) { + const result = response.pipelines; + if (options.json) { + return getFilteredOutput(result, options); + } + printExtendedLogs(result, options); + const tableSpec = [ + { column: 'Name', field: 'name', width: 20 }, + { column: 'Git Repo Name', field: 'gitRepoName', width: 20 }, + { column: 'SHA', field: 'sha', width: 20 }, + { column: 'Modified', field: 'updatedAt', width: 22 }, + { column: 'Author', field: 'createdBy', width: 22 }, + ]; + return handleTable(tableSpec, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No pipelines found'); + } + return handleListFailure(response, options, 'Pipelines'); + } catch (err) { + return printError(`Failed to list pipelines: ${err.status} ${err.message}`, options); + } + } +}; + +export const DescribePipelineCommand = class { + constructor(program) { + this.program = program; + } + + async execute(pipelineName, gitRepoName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeDescribePipeline(%s, %s)', profile.name, pipelineName, gitRepoName); + const pipelines = new Pipelines(profile.url); + try { + const response = await pipelines.describePipeline(options.project || profile.project, profile.token, pipelineName, gitRepoName); + if (response.success) { + return getFilteredOutput(response.pipeline, options); + } + return printError(`Failed to describe pipeline: ${response.status} ${response.message}`, options); + } catch (err) { + return printError(`Failed to describe pipeline: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/test/pipelineRepositories.js b/test/pipelineRepositories.js new file mode 100644 index 00000000..708441b8 --- /dev/null +++ b/test/pipelineRepositories.js @@ -0,0 +1,181 @@ +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import nock from 'nock'; +import _ from 'lodash'; +import sinon from 'sinon'; +import { mkdtemp, writeFile } from 'node:fs/promises'; +import { join } from 'node:path'; +import { tmpdir } from 'node:os'; +import { create } from '../bin/cortex-pipelines-repos.js'; +import { stripAnsi } from './utils.js'; + +const PROJECT = 'project'; + +describe('Pipelines', () => { + let restoreEnv; + let sandbox; + let printSpy; + let errorSpy; + beforeEach(() => { + if (!nock.isActive()) { + nock.activate(); + } + restoreEnv = mockedEnv({ + CORTEX_CONFIG_DIR: './test/cortex', + }); + sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit').throws(Error('EXIT')); + printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); + }); + + afterEach(() => { + // clean up mocks that may not have been called + restoreEnv(); + nock.cleanAll(); + sandbox.restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + + const serverUrl = 'http://localhost:8000'; + const exampleRepo = 'git@github.com:organization/repository-name.git'; + + describe('Pipeline Repos', () => { + it('lists pipeline repositories - empty', async () => { + const response = { success: true, pipelineRepositories: [] }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'list', '--project', PROJECT]); + const output = getPrintedLines(); + const errs = getErrorLines(); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs.join('')).to.be.empty; + chai.expect(output.join('')).to.contain('No pipeline repositories found'); + nock.isDone(); + }); + + it('lists pipeline repositories as JSON - empty', async () => { + const response = { success: true, pipelineRepositories: [] }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'list', '--project', PROJECT, '--json']); + const output = getPrintedLines(); + const errs = getErrorLines(); + const roundTripped = JSON.parse(output.join('')); + // eslint-disable-next-line no-unused-expressions + chai.expect(roundTripped).to.be.an('array').that.is.empty; + // eslint-disable-next-line no-unused-expressions + chai.expect(errs.join('')).to.be.empty; + nock.isDone(); + }); + + it('lists pipeline repositories', async () => { + const response = { + success: true, + pipelineRepositories: [ + { name: 'repo1', repo: exampleRepo, branch: 'main' }, + { name: 'repo2', repo: exampleRepo, branch: 'develop' }, + ], + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories.*/).reply(200, response); + await create().parseAsync(['node', 'repos', 'list', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain('repo1'); + chai.expect(output).to.contain('main'); + chai.expect(output).to.contain('repo2'); + chai.expect(output).to.contain('develop'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('describes a pipeline repository ', async () => { + const response = { + success: true, + pipelineRepository: { + name: 'repo1', + repo: exampleRepo, + branch: 'develop', + _projectId: PROJECT, + deleted: false, + version: 1, + }, + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*/).reply(200, response); + await create().parseAsync(['node', 'repos', 'describe', 'repo1', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + const description = JSON.parse(output); + chai.expect(description).to.deep.equal(response.pipelineRepository); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('saves a pipeline repository ', async () => { + const repo = { + name: 'repo1', + repo: exampleRepo, + branch: 'develop', + }; + const response = { + success: true, + version: 1, + message: 'pipelineRepository repo1 saved.', + }; + // save definition of 'repo' to temporary file + const dir = await mkdtemp(join(tmpdir(), 'tmp-')); + const filename = join(dir, 'repo1.json'); + await writeFile(filename, JSON.stringify(repo)); + // invoke the CLI + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'save', filename, '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // verify response + chai.expect(output).to.contain('Pipeline Repository saved'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('deletes a pipeline repository ', async () => { + const response = { + success: true, + message: 'Successfully deleted pipelineRepository repo1', + }; + nock(serverUrl).delete(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*/).reply(200, response); + await create().parseAsync(['node', 'repos', 'delete', 'repo1', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain(response.message); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('fails to delete a pipeline repository ', async () => { + const response = { + success: false, + message: 'Failed to delete pipelineRepository repo1', + status: 503, + }; + nock(serverUrl).delete(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*/).reply(200, response); + try { + await create().parseAsync(['node', 'repos', 'delete', 'repo1', '--project', PROJECT]); + } catch (err) { + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // eslint-disable-next-line no-unused-expressions + chai.expect(output).to.be.empty; + chai.expect(errs).to.contain('Pipeline Repository deletion failed: 503 Failed to delete pipelineRepository repo1.'); + nock.isDone(); + } + }); + }); +}); diff --git a/test/pipelines.js b/test/pipelines.js new file mode 100644 index 00000000..7f9a2729 --- /dev/null +++ b/test/pipelines.js @@ -0,0 +1,123 @@ +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import nock from 'nock'; +import _ from 'lodash'; +import sinon from 'sinon'; +import { create } from '../bin/cortex-pipelines.js'; +import { stripAnsi } from './utils.js'; + +const PROJECT = 'project'; + +describe('Pipelines', () => { + let restoreEnv; + let sandbox; + let printSpy; + let errorSpy; + beforeEach(() => { + if (!nock.isActive()) { + nock.activate(); + } + restoreEnv = mockedEnv({ + CORTEX_CONFIG_DIR: './test/cortex', + }); + sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit').throws(Error('EXIT')); + printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); + }); + + afterEach(() => { + // clean up mocks that may not have been called + restoreEnv(); + nock.cleanAll(); + sandbox.restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + + const serverUrl = 'http://localhost:4445'; + + describe('Pipeline', () => { + it('lists pipelines - empty', async () => { + const response = { success: true, pipelines: [] }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines.*/).reply(200, response); + create(); + await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT]); + + const output = getPrintedLines(); + const errs = getErrorLines(); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs.join('')).to.be.empty; + chai.expect(output.join('')).to.contain('No pipelines found'); + nock.isDone(); + }); + + it('lists pipelines', async () => { + const response = { + success: true, + pipelines: [ + { name: 'pipeline1', gitRepoName: 'repo1', sha: 'qwerty' }, + { name: 'pipeline2', gitRepoName: 'repo2', sha: 'abcd' }, + ], + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines.*/).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain('pipeline1'); + chai.expect(output).to.contain('qwerty'); + chai.expect(output).to.contain('pipeline2'); + chai.expect(output).to.contain('qwerty'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('describes a pipeline', async () => { + const response = { + success: true, + pipeline: { + name: 'pipeline1', + sha: 'qwerty', + gitRepoName: 'repo1', + _projectId: PROJECT, + deleted: false, + version: 1, + }, + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines\/.*/).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'describe', 'pipeline1', 'repo1', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + const description = JSON.parse(output); + chai.expect(description).to.deep.equal(response.pipeline); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('describes a non-existent pipeline', async () => { + const response = { + success: false, + message: 'pipeline with name nonExistentPipeline not found', + status: 404, + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines\/.*/).reply(404, response); + try { + await create().parseAsync(['node', 'pipelines', 'describe', 'nonExistentPipeline', 'repo1', '--project', PROJECT]); + } catch (err) { + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // eslint-disable-next-line no-unused-expressions + chai.expect(output).to.be.empty; + chai.expect(errs).to.contain('Failed to describe pipeline: 404 pipeline with name nonExistentPipeline not found'); + nock.isDone(); + } + }); + }); +}); From 5d9f92c82d928868b1a9c53144a72b16151e0edb Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Wed, 20 Sep 2023 11:01:11 -0500 Subject: [PATCH 815/864] fix pipelines url (#701) * fixed pipeline endpoint * fixed server URL --- src/client/pipelines.js | 2 +- test/pipelines.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/pipelines.js b/src/client/pipelines.js index 251c7e31..b780a53f 100644 --- a/src/client/pipelines.js +++ b/src/client/pipelines.js @@ -9,7 +9,7 @@ const debug = debugSetup('cortex:cli'); export default class Pipelines { constructor(cortexUrl) { this.cortexUrl = cortexUrl; - this.endpointV4 = (projectId) => `http://localhost:4445/fabric/v4/projects/${projectId}/${PIPELINE_API}`; + this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/${PIPELINE_API}`; } async listPipelines(projectId, token, filter, limit, skip, sort) { diff --git a/test/pipelines.js b/test/pipelines.js index 7f9a2729..61d1a067 100644 --- a/test/pipelines.js +++ b/test/pipelines.js @@ -40,7 +40,7 @@ describe('Pipelines', () => { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - const serverUrl = 'http://localhost:4445'; + const serverUrl = 'http://localhost:8000'; describe('Pipeline', () => { it('lists pipelines - empty', async () => { From c536d2e0959ae44a67cad9ec73865636c1d2ae02 Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Fri, 29 Sep 2023 01:33:10 -0500 Subject: [PATCH 816/864] FAB 6059 pipelines update (#703) * added update-pipelines command * added unit tests * added tabular print for update pipeliens * fix vulns --------- Co-authored-by: Yashwanth <yreddy@cognitivescale.com> --- bin/cortex-pipelines-repos.js | 23 ++++- package-lock.json | 120 ++++++++++++++------------- package.json | 4 +- src/client/pipelineRepositories.js | 13 +++ src/commands/pipelineRepositories.js | 73 ++++++++++++++++ test/pipelineRepositories.js | 28 +++++++ 6 files changed, 201 insertions(+), 60 deletions(-) diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js index 6ea0b305..91db66a4 100644 --- a/bin/cortex-pipelines-repos.js +++ b/bin/cortex-pipelines-repos.js @@ -3,7 +3,11 @@ import esMain from 'es-main'; import { Command } from 'commander'; import { withCompatibilityCheck } from '../src/compatibility.js'; import { - ListPipelineRepoCommand, DescribePipelineRepoCommand, DeletePipelineRepoCommand, SavePipelineRepoCommand, + ListPipelineRepoCommand, + DescribePipelineRepoCommand, + DeletePipelineRepoCommand, + SavePipelineRepoCommand, + UpdateRepoPipelinesCommand, } from '../src/commands/pipelineRepositories.js'; import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, @@ -88,6 +92,23 @@ export function create() { } })); + // Update pipelines + repos + .command('update-pipelines <pipelineRepoName>') + .description('Updates pipelines within Sensa catalog.') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .action(withCompatibilityCheck((pipelineRepoName, options) => { + try { + return new UpdateRepoPipelinesCommand(repos).execute(pipelineRepoName, options); + } catch (err) { + return printError(err.message); + } + })); + return repos; } diff --git a/package-lock.json b/package-lock.json index f8f91aaa..2120366c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.2.4", + "version": "2.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.2.4", + "version": "2.3.0", "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "2.4.0", @@ -24,7 +24,7 @@ "gh-got": "10.0.0", "glob": "10.3.1", "got": "13.0.0", - "graphql": "16.7.1", + "graphql": "16.8.1", "graphql-request": "6.1.0", "inquirer": "9.2.7", "is-installed-globally": "0.4.0", @@ -53,7 +53,7 @@ "audit-ci": "6.6.1", "c8": "8.0.0", "caxa": "3.0.1", - "chai": "4.3.7", + "chai": "4.3.10", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", "esbuild": "0.18.15", @@ -1822,18 +1822,18 @@ } }, "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" }, "engines": { "node": ">=4" @@ -1868,10 +1868,13 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } @@ -2726,9 +2729,9 @@ } }, "node_modules/eslint-config-airbnb-base/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -2843,9 +2846,9 @@ } }, "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -3424,9 +3427,9 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { "node": "*" @@ -3718,9 +3721,9 @@ "dev": true }, "node_modules/graphql": { - "version": "16.7.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.7.1.tgz", - "integrity": "sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==", + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -4908,9 +4911,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -8976,18 +8979,18 @@ } }, "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, "requires": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" } }, "chai-as-promised": { @@ -9010,10 +9013,13 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "requires": { + "get-func-name": "^2.0.2" + } }, "check-more-types": { "version": "2.24.0", @@ -9657,9 +9663,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -9757,9 +9763,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } @@ -10180,9 +10186,9 @@ "dev": true }, "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true }, "get-intrinsic": { @@ -10378,9 +10384,9 @@ "dev": true }, "graphql": { - "version": "16.7.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.7.1.tgz", - "integrity": "sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==" + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" }, "graphql-request": { "version": "6.1.0", @@ -11223,9 +11229,9 @@ }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true } } diff --git a/package.json b/package.json index 0463cbda..b9a84e96 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "gh-got": "10.0.0", "glob": "10.3.1", "got": "13.0.0", - "graphql": "16.7.1", + "graphql": "16.8.1", "graphql-request": "6.1.0", "inquirer": "9.2.7", "is-installed-globally": "0.4.0", @@ -87,7 +87,7 @@ "audit-ci": "6.6.1", "c8": "8.0.0", "caxa": "3.0.1", - "chai": "4.3.7", + "chai": "4.3.10", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", "esbuild": "0.18.15", diff --git a/src/client/pipelineRepositories.js b/src/client/pipelineRepositories.js index 6afa66cb..bc4095e7 100644 --- a/src/client/pipelineRepositories.js +++ b/src/client/pipelineRepositories.js @@ -69,4 +69,17 @@ export default class PipelineRepos { return constructError(err); } } + + async updateRepoPipelines(projectId, token, pipelineRepoName) { + checkProject(projectId); + const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(pipelineRepoName)}/update`; + debug('updateRepoPipelines(%s) => %s', pipelineRepoName, endpoint); + try { + return await got.post(endpoint, { + headers: defaultHeaders(token), + }).json(); + } catch (err) { + return constructError(err); + } + } } diff --git a/src/commands/pipelineRepositories.js b/src/commands/pipelineRepositories.js index 885be045..c598e0ba 100644 --- a/src/commands/pipelineRepositories.js +++ b/src/commands/pipelineRepositories.js @@ -113,3 +113,76 @@ export const DeletePipelineRepoCommand = class { } } }; + +export const UpdateRepoPipelinesCommand = class { + constructor(program) { + this.program = program; + } + + async execute(pipelineRepoName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeUpdateRepoPipelines(%s)', profile.name, pipelineRepoName); + const repos = new Pipelines(profile.url); + try { + const response = await repos.updateRepoPipelines(options.project || profile.project, profile.token, pipelineRepoName); + if (response.success) { + const result = response.updateReport; + if (options.json) { + return getFilteredOutput(result, options); + } + const tableSpec = [ + { column: 'Added', field: 'added', width: 15 }, + { column: 'Updated', field: 'updated', width: 15 }, + { column: 'Deleted', field: 'deleted', width: 15 }, + { column: 'Failed to Add', field: 'failedToAdd', width: 20 }, + { column: 'Failed to Update', field: 'failedToUpdate', width: 20 }, + { column: 'Failed to Delete', field: 'failedToDelete', width: 20 }, + ]; + const maxLength = Math.max( + result.added.length, + result.updated.length, + result.deleted.length, + result.failed.add.length, + result.failed.delete.length, + result.failed.update.length, + ); + const transformedResult = []; + // eslint-disable-next-line no-plusplus + for (let i = 0; i < maxLength; i++) { + const obj = {}; + + if (result.added[i]) { + obj.added = result.added[i]; + } + if (result.updated[i]) { + obj.updated = result.updated[i]; + } + if (result.deleted[i]) { + obj.deleted = result.deleted[i]; + } + if (result.failed.add[i]) { + obj.failedAdd = result.failed.add[i].pipelineName || ''; + } + if (result.failed.update[i]) { + obj.failedUpdate = result.failed.update[i].pipelineName || ''; + } + if (result.failed.delete[i]) { + obj.failedDelete = result.failed.delete[i].pipelineName || ''; + } + transformedResult.push(obj); + } + return handleTable(tableSpec, transformedResult, (o) => ({ + added: o.added, + updated: o.updated, + deleted: o.deleted, + failedToAdd: o.failedAdd, + failedToUpdate: o.failedUpdate, + failedToDelete: o.failedDelete, + }), 'Failed to update repo pipelines'); + } + return printError(`Failed to update repo pipelines: ${response.status} ${response.message}`, options); + } catch (err) { + return printError(`Failed to update repo pipelines: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/test/pipelineRepositories.js b/test/pipelineRepositories.js index 708441b8..3aeca27a 100644 --- a/test/pipelineRepositories.js +++ b/test/pipelineRepositories.js @@ -177,5 +177,33 @@ describe('Pipelines', () => { nock.isDone(); } }); + + it('should update-pipelines', async () => { + const response = { + success: true, + updateReport: { + added: ['pipeline1'], + updated: ['pipeline2'], + deleted: ['pipeline3'], + failed: { + add: [], + delete: [], + update: [], + }, + }, + }; + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/).reply(200, response); + try { + await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT]); + } catch (err) { + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + const jsonOutput = JSON.parse(output); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + chai.expect(jsonOutput.success).to.equal(true); + nock.isDone(); + } + }); }); }); From 6ab24e8b403e7535dd253c8f67baff72f394dc64 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Thu, 5 Oct 2023 19:13:11 -0500 Subject: [PATCH 817/864] Fab 6052 - Add ability to update pipelines with custom Skill reference (#706) * Add unit test * Fix unit test, and include project statement about the skill --- bin/cortex-pipelines-repos.js | 1 + src/client/pipelineRepositories.js | 7 ++++++- src/commands/pipelineRepositories.js | 2 +- test/pipelineRepositories.js | 30 ++++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js index 91db66a4..d54ee584 100644 --- a/bin/cortex-pipelines-repos.js +++ b/bin/cortex-pipelines-repos.js @@ -101,6 +101,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--skill <skillName>', 'Name of the underlying Skill in the same Project to use for running the Pipeline') .action(withCompatibilityCheck((pipelineRepoName, options) => { try { return new UpdateRepoPipelinesCommand(repos).execute(pipelineRepoName, options); diff --git a/src/client/pipelineRepositories.js b/src/client/pipelineRepositories.js index bc4095e7..ca8dd1dc 100644 --- a/src/client/pipelineRepositories.js +++ b/src/client/pipelineRepositories.js @@ -70,13 +70,18 @@ export default class PipelineRepos { } } - async updateRepoPipelines(projectId, token, pipelineRepoName) { + async updateRepoPipelines(projectId, token, pipelineRepoName, skill) { checkProject(projectId); + const params = {}; const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(pipelineRepoName)}/update`; + if (skill) { + params.skill = skill; + } debug('updateRepoPipelines(%s) => %s', pipelineRepoName, endpoint); try { return await got.post(endpoint, { headers: defaultHeaders(token), + searchParams: params, }).json(); } catch (err) { return constructError(err); diff --git a/src/commands/pipelineRepositories.js b/src/commands/pipelineRepositories.js index c598e0ba..8272c3de 100644 --- a/src/commands/pipelineRepositories.js +++ b/src/commands/pipelineRepositories.js @@ -124,7 +124,7 @@ export const UpdateRepoPipelinesCommand = class { debug('%s.executeUpdateRepoPipelines(%s)', profile.name, pipelineRepoName); const repos = new Pipelines(profile.url); try { - const response = await repos.updateRepoPipelines(options.project || profile.project, profile.token, pipelineRepoName); + const response = await repos.updateRepoPipelines(options.project || profile.project, profile.token, pipelineRepoName, options.skill); if (response.success) { const result = response.updateReport; if (options.json) { diff --git a/test/pipelineRepositories.js b/test/pipelineRepositories.js index 3aeca27a..2a22883b 100644 --- a/test/pipelineRepositories.js +++ b/test/pipelineRepositories.js @@ -206,4 +206,34 @@ describe('Pipelines', () => { } }); }); + + it('should update-pipelines with custom Skill', async () => { + const response = { + success: true, + updateReport: { + added: ['pipeline1'], + updated: ['pipeline2'], + deleted: ['pipeline3'], + failed: { + add: [], + delete: [], + update: [], + }, + }, + }; + + nock(serverUrl) + .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) + .query({ skill: 'my-skill' }) + .reply(200, response); + await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT, '--skill', 'my-skill']); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain('pipeline1'); + chai.expect(output).to.contain('pipeline2'); + chai.expect(output).to.contain('pipeline3'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); }); From 9c9b65ee84341881e0a4702b8cde5c9befd07b98 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Fri, 6 Oct 2023 03:05:11 -0500 Subject: [PATCH 818/864] Fab 5677 cancel (#704) * FAB-5677 add cancel-activation to agents sub-command. Fix error message for cancel * Bump deps * Remove bad comment --- bin/cortex-agents.js | 18 + package-lock.json | 2460 ++++++++++++++++++++++----------------- package.json | 38 +- src/client/agents.js | 13 + src/commands/agents.js | 22 +- src/commands/deploy.js | 1 + test/uploadDirectory.js | 2 +- 7 files changed, 1438 insertions(+), 1116 deletions(-) diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 56ea9ee9..45b6da2f 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -25,6 +25,7 @@ import { ListServicesCommand, SaveAgentCommand, UndeployAgentCommand, + CancelActivationCommand, } from '../src/commands/agents.js'; export function create() { @@ -173,6 +174,23 @@ export function create() { console.error(chalk.red(err.message)); } })); +// Cancel activation + program + .command('cancel-activation <activationId>') + .description('Cancel pending/running activation') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--inFlight [boolean]', 'Leave inflight jobs running', false) + .action(withCompatibilityCheck((activationId, options) => { + try { + new CancelActivationCommand(program).execute(activationId, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); + // List activations program .command('list-activations') diff --git a/package-lock.json b/package-lock.json index 2120366c..b79a2357 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,41 +9,41 @@ "version": "2.3.0", "license": "Apache-2.0", "dependencies": { - "@supercharge/promise-pool": "2.4.0", + "@supercharge/promise-pool": "3.1.0", "boolean": "3.2.0", - "chalk": "5.2.0", + "chalk": "5.3.0", "cli-progress": "3.12.0", "cli-table3": "0.6.3", "commander": "11.0.0", - "dayjs": "1.11.8", + "dayjs": "1.11.10", "debug": "4.3.4", "dockerode": "3.3.5", - "es-main": "1.2.0", + "es-main": "1.3.0", "form-data": "4.0.0", - "get-stream": "7.0.0", + "get-stream": "8.0.1", "gh-got": "10.0.0", - "glob": "10.3.1", + "glob": "10.3.10", "got": "13.0.0", "graphql": "16.8.1", "graphql-request": "6.1.0", - "inquirer": "9.2.7", + "inquirer": "9.2.11", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.9.2", - "jose": "4.14.4", + "joi": "17.10.2", + "jose": "4.15.0", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "9.0.2", - "npm-registry-fetch": "14.0.5", + "minimatch": "9.0.3", + "npm-registry-fetch": "16.0.0", "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.5.3", + "semver": "7.5.4", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", - "uuid": "9.0.0", + "uuid": "9.0.1", "yauzl": "2.10.0" }, "bin": { @@ -51,22 +51,22 @@ }, "devDependencies": { "audit-ci": "6.6.1", - "c8": "8.0.0", + "c8": "8.0.1", "caxa": "3.0.1", "chai": "4.3.10", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "esbuild": "0.18.15", - "eslint": "8.43.0", + "esbuild": "0.19.4", + "eslint": "8.50.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.27.5", + "eslint-plugin-import": "2.28.1", "husky": "8.0.3", "is-ci": "3.0.1", "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.3.1", + "nock": "13.3.3", "pkg": "5.8.1", - "sinon": "15.2.0" + "sinon": "16.0.0" }, "engines": { "node": ">=16.0.0" @@ -120,9 +120,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.15.tgz", - "integrity": "sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", + "integrity": "sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==", "cpu": [ "arm" ], @@ -136,9 +136,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.15.tgz", - "integrity": "sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz", + "integrity": "sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==", "cpu": [ "arm64" ], @@ -152,9 +152,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.15.tgz", - "integrity": "sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.4.tgz", + "integrity": "sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==", "cpu": [ "x64" ], @@ -168,9 +168,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.15.tgz", - "integrity": "sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz", + "integrity": "sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==", "cpu": [ "arm64" ], @@ -184,9 +184,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.15.tgz", - "integrity": "sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz", + "integrity": "sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==", "cpu": [ "x64" ], @@ -200,9 +200,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.15.tgz", - "integrity": "sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz", + "integrity": "sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==", "cpu": [ "arm64" ], @@ -216,9 +216,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.15.tgz", - "integrity": "sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz", + "integrity": "sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==", "cpu": [ "x64" ], @@ -232,9 +232,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.15.tgz", - "integrity": "sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz", + "integrity": "sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==", "cpu": [ "arm" ], @@ -248,9 +248,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.15.tgz", - "integrity": "sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz", + "integrity": "sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==", "cpu": [ "arm64" ], @@ -264,9 +264,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.15.tgz", - "integrity": "sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz", + "integrity": "sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==", "cpu": [ "ia32" ], @@ -280,9 +280,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.15.tgz", - "integrity": "sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz", + "integrity": "sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==", "cpu": [ "loong64" ], @@ -296,9 +296,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.15.tgz", - "integrity": "sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz", + "integrity": "sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==", "cpu": [ "mips64el" ], @@ -312,9 +312,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.15.tgz", - "integrity": "sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz", + "integrity": "sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==", "cpu": [ "ppc64" ], @@ -328,9 +328,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.15.tgz", - "integrity": "sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz", + "integrity": "sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==", "cpu": [ "riscv64" ], @@ -344,9 +344,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.15.tgz", - "integrity": "sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz", + "integrity": "sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==", "cpu": [ "s390x" ], @@ -360,9 +360,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.15.tgz", - "integrity": "sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz", + "integrity": "sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==", "cpu": [ "x64" ], @@ -376,9 +376,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.15.tgz", - "integrity": "sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz", + "integrity": "sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==", "cpu": [ "x64" ], @@ -392,9 +392,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.15.tgz", - "integrity": "sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz", + "integrity": "sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==", "cpu": [ "x64" ], @@ -408,9 +408,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.15.tgz", - "integrity": "sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz", + "integrity": "sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==", "cpu": [ "x64" ], @@ -424,9 +424,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.15.tgz", - "integrity": "sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz", + "integrity": "sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==", "cpu": [ "arm64" ], @@ -440,9 +440,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.15.tgz", - "integrity": "sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz", + "integrity": "sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==", "cpu": [ "ia32" ], @@ -456,9 +456,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.15.tgz", - "integrity": "sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz", + "integrity": "sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==", "cpu": [ "x64" ], @@ -487,23 +487,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -531,9 +531,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", - "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -561,9 +561,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -737,6 +737,14 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@ljharb/through": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz", + "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -772,6 +780,51 @@ "node": ">= 8" } }, + "node_modules/@npmcli/agent": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.1.1.tgz", + "integrity": "sha512-6RlbiOAi6L6uUYF4/CDEkDZQnKw0XDsFJVrEpnib8rAx2WRMOsUyAdgnvDpX/fdkDWxtqE+NHwF465llI2wR0g==", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/@npmcli/fs": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", @@ -866,9 +919,9 @@ "dev": true }, "node_modules/@supercharge/promise-pool": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz", - "integrity": "sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-3.1.0.tgz", + "integrity": "sha512-gB3NukbIcYzRtPoE6dx9svQYPodxvnfQlaaQd8N/z87E6WaMfRE7o5HwB+LZ+KeM0nsNAq1n4TmBtfz1VCUR+Q==", "engines": { "node": ">=8" } @@ -884,14 +937,6 @@ "node": ">=14.16" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, "node_modules/@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", @@ -910,9 +955,9 @@ "dev": true }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -934,6 +979,7 @@ "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, "dependencies": { "debug": "4" }, @@ -941,19 +987,6 @@ "node": ">= 6.0.0" } }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -1163,6 +1196,19 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-includes": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", @@ -1191,6 +1237,25 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -1227,6 +1292,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -1475,9 +1561,9 @@ } }, "node_modules/c8": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.0.tgz", - "integrity": "sha512-XHA5vSfCLglAc0Xt8eLBZMv19lgiBSjnb1FLAQgnwkuhJYEonpilhEB4Ea3jPAbm0FhD6VVJrc0z73jPe7JyGQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", + "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", @@ -1485,13 +1571,13 @@ "find-up": "^5.0.0", "foreground-child": "^2.0.0", "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.1.4", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.6", "rimraf": "^3.0.2", "test-exclude": "^6.0.0", "v8-to-istanbul": "^9.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9" + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" }, "bin": { "c8": "bin/c8.js" @@ -1500,118 +1586,51 @@ "node": ">=12" } }, - "node_modules/c8/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/c8/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/c8/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { - "node": ">=10" + "node": "14 || >=16.14" } }, "node_modules/cacache/node_modules/minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/cacheable-lookup": { @@ -1852,9 +1871,9 @@ } }, "node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -2006,9 +2025,9 @@ } }, "node_modules/cli-width": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", - "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "engines": { "node": ">= 12" } @@ -2215,9 +2234,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", - "integrity": "sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==" + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -2343,6 +2362,20 @@ "node": ">=10" } }, + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", @@ -2355,11 +2388,12 @@ } }, "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -2378,14 +2412,6 @@ "node": ">=0.4.0" } }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/detect-libc": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", @@ -2505,17 +2531,19 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "node_modules/es-abstract": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", - "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.0", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", @@ -2523,25 +2551,30 @@ "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -2551,9 +2584,9 @@ } }, "node_modules/es-main": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.2.0.tgz", - "integrity": "sha512-A4tCSY43O/mH4rHjG1n0mI4DhK2BmKDr8Lk8PXK/GBB6zxGFGmIW4bbkbTQ2Gi9iNamMZ9vbGrwjZOIeiM7vMw==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.3.0.tgz", + "integrity": "sha512-AzORKdz1Zt97TzbYQnIrI3ZiibWpRXUfpo/w0xOJ20GpNYd2bd3MU9m31zS/aJ1TJl6JfLTok83Y8HjNunYT0A==" }, "node_modules/es-set-tostringtag": { "version": "2.0.1", @@ -2596,9 +2629,9 @@ } }, "node_modules/esbuild": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.15.tgz", - "integrity": "sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.4.tgz", + "integrity": "sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==", "dev": true, "hasInstallScript": true, "bin": { @@ -2608,28 +2641,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.15", - "@esbuild/android-arm64": "0.18.15", - "@esbuild/android-x64": "0.18.15", - "@esbuild/darwin-arm64": "0.18.15", - "@esbuild/darwin-x64": "0.18.15", - "@esbuild/freebsd-arm64": "0.18.15", - "@esbuild/freebsd-x64": "0.18.15", - "@esbuild/linux-arm": "0.18.15", - "@esbuild/linux-arm64": "0.18.15", - "@esbuild/linux-ia32": "0.18.15", - "@esbuild/linux-loong64": "0.18.15", - "@esbuild/linux-mips64el": "0.18.15", - "@esbuild/linux-ppc64": "0.18.15", - "@esbuild/linux-riscv64": "0.18.15", - "@esbuild/linux-s390x": "0.18.15", - "@esbuild/linux-x64": "0.18.15", - "@esbuild/netbsd-x64": "0.18.15", - "@esbuild/openbsd-x64": "0.18.15", - "@esbuild/sunos-x64": "0.18.15", - "@esbuild/win32-arm64": "0.18.15", - "@esbuild/win32-ia32": "0.18.15", - "@esbuild/win32-x64": "0.18.15" + "@esbuild/android-arm": "0.19.4", + "@esbuild/android-arm64": "0.19.4", + "@esbuild/android-x64": "0.19.4", + "@esbuild/darwin-arm64": "0.19.4", + "@esbuild/darwin-x64": "0.19.4", + "@esbuild/freebsd-arm64": "0.19.4", + "@esbuild/freebsd-x64": "0.19.4", + "@esbuild/linux-arm": "0.19.4", + "@esbuild/linux-arm64": "0.19.4", + "@esbuild/linux-ia32": "0.19.4", + "@esbuild/linux-loong64": "0.19.4", + "@esbuild/linux-mips64el": "0.19.4", + "@esbuild/linux-ppc64": "0.19.4", + "@esbuild/linux-riscv64": "0.19.4", + "@esbuild/linux-s390x": "0.19.4", + "@esbuild/linux-x64": "0.19.4", + "@esbuild/netbsd-x64": "0.19.4", + "@esbuild/openbsd-x64": "0.19.4", + "@esbuild/sunos-x64": "0.19.4", + "@esbuild/win32-arm64": "0.19.4", + "@esbuild/win32-ia32": "0.19.4", + "@esbuild/win32-x64": "0.19.4" } }, "node_modules/escalade": { @@ -2654,27 +2687,27 @@ } }, "node_modules/eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.43.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2684,7 +2717,6 @@ "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", @@ -2694,9 +2726,8 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -2758,9 +2789,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -2784,26 +2815,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "dev": true, "dependencies": { "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", "array.prototype.flat": "^1.3.1", "array.prototype.flatmap": "^1.3.1", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "engines": { "node": ">=4" @@ -2855,9 +2888,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -2871,9 +2904,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2911,12 +2944,12 @@ } }, "node_modules/espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" }, @@ -3347,28 +3380,29 @@ } }, "node_modules/fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dependencies": { - "minipass": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/fs-minipass/node_modules/minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "node_modules/fsevents": { "version": "2.3.2", @@ -3391,15 +3425,15 @@ "dev": true }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -3436,13 +3470,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -3450,9 +3485,9 @@ } }, "node_modules/get-stream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.0.tgz", - "integrity": "sha512-ql6FW5b8tgMYvI4UaoxG3EQN3VyZ6VeQpxNBGg5BZ4xD4u+HJeprzhMMA4OCBEGQgSR+m87pstWMpiVW64W8Fw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "engines": { "node": ">=16" }, @@ -3531,18 +3566,18 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.1.tgz", - "integrity": "sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.10.0" + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -3612,9 +3647,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3830,22 +3865,22 @@ } }, "node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", "dependencies": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { - "node": ">=12" + "node": "14 || >=16.14" } }, "node_modules/html-escaper": { @@ -3860,16 +3895,26 @@ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, "node_modules/http2-wrapper": { @@ -3888,6 +3933,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -3904,14 +3950,6 @@ "node": ">=14.18.0" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" - } - }, "node_modules/husky": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", @@ -4002,6 +4040,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -4021,15 +4060,16 @@ } }, "node_modules/inquirer": { - "version": "9.2.7", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.7.tgz", - "integrity": "sha512-Bf52lnfvNxGPJPltiNO2tLBp3zC339KNlGMqOkW+dsvNikBhcVDK5kqU2lVX2FTPzuXUFX5WJDlsw//w3ZwoTw==", + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", + "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", "dependencies": { + "@ljharb/through": "^2.3.9", "ansi-escapes": "^4.3.2", - "chalk": "^5.2.0", + "chalk": "^5.3.0", "cli-cursor": "^3.1.0", - "cli-width": "^4.0.0", - "external-editor": "^3.0.3", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", @@ -4038,8 +4078,7 @@ "rxjs": "^7.8.1", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" + "wrap-ansi": "^6.2.0" }, "engines": { "node": ">=14.18.0" @@ -4059,12 +4098,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -4094,13 +4133,13 @@ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "node_modules/is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "is-typed-array": "^1.1.10" }, "funding": { @@ -4172,9 +4211,9 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -4423,16 +4462,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -4496,23 +4531,23 @@ } }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4538,9 +4573,9 @@ } }, "node_modules/jackspeak": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", - "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -4569,9 +4604,9 @@ } }, "node_modules/joi": { - "version": "17.9.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", - "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "version": "17.10.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.2.tgz", + "integrity": "sha512-hcVhjBxRNW/is3nNLdGLIjkgXetkeGc2wyhydhz8KumG23Aerk4HPjU5zaPAMRqXQFc0xNqXTC7+zQjxr0GlKA==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4581,9 +4616,9 @@ } }, "node_modules/jose": { - "version": "4.14.4", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", - "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.0.tgz", + "integrity": "sha512-hkffyGXh/xmT6JZfzVC2TwJXIeLnqkH8e+azMsYjATla92XuCbfDZFY7+TzQPG0oqohJ7odUaunjA9gtUa2raw==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -4634,6 +4669,18 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -4896,68 +4943,47 @@ } }, "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", "ssri": "^10.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", - "engines": { - "node": ">=12" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/make-fetch-happen/node_modules/minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/map-stream": { @@ -5032,9 +5058,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5084,11 +5110,11 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", "dependencies": { - "minipass": "^4.0.0", + "minipass": "^7.0.3", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -5100,11 +5126,11 @@ } }, "node_modules/minipass-fetch/node_modules/minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass-flush": { @@ -5440,9 +5466,9 @@ } }, "node_modules/nock": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.1.tgz", - "integrity": "sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw==", + "version": "13.3.3", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.3.tgz", + "integrity": "sha512-z+KUlILy9SK/RjpeXDiDUEAq4T94ADPHE3qaRkf66mpEhzc/ytOMm3Bwdrbq6k1tMWkbdujiKim3G2tfQARuJw==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -5510,42 +5536,42 @@ } }, "node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", "dependencies": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-registry-fetch": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", - "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.0.0.tgz", + "integrity": "sha512-JFCpAPUpvpwfSydv99u85yhP68rNIxSFmDpNbNnRWKSe3gpjHnWL8v320gATwRzjtgmZ9Jfe37+ZPOLZPwz6BQ==", "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "proc-log": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-registry-fetch/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/npm-run-path": { @@ -5574,9 +5600,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5623,6 +5649,35 @@ "node": ">= 0.4" } }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "node_modules/object.values": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", @@ -5847,12 +5902,12 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.0.tgz", - "integrity": "sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2" + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -5862,17 +5917,17 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-scurry/node_modules/minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -6184,11 +6239,6 @@ "node": ">=0.4.0" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" - }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", @@ -6383,14 +6433,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -6659,6 +6709,30 @@ "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6698,9 +6772,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6720,6 +6794,20 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6802,9 +6890,9 @@ } }, "node_modules/sinon": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz", - "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-16.0.0.tgz", + "integrity": "sha512-B8AaZZm9CT5pqe4l4uWJztfD/mOTa7dL8Qo0W4+s+t74xECOgSZDDQCBjNgIK3+n4kyxQrSTv2V5ul8K25qkiQ==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0", @@ -6874,16 +6962,27 @@ } }, "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" }, "engines": { - "node": ">= 10" + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" } }, "node_modules/split": { @@ -6921,22 +7020,22 @@ } }, "node_modules/ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", "dependencies": { - "minipass": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/ssri/node_modules/minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/stream-combiner": { @@ -7029,29 +7128,46 @@ "node": ">=8" } }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7080,6 +7196,15 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -7127,13 +7252,13 @@ } }, "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -7196,9 +7321,9 @@ } }, "node_modules/tar/node_modules/minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { "node": ">=8" } @@ -7269,7 +7394,8 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true }, "node_modules/titleize": { "version": "3.0.0", @@ -7328,38 +7454,17 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/tslib": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", @@ -7414,6 +7519,57 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-array-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", @@ -7514,9 +7670,13 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "bin": { "uuid": "dist/bin/uuid" } @@ -7599,17 +7759,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -7678,9 +7837,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -7825,156 +7984,156 @@ "optional": true }, "@esbuild/android-arm": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.15.tgz", - "integrity": "sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", + "integrity": "sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.15.tgz", - "integrity": "sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz", + "integrity": "sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.15.tgz", - "integrity": "sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.4.tgz", + "integrity": "sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.15.tgz", - "integrity": "sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz", + "integrity": "sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.15.tgz", - "integrity": "sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz", + "integrity": "sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.15.tgz", - "integrity": "sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz", + "integrity": "sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.15.tgz", - "integrity": "sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz", + "integrity": "sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.15.tgz", - "integrity": "sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz", + "integrity": "sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.15.tgz", - "integrity": "sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz", + "integrity": "sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.15.tgz", - "integrity": "sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz", + "integrity": "sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.15.tgz", - "integrity": "sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz", + "integrity": "sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.15.tgz", - "integrity": "sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz", + "integrity": "sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.15.tgz", - "integrity": "sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz", + "integrity": "sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.15.tgz", - "integrity": "sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz", + "integrity": "sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.15.tgz", - "integrity": "sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz", + "integrity": "sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.15.tgz", - "integrity": "sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz", + "integrity": "sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.15.tgz", - "integrity": "sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz", + "integrity": "sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.15.tgz", - "integrity": "sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz", + "integrity": "sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.15.tgz", - "integrity": "sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz", + "integrity": "sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.15.tgz", - "integrity": "sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz", + "integrity": "sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.15.tgz", - "integrity": "sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz", + "integrity": "sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.15.tgz", - "integrity": "sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz", + "integrity": "sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==", "dev": true, "optional": true }, @@ -7988,20 +8147,20 @@ } }, "@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true }, "@eslint/eslintrc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", - "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.2", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -8022,9 +8181,9 @@ } }, "@eslint/js": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz", - "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", "dev": true }, "@graphql-typed-document-node/core": { @@ -8047,9 +8206,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -8172,6 +8331,11 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, + "@ljharb/through": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz", + "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==" + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -8198,6 +8362,41 @@ "fastq": "^1.6.0" } }, + "@npmcli/agent": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.1.1.tgz", + "integrity": "sha512-6RlbiOAi6L6uUYF4/CDEkDZQnKw0XDsFJVrEpnib8rAx2WRMOsUyAdgnvDpX/fdkDWxtqE+NHwF465llI2wR0g==", + "requires": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "requires": { + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + } + } + }, "@npmcli/fs": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", @@ -8282,9 +8481,9 @@ "dev": true }, "@supercharge/promise-pool": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz", - "integrity": "sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-3.1.0.tgz", + "integrity": "sha512-gB3NukbIcYzRtPoE6dx9svQYPodxvnfQlaaQd8N/z87E6WaMfRE7o5HwB+LZ+KeM0nsNAq1n4TmBtfz1VCUR+Q==" }, "@szmarczak/http-timer": { "version": "5.0.1", @@ -8294,11 +8493,6 @@ "defer-to-connect": "^2.0.1" } }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, "@types/http-cache-semantics": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", @@ -8317,9 +8511,9 @@ "dev": true }, "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true }, "acorn-jsx": { @@ -8333,20 +8527,11 @@ "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" } }, - "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - } - }, "aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -8511,6 +8696,16 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, "array-includes": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", @@ -8530,6 +8725,19 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -8554,6 +8762,21 @@ "es-shim-unscopables": "^1.0.0" } }, + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, "asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -8726,9 +8949,9 @@ } }, "c8": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.0.tgz", - "integrity": "sha512-XHA5vSfCLglAc0Xt8eLBZMv19lgiBSjnb1FLAQgnwkuhJYEonpilhEB4Ea3jPAbm0FhD6VVJrc0z73jPe7JyGQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", + "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", @@ -8736,106 +8959,51 @@ "find-up": "^5.0.0", "foreground-child": "^2.0.0", "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.1.4", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.6", "rimraf": "^3.0.2", "test-exclude": "^6.0.0", "v8-to-istanbul": "^9.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.9" + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" }, "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true } } }, "cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", "requires": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==" - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" }, "minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" } } }, @@ -9003,9 +9171,9 @@ } }, "chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==" + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" }, "chardet": { "version": "0.7.0", @@ -9101,9 +9269,9 @@ } }, "cli-width": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", - "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==" }, "cliui": { "version": "8.0.1", @@ -9254,9 +9422,9 @@ } }, "dayjs": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", - "integrity": "sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==" + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "debug": { "version": "4.3.4", @@ -9340,17 +9508,29 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" }, + "define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "define-lazy-prop": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==" }, "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "requires": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } @@ -9360,11 +9540,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - }, "detect-libc": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", @@ -9465,17 +9640,19 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, "es-abstract": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.0.tgz", - "integrity": "sha512-GUGtW7eXQay0c+PRq0sGIKSdaBorfVqsCMhGHo4elP7YVqZu9nCZS4UkK4gv71gOWNMra/PaSKD3ao1oWExO0g==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.0", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", "globalthis": "^1.0.3", "gopd": "^1.0.1", @@ -9483,31 +9660,36 @@ "has-property-descriptors": "^1.0.0", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.4", - "is-array-buffer": "^3.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", + "is-typed-array": "^1.1.12", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", "typed-array-length": "^1.0.4", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" + "which-typed-array": "^1.1.11" } }, "es-main": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.2.0.tgz", - "integrity": "sha512-A4tCSY43O/mH4rHjG1n0mI4DhK2BmKDr8Lk8PXK/GBB6zxGFGmIW4bbkbTQ2Gi9iNamMZ9vbGrwjZOIeiM7vMw==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.3.0.tgz", + "integrity": "sha512-AzORKdz1Zt97TzbYQnIrI3ZiibWpRXUfpo/w0xOJ20GpNYd2bd3MU9m31zS/aJ1TJl6JfLTok83Y8HjNunYT0A==" }, "es-set-tostringtag": { "version": "2.0.1", @@ -9541,33 +9723,33 @@ } }, "esbuild": { - "version": "0.18.15", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.15.tgz", - "integrity": "sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.18.15", - "@esbuild/android-arm64": "0.18.15", - "@esbuild/android-x64": "0.18.15", - "@esbuild/darwin-arm64": "0.18.15", - "@esbuild/darwin-x64": "0.18.15", - "@esbuild/freebsd-arm64": "0.18.15", - "@esbuild/freebsd-x64": "0.18.15", - "@esbuild/linux-arm": "0.18.15", - "@esbuild/linux-arm64": "0.18.15", - "@esbuild/linux-ia32": "0.18.15", - "@esbuild/linux-loong64": "0.18.15", - "@esbuild/linux-mips64el": "0.18.15", - "@esbuild/linux-ppc64": "0.18.15", - "@esbuild/linux-riscv64": "0.18.15", - "@esbuild/linux-s390x": "0.18.15", - "@esbuild/linux-x64": "0.18.15", - "@esbuild/netbsd-x64": "0.18.15", - "@esbuild/openbsd-x64": "0.18.15", - "@esbuild/sunos-x64": "0.18.15", - "@esbuild/win32-arm64": "0.18.15", - "@esbuild/win32-ia32": "0.18.15", - "@esbuild/win32-x64": "0.18.15" + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.4.tgz", + "integrity": "sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.19.4", + "@esbuild/android-arm64": "0.19.4", + "@esbuild/android-x64": "0.19.4", + "@esbuild/darwin-arm64": "0.19.4", + "@esbuild/darwin-x64": "0.19.4", + "@esbuild/freebsd-arm64": "0.19.4", + "@esbuild/freebsd-x64": "0.19.4", + "@esbuild/linux-arm": "0.19.4", + "@esbuild/linux-arm64": "0.19.4", + "@esbuild/linux-ia32": "0.19.4", + "@esbuild/linux-loong64": "0.19.4", + "@esbuild/linux-mips64el": "0.19.4", + "@esbuild/linux-ppc64": "0.19.4", + "@esbuild/linux-riscv64": "0.19.4", + "@esbuild/linux-s390x": "0.19.4", + "@esbuild/linux-x64": "0.19.4", + "@esbuild/netbsd-x64": "0.19.4", + "@esbuild/openbsd-x64": "0.19.4", + "@esbuild/sunos-x64": "0.19.4", + "@esbuild/win32-arm64": "0.19.4", + "@esbuild/win32-ia32": "0.19.4", + "@esbuild/win32-x64": "0.19.4" } }, "escalade": { @@ -9583,27 +9765,27 @@ "dev": true }, "eslint": { - "version": "8.43.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz", - "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.43.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -9613,7 +9795,6 @@ "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", @@ -9623,9 +9804,8 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "dependencies": { @@ -9693,9 +9873,9 @@ } }, "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "requires": { "debug": "^3.2.7" @@ -9713,26 +9893,28 @@ } }, "eslint-plugin-import": { - "version": "2.27.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", - "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "dev": true, "requires": { "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", "array.prototype.flat": "^1.3.1", "array.prototype.flatmap": "^1.3.1", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", + "eslint-module-utils": "^2.8.0", "has": "^1.0.3", - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "is-glob": "^4.0.3", "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" }, "dependencies": { "debug": { @@ -9771,9 +9953,9 @@ } }, "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -9781,18 +9963,18 @@ } }, "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "espree": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", - "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" } @@ -10129,24 +10311,25 @@ } }, "fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "requires": { - "minipass": "^4.0.0" + "minipass": "^7.0.3" }, "dependencies": { "minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" } } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "fsevents": { "version": "2.3.2", @@ -10162,15 +10345,15 @@ "dev": true }, "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" } }, "functions-have-names": { @@ -10192,20 +10375,21 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, "get-stream": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-7.0.0.tgz", - "integrity": "sha512-ql6FW5b8tgMYvI4UaoxG3EQN3VyZ6VeQpxNBGg5BZ4xD4u+HJeprzhMMA4OCBEGQgSR+m87pstWMpiVW64W8Fw==" + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==" }, "get-symbol-description": { "version": "1.0.0", @@ -10256,15 +10440,15 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "glob": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.1.tgz", - "integrity": "sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.10.0" + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" }, "dependencies": { "foreground-child": { @@ -10306,9 +10490,9 @@ } }, "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -10454,17 +10638,17 @@ "dev": true }, "hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", "requires": { - "lru-cache": "^7.5.1" + "lru-cache": "^10.0.1" }, "dependencies": { "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==" + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" } } }, @@ -10480,13 +10664,22 @@ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "requires": { + "debug": "^4.3.4" + } + } } }, "http2-wrapper": { @@ -10502,6 +10695,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, "requires": { "agent-base": "6", "debug": "4" @@ -10512,14 +10706,6 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==" }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "requires": { - "ms": "^2.0.0" - } - }, "husky": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", @@ -10569,6 +10755,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -10585,15 +10772,16 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { - "version": "9.2.7", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.7.tgz", - "integrity": "sha512-Bf52lnfvNxGPJPltiNO2tLBp3zC339KNlGMqOkW+dsvNikBhcVDK5kqU2lVX2FTPzuXUFX5WJDlsw//w3ZwoTw==", + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", + "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", "requires": { + "@ljharb/through": "^2.3.9", "ansi-escapes": "^4.3.2", - "chalk": "^5.2.0", + "chalk": "^5.3.0", "cli-cursor": "^3.1.0", - "cli-width": "^4.0.0", - "external-editor": "^3.0.3", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", "figures": "^5.0.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", @@ -10602,8 +10790,7 @@ "rxjs": "^7.8.1", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" + "wrap-ansi": "^6.2.0" }, "dependencies": { "wrap-ansi": { @@ -10619,12 +10806,12 @@ } }, "internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, "requires": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -10645,13 +10832,13 @@ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "is-array-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz", - "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, "requires": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.2.0", "is-typed-array": "^1.1.10" } }, @@ -10699,9 +10886,9 @@ } }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -10850,16 +11037,12 @@ } }, "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "which-typed-array": "^1.1.11" } }, "is-unicode-supported": { @@ -10902,20 +11085,20 @@ "dev": true }, "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -10932,9 +11115,9 @@ } }, "jackspeak": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", - "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "requires": { "@isaacs/cliui": "^8.0.2", "@pkgjs/parseargs": "^0.11.0" @@ -10952,9 +11135,9 @@ "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { - "version": "17.9.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz", - "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==", + "version": "17.10.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.2.tgz", + "integrity": "sha512-hcVhjBxRNW/is3nNLdGLIjkgXetkeGc2wyhydhz8KumG23Aerk4HPjU5zaPAMRqXQFc0xNqXTC7+zQjxr0GlKA==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -10964,9 +11147,9 @@ } }, "jose": { - "version": "4.14.4", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", - "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==" + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.0.tgz", + "integrity": "sha512-hkffyGXh/xmT6JZfzVC2TwJXIeLnqkH8e+azMsYjATla92XuCbfDZFY7+TzQPG0oqohJ7odUaunjA9gtUa2raw==" }, "js-yaml": { "version": "4.1.0", @@ -11005,6 +11188,15 @@ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -11220,53 +11412,36 @@ } }, "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "semver": "^7.5.3" } }, "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", "ssri": "^10.0.0" }, "dependencies": { - "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==" - }, "minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" } } }, @@ -11321,9 +11496,9 @@ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" }, "minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "requires": { "brace-expansion": "^2.0.1" }, @@ -11360,20 +11535,20 @@ } }, "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", "requires": { "encoding": "^0.1.13", - "minipass": "^4.0.0", + "minipass": "^7.0.3", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "dependencies": { "minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" } } }, @@ -11631,9 +11806,9 @@ } }, "nock": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.1.tgz", - "integrity": "sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw==", + "version": "13.3.3", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.3.tgz", + "integrity": "sha512-z+KUlILy9SK/RjpeXDiDUEAq4T94ADPHE3qaRkf66mpEhzc/ytOMm3Bwdrbq6k1tMWkbdujiKim3G2tfQARuJw==", "dev": true, "requires": { "debug": "^4.1.0", @@ -11675,34 +11850,34 @@ "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==" }, "npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", "requires": { - "hosted-git-info": "^6.0.0", + "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" } }, "npm-registry-fetch": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", - "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.0.0.tgz", + "integrity": "sha512-JFCpAPUpvpwfSydv99u85yhP68rNIxSFmDpNbNnRWKSe3gpjHnWL8v320gATwRzjtgmZ9Jfe37+ZPOLZPwz6BQ==", "requires": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", + "npm-package-arg": "^11.0.0", "proc-log": "^3.0.0" }, "dependencies": { "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" } } }, @@ -11722,9 +11897,9 @@ } }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true }, "object-keys": { @@ -11756,6 +11931,29 @@ "es-abstract": "^1.20.4" } }, + "object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, "object.values": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", @@ -11910,23 +12108,23 @@ "dev": true }, "path-scurry": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.0.tgz", - "integrity": "sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "requires": { "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2" + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "dependencies": { "lru-cache": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==" + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" }, "minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==" + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" } } }, @@ -12167,11 +12365,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" - }, "promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", @@ -12320,14 +12513,14 @@ "dev": true }, "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" } }, "require-directory": { @@ -12501,6 +12694,26 @@ "tslib": "^2.1.0" } }, + "safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -12523,9 +12736,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } @@ -12539,6 +12752,17 @@ "randombytes": "^2.1.0" } }, + "set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12584,9 +12808,9 @@ } }, "sinon": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz", - "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-16.0.0.tgz", + "integrity": "sha512-B8AaZZm9CT5pqe4l4uWJztfD/mOTa7dL8Qo0W4+s+t74xECOgSZDDQCBjNgIK3+n4kyxQrSTv2V5ul8K25qkiQ==", "dev": true, "requires": { "@sinonjs/commons": "^3.0.0", @@ -12640,13 +12864,23 @@ } }, "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "requires": { + "debug": "^4.3.4" + } + } } }, "split": { @@ -12675,17 +12909,17 @@ } }, "ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", "requires": { - "minipass": "^4.0.0" + "minipass": "^7.0.3" }, "dependencies": { "minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" } } }, @@ -12774,26 +13008,37 @@ "strip-ansi": "^6.0.1" } }, + "string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "strip-ansi": { @@ -12812,6 +13057,12 @@ "ansi-regex": "^5.0.1" } }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, "strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -12838,13 +13089,13 @@ "dev": true }, "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -12869,9 +13120,9 @@ } }, "minipass": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.0.tgz", - "integrity": "sha512-ExlilAIS7zJ2EWUMaVXi14H+FnZ18kr17kFkGemMqBx6jW0m8P6XfqwYVPEG53ENlgsED+alVP9ZxC3JzkK23Q==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" } } }, @@ -12955,7 +13206,8 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true }, "titleize": { "version": "3.0.0", @@ -12996,32 +13248,15 @@ "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==" }, "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } } }, "tslib": { @@ -13063,6 +13298,42 @@ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, "typed-array-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", @@ -13142,9 +13413,9 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" }, "v8-to-istanbul": { "version": "9.1.0", @@ -13209,17 +13480,16 @@ } }, "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "has-tostringtag": "^1.0.0" } }, "workerpool": { @@ -13266,9 +13536,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", diff --git a/package.json b/package.json index b9a84e96..2d5aa5f2 100644 --- a/package.json +++ b/package.json @@ -46,61 +46,61 @@ "license": "Apache-2.0", "homepage": "https://github.com/CognitiveScale/cortex-cli", "dependencies": { - "@supercharge/promise-pool": "2.4.0", + "@supercharge/promise-pool": "3.1.0", "boolean": "3.2.0", - "chalk": "5.2.0", + "chalk": "5.3.0", "cli-progress": "3.12.0", "cli-table3": "0.6.3", "commander": "11.0.0", - "dayjs": "1.11.8", + "dayjs": "1.11.10", "debug": "4.3.4", "dockerode": "3.3.5", - "es-main": "1.2.0", + "es-main": "1.3.0", "form-data": "4.0.0", - "get-stream": "7.0.0", + "get-stream": "8.0.1", "gh-got": "10.0.0", - "glob": "10.3.1", + "glob": "10.3.10", "got": "13.0.0", "graphql": "16.8.1", "graphql-request": "6.1.0", - "inquirer": "9.2.7", + "inquirer": "9.2.11", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.9.2", - "jose": "4.14.4", + "joi": "17.10.2", + "jose": "4.15.0", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", - "minimatch": "9.0.2", - "npm-registry-fetch": "14.0.5", + "minimatch": "9.0.3", + "npm-registry-fetch": "16.0.0", "open": "9.1.0", "prompts": "2.4.2", - "semver": "7.5.3", + "semver": "7.5.4", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", - "uuid": "9.0.0", + "uuid": "9.0.1", "yauzl": "2.10.0" }, "devDependencies": { "audit-ci": "6.6.1", - "c8": "8.0.0", + "c8": "8.0.1", "caxa": "3.0.1", "chai": "4.3.10", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "esbuild": "0.18.15", - "eslint": "8.43.0", + "esbuild": "0.19.4", + "eslint": "8.50.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.27.5", + "eslint-plugin-import": "2.28.1", "husky": "8.0.3", "is-ci": "3.0.1", "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.3.1", + "nock": "13.3.3", "pkg": "5.8.1", - "sinon": "15.2.0" + "sinon": "16.0.0" }, "c8": { "check-coverage": true, diff --git a/src/client/agents.js b/src/client/agents.js index 7774961a..1d80505f 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -67,6 +67,19 @@ export default (class Agents { .catch((err) => constructError(err)); } + cancelActivation(projectId, token, activationId, inFlight) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/activations/${activationId}/cancel`; + debug('cancelActivation(%s, %b) => %s', activationId, inFlight, endpoint); + const opts = { + headers: defaultHeaders(token), + }; + if (inFlight) { + opts.searchParams = { inFlight }; + } + return got.post(endpoint, opts).json(); + } + listActivations(projectId, token, params) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/activations`; diff --git a/src/commands/agents.js b/src/commands/agents.js index ece85a88..a75955cf 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -19,7 +19,7 @@ import { printError, printExtendedLogs, printSuccess, - printTable, writeOutput, printErrorDetails, + printTable, writeOutput, printErrorDetails, constructError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -163,6 +163,26 @@ export class GetActivationCommand { }); } } +export class CancelActivationCommand { + constructor(program) { + this.program = program; + } + + async execute(activationId, options) { + const profile = await loadProfile(options.profile); + debug('%s.cancelActivation(%s, %s)', profile.name, activationId, JSON.stringify(options)); + const { inFlight, project } = options; + const agents = new Agents(profile.url); + try { + const response = await agents.cancelActivation(project || profile.project, profile.token, activationId, inFlight); + printSuccess(response.message); + } catch (err) { + const { message } = constructError(err); + printError(`Failed to cancel activation ${activationId}: ${message}`, options); + } + } +} + export class ListActivationsCommand { constructor(program) { this.program = program; diff --git a/src/commands/deploy.js b/src/commands/deploy.js index ec8cd2d9..0035d027 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -17,6 +17,7 @@ import _ from 'lodash'; import debugSetup from 'debug'; import path from 'path'; import fs from 'fs'; +// eslint-disable-next-line import/no-unresolved import getStream from 'get-stream'; import * as yauzl from 'yauzl'; import yaml from 'js-yaml'; diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index ec90c761..cc735edf 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -71,7 +71,7 @@ describe('Upload Directory', () => { expect(lines).to.include('1.6K\tconfig -> .shared/config'); expect(lines).to.include('483B\tsample/upload/config -> .shared/sample/upload/config'); // eslint-disable-next-line no-unused-expressions - expect(errLines).to.have.length(2); // Should match concurrency ?? why +1 + expect(errLines).to.have.length(1); }); }); From f9fbfa2d4f964d1d108dc462f915b192ca0b4366 Mon Sep 17 00:00:00 2001 From: Michael Criscolo <44506178+mcriscolo-cs@users.noreply.github.com> Date: Fri, 6 Oct 2023 20:49:10 -0500 Subject: [PATCH 819/864] Fab 6167 skillname (#707) * FAB-6167 skill param should be skillName * FAB-6167 skill param should be skillName * FAB-6167 skill param should be skillName --- src/client/pipelineRepositories.js | 2 +- test/pipelineRepositories.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/pipelineRepositories.js b/src/client/pipelineRepositories.js index ca8dd1dc..91f4ac71 100644 --- a/src/client/pipelineRepositories.js +++ b/src/client/pipelineRepositories.js @@ -75,7 +75,7 @@ export default class PipelineRepos { const params = {}; const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(pipelineRepoName)}/update`; if (skill) { - params.skill = skill; + params.skillName = skill; } debug('updateRepoPipelines(%s) => %s', pipelineRepoName, endpoint); try { diff --git a/test/pipelineRepositories.js b/test/pipelineRepositories.js index 2a22883b..c4127caa 100644 --- a/test/pipelineRepositories.js +++ b/test/pipelineRepositories.js @@ -224,7 +224,7 @@ describe('Pipelines', () => { nock(serverUrl) .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) - .query({ skill: 'my-skill' }) + .query({ skillName: 'my-skill' }) .reply(200, response); await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT, '--skill', 'my-skill']); const output = getPrintedLines().join(''); From b67b46202035021554e8de06a9c4d68914242a00 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Sun, 8 Oct 2023 18:09:53 -0500 Subject: [PATCH 820/864] Add cli options for pipeline repos --- bin/cortex-pipelines-repos.js | 5 ++++- package.json | 2 +- src/commands/pipelineRepositories.js | 15 +++++++++++---- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js index d54ee584..5e2166b0 100644 --- a/bin/cortex-pipelines-repos.js +++ b/bin/cortex-pipelines-repos.js @@ -76,12 +76,15 @@ export function create() { // Save repos - .command('save <pipelineRepoDefinition>') + .command('save [pipelineRepoDefinition]') .description('Save a Pipeline Repository definition. Takes JSON file by default.') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') + .option('--name <name>', 'Pipeline repository name') + .option('--repo <repo>', 'Repository URL or use "mc://<content key>" for a bundle.') + .option('--branch <branch>', 'Git branch to checkout') .option('-y, --yaml', 'Use YAML for Pipeline Repository definition format') // TODO: should this have CLI args for <repo> & <branch>?? .action(withCompatibilityCheck((pipelineRepoDefinition, options) => { diff --git a/package.json b/package.json index 2d5aa5f2..0d2fde16 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "c8": { "check-coverage": true, "statements": 40, - "branches": 72, + "branches": 71, "functions": 17, "lines": 40, "include": [ diff --git a/src/commands/pipelineRepositories.js b/src/commands/pipelineRepositories.js index 8272c3de..62c3d1ae 100644 --- a/src/commands/pipelineRepositories.js +++ b/src/commands/pipelineRepositories.js @@ -19,13 +19,20 @@ export const SavePipelineRepoCommand = class { async execute(pipelineRepoDefinition, options) { const profile = await loadProfile(options.profile); debug('%s.executeSavePipelineRepoDefinition(%s)', profile.name, pipelineRepoDefinition); - if (!fileExists(pipelineRepoDefinition)) { + let repoObj = {}; + if (pipelineRepoDefinition && !fileExists(pipelineRepoDefinition)) { printError(`File does not exist at: ${pipelineRepoDefinition}`); + } else { + const repoDefStr = fs.readFileSync(pipelineRepoDefinition); + repoObj = parseObject(repoDefStr, options); } - - const repoDefStr = fs.readFileSync(pipelineRepoDefinition); - const repoObj = parseObject(repoDefStr, options); debug('%s', repoObj); + + // Take options as overrides if both are provided.. + if (options?.name) { repoObj.name = options.name; } + if (options?.repo) { repoObj.repo = options.repo; } + if (options?.branch) { repoObj.branch = options.branch; } + const repo = new Pipelines(profile.url); try { const response = await repo.savePipelineRepo(options.project || profile.project, profile.token, repoObj); From 2f6a145224412b569a4aca13ca7c6fda0a6ec854 Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Tue, 10 Oct 2023 09:30:57 -0500 Subject: [PATCH 821/864] FAB 6051 pipeline run (#708) * added run pipeline CLI command * added CLI commands for pipeline run, describe-run, list-runs * added tests --- bin/cortex-pipelines.js | 64 +++++++++++++++++++- src/client/pipelines.js | 48 +++++++++++++++ src/commands/pipelines.js | 124 ++++++++++++++++++++++++++++++++++++++ test/pipelines.js | 79 ++++++++++++++++++++++++ 4 files changed, 314 insertions(+), 1 deletion(-) diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js index 0787a134..fff69fa8 100644 --- a/bin/cortex-pipelines.js +++ b/bin/cortex-pipelines.js @@ -1,7 +1,13 @@ #!/usr/bin/env node import esMain from 'es-main'; import { Command } from 'commander'; -import { ListPipelineCommand, DescribePipelineCommand } from '../src/commands/pipelines.js'; +import { + ListPipelineCommand, + DescribePipelineCommand, + RunPipelineCommand, + DescribePipelineRunCommand, + ListPipelineRunsCommand, +} from '../src/commands/pipelines.js'; import { withCompatibilityCheck } from '../src/compatibility.js'; import { LIST_JSON_HELP_TEXT, @@ -57,6 +63,62 @@ export function create() { return printError(err.message); } })); + + // Run Pipeline + pipelines + .command('run <pipelineName> <gitRepoName>') + .description('Run a Pipeline') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--params <params>', 'JSON params to send to the action') + .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') + .option('--commit <commit>', 'Git SHA for pipeline repository') + .option('--block <block>', 'Block name to run a specific block') + .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { + try { + return new RunPipelineCommand(pipelines).execute(pipelineName, gitRepoName, options); + } catch (err) { + return printError(err.message); + } + })); + + // Describe Pipeline Run + pipelines + .command('describe-run <pipelineName> <gitRepoName> <runId>') + .alias('get') + .description('Describe a Pipeline Run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .action(withCompatibilityCheck((pipelineName, gitRepoName, runId, options) => { + try { + return new DescribePipelineRunCommand(pipelines).execute(pipelineName, gitRepoName, runId, options); + } catch (err) { + return printError(err.message); + } + })); + + // List Pipeline Run + pipelines + .command('list-runs <pipelineName> <gitRepoName>') + .alias('get') + .description('Describe a Pipeline Run') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { + try { + return new ListPipelineRunsCommand(pipelines).execute(pipelineName, gitRepoName, options); + } catch (err) { + return printError(err.message); + } + })); return pipelines; } diff --git a/src/client/pipelines.js b/src/client/pipelines.js index b780a53f..ec85d706 100644 --- a/src/client/pipelines.js +++ b/src/client/pipelines.js @@ -45,6 +45,54 @@ export default class Pipelines { } } + async runPipeline(projectId, token, name, gitRepoName, params, options) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}/run`; + debug('runPipeline(%s, %s) => %s', name, gitRepoName, endpoint); + const { commit, block } = options; + const body = { gitRepoName, ...params }; + if (commit) { + body.commit = commit; + } + if (block) { + body.block = block; + } + try { + return await got.post(endpoint, { + headers: defaultHeaders(token), + json: body, + }).json(); + } catch (err) { + return constructError(err); + } + } + + async describePipelineRun(projectId, token, name, gitRepoName, runId) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}/run/${runId}?gitRepoName=${gitRepoName}`; + debug('describePipeline(%s, %s) => %s', name, gitRepoName, endpoint); + try { + return await got.get(endpoint, { + headers: defaultHeaders(token), + }).json(); + } catch (err) { + return constructError(err); + } + } + + async listPipelineRuns(projectId, token, name, gitRepoName) { + checkProject(projectId); + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}/run?gitRepoName=${gitRepoName}`; + debug('listPipelineRuns(%s, %s) => %s', name, gitRepoName, endpoint); + try { + return await got.get(endpoint, { + headers: defaultHeaders(token), + }).json(); + } catch (err) { + return constructError(err); + } + } + repos() { return new PipelineRepos(this.cortexUrl); } diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js index 56307cba..d71d98ef 100644 --- a/src/commands/pipelines.js +++ b/src/commands/pipelines.js @@ -1,5 +1,7 @@ import debugSetup from 'debug'; +import fs from 'fs'; import dayjs from 'dayjs'; +import _ from 'lodash'; import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Pipelines from '../client/pipelines.js'; @@ -9,6 +11,11 @@ import { printExtendedLogs, handleListFailure, getFilteredOutput, + parseObject, + filterObject, + getQueryOptions, + printSuccess, + printTable, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -69,3 +76,120 @@ export const DescribePipelineCommand = class { } } }; + +export const RunPipelineCommand = class { + constructor(program) { + this.program = program; + } + + async execute(pipelineName, gitRepoName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeRunPipeline(%s)', profile.name, pipelineName); + let params = {}; + if (options.params) { + try { + params = parseObject(options.params, options); + } catch (e) { + printError(`Failed to parse params: ${options.params} Error: ${e}`, options); + } + } else if (options.paramsFile) { + if (!fs.existsSync(options.paramsFile)) { + printError(`File does not exist at: ${options.paramsFile}`); + } + const paramsStr = fs.readFileSync(options.paramsFile); + params = parseObject(paramsStr, options); + } + const pipelines = new Pipelines(profile.url); + try { + const response = await pipelines.runPipeline(options.project || profile.project, profile.token, pipelineName, gitRepoName, params, options); + if (response.success) { + return getFilteredOutput(response, options); + } + return printError(`Failed to run pipeline: ${response.status} ${response.message}`, options); + } catch (err) { + return printError(`Failed to run pipeline: ${err.status} ${err.message}`, options); + } + } +}; + +export const DescribePipelineRunCommand = class { + constructor(program) { + this.program = program; + } + + async execute(pipelineName, gitRepoName, runId, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeRunPipeline(%s, %s)', profile.name, pipelineName, runId); + const pipelines = new Pipelines(profile.url); + try { + const response = await pipelines.describePipelineRun(options.project || profile.project, profile.token, pipelineName, gitRepoName, runId); + if (response.success) { + if (options.report && !options.json) { + const result = filterObject(response.result, getQueryOptions(options)); + const tableSpec = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Title', field: 'title', width: 40 }, + { column: 'Type', field: 'type', width: 20 }, + { column: 'Status', field: 'status', width: 20 }, + { column: 'Elapsed (ms)', field: 'elapsed', width: 30 }, + ]; + printSuccess(`Status: ${_.get(result, 'status')}`); + printSuccess(`Elapsed Time (ms): ${_.get(result, 'elapsed')}`); + printTable(tableSpec, _.sortBy(_.get(result, 'transits'), ['start', 'end'])); + } else { + getFilteredOutput(response.result, options); + } + } else { + printError(`Failed to desribe pipeline run ${runId}: ${response.message}`, options); + } + } catch (err) { + printError(`Failed to describe pipeline run ${runId}: ${err.status} ${err.message}`, options); + } + } +}; + +export const ListPipelineRunsCommand = class { + constructor(program) { + this.program = program; + } + + async execute(pipelineName, gitRepoName, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeListPipelineRuns(%s, %s)', profile.name, pipelineName); + const pipelines = new Pipelines(profile.url); + try { + const response = await pipelines.listPipelineRuns(options.project || profile.project, profile.token, pipelineName, gitRepoName); + if (response.success) { + const result = response.activations; + // TODO remove --query on deprecation + if (options.json || options.query) { + return getFilteredOutput(result, options); + } + printExtendedLogs(result, options); + const tableSpec = [ + { column: 'Name', field: 'name', width: 30 }, + { column: 'Run Id', field: 'activationId', width: 40 }, + { column: 'Status', field: 'status', width: 20 }, + { column: 'Started', field: 'start', width: 65 }, + ]; + const genName = (o) => { + if (o.agentName) { + return `${o.agentName} (Agent)`; + } + if (o.skillName) { + return `${o.skillName} (Skill)`; + } + return '-'; + }; + return handleTable(tableSpec, _.map(result, (o) => ({ + ...o, + name: genName(o), + start: o.start ? dayjs(o.start).fromNow() : '-', + })), null, 'No pipeline runs found'); + } + return handleListFailure(response, options, 'PipelineRuns'); + } catch (err) { + return printError(`Failed to list pipelne runs: ${err.status} ${err.message}`, options); + } + } +}; diff --git a/test/pipelines.js b/test/pipelines.js index 61d1a067..4b228f30 100644 --- a/test/pipelines.js +++ b/test/pipelines.js @@ -119,5 +119,84 @@ describe('Pipelines', () => { nock.isDone(); } }); + + xit('trigger pipeline run', async () => { + const response = { + success: true, + activationId: '3d77f2d3-90ef-4061-a17d-fa2aecb3c6a4', + }; + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipelines\/.*\/run/).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'run', 'pipeline1', 'repo1', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + const description = JSON.parse(output); + chai.expect(description).to.deep.equal(response); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + xit('list pipeline runs', async () => { + const response = { + success: true, + activations: [ + { + activationId: '4ea4199-1590-46ca-b49d-2f2574ef5873', + status: 'COMPLETE', + start: 1696875227868, + end: 1696875239664, + agentName: 'toy-pipeline', + }, + ], + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines\/.*\/run/).query({ gitRepoName: 'repo1' }).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'list-runs', 'pipeline1', 'repo1', '--project', PROJECT]); + const errs = getErrorLines().join(''); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + xit('describe pipeline run', async () => { + const response = { + success: true, + agentName: 'toy-pipeline', + channelId: 'd9e97efc-c663-43e7-a435-2b85d6977d1c', + payload: { + config: '/app/conf/spark-conf-sensa-data-pipeline.json', + app_command: [ + '--var', + 'key=value', + '--pipeline', + 'claro_pipeline', + '--config', + 'config_catalog.yml', + '.', + '--repo', + 'git@github.com:CognitiveScale/sensa-data-pipelines.git', + '--block', + 'someblock', + ], + }, + projectId: 'mc-test', + requestId: '54ea4199-1590-46ca-b49d-2f2574ef5873', + serviceName: 'input', + sessionId: '54ea4199-1590-46ca-b49d-2f2574ef5873', + sync: false, + timestamp: 1696875227736, + token: 'eyJhbGciOiJxm_K3fAA', + username: 'cortex@example.com', + start: 1696875227868, + status: 'COMPLETE', + end: 1696875239664, + response: {}, + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines\/.*\/run\/.*/).query({ gitRepoName: 'repo1' }).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'describe-run', 'pipeline1', 'repo1', 'd9e97efc-c663-43e7-a435-2b85d6977d1c', '--project', PROJECT]); + const errs = getErrorLines().join(''); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); }); }); From 158522f8959aa67929d23229027b635fa69b0548 Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Tue, 10 Oct 2023 10:57:20 -0500 Subject: [PATCH 822/864] fixed response field to parse (#709) --- src/commands/pipelines.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js index d71d98ef..7b596f5b 100644 --- a/src/commands/pipelines.js +++ b/src/commands/pipelines.js @@ -125,7 +125,7 @@ export const DescribePipelineRunCommand = class { const response = await pipelines.describePipelineRun(options.project || profile.project, profile.token, pipelineName, gitRepoName, runId); if (response.success) { if (options.report && !options.json) { - const result = filterObject(response.result, getQueryOptions(options)); + const result = filterObject(response, getQueryOptions(options)); const tableSpec = [ { column: 'Name', field: 'name', width: 40 }, { column: 'Title', field: 'title', width: 40 }, @@ -137,7 +137,7 @@ export const DescribePipelineRunCommand = class { printSuccess(`Elapsed Time (ms): ${_.get(result, 'elapsed')}`); printTable(tableSpec, _.sortBy(_.get(result, 'transits'), ['start', 'end'])); } else { - getFilteredOutput(response.result, options); + getFilteredOutput(response, options); } } else { printError(`Failed to desribe pipeline run ${runId}: ${response.message}`, options); From 55c235915411de6ee2677c289a8edf44bd045ecf Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Wed, 11 Oct 2023 12:46:03 -0500 Subject: [PATCH 823/864] added sha as optional param to describe pipeline (#710) --- bin/cortex-pipelines.js | 1 + src/client/pipelines.js | 8 ++++++-- src/commands/pipelines.js | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js index fff69fa8..35d9574a 100644 --- a/bin/cortex-pipelines.js +++ b/bin/cortex-pipelines.js @@ -51,6 +51,7 @@ export function create() { .command('describe <pipelineName> <gitRepoName>') .alias('get') .description('Describe a Pipeline') + .option('--sha [sha]', 'Filter by SHA - to find specific version of the pipeline') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') diff --git a/src/client/pipelines.js b/src/client/pipelines.js index ec85d706..a33bba33 100644 --- a/src/client/pipelines.js +++ b/src/client/pipelines.js @@ -31,14 +31,18 @@ export default class Pipelines { } } - async describePipeline(projectId, token, name, gitRepoName) { + async describePipeline(projectId, token, name, gitRepoName, sha) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}`; debug('describePipeline(%s, %s) => %s', name, gitRepoName, endpoint); + const searchParams = { gitRepoName }; + if (sha) { + searchParams.sha = sha; + } try { return await got.get(endpoint, { headers: defaultHeaders(token), - searchParams: { gitRepoName }, + searchParams: { ...searchParams }, }).json(); } catch (err) { return constructError(err); diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js index 7b596f5b..6d72aca2 100644 --- a/src/commands/pipelines.js +++ b/src/commands/pipelines.js @@ -66,7 +66,7 @@ export const DescribePipelineCommand = class { debug('%s.executeDescribePipeline(%s, %s)', profile.name, pipelineName, gitRepoName); const pipelines = new Pipelines(profile.url); try { - const response = await pipelines.describePipeline(options.project || profile.project, profile.token, pipelineName, gitRepoName); + const response = await pipelines.describePipeline(options.project || profile.project, profile.token, pipelineName, gitRepoName, options.sha); if (response.success) { return getFilteredOutput(response.pipeline, options); } From 2a3ba76fd63a7176d8ad221e1a51c43e9cc30efd Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 18 Oct 2023 09:49:12 -0500 Subject: [PATCH 824/864] Remove unneeded error handling, fix skill logs error output (#711) . --- src/client/catalog.js | 19 ++++--------------- src/commands/skills.js | 27 +++++++++++---------------- src/commands/utils.js | 10 +++++----- 3 files changed, 20 insertions(+), 36 deletions(-) diff --git a/src/client/catalog.js b/src/client/catalog.js index d08cf9ec..e00ed0c4 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -92,9 +92,7 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + }).json(); } unDeploySkill(projectId, token, skillName, verbose = false) { @@ -105,12 +103,10 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + }).json(); } - async skillLogs(projectId, token, skillName, actionName, raw = false) { + skillLogs(projectId, token, skillName, actionName, raw = false) { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/action/${encodeURIComponent(actionName)}/logs`; debug('skillLogs(%s, %s) => %s', skillName, actionName, endpoint); @@ -118,14 +114,7 @@ export default class Catalog { headers: defaultHeaders(token), searchParams: { raw }, }; - const gotResponse = raw ? got.get(endpoint, gotOptions).text() : got.get(endpoint, gotOptions).json(); - - try { - const res = await gotResponse; - return res; - } catch (err) { - return constructError(err); - } + return raw ? got.get(endpoint, gotOptions).text() : got.get(endpoint, gotOptions).json(); } listAgents(projectId, token, filter, limit, skip, sort) { diff --git a/src/commands/skills.js b/src/commands/skills.js index ce09b733..f8247af1 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -7,6 +7,7 @@ import { loadProfile } from '../config.js'; import Catalog from '../client/catalog.js'; import Agent from '../client/agents.js'; import { + constructError, printSuccess, printError, printWarning, @@ -148,13 +149,10 @@ export class UndeploySkillCommand { debug('%s.executeUndeploySkill(%s)', profile.name, skillName); try { const response = await catalog.unDeploySkill(options.project || profile.project, profile.token, skillName, options.verbose); - if (response.success) { - printSuccess(`Undeploy Skill ${skillName}: ${response.message}`, options); - } else { - printError(`Failed to Undeploy Skill ${skillName}: ${response.message}`, options); - } + printSuccess(`Undeploy Skill ${skillName}: ${response.message}`, options); } catch (err) { - printError(`Failed to Undeploy Skill ${skillName}: ${err.status} ${err.message}`, options); + const { status, message } = constructError(err); + printError(`Failed to Undeploy Skill ${skillName}: ${status} ${message}`, options); } })); } @@ -171,12 +169,11 @@ export class SkillLogsCommand { const catalog = new Catalog(profile.url); const response = await catalog.skillLogs(options.project || profile.project, profile.token, skillName, actionName, options.raw); - if (options.raw) { try { const respJSON = JSON.parse(response); // happens with errors if (respJSON?.body) { - printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${respJSON.body.message}`, options); + printError(`Failed to fetch Skill/Action Logs ${skillName}/${actionName}: ${respJSON.body.message}`, options); } } catch (err) { printSuccess(response, options); @@ -184,10 +181,11 @@ export class SkillLogsCommand { } else if (response.success) { printSuccess(JSON.stringify(response.logs), options); } else { - printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${response.body.message}`, options); + printError(`Failed to fetch Skill/Action Logs ${skillName}/${actionName}: ${response.body.message}`, options); } } catch (err) { - printError(`Failed to List Skill/Action Logs ${skillName}/${actionName}: ${err.status} ${err.message}`, options); + const { status, message } = constructError(err); + printError(`Failed to fetch Skill/Action Logs ${skillName}/${actionName}: ${status} ${message}`, options); } } } @@ -203,13 +201,10 @@ export class DeploySkillCommand { debug('%s.executeDeploySkill(%s)', profile.name, skillName); try { const response = await catalog.deploySkill(options.project || profile.project, profile.token, skillName, options.verbose); - if (response.success) { - printSuccess(`Deployed Skill ${skillName}: ${response.message}`, options); - } else { - printError(`Failed to deploy Skill ${skillName}: ${response.message}`, options); - } + printSuccess(`Deployed Skill ${skillName}: ${response.message}`, options); } catch (err) { - printError(`Failed to deploy Skill ${skillName}: ${err.status} ${err.message}`, options); + const { status, message } = constructError(err); + printError(`Failed to deploy Skill ${skillName}: ${status} ${message}`, options); } })); } diff --git a/src/commands/utils.js b/src/commands/utils.js index 2ecee473..fbbc0206 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -118,9 +118,9 @@ const deleteFolderRecursive = (filepath) => { }; export const constructError = (error) => { // fallback to text in message or standard error message - const errResp = error.response; - let errorText = _.get(errResp, 'body'); - if (_.isEmpty(errorText) || error.name === 'RequestError') { + const errResp = error?.response; + let errorText = errResp?.body; + if (errorText?.trim().length === 0 || error.name === 'RequestError') { errorText = error.message; } let details; @@ -129,14 +129,14 @@ export const constructError = (error) => { try { const resp = errResp ? JSON.parse(errorText) : {}; respCode = resp.code; - if (resp.message || resp.error) errorText = resp.message || resp.error; + if (resp?.message || resp?.error) errorText = resp?.message || resp?.error; // eslint-disable-next-line prefer-destructuring details = resp.details; } catch (e) { // Guess it wasn't JSON! } // todo make figuring out the status code more consistent? this might be a holdover from request vs got? - const status = _.get(errResp, 'statusCode') || respCode || error.code || error.status || ''; + const status = errResp?.statusCode || respCode || error?.code || error?.status || ''; return { success: false, message: errorText, details, status, }; From f95f29398b6016c27967f168218c44020046baec Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Thu, 19 Oct 2023 11:51:39 +0530 Subject: [PATCH 825/864] FAB 6179 pipelines run (#712) * Describe pipeline run to only require runId * pipelineRepoDefinition to be a required option * fixed alias * fixed alias for pipeline repos --- bin/cortex-pipelines-repos.js | 3 ++- bin/cortex-pipelines.js | 11 ++++++----- src/client/pipelines.js | 6 +++--- src/commands/pipelines.js | 6 +++--- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js index 5e2166b0..48d4bc84 100644 --- a/bin/cortex-pipelines-repos.js +++ b/bin/cortex-pipelines-repos.js @@ -22,6 +22,7 @@ export function create() { // List repos .command('list') + .alias('l') .description('List Pipeline Repositories') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') @@ -76,7 +77,7 @@ export function create() { // Save repos - .command('save [pipelineRepoDefinition]') + .command('save <pipelineRepoDefinition>') .description('Save a Pipeline Repository definition. Takes JSON file by default.') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js index 35d9574a..851cfa7b 100644 --- a/bin/cortex-pipelines.js +++ b/bin/cortex-pipelines.js @@ -28,6 +28,7 @@ export function create() { // List pipelines .command('list') + .alias('l') .description('List Pipelines') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') @@ -87,17 +88,17 @@ export function create() { // Describe Pipeline Run pipelines - .command('describe-run <pipelineName> <gitRepoName> <runId>') - .alias('get') + .command('describe-run <runId>') + .alias('get-run') .description('Describe a Pipeline Run') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .action(withCompatibilityCheck((pipelineName, gitRepoName, runId, options) => { + .action(withCompatibilityCheck((runId, options) => { try { - return new DescribePipelineRunCommand(pipelines).execute(pipelineName, gitRepoName, runId, options); + return new DescribePipelineRunCommand(pipelines).execute(runId, options); } catch (err) { return printError(err.message); } @@ -106,7 +107,7 @@ export function create() { // List Pipeline Run pipelines .command('list-runs <pipelineName> <gitRepoName>') - .alias('get') + .alias('lr') .description('Describe a Pipeline Run') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') diff --git a/src/client/pipelines.js b/src/client/pipelines.js index a33bba33..98a89e26 100644 --- a/src/client/pipelines.js +++ b/src/client/pipelines.js @@ -71,10 +71,10 @@ export default class Pipelines { } } - async describePipelineRun(projectId, token, name, gitRepoName, runId) { + async describePipelineRun(projectId, token, runId) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}/run/${runId}?gitRepoName=${gitRepoName}`; - debug('describePipeline(%s, %s) => %s', name, gitRepoName, endpoint); + const endpoint = `${this.endpointV4(projectId)}/run/${runId}`; + debug('describePipeline(%s) => %s', runId, endpoint); try { return await got.get(endpoint, { headers: defaultHeaders(token), diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js index 6d72aca2..a8b09cd1 100644 --- a/src/commands/pipelines.js +++ b/src/commands/pipelines.js @@ -117,12 +117,12 @@ export const DescribePipelineRunCommand = class { this.program = program; } - async execute(pipelineName, gitRepoName, runId, options) { + async execute(runId, options) { const profile = await loadProfile(options.profile); - debug('%s.executeRunPipeline(%s, %s)', profile.name, pipelineName, runId); + debug('%s.executeDescribePipelineRun(%s)', profile.name, runId); const pipelines = new Pipelines(profile.url); try { - const response = await pipelines.describePipelineRun(options.project || profile.project, profile.token, pipelineName, gitRepoName, runId); + const response = await pipelines.describePipelineRun(options.project || profile.project, profile.token, runId); if (response.success) { if (options.report && !options.json) { const result = filterObject(response, getQueryOptions(options)); From d87f0177e48adbec431c39e91ff5aba1432e1061 Mon Sep 17 00:00:00 2001 From: Prajna Kandarpa <pkandarpa@cognitivescale.com> Date: Mon, 23 Oct 2023 17:00:02 +0530 Subject: [PATCH 826/864] fix help text (#713) --- bin/cortex-pipelines.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js index 851cfa7b..9c5ec3e9 100644 --- a/bin/cortex-pipelines.js +++ b/bin/cortex-pipelines.js @@ -108,7 +108,7 @@ export function create() { pipelines .command('list-runs <pipelineName> <gitRepoName>') .alias('lr') - .description('Describe a Pipeline Run') + .description('List all Runs for a Pipeline') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') From 6dd6fb133259cf2393df14739aa5e34e4006af3c Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Tue, 24 Oct 2023 11:50:23 -0500 Subject: [PATCH 827/864] Support saving a Pipeline Repo using CLI flags without the definition file (#714) * Make pipeline repo definition optional * Add unit test testing save from YAML file --- bin/cortex-pipelines-repos.js | 2 +- src/commands/pipelineRepositories.js | 2 +- test/pipelineRepositories.js | 48 +++++++++++++++++++++++++++- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js index 48d4bc84..d14e2da6 100644 --- a/bin/cortex-pipelines-repos.js +++ b/bin/cortex-pipelines-repos.js @@ -77,7 +77,7 @@ export function create() { // Save repos - .command('save <pipelineRepoDefinition>') + .command('save [pipelineRepoDefinition]') .description('Save a Pipeline Repository definition. Takes JSON file by default.') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') diff --git a/src/commands/pipelineRepositories.js b/src/commands/pipelineRepositories.js index 62c3d1ae..ac6c8d27 100644 --- a/src/commands/pipelineRepositories.js +++ b/src/commands/pipelineRepositories.js @@ -22,7 +22,7 @@ export const SavePipelineRepoCommand = class { let repoObj = {}; if (pipelineRepoDefinition && !fileExists(pipelineRepoDefinition)) { printError(`File does not exist at: ${pipelineRepoDefinition}`); - } else { + } else if (pipelineRepoDefinition) { const repoDefStr = fs.readFileSync(pipelineRepoDefinition); repoObj = parseObject(repoDefStr, options); } diff --git a/test/pipelineRepositories.js b/test/pipelineRepositories.js index c4127caa..daa40d53 100644 --- a/test/pipelineRepositories.js +++ b/test/pipelineRepositories.js @@ -3,6 +3,7 @@ import mockedEnv from 'mocked-env'; import nock from 'nock'; import _ from 'lodash'; import sinon from 'sinon'; +import yaml from 'js-yaml'; import { mkdtemp, writeFile } from 'node:fs/promises'; import { join } from 'node:path'; import { tmpdir } from 'node:os'; @@ -117,7 +118,7 @@ describe('Pipelines', () => { nock.isDone(); }); - it('saves a pipeline repository ', async () => { + it('saves a pipeline repository (json)', async () => { const repo = { name: 'repo1', repo: exampleRepo, @@ -144,6 +145,51 @@ describe('Pipelines', () => { nock.isDone(); }); + it('saves a pipeline repository (yaml)', async () => { + const repo = { + name: 'repo1', + repo: exampleRepo, + branch: 'develop', + }; + const response = { + success: true, + version: 1, + message: 'pipelineRepository repo1 saved.', + }; + // save definition of 'repo' to temporary file + const dir = await mkdtemp(join(tmpdir(), 'tmp-')); + const filename = join(dir, 'repo1.yaml'); + await writeFile(filename, yaml.dump(repo)); + // invoke the CLI + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'save', '-y', filename, '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // verify response + chai.expect(output).to.contain('Pipeline Repository saved'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('saves a pipeline repository using CLI flags', async () => { + const response = { + success: true, + version: 1, + message: 'pipelineRepository testpipeline saved.', + }; + // invoke the CLI + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'save', '--name', 'testpipeline', '--branch', 'develop', '--repo', 'mc://test.key', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // verify response + chai.expect(output).to.contain('Pipeline Repository saved'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + it('deletes a pipeline repository ', async () => { const response = { success: true, From c9da4fbac421790c51650fbecac3debf4f7ab758 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Wed, 8 Nov 2023 11:55:14 -0600 Subject: [PATCH 828/864] FAB-6277: Report no changes made on Pipeline Update when no changes were made (#716) * Add check for pipeline-updates when no changes were made with custom message * Adjust error message in failure scenario --- src/commands/pipelineRepositories.js | 16 +++++- test/pipelineRepositories.js | 85 +++++++++++++++++++--------- 2 files changed, 70 insertions(+), 31 deletions(-) diff --git a/src/commands/pipelineRepositories.js b/src/commands/pipelineRepositories.js index ac6c8d27..0bec0bec 100644 --- a/src/commands/pipelineRepositories.js +++ b/src/commands/pipelineRepositories.js @@ -137,6 +137,16 @@ export const UpdateRepoPipelinesCommand = class { if (options.json) { return getFilteredOutput(result, options); } + const noChangesMade = (result.added.length === 0 + && result.deleted.length === 0 + && result.updated.length === 0 + && result.failed.add.length === 0 + && result.failed.delete.length === 0 + && result.failed.update.length === 0); + if (noChangesMade) { + return printSuccess('Pipelines up to date! No changes made.'); + } + const tableSpec = [ { column: 'Added', field: 'added', width: 15 }, { column: 'Updated', field: 'updated', width: 15 }, @@ -185,11 +195,11 @@ export const UpdateRepoPipelinesCommand = class { failedToAdd: o.failedAdd, failedToUpdate: o.failedUpdate, failedToDelete: o.failedDelete, - }), 'Failed to update repo pipelines'); + }), `Failed to update pipelines in repo ${pipelineRepoName}`); } - return printError(`Failed to update repo pipelines: ${response.status} ${response.message}`, options); + return printError(`Failed to update pipelines in repo ${pipelineRepoName}: ${response.status} ${response.message}`, options); } catch (err) { - return printError(`Failed to update repo pipelines: ${err.status} ${err.message}`, options); + return printError(`Failed to update pipelines in repo ${pipelineRepoName}: ${err.status} ${err.message}`, options); } } }; diff --git a/test/pipelineRepositories.js b/test/pipelineRepositories.js index daa40d53..acc72460 100644 --- a/test/pipelineRepositories.js +++ b/test/pipelineRepositories.js @@ -190,7 +190,7 @@ describe('Pipelines', () => { nock.isDone(); }); - it('deletes a pipeline repository ', async () => { + it('deletes a pipeline repository', async () => { const response = { success: true, message: 'Successfully deleted pipelineRepository repo1', @@ -251,35 +251,64 @@ describe('Pipelines', () => { nock.isDone(); } }); - }); - it('should update-pipelines with custom Skill', async () => { - const response = { - success: true, - updateReport: { - added: ['pipeline1'], - updated: ['pipeline2'], - deleted: ['pipeline3'], - failed: { - add: [], - delete: [], - update: [], + it('should update-pipelines with custom Skill', async () => { + const response = { + success: true, + updateReport: { + added: ['pipeline1'], + updated: ['pipeline2'], + deleted: ['pipeline3'], + failed: { + add: [], + delete: [], + update: [], + }, }, - }, - }; + }; - nock(serverUrl) - .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) - .query({ skillName: 'my-skill' }) - .reply(200, response); - await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT, '--skill', 'my-skill']); - const output = getPrintedLines().join(''); - const errs = getErrorLines().join(''); - chai.expect(output).to.contain('pipeline1'); - chai.expect(output).to.contain('pipeline2'); - chai.expect(output).to.contain('pipeline3'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); + nock(serverUrl) + .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) + .query({ skillName: 'my-skill' }) + .reply(200, response); + await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT, '--skill', 'my-skill']); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain('pipeline1'); + chai.expect(output).to.contain('pipeline2'); + chai.expect(output).to.contain('pipeline3'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('should report no changes when updating-pipelines with an empty report', async () => { + // set up mock - should report no changes, but it was successful + const response = { + success: true, + updateReport: { + added: [], + updated: [], + deleted: [], + failed: { + add: [], + delete: [], + update: [], + }, + }, + }; + nock(serverUrl) + .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) + .reply(200, response); + + // Execute update + await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain('Pipelines up to date! No changes made.'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); }); }); From 99c85566a011f1f9f94bffe7f8ee5c8da1cbbe72 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Thu, 9 Nov 2023 07:09:56 -0600 Subject: [PATCH 829/864] FAB-6281 Add username and agentName to task list for scheduled tasks (#718) --- bin/cortex-tasks.js | 8 ++++++-- src/client/tasks.js | 4 +--- src/commands/tasks.js | 10 ++++------ src/commands/utils.js | 29 +++++++++++++++++++++++------ 4 files changed, 34 insertions(+), 17 deletions(-) diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index dfa91054..cb4ced03 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -22,14 +22,18 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') + .option('--scheduled', 'Show scheduled tasks only') + // TODO Should we remove and just use filter {} .option('--actionName <string>', 'Filter tasks by action name') .option('--activationId <string>', 'filter tasks by activation id') + .option('--agentName <string>', 'Filter tasks by agent name') + .option('--skillName <string>', 'Filter tasks by skill name') + .option('--username <string>', 'Filter tasks by username') .option('--skillName <string>', 'Filter tasks by skill name') - .option('--scheduled', 'Show scheduled tasks only') .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) // This is a client-side sort - .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--filter <filter>', 'Filter by actionName, activationId, agentName, or skillName only equality is supported') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.startTime)) diff --git a/src/client/tasks.js b/src/client/tasks.js index 7f9539b2..46f47829 100644 --- a/src/client/tasks.js +++ b/src/client/tasks.js @@ -34,9 +34,7 @@ export default (class Tasks { if (params) { opts.searchParams = params; } - return got - .get(endpoint, opts).json() - .catch((err) => constructError(err)); + return got.get(endpoint, opts).json(); } getTask(projectId, taskName, token, params) { diff --git a/src/commands/tasks.js b/src/commands/tasks.js index 82689248..619eff5b 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -5,7 +5,7 @@ import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Tasks from '../client/tasks.js'; import { - printSuccess, printError, handleTable, printExtendedLogs, getFilteredOutput, + printSuccess, printError, handleTable, printExtendedLogs, getFilteredOutput, handleListFailure, } from './utils.js'; /* * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. @@ -34,10 +34,11 @@ const TASK_LIST_TABLE = [ ]; const SCHED_LIST_TABLE = [ { column: 'Name', field: 'name', width: 60 }, - { column: 'Skill Name', field: 'skillName', width: 40 }, + { column: 'Agent Name', field: 'agentName', width: 40 }, { column: 'Status', field: 'state', width: 20 }, { column: 'Started', field: 'start', width: 25 }, { column: 'Schedule', field: 'schedule', width: 12 }, + { column: 'Username', field: 'username', width: 40 }, ]; export const ListTasksCommand = class { constructor(program) { @@ -58,7 +59,6 @@ export const ListTasksCommand = class { try { const response = await tasks.listTasks(projectId, profile.token, options); let format = 'k8sFormat'; // Assume old format - if (response.success) { let taskList = _.get(response, 'tasks', []); if (_.isEmpty(taskList)) { return printSuccess('No tasks found'); @@ -97,10 +97,8 @@ export const ListTasksCommand = class { printExtendedLogs(taskList, options); const tableCols = options.scheduled ? SCHED_LIST_TABLE : TASK_LIST_TABLE; return handleTable(tableCols, taskList); - } - return printError(`Failed to list tasks: ${response.message}`, options); } catch (err) { - return printError(`Failed to query tasks: ${err.status} ${err.message} ${JSON.stringify(err)}`, options); + return handleListFailure(err, {}, 'Tasks'); } } }; diff --git a/src/commands/utils.js b/src/commands/utils.js index fbbc0206..fb2e99ee 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -1,5 +1,7 @@ import Table from 'cli-table3'; import _ from 'lodash'; +// eslint-disable-next-line import/no-unresolved +import { HTTPError } from 'got'; import { boolean } from 'boolean'; import chalk from 'chalk'; import debugSetup from 'debug'; @@ -349,18 +351,33 @@ export const handleTable = (spec, data, transformer, noDataMessage) => { } }; -export const handleListFailure = (response, options, type) => { - if (response.status === 400) { + export const handleListFailure = (err, options, type) => { + let status; + let message; + let details; + // Newer code throws got HTTPError + if (err instanceof HTTPError) { + status = err.response.statusCode; + const jsonResp = JSON.parse(err.response.body ?? '{}'); + details = jsonResp.details; + message = jsonResp.message; + } else { + status = err.status ?? ''; + message = err.message; + details = err.details; + } + + if (status === 400) { const optionTableFormat = OPTIONSTABLEFORMAT; printError(`${type} list failed.`, options, false); - if (response.details !== undefined && response.details !== null) { - printTable(optionTableFormat, response.details); + if (details !== undefined && details !== null) { + printTable(optionTableFormat, details); } else { - printError(response.message, options); + printError(message, options); } printError(''); // Just exit } - return printError(`Failed to list ${type}: ${response.status} ${response.message}`, options); + return printError(`Failed to list ${type}: ${status} ${message}`, options); }; export const handleDeleteFailure = (response, options, type) => { if (response.status === 403) { // has dependencies From a06ce5605d08823d2ae71e28fffd5632dfda0528 Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Tue, 14 Nov 2023 19:13:03 +0530 Subject: [PATCH 830/864] handle TSOA API validation error responses (#717) * handle TSOA API validation error responses * merged develop * merged develop * addresses review comments * fixed eslint errors --- src/commands/utils.js | 34 +++++++++++++++++++++++++++++++++- test/testUtils.js | 19 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index fb2e99ee..1bbeab59 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -351,7 +351,32 @@ export const handleTable = (spec, data, transformer, noDataMessage) => { } }; - export const handleListFailure = (err, options, type) => { +const transformTSOAValidation = (responseDetails) => { + if (responseDetails && typeof responseDetails === 'object') { + const keys = Object.keys(responseDetails); + if (keys.length > 0) { + const transformedResp = []; + for (let i = 0; i < keys.length; i += 1) { + const key = keys[i]; + if (key.includes('.') && key.split('.').length === 2) { + const { message } = _.get(responseDetails, key, {}); + if (message) { + // Transform error object + transformedResp.push({ type: key.split('.')[1], message }); + } + } + } + if (transformedResp.length > 0) { + return transformedResp; + } + return null; + } + } + // Handle invalid or unexpected input + return null; +}; + +export const handleListFailure = (err, options, type) => { let status; let message; let details; @@ -371,6 +396,13 @@ export const handleTable = (spec, data, transformer, noDataMessage) => { const optionTableFormat = OPTIONSTABLEFORMAT; printError(`${type} list failed.`, options, false); if (details !== undefined && details !== null) { + // TSOA API validation error case + if (!Array.isArray(details)) { + const transformedResponse = transformTSOAValidation(details); + if (transformedResponse !== null) { + details = transformedResponse; + } + } printTable(optionTableFormat, details); } else { printError(message, options); diff --git a/test/testUtils.js b/test/testUtils.js index fa214a39..4e75d569 100644 --- a/test/testUtils.js +++ b/test/testUtils.js @@ -127,6 +127,25 @@ describe('Test handleListFailure function', () => { // eslint-disable-next-line no-unused-expressions expect(process.exit.calledWith(1)).to.be.true; }); + const errResponseTsoa = { + status: 400, + details: { + 'query.type1': { + message: 'message1', + value: '-1', + }, + }, + }; + it('should print tabular output if status is 400 with TSOA response', () => { + handleListFailure(errResponseTsoa, null, 'test-resource'); + expect((getPrintedLines()[0])).to.equal('┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n' + + '│ Option Type │ Message │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type1 │ message1 │\n' + + '└────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘'); + // eslint-disable-next-line no-unused-expressions + expect(process.exit.calledWith(1)).to.be.true; + }); }); describe('Test handleDeleteFailure', () => { let printSpy; From ec6a131cfe3606c50fa5b685b25cadf2f077a92f Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 15 Nov 2023 21:45:25 -0600 Subject: [PATCH 831/864] Use JWK alg and avoid EDSA hardcodes (#720) --- src/config.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/config.js b/src/config.js index 71a84a20..b6efd567 100644 --- a/src/config.js +++ b/src/config.js @@ -25,14 +25,15 @@ async function generateJwt(profile, expiresIn = '2m') { const { username, issuer, audience, jwk, } = profile; - const jwtSigner = await jose.importJWK(jwk, 'Ed25519'); + const alg = jwk?.alg || 'EdDSA'; + const jwtSigner = await jose.importJWK(jwk, alg); const infoClient = new Info(profile.url); const infoResp = await infoClient.getInfo(); const serverTs = _.get(infoResp, 'serverTs', Date.now()); const [, amount, unit] = durationRegex.exec(expiresIn); const expiry = dayjs(serverTs).add(_.toNumber(amount), unit).unix(); return new jose.SignJWT({}) - .setProtectedHeader({ alg: 'EdDSA', kid: jwk.kid }) + .setProtectedHeader({ alg, kid: jwk.kid }) .setSubject(username) .setAudience(audience) .setIssuer(issuer) From 4ead5a895f1e6f7dcb82651ed6a22dc5c7faee71 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Fri, 17 Nov 2023 17:58:07 -0600 Subject: [PATCH 832/864] Fab 6243: Support Preview Feature Flag for Data Pipelines (#719) * Initial implementation of feature flagging logic * Git existing unit tests passing * Add unit tests for compatibility tests * Fix incorrect collection of subcommands & promise handling. Default all GA features to be enabled * WIP commit * Side load token & feature flags in CLI to avoid duplicate requests * Use default value for feature flags, and add debug messaging * REmove unuused import * Mock CLI compatibility HTTP request during unit tests for Pipelines, Pipeline Repos, Tasks, and Directory Upload * Update README * Minor code cleanup * Fix failing unit test * Add basic unit tests for feature flagging logic * Add logic to exit on failure from INFO call * No retries and low timeout on Info API call. Fix minor bug causing URL to be loaded * Remove duplicated logic for loading dyanimic props of Profiles - url, token, featureflags, project * Add workaround for structuredClone() being a feature of node 17+ * Fix incorrect variable name * Try bumping node image * Add console.log * Add logic to mock INFO API during unit tests, and skip loading profile when generating help doc - required when running tests * Revert image upgrade * Fix ability to configure Cortex CLI when the Info API check fails on startup. Default to providing all subcommands * Update formatting of comments * Add more debug logging and fix key name for retrieving feature flags from response --- README.md | 67 ++++++++++++++++ bin/cortex.js | 109 +++++++++++++++++++------- src/client/info.js | 8 +- src/compatibility.js | 69 ++++++++++------ src/config.js | 147 +++++++++++++++++++++++++---------- src/features.js | 108 +++++++++++++++++++++++++ test/compatibility.js | 34 ++++++++ test/docgen.js | 6 ++ test/features.js | 91 ++++++++++++++++++++++ test/pipelineRepositories.js | 13 +++- test/pipelines.js | 11 ++- test/tasks.js | 10 ++- test/uploadDirectory.js | 13 +++- test/utils.js | 23 ++++++ 14 files changed, 606 insertions(+), 103 deletions(-) create mode 100644 src/features.js create mode 100644 test/features.js diff --git a/README.md b/README.md index 4e0171fb..4a9aedb7 100644 --- a/README.md +++ b/README.md @@ -131,3 +131,70 @@ Executables are created for the following platforms: ### Signed binaries status * windows: binaries are currently **unsigned** * macOS: adhoc signature using [ldid](https://github.com/xerub/ldid) + +## Subcommands & Compatibility Checks + +The following sequene diagram shows an example running a command with Cortex CLI - namely which HTTP requests. ([This diagram can be viewered here](https://mermaid.live/view#pako:eNp9VE1z2jAQ_Ss7nh6aAeJLT54OHcZAQ4c4TEx64iLLa6IiS6ok0zCZ_PdKlg0k0Ookad--_XgrvUZUlhglkcHfDQqKU0a2mtQbAW6RxkrR1AXqcJ5QKzVMcR-OhXyBdLmAVNY1EaUJt34poi2jTBFhIQVigEpt8eU6IG-KEwQUU8iZwI4NRRk25x5zxtEcjMX60pZ7rhyFITBZLS7tmbdnq_tgcbWMxuNBmlyEB86M3YgAo5o5AsJhKUkJKy0rl0Ewpd7_lFACj7PJFD7dPdzP4ttAGlMpKrYN-BO0C5zyxp00PD0uh576F1I7BLT0to_ehsgTuFuvV_B9toa4IoVmNN5_iZmoZEDlHd-P_CGDzznqvSNdsxoht6RWQ5gjsY1GmHOyNTc99ah1WrKatUrQTksoiMESpICqc6u825ko3YhwCwtz5um2Svmyy28nuX0FDpJAiRy3xCJYCebo07Fyg-9dBk6eBGZaS53Ak9gJ-Uf003aRSSYdrfRFu0jDzAnRtGBFLCsYZ_YA6TPS3YWmVzFtR5vC53298fTcKyZKcUdmmRQmDqqPKGdnyrTlB20e3Vtj2nX3J2rjPG76lELAQXYWsWti9oFisieMk4Jj-wA7nl7UfzYlD01xz9ihL2fbDTys3j-__7ZAhWE18dduN4775zPSqKRh7rtgR6oPJRwjnbKOhlGNuiasdD_Sq7_eRPYZa9xEiduWRO820Ua8OZz_mvKDoFFidYPDqFGlG6vu9wqXb38B-i2SbA)). + +The Cortex CLI will limit the set of available subcommands, to those which are supported by the Cortex cluster that it is +communicating with. + +```mermaid +sequenceDiagram + autonumber + Actor Dev + box CLI Commands + participant C as cortex + participant Sub as cortex pipelines + end + participant Filesystem + participant S as Sensa API + participant N as NPM + Dev->>+C: cortex pipelines list + + critical Load Profile + C->>+Filesystem: READ $HOME/.cortex/config + Filesystem->>+C: Cluster URL, Project, etc. + + C->>+S: HTTP GET /fabric/v4/info + S->>+C: JSON (Server Time Stamp, Feature Flags) + C-->+C: Limit Subcommands based on feature flags + end + + alt Is Subcommand Supported? + C->>Sub: delegate to subcommand + else + C->>+Dev: Error: Unknown Command + end + + Note over Sub,N: Run Compatibility Check + + critical Compatibility Check + Sub->>S: HTTP GET /fabric/v4/compatibility/applications/cortex-cli + S->>+Sub: JSON (Required Version) + + Sub->>+N: HTTP GET <npm-registry-url> + N->>+Sub: JSON (Available CLI Versions) + end + + Note over Sub,S: Run Action + + critical List Pipelines + Sub->>S: HTTP GET /fabric/v4/projects/<project>/pipeline-repositories + S->>+Sub: JSON (Pipelines) + end +``` + +Practical Notes: +* Only want to load the Profile & perform a Compatibility Check once during command execution +* Clear downside is that startup for initial help commands are slightly slower due to the dynamic nature of loading + subcommands + +### Preview Features + +ALl preview features cam be emabled in the CLI by setting the `PREVIEW_FEATURES_ENABLED` environment variable. + + Example + ``` + PREVIEW_FEATURES_ENABLED=* cortex -h + ``` diff --git a/bin/cortex.js b/bin/cortex.js index d61e631a..1c55ffe3 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -2,8 +2,45 @@ import { Command } from 'commander'; import esMain from 'es-main'; import { readPackageJSON } from '../src/commands/utils.js'; +import { loadProfileWithoutFailure } from '../src/config.js'; +import { getAllSubcommands, FeatureController } from '../src/features.js'; -export function create() { +// Global varible storing the users profile, used to avoid redundantly loading the Profile +let profile; + +async function resolveAvailableSubcommands(profileName) { + let supportedCommands; + if (process.env.CORTEX_SKIP_INIT_PROFILE) { + // Provide all subcommands - mostly intended as workaround for Docgen + // testing + supportedCommands = getAllSubcommands(); + } else { + if (profile === undefined || profile === null) { + // Check to only Load the users Profile & do a compatibility check + // once on startup + profile = await loadProfileWithoutFailure(profileName); + } + if (profile) { + // if the profile was found, then side-load the token & feature + // flags to avoid future calls to the server + process.env.CORTEX_TOKEN_SILENT = profile.token; + process.env.CORTEX_FEATURE_FLAGS = JSON.stringify(profile.featureFlags); + // Filter subcommands - only include those that are supported by the server + const features = new FeatureController(profile); + supportedCommands = features.getSupportedSubCommands(); + } else { + // Failed to load Profile -> likely means CLI is not configured, so + // allow all subcommands. If a subcommand (API call) is going to be + // made, then we expect the CLI to try again & fail when the Profile + // is needed. If the subcommand doesn't need the users Profile, its + // likely just printing help messages. + supportedCommands = getAllSubcommands(); + } + } + return supportedCommands; +} + +export async function create(profileName) { const program = new Command(); program.version(readPackageJSON('../../package.json').version, '-v, --version', 'Outputs the installed version of the Cortex CLI'); program.name('cortex'); @@ -12,33 +49,53 @@ export function create() { .option('--debug', 'Enables enhanced log output for debugging', false) .on('option:debug', () => { process.env.DEBUG = '*'; - }) - .command('actions <cmd>', 'Work with Cortex Actions') - .command('agents <cmd>', 'Work with Cortex Agents') - .command('assessments <cmd>', 'Work with Cortex Impact Assessments') - .command('campaigns <cmd>', 'Work with Cortex Campaigns') - .command('configure', 'Configure the Cortex CLI') - .command('connections <cmd>', 'Work with Cortex Connections') - .command('content <cmd>', 'Work with Cortex Managed Content') - .command('deploy <cmd>', 'Work with Cortex Artifacts export for deployment') - .command('docker <cmd>', 'Work with Docker') - .command('experiments <cmd>', 'Work with Cortex Experiments') - .command('missions <cmd>', 'Work with Cortex Missions') - .command('models <cmd>', 'Work with Cortex Models') - .command('pipelines <cmd>', 'Work with Cortex Pipelines') - .command('projects <cmd>', 'Work with Cortex Projects') - .command('roles <cmd>', 'Work with a Cortex Roles') - .command('secrets <cmd>', 'Work with Cortex Secrets') - .command('sessions <cmd>', 'Work with Cortex Sessions') - .command('skills <cmd>', 'Work with Cortex Skills') - .command('tasks <cmd>', 'Work with Cortex Tasks') - .command('types <cmd>', 'Work with Cortex Types') - .command('users <cmd>', 'Work with a Cortex Users') - .command('workspaces <cmd>', 'Scaffold Cortex Components'); + }); + const supportedCommands = await resolveAvailableSubcommands(profileName); + const _toObject = (nameAndArgs, description) => ({ nameAndArgs, description }); + const isCommandSupported = ({ nameAndArgs }) => (supportedCommands.includes(nameAndArgs.split(' ')[0].trim())); + const allCommands = [ + _toObject('actions <cmd>', 'Work with Cortex Actions'), + _toObject('agents <cmd>', 'Work with Cortex Agents'), + _toObject('assessments <cmd>', 'Work with Cortex Impact Assesments'), + _toObject('campaigns <cmd>', 'Work with Cortex Campaigns'), + _toObject('configure', 'Configure the Cortex CLI'), + _toObject('connections <cmd>', 'Work with Cortex Connections'), + _toObject('content <cmd>', 'Work with Cortex Managed Content'), + _toObject('deploy <cmd>', 'Work with Cortex Artifacts export for deployment'), + _toObject('docker <cmd>', 'Work with Docker'), + _toObject('experiments <cmd>', 'Work with Cortex Experiments'), + _toObject('missions <cmd>', 'Work with Cortex Missions'), + _toObject('models <cmd>', 'Work with Cortex Models'), + _toObject('pipelines <cmd>', 'Work with Cortex Pipelines'), + _toObject('projects <cmd>', 'Work with Cortex Projects'), + _toObject('roles <cmd>', 'Work with a Cortex Roles'), + _toObject('secrets <cmd>', 'Work with Cortex Secrets'), + _toObject('sessions <cmd>', 'Work with Cortex Sessions'), + _toObject('skills <cmd>', 'Work with Cortex Skills'), + _toObject('tasks <cmd>', 'Work with Cortex Tasks'), + _toObject('types <cmd>', 'Work with Cortex Types'), + _toObject('users <cmd>', 'Work with a Cortex Users'), + _toObject('workspaces <cmd>', 'Scaffold Cortex Components'), + ]; + allCommands + .filter(isCommandSupported) + .forEach(({ nameAndArgs, description }) => { + program.command(nameAndArgs, description); + }); return program; } + if (esMain(import.meta)) { // module was not imported but called directly - create().showHelpAfterError().parseAsync(process.argv); + let _profile; + if (process.argv.includes('--profile')) { + // Pre-process arguments to extract user specified '--profile'. This + // allows the CLI to load the profile config, without requiring arg + // processing (chicken & egg problem). Additionally, the '--profile' flag + // means different things depending on the subcommand being run. + const idx = process.argv.indexOf('--profile') + 1; + _profile = process.argv[idx] ?? _profile; // possibly undefined + } + (await create(_profile)).showHelpAfterError().parseAsync(process.argv); } -export default create(); +export default await create(); diff --git a/src/client/info.js b/src/client/info.js index efbd4b7a..c16bc643 100644 --- a/src/client/info.js +++ b/src/client/info.js @@ -32,10 +32,16 @@ export default (class Info { .get(endpoint, { headers: { 'user-agent': getUserAgent() }, followRedirect: false, + retry: { + limit: 0, // no retries - fail fast + }, }) .json(); } catch (err) { - return constructError(err); + // return error object and let caller deal with failure + const e = constructError(err); + debug(`Failed to retrieve cluster information from ${this.cortexUrl}: ${e.message}`); + return e; } } }); diff --git a/src/compatibility.js b/src/compatibility.js index 9784b6ad..adc16f12 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -26,27 +26,29 @@ function getAvailableVersions(name) { .then((versions) => _.uniq(concat(versions, pkg.version))) .then((versions) => versions.sort(Semver.compare)) .catch(() => { - throw new Error('Unable to determine CLI available versions'); - }); + throw new Error('Unable to determine CLI available versions'); + }); } + function getRequiredVersion(profile) { const endpoint = `${profile.url}/fabric/v4/compatibility/applications/cortex-cli`; debug('getRequiredVersion => %s', endpoint); return got .get(endpoint, { - headers: { - Authorization: `Bearer ${profile.token}`, - 'user-agent': getUserAgent(), - }, - }) + headers: { + Authorization: `Bearer ${profile.token}`, + 'user-agent': getUserAgent(), + }, + }) .json() .then((res) => { - const { semver } = res; - return semver; - }).catch((err) => { - throw new Error(`Unable to fetch compatibility: ${err.message}`); - }); + const { semver } = res; + return semver; + }).catch((err) => { + throw new Error(`Unable to fetch compatibility: ${err.message}`); + }); } + export function notifyUpdate({ required = false, current, latest }) { const message = `Update ${required ? chalk.bold('required') : 'available'} ${chalk.dim(current)}${chalk.reset(' → ')}${chalk.green(latest)}\nRun ${chalk.cyan(`npm i ${isInstalledGlobally ? '-g ' : ''}${pkg.name}@${latest}`)} to update`; const table = new Table({ @@ -61,15 +63,18 @@ export function notifyUpdate({ required = false, current, latest }) { table.push([message]); console.warn(table.toString()); } + function upgradeAvailable(args) { process.on('exit', () => { notifyUpdate(args); }); } + function upgradeRequired(args) { notifyUpdate({ required: true, ...args }); process.exit(-1); } + export async function getCompatibility(profile) { debug('getCompatibility => %s profile', profile.name); try { @@ -94,25 +99,39 @@ export async function getCompatibility(profile) { throw new Error(`Unable to contact cortex: ${e.message}`); } } + +function shouldDoCompatibilityCheck(doCheck) { + const skipCompatEnv = _.toLower(process.env.CORTEX_NO_COMPAT) !== 'true'; + return doCheck && skipCompatEnv; +} + +export async function doCompatibilityCheck(profile, doCheck = true) { + if (shouldDoCompatibilityCheck(doCheck)) { + try { + const { current, latest, satisfied } = await getCompatibility(profile); + if (!satisfied) { + upgradeRequired({ current, latest }); + } else if (Semver.gt(latest, current)) { + upgradeAvailable({ current, latest }); + } + } catch (error) { + printError(error); + } + } + return Promise.resolve(); +} + export function withCompatibilityCheck(fn) { return (...args) => { const command = args.find((a) => a !== undefined && typeof a.opts === 'function'); const options = command.opts(); - if (options.compat && !_.toLower(process.env.CORTEX_NO_COMPAT) === 'true') { + // Explicit duplicate compatibility check to avoid unnecessarily loading the Profile + if (shouldDoCompatibilityCheck(options.compat)) { const { profile: profileName } = options; - const profile = loadProfile(profileName); - return getCompatibility(profile) - .then(({ current, latest, satisfied }) => { - if (!satisfied) { - upgradeRequired({ current, latest }); - } else if (Semver.gt(latest, current)) { - upgradeAvailable({ current, latest }); - } - }) + return loadProfile(profileName) + .then((profile) => doCompatibilityCheck(profile)) .then(() => fn(...args)) - .catch((error) => { - printError(error); - }); + .catch((error) => printError(error)); } return Promise.resolve().then(() => fn(...args)); }; diff --git a/src/config.js b/src/config.js index b6efd567..90d1377d 100644 --- a/src/config.js +++ b/src/config.js @@ -8,8 +8,10 @@ import debugSetup from 'debug'; import * as jose from 'jose'; import { printError } from './commands/utils.js'; import Info from './client/info.js'; +import { getDefaultFeatures } from './features.js'; const debug = debugSetup('cortex:config'); + function configDir() { return process.env.CORTEX_CONFIG_DIR || path.join(os.homedir(), '.cortex'); } @@ -20,16 +22,15 @@ function getCortexUrlFromEnv() { } return process.env.CORTEX_URL; } + const durationRegex = /^([.\d]+)(ms|[smhdwMy])$/; -async function generateJwt(profile, expiresIn = '2m') { + +async function computeJwt(profile, serverTs, expiresIn = '2m') { const { - username, issuer, audience, jwk, -} = profile; + username, issuer, audience, jwk, + } = profile; const alg = jwk?.alg || 'EdDSA'; const jwtSigner = await jose.importJWK(jwk, alg); - const infoClient = new Info(profile.url); - const infoResp = await infoClient.getInfo(); - const serverTs = _.get(infoResp, 'serverTs', Date.now()); const [, amount, unit] = durationRegex.exec(expiresIn); const expiry = dayjs(serverTs).add(_.toNumber(amount), unit).unix(); return new jose.SignJWT({}) @@ -41,6 +42,21 @@ async function generateJwt(profile, expiresIn = '2m') { .setExpirationTime(expiry) .sign(jwtSigner, { kid: jwk.kid }); } + +async function fetchInfoForProfile(profile, expiresIn = '2m') { + const infoClient = new Info(profile.url); + const infoResp = await infoClient.getInfo(); + const serverTs = infoResp?.serverTs ?? Date.now(); + const featureFlags = infoResp?.enabledFeatures ?? getDefaultFeatures(); + const jwt = await computeJwt(profile, serverTs, expiresIn); + return { jwt, featureFlags }; +} + +async function generateJwt(profile, expiresIn = '2m') { + const { jwt } = await fetchInfoForProfile(profile, expiresIn); + return jwt; +} + const ProfileSchema = Joi.object({ name: Joi.string().optional(), url: Joi.string().uri().required(), @@ -52,6 +68,7 @@ const ProfileSchema = Joi.object({ audience: Joi.string().required(), token: Joi.string().optional(), project: Joi.string().optional(), + featureFlags: Joi.object().optional(), }); const ProfileSchemaV4 = Joi.object().keys({ name: Joi.string().optional(), @@ -66,6 +83,7 @@ const ProfileSchemaV4 = Joi.object().keys({ project: Joi.string().optional(), registries: Joi.any().required(), currentRegistry: Joi.string().required(), + featureFlags: Joi.object().optional(), }); const ProfileSchemaV5 = Joi.object().keys({ name: Joi.string().optional(), @@ -81,10 +99,55 @@ const ProfileSchemaV5 = Joi.object().keys({ registries: Joi.any().required(), currentRegistry: Joi.string().required(), templateConfig: Joi.any().required(), + featureFlags: Joi.object().optional(), }); + +/* eslint-disable no-param-reassign */ +// profileType is a validated (Profile, ProfileV4, or ProfileV5) +async function loadDynamicProfileProps(profileType, useenv) { + // Side load JWT & Feature Flags - this is used to avoid redundant calls + // to the Info API (`fetchInfoForProfile()`). + if (process.env.CORTEX_TOKEN_SILENT) { + profileType.token = process.env.CORTEX_TOKEN_SILENT; + debug('Side loaded token from previous info request'); + } + if (process.env.CORTEX_FEATURE_FLAGS) { + try { + profileType.featureFlags = JSON.parse(process.env.CORTEX_FEATURE_FLAGS); + debug('Side loaded feature flags token from previous info request'); + } catch (err) { + // fail silently - let feature flags to be retrieved again + debug(`Failed to side loaded feature flags token from previous info request - ${err}`); + } + } + // Load user facing environment variables - these have higher priority than + // the above (silent) options. + if (useenv) { + let jwtFromEnv; + if (process.env.CORTEX_TOKEN) { + jwtFromEnv = process.env.CORTEX_TOKEN; + printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); + } + profileType.url = getCortexUrlFromEnv() || profileType.url; + profileType.token = jwtFromEnv || profileType.token; + profileType.project = process.env.CORTEX_PROJECT || profileType.project; + } + // In the case that either value is missing, call the Info API + if (!profileType.token || !profileType.featureFlags) { + debug(`JWT or Feature Flags is not defined - making info request - ${profileType.token}, ${profileType.featureFlags}`); + const { jwt, featureFlags } = await fetchInfoForProfile(profileType); + profileType.token = jwt; + profileType.featureFlags = featureFlags || getDefaultFeatures(); + } else { + debug('JWT & Feature Flags are defined - skipping info request'); + } + return profileType; +} +/* eslint-enable no-param-reassign */ + class Profile { constructor(name, { - url, username, issuer, audience, jwk, project, + url, username, issuer, audience, jwk, project, featureFlags, }) { this.name = name; this.url = url; @@ -93,6 +156,7 @@ class Profile { this.issuer = issuer; this.audience = audience; this.project = project; + this.featureFlags = featureFlags; } validate() { @@ -112,6 +176,7 @@ class Profile { audience: this.audience, jwk: this.jwk, project: this.project, + featureFlags: this.featureFlags, }; } } @@ -128,19 +193,11 @@ class Config { async getProfile(name, useenv = true) { const profile = this.profiles[name]; if (!profile) { + debug('profile not found'); return undefined; } const profileType = new Profile(name, profile).validate(); - if (useenv) { - if (process.env.CORTEX_TOKEN) { - printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); - } - profileType.url = getCortexUrlFromEnv() || profileType.url; - profileType.token = process.env.CORTEX_TOKEN || await generateJwt(profile); - profileType.project = process.env.CORTEX_PROJECT || profileType.project; - } else { - profileType.token = await generateJwt(profile); - } + await loadDynamicProfileProps(profileType, useenv); return profileType; } @@ -180,7 +237,7 @@ class Config { } class ProfileV4 { constructor(name, { - url, username, issuer, audience, jwk, project, registries, currentRegistry, + url, username, issuer, audience, jwk, project, registries, currentRegistry, featureFlags, }) { this.name = name; this.url = url; @@ -197,6 +254,7 @@ class ProfileV4 { }, }; this.currentRegistry = currentRegistry || 'Cortex Private Registry'; + this.featureFlags = featureFlags; } validate() { @@ -264,16 +322,7 @@ class ConfigV4 { return undefined; } const profileType = new ProfileV4(name, profile).validate(); - if (useenv) { - if (process.env.CORTEX_TOKEN) { - printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); - } - profileType.url = getCortexUrlFromEnv() || profileType.url; - profileType.token = process.env.CORTEX_TOKEN || await generateJwt(profileType); - profileType.project = process.env.CORTEX_PROJECT || profileType.project; - } else { - profileType.token = await generateJwt(profileType); - } + await loadDynamicProfileProps(profileType, useenv); return profileType; } @@ -291,7 +340,7 @@ class ConfigV4 { } class ProfileV5 { constructor(name, { - url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, + url, username, issuer, audience, jwk, project, registries, currentRegistry, templateConfig, featureFlags, }, templateConfigV4) { this.name = name; this.url = url; @@ -312,6 +361,7 @@ class ProfileV5 { repo: 'CognitiveScale/cortex-code-templates', branch: 'main', }; + this.featureFlags = featureFlags; } validate() { @@ -334,6 +384,7 @@ class ProfileV5 { registries: this.registries, currentRegistry: this.currentRegistry, templateConfig: this.templateConfig, + featureFlags: this.featureFlags, // TODO: is featureFlags needed as a field? }; } } @@ -375,16 +426,7 @@ class ConfigV5 { return undefined; } const profileType = new ProfileV5(name, profile).validate(); - if (useenv) { - if (process.env.CORTEX_TOKEN) { - printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); - } - profileType.url = getCortexUrlFromEnv() || profileType.url; - profileType.token = process.env.CORTEX_TOKEN || await generateJwt(profileType); - profileType.project = process.env.CORTEX_PROJECT || profileType.project; - } else { - profileType.token = await generateJwt(profileType); - } + await loadDynamicProfileProps(profileType, useenv); return profileType; } @@ -445,13 +487,18 @@ function readConfig() { return new Config({ profiles: configObj }); } } + } else { + debug('Configuration file does not exist'); } } catch (err) { + debug(`Failed to read config: ${err}`); throw new Error(`Unable to load config: ${err.message}`); } return undefined; } + async function loadProfile(profileName, useenv = true) { + debug(`loadProfile() => ${profileName} (using env: ${useenv})`); const config = readConfig(); if (config === undefined) { printError('Please configure the Cortex CLI by running "cortex configure"'); @@ -463,17 +510,37 @@ async function loadProfile(profileName, useenv = true) { } return profile; } + +async function loadProfileWithoutFailure(profileName, useenv = true) { + debug(`loadProfileWithoutFailure() => ${profileName} (using env: ${useenv})`); + const config = readConfig(); + if (config === undefined) { + debug('Cortex CLI not configured'); + return undefined; // return even if config doesn't exist + } + const name = profileName || config.currentProfile || 'default'; + const profile = await config.getProfile(name, useenv); + debug(`Loaded profile with name "${name}"`); + if (!profile) { + debug(`Profile with name "${name}" not found in configuration`); + } + return profile; // return even if its undefined +} + export { durationRegex }; export { loadProfile }; +export { loadProfileWithoutFailure }; export { generateJwt }; +export { fetchInfoForProfile }; export { defaultConfig }; export { configDir }; export { readConfig }; export default { durationRegex, loadProfile, - generateJwt, + loadProfileWithoutFailure, defaultConfig, configDir, readConfig, + fetchInfoForProfile, }; diff --git a/src/features.js b/src/features.js new file mode 100644 index 00000000..0b060b2b --- /dev/null +++ b/src/features.js @@ -0,0 +1,108 @@ +import debugSetup from 'debug'; + +const debug = debugSetup('cortex:config'); + +export function allGAFeaturesEnabled(featureFlags) { + return (featureFlags?.ga?.enabled ?? false) || process.env.ALL_GA_FEATURES_ENABLED; +} + +export function previewFeaturesEnabled(featureFlags) { + return (featureFlags?.preview?.enabled ?? false) || process.env.PREVIEW_FEATURES_ENABLED; +} + +export class FeatureFlag { + /** + * Creates a Feature Flag. + * + * @param {string} flagName + * @param {string} status GA | Preview + * @param {string[]} subcommands CLI subcommands corresponding to the Feature Flag + */ + constructor(flagName, status, subcommands) { + this.name = flagName; + this.status = status; + this.subcommands = subcommands; + } +} + +// exported for testing purposes +// Group -> Feature Flag -> CLI Subcommands +export const FLAG_SUBCOMMANDS = { + ga: { }, // TODO: to be finalized + preview: { + 'data-fabric-pipelines': ['pipelines'], + }, + default: { + // default commands - always enabled. These should be grouped into 'ga' + // features, but those are TBD, so existing commands count as default. + all: [ + 'actions', 'agents', 'assessments', 'campaigns', 'configure', 'connections', 'content', 'deploy', + 'docker', 'experiments', 'missions', 'models', 'projects', 'roles', 'secrets', 'sessions', + 'skills', 'tasks', 'types', 'users', 'workspaces', + ], + }, +}; + +export function getDefaultFeatures() { + return { + ga: {}, + preview: { + enabled: false, + features: { + 'data-fabric-pipelines': { + enabled: false, + }, + }, + }, + }; +} + +export function getAllSubcommands() { + return [...FLAG_SUBCOMMANDS.default.all, ...FLAG_SUBCOMMANDS.preview['data-fabric-pipelines']]; +} + +export class FeatureController { + constructor(profile) { + this.profile = profile; + } + + /** + * Computes the set of subcommands that are supported. + * + * @param {object} featureFlagSet feature flag group (e.g. ga or preview) + * @param {Object.<string,string[]>} flagSubcommands map of feature flags to corresponding subcommands + * @param {boolean} allEnabled whether all feature flags in the group should be treated as enabled + * @return {string[]} list of strings + */ + collectSubcommands(featureFlagSet, flagSubcommands, allEnabled = false) { + if (allEnabled) { + // collect all subcommands + return Object.keys(flagSubcommands) + .map((k) => flagSubcommands[k]) + .flat(); + } + // only include subcommands for features that individuall enabled + return Object.keys(flagSubcommands) + .filter((k) => featureFlagSet?.features?.[k]?.enabled ?? false) + .map((k) => flagSubcommands[k]) + .flat(); + } + + /** + * Return the list of supported subcommands for the Profile. + * @returns {string[]} + */ + getSupportedSubCommands() { + // Collect GA Features & Preview Features, but always include defaults + const previewSubcommands = this.collectSubcommands(this.profile.featureFlags?.preview ?? {}, FLAG_SUBCOMMANDS.preview, previewFeaturesEnabled(this.profile.featureFlags)); + debug(`collected preview subcommands: ${JSON.stringify(previewSubcommands)}`); + const gaSubcommands = this.collectSubcommands(this.profile.featureFlags?.ga ?? {}, FLAG_SUBCOMMANDS.ga, allGAFeaturesEnabled(this.profile.featureFlags)); + debug(`collected ga subcommands: ${JSON.stringify(gaSubcommands)}`); + const supportedCommands = [ + ...FLAG_SUBCOMMANDS.default.all, + ...gaSubcommands, + ...previewSubcommands, + ]; + return supportedCommands; + } +} diff --git a/test/compatibility.js b/test/compatibility.js index 9c1ff0d9..d0e705c0 100644 --- a/test/compatibility.js +++ b/test/compatibility.js @@ -105,4 +105,38 @@ describe('compatibility checks', () => { return expect(compatibility.getCompatibility(profile)).to.become(expected); }); }); + describe('when compatibility check should be skipped', () => { + beforeEach(() => { + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {} } })); + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: pkg.version })); + delete process.env.CORTEX_NO_COMPAT; + }); + afterEach(() => { + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); + delete process.env.CORTEX_NO_COMPAT; + }); + it('runs compatiblity check by default', async () => { + await compatibility.doCompatibilityCheck(profile); + sandbox.assert.calledOnce(npmFetch.json); + }); + + it('should skip the compatibility check - env', async () => { + process.env.CORTEX_NO_COMPAT = 'true'; + await compatibility.doCompatibilityCheck(profile); + // verify that check skipped by checking npmFetch wasn't called + sandbox.assert.notCalled(npmFetch.json); + }); + + it('should skip the compatibility check - args', async () => { + await compatibility.doCompatibilityCheck(profile, false); + // verify that check skipped by checking npmFetch wasn't called + sandbox.assert.notCalled(npmFetch.json); + }); + }); }); diff --git a/test/docgen.js b/test/docgen.js index 6f6e637f..915d126b 100644 --- a/test/docgen.js +++ b/test/docgen.js @@ -7,6 +7,12 @@ chai.use(chaiAsPromised); const { expect } = chai; describe('Test docgen', () => { + beforeEach(() => { + process.env.CORTEX_SKIP_INIT_PROFILE = '1'; + }); + afterEach(() => { + delete process.env.CORTEX_SKIP_INIT_PROFILE; + }); const cmdJses = globSync('./bin/*.js', { absolute: true }); cmdJses.forEach((commandJS) => { it(`Generate docs for ${commandJS}`, async () => { diff --git a/test/features.js b/test/features.js new file mode 100644 index 00000000..41ab5851 --- /dev/null +++ b/test/features.js @@ -0,0 +1,91 @@ +import chai from 'chai'; +import chaiAsPromised from 'chai-as-promised'; +import nock from 'nock'; +import npmFetch from 'npm-registry-fetch'; +import sinon from 'sinon'; +import { FLAG_SUBCOMMANDS, FeatureController } from '../src/features.js'; +import { readPackageJSON } from '../src/commands/utils.js'; + +chai.use(chaiAsPromised); + +const pkg = readPackageJSON('../../package.json'); +let sandbox; + +describe('Feature Flags', () => { + const profile = { + url: 'http://example.com', + account: 'testAccount', + projectId: 'testTenant', + username: 'testUser', + token: 'testToken', + }; + + before(() => { + sandbox = sinon.createSandbox(); + sandbox.stub(npmFetch, 'json') + .returns(Promise.resolve({ versions: { [pkg.version]: {} } })); + nock(profile.url) + .get('/fabric/v4/compatibility/applications/cortex-cli') + .reply(200, () => ({ semver: pkg.version })); + }); + + after(() => { + sandbox.restore(); + nock.cleanAll(); + nock.enableNetConnect(); + }); + + const previewDisabledFlags = { + ga: { enabled: true, features: {} }, + preview: { + enabled: false, + features: { + 'data-fabric-pipelines': { + enabled: false, + }, + }, + }, + }; + // TODO: Use structuredClone() instead of JSON stringify & parse, once node 18 is minimum + const allPreviewEnabledFlags = JSON.parse(JSON.stringify(previewDisabledFlags)); + allPreviewEnabledFlags.preview.enabled = true; + + // TODO: Use structuredClone() instead of JSON stringify & parse, once node 18 is minimum + const individualPreviewEnabledFlags = JSON.parse(JSON.stringify(previewDisabledFlags)); + individualPreviewEnabledFlags.preview.features['data-fabric-pipelines'].enabled = true; + + describe('getSupportedSubcommands', () => { + it('displays default subcommands if the server does not respond with feature flags', () => { + delete profile.featureFlags; // explicitly remove feature flags for testing purposes + const controller = new FeatureController(profile); + const subcommands = controller.getSupportedSubCommands(); + const expected = FLAG_SUBCOMMANDS.default.all; + chai.expect(subcommands).to.include.members(expected); + }); + + it('displays default subcommands by default', () => { + profile.featureFlags = previewDisabledFlags; // assign feature flags for testing purposes + const controller = new FeatureController(profile); + const subcommands = controller.getSupportedSubCommands(); + const expected = FLAG_SUBCOMMANDS.default.all; + chai.expect(subcommands).to.include.members(expected); + }); + + it('displays default and preview subcommands when all Preview Features all enabled', () => { + profile.featureFlags = allPreviewEnabledFlags; // assign feature flags for testing purposes + const controller = new FeatureController(profile); + const subcommands = controller.getSupportedSubCommands(); + const expected = [...FLAG_SUBCOMMANDS.default.all, ...FLAG_SUBCOMMANDS.preview['data-fabric-pipelines']]; + chai.expect(subcommands).to.include.members(expected); + }); + + it('displays default and preview subcommands when individual Preview Features are enabled', () => { + profile.featureFlags = individualPreviewEnabledFlags; // assign feature flags for testing purposes + console.log(JSON.stringify(profile.featureFlags)); + const controller = new FeatureController(profile); + const subcommands = controller.getSupportedSubCommands(); + const expected = [...FLAG_SUBCOMMANDS.default.all, ...FLAG_SUBCOMMANDS.preview['data-fabric-pipelines']]; + chai.expect(subcommands).to.include.members(expected); + }); + }); +}); diff --git a/test/pipelineRepositories.js b/test/pipelineRepositories.js index acc72460..5bb3bbdd 100644 --- a/test/pipelineRepositories.js +++ b/test/pipelineRepositories.js @@ -8,7 +8,9 @@ import { mkdtemp, writeFile } from 'node:fs/promises'; import { join } from 'node:path'; import { tmpdir } from 'node:os'; import { create } from '../bin/cortex-pipelines-repos.js'; -import { stripAnsi } from './utils.js'; +import { + infoApi, infoResponse, compatibilityApi, compatiblityResponse, stripAnsi, +} from './utils.js'; const PROJECT = 'project'; @@ -17,6 +19,8 @@ describe('Pipelines', () => { let sandbox; let printSpy; let errorSpy; + const serverUrl = 'http://localhost:8000'; + const exampleRepo = 'git@github.com:organization/repository-name.git'; beforeEach(() => { if (!nock.isActive()) { nock.activate(); @@ -28,6 +32,9 @@ describe('Pipelines', () => { sandbox.stub(process, 'exit').throws(Error('EXIT')); printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); + nock(serverUrl).get(compatibilityApi()).reply(200, compatiblityResponse()); + nock(serverUrl).persist().get(infoApi()).reply(200, infoResponse()); + process.env.PREVIEW_FEATURES_ENABLED = '1'; }); afterEach(() => { @@ -35,6 +42,7 @@ describe('Pipelines', () => { restoreEnv(); nock.cleanAll(); sandbox.restore(); + delete process.env.PREVIEW_FEATURES_ENABLED; }); function getPrintedLines() { @@ -44,9 +52,6 @@ describe('Pipelines', () => { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - const serverUrl = 'http://localhost:8000'; - const exampleRepo = 'git@github.com:organization/repository-name.git'; - describe('Pipeline Repos', () => { it('lists pipeline repositories - empty', async () => { const response = { success: true, pipelineRepositories: [] }; diff --git a/test/pipelines.js b/test/pipelines.js index 4b228f30..a8628652 100644 --- a/test/pipelines.js +++ b/test/pipelines.js @@ -4,7 +4,9 @@ import nock from 'nock'; import _ from 'lodash'; import sinon from 'sinon'; import { create } from '../bin/cortex-pipelines.js'; -import { stripAnsi } from './utils.js'; +import { + compatibilityApi, compatiblityResponse, infoApi, infoResponse, stripAnsi, +} from './utils.js'; const PROJECT = 'project'; @@ -13,6 +15,7 @@ describe('Pipelines', () => { let sandbox; let printSpy; let errorSpy; + const serverUrl = 'http://localhost:8000'; beforeEach(() => { if (!nock.isActive()) { nock.activate(); @@ -24,6 +27,9 @@ describe('Pipelines', () => { sandbox.stub(process, 'exit').throws(Error('EXIT')); printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); + nock(serverUrl).get(compatibilityApi()).reply(200, compatiblityResponse()); + nock(serverUrl).persist().get(infoApi()).reply(200, infoResponse()); + process.env.PREVIEW_FEATURES_ENABLED = '1'; }); afterEach(() => { @@ -31,6 +37,7 @@ describe('Pipelines', () => { restoreEnv(); nock.cleanAll(); sandbox.restore(); + delete process.env.PREVIEW_FEATURES_ENABLED; }); function getPrintedLines() { @@ -40,8 +47,6 @@ describe('Pipelines', () => { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - const serverUrl = 'http://localhost:8000'; - describe('Pipeline', () => { it('lists pipelines - empty', async () => { const response = { success: true, pipelines: [] }; diff --git a/test/tasks.js b/test/tasks.js index aaa5631c..41ccd62a 100644 --- a/test/tasks.js +++ b/test/tasks.js @@ -4,7 +4,9 @@ import nock from 'nock'; import _ from 'lodash'; import sinon from 'sinon'; import Tasks from '../src/client/tasks.js'; -import { stripAnsi } from './utils.js'; +import { + compatibilityApi, compatiblityResponse, infoApi, infoResponse, stripAnsi, +} from './utils.js'; import { create } from '../bin/cortex-tasks.js'; const { expect } = chai; @@ -14,6 +16,7 @@ describe('Tasks', () => { let sandbox; let printSpy; let errorSpy; + const serverUrl = 'http://localhost:8000'; before(() => { if (!nock.isActive()) { nock.activate(); @@ -31,6 +34,10 @@ describe('Tasks', () => { sandbox.restore(); nock.restore(); }); + beforeEach(() => { + nock(serverUrl).get(compatibilityApi()).reply(200, compatiblityResponse()); + nock(serverUrl).persist().get(infoApi()).reply(200, infoResponse()); + }); afterEach(() => { // clean up mocks that may not have been called nock.cleanAll(); @@ -41,7 +48,6 @@ describe('Tasks', () => { function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } - const serverUrl = 'http://localhost:8000'; it('list tasks command (old response)', async () => { const response = { success: true, tasks: ['task0', 'task1'] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/tasks.*/).reply(200, response); diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index cc735edf..514cd694 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -3,10 +3,11 @@ import url from 'node:url'; import chai from 'chai'; import mockedEnv from 'mocked-env'; import sinon from 'sinon'; +import nock from 'nock'; import _ from 'lodash'; import { create } from '../bin/cortex-content.js'; import { humanReadableFileSize } from '../src/commands/utils.js'; -import { stripAnsi } from './utils.js'; +import { compatibilityApi, compatiblityResponse, stripAnsi } from './utils.js'; import Info from '../src/client/info.js'; import Content from '../src/client/content.js'; @@ -16,6 +17,7 @@ describe('Upload Directory', () => { let sandbox; let printSpy; let errorSpy; + const serverUrl = 'http://localhost:8000'; function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } @@ -31,6 +33,9 @@ describe('Upload Directory', () => { }); beforeEach(() => { + if (!nock.isActive()) { + nock.activate(); + } sandbox = sinon.createSandbox(); sandbox.stub(process, 'exit'); sandbox.stub(Info.prototype, 'getInfo').callsFake(() => ({ @@ -38,10 +43,14 @@ describe('Upload Directory', () => { })); printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); + nock(serverUrl).get(compatibilityApi()).reply(200, compatiblityResponse()); }); after(() => restoreEnv()); - afterEach(() => sandbox.restore()); + afterEach(() => { + sandbox.restore(); + nock.cleanAll(); + }); it('test upload successfull', async () => { const program = create(); diff --git a/test/utils.js b/test/utils.js index 0a6d085f..12a21e20 100644 --- a/test/utils.js +++ b/test/utils.js @@ -1,3 +1,4 @@ +import { getDefaultFeatures } from '../src/features.js'; // COPIED from https://github.com/chalk/ansi-regex ( esm not cjs :( ) function ansiRegex({ onlyFirst = false } = {}) { const pattern = [ @@ -9,9 +10,31 @@ function ansiRegex({ onlyFirst = false } = {}) { function stripAnsi(s) { return s.replace(ansiRegex(), ''); } +function compatiblityResponse() { + return { semver: '>=0.12.11' }; // arbitrary +} +function compatibilityApi() { + return '/fabric/v4/compatibility/applications/cortex-cli'; +} +function infoApi() { + return '/fabric/v4/info'; +} +function infoResponse() { + const flags = getDefaultFeatures(); + flags.preview.enabled = true; + return flags; +} export { ansiRegex }; export { stripAnsi }; +export { compatibilityApi }; +export { compatiblityResponse }; +export { infoApi }; +export { infoResponse }; export default { ansiRegex, stripAnsi, + compatibilityApi, + compatiblityResponse, + infoApi, + infoResponse, }; From 85e1fe47b02555851f7b1ac97437fec28724d5d0 Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Mon, 20 Nov 2023 20:11:16 +0530 Subject: [PATCH 833/864] fixed TSOA error response - key without period (.) (#722) --- src/commands/utils.js | 7 ++++++- test/testUtils.js | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/commands/utils.js b/src/commands/utils.js index 1bbeab59..8c09ccaa 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -358,12 +358,17 @@ const transformTSOAValidation = (responseDetails) => { const transformedResp = []; for (let i = 0; i < keys.length; i += 1) { const key = keys[i]; + const { message } = _.get(responseDetails, key, {}); + + // If the key includes a single dot (.) if (key.includes('.') && key.split('.').length === 2) { - const { message } = _.get(responseDetails, key, {}); if (message) { // Transform error object transformedResp.push({ type: key.split('.')[1], message }); } + // If key doesn't include a period dot (.) + } else if (!key.includes('.')) { + transformedResp.push({ type: key, message }); } } if (transformedResp.length > 0) { diff --git a/test/testUtils.js b/test/testUtils.js index 4e75d569..912166ec 100644 --- a/test/testUtils.js +++ b/test/testUtils.js @@ -146,6 +146,25 @@ describe('Test handleListFailure function', () => { // eslint-disable-next-line no-unused-expressions expect(process.exit.calledWith(1)).to.be.true; }); + const errResponseTsoaWithoutKey = { + status: 400, + details: { + type1: { + message: 'message1', + value: '-1', + }, + }, + }; + it('should print tabular output if status is 400 with TSOA response without dot in the key', () => { + handleListFailure(errResponseTsoaWithoutKey, null, 'test-resource'); + expect((getPrintedLines()[0])).to.equal('┌────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n' + + '│ Option Type │ Message │\n' + + '├────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤\n' + + '│ type1 │ message1 │\n' + + '└────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘'); + // eslint-disable-next-line no-unused-expressions + expect(process.exit.calledWith(1)).to.be.true; + }); }); describe('Test handleDeleteFailure', () => { let printSpy; From 8333bd483d787a8c1a07da8d756eb12b795173a9 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Tue, 21 Nov 2023 18:51:10 +0530 Subject: [PATCH 834/864] Update README.md (#723) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a9aedb7..11420d83 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ Practical Notes: ### Preview Features -ALl preview features cam be emabled in the CLI by setting the `PREVIEW_FEATURES_ENABLED` environment variable. +All preview features cam be enabled in the CLI by setting the `PREVIEW_FEATURES_ENABLED` environment variable. Example ``` From 59e18738436a5434885c1d1e0f8bd46725da6964 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 29 Nov 2023 13:09:25 -0600 Subject: [PATCH 835/864] Applications (#725) * Add Application commands Add Skill stereotype commands Add some utility functions for error handling ( need to distill these more ) * linting * Fix typo, add new menu items to defaults list --- bin/cortex-applications.js | 157 ++++++ bin/cortex-stereotypes.js | 91 ++++ bin/cortex.js | 4 +- package-lock.json | 934 +++++++++++++++++++---------------- package.json | 20 +- src/client/catalog.js | 260 ++++++---- src/commands/applications.js | 257 ++++++++++ src/commands/stereotype.js | 130 +++++ src/commands/utils.js | 44 +- src/features.js | 4 +- 10 files changed, 1352 insertions(+), 549 deletions(-) create mode 100755 bin/cortex-applications.js create mode 100755 bin/cortex-stereotypes.js create mode 100644 src/commands/applications.js create mode 100644 src/commands/stereotype.js diff --git a/bin/cortex-applications.js b/bin/cortex-applications.js new file mode 100755 index 00000000..c9c488da --- /dev/null +++ b/bin/cortex-applications.js @@ -0,0 +1,157 @@ +#!/usr/bin/env node +import chalk from 'chalk'; +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + DeleteAppCommand, + DeployAppCommand, + DescribeAppCommand, + ListAppsCommand, + SaveAppCommand, + AppLogsCommand, + UndeployAppCommand, +} from '../src/commands/applications.js'; + +export function create() { + const program = new Command(); + program.name('cortex applications'); + program.description('Applications are a mechanism for exposing additional Web UIs and APIS behind Sensa\'s api gateway. \nNOTE: Applications cannot be added to Agents like normal Skills'); +// Deploy Application + program + .command('deploy <names...>') + .description('Deploy the application resource to the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (names, options) => { + try { + await new DeployAppCommand(program).execute(names, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); +// Describe Application + program + .command('describe <name>') + .alias('get') + .description('Describe application') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-f --output-file <file>', 'Write output to file instead of stdout') + .option('-o, --output <pretty|json|yaml>', 'Format output as yaml or k8s resource', 'pretty') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--verbose', 'Verbose output', false) + .action(withCompatibilityCheck(async (name, options) => { + try { + await new DescribeAppCommand(program).execute(name, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); +// List Applications + program + .command('list') + .description('List applications') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--nostatus', 'skip extra call for application status') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck(async (options) => { + try { + await new ListAppsCommand(program).execute(options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); +// Delete Application + program + .command('delete <name>') + .description('Delete an application') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json', 'Output results using JSON') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (name, options) => { + try { + await new DeleteAppCommand(program).execute(name, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); +// Save Application + program + .command('save <definitions...>') + .description('Save application(s)') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the application') + // eslint-disable-next-line max-len + .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the application definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('-y, --yaml', 'Use YAML for application definition format') + .option('--scaleCount <count>', 'Scale count, only used for daemon action types') + .action(withCompatibilityCheck(async (definitions, options) => { + try { + await new SaveAppCommand(program).execute(definitions, options); + } catch (err) { + console.error(chalk.red(err.message)); + } + })); +// Undeploy Application + program + .command('undeploy <names...>') + .description('Undeploy the application resource from the cluster') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (names, options) => { + try { + return await new UndeployAppCommand(program).execute(names, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); +// Get Application logs + program + .command('logs <name>') + .description('Get logs from an application\'s pod') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--raw', 'Get raw logs as a stream') + .action(withCompatibilityCheck(async (name, options) => { + try { + return await new AppLogsCommand(program).execute(name, options); + } catch (err) { + return console.error(chalk.red(err.message)); + } + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); +} +export default create(); diff --git a/bin/cortex-stereotypes.js b/bin/cortex-stereotypes.js new file mode 100755 index 00000000..05ad14e8 --- /dev/null +++ b/bin/cortex-stereotypes.js @@ -0,0 +1,91 @@ +#!/usr/bin/env node +import esMain from 'es-main'; +import process from 'node:process'; +import { Command } from 'commander'; +import { withCompatibilityCheck } from '../src/compatibility.js'; +import { + DEFAULT_LIST_LIMIT_COUNT, + DEFAULT_LIST_SKIP_COUNT, + DEFAULT_LIST_SORT_PARAMS, + GET_DEFAULT_SORT_CLI_OPTION, + LIST_JSON_HELP_TEXT, + QUERY_JSON_HELP_TEXT, +} from '../src/constants.js'; +import { + DeleteStereotypeCommand, DescribeStereotypeCommand, ListStereotypesCommand, SaveStereotypeCommand, +} from '../src/commands/stereotype.js'; + +export function create() { + const program = new Command(); + program.name('cortex skill stereotypes'); + program.description('Work with Cortex Skill Stereotypes'); +// Describe Stereotype + program + .command('describe <Name>') + .alias('get') + .description('Describe skill stereotype') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-f --output-file <file>', 'Write output to file instead of stdout') + .option('-o, --output <json|yaml>', 'Format output as yaml', 'json') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--verbose', 'Verbose output', false) + .action(withCompatibilityCheck(async (skillName, options) => { + await new DescribeStereotypeCommand(program).execute(skillName, options); + })); +// List Stereotypes + program + .command('list') + .description('List skill stereotypes') + .alias('l') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) + .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) + .option('--noshared', 'do not list shared skills') + .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) + .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) + .action(withCompatibilityCheck(async (options) => { + await new ListStereotypesCommand(program).execute(options); + })); +// Delete Stereotype + program + .command('delete <skillName>') + .description('Delete a skill') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--json', 'Output results using JSON') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .action(withCompatibilityCheck(async (skillName, options) => { + await new DeleteStereotypeCommand(program).execute(skillName, options); + })); +// Save Stereotype + program + .command('save <skillDefinitions...>') + .description('Save a skill definition') + .option('--no-compat', 'Ignore API compatibility checks') + .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--profile <profile>', 'The profile to use') + .option('--project <project>', 'The project to use') + .option('-k, --k8sResource <file...>', 'Additional kubernetes resources deployed and owned by the skill') + // eslint-disable-next-line max-len + .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') + .option('-y, --yaml', 'Use YAML for skill definition format') + .option('--scaleCount <count>', 'Scale count, only used for daemon action types') + .action(withCompatibilityCheck(async (skillDefinitions, options) => { + await new SaveStereotypeCommand(program).execute(skillDefinitions, options); + })); + return program; +} +if (esMain(import.meta)) { + create().showHelpAfterError().parseAsync(process.argv); +} +export default create(); diff --git a/bin/cortex.js b/bin/cortex.js index 1c55ffe3..0acfcdcb 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -56,7 +56,8 @@ export async function create(profileName) { const allCommands = [ _toObject('actions <cmd>', 'Work with Cortex Actions'), _toObject('agents <cmd>', 'Work with Cortex Agents'), - _toObject('assessments <cmd>', 'Work with Cortex Impact Assesments'), + _toObject('applications <cmd>', 'Work with Cortex Applications'), + _toObject('assessments <cmd>', 'Work with Cortex Impact Assessments'), _toObject('campaigns <cmd>', 'Work with Cortex Campaigns'), _toObject('configure', 'Configure the Cortex CLI'), _toObject('connections <cmd>', 'Work with Cortex Connections'), @@ -72,6 +73,7 @@ export async function create(profileName) { _toObject('secrets <cmd>', 'Work with Cortex Secrets'), _toObject('sessions <cmd>', 'Work with Cortex Sessions'), _toObject('skills <cmd>', 'Work with Cortex Skills'), + _toObject('stereotypes <cmd>', 'Work with Skill Stereotypes'), _toObject('tasks <cmd>', 'Work with Cortex Tasks'), _toObject('types <cmd>', 'Work with Cortex Types'), _toObject('users <cmd>', 'Work with a Cortex Users'), diff --git a/package-lock.json b/package-lock.json index b79a2357..ae7bd728 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "chalk": "5.3.0", "cli-progress": "3.12.0", "cli-table3": "0.6.3", - "commander": "11.0.0", + "commander": "11.1.0", "dayjs": "1.11.10", "debug": "4.3.4", "dockerode": "3.3.5", @@ -26,17 +26,17 @@ "got": "13.0.0", "graphql": "16.8.1", "graphql-request": "6.1.0", - "inquirer": "9.2.11", + "inquirer": "9.2.12", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.10.2", - "jose": "4.15.0", + "joi": "17.11.0", + "jose": "5.1.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", "minimatch": "9.0.3", - "npm-registry-fetch": "16.0.0", + "npm-registry-fetch": "16.1.0", "open": "9.1.0", "prompts": "2.4.2", "semver": "7.5.4", @@ -56,17 +56,17 @@ "chai": "4.3.10", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "esbuild": "0.19.4", - "eslint": "8.50.0", + "esbuild": "0.19.5", + "eslint": "8.53.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.28.1", + "eslint-plugin-import": "2.29.0", "husky": "8.0.3", "is-ci": "3.0.1", "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.3.3", + "nock": "13.3.8", "pkg": "5.8.1", - "sinon": "16.0.0" + "sinon": "17.0.1" }, "engines": { "node": ">=16.0.0" @@ -120,9 +120,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", - "integrity": "sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", "cpu": [ "arm" ], @@ -136,9 +136,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz", - "integrity": "sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", "cpu": [ "arm64" ], @@ -152,9 +152,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.4.tgz", - "integrity": "sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", "cpu": [ "x64" ], @@ -168,9 +168,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz", - "integrity": "sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", "cpu": [ "arm64" ], @@ -184,9 +184,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz", - "integrity": "sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", "cpu": [ "x64" ], @@ -200,9 +200,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz", - "integrity": "sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", "cpu": [ "arm64" ], @@ -216,9 +216,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz", - "integrity": "sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", "cpu": [ "x64" ], @@ -232,9 +232,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz", - "integrity": "sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", "cpu": [ "arm" ], @@ -248,9 +248,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz", - "integrity": "sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", "cpu": [ "arm64" ], @@ -264,9 +264,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz", - "integrity": "sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", "cpu": [ "ia32" ], @@ -280,9 +280,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz", - "integrity": "sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", "cpu": [ "loong64" ], @@ -296,9 +296,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz", - "integrity": "sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", "cpu": [ "mips64el" ], @@ -312,9 +312,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz", - "integrity": "sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", "cpu": [ "ppc64" ], @@ -328,9 +328,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz", - "integrity": "sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", "cpu": [ "riscv64" ], @@ -344,9 +344,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz", - "integrity": "sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", "cpu": [ "s390x" ], @@ -360,9 +360,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz", - "integrity": "sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", "cpu": [ "x64" ], @@ -376,9 +376,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz", - "integrity": "sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", "cpu": [ "x64" ], @@ -392,9 +392,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz", - "integrity": "sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", "cpu": [ "x64" ], @@ -408,9 +408,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz", - "integrity": "sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", "cpu": [ "x64" ], @@ -424,9 +424,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz", - "integrity": "sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", "cpu": [ "arm64" ], @@ -440,9 +440,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz", - "integrity": "sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", "cpu": [ "ia32" ], @@ -456,9 +456,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz", - "integrity": "sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", "cpu": [ "x64" ], @@ -496,9 +496,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -531,9 +531,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", + "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -561,12 +561,12 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -600,9 +600,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "node_modules/@isaacs/cliui": { @@ -738,9 +738,12 @@ } }, "node_modules/@ljharb/through": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz", - "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==", + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "dependencies": { + "call-bind": "^1.0.2" + }, "engines": { "node": ">= 0.4" } @@ -884,9 +887,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0" @@ -954,10 +957,16 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1210,15 +1219,15 @@ } }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -1257,14 +1266,14 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1275,14 +1284,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -1673,7 +1682,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -2082,9 +2090,9 @@ } }, "node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "engines": { "node": ">=16" } @@ -2629,9 +2637,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.4.tgz", - "integrity": "sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", "dev": true, "hasInstallScript": true, "bin": { @@ -2641,28 +2649,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.4", - "@esbuild/android-arm64": "0.19.4", - "@esbuild/android-x64": "0.19.4", - "@esbuild/darwin-arm64": "0.19.4", - "@esbuild/darwin-x64": "0.19.4", - "@esbuild/freebsd-arm64": "0.19.4", - "@esbuild/freebsd-x64": "0.19.4", - "@esbuild/linux-arm": "0.19.4", - "@esbuild/linux-arm64": "0.19.4", - "@esbuild/linux-ia32": "0.19.4", - "@esbuild/linux-loong64": "0.19.4", - "@esbuild/linux-mips64el": "0.19.4", - "@esbuild/linux-ppc64": "0.19.4", - "@esbuild/linux-riscv64": "0.19.4", - "@esbuild/linux-s390x": "0.19.4", - "@esbuild/linux-x64": "0.19.4", - "@esbuild/netbsd-x64": "0.19.4", - "@esbuild/openbsd-x64": "0.19.4", - "@esbuild/sunos-x64": "0.19.4", - "@esbuild/win32-arm64": "0.19.4", - "@esbuild/win32-ia32": "0.19.4", - "@esbuild/win32-x64": "0.19.4" + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" } }, "node_modules/escalade": { @@ -2687,18 +2695,19 @@ } }, "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", + "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.53.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -2769,14 +2778,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -2815,26 +2824,26 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", + "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", "semver": "^6.3.1", "tsconfig-paths": "^3.14.2" }, @@ -3419,10 +3428,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", @@ -3473,7 +3484,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -3647,9 +3657,9 @@ } }, "node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3779,7 +3789,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -3820,7 +3829,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3832,7 +3840,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3855,6 +3862,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -4060,11 +4079,11 @@ } }, "node_modules/inquirer": { - "version": "9.2.11", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", - "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", + "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", "dependencies": { - "@ljharb/through": "^2.3.9", + "@ljharb/through": "^2.3.11", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", @@ -4211,12 +4230,12 @@ } }, "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4604,9 +4623,9 @@ } }, "node_modules/joi": { - "version": "17.10.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.2.tgz", - "integrity": "sha512-hcVhjBxRNW/is3nNLdGLIjkgXetkeGc2wyhydhz8KumG23Aerk4HPjU5zaPAMRqXQFc0xNqXTC7+zQjxr0GlKA==", + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", + "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4616,9 +4635,9 @@ } }, "node_modules/jose": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.0.tgz", - "integrity": "sha512-hkffyGXh/xmT6JZfzVC2TwJXIeLnqkH8e+azMsYjATla92XuCbfDZFY7+TzQPG0oqohJ7odUaunjA9gtUa2raw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.1.1.tgz", + "integrity": "sha512-bfB+lNxowY49LfrBO0ITUn93JbUhxUN8I11K6oI5hJu/G6PO6fEUddVLjqdD0cQ9SXIHWXuWh7eJYwZF7Z0N/g==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -5453,9 +5472,9 @@ } }, "node_modules/nise": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", - "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", + "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "dev": true, "dependencies": { "@sinonjs/commons": "^2.0.0", @@ -5465,15 +5484,32 @@ "path-to-regexp": "^1.7.0" } }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, "node_modules/nock": { - "version": "13.3.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.3.tgz", - "integrity": "sha512-z+KUlILy9SK/RjpeXDiDUEAq4T94ADPHE3qaRkf66mpEhzc/ytOMm3Bwdrbq6k1tMWkbdujiKim3G2tfQARuJw==", + "version": "13.3.8", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.8.tgz", + "integrity": "sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw==", "dev": true, "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", "propagate": "^2.0.0" }, "engines": { @@ -5550,9 +5586,9 @@ } }, "node_modules/npm-registry-fetch": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.0.0.tgz", - "integrity": "sha512-JFCpAPUpvpwfSydv99u85yhP68rNIxSFmDpNbNnRWKSe3gpjHnWL8v320gATwRzjtgmZ9Jfe37+ZPOLZPwz6BQ==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", "dependencies": { "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", @@ -5679,14 +5715,14 @@ } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -6282,9 +6318,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" @@ -6464,12 +6500,12 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -6890,16 +6926,16 @@ } }, "node_modules/sinon": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-16.0.0.tgz", - "integrity": "sha512-B8AaZZm9CT5pqe4l4uWJztfD/mOTa7dL8Qo0W4+s+t74xECOgSZDDQCBjNgIK3+n4kyxQrSTv2V5ul8K25qkiQ==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", + "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", "dev": true, "dependencies": { "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.3.0", + "@sinonjs/fake-timers": "^11.2.2", "@sinonjs/samsam": "^8.0.0", "diff": "^5.1.0", - "nise": "^5.1.4", + "nise": "^5.1.5", "supports-color": "^7.2.0" }, "funding": { @@ -7984,156 +8020,156 @@ "optional": true }, "@esbuild/android-arm": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", - "integrity": "sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz", - "integrity": "sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.4.tgz", - "integrity": "sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz", - "integrity": "sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz", - "integrity": "sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz", - "integrity": "sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz", - "integrity": "sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz", - "integrity": "sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz", - "integrity": "sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz", - "integrity": "sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz", - "integrity": "sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz", - "integrity": "sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz", - "integrity": "sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz", - "integrity": "sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz", - "integrity": "sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz", - "integrity": "sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz", - "integrity": "sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz", - "integrity": "sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz", - "integrity": "sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz", - "integrity": "sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz", - "integrity": "sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz", - "integrity": "sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", "dev": true, "optional": true }, @@ -8153,9 +8189,9 @@ "dev": true }, "@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -8181,9 +8217,9 @@ } }, "@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", + "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", "dev": true }, "@graphql-typed-document-node/core": { @@ -8206,12 +8242,12 @@ } }, "@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -8234,9 +8270,9 @@ "dev": true }, "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "@isaacs/cliui": { @@ -8332,9 +8368,12 @@ } }, "@ljharb/through": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.9.tgz", - "integrity": "sha512-yN599ZBuMPPK4tdoToLlvgJB4CLK8fGl7ntfy0Wn7U6ttNvHYurd81bfUiK/6sMkiIwm65R6ck4L6+Y3DfVbNQ==" + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "requires": { + "call-bind": "^1.0.2" + } }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -8444,9 +8483,9 @@ } }, "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", "dev": true, "requires": { "@sinonjs/commons": "^3.0.0" @@ -8510,10 +8549,16 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true }, "acorn-jsx": { @@ -8707,15 +8752,15 @@ } }, "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" } }, @@ -8739,26 +8784,26 @@ } }, "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" } }, @@ -9037,7 +9082,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -9311,9 +9355,9 @@ } }, "commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==" + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==" }, "compress-commons": { "version": "4.1.1", @@ -9723,33 +9767,33 @@ } }, "esbuild": { - "version": "0.19.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.4.tgz", - "integrity": "sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.19.4", - "@esbuild/android-arm64": "0.19.4", - "@esbuild/android-x64": "0.19.4", - "@esbuild/darwin-arm64": "0.19.4", - "@esbuild/darwin-x64": "0.19.4", - "@esbuild/freebsd-arm64": "0.19.4", - "@esbuild/freebsd-x64": "0.19.4", - "@esbuild/linux-arm": "0.19.4", - "@esbuild/linux-arm64": "0.19.4", - "@esbuild/linux-ia32": "0.19.4", - "@esbuild/linux-loong64": "0.19.4", - "@esbuild/linux-mips64el": "0.19.4", - "@esbuild/linux-ppc64": "0.19.4", - "@esbuild/linux-riscv64": "0.19.4", - "@esbuild/linux-s390x": "0.19.4", - "@esbuild/linux-x64": "0.19.4", - "@esbuild/netbsd-x64": "0.19.4", - "@esbuild/openbsd-x64": "0.19.4", - "@esbuild/sunos-x64": "0.19.4", - "@esbuild/win32-arm64": "0.19.4", - "@esbuild/win32-ia32": "0.19.4", - "@esbuild/win32-x64": "0.19.4" + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" } }, "escalade": { @@ -9765,18 +9809,19 @@ "dev": true }, "eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", + "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.53.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -9851,14 +9896,14 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", - "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "requires": { "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" }, "dependencies": { "debug": { @@ -9893,26 +9938,26 @@ } }, "eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, "requires": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", + "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", "semver": "^6.3.1", "tsconfig-paths": "^3.14.2" }, @@ -10339,10 +10384,9 @@ "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "function.prototype.name": { "version": "1.1.6", @@ -10378,7 +10422,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -10490,9 +10533,9 @@ } }, "globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -10585,7 +10628,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -10613,14 +10655,12 @@ "has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-tostringtag": { "version": "1.0.0", @@ -10631,6 +10671,15 @@ "has-symbols": "^1.0.2" } }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -10772,11 +10821,11 @@ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" }, "inquirer": { - "version": "9.2.11", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", - "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", + "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", "requires": { - "@ljharb/through": "^2.3.9", + "@ljharb/through": "^2.3.11", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", @@ -10886,12 +10935,12 @@ } }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-date-object": { @@ -11135,9 +11184,9 @@ "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" }, "joi": { - "version": "17.10.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.2.tgz", - "integrity": "sha512-hcVhjBxRNW/is3nNLdGLIjkgXetkeGc2wyhydhz8KumG23Aerk4HPjU5zaPAMRqXQFc0xNqXTC7+zQjxr0GlKA==", + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", + "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -11147,9 +11196,9 @@ } }, "jose": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.0.tgz", - "integrity": "sha512-hkffyGXh/xmT6JZfzVC2TwJXIeLnqkH8e+azMsYjATla92XuCbfDZFY7+TzQPG0oqohJ7odUaunjA9gtUa2raw==" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.1.1.tgz", + "integrity": "sha512-bfB+lNxowY49LfrBO0ITUn93JbUhxUN8I11K6oI5hJu/G6PO6fEUddVLjqdD0cQ9SXIHWXuWh7eJYwZF7Z0N/g==" }, "js-yaml": { "version": "4.1.0", @@ -11793,9 +11842,9 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "nise": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", - "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", + "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "dev": true, "requires": { "@sinonjs/commons": "^2.0.0", @@ -11803,17 +11852,38 @@ "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } + } } }, "nock": { - "version": "13.3.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.3.tgz", - "integrity": "sha512-z+KUlILy9SK/RjpeXDiDUEAq4T94ADPHE3qaRkf66mpEhzc/ytOMm3Bwdrbq6k1tMWkbdujiKim3G2tfQARuJw==", + "version": "13.3.8", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.8.tgz", + "integrity": "sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw==", "dev": true, "requires": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", "propagate": "^2.0.0" } }, @@ -11861,9 +11931,9 @@ } }, "npm-registry-fetch": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.0.0.tgz", - "integrity": "sha512-JFCpAPUpvpwfSydv99u85yhP68rNIxSFmDpNbNnRWKSe3gpjHnWL8v320gATwRzjtgmZ9Jfe37+ZPOLZPwz6BQ==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", "requires": { "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", @@ -11955,14 +12025,14 @@ } }, "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "once": { @@ -12399,9 +12469,9 @@ } }, "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, "querystringify": { @@ -12535,12 +12605,12 @@ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -12808,16 +12878,16 @@ } }, "sinon": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-16.0.0.tgz", - "integrity": "sha512-B8AaZZm9CT5pqe4l4uWJztfD/mOTa7dL8Qo0W4+s+t74xECOgSZDDQCBjNgIK3+n4kyxQrSTv2V5ul8K25qkiQ==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", + "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", "dev": true, "requires": { "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^10.3.0", + "@sinonjs/fake-timers": "^11.2.2", "@sinonjs/samsam": "^8.0.0", "diff": "^5.1.0", - "nise": "^5.1.4", + "nise": "^5.1.5", "supports-color": "^7.2.0" }, "dependencies": { diff --git a/package.json b/package.json index 0d2fde16..141bb920 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "chalk": "5.3.0", "cli-progress": "3.12.0", "cli-table3": "0.6.3", - "commander": "11.0.0", + "commander": "11.1.0", "dayjs": "1.11.10", "debug": "4.3.4", "dockerode": "3.3.5", @@ -63,17 +63,17 @@ "got": "13.0.0", "graphql": "16.8.1", "graphql-request": "6.1.0", - "inquirer": "9.2.11", + "inquirer": "9.2.12", "is-installed-globally": "0.4.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", - "joi": "17.10.2", - "jose": "4.15.0", + "joi": "17.11.0", + "jose": "5.1.1", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", "minimatch": "9.0.3", - "npm-registry-fetch": "16.0.0", + "npm-registry-fetch": "16.1.0", "open": "9.1.0", "prompts": "2.4.2", "semver": "7.5.4", @@ -90,17 +90,17 @@ "chai": "4.3.10", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "esbuild": "0.19.4", - "eslint": "8.50.0", + "esbuild": "0.19.5", + "eslint": "8.53.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.28.1", + "eslint-plugin-import": "2.29.0", "husky": "8.0.3", "is-ci": "3.0.1", "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.3.3", + "nock": "13.3.8", "pkg": "5.8.1", - "sinon": "16.0.0" + "sinon": "17.0.1" }, "c8": { "check-coverage": true, diff --git a/src/client/catalog.js b/src/client/catalog.js index e00ed0c4..927786ee 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -26,6 +26,8 @@ import { const debug = debugSetup('cortex:cli'); const createEndpoints = (baseUri) => ({ skills: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/skills`, + applications: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/applications`, + skillStereotype: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/skillStereotypes`, agents: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agents`, agentinvoke: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/agentinvoke`, types: (projectId) => `${baseUri}/fabric/v4/projects/${projectId}/types`, @@ -37,6 +39,20 @@ export default class Catalog { this.endpoints = createEndpoints(cortexUrl); } + // Skill + deleteSkill(projectId, token, skillName) { + checkProject(projectId); + const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; + debug('deleteSkill(%s) => %s', skillName, endpoint); + return got + .delete(endpoint, { + headers: defaultHeaders(token), + }) + .json() + .then((skill) => skill) + .catch((err) => constructError(err)); + } + saveSkill(projectId, token, skillObj) { checkProject(projectId); debug('saveSkill(%s) => %s', skillObj.name, this.endpoints.skills(projectId)); @@ -117,6 +133,20 @@ export default class Catalog { return raw ? got.get(endpoint, gotOptions).text() : got.get(endpoint, gotOptions).json(); } + // Agent + deleteAgent(projectId, token, agentName) { + checkProject(projectId); + const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; + debug('deleteAgent(%s) => %s', agentName, endpoint); + return got + .delete(endpoint, { + headers: defaultHeaders(token), + }) + .json() + .then((agent) => ({ success: true, agent })) + .catch((err) => constructError(err)); + } + listAgents(projectId, token, filter, limit, skip, sort) { checkProject(projectId); const endpoint = this.endpoints.agents(projectId); @@ -221,6 +251,7 @@ export default class Catalog { .catch((err) => constructError(err)); } + // Type saveType(projectId, token, types) { checkProject(projectId); const endpoint = `${this.endpoints.types(projectId)}`; @@ -280,6 +311,7 @@ export default class Catalog { .catch((err) => constructError(err)); } + // Campaign exportCampaign(projectId, token, campaignName, deployable, path) { checkProject(projectId); const url = `${this.endpoints.campaigns(projectId)}${campaignName}/export?deployable=${deployable}`; @@ -360,6 +392,7 @@ export default class Catalog { .catch((err) => constructError(err)); } + // Mission undeployMission(projectId, token, campaign, mission) { checkProject(projectId); const endpoint = `${this.endpoints.campaigns(projectId)}${campaign}/missions/${mission}/undeploy`; @@ -418,117 +451,140 @@ export default class Catalog { .catch((err) => constructError(err)); } - // saveProfileSchema(projectId, token, schemaObj) { - // debug('saveProfileSchema(%s) => %s', schemaObj.name, this.endpoints.profileSchemas); - // return request - // .post(this.endpoints.profileSchemas) - // .set('Authorization', `Bearer ${token}`) - // .set('x-cortex-proxy-notify', true) - // .send(schemaObj) - // .then((res) => { - // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - // console.error(chalk.blue('Request proxied to cloud.')); - // if (res.ok) { - // return {success: true, message: res.body}; - // } - // return {success: false, message: res.body, status: res.status}; - // }) - // .catch((err) => { - // return constructError(err); - // }); - // } - // - // listProfileSchemas(projectId, token, filter, sort, limit, skip) { - // debug('listProfileSchemas() => %s', this.endpoints.profileSchemas); - // const req = request - // .get(this.endpoints.profileSchemas) - // .set('Authorization', `Bearer ${token}`) - // .set('x-cortex-proxy-notify', true); - // - // if (filter) req.query({ filter }); - // if (sort) req.query({ sort }); - // if (limit) req.query({ limit }); - // if (skip) req.query({ skip }); - // - // return req.then((res) => { - // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - // console.error(chalk.blue('Request proxied to cloud.')); - // if (res.ok) { - // return {success: true, schemas: res.body.schemas}; - // } - // return {success: false, status: res.status, message: res.body}; - // }) - // .catch((err) => { - // return constructError(err); - // }); - // } - // - // describeProfileSchema(projectId, token, schemaName) { - // const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; - // debug('describeProfileSchema(%s) => %s', schemaName, endpoint); - // return request - // .get(endpoint) - // .set('Authorization', `Bearer ${token}`) - // .set('x-cortex-proxy-notify', true) - // .then((res) => { - // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - // console.error(chalk.blue('Request proxied to cloud.')); - // if (res.ok) { - // return {success: true, schema: res.body}; - // } - // else { - // return {success: false, message: res.body, status: res.status}; - // } - // }) - // .catch((err) => { - // return constructError(err); - // }); - // } - // - // deleteProfileSchema(projectId, token, schemaName) { - // const endpoint = `${this.endpoints.profileSchemas}/${schemaName}`; - // debug('deleteProfileSchema(%s) => %s', schemaName, endpoint); - // return request - // .delete(endpoint) - // .set('Authorization', `Bearer ${token}`) - // .set('x-cortex-proxy-notify', true) - // .then((res) => { - // if (Boolean(_.get(res, 'headers.x-cortex-proxied', false))) - // console.error(chalk.blue('Request proxied to cloud.')); - // if (res.ok) { - // return {success: true}; - // } - // else { - // return {success: false, message: res.body, status: res.status}; - // } - // }) - // .catch((err) => { - // return constructError(err); - // }); - // } - deleteSkill(projectId, token, skillName) { + // Application + deleteApplication(projectId, token, name) { checkProject(projectId); - const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}`; - debug('deleteSkill(%s) => %s', skillName, endpoint); + const endpoint = `${this.endpoints.applications(projectId)}/${encodeURIComponent(name)}`; + debug('deleteApplication(%s) => %s', name, endpoint); return got .delete(endpoint, { - headers: defaultHeaders(token), - }) - .json() - .then((skill) => skill) + headers: defaultHeaders(token), + }) + .json(); + } + + saveApplication(projectId, token, appObj) { + checkProject(projectId); + debug('saveApplication(%s) => %s', appObj.name, this.endpoints.applications(projectId)); + return got + .post(this.endpoints.applications(projectId), { + headers: defaultHeaders(token), + json: appObj, + }).json() + .then((res) => ({ success: true, message: res })) .catch((err) => constructError(err)); } - deleteAgent(projectId, token, agentName) { + listApplications(projectId, token, query, filter, limit, skip, sort) { checkProject(projectId); - const endpoint = `${this.endpoints.agents(projectId)}/${encodeURIComponent(agentName)}`; - debug('deleteAgent(%s) => %s', agentName, endpoint); + debug('listApplications() => %s', this.endpoints.applications(projectId)); + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; + return got + .get(this.endpoints.applications(projectId), { + headers: defaultHeaders(token), + searchParams: query, + }).json(); + } + + describeApplication(projectId, token, name, verbose = false, output = 'json') { + checkProject(projectId); + const endpoint = `${this.endpoints.applications(projectId)}/${encodeURIComponent(name)}`; + debug('describeApplication(%s) => %s', name, endpoint); + const searchParams = { output }; + if (verbose) { + searchParams.verbose = verbose; + searchParams.status = verbose; + } + try { + const res = got.get(endpoint, { + headers: defaultHeaders(token), + searchParams, + }); + if (['json', 'pretty'].includes(output.toLocaleLowerCase())) return res.json(); + return res.text(); + } catch (err) { + return constructError(err); + } + } + + deployApplication(projectId, token, name) { + checkProject(projectId); + const endpoint = `${this.endpoints.applications(projectId)}/${encodeURIComponent(name)}/deploy`; + debug('deployApplication(%s) => %s', name, endpoint); + try { + return got + .get(endpoint, { + headers: defaultHeaders(token), + }) + .json(); + } catch (err) { + return constructError(err); + } + } + + unDeployApplication(projectId, token, name) { + checkProject(projectId); + const endpoint = `${this.endpoints.applications(projectId)}/${encodeURIComponent(name)}/undeploy`; + debug('undeployApplication(%s) => %s', name, endpoint); + return got + .get(endpoint, { + headers: defaultHeaders(token), + }).json(); + } + + // Stereotype + deleteStereotype(projectId, token, name) { + checkProject(projectId); + const endpoint = `${this.endpoints.skillStereotype(projectId)}/${encodeURIComponent(name)}`; + debug('deleteStereotype(%s) => %s', name, endpoint); return got .delete(endpoint, { + headers: defaultHeaders(token), + }) + .json(); + } + + saveStereotype(projectId, token, appObj) { + checkProject(projectId); + debug('saveStereotype(%s) => %s', appObj.name, this.endpoints.skillStereotype(projectId)); + return got + .post(this.endpoints.skillStereotype(projectId), { + headers: defaultHeaders(token), + json: appObj, + }).json(); + } + + listStereotypes(projectId, token, query, filter, limit, skip, sort) { + checkProject(projectId); + debug('listStereotypes() => %s', this.endpoints.skillStereotype(projectId)); + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; + return got + .get(this.endpoints.skillStereotype(projectId), { + headers: defaultHeaders(token), + searchParams: query, + }).json(); + } + + describeStereotype(projectId, token, name, verbose = false, output = 'json') { + checkProject(projectId); + const endpoint = `${this.endpoints.skillStereotype(projectId)}/${encodeURIComponent(name)}`; + debug('describeStereotype(%s) => %s', name, endpoint); + const searchParams = { output }; + if (verbose) { + searchParams.verbose = verbose; + searchParams.status = verbose; + } + const res = got.get(endpoint, { headers: defaultHeaders(token), - }) - .json() - .then((agent) => ({ success: true, agent })) - .catch((err) => constructError(err)); + searchParams, + }); + if (output.toLocaleLowerCase() === 'json') return res.json(); + return res.text(); } } diff --git a/src/commands/applications.js b/src/commands/applications.js new file mode 100644 index 00000000..386f2a3a --- /dev/null +++ b/src/commands/applications.js @@ -0,0 +1,257 @@ +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import Table from 'cli-table3'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Catalog from '../client/catalog.js'; +import { + printSuccess, + printError, + printWarning, + filterObject, + parseObject, + LISTTABLEFORMAT, + isNumeric, + handleTable, + printExtendedLogs, + getFilteredOutput, + writeOutput, printErrorDetails, handleError, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); +dayjs.extend(relativeTime); +export class SaveAppCommand { + constructor(program) { + this.program = program; + } + + async execute(defns, options) { + try { + const profile = await loadProfile(options.profile); + await Promise.all(defns.map(async (defn) => { + const defnStr = fs.readFileSync(defn); + const app = parseObject(defnStr, options); + debug('%s.executeSaveApplication(%s)', profile.name, defnStr); + const catalog = new Catalog(profile.url); + if (!_.isEmpty(options.k8sResource)) { + const k8sResources = options.k8sResource.map((f) => JSON.stringify(parseObject(fs.readFileSync(f), options))); + if (_.isEmpty(_.get(app, 'actions', []))) { + printError('Application must contain an action to apply kubernetes resources', options, true); + } + if (app.actions.length > 1) { + printWarning('Applying kubernetes resources to all actions'); + } + app.actions.map((a) => a.k8sResources = k8sResources); + } + if (options.scaleCount) { + if (!isNumeric(options.scaleCount)) { + printError('--scaleCount must be a number', options); + } + if (app.actions.length > 1) { + printWarning('Applying kubernetes resources to all actions'); + } + const scaleCount = parseInt(options.scaleCount, 10); + app.actions.map((a) => a.scaleCount = scaleCount); + } + if (options.podspec) { + const paramsStr = fs.readFileSync(options.podspec); + const podSpec = parseObject(paramsStr, options); + if (_.isEmpty(_.get(app, 'actions', []))) { + printError('Application must contain an action', options, true); + } + app.actions.map((a) => a.podSpec = podSpec); + } + const response = await catalog.saveApplication(options.project || profile.project, profile.token, app); + if (response.success) { + printSuccess(`Application saved: ${JSON.stringify(response.message)}`, options); + } else { + console.log(`Failed to save application: ${response.message}`); + printErrorDetails(response, options); + printError(''); // Just exit + } + })); + } catch (err) { + printError(`Failed to save application: ${_.get(err, 'response.body.error', err.message)}`, options); + } + } +} +export class ListAppsCommand { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = await loadProfile(options.profile); + debug('%s.executeListApplications()', profile.name); + const catalog = new Catalog(profile.url); + try { + const status = !_.get(options, 'nostatus', false); // default show status, if nostatus==true status == false + const shared = !_.get(options, 'noshared', false); + const response = await catalog.listApplications(options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort); + let result = response.applications; + const tableFormat = LISTTABLEFORMAT; + if (options.nostatus === undefined) { + result = result.map((appStat) => { + const statuses = _.isEmpty(appStat.actionStatuses) ? appStat.deployStatus : appStat.actionStatuses.map((s) => `${s.name}: ${s.state}`).join(' '); + return { + ...appStat, + status: statuses, + }; + }); + tableFormat.push({ column: 'Status', field: 'status', width: 30 }); + } + // TODO remove --query on deprecation + if (options.json || options.query) { + return getFilteredOutput(result, options); + } + printExtendedLogs(result, options); + return handleTable(tableFormat, _.sortBy(result, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No applications found'); + } catch (err) { + printError(`Failed to list applications: (${err.message}): ${err.response?.body ?? ''}`, options, false); + return printErrorDetails(err.response, options, true); + } + } +} + +function parseMatch(m) { + const { uri } = m; + const matcher = Object.keys(uri).pop(); + const path = Object.values(uri).pop(); + return [matcher, path]; +} +export class DescribeAppCommand { + constructor(program) { + this.program = program; + } + + + async execute(name, options) { + const profile = await loadProfile(options.profile); + const { + verbose, output, project, + } = options; + const isPretty = (options?.output ?? 'pretty').toLowerCase() === 'pretty'; + debug('%s.executeDescribeApplication(%s)', profile.name, name); + const catalog = new Catalog(profile.url); + try { + const app = await catalog.describeApplication(project || profile.project, profile.token, name, verbose || isPretty, output); + if (isPretty) { +// Strange spacing needed for output formatting + printSuccess(`Name: ${app.name} +Description: ${app.description} +Image: ${app?.action?.image} +Created By: ${app._createdBy} +Updated At: ${app._updatedAt}`, options); + const hTable = new Table({ head: ['Hosts'] }); + hTable.push(...(app?.hosts?.length > 0 ? app.hosts.map((h) => [`https://${h}`]) : [[profile.url]])); + console.log(hTable.toString()); + printSuccess('Route(s):'); + const rTable = new Table({ head: ['Matcher', 'Path'] }); + rTable.push(...app?.match?.map(parseMatch) ?? []); + return console.log(rTable.toString()); + } + if (options?.output?.toLowerCase() === 'json') return getFilteredOutput(app, options); + return writeOutput(app, options); + } catch (err) { + return printError(`Failed to describe application ${name}: ${err.status ?? ''} ${err.message}`, options); + } + } +} +export class UndeployAppCommand { + constructor(program) { + this.program = program; + } + + async execute(names, options) { + const profile = await loadProfile(options.profile); + const catalog = new Catalog(profile.url); + await Promise.all(names.map(async (name) => { + debug('%s.executeUndeployApplication(%s)', profile.name, name); + try { + const response = await catalog.unDeployApplication(options.project || profile.project, profile.token, name); + printSuccess(`Undeploy Application ${name}: ${response.message}`, options); + } catch (err) { + printError(`Failed to Undeploy Application ${name}: ${err.message}`, options); + } + })); + } +} +export class AppLogsCommand { + constructor(program) { + this.program = program; + } + + async execute(name, options) { + try { + const profile = await loadProfile(options.profile); + debug('%s.executeApplicationLogs(%s,%s)', profile.name, name); + + const catalog = new Catalog(profile.url); + const response = await catalog.skillLogs(options.project || profile.project, profile.token, name, name, options.raw); + + if (options.raw) { + try { + const respJSON = JSON.parse(response); // happens with errors + if (respJSON?.body) { + printError(`Failed to List Application Logs ${name}}: ${respJSON.body.message}`, options); + } + } catch (err) { + printSuccess(response, options); + } + } else if (response.success) { + printSuccess(JSON.stringify(response.logs), options); + } else { + printError(`Failed to List Application Logs ${name}: ${response.body.message}`, options); + } + } catch (err) { + printError(`Failed to List Application Logs ${name}: ${err.message}`, options); + } + } +} +export class DeployAppCommand { + constructor(program) { + this.program = program; + } + + async execute(names, options) { + const profile = await loadProfile(options.profile); + const catalog = new Catalog(profile.url); + await Promise.all(names.map(async (name) => { + debug('%s.executeDeployApplication(%s)', profile.name, name); + try { + const response = await catalog.deployApplication(options.project || profile.project, profile.token, name); + if (response.success) { + printSuccess(`Deployed Application ${name}: ${response.message}`, options); + } else { + printError(`Failed to deploy Application ${name}: ${response.message}`, options); + } + } catch (err) { + printError(`Failed to deploy Application ${name}: ${err.message}`, options); + } + })); + } +} + +export class DeleteAppCommand { + constructor(program) { + this.program = program; + } + + async execute(name, options) { + try { + const profile = await loadProfile(options.profile); + debug('%s.executeDeleteApplication(%s)', profile.name, name); + const catalog = new Catalog(profile.url); + const response = await catalog.deleteApplication(options.project || profile.project, profile.token, name); + const result = filterObject(response, options); + if (options.json) { + return printSuccess(JSON.stringify(result, null, 2), options); + } + return printSuccess(result.message); + } catch (err) { + return handleError(err, options, 'Failed to delete application'); + } + } +} diff --git a/src/commands/stereotype.js b/src/commands/stereotype.js new file mode 100644 index 00000000..c8cfbeb0 --- /dev/null +++ b/src/commands/stereotype.js @@ -0,0 +1,130 @@ +import _ from 'lodash'; +import fs from 'node:fs'; +import debugSetup from 'debug'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { loadProfile } from '../config.js'; +import Catalog from '../client/catalog.js'; +import { + printSuccess, + printError, + printWarning, + filterObject, + parseObject, + LISTTABLEFORMAT, + handleTable, + printExtendedLogs, + getFilteredOutput, + writeOutput, + handleListFailure, + handleError, +} from './utils.js'; + +const debug = debugSetup('cortex:cli'); +dayjs.extend(relativeTime); +export class SaveStereotypeCommand { + constructor(program) { + this.program = program; + } + + async execute(documents, options) { + try { + const profile = await loadProfile(options.profile); + await Promise.all(documents.map(async (skillDefinition) => { + const skillDefStr = fs.readFileSync(skillDefinition); + const skill = parseObject(skillDefStr, options); + debug('%s.executeSaveStereotype(%s)', profile.name, skillDefinition); + const catalog = new Catalog(profile.url); + if (!_.isEmpty(options.k8sResource)) { + const k8sResources = options.k8sResource.map((f) => JSON.stringify(parseObject(fs.readFileSync(f), options))); + if (_.isEmpty(_.get(skill, 'action', []))) { + printError('Stereotype must contain an action to apply kubernetes resources', options, true); + } + if (skill.actions.length > 1) { + printWarning('Applying kubernetes resources to all actions'); + } + skill.actions.map((a) => a.k8sResources = k8sResources); + } + if (options.podspec) { + const paramsStr = fs.readFileSync(options.podspec); + const podSpec = parseObject(paramsStr, options); + if (_.isEmpty(_.get(skill, 'actions', []))) { + printError('Stereotype must contain an action', options, true); + } + skill.actions.map((a) => a.podSpec = podSpec); + } + const response = await catalog.saveStereotype(options.project || profile.project, profile.token, skill); + printSuccess(`Stereotype saved: ${JSON.stringify(response.message)}`, options); + })); + } catch (err) { + handleError(err, options, 'Failed to save skill stereotype'); + } + } +} +export class ListStereotypesCommand { + constructor(program) { + this.program = program; + } + + async execute(options) { + const profile = await loadProfile(options.profile); + debug('%s.executeListStereotypes()', profile.name); + const catalog = new Catalog(profile.url); + try { + const shared = !(options?.noshared ?? false); + const { stereotypes } = await catalog.listStereotypes(options.project || profile.project, profile.token, { shared }, options.filter, options.limit, options.skip, options.sort); + const tableFormat = LISTTABLEFORMAT; + // TODO remove --query on deprecation + if (options.json || options.query) { + return getFilteredOutput(stereotypes, options); + } + printExtendedLogs(stereotypes, options); + return handleTable(tableFormat, _.sortBy(stereotypes, options.sort ? [] : ['name']), (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No stereotypes found'); + } catch (err) { + return handleListFailure(err, {}, 'Skill stereotype'); + } + } +} +export class DescribeStereotypeCommand { + constructor(program) { + this.program = program; + } + + async execute(name, options) { + const profile = await loadProfile(options.profile); + const { + verbose, output, project, + } = options; + debug('%s.executeDescribeStereotype(%s)', profile.name, name); + const catalog = new Catalog(profile.url); + try { + const response = await catalog.describeStereotype(project || profile.project, profile.token, name, verbose, output); + if ((options?.output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); + return writeOutput(response, options); + } catch (err) { + return handleError(err, options, `Failed to describe skill ${name}`); + } + } +} + +export class DeleteStereotypeCommand { + constructor(program) { + this.program = program; + } + + async execute(name, options) { + const profile = await loadProfile(options.profile); + debug('%s.executeDeleteStereotype(%s)', profile.name, name); + const catalog = new Catalog(profile.url); + try { + const response = await catalog.deleteStereotype(options.project || profile.project, profile.token, name); + const result = filterObject(response, options); + if (options.json) { + return printSuccess(JSON.stringify(result, null, 2), options); + } + return printSuccess(result.message); + } catch (err) { + return handleError(err, options, 'delete stereotype failed'); + } + } +} diff --git a/src/commands/utils.js b/src/commands/utils.js index 8c09ccaa..23105cff 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -118,6 +118,8 @@ const deleteFolderRecursive = (filepath) => { console.error(chalk.red(e.message)); } }; + +// TODO replace with handleError, to reduce duplicate code. export const constructError = (error) => { // fallback to text in message or standard error message const errResp = error?.response; @@ -398,7 +400,6 @@ export const handleListFailure = (err, options, type) => { } if (status === 400) { - const optionTableFormat = OPTIONSTABLEFORMAT; printError(`${type} list failed.`, options, false); if (details !== undefined && details !== null) { // TSOA API validation error case @@ -408,7 +409,7 @@ export const handleListFailure = (err, options, type) => { details = transformedResponse; } } - printTable(optionTableFormat, details); + printTable(OPTIONSTABLEFORMAT, details); } else { printError(message, options); } @@ -416,6 +417,7 @@ export const handleListFailure = (err, options, type) => { } return printError(`Failed to list ${type}: ${status} ${message}`, options); }; + export const handleDeleteFailure = (response, options, type) => { if (response.status === 403) { // has dependencies const tableFormat = DEPENDENCYTABLEFORMAT; @@ -427,6 +429,7 @@ export const handleDeleteFailure = (response, options, type) => { return printError(defaultErrorMessage, options); }; + export function readPackageJSON(relPath) { const absPath = fileURLToPath(new URL(relPath, import.meta.url)); return JSON.parse(fs.readFileSync(absPath)); @@ -454,4 +457,41 @@ export function printErrorDetails(response, options, exit = true) { printTable(tableSpec, details); if (exit) printError(''); // Just use this over exit() as tests already stub this call .. } + +// Yet another error handling function, need to rationalize these +export function handleError(error, options, prefix = 'Error') { + // fallback to text in message or standard error message + const errResp = error?.response; + let errorText = errResp?.body; + if (errorText?.trim().length === 0 || error.name === 'RequestError') { + errorText = error.message; + } + let details; + let respCode; + // if JSON was returned, look for either a message or error in it + try { + const resp = errResp ? JSON.parse(errorText) : {}; + respCode = resp.code; + if (resp?.message || resp?.error) errorText = resp?.message || resp?.error; + // eslint-disable-next-line prefer-destructuring + details = resp.details; + } catch (e) { + // Guess it wasn't JSON! + } + // todo make figuring out the status code more consistent? this might be a holdover from request vs got? + const status = errResp?.statusCode || respCode || error?.code || error?.status || ''; + printError(`${prefix}: ${status}, ${errorText}`, undefined, false); + if (details !== undefined && details !== null) { + // TSOA API validation error case + if (!Array.isArray(details)) { + const transformedResponse = transformTSOAValidation(details); + if (transformedResponse !== null) { + details = transformedResponse; + } + } + printTable(OPTIONSTABLEFORMAT, details); + } + printError(''); // Just exit +} + export { deleteFolderRecursive as deleteFile }; diff --git a/src/features.js b/src/features.js index 0b060b2b..936906af 100644 --- a/src/features.js +++ b/src/features.js @@ -36,9 +36,9 @@ export const FLAG_SUBCOMMANDS = { // default commands - always enabled. These should be grouped into 'ga' // features, but those are TBD, so existing commands count as default. all: [ - 'actions', 'agents', 'assessments', 'campaigns', 'configure', 'connections', 'content', 'deploy', + 'actions', 'agents', 'applications', 'assessments', 'campaigns', 'configure', 'connections', 'content', 'deploy', 'docker', 'experiments', 'missions', 'models', 'projects', 'roles', 'secrets', 'sessions', - 'skills', 'tasks', 'types', 'users', 'workspaces', + 'skills', 'stereotypes', 'tasks', 'types', 'users', 'workspaces', ], }, }; From 0630b69452134f570e031ce8b5028aa980df9643 Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Thu, 30 Nov 2023 14:29:37 +0000 Subject: [PATCH 836/864] FAB 6264 validate empty args (#724) * Raise error for empty command arguments * check for empty args for all describe/delete commands * import missing fn * updated function to print empty argument name * fixed es lint errors * added unit tests * updated unit tests setup and teardown * fixed unit tests validate thrown error * handle multiple required args case --- bin/cortex-actions.js | 3 ++ bin/cortex-agents.js | 11 ++++++++ bin/cortex-assessments.js | 7 +++++ bin/cortex-campaigns.js | 6 ++++ bin/cortex-connections.js | 3 ++ bin/cortex-experiments.js | 13 +++++++++ bin/cortex-missions.js | 8 +++++- bin/cortex-models.js | 6 ++++ bin/cortex-pipelines-repos.js | 9 ++++-- bin/cortex-pipelines.js | 6 +++- bin/cortex-projects.js | 3 ++ bin/cortex-secrets.js | 3 ++ bin/cortex-sessions.js | 3 ++ bin/cortex-skills.js | 7 +++++ bin/cortex-tasks.js | 6 ++++ bin/cortex-types.js | 3 ++ bin/cortex-users.js | 5 ++++ src/commands/utils.js | 19 +++++++++++++ test/testUtils.js | 53 ++++++++++++++++++++++++++++++++++- 19 files changed, 168 insertions(+), 6 deletions(-) diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index a4adf938..9ee271ae 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -9,6 +9,7 @@ import { import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -50,6 +51,7 @@ export function create() { .option('-d, --download', 'Download code binary in response') .action(withCompatibilityCheck((actionName, options) => { try { + checkForEmptyArgs({ actionName }); new DescribeActionCommand(program).execute(actionName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -65,6 +67,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((actionName, options) => { try { + checkForEmptyArgs({ actionName }); new DeleteActionCommand(program).execute(actionName, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 45b6da2f..7eefb18c 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -27,6 +27,7 @@ import { UndeployAgentCommand, CancelActivationCommand, } from '../src/commands/agents.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -79,6 +80,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((agentNames, options) => { try { + checkForEmptyArgs({ agentNames }); new DeployAgentCommand(program).execute(agentNames, options); } catch (err) { console.error(chalk.red(err.message)); @@ -101,6 +103,7 @@ export function create() { .option('--verbose', 'Verbose output', false) .action(withCompatibilityCheck((agentName, options) => { try { + checkForEmptyArgs({ agentName }); new DescribeAgentCommand(program).execute(agentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -121,6 +124,7 @@ export function create() { .option('--sync', 'Invoke the agent synchronously', false) .action(withCompatibilityCheck((agentName, serviceName, options) => { try { + checkForEmptyArgs({ agentName, serviceName }); new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -136,6 +140,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((agentName, options) => { try { + checkForEmptyArgs({ agentName }); new DeleteAgentCommand(program).execute(agentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -150,6 +155,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((agentNames, options) => { try { + checkForEmptyArgs({ agentNames }); new UndeployAgentCommand(program).execute(agentNames, options); } catch (err) { console.error(chalk.red(err.message)); @@ -169,6 +175,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((activationId, options) => { try { + checkForEmptyArgs({ activationId }); new GetActivationCommand(program).execute(activationId, options); } catch (err) { console.error(chalk.red(err.message)); @@ -185,6 +192,7 @@ export function create() { .option('--inFlight [boolean]', 'Leave inflight jobs running', false) .action(withCompatibilityCheck((activationId, options) => { try { + checkForEmptyArgs({ activationId }); new CancelActivationCommand(program).execute(activationId, options); } catch (err) { console.error(chalk.red(err.message)); @@ -232,6 +240,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((agentName, options) => { try { + checkForEmptyArgs({ agentName }); new ListServicesCommand(program).execute(agentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -269,6 +278,7 @@ export function create() { .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((agentName, options) => { try { + checkForEmptyArgs({ agentName }); new ListAgentSnapshotsCommand(program).execute(agentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -285,6 +295,7 @@ export function create() { .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') .action(withCompatibilityCheck((snapshotId, options) => { try { + checkForEmptyArgs({ snapshotId }); new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index bbb0e4cc..edcacaf9 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -24,6 +24,7 @@ import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -140,6 +141,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((assessmentName, options) => { try { + checkForEmptyArgs({ assessmentName }); new DescribeAssessmentCommand(program).execute(assessmentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -153,6 +155,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((assessmentName, options) => { try { + checkForEmptyArgs({ assessmentName }); new DeleteAssessmentCommand(program).execute(assessmentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -166,6 +169,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((assessmentName, options) => { try { + checkForEmptyArgs({ assessmentName }); new RunAssessmentCommand(program).execute(assessmentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -184,6 +188,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((assessmentName, options) => { try { + checkForEmptyArgs({ assessmentName }); new ListAssessmentReportCommand(program).execute(assessmentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -200,6 +205,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((assessmentName, reportId, options) => { try { + checkForEmptyArgs({ assessmentName, reportId }); new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); } catch (err) { console.error(chalk.red(err.message)); @@ -216,6 +222,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((assessmentName, reportId, options) => { try { + checkForEmptyArgs({ assessmentName, reportId }); new ExportAssessmentReportCommand(program).execute(assessmentName, reportId, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index c0b4e419..2a612917 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -9,6 +9,7 @@ import { import { ListCampaignsCommand, DescribeCampaignCommand, ExportCampaignCommand, ImportCampaignCommand, DeployCampaignCommand, UndeployCampaignCommand, } from '../src/commands/campaigns.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -49,6 +50,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((campaignName, options) => { try { + checkForEmptyArgs({ campaignName }); new DescribeCampaignCommand(program).execute(campaignName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -65,6 +67,7 @@ export function create() { .option('--o <output>', 'Export file name') .action(withCompatibilityCheck(async (campaignName, options) => { try { + checkForEmptyArgs({ campaignName }); await new ExportCampaignCommand(program).execute(campaignName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -81,6 +84,7 @@ export function create() { .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) .action(withCompatibilityCheck((campaignName, options) => { try { + checkForEmptyArgs({ campaignName }); new ImportCampaignCommand(program).execute(campaignName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -95,6 +99,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, options) => { try { + checkForEmptyArgs({ campaignName }); new DeployCampaignCommand(program).execute(campaignName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -109,6 +114,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, options) => { try { + checkForEmptyArgs({ campaignName }); new UndeployCampaignCommand(program).execute(campaignName, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index d786bf79..258be252 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -9,6 +9,7 @@ import { import { ListConnections, SaveConnectionCommand, DescribeConnectionCommand, ListConnectionsTypes, DeleteConnectionCommand, } from '../src/commands/connections.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -64,6 +65,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((connectionName, options) => { try { + checkForEmptyArgs({ connectionName }); new DescribeConnectionCommand(program).execute(connectionName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -99,6 +101,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((connectionName, options) => { try { + checkForEmptyArgs({ connectionName }); new DeleteConnectionCommand(program).execute(connectionName, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 59b13911..81601824 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -23,6 +23,7 @@ import { SaveExperimentCommand, UploadArtifactCommand, } from '../src/commands/experiments.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -64,6 +65,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((experimentName, options) => { try { + checkForEmptyArgs({ experimentName }); new DescribeExperimentCommand(program).execute(experimentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -79,6 +81,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((experimentName, options) => { try { + checkForEmptyArgs({ experimentName }); new DeleteExperimentCommand(program).execute(experimentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -100,6 +103,7 @@ export function create() { .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((experimentName, options) => { try { + checkForEmptyArgs({ experimentName }); new ListRuns(program).execute(experimentName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -118,6 +122,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((experimentName, runId, options) => { try { + checkForEmptyArgs({ experimentName, runId }); new DescribeRunCommand(program).execute(experimentName, runId, options); } catch (err) { console.error(chalk.red(err.message)); @@ -133,6 +138,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, options) => { try { + checkForEmptyArgs({ experimentName, runId }); new DeleteRunCommand(program).execute(experimentName, runId, options); } catch (err) { console.error(chalk.red(err.message)); @@ -148,6 +154,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { try { + checkForEmptyArgs({ experimentName, runId, artifactName }); new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -197,6 +204,12 @@ export function create() { .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) .action(withCompatibilityCheck((experimentName, runId, filePath, artifactKey, options) => { try { + checkForEmptyArgs({ + experimentName, + runId, + filePath, + artifactKey, + }); new UploadArtifactCommand(program).execute(experimentName, runId, filePath, artifactKey, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 5e2818e8..35b4de64 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -3,7 +3,7 @@ import chalk from 'chalk'; import esMain from 'es-main'; import fs from 'node:fs'; import { Command } from 'commander'; -import { parseObject, printError } from '../src/commands/utils.js'; +import { checkForEmptyArgs, parseObject, printError } from '../src/commands/utils.js'; import { withCompatibilityCheck } from '../src/compatibility.js'; import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, @@ -35,6 +35,7 @@ export function create() { .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((campaignName, options) => { try { + checkForEmptyArgs({ campaignName }); new ListMissionsCommand(program).execute(campaignName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -50,6 +51,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { + checkForEmptyArgs({ campaignName, missionName }); new DescribeMissionCommand(program).execute(campaignName, missionName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -64,6 +66,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { + checkForEmptyArgs({ campaignName, missionName }); new DeployMissionCommand(program).execute(campaignName, missionName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -79,6 +82,7 @@ export function create() { .option('--params <params>', 'JSON params to send to the action') .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') .action(withCompatibilityCheck((campaignName, missionName, options) => { + checkForEmptyArgs({ campaignName, missionName }); try { let params = {}; if (options.params) { @@ -120,6 +124,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((campaignName, missionName, options) => { try { + checkForEmptyArgs({ campaignName, missionName }); new UndeployMissionCommand(program).execute(campaignName, missionName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -134,6 +139,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((activationId, options) => { try { + checkForEmptyArgs({ activationId }); new DownloadContent(program).execute(`mission_runtime/${activationId}/status.chk`, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-models.js b/bin/cortex-models.js index 8b19d005..c26d638f 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -9,6 +9,7 @@ import { import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -52,6 +53,7 @@ export function create() { .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((modelName, options) => { try { + checkForEmptyArgs({ modelName }); new DescribeModelCommand(program).execute(modelName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -67,6 +69,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((modelName, options) => { try { + checkForEmptyArgs({ modelName }); new DeleteModelCommand(program).execute(modelName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -100,6 +103,7 @@ export function create() { .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .action(withCompatibilityCheck((modelName, options) => { try { + checkForEmptyArgs({ modelName }); new UpdateModelStatusCommand(program).execute(modelName, options, 'publish'); } catch (err) { console.error(chalk.red(err.message)); @@ -117,6 +121,7 @@ export function create() { .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .action(withCompatibilityCheck((modelName, options) => { try { + checkForEmptyArgs({ modelName }); new UpdateModelStatusCommand(program).execute(modelName, options, 'unpublish'); } catch (err) { console.error(chalk.red(err.message)); @@ -138,6 +143,7 @@ export function create() { .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) .action(withCompatibilityCheck((modelName, options) => { try { + checkForEmptyArgs({ modelName }); new ListModelRunsCommand(program).execute(modelName, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js index d14e2da6..f73ee82a 100644 --- a/bin/cortex-pipelines-repos.js +++ b/bin/cortex-pipelines-repos.js @@ -12,7 +12,7 @@ import { import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; -import { printError } from '../src/commands/utils.js'; +import { printError, checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const repos = new Command(); @@ -53,6 +53,7 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .action(withCompatibilityCheck((pipelineRepoName, options) => { try { + checkForEmptyArgs({ pipelineRepoName }); return new DescribePipelineRepoCommand(repos).execute(pipelineRepoName, options); } catch (err) { return printError(err.message); @@ -67,9 +68,10 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((actionName, options) => { + .action(withCompatibilityCheck((pipelineRepoName, options) => { try { - return new DeletePipelineRepoCommand(repos).execute(actionName, options); + checkForEmptyArgs({ pipelineRepoName }); + return new DeletePipelineRepoCommand(repos).execute(pipelineRepoName, options); } catch (err) { return printError(err.message); } @@ -108,6 +110,7 @@ export function create() { .option('--skill <skillName>', 'Name of the underlying Skill in the same Project to use for running the Pipeline') .action(withCompatibilityCheck((pipelineRepoName, options) => { try { + checkForEmptyArgs({ pipelineRepoName }); return new UpdateRepoPipelinesCommand(repos).execute(pipelineRepoName, options); } catch (err) { return printError(err.message); diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js index 9c5ec3e9..575513c5 100644 --- a/bin/cortex-pipelines.js +++ b/bin/cortex-pipelines.js @@ -17,7 +17,7 @@ import { DEFAULT_LIST_SORT_PARAMS, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; -import { printError } from '../src/commands/utils.js'; +import { printError, checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const pipelines = new Command(); @@ -60,6 +60,7 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { try { + checkForEmptyArgs({ pipelineName, gitRepoName }); return new DescribePipelineCommand(pipelines).execute(pipelineName, gitRepoName, options); } catch (err) { return printError(err.message); @@ -80,6 +81,7 @@ export function create() { .option('--block <block>', 'Block name to run a specific block') .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { try { + checkForEmptyArgs({ pipelineName, gitRepoName }); return new RunPipelineCommand(pipelines).execute(pipelineName, gitRepoName, options); } catch (err) { return printError(err.message); @@ -98,6 +100,7 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .action(withCompatibilityCheck((runId, options) => { try { + checkForEmptyArgs({ runId }); return new DescribePipelineRunCommand(pipelines).execute(runId, options); } catch (err) { return printError(err.message); @@ -116,6 +119,7 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { try { + checkForEmptyArgs({ pipelineName, gitRepoName }); return new ListPipelineRunsCommand(pipelines).execute(pipelineName, gitRepoName, options); } catch (err) { return printError(err.message); diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index ad3becb0..26428fad 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -10,6 +10,7 @@ import { import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -68,6 +69,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck((projectName, options) => { try { + checkForEmptyArgs({ projectName }); return new DescribeProjectCommand(program).execute(projectName, options); } catch (err) { return console.error(chalk.red(err.message)); @@ -83,6 +85,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((projectName, options) => { try { + checkForEmptyArgs({ projectName }); return new DeleteProjectCommand(program).execute(projectName, options); } catch (err) { return console.error(chalk.red(err.message)); diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index a432ae58..24e4f558 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -8,6 +8,7 @@ import { ListSecretsCommand, ReadSecretsCommand, WriteSecretsCommand, DeleteSecretCommand, } from '../src/commands/secrets.js'; import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -44,6 +45,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((keyName, options) => { try { + checkForEmptyArgs({ keyName }); return new ReadSecretsCommand(program).execute(keyName, options); } catch (err) { return console.error(chalk.red(err.message)); @@ -76,6 +78,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((keyName, options) => { try { + checkForEmptyArgs({ keyName }); return new DeleteSecretCommand(program).execute(keyName, options); } catch (err) { return console.error(chalk.red(err.message)); diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index ddf5b4b8..bf62dc20 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -7,6 +7,7 @@ import { DeleteSessionCommand, SaveSessionCommand, DescribeSessionCommand, ListSessionsCommand, } from '../src/commands/sessions.js'; import { DEFAULT_LIST_LIMIT_COUNT, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -46,6 +47,7 @@ export function create() { .option('--verbose', 'Verbose output') .action(withCompatibilityCheck((sessionName, options) => { try { + checkForEmptyArgs({ sessionName }); new DescribeSessionCommand(program).execute(sessionName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -61,6 +63,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck((sessionName, options) => { try { + checkForEmptyArgs({ sessionName }); new DeleteSessionCommand(program).execute(sessionName, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 7562c990..4e069eb1 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -22,6 +22,7 @@ import { SkillLogsCommand, UndeploySkillCommand, } from '../src/commands/skills.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -36,6 +37,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (skillNames, options) => { try { + checkForEmptyArgs({ skillNames }); await new DeploySkillCommand(program).execute(skillNames, options); } catch (err) { console.error(chalk.red(err.message)); @@ -57,6 +59,7 @@ export function create() { .option('--verbose', 'Verbose output', false) .action(withCompatibilityCheck(async (skillName, options) => { try { + checkForEmptyArgs({ skillName }); await new DescribeSkillCommand(program).execute(skillName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -75,6 +78,7 @@ export function create() { .option('--sync', 'Invoke the skill synchronously', false) .action(withCompatibilityCheck(async (skillName, inputName, options) => { try { + checkForEmptyArgs({ skillName, inputName }); await new InvokeSkillCommand(program).execute(skillName, inputName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -115,6 +119,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (skillName, options) => { try { + checkForEmptyArgs({ skillName }); await new DeleteSkillCommand(program).execute(skillName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -149,6 +154,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (skillNames, options) => { try { + checkForEmptyArgs({ skillNames }); return await new UndeploySkillCommand(program).execute(skillNames, options); } catch (err) { return console.error(chalk.red(err.message)); @@ -166,6 +172,7 @@ export function create() { // .option('--type [type]', 'The type of action logs to fetch [skill|task]') .action(withCompatibilityCheck(async (skillName, actionName, options) => { try { + checkForEmptyArgs({ skillName, actionName }); return await new SkillLogsCommand(program).execute(skillName, actionName, options); } catch (err) { return console.error(chalk.red(err.message)); diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index cb4ced03..b082d9a3 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -8,6 +8,7 @@ import { import { DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SKIP_COUNT, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, } from '../src/constants.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -56,6 +57,7 @@ export function create() { // .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') .action(withCompatibilityCheck((taskName, options) => { try { + checkForEmptyArgs({ taskName }); new DescribeTaskCommand(program).execute(taskName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -72,6 +74,7 @@ export function create() { // .option('--type [type]', 'The type of action logs to fetch [skill|task]') .action(withCompatibilityCheck((taskName, options) => { try { + checkForEmptyArgs({ taskName }); new TaskLogsCommand(program).execute(taskName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -86,6 +89,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (taskName, options) => { try { + checkForEmptyArgs({ taskName }); await new TaskDeleteCommand(program).execute(taskName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -100,6 +104,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (taskName, options) => { try { + checkForEmptyArgs({ taskName }); await new TaskPauseCommand(program).execute(taskName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -114,6 +119,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (taskName, options) => { try { + checkForEmptyArgs({ taskName }); await new TaskResumeCommand(program).execute(taskName, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-types.js b/bin/cortex-types.js index b663a3bc..ae835482 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -10,6 +10,7 @@ import { import { SaveTypeCommand, ListTypesCommand, DescribeTypeCommand, DeleteTypeCommand, } from '../src/commands/types.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -65,6 +66,7 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(withCompatibilityCheck(async (typeName, options) => { try { + checkForEmptyArgs({ typeName }); await new DescribeTypeCommand(program).execute(typeName, options); } catch (err) { console.error(chalk.red(err.message)); @@ -80,6 +82,7 @@ export function create() { .option('--project <project>', 'The project to use') .action(withCompatibilityCheck(async (typeName, options) => { try { + checkForEmptyArgs({ typeName }); await new DeleteTypeCommand(program).execute(typeName, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 7723de07..8918fd9b 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -7,6 +7,7 @@ import { UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, UserCreateCommand, UserListCommand, UserDeleteCommand, UserResetPATCommand, UserGetPATCommand, } from '../src/commands/users.js'; import { LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT } from '../src/constants.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -40,6 +41,7 @@ export function create() { .option('--deny', 'Explicit deny of action(s)') .action(withCompatibilityCheck((user, options) => { try { + checkForEmptyArgs({ user }); new UserGrantCommand(program).execute(user, options); } catch (err) { console.error(chalk.red(err.message)); @@ -54,6 +56,7 @@ export function create() { .option('--delete', 'Unassign users from project') .action(withCompatibilityCheck((project, options) => { try { + checkForEmptyArgs({ project }); new UserProjectAssignCommand(program).execute(project, options); } catch (err) { console.error(chalk.red(err.message)); @@ -66,6 +69,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((user, options) => { try { + checkForEmptyArgs({ user }); new UserDeleteCommand(program).execute(user, options); } catch (err) { console.error(chalk.red(err.message)); @@ -78,6 +82,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .action(withCompatibilityCheck((user, options) => { try { + checkForEmptyArgs({ user }); new UserCreateCommand(program).execute(user, options); } catch (err) { console.error(chalk.red(err.message)); diff --git a/src/commands/utils.js b/src/commands/utils.js index 23105cff..328b7257 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -458,6 +458,25 @@ export function printErrorDetails(response, options, exit = true) { if (exit) printError(''); // Just use this over exit() as tests already stub this call .. } +function checkForEmptyString(key, value) { + if (!value.trim()) { + printError(`error: <${key}> cannot be empty.`); + process.exit(1); // Exit with an error code + } + } + +export function checkForEmptyArgs(args) { + Object.keys(args).forEach((key) => { + if (typeof args[key] === 'object') { + args[key].forEach((val) => { + checkForEmptyString(key, val); + }); + } else { + checkForEmptyString(key, args[key]); + } + }); + } + // Yet another error handling function, need to rationalize these export function handleError(error, options, prefix = 'Error') { // fallback to text in message or standard error message diff --git a/test/testUtils.js b/test/testUtils.js index 912166ec..4758f147 100644 --- a/test/testUtils.js +++ b/test/testUtils.js @@ -3,7 +3,11 @@ import { expect } from 'chai'; import mockedEnv from 'mocked-env'; import sinon from 'sinon'; import { - handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, + handleTable, + printExtendedLogs, + handleListFailure, + handleDeleteFailure, + checkForEmptyArgs, } from '../src/commands/utils.js'; import { stripAnsi } from './utils.js'; @@ -227,3 +231,50 @@ describe('Test handleDeleteFailure', () => { expect(process.exit.calledWith(1)).to.be.true; }); }); + +describe('checkForEmptyArgs', () => { + let printSpy; + let errorSpy; + before(() => { + restore = mockedEnv({}); + }); + beforeEach(() => { + printSpy = sinon.spy(console, 'log'); + errorSpy = sinon.spy(console, 'error'); + sinon.stub(process, 'exit'); + }); + afterEach(() => { + printSpy.restore(); + errorSpy.restore(); + process.exit.restore(); + }); + after(() => { + restore(); + }); + it('should throw an error for empty argument', () => { + const args = { + arg1: 'value1', + arg2: '', + arg3: 'value3', + }; + + const expectedErrorMessage = 'error: <arg2> cannot be empty.'; + + try { + checkForEmptyArgs(args); + } catch (error) { + // Check if the error message matches the expected error message + expect(error.message).to.equal(expectedErrorMessage); + } + }); + + it('should not throw an error when arguments are not empty', () => { + const args = { + arg1: 'value1', + arg2: 'value2', + arg3: 'value3', + }; + + expect(() => checkForEmptyArgs(args)).to.not.throw(); + }); + }); From 0f76bc51db6f8ed412a3728857e9b13d05119e79 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Mon, 4 Dec 2023 11:07:54 -0600 Subject: [PATCH 837/864] Update error handling to handle HTML API response (ParseError) and expand unit tests for feature flagging (#727) * Update error handling to handle HTML response (parse error), and expand unit tests for feature flagginb subcommand * Add unit test verifying that the HTML response is handled and the error is shown to the user * Try upgrading npm to avoid ROOT permissoin error - see https://stackoverflow.com/questions/70952903/npm-error-eacces-permission-denied-scandir * Change latest to 9.9.2 for npm version to avoid Permissions issue. NPM 10 is not compatible with Node 16 * Comment out always-auth npm option - it was removed in npm 7 * Print size of coverage folder to ensure that the folder exists -not sure why its not being uploaded to GoCD * Fix typo in Pipeline Repo filter * Add additional debug logging - figured out its failing to upload the 'coverage/tmp/coverage-<SHA>.json' w/ FileNotFound/PermissionDenied error * Remove debug printing, add chmod to fix artifact upload, and include comments --- build.sh | 15 +++++++-- src/client/pipelineRepositories.js | 2 +- src/commands/pipelines.js | 2 +- src/commands/utils.js | 16 ++++++--- test/features.js | 54 ++++++++++++++++++++++++------ test/pipelines.js | 18 ++++++++++ 6 files changed, 87 insertions(+), 20 deletions(-) diff --git a/build.sh b/build.sh index 97339554..9b5bf0dc 100755 --- a/build.sh +++ b/build.sh @@ -30,6 +30,10 @@ function docker_build(){ # libsecrets is needed for keytar node-gyp build apt-get update apt-get install -y apt-utils libsecret-1-dev + # Upgrade to NPM 9 to avoid permissions error when running npm as root. + # Must either be `<7,>8`, but the latest version of npm is NOT + # supported with Node 16 (node runtime for CLI). See: https://stackoverflow.com/questions/70952903/npm-error-eacces-permission-denied-scandir + npm install -g npm@9.9.2 npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm rebuild npm test @@ -40,12 +44,19 @@ function docker_build(){ # TODO this should maybe be done as part of the gocd pipeline?.. or maybe get in the habit of pushing alpha versions to npm just like we do for cortex-python?.. npm publish --registry=https://registry.npmjs.org/ elif [[ ${BRANCH} = "develop" ]]; then - npm config set always-auth true + echo "skipping plublish to dev npm registry" # npm publish --tag "${BRANCH}" --registry=https://cognitivescale.jfrog.io/artifactory/api/npm/npm-local/ fi npm pack . mv cortex-cli-*.tgz cortex-cli.tgz - + # NOTE: This script running in a container on the gocd-agent. The coverage + # report belongs to the (root) user in the container. The pipeline uploads + # artifacts after the container exists, at which point the script is + # running as a different user. For some reason, one of the files in the + # coverage report (coverage/tmp/coverage-<SHA>.json), has 700 permissions, + # so the pipeline would fail to upload the artifact. Give 755 permissions to + # allow nested folders to be executable and to allow for artifact upload. + chmod -R 755 coverage/ } ## MAIN diff --git a/src/client/pipelineRepositories.js b/src/client/pipelineRepositories.js index 91f4ac71..192f61da 100644 --- a/src/client/pipelineRepositories.js +++ b/src/client/pipelineRepositories.js @@ -16,7 +16,7 @@ export default class PipelineRepos { const endpoint = `${this.endpoint(projectId)}`; debug('listPipelineRepo() => %s', endpoint); const query = {}; - if (filter) query.filer = filter; + if (filter) query.filter = filter; if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js index a8b09cd1..e5ac75ce 100644 --- a/src/commands/pipelines.js +++ b/src/commands/pipelines.js @@ -33,7 +33,7 @@ export const ListPipelineCommand = class { debug('%s.executeListPipelines()', profile.name); const pipelines = new Pipelines(profile.url); try { - const response = await pipelines.listPipelines(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort); + const response = await pipelines.listPipelines(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort); if (response.success) { const result = response.pipelines; if (options.json) { diff --git a/src/commands/utils.js b/src/commands/utils.js index 328b7257..8f156c74 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -121,21 +121,24 @@ const deleteFolderRecursive = (filepath) => { // TODO replace with handleError, to reduce duplicate code. export const constructError = (error) => { + let details; + let respCode; // fallback to text in message or standard error message const errResp = error?.response; let errorText = errResp?.body; if (errorText?.trim().length === 0 || error.name === 'RequestError') { errorText = error.message; + } else if (error.name === 'ParseError' || error.code === 'ERR_BODY_PARSE_FAILURE') { + errorText = 'Unable to parse response from server. Try running again with "--debug" for more details.'; + details = error.message; } - let details; - let respCode; // if JSON was returned, look for either a message or error in it try { const resp = errResp ? JSON.parse(errorText) : {}; respCode = resp.code; if (resp?.message || resp?.error) errorText = resp?.message || resp?.error; // eslint-disable-next-line prefer-destructuring - details = resp.details; + details = details || resp.details; } catch (e) { // Guess it wasn't JSON! } @@ -479,14 +482,17 @@ export function checkForEmptyArgs(args) { // Yet another error handling function, need to rationalize these export function handleError(error, options, prefix = 'Error') { + let details; + let respCode; // fallback to text in message or standard error message const errResp = error?.response; let errorText = errResp?.body; if (errorText?.trim().length === 0 || error.name === 'RequestError') { errorText = error.message; + } else if (error.name === 'ParseError' || error.code === 'ERR_BODY_PARSE_FAILURE') { + errorText = 'Unable to parse response from server. Try running again with "--debug" for more details.'; + details = error.message; } - let details; - let respCode; // if JSON was returned, look for either a message or error in it try { const resp = errResp ? JSON.parse(errorText) : {}; diff --git a/test/features.js b/test/features.js index 41ab5851..bcd6f642 100644 --- a/test/features.js +++ b/test/features.js @@ -1,6 +1,7 @@ import chai from 'chai'; import chaiAsPromised from 'chai-as-promised'; import nock from 'nock'; +import mockedEnv from 'mocked-env'; import npmFetch from 'npm-registry-fetch'; import sinon from 'sinon'; import { FLAG_SUBCOMMANDS, FeatureController } from '../src/features.js'; @@ -11,6 +12,7 @@ chai.use(chaiAsPromised); const pkg = readPackageJSON('../../package.json'); let sandbox; +let restoreEnv; describe('Feature Flags', () => { const profile = { url: 'http://example.com', @@ -27,12 +29,14 @@ describe('Feature Flags', () => { nock(profile.url) .get('/fabric/v4/compatibility/applications/cortex-cli') .reply(200, () => ({ semver: pkg.version })); + restoreEnv = mockedEnv({}); }); after(() => { sandbox.restore(); nock.cleanAll(); nock.enableNetConnect(); + restoreEnv(); }); const previewDisabledFlags = { @@ -54,38 +58,66 @@ describe('Feature Flags', () => { const individualPreviewEnabledFlags = JSON.parse(JSON.stringify(previewDisabledFlags)); individualPreviewEnabledFlags.preview.features['data-fabric-pipelines'].enabled = true; + const defaultSubcommands = FLAG_SUBCOMMANDS.default.all; + const defaultAndPreviewSubcommands = [...FLAG_SUBCOMMANDS.default.all, ...FLAG_SUBCOMMANDS.preview['data-fabric-pipelines']]; + chai.expect(defaultSubcommands.length).to.not.equal(defaultAndPreviewSubcommands.length); + describe('getSupportedSubcommands', () => { it('displays default subcommands if the server does not respond with feature flags', () => { delete profile.featureFlags; // explicitly remove feature flags for testing purposes const controller = new FeatureController(profile); const subcommands = controller.getSupportedSubCommands(); - const expected = FLAG_SUBCOMMANDS.default.all; - chai.expect(subcommands).to.include.members(expected); + chai.expect(subcommands).to.eql(defaultSubcommands); }); - it('displays default subcommands by default', () => { + it('displays default subcommands when preview features are disabled by server', () => { + delete process.env.PREVIEW_FEATURES_ENABLED; profile.featureFlags = previewDisabledFlags; // assign feature flags for testing purposes const controller = new FeatureController(profile); const subcommands = controller.getSupportedSubCommands(); - const expected = FLAG_SUBCOMMANDS.default.all; - chai.expect(subcommands).to.include.members(expected); + chai.expect(subcommands).to.eql(defaultSubcommands); + }); + + it('displays preview subcommands if PREVIEW_FEATURES_ENABLED=1 and Preview Flags are DISABLED by server', () => { + process.env.PREVIEW_FEATURES_ENABLED = '1'; + profile.featureFlags = previewDisabledFlags; // assign feature flags for testing purposes + const controller = new FeatureController(profile); + const subcommands = controller.getSupportedSubCommands(); + chai.expect(subcommands).to.eql(defaultAndPreviewSubcommands); + }); + + it('displays default and preview subcommands when PREVIEW_FEATURES_ENABLED=1 and all preview flags are enabled', () => { + process.env.PREVIEW_FEATURES_ENABLED = '1'; + profile.featureFlags = allPreviewEnabledFlags; // assign feature flags for testing purposes + const controller = new FeatureController(profile); + const subcommands = controller.getSupportedSubCommands(); + chai.expect(subcommands).to.eql(defaultAndPreviewSubcommands); + }); + + it('displays default and preview subcommands when PREVIEW_FEATURES_ENABLED=1 and individual preview flags are enabled', () => { + process.env.PREVIEW_FEATURES_ENABLED = '1'; + profile.featureFlags = individualPreviewEnabledFlags; // assign feature flags for testing purposes + console.log(JSON.stringify(profile.featureFlags)); + const controller = new FeatureController(profile); + const subcommands = controller.getSupportedSubCommands(); + chai.expect(subcommands).to.eql(defaultAndPreviewSubcommands); }); - it('displays default and preview subcommands when all Preview Features all enabled', () => { + it('displays default and preview subcommands when PREVIEW_FEATURES_ENABLED is not set and and all preview flags are enabled', () => { + delete process.env.PREVIEW_FEATURES_ENABLED; profile.featureFlags = allPreviewEnabledFlags; // assign feature flags for testing purposes const controller = new FeatureController(profile); const subcommands = controller.getSupportedSubCommands(); - const expected = [...FLAG_SUBCOMMANDS.default.all, ...FLAG_SUBCOMMANDS.preview['data-fabric-pipelines']]; - chai.expect(subcommands).to.include.members(expected); + chai.expect(subcommands).to.eql(defaultAndPreviewSubcommands); }); - it('displays default and preview subcommands when individual Preview Features are enabled', () => { + it('displays default and preview subcommands when PREVIEW_FEATURES_ENABLED is not set and individual preview flags are enabled', () => { + delete process.env.PREVIEW_FEATURES_ENABLED; profile.featureFlags = individualPreviewEnabledFlags; // assign feature flags for testing purposes console.log(JSON.stringify(profile.featureFlags)); const controller = new FeatureController(profile); const subcommands = controller.getSupportedSubCommands(); - const expected = [...FLAG_SUBCOMMANDS.default.all, ...FLAG_SUBCOMMANDS.preview['data-fabric-pipelines']]; - chai.expect(subcommands).to.include.members(expected); + chai.expect(subcommands).to.eql(defaultAndPreviewSubcommands); }); }); }); diff --git a/test/pipelines.js b/test/pipelines.js index a8628652..5cbad6a8 100644 --- a/test/pipelines.js +++ b/test/pipelines.js @@ -47,6 +47,24 @@ describe('Pipelines', () => { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } + describe('List Pipelines as an unsupported preview feature', () => { + it('should print that the response was unintelligable', async () => { + const response = '<html></html>'; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines/).reply(200, response, { 'content-type': 'text/html' }); + try { + await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT]); + chai.expect(0).to.equal(1, 'Failure expected!'); // because 'EXIT' signal is mocked with Error + } catch { + const output = getPrintedLines(); + const errs = getErrorLines(); + // eslint-disable-next-line no-unused-expressions + chai.expect(output.join('')).to.be.empty; + chai.expect(errs.join('')).to.contain('Unable to parse response from server. Try running again with "--debug" for more details.'); + nock.isDone(); + } + }); + }); + describe('Pipeline', () => { it('lists pipelines - empty', async () => { const response = { success: true, pipelines: [] }; From 93475c0f1b5442a7d19f10352fa3c24cd00daed4 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Mon, 4 Dec 2023 15:01:23 -0600 Subject: [PATCH 838/864] Print top level message & details from Pipeline Update Report (#726) * Add alternative method for printing Pipelien Update Report - always include message & details, wrap words, and use color * Update Table format for Pipeline Update Report to use a cross-table * Remove inline print option * Refactor Pipelines Update to make cross-table creation more reusable, and unit tests. Slight reorg of Pipeline Repo tests * Update PIpeline Repo Update tests to verify that the table & message is printed * Fix unit tests with cross tables * Remove comment * Skip test that varies in output between GoCD PIpeline and local environment - likely dependent on env or system libraries --- src/commands/pipelineRepositories.js | 122 +++--- src/commands/utils.js | 84 ++++- test/pipelineRepositories.js | 531 ++++++++++++++++++--------- test/testUtils.js | 133 +++++++ 4 files changed, 618 insertions(+), 252 deletions(-) diff --git a/src/commands/pipelineRepositories.js b/src/commands/pipelineRepositories.js index 0bec0bec..2b27a1bf 100644 --- a/src/commands/pipelineRepositories.js +++ b/src/commands/pipelineRepositories.js @@ -5,7 +5,7 @@ import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Pipelines from '../client/pipelineRepositories.js'; import { - fileExists, printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, + fileExists, printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, printCrossTable, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -132,74 +132,66 @@ export const UpdateRepoPipelinesCommand = class { const repos = new Pipelines(profile.url); try { const response = await repos.updateRepoPipelines(options.project || profile.project, profile.token, pipelineRepoName, options.skill); - if (response.success) { - const result = response.updateReport; + // Check for 'updateReport' property + if (response.updateReport) { + const { message, updateReport, success } = response; if (options.json) { - return getFilteredOutput(result, options); - } - const noChangesMade = (result.added.length === 0 - && result.deleted.length === 0 - && result.updated.length === 0 - && result.failed.add.length === 0 - && result.failed.delete.length === 0 - && result.failed.update.length === 0); - if (noChangesMade) { - return printSuccess('Pipelines up to date! No changes made.'); - } - - const tableSpec = [ - { column: 'Added', field: 'added', width: 15 }, - { column: 'Updated', field: 'updated', width: 15 }, - { column: 'Deleted', field: 'deleted', width: 15 }, - { column: 'Failed to Add', field: 'failedToAdd', width: 20 }, - { column: 'Failed to Update', field: 'failedToUpdate', width: 20 }, - { column: 'Failed to Delete', field: 'failedToDelete', width: 20 }, - ]; - const maxLength = Math.max( - result.added.length, - result.updated.length, - result.deleted.length, - result.failed.add.length, - result.failed.delete.length, - result.failed.update.length, - ); - const transformedResult = []; - // eslint-disable-next-line no-plusplus - for (let i = 0; i < maxLength; i++) { - const obj = {}; - - if (result.added[i]) { - obj.added = result.added[i]; - } - if (result.updated[i]) { - obj.updated = result.updated[i]; - } - if (result.deleted[i]) { - obj.deleted = result.deleted[i]; - } - if (result.failed.add[i]) { - obj.failedAdd = result.failed.add[i].pipelineName || ''; - } - if (result.failed.update[i]) { - obj.failedUpdate = result.failed.update[i].pipelineName || ''; - } - if (result.failed.delete[i]) { - obj.failedDelete = result.failed.delete[i].pipelineName || ''; - } - transformedResult.push(obj); + return getFilteredOutput(updateReport, options); } - return handleTable(tableSpec, transformedResult, (o) => ({ - added: o.added, - updated: o.updated, - deleted: o.deleted, - failedToAdd: o.failedAdd, - failedToUpdate: o.failedUpdate, - failedToDelete: o.failedDelete, - }), `Failed to update pipelines in repo ${pipelineRepoName}`); + return this.printAsTable(success, message, updateReport, options); } - return printError(`Failed to update pipelines in repo ${pipelineRepoName}: ${response.status} ${response.message}`, options); + return printError(response.message, options); } catch (err) { - return printError(`Failed to update pipelines in repo ${pipelineRepoName}: ${err.status} ${err.message}`, options); + return printError(`${err.status}: ${err.message}`, options); } } + + noChangesMade(updateReport) { + const noChangesMade = (updateReport?.added?.length === 0 + && updateReport?.deleted?.length === 0 + && updateReport?.updated?.length === 0 + && updateReport?.failed?.add?.length === 0 + && updateReport?.failed?.delete?.length === 0 + && updateReport?.failed?.update?.length === 0); + return noChangesMade; + } + + printAsTable(success, message, updateReport, options) { + if (success && this.noChangesMade(updateReport)) { + // no changes made -> no need to show update report + return printSuccess('Pipelines up to date! No changes made.', options); + } + // Top level message + if (success) { + printSuccess(`${message}\n`, options); + } else { + printError(`${message}\n`, options, false); // do not exit + } + // Constructs a crossed-table (i.e. nested table) with the left most column + // identifying the Type of Change (e.g. Added, Deleted) followed by columns + // 'Pipeline Name' & 'Details'. + const tableSpec = [ + { column: '', width: 20 }, // explicit width to keep table reasonable length + { column: 'Pipeline Name', width: 25, field: 'pipelineName' }, + { column: 'Details', width: 30, field: 'details' }, + ]; + const tableSections = { + Added: updateReport.added.map((pipelineName) => ({ pipelineName, details: '' })), + Updated: updateReport.updated.map((pipelineName) => ({ pipelineName, details: '' })), + Deleted: updateReport.deleted.map((pipelineName) => ({ pipelineName, details: '' })), + 'Failed to Add': updateReport.failed.add, + 'Failed to Update': updateReport.failed.update, + 'Failed to Delete': updateReport.failed.delete, + }; + debug('Constructed Table with values: %s, columns: %s', JSON.stringify(tableSections), JSON.stringify(tableSpec)); + // The Table must include the Pipeline name and error details for Pipelines + // that failed to be Added, Updated, Deleted. By default the Table only + // prints the # of characters allocated for each column. To ensure all + // details are presented set 'wordWrap' to True. + return printCrossTable(tableSpec, tableSections, { wordWrap: true }); + } + + printJson(updateReport, options) { + return getFilteredOutput(updateReport, options); + } }; diff --git a/src/commands/utils.js b/src/commands/utils.js index 8f156c74..02cb34c0 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -60,6 +60,13 @@ export function printError(message, options = { color: true }, exitProgram = tru process.exit(1); } } +/** + * Returns an array with string representations of the specified fields from the given object. + * + * @param {Array<string>} fields - fields to extract + * @param {Object<string, any>} obj - object to extract fields from + * @returns {Array<string>} array of strings + */ function _extractValues(fields, obj) { const rv = []; fields.forEach((f) => rv.push((obj !== undefined && obj !== null && obj[f] !== undefined && obj[f] !== null) ? obj[f].toString() : '-')); @@ -200,18 +207,87 @@ export const getFilteredOutput = (result, options) => { }; export const parseObject = (str) => yaml.load(str); -export function printTable(spec, objects, transform) { +/** + * Prints a table based on the given data and table specification. + * + * @param {Array<Object>} spec - objects with 'column', 'width', and 'field' + * @param {Array} objects - data to reprsent in the table + * @param {CallableFunction<Object, Object> | undefined} transform + * @param {Object} tableOptions - object to provide to 'Table()' constructor + */ +export function printTable(spec, objects, transform, tableOptions = {}) { const fn = transform ?? ((obj) => obj); const head = spec.map((s) => s.column); const colWidths = spec.map((s) => s.width); const fields = spec.map((s) => s.field); const values = objects.map((obj) => _extractValues(fields, fn(obj))); debug('printing fields: %o', fields); - const table = new Table({ head, colWidths, style: { head: ['cyan'] } }); + const table = new Table({ + head, colWidths, style: { head: ['cyan'] }, ...tableOptions, + }); values.forEach((v) => table.push(v)); console.log(table.toString()); } +/** + * Prints a Cross-Table based on the given data & table spec. The spec defines + * the column structure and the values should be the Row objects to include in + * the table. Unlike 'printTable()', this function does NOT transform row + * values, as to allow for lower-level Table cell configuration. + * + * @param {Array<Object>} spec - objects with 'column', 'width', and 'fields' + * @param {Array<Object<string, Array<Object<string, string>>>>} sections - map from Row Title to a list of values in the column + * @param {Object<string, any>} tableOptions object to provide to 'Table()' constructor + */ +export function printCrossTable(spec, sections, tableOptions = {}) { + const head = spec.map((s) => s.column); + const colWidths = spec.map((s) => s.width); + const fields = spec.map((s) => s.field); + if (head[0] !== '') { + // Cross-tables should always include an empty string for the first + // header. Add it, if missing. + head.unshift(''); + colWidths.unshift(undefined); + } else { + // User provided first empty header, meaning that we should remove the + // non-applicable value (likely undefined) from fields. + fields.shift(); + } + debug('Printing Columns: %o, Rows: %o', head, Object.keys(sections)); + const table = new Table({ + head, colWidths, style: { head: ['cyan'] }, ...tableOptions, + }); + // Parse the sections to add rows to the table + Object.keys(sections).forEach((title) => { + // Add a cell with the specified Title that spans the total # of records + // in that section (minimum 1). + const records = sections[title]; + const titleRowSpan = (records?.length || 1); + const coloredTitle = chalk.cyan(title); + const values = [ + [ + { + rowSpan: titleRowSpan, content: coloredTitle, vAlign: 'center', hAlign: 'center', + }, + ], + ]; + if (records.length === 0) { + // No records to show for section, thus set default values in the + // cells next to the Title, so there is at least 1 row. + values[0].push('-', '-'); + } else { + // Populate the initial row lining up with the Title Cell, then add + // all other rows below that to fill out the section. + const rows = records.map((obj) => _extractValues(fields, obj)); + values[0].push(...rows.shift()); + values.push(...rows); + } + debug('Adding Table Section: %o', values); + table.push(...values); + }); + console.log(table.toString()); +} + export function getSourceFiles(source) { const options = { silent: true }; const normalizedSource = (source.endsWith('/')) ? source : `${source}/`; @@ -348,11 +424,11 @@ export const validateName = (name) => (validNameRegex.test(name) && (name.length status: false, message: name ? validationErrorMessage : nameRequirementMessage, }); -export const handleTable = (spec, data, transformer, noDataMessage) => { +export const handleTable = (spec, data, transformer, noDataMessage, tableOptions) => { if (!data || data.length === 0) { printSuccess(noDataMessage); } else { - printTable(spec, data, transformer); + printTable(spec, data, transformer, tableOptions); } }; diff --git a/test/pipelineRepositories.js b/test/pipelineRepositories.js index 5bb3bbdd..54662417 100644 --- a/test/pipelineRepositories.js +++ b/test/pipelineRepositories.js @@ -53,51 +53,53 @@ describe('Pipelines', () => { } describe('Pipeline Repos', () => { - it('lists pipeline repositories - empty', async () => { - const response = { success: true, pipelineRepositories: [] }; - nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); - await create().parseAsync(['node', 'repos', 'list', '--project', PROJECT]); - const output = getPrintedLines(); - const errs = getErrorLines(); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs.join('')).to.be.empty; - chai.expect(output.join('')).to.contain('No pipeline repositories found'); - nock.isDone(); - }); + describe('#List Repos', () => { + it('lists pipeline repositories - empty', async () => { + const response = { success: true, pipelineRepositories: [] }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'list', '--project', PROJECT]); + const output = getPrintedLines(); + const errs = getErrorLines(); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs.join('')).to.be.empty; + chai.expect(output.join('')).to.contain('No pipeline repositories found'); + nock.isDone(); + }); - it('lists pipeline repositories as JSON - empty', async () => { - const response = { success: true, pipelineRepositories: [] }; - nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); - await create().parseAsync(['node', 'repos', 'list', '--project', PROJECT, '--json']); - const output = getPrintedLines(); - const errs = getErrorLines(); - const roundTripped = JSON.parse(output.join('')); - // eslint-disable-next-line no-unused-expressions - chai.expect(roundTripped).to.be.an('array').that.is.empty; - // eslint-disable-next-line no-unused-expressions - chai.expect(errs.join('')).to.be.empty; - nock.isDone(); - }); + it('lists pipeline repositories as JSON - empty', async () => { + const response = { success: true, pipelineRepositories: [] }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'list', '--project', PROJECT, '--json']); + const output = getPrintedLines(); + const errs = getErrorLines(); + const roundTripped = JSON.parse(output.join('')); + // eslint-disable-next-line no-unused-expressions + chai.expect(roundTripped).to.be.an('array').that.is.empty; + // eslint-disable-next-line no-unused-expressions + chai.expect(errs.join('')).to.be.empty; + nock.isDone(); + }); - it('lists pipeline repositories', async () => { - const response = { - success: true, - pipelineRepositories: [ - { name: 'repo1', repo: exampleRepo, branch: 'main' }, - { name: 'repo2', repo: exampleRepo, branch: 'develop' }, - ], - }; - nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories.*/).reply(200, response); - await create().parseAsync(['node', 'repos', 'list', '--project', PROJECT]); - const output = getPrintedLines().join(''); - const errs = getErrorLines().join(''); - chai.expect(output).to.contain('repo1'); - chai.expect(output).to.contain('main'); - chai.expect(output).to.contain('repo2'); - chai.expect(output).to.contain('develop'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); + it('lists pipeline repositories', async () => { + const response = { + success: true, + pipelineRepositories: [ + { name: 'repo1', repo: exampleRepo, branch: 'main' }, + { name: 'repo2', repo: exampleRepo, branch: 'develop' }, + ], + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipeline-repositories.*/).reply(200, response); + await create().parseAsync(['node', 'repos', 'list', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain('repo1'); + chai.expect(output).to.contain('main'); + chai.expect(output).to.contain('repo2'); + chai.expect(output).to.contain('develop'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); }); it('describes a pipeline repository ', async () => { @@ -123,76 +125,78 @@ describe('Pipelines', () => { nock.isDone(); }); - it('saves a pipeline repository (json)', async () => { - const repo = { - name: 'repo1', - repo: exampleRepo, - branch: 'develop', - }; - const response = { - success: true, - version: 1, - message: 'pipelineRepository repo1 saved.', - }; - // save definition of 'repo' to temporary file - const dir = await mkdtemp(join(tmpdir(), 'tmp-')); - const filename = join(dir, 'repo1.json'); - await writeFile(filename, JSON.stringify(repo)); - // invoke the CLI - nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); - await create().parseAsync(['node', 'repos', 'save', filename, '--project', PROJECT]); - const output = getPrintedLines().join(''); - const errs = getErrorLines().join(''); - // verify response - chai.expect(output).to.contain('Pipeline Repository saved'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); - }); + describe('#Save Pipeline Repo', () => { + it('saves a pipeline repository (json)', async () => { + const repo = { + name: 'repo1', + repo: exampleRepo, + branch: 'develop', + }; + const response = { + success: true, + version: 1, + message: 'pipelineRepository repo1 saved.', + }; + // save definition of 'repo' to temporary file + const dir = await mkdtemp(join(tmpdir(), 'tmp-')); + const filename = join(dir, 'repo1.json'); + await writeFile(filename, JSON.stringify(repo)); + // invoke the CLI + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'save', filename, '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // verify response + chai.expect(output).to.contain('Pipeline Repository saved'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); - it('saves a pipeline repository (yaml)', async () => { - const repo = { - name: 'repo1', - repo: exampleRepo, - branch: 'develop', - }; - const response = { - success: true, - version: 1, - message: 'pipelineRepository repo1 saved.', - }; - // save definition of 'repo' to temporary file - const dir = await mkdtemp(join(tmpdir(), 'tmp-')); - const filename = join(dir, 'repo1.yaml'); - await writeFile(filename, yaml.dump(repo)); - // invoke the CLI - nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); - await create().parseAsync(['node', 'repos', 'save', '-y', filename, '--project', PROJECT]); - const output = getPrintedLines().join(''); - const errs = getErrorLines().join(''); - // verify response - chai.expect(output).to.contain('Pipeline Repository saved'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); - }); + it('saves a pipeline repository (yaml)', async () => { + const repo = { + name: 'repo1', + repo: exampleRepo, + branch: 'develop', + }; + const response = { + success: true, + version: 1, + message: 'pipelineRepository repo1 saved.', + }; + // save definition of 'repo' to temporary file + const dir = await mkdtemp(join(tmpdir(), 'tmp-')); + const filename = join(dir, 'repo1.yaml'); + await writeFile(filename, yaml.dump(repo)); + // invoke the CLI + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'save', '-y', filename, '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // verify response + chai.expect(output).to.contain('Pipeline Repository saved'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); - it('saves a pipeline repository using CLI flags', async () => { - const response = { - success: true, - version: 1, - message: 'pipelineRepository testpipeline saved.', - }; - // invoke the CLI - nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); - await create().parseAsync(['node', 'repos', 'save', '--name', 'testpipeline', '--branch', 'develop', '--repo', 'mc://test.key', '--project', PROJECT]); - const output = getPrintedLines().join(''); - const errs = getErrorLines().join(''); - // verify response - chai.expect(output).to.contain('Pipeline Repository saved'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); + it('saves a pipeline repository using CLI flags', async () => { + const response = { + success: true, + version: 1, + message: 'pipelineRepository testpipeline saved.', + }; + // invoke the CLI + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories/).reply(200, response); + await create().parseAsync(['node', 'repos', 'save', '--name', 'testpipeline', '--branch', 'develop', '--repo', 'mc://test.key', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // verify response + chai.expect(output).to.contain('Pipeline Repository saved'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); }); it('deletes a pipeline repository', async () => { @@ -229,91 +233,252 @@ describe('Pipelines', () => { } }); - it('should update-pipelines', async () => { - const response = { - success: true, - updateReport: { - added: ['pipeline1'], - updated: ['pipeline2'], - deleted: ['pipeline3'], - failed: { - add: [], - delete: [], - update: [], + describe('#Update Pipelines', () => { + it('should update-pipelines - all success', async () => { + const response = { + message: 'All Pipelines updated successfully!', + code: 200, + success: true, + updateReport: { + added: ['pipeline1', 'pipeline4'], + updated: ['pipeline2'], + deleted: ['pipeline3'], + failed: { + add: [], + delete: [], + update: [], + }, }, - }, - }; - nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/).reply(200, response); - try { + }; + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/).reply(200, response); await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT]); - } catch (err) { const output = getPrintedLines().join(''); const errs = getErrorLines().join(''); - const jsonOutput = JSON.parse(output); + // eslint-disable-next-line no-unused-expressions + chai.expect(output).to.equal( + `${response.message}\n` + + '┌────────────────────┬─────────────────────────┬──────────────────────────────┐\n' + + '│ │ Pipeline Name │ Details │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ │ pipeline1 │ │\n' + + '│ Added ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ pipeline4 │ │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Updated │ pipeline2 │ │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Deleted │ pipeline3 │ │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Failed to Add │ - │ - │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Failed to Update │ - │ - │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Failed to Delete │ - │ - │\n' + + '└────────────────────┴─────────────────────────┴──────────────────────────────┘', + ); // eslint-disable-next-line no-unused-expressions chai.expect(errs).to.be.empty; - chai.expect(jsonOutput.success).to.equal(true); nock.isDone(); - } - }); + }); - it('should update-pipelines with custom Skill', async () => { - const response = { - success: true, - updateReport: { - added: ['pipeline1'], - updated: ['pipeline2'], - deleted: ['pipeline3'], - failed: { - add: [], - delete: [], - update: [], + it('should update-pipelines with custom Skill', async () => { + const response = { + success: true, + code: 200, + message: 'All Pipelines updated successfully!', + updateReport: { + added: ['pipeline1'], + updated: ['pipeline2'], + deleted: ['pipeline3'], + failed: { + add: [], + delete: [], + update: [], + }, }, - }, - }; + }; - nock(serverUrl) - .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) - .query({ skillName: 'my-skill' }) - .reply(200, response); - await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT, '--skill', 'my-skill']); - const output = getPrintedLines().join(''); - const errs = getErrorLines().join(''); - chai.expect(output).to.contain('pipeline1'); - chai.expect(output).to.contain('pipeline2'); - chai.expect(output).to.contain('pipeline3'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); - }); + nock(serverUrl) + .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) + .query({ skillName: 'my-skill' }) + .reply(200, response); + await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT, '--skill', 'my-skill']); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.equal( + `${response.message}\n` + + '┌────────────────────┬─────────────────────────┬──────────────────────────────┐\n' + + '│ │ Pipeline Name │ Details │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Added │ pipeline1 │ │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Updated │ pipeline2 │ │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Deleted │ pipeline3 │ │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Failed to Add │ - │ - │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Failed to Update │ - │ - │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Failed to Delete │ - │ - │\n' + + '└────────────────────┴─────────────────────────┴──────────────────────────────┘', + ); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); - it('should report no changes when updating-pipelines with an empty report', async () => { - // set up mock - should report no changes, but it was successful - const response = { - success: true, - updateReport: { - added: [], - updated: [], - deleted: [], - failed: { - add: [], - delete: [], - update: [], + it('should report no changes when updating-pipelines with an empty report', async () => { + // set up mock - should report no changes, but it was successful + const response = { + success: true, + updateReport: { + added: [], + updated: [], + deleted: [], + failed: { + add: [], + delete: [], + update: [], + }, }, - }, - }; - nock(serverUrl) - .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) - .reply(200, response); + }; + nock(serverUrl) + .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) + .reply(200, response); - // Execute update - await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT]); - const output = getPrintedLines().join(''); - const errs = getErrorLines().join(''); - chai.expect(output).to.contain('Pipelines up to date! No changes made.'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); + // Execute update + await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.equal('Pipelines up to date! No changes made.'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('should report pipeline failures and error details in the error message', async () => { + // set up mock - should report no changes, but it was successful + const response = { + success: false, + code: 200, + message: 'Individual Pipeline(s) failed to be updated! Check the Pipeline Update Report.', + updateReport: { + added: [ + 'hello_world', + 'ingest_lookup', + 'medallion-s3', + 'simple', + 'skill_test', + ], + updated: [], + deleted: [], + failed: { + add: [ + { + pipelineName: 'error-invalid-config1', + details: 'Failed to parse Pipeline Configuration. Error: Invalid value for spec.blocks. At least 1 block is required', + }, + { + pipelineName: 'error-invalid-config2', + details: 'Failed to parse Pipeline Configuration. Error: Invalid value for key "type" on BlockConfig. Expected one of [dbt, streaming] but got "invalid-custom"', + }, + { + pipelineName: 'error-invalid-config3', + details: 'Failed to parse Pipeline Configuration. Error: Invalid value for key "apiVersion" on PipelineConfig. Expected string but got undefined', + }, + { + pipelineName: 'error-invalid-config4', + details: 'Failed to parse Pipeline Configuration. Error: Invalid value for key "executor" on BlockConfig. Expected one of [pyspark] but got undefined', + }, + { + pipelineName: 'error-invalid-config5', + details: 'Failed to parse Pipeline Configuration. SyntaxError: Unexpected token H in JSON at position 0', + }, + { + pipelineName: 'error-multiple-config', + details: 'Multiple config files found', + }, + { + pipelineName: 'error-no-config', + details: 'Config file not found', + }, + ], + update: [], + delete: [], + }, + }, + }; + nock(serverUrl) + .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) + .reply(200, response); + + // Execute update + await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.equal( + '┌────────────────────┬─────────────────────────┬──────────────────────────────┐\n' + + '│ │ Pipeline Name │ Details │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ │ hello_world │ │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ ingest_lookup │ │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ Added │ medallion-s3 │ │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ simple │ │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ skill_test │ │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Updated │ - │ - │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Deleted │ - │ - │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ │ error-invalid-config1 │ Failed to parse Pipeline │\n' + + '│ │ │ Configuration. Error: │\n' + + '│ │ │ Invalid value for │\n' + + '│ │ │ spec.blocks. At least 1 │\n' + + '│ │ │ block is required │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ error-invalid-config2 │ Failed to parse Pipeline │\n' + + '│ │ │ Configuration. Error: │\n' + + '│ │ │ Invalid value for key "type" │\n' + + '│ │ │ on BlockConfig. Expected one │\n' + + '│ │ │ of [dbt, streaming] but got │\n' + + '│ │ │ "invalid-custom" │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ error-invalid-config3 │ Failed to parse Pipeline │\n' + + '│ │ │ Configuration. Error: │\n' + + '│ │ │ Invalid value for key │\n' + + '│ │ │ "apiVersion" on │\n' + + '│ Failed to Add │ │ PipelineConfig. Expected │\n' + + '│ │ │ string but got undefined │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ error-invalid-config4 │ Failed to parse Pipeline │\n' + + '│ │ │ Configuration. Error: │\n' + + '│ │ │ Invalid value for key │\n' + + '│ │ │ "executor" on BlockConfig. │\n' + + '│ │ │ Expected one of [pyspark] │\n' + + '│ │ │ but got undefined │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ error-invalid-config5 │ Failed to parse Pipeline │\n' + + '│ │ │ Configuration. SyntaxError: │\n' + + '│ │ │ Unexpected token H in JSON │\n' + + '│ │ │ at position 0 │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ error-multiple-config │ Multiple config files found │\n' + + '│ ├─────────────────────────┼──────────────────────────────┤\n' + + '│ │ error-no-config │ Config file not found │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Failed to Update │ - │ - │\n' + + '├────────────────────┼─────────────────────────┼──────────────────────────────┤\n' + + '│ Failed to Delete │ - │ - │\n' + + '└────────────────────┴─────────────────────────┴──────────────────────────────┘', + ); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.equal(`${response.message}\n`); + nock.isDone(); + }); }); }); }); diff --git a/test/testUtils.js b/test/testUtils.js index 4758f147..59254a40 100644 --- a/test/testUtils.js +++ b/test/testUtils.js @@ -8,6 +8,7 @@ import { handleListFailure, handleDeleteFailure, checkForEmptyArgs, + printCrossTable, } from '../src/commands/utils.js'; import { stripAnsi } from './utils.js'; @@ -57,6 +58,138 @@ describe('Handle table function test', () => { ]); }); }); +describe('Printing Cross-Tables', () => { + let printSpy; + before(() => { + restore = mockedEnv({}); + }); + beforeEach(() => { + printSpy = sinon.spy(console, 'log'); + }); + afterEach(() => { + printSpy.restore(); + }); + after(() => { + restore(); + }); + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + it('should print a cross-table when data is present', () => { + const tableSections = { + first: [sampleData[0]], + second: [], + third: [sampleData[1], sampleData[2]], + }; + printCrossTable(tableSpec, tableSections); + expect(getPrintedLines()).to.eql([ + '┌────────┬────────┬─────────────┐\n' + + '│ │ User │ Name │\n' + + '├────────┼────────┼─────────────┤\n' + + '│ first │ user-1 │ user-name-1 │\n' + + '├────────┼────────┼─────────────┤\n' + + '│ second │ - │ - │\n' + + '├────────┼────────┼─────────────┤\n' + + '│ │ user-2 │ user-name-2 │\n' + + '│ third ├────────┼─────────────┤\n' + + '│ │ user-3 │ user-name-3 │\n' + + '└────────┴────────┴─────────────┘', + ]); + }); + + it('should print a cross-table with an explicit column widths (abbreviates fields)', () => { + const tableSpec2 = JSON.parse(JSON.stringify(tableSpec)); // TODO: structuredClone() + tableSpec2.unshift({ column: '', width: 5 }); + tableSpec2[1].width = 10; + tableSpec2[2].width = 10; + const tableSections = { + first: [], + second: [sampleData[0]], + reallyReallyReallyLongName: [sampleData[1], sampleData[2]], + }; + printCrossTable(tableSpec2, tableSections); + expect(getPrintedLines()).to.eql([ + '┌─────┬──────────┬──────────┐\n' + + '│ │ User │ Name │\n' + + '├─────┼──────────┼──────────┤\n' + + '│ fi… │ - │ - │\n' + + '├─────┼──────────┼──────────┤\n' + + '│ se… │ user-1 │ user-na… │\n' + + '├─────┼──────────┼──────────┤\n' + + '│ │ user-2 │ user-na… │\n' + + '│ re… ├──────────┼──────────┤\n' + + '│ │ user-3 │ user-na… │\n' + + '└─────┴──────────┴──────────┘', + ]); + }); + + // Skipped because there are different ways to wrap the 'reallyReallyReallyLongName' if you ignore word boundaries + // and consider varying whitespace in horizontal centering. Noticeable difference in results between Pipeline & + // local run of tests. + xit('should print a cross-table with an explicit column widths and table options', () => { + const tableSpec2 = JSON.parse(JSON.stringify(tableSpec)); // TODO: structuredClone() + tableSpec2.unshift({ column: '', width: 25 }); + tableSpec2[1].width = 5; + tableSpec2[2].width = 5; + const tableSections = { + first: [], + second: [sampleData[0]], + reallyReallyReallyLongName: [sampleData[1], sampleData[2]], + }; + printCrossTable(tableSpec2, tableSections, { + // Verify that tableOptions are honored - expect columns 2 & 3 to wrap words + wordWrap: true, + wrapOnWordBoundary: false, + }); + expect(getPrintedLines()).to.be.oneOf([ + '┌─────────────────────────┬─────┬─────┐\n' + + '│ │ Use │ Nam │\n' + + '│ │ r │ e │\n' + + '├─────────────────────────┼─────┼─────┤\n' + + '│ first │ - │ - │\n' + + '├─────────────────────────┼─────┼─────┤\n' + + '│ │ use │ use │\n' + + '│ │ r-1 │ r-n │\n' + + '│ second │ │ ame │\n' + + '│ │ │ -1 │\n' + + '├─────────────────────────┼─────┼─────┤\n' + + '│ │ use │ use │\n' + + '│ │ r-2 │ r-n │\n' + + '│ │ │ ame │\n' + + '│ │ │ -2 │\n' + + '│ reallyReallyReally ├─────┼─────┤\n' + + '│ LongName │ use │ use │\n' + + '│ │ r-3 │ r-n │\n' + + '│ │ │ ame │\n' + + '│ │ │ -3 │\n' + + '└─────────────────────────┴─────┴─────┘', + ]); + }); + + it('should print a cross-table when no data is present', () => { + const tableSections = { + first: [], + second: [], + third: [], + fourth: [], + }; + printCrossTable(tableSpec, tableSections); + expect(getPrintedLines()).to.eql([ + '┌────────┬──────┬──────┐\n' + + '│ │ User │ Name │\n' + + '├────────┼──────┼──────┤\n' + + '│ first │ - │ - │\n' + + '├────────┼──────┼──────┤\n' + + '│ second │ - │ - │\n' + + '├────────┼──────┼──────┤\n' + + '│ third │ - │ - │\n' + + '├────────┼──────┼──────┤\n' + + '│ fourth │ - │ - │\n' + + '└────────┴──────┴──────┘', + ]); + }); +}); describe('Test printExtendedLogs function', () => { let printSpy; const data = [ From b07cfcea3d039cef44c0664d4b53242fa944e399 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Wed, 6 Dec 2023 04:03:10 -0600 Subject: [PATCH 839/864] Fab 6392 global got (#729) * Add timeout to global got opts * FAB-6392 add global timeouts, user-agent, debug logs, follow-redirects=false --- src/client/apiutils.js | 24 ++++++++++++++++++++---- src/client/content.js | 2 +- src/client/info.js | 10 ++-------- src/commands/workspaces/configure.js | 2 +- src/compatibility.js | 3 +-- 5 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/client/apiutils.js b/src/client/apiutils.js index 5c4a74cf..f898c441 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -11,8 +11,24 @@ const debug = debugSetup('cortex:cli'); function getUserAgent() { return `${pkg.name}/${pkg.version} (${os.platform()}; ${os.arch()}; ${os.release()}; ${os.platform()})`; } -const gotExt = got.extend({ + +const gotOpts = { followRedirect: false, + // Put a reasonable timeout + timeout: { + lookup: 100, + connect: 50, + secureConnect: 100, + socket: 1000, + // send: 10000, // Not "SAFE" with large uploads + response: 2000, + }, + retry: { + limit: 0, // no retries - fail fast + }, + headers: { + 'user-agent': getUserAgent(), + }, hooks: { beforeRequest: [ (options) => { @@ -40,7 +56,7 @@ const gotExt = got.extend({ }, ], }, -}); -export const defaultHeaders = (token, otherHeaders = {}) => ({ Authorization: `Bearer ${token}`, 'user-agent': getUserAgent(), ...otherHeaders }); -export { getUserAgent }; +}; +const gotExt = got.extend(gotOpts); +export const defaultHeaders = (token, otherHeaders = {}) => ({ Authorization: `Bearer ${token}`, ...otherHeaders }); export { gotExt as got }; diff --git a/src/client/content.js b/src/client/content.js index 90da2b95..5fb5304f 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -3,7 +3,7 @@ import process from 'node:process'; import { PassThrough } from 'node:stream'; import { pipeline } from 'node:stream/promises'; import debugSetup from 'debug'; -import { got, defaultHeaders } from './apiutils.js'; +import { defaultHeaders, got } from './apiutils.js'; import { createFileStream, constructError, checkProject } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); diff --git a/src/client/info.js b/src/client/info.js index c16bc643..31736c25 100644 --- a/src/client/info.js +++ b/src/client/info.js @@ -14,7 +14,7 @@ * limitations under the License. */ import debugSetup from 'debug'; -import { got, getUserAgent } from './apiutils.js'; +import { got } from './apiutils.js'; import { constructError } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); @@ -29,13 +29,7 @@ export default (class Info { debug('getInfo() => %s', endpoint); try { return await got - .get(endpoint, { - headers: { 'user-agent': getUserAgent() }, - followRedirect: false, - retry: { - limit: 0, // no retries - fail fast - }, - }) + .get({ url: endpoint }) .json(); } catch (err) { // return error object and let caller deal with failure diff --git a/src/commands/workspaces/configure.js b/src/commands/workspaces/configure.js index 4b03f545..3ddb4b1f 100644 --- a/src/commands/workspaces/configure.js +++ b/src/commands/workspaces/configure.js @@ -2,10 +2,10 @@ import _ from 'lodash'; import inquirer from 'inquirer'; import chalk from 'chalk'; // eslint-disable-next-line import/no-unresolved -import got from 'got'; import open from 'open'; import dayjs from 'dayjs'; import relativeTime from 'dayjs/plugin/relativeTime.js'; +import { got } from '../../client/apiutils.js'; // Use got with DEBUG and preet options import { validateToken, persistToken } from './workspace-utils.js'; import { readConfig } from '../../config.js'; import { printSuccess, printError, useColor } from '../utils.js'; diff --git a/src/compatibility.js b/src/compatibility.js index adc16f12..04f6732a 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -10,7 +10,7 @@ import last from 'lodash/fp/last.js'; import isInstalledGlobally from 'is-installed-globally'; import npmFetch from 'npm-registry-fetch'; import Semver from 'semver'; -import { got, getUserAgent } from './client/apiutils.js'; +import { got } from './client/apiutils.js'; import { loadProfile } from './config.js'; import { printError, printWarning, readPackageJSON } from './commands/utils.js'; @@ -37,7 +37,6 @@ function getRequiredVersion(profile) { .get(endpoint, { headers: { Authorization: `Bearer ${profile.token}`, - 'user-agent': getUserAgent(), }, }) .json() From f4bf16489670f55ce36140475c7d52a1942ac420 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Thu, 7 Dec 2023 22:48:43 +0530 Subject: [PATCH 840/864] FAB-6143 enable sonar (#730) * FAB-6143 enable sonar * Update package.json * update engine * Delete package-lock.json * add lockfile * reverting engine --- Dockerfile.c12e-ci.cortex-cli | 2 +- cortex-cli.gocd.yaml | 1 + package-lock.json | 7791 +++------------------------------ sonar-project.properties | 12 + 4 files changed, 731 insertions(+), 7075 deletions(-) create mode 100644 sonar-project.properties diff --git a/Dockerfile.c12e-ci.cortex-cli b/Dockerfile.c12e-ci.cortex-cli index 4cec073f..e321e6f8 100644 --- a/Dockerfile.c12e-ci.cortex-cli +++ b/Dockerfile.c12e-ci.cortex-cli @@ -1,4 +1,4 @@ -FROM node:16-bullseye-slim +FROM node:18-bullseye-slim COPY cortex-cli.tgz /app/ COPY scripts/entrypoint.sh / diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index 74dda33a..fe8d95ec 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -30,6 +30,7 @@ pipelines: set -eux git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git ./gocd-pipeline-scripts/common/c12e-common.sh dev + ./gocd-pipeline-scripts/common/sonar-scan.sh scan echo ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli - publish: clean_workspace: true diff --git a/package-lock.json b/package-lock.json index ae7bd728..a6bcac2f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "cortex-cli", "version": "2.3.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -74,46 +74,40 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@babel/helper-string-parser": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@balena/dockerignore": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", - "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" + "license": "Apache-2.0" }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@colors/colors": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" @@ -473,9 +467,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -488,18 +481,16 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -520,9 +511,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -541,30 +531,26 @@ }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "license": "MIT", "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@hapi/hoek": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "license": "BSD-3-Clause" }, "node_modules/@hapi/topo": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", @@ -576,9 +562,8 @@ }, "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -588,9 +573,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -601,14 +585,12 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -623,8 +605,7 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -634,8 +615,7 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -645,13 +625,11 @@ }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -666,8 +644,7 @@ }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -680,8 +657,7 @@ }, "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -696,42 +672,37 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -739,8 +710,7 @@ }, "node_modules/@ljharb/through": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -750,9 +720,8 @@ }, "node_modules/@nodelib/fs.scandir": { "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, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -763,18 +732,16 @@ }, "node_modules/@nodelib/fs.stat": { "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, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "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, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -785,8 +752,7 @@ }, "node_modules/@npmcli/agent": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.1.1.tgz", - "integrity": "sha512-6RlbiOAi6L6uUYF4/CDEkDZQnKw0XDsFJVrEpnib8rAx2WRMOsUyAdgnvDpX/fdkDWxtqE+NHwF465llI2wR0g==", + "license": "ISC", "dependencies": { "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", @@ -799,8 +765,7 @@ }, "node_modules/@npmcli/agent/node_modules/agent-base": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -810,8 +775,7 @@ }, "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -822,16 +786,14 @@ }, "node_modules/@npmcli/agent/node_modules/lru-cache": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/@npmcli/fs": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "license": "ISC", "dependencies": { "semver": "^7.3.5" }, @@ -841,8 +803,7 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -850,26 +811,22 @@ }, "node_modules/@sideway/address": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "license": "BSD-3-Clause" }, "node_modules/@sindresorhus/is": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -879,36 +836,32 @@ }, "node_modules/@sinonjs/commons": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "11.2.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", - "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/samsam": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", - "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", @@ -917,22 +870,19 @@ }, "node_modules/@sinonjs/text-encoding": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true + "dev": true, + "license": "(Unlicense OR Apache-2.0)" }, "node_modules/@supercharge/promise-pool": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-3.1.0.tgz", - "integrity": "sha512-gB3NukbIcYzRtPoE6dx9svQYPodxvnfQlaaQd8N/z87E6WaMfRE7o5HwB+LZ+KeM0nsNAq1n4TmBtfz1VCUR+Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@szmarczak/http-timer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -942,32 +892,27 @@ }, "node_modules/@types/http-cache-semantics": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/acorn": { "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -977,18 +922,16 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/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, + "license": "MIT", "dependencies": { "debug": "4" }, @@ -998,8 +941,7 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -1010,9 +952,8 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1026,17 +967,15 @@ }, "node_modules/ansi-colors": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -1049,8 +988,7 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -1060,16 +998,14 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1082,9 +1018,8 @@ }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1095,9 +1030,8 @@ }, "node_modules/archiver": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", "dev": true, + "license": "MIT", "dependencies": { "archiver-utils": "^2.1.0", "async": "^3.2.3", @@ -1113,9 +1047,8 @@ }, "node_modules/archiver-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", "dev": true, + "license": "MIT", "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", @@ -1134,9 +1067,8 @@ }, "node_modules/archiver-utils/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1154,15 +1086,13 @@ }, "node_modules/archiver-utils/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/archiver-utils/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1172,9 +1102,8 @@ }, "node_modules/archiver-utils/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -1187,29 +1116,25 @@ }, "node_modules/archiver-utils/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/archiver-utils/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -1220,9 +1145,8 @@ }, "node_modules/array-includes": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1239,18 +1163,16 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.findlastindex": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1267,9 +1189,8 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1285,9 +1206,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1303,9 +1223,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -1324,46 +1243,40 @@ }, "node_modules/asn1": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", "dependencies": { "safer-buffer": "~2.1.0" } }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/async": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/audit-ci": { "version": "6.6.1", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.6.1.tgz", - "integrity": "sha512-zqZEoYfEC4QwX5yBkDNa0h7YhZC63HWtKtP19BVq+RS0dxRBInfmHogxe4VUeOzoADQjuTLZUI7zp3Pjyl+a5g==", "dev": true, + "license": "Apache-2.0", "dependencies": { "cross-spawn": "^7.0.3", "escape-string-regexp": "^4.0.0", @@ -1383,9 +1296,8 @@ }, "node_modules/available-typed-arrays": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1395,13 +1307,10 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -1415,37 +1324,34 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } }, "node_modules/big-integer": { "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "license": "Unlicense", "engines": { "node": ">=0.6" } }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/binaryextensions": { "version": "4.18.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", - "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==", + "license": "MIT", "engines": { "node": ">=0.8" }, @@ -1455,8 +1361,7 @@ }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -1465,13 +1370,11 @@ }, "node_modules/boolean": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" + "license": "MIT" }, "node_modules/bplist-parser": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "license": "MIT", "dependencies": { "big-integer": "^1.6.44" }, @@ -1481,9 +1384,8 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1491,9 +1393,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -1503,14 +1404,11 @@ }, "node_modules/browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { "type": "github", @@ -1525,6 +1423,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -1532,16 +1431,13 @@ }, "node_modules/buffer-crc32": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/buildcheck": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.3.tgz", - "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", "optional": true, "engines": { "node": ">=10.0.0" @@ -1549,16 +1445,14 @@ }, "node_modules/builtins": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "license": "MIT", "dependencies": { "semver": "^7.0.0" } }, "node_modules/bundle-name": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "license": "MIT", "dependencies": { "run-applescript": "^5.0.0" }, @@ -1571,9 +1465,8 @@ }, "node_modules/c8": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", - "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", "dev": true, + "license": "ISC", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@istanbuljs/schema": "^0.1.3", @@ -1597,17 +1490,15 @@ }, "node_modules/c8/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/cacache": { "version": "18.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", - "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "license": "ISC", "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", @@ -1628,32 +1519,28 @@ }, "node_modules/cacache/node_modules/lru-cache": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/cacache/node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/cacheable-lookup": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", "engines": { "node": ">=14.16" } }, "node_modules/cacheable-request": { "version": "10.2.8", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.8.tgz", - "integrity": "sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A==", + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.1", "get-stream": "^6.0.1", @@ -1669,8 +1556,7 @@ }, "node_modules/cacheable-request/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -1680,8 +1566,7 @@ }, "node_modules/call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -1692,17 +1577,14 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caxa": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/caxa/-/caxa-3.0.1.tgz", - "integrity": "sha512-ZVJg1FHU4KCJFCu46L6QI5bu8zxDYe5ExHoiTzW1SypKGpSkAOEVLI/+y6CMKlnwdWhyT+ZOYUBA09HzDgakpA==", "dev": true, "funding": [ "https://patreon.com/leafac", @@ -1710,6 +1592,7 @@ "https://github.com/sponsors/leafac", "https://btc.com/34KJBgtaFYMtDqpSgMayw9qiKWg2GQXA9M" ], + "license": "MIT", "dependencies": { "archiver": "^5.3.1", "commander": "^9.4.1", @@ -1725,18 +1608,16 @@ }, "node_modules/caxa/node_modules/commander": { "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, "node_modules/caxa/node_modules/execa": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -1757,9 +1638,8 @@ }, "node_modules/caxa/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1771,9 +1651,8 @@ }, "node_modules/caxa/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1783,9 +1662,8 @@ }, "node_modules/caxa/node_modules/globby": { "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -1802,18 +1680,16 @@ }, "node_modules/caxa/node_modules/human-signals": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.20.0" } }, "node_modules/caxa/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1823,9 +1699,8 @@ }, "node_modules/caxa/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -1838,9 +1713,8 @@ }, "node_modules/caxa/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1850,9 +1724,8 @@ }, "node_modules/chai": { "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -1868,9 +1741,8 @@ }, "node_modules/chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, + "license": "WTFPL", "dependencies": { "check-error": "^1.0.2" }, @@ -1880,8 +1752,7 @@ }, "node_modules/chalk": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -1891,14 +1762,12 @@ }, "node_modules/chardet": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "license": "MIT" }, "node_modules/check-error": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.2" }, @@ -1908,17 +1777,14 @@ }, "node_modules/check-more-types": { "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -1926,6 +1792,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1944,9 +1811,8 @@ }, "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1956,16 +1822,13 @@ }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/ci-info": { "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "dev": true, "funding": [ { @@ -1973,22 +1836,21 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -1998,8 +1860,7 @@ }, "node_modules/cli-progress": { "version": "3.12.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", + "license": "MIT", "dependencies": { "string-width": "^4.2.3" }, @@ -2009,8 +1870,7 @@ }, "node_modules/cli-spinners": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -2020,8 +1880,7 @@ }, "node_modules/cli-table3": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -2034,17 +1893,15 @@ }, "node_modules/cli-width": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "license": "ISC", "engines": { "node": ">= 12" } }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -2056,16 +1913,14 @@ }, "node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -2075,13 +1930,11 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -2091,17 +1944,15 @@ }, "node_modules/commander": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", "engines": { "node": ">=16" } }, "node_modules/compress-commons": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", @@ -2114,32 +1965,26 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/confusing-browser-globals": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cpu-features": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.4.tgz", - "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -2152,9 +1997,8 @@ }, "node_modules/crc-32": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", "dev": true, + "license": "Apache-2.0", "bin": { "crc32": "bin/crc32.njs" }, @@ -2164,9 +2008,8 @@ }, "node_modules/crc32-stream": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", "dev": true, + "license": "MIT", "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" @@ -2177,9 +2020,8 @@ }, "node_modules/cross-env": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.1" }, @@ -2195,16 +2037,14 @@ }, "node_modules/cross-fetch": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "license": "MIT", "dependencies": { "node-fetch": "2.6.7" } }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2216,9 +2056,8 @@ }, "node_modules/crypto-random-string": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-5.0.0.tgz", - "integrity": "sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^2.12.2" }, @@ -2231,9 +2070,8 @@ }, "node_modules/crypto-random-string/node_modules/type-fest": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -2243,13 +2081,11 @@ }, "node_modules/dayjs": { "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + "license": "MIT" }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -2264,8 +2100,7 @@ }, "node_modules/decompress-response": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -2278,8 +2113,7 @@ }, "node_modules/decompress-response/node_modules/mimic-response": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -2289,15 +2123,13 @@ }, "node_modules/dedent": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deep-eql": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -2307,22 +2139,19 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/default-browser": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "license": "MIT", "dependencies": { "bundle-name": "^3.0.0", "default-browser-id": "^3.0.0", @@ -2338,8 +2167,7 @@ }, "node_modules/default-browser-id": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "license": "MIT", "dependencies": { "bplist-parser": "^0.2.0", "untildify": "^4.0.0" @@ -2353,8 +2181,7 @@ }, "node_modules/defaults": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -2364,17 +2191,15 @@ }, "node_modules/defer-to-connect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/define-data-property": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -2386,8 +2211,7 @@ }, "node_modules/define-lazy-prop": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2397,9 +2221,8 @@ }, "node_modules/define-properties": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -2414,34 +2237,30 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/detect-libc": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "license": "Apache-2.0", "engines": { "node": ">=8" } }, "node_modules/diff": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -2451,8 +2270,7 @@ }, "node_modules/docker-modem": { "version": "3.0.6", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", - "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", + "license": "Apache-2.0", "dependencies": { "debug": "^4.1.1", "readable-stream": "^3.5.0", @@ -2465,8 +2283,7 @@ }, "node_modules/dockerode": { "version": "3.3.5", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", - "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", + "license": "Apache-2.0", "dependencies": { "@balena/dockerignore": "^1.0.2", "docker-modem": "^3.0.0", @@ -2478,9 +2295,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2490,24 +2306,20 @@ }, "node_modules/duplexer": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "license": "MIT" }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "license": "MIT" }, "node_modules/encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", "optional": true, "dependencies": { "iconv-lite": "^0.6.2" @@ -2515,8 +2327,7 @@ }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" @@ -2527,22 +2338,19 @@ }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + "license": "MIT" }, "node_modules/es-abstract": { "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", @@ -2593,14 +2401,12 @@ }, "node_modules/es-main": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.3.0.tgz", - "integrity": "sha512-AzORKdz1Zt97TzbYQnIrI3ZiibWpRXUfpo/w0xOJ20GpNYd2bd3MU9m31zS/aJ1TJl6JfLTok83Y8HjNunYT0A==" + "license": "MIT" }, "node_modules/es-set-tostringtag": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -2612,18 +2418,16 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "dev": true, + "license": "MIT", "dependencies": { "has": "^1.0.3" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -2675,18 +2479,16 @@ }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2751,9 +2553,8 @@ }, "node_modules/eslint-config-airbnb-base": { "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, + "license": "MIT", "dependencies": { "confusing-browser-globals": "^1.0.10", "object.assign": "^4.1.2", @@ -2770,18 +2571,16 @@ }, "node_modules/eslint-config-airbnb-base/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -2790,18 +2589,16 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -2816,18 +2613,16 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -2856,18 +2651,16 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -2877,9 +2670,8 @@ }, "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2889,18 +2681,16 @@ }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -2914,9 +2704,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2926,9 +2715,8 @@ }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2942,9 +2730,8 @@ }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2954,9 +2741,8 @@ }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -2971,9 +2757,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -2983,9 +2768,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -2995,27 +2779,24 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/event-stream": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "dev": true, + "license": "MIT", "dependencies": { "duplexer": "^0.1.1", "from": "^0.1.7", @@ -3028,8 +2809,7 @@ }, "node_modules/execa": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -3050,8 +2830,7 @@ }, "node_modules/execa/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3061,8 +2840,7 @@ }, "node_modules/execa/node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -3072,8 +2850,7 @@ }, "node_modules/execa/node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -3086,16 +2863,14 @@ }, "node_modules/expand-template": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", "engines": { "node": ">=6" } }, "node_modules/external-editor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -3107,15 +2882,13 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -3129,9 +2902,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -3141,37 +2913,32 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fd-slicer": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", "dependencies": { "pend": "~1.2.0" } }, "node_modules/figures": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "license": "MIT", "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" @@ -3185,8 +2952,7 @@ }, "node_modules/figures/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -3196,8 +2962,7 @@ }, "node_modules/figures/node_modules/is-unicode-supported": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -3207,9 +2972,8 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -3219,9 +2983,8 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -3231,9 +2994,8 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -3247,18 +3009,16 @@ }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -3269,24 +3029,21 @@ }, "node_modules/flatted": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/foreground-child": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" @@ -3297,8 +3054,7 @@ }, "node_modules/form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -3310,23 +3066,20 @@ }, "node_modules/form-data-encoder": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", "engines": { "node": ">= 14.17" } }, "node_modules/from": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/from2": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -3334,15 +3087,13 @@ }, "node_modules/from2/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/from2/node_modules/readable-stream": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3355,29 +3106,25 @@ }, "node_modules/from2/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/from2/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "license": "MIT" }, "node_modules/fs-extra": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -3390,8 +3137,7 @@ }, "node_modules/fs-minipass": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -3401,24 +3147,20 @@ }, "node_modules/fs-minipass/node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3429,17 +3171,15 @@ }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -3455,35 +3195,31 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/get-intrinsic": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -3496,8 +3232,7 @@ }, "node_modules/get-stream": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -3507,9 +3242,8 @@ }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -3523,8 +3257,7 @@ }, "node_modules/gh-got": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-10.0.0.tgz", - "integrity": "sha512-ac0AmNAmdJt/PSCQEqG+qoKPZCmHP00kMWNjV1ve9nQpuQoyku7uyIACtYVtvTsCV+BLibfPo/LTvPOYBnV5sQ==", + "license": "MIT", "dependencies": { "got": "^12.5.2" }, @@ -3537,8 +3270,7 @@ }, "node_modules/gh-got/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3548,8 +3280,7 @@ }, "node_modules/gh-got/node_modules/got": { "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -3572,13 +3303,11 @@ }, "node_modules/github-from-package": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + "license": "MIT" }, "node_modules/glob": { "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -3598,9 +3327,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -3610,8 +3338,7 @@ }, "node_modules/glob/node_modules/foreground-child": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -3625,16 +3352,14 @@ }, "node_modules/glob/node_modules/minipass": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/glob/node_modules/signal-exit": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -3644,8 +3369,7 @@ }, "node_modules/global-dirs": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -3658,9 +3382,8 @@ }, "node_modules/globals": { "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -3673,9 +3396,8 @@ }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -3688,9 +3410,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -3708,9 +3429,8 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -3720,8 +3440,7 @@ }, "node_modules/got": { "version": "13.0.0", - "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", - "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -3744,8 +3463,7 @@ }, "node_modules/got/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3755,28 +3473,24 @@ }, "node_modules/graceful-fs": { "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/graphql": { "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, "node_modules/graphql-request": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", + "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.2.0", "cross-fetch": "^3.1.5" @@ -3787,8 +3501,7 @@ }, "node_modules/has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -3798,26 +3511,23 @@ }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -3827,8 +3537,7 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3838,8 +3547,7 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3849,9 +3557,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -3864,9 +3571,8 @@ }, "node_modules/hasown": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -3876,17 +3582,15 @@ }, "node_modules/he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } }, "node_modules/hosted-git-info": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" }, @@ -3896,27 +3600,23 @@ }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-cache-semantics": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + "license": "BSD-2-Clause" }, "node_modules/http-proxy-agent": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -3927,8 +3627,7 @@ }, "node_modules/http-proxy-agent/node_modules/agent-base": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -3938,8 +3637,7 @@ }, "node_modules/http2-wrapper": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -3950,9 +3648,8 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -3963,17 +3660,15 @@ }, "node_modules/human-signals": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "license": "Apache-2.0", "engines": { "node": ">=14.18.0" } }, "node_modules/husky": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, + "license": "MIT", "bin": { "husky": "lib/bin.js" }, @@ -3986,8 +3681,7 @@ }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -3997,8 +3691,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -4012,22 +3704,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -4041,25 +3732,22 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -4067,21 +3755,18 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "node_modules/ini": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/inquirer": { "version": "9.2.12", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", - "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "license": "MIT", "dependencies": { "@ljharb/through": "^2.3.11", "ansi-escapes": "^4.3.2", @@ -4105,8 +3790,7 @@ }, "node_modules/inquirer/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4118,9 +3802,8 @@ }, "node_modules/internal-slot": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.0", "has": "^1.0.3", @@ -4132,9 +3815,8 @@ }, "node_modules/into-stream": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", "dev": true, + "license": "MIT", "dependencies": { "from2": "^2.3.0", "p-is-promise": "^3.0.0" @@ -4148,14 +3830,12 @@ }, "node_modules/ip": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + "license": "MIT" }, "node_modules/is-array-buffer": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -4167,9 +3847,8 @@ }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -4179,9 +3858,8 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -4191,9 +3869,8 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -4207,9 +3884,8 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4219,9 +3895,8 @@ }, "node_modules/is-ci": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, + "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -4231,9 +3906,8 @@ }, "node_modules/is-core-module": { "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -4243,9 +3917,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -4258,8 +3931,7 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -4272,26 +3944,23 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -4301,8 +3970,7 @@ }, "node_modules/is-inside-container": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", "dependencies": { "is-docker": "^3.0.0" }, @@ -4318,8 +3986,7 @@ }, "node_modules/is-inside-container/node_modules/is-docker": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -4332,8 +3999,7 @@ }, "node_modules/is-installed-globally": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -4347,22 +4013,19 @@ }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-lambda": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + "license": "MIT" }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4372,18 +4035,16 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -4396,26 +4057,23 @@ }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -4429,9 +4087,8 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -4441,8 +4098,7 @@ }, "node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -4452,9 +4108,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -4467,9 +4122,8 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -4482,9 +4136,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.11" }, @@ -4497,8 +4150,7 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -4508,9 +4160,8 @@ }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -4520,8 +4171,7 @@ }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -4531,29 +4181,25 @@ }, "node_modules/isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -4565,9 +4211,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -4578,8 +4223,7 @@ }, "node_modules/istextorbinary": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-6.0.0.tgz", - "integrity": "sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==", + "license": "MIT", "dependencies": { "binaryextensions": "^4.18.0", "textextensions": "^5.14.0" @@ -4593,8 +4237,7 @@ }, "node_modules/jackspeak": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -4610,22 +4253,19 @@ }, "node_modules/jju": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jmespath": { "version": "0.16.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", - "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", + "license": "Apache-2.0", "engines": { "node": ">= 0.6.0" } }, "node_modules/joi": { "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -4644,8 +4284,7 @@ }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -4655,9 +4294,8 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -4667,32 +4305,27 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -4702,9 +4335,8 @@ }, "node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -4714,17 +4346,15 @@ }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -4738,15 +4368,13 @@ }, "node_modules/just-extend": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/keytar": { "version": "7.9.0", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", - "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-addon-api": "^4.3.0", "prebuild-install": "^7.0.1" @@ -4754,34 +4382,30 @@ }, "node_modules/keyv": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/lazy-ass": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", "dev": true, + "license": "MIT", "engines": { "node": "> 0.8" } }, "node_modules/lazystream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.0.5" }, @@ -4791,15 +4415,13 @@ }, "node_modules/lazystream/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lazystream/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -4812,24 +4434,21 @@ }, "node_modules/lazystream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lazystream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -4840,9 +4459,8 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -4855,55 +4473,46 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash.defaults": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.difference": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.flatten": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.union": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -4917,8 +4526,7 @@ }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4932,17 +4540,15 @@ }, "node_modules/loupe": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.0" } }, "node_modules/lowercase-keys": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -4952,8 +4558,7 @@ }, "node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -4963,9 +4568,8 @@ }, "node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -4978,8 +4582,7 @@ }, "node_modules/make-fetch-happen": { "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "license": "ISC", "dependencies": { "@npmcli/agent": "^2.0.0", "cacache": "^18.0.0", @@ -4999,37 +4602,32 @@ }, "node_modules/make-fetch-happen/node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/map-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -5040,16 +4638,14 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -5059,16 +4655,14 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/mimic-response": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -5078,8 +4672,7 @@ }, "node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5092,24 +4685,21 @@ }, "node_modules/minimatch/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/minimist": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5119,8 +4709,7 @@ }, "node_modules/minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -5130,8 +4719,7 @@ }, "node_modules/minipass-fetch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "license": "MIT", "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", @@ -5146,16 +4734,14 @@ }, "node_modules/minipass-fetch/node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -5165,8 +4751,7 @@ }, "node_modules/minipass-json-stream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "license": "MIT", "dependencies": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" @@ -5174,8 +4759,7 @@ }, "node_modules/minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -5185,8 +4769,7 @@ }, "node_modules/minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -5196,8 +4779,7 @@ }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -5208,8 +4790,7 @@ }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -5219,14 +4800,12 @@ }, "node_modules/mkdirp-classic": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + "license": "MIT" }, "node_modules/mocha": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -5264,9 +4843,8 @@ }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -5275,9 +4853,8 @@ }, "node_modules/mocha/node_modules/glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5295,9 +4872,8 @@ }, "node_modules/mocha/node_modules/glob/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5307,9 +4883,8 @@ }, "node_modules/mocha/node_modules/minimatch": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5319,24 +4894,21 @@ }, "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -5349,9 +4921,8 @@ }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -5367,9 +4938,8 @@ }, "node_modules/mocked-env": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", "dev": true, + "license": "MIT", "dependencies": { "check-more-types": "2.24.0", "debug": "4.3.2", @@ -5382,9 +4952,8 @@ }, "node_modules/mocked-env/node_modules/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, + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -5399,13 +4968,10 @@ }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "license": "MIT" }, "node_modules/multistream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", - "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", "dev": true, "funding": [ { @@ -5421,6 +4987,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "once": "^1.4.0", "readable-stream": "^3.6.0" @@ -5428,23 +4995,20 @@ }, "node_modules/mute-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/nan": { "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "license": "MIT", "optional": true }, "node_modules/nanoid": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -5454,28 +5018,24 @@ }, "node_modules/napi-build-utils": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/nise": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", - "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^10.0.2", @@ -5486,18 +5046,16 @@ }, "node_modules/nise/node_modules/@sinonjs/fake-timers": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } @@ -5518,8 +5076,7 @@ }, "node_modules/node-abi": { "version": "3.31.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", - "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -5529,13 +5086,11 @@ }, "node_modules/node-addon-api": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -5553,17 +5108,15 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -5573,8 +5126,7 @@ }, "node_modules/npm-package-arg": { "version": "11.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", - "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "license": "ISC", "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", @@ -5587,8 +5139,7 @@ }, "node_modules/npm-registry-fetch": { "version": "16.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", - "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "license": "ISC", "dependencies": { "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", @@ -5604,16 +5155,14 @@ }, "node_modules/npm-registry-fetch/node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/npm-run-path": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -5626,8 +5175,7 @@ }, "node_modules/npm-run-path/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -5637,27 +5185,24 @@ }, "node_modules/object-inspect": { "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5673,9 +5218,8 @@ }, "node_modules/object.entries": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -5687,9 +5231,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -5704,9 +5247,8 @@ }, "node_modules/object.groupby": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -5716,9 +5258,8 @@ }, "node_modules/object.values": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -5733,16 +5274,14 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -5755,8 +5294,7 @@ }, "node_modules/open": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "license": "MIT", "dependencies": { "default-browser": "^4.0.0", "define-lazy-prop": "^3.0.0", @@ -5772,9 +5310,8 @@ }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -5789,8 +5326,7 @@ }, "node_modules/ora": { "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", @@ -5811,8 +5347,7 @@ }, "node_modules/ora/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5826,34 +5361,30 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/p-cancelable": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", "engines": { "node": ">=12.20" } }, "node_modules/p-is-promise": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -5866,9 +5397,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -5881,8 +5411,7 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -5895,9 +5424,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -5907,40 +5435,35 @@ }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "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 + "dev": true, + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -5954,66 +5477,61 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "license": "ISC", "engines": { "node": "14 || >=16.14" } }, "node_modules/path-scurry/node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/path-to-regexp": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "0.0.1" } }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/pause-stream": { "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "dev": true, + "license": [ + "MIT", + "Apache2" + ], "dependencies": { "through": "~2.3" } }, "node_modules/pend": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + "license": "MIT" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -6023,9 +5541,8 @@ }, "node_modules/pkg": { "version": "5.8.1", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", - "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/generator": "7.18.2", "@babel/parser": "7.18.4", @@ -6056,9 +5573,8 @@ }, "node_modules/pkg-fetch": { "version": "3.4.2", - "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", - "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "fs-extra": "^9.1.0", @@ -6075,9 +5591,8 @@ }, "node_modules/pkg-fetch/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6091,15 +5606,13 @@ }, "node_modules/pkg-fetch/node_modules/chownr": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/pkg-fetch/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -6108,9 +5621,8 @@ }, "node_modules/pkg-fetch/node_modules/tar-fs": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, + "license": "MIT", "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -6120,9 +5632,8 @@ }, "node_modules/pkg-fetch/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -6138,9 +5649,8 @@ }, "node_modules/pkg/node_modules/@babel/generator": { "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.2", "@jridgewell/gen-mapping": "^0.3.0", @@ -6152,9 +5662,8 @@ }, "node_modules/pkg/node_modules/@babel/parser": { "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -6164,9 +5673,8 @@ }, "node_modules/pkg/node_modules/@babel/types": { "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", @@ -6178,9 +5686,8 @@ }, "node_modules/pkg/node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -6192,9 +5699,8 @@ }, "node_modules/pkg/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6208,9 +5714,8 @@ }, "node_modules/pkg/node_modules/is-core-module": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, + "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -6220,8 +5725,7 @@ }, "node_modules/prebuild-install": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", @@ -6245,40 +5749,35 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/proc-log": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -6289,8 +5788,7 @@ }, "node_modules/prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -6301,17 +5799,15 @@ }, "node_modules/propagate": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -6319,22 +5815,18 @@ }, "node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -6349,12 +5841,12 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -6364,23 +5856,20 @@ }, "node_modules/ramda": { "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -6393,21 +5882,18 @@ }, "node_modules/rc/node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "license": "ISC" }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -6419,27 +5905,24 @@ }, "node_modules/readdir-glob": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.1.0" } }, "node_modules/readdir-glob/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/readdir-glob/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6449,9 +5932,8 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -6461,18 +5943,16 @@ }, "node_modules/readline-transform": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -6487,23 +5967,20 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + "license": "MIT" }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -6518,22 +5995,19 @@ }, "node_modules/resolve-alpn": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + "license": "MIT" }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/responselike": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -6546,8 +6020,7 @@ }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -6558,17 +6031,15 @@ }, "node_modules/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -6576,9 +6047,8 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -6591,9 +6061,8 @@ }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6611,9 +6080,8 @@ }, "node_modules/rimraf/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6623,8 +6091,7 @@ }, "node_modules/run-applescript": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "license": "MIT", "dependencies": { "execa": "^5.0.0" }, @@ -6637,8 +6104,7 @@ }, "node_modules/run-applescript/node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -6659,8 +6125,7 @@ }, "node_modules/run-applescript/node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -6670,16 +6135,14 @@ }, "node_modules/run-applescript/node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/run-applescript/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -6689,8 +6152,7 @@ }, "node_modules/run-applescript/node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -6700,24 +6162,20 @@ }, "node_modules/run-applescript/node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/run-async": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -6733,23 +6191,22 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-array-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -6765,14 +6222,11 @@ }, "node_modules/safe-array-concat/node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -6786,13 +6240,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-regex-test": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -6804,13 +6258,11 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "license": "MIT" }, "node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6823,18 +6275,16 @@ }, "node_modules/serialize-javascript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-function-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -6846,8 +6296,7 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -6857,17 +6306,15 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -6879,13 +6326,10 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "license": "ISC" }, "node_modules/simple-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "funding": [ { "type": "github", @@ -6899,12 +6343,11 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/simple-get": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "funding": [ { "type": "github", @@ -6919,6 +6362,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", @@ -6927,9 +6371,8 @@ }, "node_modules/sinon": { "version": "17.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", - "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0", "@sinonjs/fake-timers": "^11.2.2", @@ -6945,40 +6388,35 @@ }, "node_modules/sinon/node_modules/@sinonjs/commons": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/sinon/node_modules/diff": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -6986,8 +6424,7 @@ }, "node_modules/socks": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "license": "MIT", "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -6999,8 +6436,7 @@ }, "node_modules/socks-proxy-agent": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "license": "MIT", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -7012,8 +6448,7 @@ }, "node_modules/socks-proxy-agent/node_modules/agent-base": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "license": "MIT", "dependencies": { "debug": "^4.3.4" }, @@ -7023,9 +6458,8 @@ }, "node_modules/split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, + "license": "MIT", "dependencies": { "through": "2" }, @@ -7035,13 +6469,10 @@ }, "node_modules/split-ca": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" + "license": "ISC" }, "node_modules/ssh2": { "version": "1.11.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", - "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", "hasInstallScript": true, "dependencies": { "asn1": "^0.2.4", @@ -7057,8 +6488,7 @@ }, "node_modules/ssri": { "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "license": "ISC", "dependencies": { "minipass": "^7.0.3" }, @@ -7068,17 +6498,15 @@ }, "node_modules/ssri/node_modules/minipass": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/stream-combiner": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", "dev": true, + "license": "MIT", "dependencies": { "duplexer": "~0.1.1", "through": "~2.3.4" @@ -7086,24 +6514,21 @@ }, "node_modules/stream-meter": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", - "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.1.4" } }, "node_modules/stream-meter/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stream-meter/node_modules/readable-stream": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7116,31 +6541,27 @@ }, "node_modules/stream-meter/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stream-meter/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7153,8 +6574,7 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7166,9 +6586,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7183,9 +6602,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7197,9 +6615,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7211,8 +6628,7 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7223,8 +6639,7 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -7234,17 +6649,15 @@ }, "node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -7254,9 +6667,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -7266,8 +6678,7 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7277,9 +6688,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7289,8 +6699,7 @@ }, "node_modules/tar": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -7305,8 +6714,7 @@ }, "node_modules/tar-fs": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", + "license": "MIT", "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -7316,13 +6724,11 @@ }, "node_modules/tar-fs/node_modules/chownr": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "license": "ISC" }, "node_modules/tar-stream": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -7336,8 +6742,7 @@ }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -7347,8 +6752,7 @@ }, "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7358,17 +6762,15 @@ }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -7380,9 +6782,8 @@ }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7400,9 +6801,8 @@ }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -7412,14 +6812,12 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/textextensions": { "version": "5.15.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.15.0.tgz", - "integrity": "sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==", + "license": "MIT", "engines": { "node": ">=0.8" }, @@ -7429,14 +6827,12 @@ }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/titleize": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -7446,8 +6842,7 @@ }, "node_modules/tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -7457,18 +6852,16 @@ }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -7478,22 +6871,19 @@ }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" }, "node_modules/treeify": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/tsconfig-paths": { "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -7503,13 +6893,11 @@ }, "node_modules/tslib": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" + "license": "0BSD" }, "node_modules/tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -7519,14 +6907,12 @@ }, "node_modules/tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + "license": "Unlicense" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -7536,18 +6922,16 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7557,9 +6941,8 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -7571,9 +6954,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -7589,9 +6971,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -7608,9 +6989,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -7622,9 +7002,8 @@ }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -7637,8 +7016,7 @@ }, "node_modules/unique-filename": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "license": "ISC", "dependencies": { "unique-slug": "^4.0.0" }, @@ -7648,8 +7026,7 @@ }, "node_modules/unique-slug": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, @@ -7659,42 +7036,37 @@ }, "node_modules/universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/untildify": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url-join": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", - "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/url-parse": { "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -7702,26 +7074,23 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "license": "MIT" }, "node_modules/uuid": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-to-istanbul": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -7733,8 +7102,7 @@ }, "node_modules/validate-npm-package-name": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "license": "ISC", "dependencies": { "builtins": "^5.0.0" }, @@ -7744,21 +7112,18 @@ }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, "node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -7766,8 +7131,7 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -7780,9 +7144,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -7796,9 +7159,8 @@ }, "node_modules/which-typed-array": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -7815,15 +7177,13 @@ }, "node_modules/workerpool": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7839,8 +7199,7 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7855,28 +7214,24 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "license": "ISC" }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -7892,18 +7247,16 @@ }, "node_modules/yargs-parser": { "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -7916,9 +7269,8 @@ }, "node_modules/yargs-unparser/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7928,9 +7280,8 @@ }, "node_modules/yargs-unparser/node_modules/decamelize": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7940,17 +7291,15 @@ }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yauzl": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -7958,9 +7307,8 @@ }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7970,9 +7318,8 @@ }, "node_modules/zip-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", "dev": true, + "license": "MIT", "dependencies": { "archiver-utils": "^2.1.0", "compress-commons": "^4.1.0", @@ -7982,5709 +7329,5 @@ "node": ">= 10" } } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true - }, - "@balena/dockerignore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", - "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", - "dev": true - }, - "@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "requires": {} - }, - "@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@ljharb/through": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "@nodelib/fs.scandir": { - "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.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "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 - }, - "@nodelib/fs.walk": { - "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.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/agent": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.1.1.tgz", - "integrity": "sha512-6RlbiOAi6L6uUYF4/CDEkDZQnKw0XDsFJVrEpnib8rAx2WRMOsUyAdgnvDpX/fdkDWxtqE+NHwF465llI2wR0g==", - "requires": { - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "requires": { - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - }, - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - } - } - }, - "@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", - "requires": { - "semver": "^7.3.5" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true - }, - "@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "@sindresorhus/is": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==" - }, - "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", - "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } - } - }, - "@sinonjs/samsam": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", - "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", - "dev": true, - "requires": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true - }, - "@supercharge/promise-pool": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-3.1.0.tgz", - "integrity": "sha512-gB3NukbIcYzRtPoE6dx9svQYPodxvnfQlaaQd8N/z87E6WaMfRE7o5HwB+LZ+KeM0nsNAq1n4TmBtfz1VCUR+Q==" - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "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" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "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" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "archiver": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - } - }, - "array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - } - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "audit-ci": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.6.1.tgz", - "integrity": "sha512-zqZEoYfEC4QwX5yBkDNa0h7YhZC63HWtKtP19BVq+RS0dxRBInfmHogxe4VUeOzoADQjuTLZUI7zp3Pjyl+a5g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "escape-string-regexp": "^4.0.0", - "event-stream": "4.0.1", - "jju": "^1.4.0", - "JSONStream": "^1.3.5", - "readline-transform": "1.0.0", - "semver": "^7.0.0", - "yargs": "^17.0.0" - } - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "binaryextensions": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", - "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==" - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" - }, - "bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "requires": { - "big-integer": "^1.6.44" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" - }, - "buildcheck": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.3.tgz", - "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", - "optional": true - }, - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "requires": { - "semver": "^7.0.0" - } - }, - "bundle-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", - "requires": { - "run-applescript": "^5.0.0" - } - }, - "c8": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", - "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.3", - "find-up": "^5.0.0", - "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.1.6", - "rimraf": "^3.0.2", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.0.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "cacache": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", - "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", - "requires": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - }, - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==" - }, - "cacheable-request": { - "version": "10.2.8", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.8.tgz", - "integrity": "sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A==", - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "caxa": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/caxa/-/caxa-3.0.1.tgz", - "integrity": "sha512-ZVJg1FHU4KCJFCu46L6QI5bu8zxDYe5ExHoiTzW1SypKGpSkAOEVLI/+y6CMKlnwdWhyT+ZOYUBA09HzDgakpA==", - "dev": true, - "requires": { - "archiver": "^5.3.1", - "commander": "^9.4.1", - "crypto-random-string": "^5.0.0", - "dedent": "^0.7.0", - "execa": "^6.1.0", - "fs-extra": "^10.1.0", - "globby": "^13.1.2" - }, - "dependencies": { - "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - } - }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "requires": { - "check-error": "^1.0.2" - } - }, - "chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "requires": { - "get-func-name": "^2.0.2" - } - }, - "check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-progress": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", - "requires": { - "string-width": "^4.2.3" - } - }, - "cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==" - }, - "cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "requires": { - "@colors/colors": "1.5.0", - "string-width": "^4.2.0" - } - }, - "cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==" - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==" - }, - "compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cpu-features": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.4.tgz", - "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", - "optional": true, - "requires": { - "buildcheck": "0.0.3", - "nan": "^2.15.0" - } - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true - }, - "crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - } - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-5.0.0.tgz", - "integrity": "sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==", - "dev": true, - "requires": { - "type-fest": "^2.12.2" - }, - "dependencies": { - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - } - } - }, - "dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "default-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", - "requires": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - } - }, - "default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "requires": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - } - }, - "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "requires": { - "clone": "^1.0.2" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" - }, - "define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, - "define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==" - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "docker-modem": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", - "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", - "requires": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^1.11.0" - } - }, - "dockerode": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", - "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", - "requires": { - "@balena/dockerignore": "^1.0.2", - "docker-modem": "^3.0.0", - "tar-fs": "~2.0.1" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" - } - }, - "es-main": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.3.0.tgz", - "integrity": "sha512-AzORKdz1Zt97TzbYQnIrI3ZiibWpRXUfpo/w0xOJ20GpNYd2bd3MU9m31zS/aJ1TJl6JfLTok83Y8HjNunYT0A==" - }, - "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", - "dev": true, - "requires": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "event-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, - "execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "requires": { - "mimic-fn": "^4.0.0" - } - } - } - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" - } - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==" - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "requires": { - "minipass": "^7.0.3" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - } - }, - "get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==" - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "gh-got": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-10.0.0.tgz", - "integrity": "sha512-ac0AmNAmdJt/PSCQEqG+qoKPZCmHP00kMWNjV1ve9nQpuQoyku7uyIACtYVtvTsCV+BLibfPo/LTvPOYBnV5sQ==", - "requires": { - "got": "^12.5.2" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - } - } - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" - }, - "glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "dependencies": { - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - }, - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" - } - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "requires": { - "ini": "2.0.0" - } - }, - "globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "got": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", - "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - } - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" - }, - "graphql-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", - "requires": { - "@graphql-typed-document-node/core": "^3.2.0", - "cross-fetch": "^3.1.5" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", - "requires": { - "lru-cache": "^10.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - } - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", - "requires": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "requires": { - "debug": "^4.3.4" - } - } - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==" - }, - "husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - }, - "inquirer": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", - "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", - "requires": { - "@ljharb/through": "^2.3.11", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^5.0.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", - "dev": true, - "requires": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - } - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "requires": { - "ci-info": "^3.2.0" - } - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "requires": { - "is-docker": "^3.0.0" - }, - "dependencies": { - "is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==" - } - } - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "requires": { - "which-typed-array": "^1.1.11" - } - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "istextorbinary": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-6.0.0.tgz", - "integrity": "sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==", - "requires": { - "binaryextensions": "^4.18.0", - "textextensions": "^5.14.0" - } - }, - "jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "dev": true - }, - "jmespath": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", - "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" - }, - "joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "jose": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.1.1.tgz", - "integrity": "sha512-bfB+lNxowY49LfrBO0ITUn93JbUhxUN8I11K6oI5hJu/G6PO6fEUddVLjqdD0cQ9SXIHWXuWh7eJYwZF7Z0N/g==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, - "keytar": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", - "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", - "requires": { - "node-addon-api": "^4.3.0", - "prebuild-install": "^7.0.1" - } - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "requires": { - "json-buffer": "3.0.1" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", - "dev": true - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "requires": { - "semver": "^7.5.3" - } - }, - "make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", - "requires": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - } - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "mocked-env": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", - "dev": true, - "requires": { - "check-more-types": "2.24.0", - "debug": "4.3.2", - "lazy-ass": "1.6.0", - "ramda": "0.27.1" - }, - "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==" - }, - "multistream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", - "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", - "dev": true, - "requires": { - "once": "^1.4.0", - "readable-stream": "^3.6.0" - } - }, - "mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==" - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "optional": true - }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true - }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "nise": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", - "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^10.0.2", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } - } - } - } - }, - "nock": { - "version": "13.3.8", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.8.tgz", - "integrity": "sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "propagate": "^2.0.0" - } - }, - "node-abi": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", - "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", - "requires": { - "semver": "^7.3.5" - } - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==" - }, - "npm-package-arg": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", - "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", - "requires": { - "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - } - }, - "npm-registry-fetch": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", - "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", - "requires": { - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "requires": { - "path-key": "^4.0.0" - }, - "dependencies": { - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" - } - } - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", - "requires": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" - }, - "p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "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 - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "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-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - }, - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "requires": { - "isarray": "0.0.1" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "dev": true, - "requires": { - "through": "~2.3" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pkg": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", - "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", - "dev": true, - "requires": { - "@babel/generator": "7.18.2", - "@babel/parser": "7.18.4", - "@babel/types": "7.19.0", - "chalk": "^4.1.2", - "fs-extra": "^9.1.0", - "globby": "^11.1.0", - "into-stream": "^6.0.0", - "is-core-module": "2.9.0", - "minimist": "^1.2.6", - "multistream": "^4.1.0", - "pkg-fetch": "3.4.2", - "prebuild-install": "7.1.1", - "resolve": "^1.22.0", - "stream-meter": "^1.0.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", - "dev": true, - "requires": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" - } - }, - "@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", - "dev": true - }, - "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "pkg-fetch": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", - "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", - "dev": true, - "requires": { - "chalk": "^4.1.2", - "fs-extra": "^9.1.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.6", - "progress": "^2.0.3", - "semver": "^7.3.5", - "tar-fs": "^2.1.1", - "yargs": "^16.2.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", - "requires": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "ramda": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "requires": { - "minimatch": "^5.1.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "readline-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "requires": { - "lowercase-keys": "^3.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "run-applescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", - "requires": { - "execa": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - } - } - }, - "run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==" - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "requires": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sinon": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", - "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^11.2.2", - "@sinonjs/samsam": "^8.0.0", - "diff": "^5.1.0", - "nise": "^5.1.5", - "supports-color": "^7.2.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", - "requires": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "requires": { - "debug": "^4.3.4" - } - } - } - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" - }, - "ssh2": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", - "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", - "requires": { - "asn1": "^0.2.4", - "bcrypt-pbkdf": "^1.0.2", - "cpu-features": "~0.0.4", - "nan": "^2.16.0" - } - }, - "ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "requires": { - "minipass": "^7.0.3" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", - "dev": true, - "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "stream-meter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", - "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", - "dev": true, - "requires": { - "readable-stream": "^2.1.4" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - } - } - }, - "tar-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "textextensions": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.15.0.tgz", - "integrity": "sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "titleize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==" - }, - "tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "requires": { - "unique-slug": "^4.0.0" - } - }, - "unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url-join": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", - "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==" - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - }, - "v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "requires": { - "builtins": "^5.0.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "requires": { - "defaults": "^1.0.3" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - } - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - } - } } } diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 00000000..066cc97a --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,12 @@ +# Required metadata +sonar.projectKey=cortex-cli +sonar.projectName=cortex-cli + +# Path to source directories +#sonar.sources=src + +# Language +#sonar.language=java + +# Encoding of the source code +sonar.sourceEncoding=UTF-8 From 5f45291534bd646c37786213b9b0390c5a0ed58c Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 11 Dec 2023 16:34:13 -0600 Subject: [PATCH 841/864] Fab 6401 stereotype deploy (#731) * FAB-6401 stereotype deploy * Fix dryrun --- bin/cortex-skills.js | 2 + package-lock.json | 5869 ++++++++++++++++++++++++++++++++++++++++ package.json | 1 + src/client/catalog.js | 6 +- src/commands/skills.js | 13 +- 5 files changed, 5884 insertions(+), 7 deletions(-) diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index 4e069eb1..ceadcb1e 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -35,6 +35,8 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') + .option('--dryrun', 'Return the K8S skill resource and skip deployment to the cluster') + .option('--stereotypes <stereotypes...>', 'Stereotype(s) to apply during deployment: use "none" to remove ALL stereotypes.\nNOTE: These will not be persisted with the skill definition') .action(withCompatibilityCheck(async (skillNames, options) => { try { checkForEmptyArgs({ skillNames }); diff --git a/package-lock.json b/package-lock.json index a6bcac2f..97ba0302 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,6 +39,7 @@ "npm-registry-fetch": "16.1.0", "open": "9.1.0", "prompts": "2.4.2", + "qs": "6.11.2", "semver": "7.5.4", "treeify": "1.1.0", "url-join": "5.0.0", @@ -5185,8 +5186,13 @@ }, "node_modules/object-inspect": { "version": "1.12.3", +<<<<<<< HEAD "dev": true, "license": "MIT", +======= + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", +>>>>>>> f86794e (FAB-6401 stereotype deploy) "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5821,6 +5827,20 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/querystringify": { "version": "2.2.0", "license": "MIT" @@ -6227,6 +6247,142 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", +<<<<<<< HEAD +======= + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", +>>>>>>> f86794e (FAB-6401 stereotype deploy) "funding": [ { "type": "github", @@ -7329,5 +7485,5718 @@ "node": ">= 10" } } +<<<<<<< HEAD +======= + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true + }, + "@balena/dockerignore": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", + "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "dev": true, + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@eslint/js": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", + "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "dev": true + }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "requires": {} + }, + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@ljharb/through": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "@nodelib/fs.scandir": { + "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.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "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 + }, + "@nodelib/fs.walk": { + "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.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/agent": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.1.1.tgz", + "integrity": "sha512-6RlbiOAi6L6uUYF4/CDEkDZQnKw0XDsFJVrEpnib8rAx2WRMOsUyAdgnvDpX/fdkDWxtqE+NHwF465llI2wR0g==", + "requires": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "requires": { + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + }, + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + } + } + }, + "@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "requires": { + "semver": "^7.3.5" + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, + "@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "@sindresorhus/is": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==" + }, + "@sinonjs/commons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } + }, + "@sinonjs/samsam": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", + "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true + }, + "@supercharge/promise-pool": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-3.1.0.tgz", + "integrity": "sha512-gB3NukbIcYzRtPoE6dx9svQYPodxvnfQlaaQd8N/z87E6WaMfRE7o5HwB+LZ+KeM0nsNAq1n4TmBtfz1VCUR+Q==" + }, + "@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "requires": { + "defer-to-connect": "^2.0.1" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "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" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "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" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "async": "^3.2.3", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + } + }, + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "audit-ci": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.6.1.tgz", + "integrity": "sha512-zqZEoYfEC4QwX5yBkDNa0h7YhZC63HWtKtP19BVq+RS0dxRBInfmHogxe4VUeOzoADQjuTLZUI7zp3Pjyl+a5g==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "escape-string-regexp": "^4.0.0", + "event-stream": "4.0.1", + "jju": "^1.4.0", + "JSONStream": "^1.3.5", + "readline-transform": "1.0.0", + "semver": "^7.0.0", + "yargs": "^17.0.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "binaryextensions": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", + "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" + }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "requires": { + "big-integer": "^1.6.44" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + }, + "buildcheck": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.3.tgz", + "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", + "optional": true + }, + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "requires": { + "semver": "^7.0.0" + } + }, + "bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "requires": { + "run-applescript": "^5.0.0" + } + }, + "c8": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", + "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.6", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "cacache": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", + "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + }, + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + } + } + }, + "cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==" + }, + "cacheable-request": { + "version": "10.2.8", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.8.tgz", + "integrity": "sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A==", + "requires": { + "@types/http-cache-semantics": "^4.0.1", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.2", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "caxa": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/caxa/-/caxa-3.0.1.tgz", + "integrity": "sha512-ZVJg1FHU4KCJFCu46L6QI5bu8zxDYe5ExHoiTzW1SypKGpSkAOEVLI/+y6CMKlnwdWhyT+ZOYUBA09HzDgakpA==", + "dev": true, + "requires": { + "archiver": "^5.3.1", + "commander": "^9.4.1", + "crypto-random-string": "^5.0.0", + "dedent": "^0.7.0", + "execa": "^6.1.0", + "fs-extra": "^10.1.0", + "globby": "^13.1.2" + }, + "dependencies": { + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + } + } + }, + "chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "requires": { + "check-error": "^1.0.2" + } + }, + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "requires": { + "get-func-name": "^2.0.2" + } + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "ci-info": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-progress": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", + "requires": { + "string-width": "^4.2.3" + } + }, + "cli-spinners": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", + "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==" + }, + "cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==" + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==" + }, + "compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cpu-features": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.4.tgz", + "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", + "optional": true, + "requires": { + "buildcheck": "0.0.3", + "nan": "^2.15.0" + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true + }, + "crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "dev": true, + "requires": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + } + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-5.0.0.tgz", + "integrity": "sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==", + "dev": true, + "requires": { + "type-fest": "^2.12.2" + }, + "dependencies": { + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true + } + } + }, + "dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "requires": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + } + }, + "default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "requires": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + } + }, + "defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==" + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "docker-modem": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", + "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", + "requires": { + "debug": "^4.1.1", + "readable-stream": "^3.5.0", + "split-ca": "^1.0.1", + "ssh2": "^1.11.0" + } + }, + "dockerode": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", + "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", + "requires": { + "@balena/dockerignore": "^1.0.2", + "docker-modem": "^3.0.0", + "tar-fs": "~2.0.1" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "es-abstract": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + } + }, + "es-main": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.3.0.tgz", + "integrity": "sha512-AzORKdz1Zt97TzbYQnIrI3ZiibWpRXUfpo/w0xOJ20GpNYd2bd3MU9m31zS/aJ1TJl6JfLTok83Y8HjNunYT0A==" + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", + "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.53.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dev": true, + "requires": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "event-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" + } + }, + "execa": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "requires": { + "mimic-fn": "^4.0.0" + } + } + } + }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "requires": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" + }, + "is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" + } + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==" + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "requires": { + "minipass": "^7.0.3" + }, + "dependencies": { + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "gh-got": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-10.0.0.tgz", + "integrity": "sha512-ac0AmNAmdJt/PSCQEqG+qoKPZCmHP00kMWNjV1ve9nQpuQoyku7uyIACtYVtvTsCV+BLibfPo/LTvPOYBnV5sQ==", + "requires": { + "got": "^12.5.2" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + } + } + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + }, + "glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "dependencies": { + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + }, + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" + } + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "requires": { + "ini": "2.0.0" + } + }, + "globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "got": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", + "requires": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + } + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" + }, + "graphql-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", + "requires": { + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "requires": { + "lru-cache": "^10.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + } + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "requires": { + "debug": "^4.3.4" + } + } + } + }, + "http2-wrapper": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==" + }, + "husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + }, + "inquirer": { + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", + "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "requires": { + "@ljharb/through": "^2.3.11", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, + "requires": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + } + }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "requires": { + "is-docker": "^3.0.0" + }, + "dependencies": { + "is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==" + } + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "istextorbinary": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-6.0.0.tgz", + "integrity": "sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==", + "requires": { + "binaryextensions": "^4.18.0", + "textextensions": "^5.14.0" + } + }, + "jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "jmespath": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" + }, + "joi": { + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", + "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "jose": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.1.1.tgz", + "integrity": "sha512-bfB+lNxowY49LfrBO0ITUn93JbUhxUN8I11K6oI5hJu/G6PO6fEUddVLjqdD0cQ9SXIHWXuWh7eJYwZF7Z0N/g==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "keytar": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", + "requires": { + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" + } + }, + "keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + } + }, + "make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "requires": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "dependencies": { + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + } + } + }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "requires": { + "encoding": "^0.1.13", + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "dependencies": { + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + } + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } + } + }, + "mocked-env": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", + "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", + "dev": true, + "requires": { + "check-more-types": "2.24.0", + "debug": "4.3.2", + "lazy-ass": "1.6.0", + "ramda": "0.27.1" + }, + "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==" + }, + "multistream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", + "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", + "dev": true, + "requires": { + "once": "^1.4.0", + "readable-stream": "^3.6.0" + } + }, + "mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==" + }, + "nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "optional": true + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true + }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "nise": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", + "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^2.0.0", + "@sinonjs/fake-timers": "^10.0.2", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + } + } + } + } + }, + "nock": { + "version": "13.3.8", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.8.tgz", + "integrity": "sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" + } + }, + "node-abi": { + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", + "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", + "requires": { + "semver": "^7.3.5" + } + }, + "node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==" + }, + "npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "requires": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + } + }, + "npm-registry-fetch": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "requires": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + } + } + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + } + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "requires": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" + }, + "p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" + }, + "p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "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 + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "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-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "requires": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + }, + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + } + } + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "requires": { + "through": "~2.3" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", + "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", + "dev": true, + "requires": { + "@babel/generator": "7.18.2", + "@babel/parser": "7.18.4", + "@babel/types": "7.19.0", + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "globby": "^11.1.0", + "into-stream": "^6.0.0", + "is-core-module": "2.9.0", + "minimist": "^1.2.6", + "multistream": "^4.1.0", + "pkg-fetch": "3.4.2", + "prebuild-install": "7.1.1", + "resolve": "^1.22.0", + "stream-meter": "^1.0.4" + }, + "dependencies": { + "@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "requires": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + } + }, + "@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true + }, + "@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + } + } + }, + "pkg-fetch": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", + "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", + "dev": true, + "requires": { + "chalk": "^4.1.2", + "fs-extra": "^9.1.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.6", + "progress": "^2.0.3", + "semver": "^7.3.5", + "tar-fs": "^2.1.1", + "yargs": "^16.2.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } + } + }, + "prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "requires": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "requires": { + "minimatch": "^5.1.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "readline-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", + "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "requires": { + "lowercase-keys": "^3.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "requires": { + "execa": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + } + } + }, + "run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==" + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "requires": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "sinon": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", + "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.5", + "supports-color": "^7.2.0" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "requires": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "dependencies": { + "agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "requires": { + "debug": "^4.3.4" + } + } + } + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2" + } + }, + "split-ca": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", + "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" + }, + "ssh2": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", + "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", + "requires": { + "asn1": "^0.2.4", + "bcrypt-pbkdf": "^1.0.2", + "cpu-features": "~0.0.4", + "nan": "^2.16.0" + } + }, + "ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "requires": { + "minipass": "^7.0.3" + }, + "dependencies": { + "minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" + } + } + }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "stream-meter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", + "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", + "dev": true, + "requires": { + "readable-stream": "^2.1.4" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + } + } + }, + "tar-fs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", + "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "textextensions": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.15.0.tgz", + "integrity": "sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "treeify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==" + }, + "tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "requires": { + "unique-slug": "^4.0.0" + } + }, + "unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-join": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", + "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==" + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + }, + "v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "requires": { + "builtins": "^5.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "dependencies": { + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + } + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "dev": true, + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" + } + } +>>>>>>> f86794e (FAB-6401 stereotype deploy) } } diff --git a/package.json b/package.json index 141bb920..b3917c96 100644 --- a/package.json +++ b/package.json @@ -76,6 +76,7 @@ "npm-registry-fetch": "16.1.0", "open": "9.1.0", "prompts": "2.4.2", + "qs": "6.11.2", "semver": "7.5.4", "treeify": "1.1.0", "url-join": "5.0.0", diff --git a/src/client/catalog.js b/src/client/catalog.js index 927786ee..2c820d68 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -17,6 +17,7 @@ import debugSetup from 'debug'; import FormData from 'form-data'; import http from 'https'; +import qs from 'qs'; import fs from 'node:fs'; import { got, defaultHeaders } from './apiutils.js'; import { @@ -100,14 +101,15 @@ export default class Catalog { } } - deploySkill(projectId, token, skillName, verbose = false) { + deploySkill(projectId, token, skillName, stereotypes, dryrun = false, verbose = false) { checkProject(projectId); const endpoint = `${this.endpoints.skills(projectId)}/${encodeURIComponent(skillName)}/deploy`; debug('deploySkill(%s) => %s', skillName, endpoint); return got .get(endpoint, { headers: defaultHeaders(token), - searchParams: { verbose }, + // Using qs as got doesn't handle serializing arrays well and this works with TSOA OOB + searchParams: qs.stringify({ verbose, dryrun, stereotypes }), }).json(); } diff --git a/src/commands/skills.js b/src/commands/skills.js index f8247af1..55cd3ead 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -19,7 +19,7 @@ import { printExtendedLogs, handleDeleteFailure, getFilteredOutput, - writeOutput, printErrorDetails, + writeOutput, printErrorDetails, handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -200,11 +200,14 @@ export class DeploySkillCommand { await Promise.all(skillNames.map(async (skillName) => { debug('%s.executeDeploySkill(%s)', profile.name, skillName); try { - const response = await catalog.deploySkill(options.project || profile.project, profile.token, skillName, options.verbose); - printSuccess(`Deployed Skill ${skillName}: ${response.message}`, options); + const response = await catalog.deploySkill(options.project || profile.project, profile.token, skillName, options.stereotypes, options.dryrun, options.verbose); + if (options.dryrun) { + printSuccess(JSON.stringify(response, null, 2), options); + } else { + printSuccess(`Deployed Skill ${skillName}: ${response.message}`, options); + } } catch (err) { - const { status, message } = constructError(err); - printError(`Failed to deploy Skill ${skillName}: ${status} ${message}`, options); + handleError(err, options, `Failed to deploy Skill ${skillName}`); } })); } From 8f8cf76d8600e585ac50afde8df7be539bb64533 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Fri, 29 Dec 2023 19:15:53 +0530 Subject: [PATCH 842/864] FAB-6399 Fix invalid sort output (#733) * Fix invalid sort output * fix lint issues --- src/client/connections.js | 4 +++- src/commands/connections.js | 23 ++++++++++++----------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/client/connections.js b/src/client/connections.js index e5d4b7f9..dcd86079 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -93,6 +93,8 @@ export default (class Connections { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }).json(); + }).json() + .then((conns) => conns) + .catch((err) => constructError(err)); } }); diff --git a/src/commands/connections.js b/src/commands/connections.js index de96a98e..547858c6 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -18,7 +18,6 @@ import { handleListFailure, handleDeleteFailure, getFilteredOutput, - printErrorDetails, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -170,11 +169,11 @@ export class ListConnectionsTypes { const profile = await loadProfile(options.profile); debug('%s.listConnectionsTypes()', profile.name); const conns = new Connections(profile.url); + conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort) // eslint-disable-next-line consistent-return - try { - const response = await conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort); - const result = response?.connectionTypes; - // TODO remove --query on deprecation + .then((response) => { + if (response.success) { + const result = response.connectionTypes; if (options.json || options.query) { getFilteredOutput(result, options); } else { @@ -207,11 +206,13 @@ export class ListConnectionsTypes { }, ]; handleTable(tableSpec, result, null, 'No connection types found'); - } - } catch (err) { - debug(err); - printError(`Failed to list connection types: ${err.status} ${err.message}`, options, false); - printErrorDetails(err?.response, options); - } + } + } else { + return handleListFailure(response, options, 'Connections'); + } + }) + .catch((err) => { + printError(`Failed to list connection types: ${err.status} ${err.message}`, options); + }); } } From 10f302710dcb036bcbf2c8122eaac3998bfbc8a5 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Wed, 3 Jan 2024 21:46:07 -0600 Subject: [PATCH 843/864] Add environment variable & CLI flag overrides for Timeout & Retry settings (#732) * Add ability to set custom timeouts via environment variables * Resolve edge case where multiple messages are printed about using CORTEX_TOKEN env var * Add commenting to always create valid env vars & support 'eval export CORTEX_TOKEN=eyJhbGciOiJFZERTQSIsImtpZCI6InpkYVA3VktQQXEzT2FhVXV6d3laWDhOSG5EbENidXZ4ZDhBNmhXdkZBQTgifQ.eyJzdWIiOiI1NWE0YTlmYS1hNzNhLTRjYzgtYWI1ZS1iMTc2MDA0YzQ4ODIiLCJhdWQiOiJzZW5zYSIsImlzcyI6InRlY25vdHJlZS5jb20iLCJpYXQiOjE3MDI1Njg1OTUsImV4cCI6MTcwMjY1NDk5NX0.T_8rwd3vsgqNDPM3LHC5ZGpSByT_KFyteFqR3yq56fERx7EdRATEqdUisIKzZzKfE-QGbAeg1H4QE0I2k3FnCw export CORTEX_URI=https://api.dci-dev.dev-eks.insights.ai export CORTEX_URL=https://api.dci-dev.dev-eks.insights.ai export CORTEX_PROJECT=laguirre-testi-69257 export CORTEX_TIMEOUT_LOOKUP=1000 # (unit: ms) export CORTEX_TIMEOUT_CONNECT=1000 # (unit: ms) export CORTEX_TIMEOUT_SECURE_CONNECT=1000 # (unit: ms) export CORTEX_TIMEOUT_SOCKET=1000 # (unit: ms) export CORTEX_TIMEOUT_RESPONSE=2000 # (unit: ms)' * Fix spacing issue * Update unit tests * Revert default # retries to 3 and add CORTEX_API_RETRY env var override * Increment lookup and connect default timeout values * Remove duplicate code between constructError() & handleError() in utils * Update error handling to better report errors from timeout * Fix line count * Add --no-timeout flag to disable all timeouts - takes priority over env vars * Fix wording * Remove hardcoded token * fix linting error * Fix unit tests checking for dynamic value for token in Cortex Configure Env * Add additional help text the to the configure env commmand * Add additional reference text as bash comments to configure env command and make test assertion easier to maintain --------- Co-authored-by: Yashwanth Reddy <yreddy@cognitivescale.com> --- bin/cortex.js | 24 +++++-- src/client/apiutils.js | 127 ++++++++++++++++++++++++++++++++++++-- src/commands/configure.js | 58 +++++++++++++++++ src/commands/utils.js | 57 ++++++++--------- src/compatibility.js | 39 ++++++------ src/config.js | 1 - test/configure.js | 105 +++++++++++++++++++++++++++++++ 7 files changed, 347 insertions(+), 64 deletions(-) diff --git a/bin/cortex.js b/bin/cortex.js index 0acfcdcb..44788305 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -1,7 +1,7 @@ #!/usr/bin/env node import { Command } from 'commander'; import esMain from 'es-main'; -import { readPackageJSON } from '../src/commands/utils.js'; +import { readPackageJSON, printError } from '../src/commands/utils.js'; import { loadProfileWithoutFailure } from '../src/config.js'; import { getAllSubcommands, FeatureController } from '../src/features.js'; @@ -15,11 +15,19 @@ async function resolveAvailableSubcommands(profileName) { // testing supportedCommands = getAllSubcommands(); } else { - if (profile === undefined || profile === null) { - // Check to only Load the users Profile & do a compatibility check - // once on startup - profile = await loadProfileWithoutFailure(profileName); - } + if (profile === undefined || profile === null) { + // Alert the user that CORTEX_TOKEN is set, this has a higher + // priority than other methods of retrieving the token. The Alert + // happens at startup, rather than downstream when getting the value + // from the env, as to only alert the user once (avoid duplicate + // messages in cases where the variable is loaded multiple times). + if (process.env.CORTEX_TOKEN) { + printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); + } + // Check to only Load the users Profile & do a compatibility check + // once on startup + profile = await loadProfileWithoutFailure(profileName); + } if (profile) { // if the profile was found, then side-load the token & feature // flags to avoid future calls to the server @@ -49,6 +57,10 @@ export async function create(profileName) { .option('--debug', 'Enables enhanced log output for debugging', false) .on('option:debug', () => { process.env.DEBUG = '*'; + }) + .option('--no-timeout', 'Disables all network timeouts for slower connections (not recommended)') + .on('option:no-timeout', () => { + process.env.CORTEX_TIMEOUT_IGNORE = '*'; }); const supportedCommands = await resolveAvailableSubcommands(profileName); const _toObject = (nameAndArgs, description) => ({ nameAndArgs, description }); diff --git a/src/client/apiutils.js b/src/client/apiutils.js index f898c441..29ab9ad2 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -14,17 +14,17 @@ function getUserAgent() { const gotOpts = { followRedirect: false, - // Put a reasonable timeout + // Put a reasonable timeout, see: https://github.com/sindresorhus/got/blob/main/documentation/6-timeout.md timeout: { - lookup: 100, - connect: 50, + lookup: 75, // greater than 100 not recommended + connect: 100, secureConnect: 100, socket: 1000, // send: 10000, // Not "SAFE" with large uploads response: 2000, }, retry: { - limit: 0, // no retries - fail fast + limit: 3, // 3 retries }, headers: { 'user-agent': getUserAgent(), @@ -57,6 +57,123 @@ const gotOpts = { ], }, }; -const gotExt = got.extend(gotOpts); + +// TODO: convert to ES6 class (use getters, etc.) or Typescript? +function gotEnvValues() { + return { + timeout: [ + { + envVar: 'CORTEX_TIMEOUT_LOOKUP', + envValue: process.env.CORTEX_TIMEOUT_LOOKUP, + defaultValue: gotOpts.timeout.lookup, + key: 'lookup', + }, + { + envVar: 'CORTEX_TIMEOUT_CONNECT', + envValue: process.env.CORTEX_TIMEOUT_CONNECT, + defaultValue: gotOpts.timeout.connect, + key: 'connect', + }, + { + envVar: 'CORTEX_TIMEOUT_SECURE_CONNECT', + envValue: process.env.CORTEX_TIMEOUT_SECURE_CONNECT, + defaultValue: gotOpts.timeout.secureConnect, + key: 'secureConnect', + }, + { + envVar: 'CORTEX_TIMEOUT_SOCKET', + envValue: process.env.CORTEX_TIMEOUT_SOCKET, + defaultValue: gotOpts.timeout.socket, + key: 'socket', + }, + // { + // envVar: 'CORTEX_TIMEOUT_SEND', + // envValue: process.env.CORTEX_TIMEOUT_SEND, + // defaultValue: gotOpts.timeout.send, + // key: 'send', + // }, + { + envVar: 'CORTEX_TIMEOUT_RESPONSE', + envValue: process.env.CORTEX_TIMEOUT_RESPONSE, + defaultValue: gotOpts.timeout.response, + key: 'response', + }, + + ], + retry: [ + { + envVar: 'CORTEX_API_RETRY', + envValue: process.env.CORTEX_API_RETRY, + defaultValue: gotOpts.retry.limit, + key: 'limit', + }, + ], + }; +} + +export function getGotEnvOverrides() { + function resolveNumericValue(v) { + // if its nullish -> keep the default + // if its a non-negative number -> parse as an int, then apply to k + // if its falsey or not a number -> use no timeout + if (v == null) { + return null; // use default + } + const value = parseInt(v, 10); + if (value >= 0) { + return value; // user defined int + } + return false; // use no timeout + } + + // NOTE: 'parsedValue' & 'userDefined' fields are resolved dynamically + const values = gotEnvValues(); + Object.keys(values.timeout).forEach((k) => { + // Parse each environment variable override. If result is (bool) false, + // then the key should NOT be set. If it's nullish, then the user didn't + // set a value. + const entry = values.timeout[k]; + entry.parsedValue = resolveNumericValue(entry.envValue); + entry.skipAssignment = (entry.parsedValue === false); + entry.userDefined = (entry.parsedValue != null); + }); + Object.keys(values.retry).forEach((k) => { + // Ditto (from above). + const entry = values.retry[k]; + entry.parsedValue = resolveNumericValue(entry.envValue); + entry.skipAssignment = (entry.parsedValue === false); + entry.userDefined = (entry.parsedValue != null); + }); + debug('got Environment Variables: %s', JSON.stringify(values)); + return values; +} + +export function getTimeoutUnit() { + return 'ms'; +} + +function getEnvOptions() { + const retry = {}; + const timeout = {}; + if (process.env.CORTEX_TIMEOUT_IGNORE) { + debug('Ignoring all timeout configuration from env variables'); + } else { + debug('Loading timeout configuration from env variables'); + const { timeout: timeoutValues, retry: retryValues } = getGotEnvOverrides(); + timeoutValues.forEach((t) => { + if (!t.skipAssignment) { + timeout[t.key] = t.parsedValue ?? t.defaultValue; // could use 'userDefined', but ?? is shorter + } + }); + retryValues.forEach((v) => { + if (!v.skipAssignment) { + retry[v.key] = v.parsedValue ?? v.defaultValue; // could use 'userDefined', but ?? is shorter + } + }); + } + return { ...gotOpts, timeout, retry }; +} + +const gotExt = got.extend(getEnvOptions()); export const defaultHeaders = (token, otherHeaders = {}) => ({ Authorization: `Bearer ${token}`, ...otherHeaders }); export { gotExt as got }; diff --git a/src/commands/configure.js b/src/commands/configure.js index ac26ab00..e46a3f6f 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -7,6 +7,7 @@ import { readConfig, defaultConfig, generateJwt, loadProfile, durationRegex, } from '../config.js'; import { printSuccess, printError, useColor } from './utils.js'; +import { getTimeoutUnit, getGotEnvOverrides } from '../client/apiutils.js'; /* * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * @@ -157,7 +158,11 @@ export const PrintEnvVars = class { async execute(options) { try { + // Token & URI are not picked from env variables, likely because + // this command is meant to help the user configure their env based + // on their profile. Picking up env variables would be inconsistent! const vars = []; + const defaults = []; const profile = await loadProfile(options.profile, false); const ttl = options.ttl || '1d'; if (!durationRegex.test(ttl)) { @@ -169,6 +174,59 @@ export const PrintEnvVars = class { // not sure why we used URI previously ?? vars.push(`export CORTEX_URL=${profile.url}`); vars.push(`export CORTEX_PROJECT=${options.project || profile.project}`); + + // Include timeout options with units & default + const { timeout, retry } = getGotEnvOverrides(); + const unit = getTimeoutUnit(); + const len = 60; // fixed length to apply consistent spacing + timeout.forEach((t) => { + if (t.userDefined) { + // Print the exact value set by the user & units + const unitPart = `# (unit: ${unit})`; + const exportPart = `export ${t.envVar}=${t.envValue}`; + const spacing = ' '.repeat(len - exportPart.length); + vars.push(`${exportPart}${spacing}${unitPart}`); + } else { + // Print comment showing default & units + const defaultPart = `(default: ${t.defaultValue}, unit: ${unit})`; + const exportPart = `#export ${t.envVar}=`; + const spacing = ' '.repeat(len - exportPart.length); + defaults.push(`${exportPart}${spacing}${defaultPart}`); + } + }); + + // Include retry options with defaults + retry.forEach((v) => { + if (v.userDefined) { + // Print the exact value set by the user + const exportPart = `export ${v.envVar}=${v.envValue}`; + vars.push(`${exportPart}`); + } else { + // Print comment showing default + const defaultPart = `(default: ${v.defaultValue})`; + const exportPart = `#export ${v.envVar}=`; + const spacing = ' '.repeat(len - exportPart.length); + defaults.push(`${exportPart}${spacing}${defaultPart}`); + } + }); + + // Include reference text as bash comments (slightly verbose) + if (defaults.length > 0) { + vars.push('\n# The default value is used for the following environment variables.', + '# Non-negative integers values will be applied to timeouts, while all other', + '# values will disable the timeout. For additional information on the timeout', + '# meanings, refer to the corresponding timeout values at:', + '# https://github.com/sindresorhus/got/blob/main/documentation/6-timeout.md', + '#', + ...defaults); + } else { + vars.push('\n# Non-negative integer values will be applied to timeouts, while all other', + '# values will disable the timeout. For additional information on the timeout', + '# meanings, refer to the corresponding timeout values at:', + '# https://github.com/sindresorhus/got/blob/main/documentation/6-timeout.md', + '#', + ...defaults); + } return printSuccess(vars.join('\n'), { color: 'off' }); } catch (err) { return printError(err.message, {}, true); diff --git a/src/commands/utils.js b/src/commands/utils.js index 02cb34c0..53e1ab65 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -138,6 +138,12 @@ export const constructError = (error) => { } else if (error.name === 'ParseError' || error.code === 'ERR_BODY_PARSE_FAILURE') { errorText = 'Unable to parse response from server. Try running again with "--debug" for more details.'; details = error.message; + } else if (error.name === 'TimeoutError' || error.code === 'ETIMEDOUT') { + errorText = error.message; + details = '\nTry running the command again with \'--no-timeout\' or increase\n' + + 'the network timeout values via environment variables. Run\n' + + '"cortex configure env" to view the environment variables\n' + + 'controlling the network timeout settings.'; } // if JSON was returned, look for either a message or error in it try { @@ -556,41 +562,30 @@ export function checkForEmptyArgs(args) { }); } -// Yet another error handling function, need to rationalize these +/** + * Prints a normalized version of any given Error and exits the proram (see + * `@constructError()` for how the error is normalized). + * + * @param {Error} error + * @param {object} options + * @param {string} prefix + */ export function handleError(error, options, prefix = 'Error') { - let details; - let respCode; - // fallback to text in message or standard error message - const errResp = error?.response; - let errorText = errResp?.body; - if (errorText?.trim().length === 0 || error.name === 'RequestError') { - errorText = error.message; - } else if (error.name === 'ParseError' || error.code === 'ERR_BODY_PARSE_FAILURE') { - errorText = 'Unable to parse response from server. Try running again with "--debug" for more details.'; - details = error.message; - } - // if JSON was returned, look for either a message or error in it - try { - const resp = errResp ? JSON.parse(errorText) : {}; - respCode = resp.code; - if (resp?.message || resp?.error) errorText = resp?.message || resp?.error; - // eslint-disable-next-line prefer-destructuring - details = resp.details; - } catch (e) { - // Guess it wasn't JSON! - } - // todo make figuring out the status code more consistent? this might be a holdover from request vs got? - const status = errResp?.statusCode || respCode || error?.code || error?.status || ''; - printError(`${prefix}: ${status}, ${errorText}`, undefined, false); - if (details !== undefined && details !== null) { - // TSOA API validation error case - if (!Array.isArray(details)) { - const transformedResponse = transformTSOAValidation(details); + // TODO: why aren't 'options' used? + const normedError = constructError(error); + printError(`${prefix}: ${normedError.status}, ${normedError.message}`, undefined, false); + if (normedError.details !== undefined && normedError.details !== null) { + if (typeof normedError.details === 'string' || normedError.details instanceof String) { + // Print details if its a string, and exit + printError(normedError.details); + } else if (!Array.isArray(normedError.details)) { + // TSOA API validation error case + const transformedResponse = transformTSOAValidation(normedError.details); if (transformedResponse !== null) { - details = transformedResponse; + normedError.details = transformedResponse; } } - printTable(OPTIONSTABLEFORMAT, details); + printTable(OPTIONSTABLEFORMAT, normedError.details); } printError(''); // Just exit } diff --git a/src/compatibility.js b/src/compatibility.js index 04f6732a..473d5b7d 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -12,7 +12,7 @@ import npmFetch from 'npm-registry-fetch'; import Semver from 'semver'; import { got } from './client/apiutils.js'; import { loadProfile } from './config.js'; -import { printError, printWarning, readPackageJSON } from './commands/utils.js'; +import { handleError, constructError, printError, printWarning, readPackageJSON } from './commands/utils.js'; const debug = debugSetup('cortex:cli'); @@ -44,7 +44,7 @@ function getRequiredVersion(profile) { const { semver } = res; return semver; }).catch((err) => { - throw new Error(`Unable to fetch compatibility: ${err.message}`); + throw err; // let caller deal with it }); } @@ -74,28 +74,25 @@ function upgradeRequired(args) { process.exit(-1); } +// exported for testing purposes export async function getCompatibility(profile) { debug('getCompatibility => %s profile', profile.name); + // fail if unable to contact cortex service (allow caller to handle error) + const requirements = await getRequiredVersion(profile); + const satisfied = Semver.satisfies(pkg.version, requirements); try { - // fail if unable to contact cortex service - const requirements = await getRequiredVersion(profile); - const satisfied = Semver.satisfies(pkg.version, requirements); - try { - // warn user but don't fail - const versions = await getAvailableVersions(pkg.name); - debug('getCompatibility => versions: %s, requirements: %s', versions, requirements); - const compatibleVersions = filter((v) => Semver.satisfies(v, requirements), versions); - debug('getCompatibility => compatible versions: %s', compatibleVersions); - const { version: current } = pkg; - const latest = last(compatibleVersions); - debug('getCompatibility => satisfied: %s', satisfied); - return ({ current, latest, satisfied }); - } catch (e) { - printWarning(`Warning unable to check for cortex-cli update: ${e.message}`); - return ({ current: pkg.version, latest: pkg.version, satisfied }); - } + // Warn user but don't fail if npm is unavailable + const versions = await getAvailableVersions(pkg.name); + debug('getCompatibility => versions: %s, requirements: %s', versions, requirements); + const compatibleVersions = filter((v) => Semver.satisfies(v, requirements), versions); + debug('getCompatibility => compatible versions: %s', compatibleVersions); + const { version: current } = pkg; + const latest = last(compatibleVersions); + debug('getCompatibility => satisfied: %s', satisfied); + return ({ current, latest, satisfied }); } catch (e) { - throw new Error(`Unable to contact cortex: ${e.message}`); + printWarning(`Warning unable to check for cortex-cli update: ${e.message}`); + return ({ current: pkg.version, latest: pkg.version, satisfied }); } } @@ -114,7 +111,7 @@ export async function doCompatibilityCheck(profile, doCheck = true) { upgradeAvailable({ current, latest }); } } catch (error) { - printError(error); + handleError(error, undefined, 'Unable to contact cortex for compatibility check'); } } return Promise.resolve(); diff --git a/src/config.js b/src/config.js index 90d1377d..ffb7034e 100644 --- a/src/config.js +++ b/src/config.js @@ -126,7 +126,6 @@ async function loadDynamicProfileProps(profileType, useenv) { let jwtFromEnv; if (process.env.CORTEX_TOKEN) { jwtFromEnv = process.env.CORTEX_TOKEN; - printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); } profileType.url = getCortexUrlFromEnv() || profileType.url; profileType.token = jwtFromEnv || profileType.token; diff --git a/test/configure.js b/test/configure.js index 307eca1e..ecc6fe6e 100644 --- a/test/configure.js +++ b/test/configure.js @@ -45,6 +45,15 @@ describe('configure', () => { printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); fs.copyFileSync('./test/cortex/config', path.join(tmpDir, 'config')); + // reset env variables + delete process.env.CORTEX_TOKEN; + delete process.env.CORTEX_URI; + delete process.env.CORTEX_TIMEOUT_LOOKUP; + delete process.env.CORTEX_TIMEOUT_CONNECT; + delete process.env.CORTEX_TIMEOUT_SECURE_CONNECT; + delete process.env.CORTEX_TIMEOUT_SOCKET; + delete process.env.CORTEX_TIMEOUT_RESPONSE; + delete process.env.CORTEX_API_RETRY; }); afterEach(() => { sandbox.restore(); @@ -121,4 +130,100 @@ describe('configure', () => { await create().parseAsync(['node', 'configure', 'list']); expect(getPrintedLines()).to.eql(['default', 'other', 'conftest']); }); + + describe('Configure Env', () => { + const project = 'testproject'; + const totalVars = 4 + 5 + 1; // # default vars + # timeouts vars + # retries var + it('prints cortex env variables', async () => { + await create().parseAsync(['node', 'configure', 'env', '--project', project]); + const output = getPrintedLines()[0].split('\n'); + expect(output?.length).to.be.above(totalVars); // above because of additional text + // token is dynamic (not checking exact value) + // eslint-disable-next-line no-unused-expressions + expect(output.some((v) => v.includes('export CORTEX_TOKEN='))).to.be.true; + expect(output).to.include('export CORTEX_URI=http://localhost:8000'); + expect(output).to.include('export CORTEX_URL=http://localhost:8000'); + expect(output).to.include(`export CORTEX_PROJECT=${project}`); + // default timeouts + expect(output).to.include('#export CORTEX_TIMEOUT_LOOKUP= (default: 75, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_CONNECT= (default: 100, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_SECURE_CONNECT= (default: 100, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_SOCKET= (default: 1000, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_RESPONSE= (default: 2000, unit: ms)'); + expect(output).to.include('#export CORTEX_API_RETRY= (default: 3)'); + }); + + it('configure env does NOT pick up CORTEX_TOKEN & CORTEX_URI environment variables', async () => { + // Token & URI are not picked from env variables, likely because + // this command is meant to help the user configure their env based + // on their profile. Picking up env variables would be + // inconsistent. + process.env.CORTEX_TOKEN = 'asdf'; + process.env.CORTEX_URI = 'http://localhost:5000'; + await create().parseAsync(['node', 'configure', 'env', '--project', project]); + const output = getPrintedLines()[0].split('\n'); + expect(output?.length).to.be.above(totalVars); // above because of additional text + // token is dynamic (not checking exact value) + // eslint-disable-next-line no-unused-expressions + expect(output.some((v) => v.includes('export CORTEX_TOKEN='))).to.be.true; + expect(output).to.include('export CORTEX_URI=http://localhost:8000'); + expect(output).to.include('export CORTEX_URL=http://localhost:8000'); + expect(output).to.include(`export CORTEX_PROJECT=${project}`); + // default timeouts + expect(output).to.include('#export CORTEX_TIMEOUT_LOOKUP= (default: 75, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_CONNECT= (default: 100, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_SECURE_CONNECT= (default: 100, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_SOCKET= (default: 1000, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_RESPONSE= (default: 2000, unit: ms)'); + expect(output).to.include('#export CORTEX_API_RETRY= (default: 3)'); + }); + + it('prints user defined timeout environment variables', async () => { + process.env.CORTEX_API_RETRY = 0; + process.env.CORTEX_TIMEOUT_LOOKUP = 100; + process.env.CORTEX_TIMEOUT_CONNECT = 200; + process.env.CORTEX_TIMEOUT_SECURE_CONNECT = 'false'; + process.env.CORTEX_TIMEOUT_SOCKET = 1000; + process.env.CORTEX_TIMEOUT_RESPONSE = 2000; + await create().parseAsync(['node', 'configure', 'env', '--project', project]); + const output = getPrintedLines()[0].split('\n'); + expect(output?.length).to.be.above(totalVars); // above because of additional text + // token is dynamic (not checking exact value) + // eslint-disable-next-line no-unused-expressions + expect(output.some((v) => v.includes('export CORTEX_TOKEN='))).to.be.true; + expect(output).to.include('export CORTEX_URI=http://localhost:8000'); + expect(output).to.include('export CORTEX_URL=http://localhost:8000'); + expect(output).to.include(`export CORTEX_PROJECT=${project}`); + // prints user defined variables + expect(output).to.include('export CORTEX_TIMEOUT_LOOKUP=100 # (unit: ms)'); + expect(output).to.include('export CORTEX_TIMEOUT_CONNECT=200 # (unit: ms)'); + expect(output).to.include('export CORTEX_TIMEOUT_SECURE_CONNECT=false # (unit: ms)'); + expect(output).to.include('export CORTEX_TIMEOUT_SOCKET=1000 # (unit: ms)'); + expect(output).to.include('export CORTEX_TIMEOUT_RESPONSE=2000 # (unit: ms)'); + expect(output).to.include('export CORTEX_API_RETRY=0'); + }); + + it('prints user defined timeout environment variables along with defaults', async () => { + process.env.CORTEX_API_RETRY = 0; + process.env.CORTEX_TIMEOUT_CONNECT = 200; + process.env.CORTEX_TIMEOUT_SECURE_CONNECT = 'false'; + await create().parseAsync(['node', 'configure', 'env', '--project', project]); + const output = getPrintedLines()[0].split('\n'); + expect(output?.length).to.be.above(totalVars); // above because of additional text + // token is dynamic (not checking exact value) + // eslint-disable-next-line no-unused-expressions + expect(output.some((v) => v.includes('export CORTEX_TOKEN='))).to.be.true; + expect(output).to.include('export CORTEX_URI=http://localhost:8000'); + expect(output).to.include('export CORTEX_URL=http://localhost:8000'); + expect(output).to.include(`export CORTEX_PROJECT=${project}`); + // default timeouts + expect(output).to.include('#export CORTEX_TIMEOUT_LOOKUP= (default: 75, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_SOCKET= (default: 1000, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_RESPONSE= (default: 2000, unit: ms)'); + // prints user defined variables + expect(output).to.include('export CORTEX_TIMEOUT_CONNECT=200 # (unit: ms)'); + expect(output).to.include('export CORTEX_TIMEOUT_SECURE_CONNECT=false # (unit: ms)'); + expect(output).to.include('export CORTEX_API_RETRY=0'); + }); + }); }); From 3e3da5d8763769cc2cc21898993f76b4fbe32394 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Thu, 4 Jan 2024 10:31:57 -0600 Subject: [PATCH 844/864] Update for sonar + new gocd-agent, bump node build image 16 -> 18 --- build.sh | 1 + c12e-ci.yml | 2 +- cortex-cli.gocd.yaml | 32 +- package-lock.json | 5999 +------------------------------------- package.json | 8 +- sonar-project.properties | 14 +- 6 files changed, 167 insertions(+), 5889 deletions(-) diff --git a/build.sh b/build.sh index 9b5bf0dc..0a28605d 100755 --- a/build.sh +++ b/build.sh @@ -37,6 +37,7 @@ function docker_build(){ npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm rebuild npm test + npm scan echo ${VERSION} > version.txt ./generate_docs.sh BRANCH=$(git symbolic-ref --short -q HEAD) diff --git a/c12e-ci.yml b/c12e-ci.yml index d0430d68..f319e78d 100644 --- a/c12e-ci.yml +++ b/c12e-ci.yml @@ -1,3 +1,3 @@ builder: - image: node:16.15.0-bullseye + image: node:18.19-bookworm command: "./build.sh CI" diff --git a/cortex-cli.gocd.yaml b/cortex-cli.gocd.yaml index fe8d95ec..5933f9b5 100644 --- a/cortex-cli.gocd.yaml +++ b/cortex-cli.gocd.yaml @@ -11,7 +11,7 @@ pipelines: clean_workspace: yes jobs: Build: - elastic_profile_id: gocd-test-agent-dind + elastic_profile_id: gocd-agent-dind-2023 artifacts: - build: source: cruise-output/buildReport*.json @@ -21,24 +21,16 @@ pipelines: source: cortex-cli-docs.md - build: source: cortex-cli.tgz - - test: - source: coverage - tabs: - coverage: testoutput/coverage/index.html tasks: - script: | - set -eux - git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git - ./gocd-pipeline-scripts/common/c12e-common.sh dev - ./gocd-pipeline-scripts/common/sonar-scan.sh scan - echo ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli + c12e-common.sh dev - publish: clean_workspace: true approval: type: manual jobs: Promote: - elastic_profile_id: gocd-test-agent-dind + elastic_profile_id: gocd-agent-dind-2023 environment_variables: PROMOTE_BRANCH: "main" tasks: @@ -69,7 +61,7 @@ pipelines: clean_workspace: yes jobs: Build: - elastic_profile_id: gocd-test-agent-dind + elastic_profile_id: gocd-agent-dind-2023 artifacts: - build: source: cortex-cli-docs.md @@ -81,14 +73,12 @@ pipelines: coverage: testoutput/coverage/index.html tasks: - script: | - git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git - ./gocd-pipeline-scripts/common/c12e-common.sh master - echo ./gocd-pipeline-scripts/cortex5/docs/update-docs.sh cli + c12e-common.sh master - publishDocs: clean_workspace: yes jobs: commitDocs: - elastic_profile_id: gocd-test-agent-dind + elastic_profile_id: gocd-agent-dind-2023 tasks: - fetch: stage: build @@ -121,7 +111,7 @@ pipelines: allow_only_on_success: false jobs: Build: - elastic_profile_id: gocd-test-agent-dind + elastic_profile_id: gocd-agent-dind-2023 artifacts: - build: source: cruise-output/buildReport*.json @@ -131,13 +121,7 @@ pipelines: source: cortex-cli-docs.md - build: source: cortex-cli.tgz - - test: - source: coverage - tabs: - coverage: testoutput/coverage/index.html timeout: 0 tasks: - script: | - set -eux - git clone git@github.com:CognitiveScale/gocd-pipeline-scripts.git - ./gocd-pipeline-scripts/common/c12e-common.sh dev + c12e-common.sh dev diff --git a/package-lock.json b/package-lock.json index 97ba0302..1a900f91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,7 +67,8 @@ "mocked-env": "1.3.5", "nock": "13.3.8", "pkg": "5.8.1", - "sinon": "17.0.1" + "sinon": "17.0.1", + "sonarqube-scanner": "3.3.0" }, "engines": { "node": ">=16.0.0" @@ -929,6 +930,15 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/adm-zip": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", + "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, "node_modules/agent-base": { "version": "6.0.2", "dev": true, @@ -1933,6 +1943,15 @@ "version": "1.1.4", "license": "MIT" }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "license": "MIT", @@ -2881,6 +2900,18 @@ "node": ">=4" } }, + "node_modules/fancy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-2.0.0.tgz", + "integrity": "sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==", + "dev": true, + "dependencies": { + "color-support": "^1.1.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "dev": true, @@ -4252,6 +4283,18 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/jest-sonar-reporter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", + "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==", + "dev": true, + "dependencies": { + "xml": "^1.0.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/jju": { "version": "1.4.0", "dev": true, @@ -5089,6 +5132,18 @@ "version": "4.3.0", "license": "MIT" }, + "node_modules/node-downloader-helper": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/node-downloader-helper/-/node-downloader-helper-2.1.9.tgz", + "integrity": "sha512-FSvAol2Z8UP191sZtsUZwHIN0eGoGue3uEXGdWIH5228e9KH1YHXT7fN8Oa33UGf+FbqGTQg3sJfrRGzmVCaJA==", + "dev": true, + "bin": { + "ndh": "bin/ndh" + }, + "engines": { + "node": ">=14.18" + } + }, "node_modules/node-fetch": { "version": "2.6.7", "license": "MIT", @@ -5186,13 +5241,9 @@ }, "node_modules/object-inspect": { "version": "1.12.3", -<<<<<<< HEAD - "dev": true, - "license": "MIT", -======= "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", ->>>>>>> f86794e (FAB-6401 stereotype deploy) + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6247,8 +6298,6 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", -<<<<<<< HEAD -======= "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ @@ -6266,139 +6315,6 @@ } ] }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", ->>>>>>> f86794e (FAB-6401 stereotype deploy) - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/safe-regex-test": { "version": "1.0.0", "dev": true, @@ -6467,9 +6383,17 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/side-channel": { "version": "1.0.4", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.0", @@ -6570,6 +6494,15 @@ "node": ">=8" } }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/smart-buffer": { "version": "4.2.0", "license": "MIT", @@ -6612,6 +6545,69 @@ "node": ">= 14" } }, + "node_modules/sonarqube-scanner": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/sonarqube-scanner/-/sonarqube-scanner-3.3.0.tgz", + "integrity": "sha512-G1A6nXT3GwoK5eRwHfFrR/7ThiDfaRefWPIFQ+ifwFOQ/V9OwziLpZBdWZgmZp21kBRnzAMvjcTzgZMqGBXQKA==", + "dev": true, + "dependencies": { + "adm-zip": "^0.5.10", + "fancy-log": "^2.0.0", + "https-proxy-agent": "^7.0.1", + "jest-sonar-reporter": "^2.0.0", + "mkdirp": "^3.0.1", + "node-downloader-helper": "^2.1.9", + "progress": "^2.0.3", + "shell-quote": "^1.8.1", + "slugify": "^1.6.6" + }, + "bin": { + "sonar-scanner": "src/bin/sonar-scanner" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/sonarqube-scanner/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/sonarqube-scanner/node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/sonarqube-scanner/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/split": { "version": "1.0.1", "dev": true, @@ -7372,6 +7368,12 @@ "version": "1.0.2", "license": "ISC" }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true + }, "node_modules/y18n": { "version": "5.0.8", "dev": true, @@ -7485,5718 +7487,5 @@ "node": ">= 10" } } -<<<<<<< HEAD -======= - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true - }, - "@balena/dockerignore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", - "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", - "dev": true - }, - "@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "requires": {} - }, - "@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@ljharb/through": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", - "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "@nodelib/fs.scandir": { - "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.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "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 - }, - "@nodelib/fs.walk": { - "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.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/agent": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.1.1.tgz", - "integrity": "sha512-6RlbiOAi6L6uUYF4/CDEkDZQnKw0XDsFJVrEpnib8rAx2WRMOsUyAdgnvDpX/fdkDWxtqE+NHwF465llI2wR0g==", - "requires": { - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "requires": { - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", - "requires": { - "agent-base": "^7.0.2", - "debug": "4" - } - }, - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - } - } - }, - "@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", - "requires": { - "semver": "^7.3.5" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true - }, - "@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "@sindresorhus/is": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==" - }, - "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", - "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } - } - }, - "@sinonjs/samsam": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", - "integrity": "sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==", - "dev": true, - "requires": { - "@sinonjs/commons": "^2.0.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true - }, - "@supercharge/promise-pool": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@supercharge/promise-pool/-/promise-pool-3.1.0.tgz", - "integrity": "sha512-gB3NukbIcYzRtPoE6dx9svQYPodxvnfQlaaQd8N/z87E6WaMfRE7o5HwB+LZ+KeM0nsNAq1n4TmBtfz1VCUR+Q==" - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "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" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "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" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "archiver": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", - "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" - } - }, - "array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, - "arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - } - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "audit-ci": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/audit-ci/-/audit-ci-6.6.1.tgz", - "integrity": "sha512-zqZEoYfEC4QwX5yBkDNa0h7YhZC63HWtKtP19BVq+RS0dxRBInfmHogxe4VUeOzoADQjuTLZUI7zp3Pjyl+a5g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "escape-string-regexp": "^4.0.0", - "event-stream": "4.0.1", - "jju": "^1.4.0", - "JSONStream": "^1.3.5", - "readline-transform": "1.0.0", - "semver": "^7.0.0", - "yargs": "^17.0.0" - } - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "binaryextensions": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz", - "integrity": "sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw==" - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" - }, - "bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "requires": { - "big-integer": "^1.6.44" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" - }, - "buildcheck": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.3.tgz", - "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", - "optional": true - }, - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "requires": { - "semver": "^7.0.0" - } - }, - "bundle-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", - "requires": { - "run-applescript": "^5.0.0" - } - }, - "c8": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", - "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.3", - "find-up": "^5.0.0", - "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.1.6", - "rimraf": "^3.0.2", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^9.0.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "cacache": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", - "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", - "requires": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - }, - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==" - }, - "cacheable-request": { - "version": "10.2.8", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.8.tgz", - "integrity": "sha512-IDVO5MJ4LItE6HKFQTqT2ocAQsisOoCTUDu1ddCmnhyiwFQjXNPp4081Xj23N4tO+AFEFNzGuNEf/c8Gwwt15A==", - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "caxa": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/caxa/-/caxa-3.0.1.tgz", - "integrity": "sha512-ZVJg1FHU4KCJFCu46L6QI5bu8zxDYe5ExHoiTzW1SypKGpSkAOEVLI/+y6CMKlnwdWhyT+ZOYUBA09HzDgakpA==", - "dev": true, - "requires": { - "archiver": "^5.3.1", - "commander": "^9.4.1", - "crypto-random-string": "^5.0.0", - "dedent": "^0.7.0", - "execa": "^6.1.0", - "fs-extra": "^10.1.0", - "globby": "^13.1.2" - }, - "dependencies": { - "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - } - }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "requires": { - "check-error": "^1.0.2" - } - }, - "chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "requires": { - "get-func-name": "^2.0.2" - } - }, - "check-more-types": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", - "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "ci-info": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-progress": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", - "requires": { - "string-width": "^4.2.3" - } - }, - "cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==" - }, - "cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", - "requires": { - "@colors/colors": "1.5.0", - "string-width": "^4.2.0" - } - }, - "cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==" - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==" - }, - "compress-commons": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", - "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "cpu-features": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.4.tgz", - "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", - "optional": true, - "requires": { - "buildcheck": "0.0.3", - "nan": "^2.15.0" - } - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true - }, - "crc32-stream": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", - "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, - "requires": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - } - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-5.0.0.tgz", - "integrity": "sha512-KWjTXWwxFd6a94m5CdRGW/t82Tr8DoBc9dNnPCAbFI1EBweN6v1tv8y4Y1m7ndkp/nkIBRxUxAzpaBnR2k3bcQ==", - "dev": true, - "requires": { - "type-fest": "^2.12.2" - }, - "dependencies": { - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true - } - } - }, - "dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "default-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", - "requires": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - } - }, - "default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "requires": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - } - }, - "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "requires": { - "clone": "^1.0.2" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" - }, - "define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, - "define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==" - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "docker-modem": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", - "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", - "requires": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^1.11.0" - } - }, - "dockerode": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", - "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", - "requires": { - "@balena/dockerignore": "^1.0.2", - "docker-modem": "^3.0.0", - "tar-fs": "~2.0.1" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" - } - }, - "es-main": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-main/-/es-main-1.3.0.tgz", - "integrity": "sha512-AzORKdz1Zt97TzbYQnIrI3ZiibWpRXUfpo/w0xOJ20GpNYd2bd3MU9m31zS/aJ1TJl6JfLTok83Y8HjNunYT0A==" - }, - "es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", - "dev": true, - "requires": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "event-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, - "execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "requires": { - "mimic-fn": "^4.0.0" - } - } - } - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", - "requires": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" - }, - "is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==" - } - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==" - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "requires": { - "minipass": "^7.0.3" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - } - }, - "get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==" - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "gh-got": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-10.0.0.tgz", - "integrity": "sha512-ac0AmNAmdJt/PSCQEqG+qoKPZCmHP00kMWNjV1ve9nQpuQoyku7uyIACtYVtvTsCV+BLibfPo/LTvPOYBnV5sQ==", - "requires": { - "got": "^12.5.2" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - } - } - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" - }, - "glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "dependencies": { - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - }, - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" - } - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "requires": { - "ini": "2.0.0" - } - }, - "globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "got": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", - "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - } - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==" - }, - "graphql-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", - "requires": { - "@graphql-typed-document-node/core": "^3.2.0", - "cross-fetch": "^3.1.5" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", - "requires": { - "lru-cache": "^10.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - } - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", - "requires": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "requires": { - "debug": "^4.3.4" - } - } - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==" - }, - "husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - }, - "inquirer": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", - "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", - "requires": { - "@ljharb/through": "^2.3.11", - "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^5.0.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", - "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", - "dev": true, - "requires": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - } - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "requires": { - "ci-info": "^3.2.0" - } - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "requires": { - "is-docker": "^3.0.0" - }, - "dependencies": { - "is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==" - } - } - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "requires": { - "which-typed-array": "^1.1.11" - } - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "istextorbinary": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-6.0.0.tgz", - "integrity": "sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==", - "requires": { - "binaryextensions": "^4.18.0", - "textextensions": "^5.14.0" - } - }, - "jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "dev": true - }, - "jmespath": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", - "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==" - }, - "joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "jose": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.1.1.tgz", - "integrity": "sha512-bfB+lNxowY49LfrBO0ITUn93JbUhxUN8I11K6oI5hJu/G6PO6fEUddVLjqdD0cQ9SXIHWXuWh7eJYwZF7Z0N/g==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true - }, - "keytar": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", - "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", - "requires": { - "node-addon-api": "^4.3.0", - "prebuild-install": "^7.0.1" - } - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "requires": { - "json-buffer": "3.0.1" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "lazy-ass": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", - "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", - "dev": true - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "requires": { - "semver": "^7.5.3" - } - }, - "make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", - "requires": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - } - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dev": true, - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "mocked-env": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/mocked-env/-/mocked-env-1.3.5.tgz", - "integrity": "sha512-GyYY6ynVOdEoRlaGpaq8UYwdWkvrsU2xRme9B+WPSuJcNjh17+3QIxSYU6zwee0SbehhV6f06VZ4ahjG+9zdrA==", - "dev": true, - "requires": { - "check-more-types": "2.24.0", - "debug": "4.3.2", - "lazy-ass": "1.6.0", - "ramda": "0.27.1" - }, - "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==" - }, - "multistream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", - "integrity": "sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==", - "dev": true, - "requires": { - "once": "^1.4.0", - "readable-stream": "^3.6.0" - } - }, - "mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==" - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "optional": true - }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true - }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "nise": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", - "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^2.0.0", - "@sinonjs/fake-timers": "^10.0.2", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" - }, - "dependencies": { - "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - } - } - } - } - }, - "nock": { - "version": "13.3.8", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.8.tgz", - "integrity": "sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "propagate": "^2.0.0" - } - }, - "node-abi": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", - "integrity": "sha512-eSKV6s+APenqVh8ubJyiu/YhZgxQpGP66ntzUb3lY1xB9ukSRaGnx0AIxI+IM+1+IVYC1oWobgG5L3Lt9ARykQ==", - "requires": { - "semver": "^7.3.5" - } - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==" - }, - "npm-package-arg": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", - "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", - "requires": { - "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - } - }, - "npm-registry-fetch": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", - "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", - "requires": { - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "requires": { - "path-key": "^4.0.0" - }, - "dependencies": { - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" - } - } - }, - "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", - "requires": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" - }, - "p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "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 - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "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-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" - }, - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "requires": { - "isarray": "0.0.1" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "dev": true, - "requires": { - "through": "~2.3" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pkg": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", - "integrity": "sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==", - "dev": true, - "requires": { - "@babel/generator": "7.18.2", - "@babel/parser": "7.18.4", - "@babel/types": "7.19.0", - "chalk": "^4.1.2", - "fs-extra": "^9.1.0", - "globby": "^11.1.0", - "into-stream": "^6.0.0", - "is-core-module": "2.9.0", - "minimist": "^1.2.6", - "multistream": "^4.1.0", - "pkg-fetch": "3.4.2", - "prebuild-install": "7.1.1", - "resolve": "^1.22.0", - "stream-meter": "^1.0.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", - "dev": true, - "requires": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" - } - }, - "@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", - "dev": true - }, - "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - } - } - }, - "pkg-fetch": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", - "integrity": "sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==", - "dev": true, - "requires": { - "chalk": "^4.1.2", - "fs-extra": "^9.1.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.6", - "progress": "^2.0.3", - "semver": "^7.3.5", - "tar-fs": "^2.1.1", - "yargs": "^16.2.0" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", - "requires": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "ramda": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "requires": { - "minimatch": "^5.1.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "readline-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readline-transform/-/readline-transform-1.0.0.tgz", - "integrity": "sha512-7KA6+N9IGat52d83dvxnApAWN+MtVb1MiVuMR/cf1O4kYsJG+g/Aav0AHcHKsb6StinayfPLne0+fMX2sOzAKg==", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "requires": { - "lowercase-keys": "^3.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "run-applescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", - "requires": { - "execa": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - } - } - }, - "run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==" - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - } - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "requires": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sinon": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", - "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^11.2.2", - "@sinonjs/samsam": "^8.0.0", - "diff": "^5.1.0", - "nise": "^5.1.5", - "supports-color": "^7.2.0" - }, - "dependencies": { - "@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", - "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", - "requires": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "dependencies": { - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "requires": { - "debug": "^4.3.4" - } - } - } - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "requires": { - "through": "2" - } - }, - "split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" - }, - "ssh2": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", - "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", - "requires": { - "asn1": "^0.2.4", - "bcrypt-pbkdf": "^1.0.2", - "cpu-features": "~0.0.4", - "nan": "^2.16.0" - } - }, - "ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "requires": { - "minipass": "^7.0.3" - }, - "dependencies": { - "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" - } - } - }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", - "dev": true, - "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, - "stream-meter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", - "integrity": "sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==", - "dev": true, - "requires": { - "readable-stream": "^2.1.4" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - } - } - }, - "tar-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "textextensions": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-5.15.0.tgz", - "integrity": "sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw==" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "titleize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==" - }, - "tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "requires": { - "unique-slug": "^4.0.0" - } - }, - "unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url-join": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", - "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==" - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - }, - "v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "requires": { - "builtins": "^5.0.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "requires": { - "defaults": "^1.0.3" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - } - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zip-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", - "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - } - } ->>>>>>> f86794e (FAB-6401 stereotype deploy) } } diff --git a/package.json b/package.json index b3917c96..10bf1728 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "pretest": "eslint bin/**/*.js src/**/*.js test/**/*.js && audit-ci -h", "test": "cross-env NODE_ENV=test c8 mocha", "test:workspaces": "cross-env NODE_ENV=test mocha --grep='Workspaces'", - "clean": "rm -rf dist/ coverage/ .nyc_output/ node_modules/ cortex-cli.tgz cortex-cli-docs.md version.txt" + "clean": "rm -rf dist/ coverage/ .nyc_output/ node_modules/ cortex-cli.tgz cortex-cli-docs.md version.txt", + "scan": "sonar-scanner" }, "files": [ "bin/*", @@ -101,7 +102,8 @@ "mocked-env": "1.3.5", "nock": "13.3.8", "pkg": "5.8.1", - "sinon": "17.0.1" + "sinon": "17.0.1", + "sonarqube-scanner": "3.3.0" }, "c8": { "check-coverage": true, @@ -115,7 +117,7 @@ ], "reporter": [ "text", - "html" + "lcov" ] } } diff --git a/sonar-project.properties b/sonar-project.properties index 066cc97a..f7160179 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,12 +1,14 @@ # Required metadata sonar.projectKey=cortex-cli sonar.projectName=cortex-cli +sonar.links.homepage=https://github.com/CognitiveScale/cortex-cli +sonar.links.issue=https://cognitivescale.atlassian.net/jira/your-work -# Path to source directories -#sonar.sources=src - -# Language -#sonar.language=java - +sonar.sources=bin,client,src +sonar.tests=test +sonar.exclusions=node_modules/*,Docker* +sonar.language=js +sonar.profile=node # Encoding of the source code sonar.sourceEncoding=UTF-8 +sonar.javascript.lcov.reportPaths=coverage/lcov.info From 7e7891b956e98e7115c31225b54f6c63cd6d84c3 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Thu, 4 Jan 2024 14:34:26 -0600 Subject: [PATCH 845/864] Fix git setting inside the build container --- build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.sh b/build.sh index 0a28605d..988679ee 100755 --- a/build.sh +++ b/build.sh @@ -26,6 +26,8 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ + # Needed when using newer git + git config --global --add safe.directory /work export CI="script" # libsecrets is needed for keytar node-gyp build apt-get update From ad85ba78accc04d257b2956f5b499ee86eb2c6bf Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Thu, 4 Jan 2024 14:49:16 -0600 Subject: [PATCH 846/864] Fix git setting inside the build container --- build.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 988679ee..6927a1db 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,10 @@ #!/bin/bash -eux # Copied from: https://bitbucket.org/cognitivescale/cortex-console/src +if [ "$(dirname "$0")" = "/work" ]; then + # Needed when using newer git + git config --global --add safe.directory /work +fi IMAGE_NAME=$(git remote -v | grep "(fetch)" | sed -E "s/.*git@.*:.*\/(.*)\.git.*/\1/") BRANCH=$(git symbolic-ref --short -q HEAD) @@ -26,8 +30,6 @@ function local_docker(){ # This runs inside a linux docker container function docker_build(){ - # Needed when using newer git - git config --global --add safe.directory /work export CI="script" # libsecrets is needed for keytar node-gyp build apt-get update @@ -64,6 +66,7 @@ function docker_build(){ ## MAIN cd "$(dirname "$0")" + echo "##### BUILDING BRANCH[${BRANCH}],VERSION[${VERSION}] of IMAGE[${IMAGE_NAME}] ######" case ${1-local} in CI) From 3d6058fdb2609d383603750def27efb7b64f9b75 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Thu, 4 Jan 2024 15:59:57 -0600 Subject: [PATCH 847/864] . --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 6927a1db..cd411087 100755 --- a/build.sh +++ b/build.sh @@ -1,7 +1,7 @@ #!/bin/bash -eux # Copied from: https://bitbucket.org/cognitivescale/cortex-console/src -if [ "$(dirname "$0")" = "/work" ]; then +if [ "$PWD" = "/work" ]; then # Needed when using newer git git config --global --add safe.directory /work fi From ef776d261f6187f3720e30bf899e3e09aca847aa Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Thu, 4 Jan 2024 16:43:17 -0600 Subject: [PATCH 848/864] Fix scan --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index cd411087..9846d3c9 100755 --- a/build.sh +++ b/build.sh @@ -41,7 +41,7 @@ function docker_build(){ npm ci --unsafe-perm --userconfig=/root/.npmrc --ignore-scripts npm rebuild npm test - npm scan + npm run scan echo ${VERSION} > version.txt ./generate_docs.sh BRANCH=$(git symbolic-ref --short -q HEAD) From c0087d57f9aa3b72973165ed2a575fb39ac8ca4c Mon Sep 17 00:00:00 2001 From: Mayank Chutani <mchutani-CS@users.noreply.github.com> Date: Tue, 9 Jan 2024 10:41:56 +0530 Subject: [PATCH 849/864] added limit for list pipeline runs (#734) --- bin/cortex-pipelines.js | 2 ++ src/client/pipelines.js | 10 ++++++++-- src/commands/pipelines.js | 3 ++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js index 575513c5..efb47a34 100644 --- a/bin/cortex-pipelines.js +++ b/bin/cortex-pipelines.js @@ -117,6 +117,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) + .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) + .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { try { checkForEmptyArgs({ pipelineName, gitRepoName }); diff --git a/src/client/pipelines.js b/src/client/pipelines.js index 98a89e26..154bb187 100644 --- a/src/client/pipelines.js +++ b/src/client/pipelines.js @@ -84,13 +84,19 @@ export default class Pipelines { } } - async listPipelineRuns(projectId, token, name, gitRepoName) { + async listPipelineRuns(projectId, token, name, gitRepoName, limit, skip, sort, filter) { checkProject(projectId); - const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}/run?gitRepoName=${gitRepoName}`; + const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}/run`; debug('listPipelineRuns(%s, %s) => %s', name, gitRepoName, endpoint); + const query = { gitRepoName }; + if (filter) query.filter = filter; + if (limit) query.limit = limit; + if (sort) query.sort = sort; + if (skip) query.skip = skip; try { return await got.get(endpoint, { headers: defaultHeaders(token), + searchParams: query, }).json(); } catch (err) { return constructError(err); diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js index e5ac75ce..be1c76b4 100644 --- a/src/commands/pipelines.js +++ b/src/commands/pipelines.js @@ -158,7 +158,8 @@ export const ListPipelineRunsCommand = class { debug('%s.executeListPipelineRuns(%s, %s)', profile.name, pipelineName); const pipelines = new Pipelines(profile.url); try { - const response = await pipelines.listPipelineRuns(options.project || profile.project, profile.token, pipelineName, gitRepoName); + const response = await pipelines.listPipelineRuns(options.project || profile.project, + profile.token, pipelineName, gitRepoName, options.limit, options.skip, options.sort, options.filter); if (response.success) { const result = response.activations; // TODO remove --query on deprecation From be8a57e64f600f7ef2741ff06bddeb2b019f2295 Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Tue, 9 Jan 2024 17:56:08 +0530 Subject: [PATCH 850/864] Update libs (#735) --- package-lock.json | 303 ++++++++++++++++++++++++++-------------------- package.json | 12 +- 2 files changed, 176 insertions(+), 139 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1a900f91..e77bd1cd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,11 +27,11 @@ "graphql": "16.8.1", "graphql-request": "6.1.0", "inquirer": "9.2.12", - "is-installed-globally": "0.4.0", + "is-installed-globally": "1.0.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", "joi": "17.11.0", - "jose": "5.1.1", + "jose": "5.2.0", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", @@ -57,15 +57,15 @@ "chai": "4.3.10", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "esbuild": "0.19.5", - "eslint": "8.53.0", + "esbuild": "0.19.11", + "eslint": "8.56.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.29.0", + "eslint-plugin-import": "2.29.1", "husky": "8.0.3", "is-ci": "3.0.1", "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.3.8", + "nock": "13.4.0", "pkg": "5.8.1", "sinon": "17.0.1", "sonarqube-scanner": "3.3.0" @@ -115,10 +115,26 @@ "node": ">=0.1.90" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", + "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", + "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", "cpu": [ "arm" ], @@ -132,9 +148,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", + "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", "cpu": [ "arm64" ], @@ -148,9 +164,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", + "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", "cpu": [ "x64" ], @@ -164,9 +180,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", + "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", "cpu": [ "arm64" ], @@ -180,9 +196,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", + "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", "cpu": [ "x64" ], @@ -196,9 +212,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", + "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", "cpu": [ "arm64" ], @@ -212,9 +228,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", + "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", "cpu": [ "x64" ], @@ -228,9 +244,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", + "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", "cpu": [ "arm" ], @@ -244,9 +260,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", + "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", "cpu": [ "arm64" ], @@ -260,9 +276,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", + "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", "cpu": [ "ia32" ], @@ -276,9 +292,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", + "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", "cpu": [ "loong64" ], @@ -292,9 +308,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", + "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", "cpu": [ "mips64el" ], @@ -308,9 +324,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", + "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", "cpu": [ "ppc64" ], @@ -324,9 +340,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", + "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", "cpu": [ "riscv64" ], @@ -340,9 +356,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", + "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", "cpu": [ "s390x" ], @@ -356,9 +372,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", + "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", "cpu": [ "x64" ], @@ -372,9 +388,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", + "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", "cpu": [ "x64" ], @@ -388,9 +404,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", + "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", "cpu": [ "x64" ], @@ -404,9 +420,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", + "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", "cpu": [ "x64" ], @@ -420,9 +436,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", + "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", "cpu": [ "arm64" ], @@ -436,9 +452,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", + "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", "cpu": [ "ia32" ], @@ -452,9 +468,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", + "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", "cpu": [ "x64" ], @@ -523,9 +539,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -903,8 +919,9 @@ }, "node_modules/@types/json5": { "version": "0.0.29", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", @@ -2461,9 +2478,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", + "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", "dev": true, "hasInstallScript": true, "bin": { @@ -2473,28 +2490,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" + "@esbuild/aix-ppc64": "0.19.11", + "@esbuild/android-arm": "0.19.11", + "@esbuild/android-arm64": "0.19.11", + "@esbuild/android-x64": "0.19.11", + "@esbuild/darwin-arm64": "0.19.11", + "@esbuild/darwin-x64": "0.19.11", + "@esbuild/freebsd-arm64": "0.19.11", + "@esbuild/freebsd-x64": "0.19.11", + "@esbuild/linux-arm": "0.19.11", + "@esbuild/linux-arm64": "0.19.11", + "@esbuild/linux-ia32": "0.19.11", + "@esbuild/linux-loong64": "0.19.11", + "@esbuild/linux-mips64el": "0.19.11", + "@esbuild/linux-ppc64": "0.19.11", + "@esbuild/linux-riscv64": "0.19.11", + "@esbuild/linux-s390x": "0.19.11", + "@esbuild/linux-x64": "0.19.11", + "@esbuild/netbsd-x64": "0.19.11", + "@esbuild/openbsd-x64": "0.19.11", + "@esbuild/sunos-x64": "0.19.11", + "@esbuild/win32-arm64": "0.19.11", + "@esbuild/win32-ia32": "0.19.11", + "@esbuild/win32-x64": "0.19.11" } }, "node_modules/escalade": { @@ -2517,15 +2535,15 @@ } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -2640,9 +2658,10 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.0", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, - "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -2660,7 +2679,7 @@ "object.groupby": "^1.0.1", "object.values": "^1.1.7", "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" @@ -3399,14 +3418,15 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/global-dirs": { - "version": "3.0.1", - "license": "MIT", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "dependencies": { - "ini": "2.0.0" + "ini": "4.1.1" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3790,10 +3810,11 @@ "license": "ISC" }, "node_modules/ini": { - "version": "2.0.0", - "license": "ISC", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/inquirer": { @@ -4030,14 +4051,26 @@ } }, "node_modules/is-installed-globally": { - "version": "0.4.0", - "license": "MIT", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.0.tgz", + "integrity": "sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==", "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" + "global-directory": "^4.0.1", + "is-path-inside": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally/node_modules/is-path-inside": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", + "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4089,6 +4122,7 @@ }, "node_modules/is-path-inside": { "version": "3.0.3", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4319,9 +4353,9 @@ } }, "node_modules/jose": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.1.1.tgz", - "integrity": "sha512-bfB+lNxowY49LfrBO0ITUn93JbUhxUN8I11K6oI5hJu/G6PO6fEUddVLjqdD0cQ9SXIHWXuWh7eJYwZF7Z0N/g==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.2.0.tgz", + "integrity": "sha512-oW3PCnvyrcm1HMvGTzqjxxfnEs9EoFOFWi2HsEGhlFVOXxTE3K9GKWVMFoFw06yPUqwpvEWic1BmtUZBI/tIjw==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -4368,8 +4402,9 @@ }, "node_modules/json5": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -5105,9 +5140,9 @@ } }, "node_modules/nock": { - "version": "13.3.8", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.8.tgz", - "integrity": "sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw==", + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.4.0.tgz", + "integrity": "sha512-W8NVHjO/LCTNA64yxAPHV/K47LpGYcVzgKd3Q0n6owhwvD0Dgoterc25R4rnZbckJEb6Loxz1f5QMuJpJnbSyQ==", "dev": true, "dependencies": { "debug": "^4.1.0", @@ -6801,8 +6836,9 @@ }, "node_modules/strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -7033,9 +7069,10 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.14.2", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", diff --git a/package.json b/package.json index 10bf1728..d2ef4f7f 100644 --- a/package.json +++ b/package.json @@ -65,11 +65,11 @@ "graphql": "16.8.1", "graphql-request": "6.1.0", "inquirer": "9.2.12", - "is-installed-globally": "0.4.0", + "is-installed-globally": "1.0.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", "joi": "17.11.0", - "jose": "5.1.1", + "jose": "5.2.0", "js-yaml": "4.1.0", "keytar": "7.9.0", "lodash": "4.17.21", @@ -92,15 +92,15 @@ "chai": "4.3.10", "chai-as-promised": "7.1.1", "cross-env": "7.0.3", - "esbuild": "0.19.5", - "eslint": "8.53.0", + "esbuild": "0.19.11", + "eslint": "8.56.0", "eslint-config-airbnb-base": "15.0.0", - "eslint-plugin-import": "2.29.0", + "eslint-plugin-import": "2.29.1", "husky": "8.0.3", "is-ci": "3.0.1", "mocha": "10.2.0", "mocked-env": "1.3.5", - "nock": "13.3.8", + "nock": "13.4.0", "pkg": "5.8.1", "sinon": "17.0.1", "sonarqube-scanner": "3.3.0" From 050b7799a280464ae94cc0ffd87151791a43229e Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Wed, 24 Jan 2024 16:34:56 -0600 Subject: [PATCH 851/864] FAB-6430: Display workaround for timeouts when doing large uploads to Managed Content (#736) * Update content upload to use the same underlying logic for Printing errors as all other commands * Call printNormalizedError() on failure to download from Managed Content - adds timeout details * Small refactor of error handling in utils to print timeout details when downloading a large file as well --- src/commands/content.js | 7 +++--- src/commands/utils.js | 47 +++++++++++++++++++++++++++++++---------- 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/src/commands/content.js b/src/commands/content.js index 2cd895ae..8506df33 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -6,7 +6,7 @@ import debugSetup from 'debug'; import { loadProfile } from '../config.js'; import Content from '../client/content.js'; import { - printSuccess, printError, getSourceFiles, humanReadableFileSize, handleTable, getFilteredOutput, checkProject, + printSuccess, printError, getSourceFiles, humanReadableFileSize, handleTable, getFilteredOutput, checkProject, printNormalizedError, handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -22,7 +22,7 @@ async function upload(contentClient, profile, options, contentKey, filePath, exi printSuccess('Content successfully uploaded.', options); } else { const message = `Failed to upload content ${filePath}: ${response.status} ${response.message}`; - printError(message, options, exit); + printNormalizedError(response, options, `Failed to upload content ${filePath}`, exit); throw Error(message); // Temp fix to make recursive upload stop uploading, until uploadContentStreaming() throws } } @@ -136,8 +136,7 @@ export class DownloadContent { const content = new Content(profile.url); const showProgress = !!options.progress; content.downloadContent(options.project || profile.project, profile.token, contentKey, showProgress).catch((err) => { - debug(err); - printError(`Failed to download content: ${err.message}`, options); + handleError(err, options, 'Failed to download content'); }); } } diff --git a/src/commands/utils.js b/src/commands/utils.js index 53e1ab65..d00e8ca4 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -126,7 +126,12 @@ const deleteFolderRecursive = (filepath) => { } }; -// TODO replace with handleError, to reduce duplicate code. +/** + * Returns an error object (with `success`, `message`, `details`, and `status` fields), from a given `Error`. + * + * @param {Error} error + * @return {object} An object describing the original error with additional details + */ export const constructError = (error) => { let details; let respCode; @@ -161,6 +166,7 @@ export const constructError = (error) => { success: false, message: errorText, details, status, }; }; + export function writeToFile(content, filepath, createDir = true) { const dir = path.dirname(filepath); if (createDir && !fs.existsSync(dir)) { @@ -563,16 +569,11 @@ export function checkForEmptyArgs(args) { } /** - * Prints a normalized version of any given Error and exits the proram (see - * `@constructError()` for how the error is normalized). - * - * @param {Error} error - * @param {object} options - * @param {string} prefix + * Prints the normalized error object (see `@constructError()`), then exits the + * program. */ -export function handleError(error, options, prefix = 'Error') { - // TODO: why aren't 'options' used? - const normedError = constructError(error); +export function printNormalizedError(normedError, options, prefix = 'Error', exit = true) { + debug(normedError); printError(`${prefix}: ${normedError.status}, ${normedError.message}`, undefined, false); if (normedError.details !== undefined && normedError.details !== null) { if (typeof normedError.details === 'string' || normedError.details instanceof String) { @@ -582,12 +583,36 @@ export function handleError(error, options, prefix = 'Error') { // TSOA API validation error case const transformedResponse = transformTSOAValidation(normedError.details); if (transformedResponse !== null) { + // eslint-disable-next-line no-param-reassign normedError.details = transformedResponse; } } printTable(OPTIONSTABLEFORMAT, normedError.details); } - printError(''); // Just exit + if (exit) { + printError(''); // Just exit + } +} + +/** + * Creates a normalized error object (see `@constructError()` for how it is + * normalized), then prints the error and exits. + * + * @param {Error} error + * @param {object} options + * @param {string} prefix + * @param {bool} exit + */ +export function handleError(error, options, prefix = 'Error', exit = true) { + debug(error); + let normedError; + const isNormedError = Object.keys(error).includes('success'); + if (isNormedError) { + normedError = error; // assume its already been normalized + } else { + normedError = constructError(error); + } + printNormalizedError(normedError, options, prefix, exit); } export { deleteFolderRecursive as deleteFile }; From cc9691ac2a3ddb2d636f3a4afbc0fe01f8b4ceab Mon Sep 17 00:00:00 2001 From: Yashwanth Reddy <yreddy@cognitivescale.com> Date: Thu, 25 Jan 2024 10:35:47 +0530 Subject: [PATCH 852/864] update timeouts as this is poppoing up quite frequenly for India folks (#737) * Update apiutils.js * Address failing unit tests --------- Co-authored-by: Luis Aguirre <laguirre@cognitivescale.com> --- src/client/apiutils.js | 4 ++-- test/configure.js | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/client/apiutils.js b/src/client/apiutils.js index 29ab9ad2..a8287834 100644 --- a/src/client/apiutils.js +++ b/src/client/apiutils.js @@ -17,8 +17,8 @@ const gotOpts = { // Put a reasonable timeout, see: https://github.com/sindresorhus/got/blob/main/documentation/6-timeout.md timeout: { lookup: 75, // greater than 100 not recommended - connect: 100, - secureConnect: 100, + connect: 400, + secureConnect: 400, socket: 1000, // send: 10000, // Not "SAFE" with large uploads response: 2000, diff --git a/test/configure.js b/test/configure.js index ecc6fe6e..d1e89336 100644 --- a/test/configure.js +++ b/test/configure.js @@ -146,8 +146,8 @@ describe('configure', () => { expect(output).to.include(`export CORTEX_PROJECT=${project}`); // default timeouts expect(output).to.include('#export CORTEX_TIMEOUT_LOOKUP= (default: 75, unit: ms)'); - expect(output).to.include('#export CORTEX_TIMEOUT_CONNECT= (default: 100, unit: ms)'); - expect(output).to.include('#export CORTEX_TIMEOUT_SECURE_CONNECT= (default: 100, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_CONNECT= (default: 400, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_SECURE_CONNECT= (default: 400, unit: ms)'); expect(output).to.include('#export CORTEX_TIMEOUT_SOCKET= (default: 1000, unit: ms)'); expect(output).to.include('#export CORTEX_TIMEOUT_RESPONSE= (default: 2000, unit: ms)'); expect(output).to.include('#export CORTEX_API_RETRY= (default: 3)'); @@ -171,8 +171,8 @@ describe('configure', () => { expect(output).to.include(`export CORTEX_PROJECT=${project}`); // default timeouts expect(output).to.include('#export CORTEX_TIMEOUT_LOOKUP= (default: 75, unit: ms)'); - expect(output).to.include('#export CORTEX_TIMEOUT_CONNECT= (default: 100, unit: ms)'); - expect(output).to.include('#export CORTEX_TIMEOUT_SECURE_CONNECT= (default: 100, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_CONNECT= (default: 400, unit: ms)'); + expect(output).to.include('#export CORTEX_TIMEOUT_SECURE_CONNECT= (default: 400, unit: ms)'); expect(output).to.include('#export CORTEX_TIMEOUT_SOCKET= (default: 1000, unit: ms)'); expect(output).to.include('#export CORTEX_TIMEOUT_RESPONSE= (default: 2000, unit: ms)'); expect(output).to.include('#export CORTEX_API_RETRY= (default: 3)'); From 0134e0cb218baeaaa5e8a357ac4874cdb8bb2566 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Thu, 1 Feb 2024 17:09:17 -0600 Subject: [PATCH 853/864] Add --force-recreate flag to pipeline-update command to help with debugging (#738) --- bin/cortex-pipelines-repos.js | 1 + src/client/pipelineRepositories.js | 5 ++++- src/commands/pipelineRepositories.js | 2 +- test/pipelineRepositories.js | 6 +++--- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js index f73ee82a..816d2646 100644 --- a/bin/cortex-pipelines-repos.js +++ b/bin/cortex-pipelines-repos.js @@ -108,6 +108,7 @@ export function create() { .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--skill <skillName>', 'Name of the underlying Skill in the same Project to use for running the Pipeline') + .option('--force-recreate', 'Whether to force Pipelines to be recreated even if the Pipeline\'s state (git SHA) has not has not changed.') .action(withCompatibilityCheck((pipelineRepoName, options) => { try { checkForEmptyArgs({ pipelineRepoName }); diff --git a/src/client/pipelineRepositories.js b/src/client/pipelineRepositories.js index 192f61da..811cc929 100644 --- a/src/client/pipelineRepositories.js +++ b/src/client/pipelineRepositories.js @@ -70,13 +70,16 @@ export default class PipelineRepos { } } - async updateRepoPipelines(projectId, token, pipelineRepoName, skill) { + async updateRepoPipelines(projectId, token, pipelineRepoName, skill, forceRecreate) { checkProject(projectId); const params = {}; const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(pipelineRepoName)}/update`; if (skill) { params.skillName = skill; } + if (forceRecreate) { + params.forceRecreate = true; + } debug('updateRepoPipelines(%s) => %s', pipelineRepoName, endpoint); try { return await got.post(endpoint, { diff --git a/src/commands/pipelineRepositories.js b/src/commands/pipelineRepositories.js index 2b27a1bf..d7c55234 100644 --- a/src/commands/pipelineRepositories.js +++ b/src/commands/pipelineRepositories.js @@ -131,7 +131,7 @@ export const UpdateRepoPipelinesCommand = class { debug('%s.executeUpdateRepoPipelines(%s)', profile.name, pipelineRepoName); const repos = new Pipelines(profile.url); try { - const response = await repos.updateRepoPipelines(options.project || profile.project, profile.token, pipelineRepoName, options.skill); + const response = await repos.updateRepoPipelines(options.project || profile.project, profile.token, pipelineRepoName, options.skill, options.forceRecreate); // Check for 'updateReport' property if (response.updateReport) { const { message, updateReport, success } = response; diff --git a/test/pipelineRepositories.js b/test/pipelineRepositories.js index 54662417..0712e7ae 100644 --- a/test/pipelineRepositories.js +++ b/test/pipelineRepositories.js @@ -280,7 +280,7 @@ describe('Pipelines', () => { nock.isDone(); }); - it('should update-pipelines with custom Skill', async () => { + it('should update-pipelines with a custom skill and forceRecreate query params', async () => { const response = { success: true, code: 200, @@ -299,9 +299,9 @@ describe('Pipelines', () => { nock(serverUrl) .post(/\/fabric\/v4\/projects\/.*\/pipeline-repositories\/.*\/update/) - .query({ skillName: 'my-skill' }) + .query({ skillName: 'my-skill', forceRecreate: true }) .reply(200, response); - await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT, '--skill', 'my-skill']); + await create().parseAsync(['node', 'repos', 'update-pipelines', 'repo1', '--project', PROJECT, '--skill', 'my-skill', '--force-recreate']); const output = getPrintedLines().join(''); const errs = getErrorLines().join(''); chai.expect(output).to.equal( From b2ba0c3f89214263a473ac5108bef15b3ce15202 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Mon, 12 Feb 2024 16:29:33 -0600 Subject: [PATCH 854/864] Run npm audit fix to resolve high vulnerabilities (#740) --- package-lock.json | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index e77bd1cd..de671502 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3881,9 +3881,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ip": { - "version": "2.0.0", - "license": "MIT" + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } }, "node_modules/is-array-buffer": { "version": "3.0.2", @@ -4370,6 +4378,11 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + }, "node_modules/jsesc": { "version": "2.5.2", "dev": true, @@ -6547,14 +6560,15 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "license": "MIT", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz", + "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==", "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, @@ -6658,6 +6672,11 @@ "version": "1.0.1", "license": "ISC" }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + }, "node_modules/ssh2": { "version": "1.11.0", "hasInstallScript": true, From ec2101e8f6781085658dc84bfe74f7d3dbf13b97 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 12 Feb 2024 23:47:13 -0600 Subject: [PATCH 855/864] Fix app get options (#741) --- src/commands/applications.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/commands/applications.js b/src/commands/applications.js index 386f2a3a..e5ac2bb1 100644 --- a/src/commands/applications.js +++ b/src/commands/applications.js @@ -130,13 +130,18 @@ export class DescribeAppCommand { async execute(name, options) { const profile = await loadProfile(options.profile); const { - verbose, output, project, + verbose, output, project, json, } = options; - const isPretty = (options?.output ?? 'pretty').toLowerCase() === 'pretty'; + + const isPretty = (options?.output ?? 'pretty').toLowerCase() === 'pretty' && json === undefined; debug('%s.executeDescribeApplication(%s)', profile.name, name); const catalog = new Catalog(profile.url); try { - const app = await catalog.describeApplication(project || profile.project, profile.token, name, verbose || isPretty, output); + const app = await catalog.describeApplication( + project || profile.project, + profile.token, name, + verbose || isPretty, + json === undefined ? output : 'json'); // if --json use output JSON if (isPretty) { // Strange spacing needed for output formatting printSuccess(`Name: ${app.name} @@ -152,7 +157,7 @@ Updated At: ${app._updatedAt}`, options); rTable.push(...app?.match?.map(parseMatch) ?? []); return console.log(rTable.toString()); } - if (options?.output?.toLowerCase() === 'json') return getFilteredOutput(app, options); + if (options?.output?.toLowerCase() === 'json' || json !== undefined) return getFilteredOutput(app, options); return writeOutput(app, options); } catch (err) { return printError(`Failed to describe application ${name}: ${err.status ?? ''} ${err.message}`, options); From db61d58bc0543036f337da0950879f4d6d262849 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Tue, 20 Feb 2024 13:44:20 -0600 Subject: [PATCH 856/864] Pipeline usability updates (#739) * Add shorthand flag to list Pipelines in a repo * Print message when submitting a Pipeline run and add --json flag to print original output * Add --report flag to PipelineRun Describe to add more information about the Pipeline * Fix typo response to options * Add unit tests verifying that --repo flag is usable and has lower priority to --filter * Add unit tests for pipeline run CLI command - minor edits to param file validation * Add TODO for testing printing of Pipeline Run as a table * Make --report output for describing pipeline runs the default format --------- Co-authored-by: Yashwanth Reddy <yreddy@cognitivescale.com> --- bin/cortex-pipelines.js | 2 + src/commands/pipelines.js | 111 +++++++++++---- test/pipelines.js | 286 +++++++++++++++++++++++++++----------- 3 files changed, 289 insertions(+), 110 deletions(-) diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js index efb47a34..479b00a4 100644 --- a/bin/cortex-pipelines.js +++ b/bin/cortex-pipelines.js @@ -36,6 +36,7 @@ export function create() { .option('--project <project>', 'The project to use') .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--filter <filter>', 'A Mongo style filter to use.') + .option('--repo <pipelineRepo>', 'Convenience flag for filtering by Pipeline Repository. Has a lower priority than --filter') .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) @@ -75,6 +76,7 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') + .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--params <params>', 'JSON params to send to the action') .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') .option('--commit <commit>', 'Git SHA for pipeline repository') diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js index be1c76b4..ba113545 100644 --- a/src/commands/pipelines.js +++ b/src/commands/pipelines.js @@ -16,6 +16,7 @@ import { getQueryOptions, printSuccess, printTable, + printWarning, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -33,7 +34,12 @@ export const ListPipelineCommand = class { debug('%s.executeListPipelines()', profile.name); const pipelines = new Pipelines(profile.url); try { - const response = await pipelines.listPipelines(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort); + const filteringByRepo = options.repo && !options.filter; + const filter = filteringByRepo ? JSON.stringify({ gitRepoName: options.repo }) : options.filter; + if (options.repo && options.filter) { + printWarning('WARNING: --repo and --filter options are incompatible! The --filter option will be used', options); + } + const response = await pipelines.listPipelines(options.project || profile.project, profile.token, filter, options.limit, options.skip, options.sort); if (response.success) { const result = response.pipelines; if (options.json) { @@ -87,27 +93,35 @@ export const RunPipelineCommand = class { debug('%s.executeRunPipeline(%s)', profile.name, pipelineName); let params = {}; if (options.params) { - try { - params = parseObject(options.params, options); - } catch (e) { - printError(`Failed to parse params: ${options.params} Error: ${e}`, options); - } + try { + params = parseObject(options.params, options); + } catch (e) { + printError(`Failed to parse params: ${options.params}. Error: ${e}`, options); + } } else if (options.paramsFile) { - if (!fs.existsSync(options.paramsFile)) { - printError(`File does not exist at: ${options.paramsFile}`); - } - const paramsStr = fs.readFileSync(options.paramsFile); - params = parseObject(paramsStr, options); + if (!fs.existsSync(options.paramsFile)) { + printError(`File does not exist at: ${options.paramsFile}`, options); + } + const paramsStr = fs.readFileSync(options.paramsFile); + params = parseObject(paramsStr, options); } const pipelines = new Pipelines(profile.url); try { const response = await pipelines.runPipeline(options.project || profile.project, profile.token, pipelineName, gitRepoName, params, options); if (response.success) { - return getFilteredOutput(response, options); + // TODO: Should replacment of activationId -> runId be done at the API level ? + response.runId = response?.runId || response?.activationId; // support runId and activationId + delete response.activationId; + if (options.json) { + getFilteredOutput(response, options); + } else { + printSuccess(`Pipeline Run Submitted!\n\nUse "cortex pipelines describe-run ${response.runId}" to inspect the Pipeline Run`); + } + return; } - return printError(`Failed to run pipeline: ${response.status} ${response.message}`, options); + printError(`Failed to run pipeline: ${response.status} ${response.message}`, options); } catch (err) { - return printError(`Failed to run pipeline: ${err.status} ${err.message}`, options); + printError(`Failed to run pipeline: ${err.status} ${err.message}`, options); } } }; @@ -117,6 +131,43 @@ export const DescribePipelineRunCommand = class { this.program = program; } + getStateMatchingTransit(transit, states) { + const hasMatchingEndpoints = (s) => s?.from === transit?.from && s?.to === transit?.to; + return (states ?? []).find(hasMatchingEndpoints); + } + + extractBlocksFromRun(pipelineRun) { + // NOTE: 'plan.states' & 'transits' should be equivalent, so try + // extracting details of the Pipeline run from the corresponding + // 'state'. Only consider Blocks to avoid confusion from input/output. + // + // TODO:: states & transits aren't necessarily equivalent when running an + // single Block in a Pipeline. However, BUG https://cognitivescale.atlassian.net/browse/FAB-6294 + // makes it so the entire Pipeline is run. Once that is resolved, the CLI + // can be configured to accurately print the plan. + const blocks = pipelineRun?.transits?.map((t) => { + const state = this.getStateMatchingTransit(t, pipelineRun?.plan?.states); + // Skills are equivalent to Blocks, so it's clearer to rename the + // type. Plus extra Block metadata can be found in the Properties. + if (state?.type === 'skill') { + const props = state?.ref?.properties || []; + const blockProp = props.find((p) => p?.name === 'block'); + const typeProp = props.find((p) => p?.name === 'type'); + return { + type: typeProp?.value || '-', // i.e. block-type + start: t.start, + end: t.end, + status: t.status, + elapsed: t.end ? dayjs(t.end).diff(dayjs(t.start)) : 'N/A', + title: state?.ref?.title || t.title, + name: blockProp?.value || t.name, + }; + } + return undefined; + }).filter((x) => x); // filter undefined + return blocks; + } + async execute(runId, options) { const profile = await loadProfile(options.profile); debug('%s.executeDescribePipelineRun(%s)', profile.name, runId); @@ -124,20 +175,26 @@ export const DescribePipelineRunCommand = class { try { const response = await pipelines.describePipelineRun(options.project || profile.project, profile.token, runId); if (response.success) { - if (options.report && !options.json) { - const result = filterObject(response, getQueryOptions(options)); - const tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Title', field: 'title', width: 40 }, - { column: 'Type', field: 'type', width: 20 }, - { column: 'Status', field: 'status', width: 20 }, - { column: 'Elapsed (ms)', field: 'elapsed', width: 30 }, - ]; - printSuccess(`Status: ${_.get(result, 'status')}`); - printSuccess(`Elapsed Time (ms): ${_.get(result, 'elapsed')}`); - printTable(tableSpec, _.sortBy(_.get(result, 'transits'), ['start', 'end'])); + if (options.json) { + getFilteredOutput(response, options); } else { - getFilteredOutput(response, options); + // Print table view of Pipeline Run + const result = filterObject(response, getQueryOptions(options)); + const tableSpec = [ + { column: 'Block Name', field: 'name', width: 40 }, + { column: 'Block Title', field: 'title', width: 40 }, + { column: 'Type', field: 'type', width: 20 }, + { column: 'Status', field: 'status', width: 20 }, + { column: 'Elapsed Time (ms)', field: 'elapsed', width: 30 }, + ]; + const blocks = this.extractBlocksFromRun(result); + const elapsed = result?.end ? dayjs(result.end).diff(dayjs(result.start)) : 'N/A'; + const logsAvailable = Object.prototype.hasOwnProperty.call(result, 'response') ? 'Yes' : 'No'; + printSuccess(`Status: ${result?.status}`); + printSuccess(`Elapsed Time (ms): ${elapsed}`); + printSuccess(`Logs Available: ${logsAvailable}`); + printSuccess('Details:'); + printTable(tableSpec, _.sortBy(blocks, ['start', 'end'])); } } else { printError(`Failed to desribe pipeline run ${runId}: ${response.message}`, options); diff --git a/test/pipelines.js b/test/pipelines.js index 5cbad6a8..5a135eec 100644 --- a/test/pipelines.js +++ b/test/pipelines.js @@ -15,6 +15,7 @@ describe('Pipelines', () => { let sandbox; let printSpy; let errorSpy; + let warnSpy; const serverUrl = 'http://localhost:8000'; beforeEach(() => { if (!nock.isActive()) { @@ -27,6 +28,7 @@ describe('Pipelines', () => { sandbox.stub(process, 'exit').throws(Error('EXIT')); printSpy = sandbox.spy(console, 'log'); errorSpy = sandbox.spy(console, 'error'); + warnSpy = sandbox.spy(console, 'warn'); nock(serverUrl).get(compatibilityApi()).reply(200, compatiblityResponse()); nock(serverUrl).persist().get(infoApi()).reply(200, infoResponse()); process.env.PREVIEW_FEATURES_ENABLED = '1'; @@ -43,10 +45,15 @@ describe('Pipelines', () => { function getPrintedLines() { return _.flatten(printSpy.args).map((s) => stripAnsi(s)); } + function getErrorLines() { return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); } + function getWarningLines() { + return _.flatten(warnSpy.args).map((s) => stripAnsi(s)); + } + describe('List Pipelines as an unsupported preview feature', () => { it('should print that the response was unintelligable', async () => { const response = '<html></html>'; @@ -66,39 +73,102 @@ describe('Pipelines', () => { }); describe('Pipeline', () => { - it('lists pipelines - empty', async () => { - const response = { success: true, pipelines: [] }; - nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines.*/).reply(200, response); - create(); - await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT]); - - const output = getPrintedLines(); - const errs = getErrorLines(); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs.join('')).to.be.empty; - chai.expect(output.join('')).to.contain('No pipelines found'); - nock.isDone(); - }); + describe('#ListPipelines', () => { + it('lists pipelines - empty', async () => { + const response = { success: true, pipelines: [] }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines.*/).reply(200, response); + create(); + await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT]); - it('lists pipelines', async () => { - const response = { - success: true, - pipelines: [ - { name: 'pipeline1', gitRepoName: 'repo1', sha: 'qwerty' }, - { name: 'pipeline2', gitRepoName: 'repo2', sha: 'abcd' }, - ], - }; - nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines.*/).reply(200, response); - await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT]); - const output = getPrintedLines().join(''); - const errs = getErrorLines().join(''); - chai.expect(output).to.contain('pipeline1'); - chai.expect(output).to.contain('qwerty'); - chai.expect(output).to.contain('pipeline2'); - chai.expect(output).to.contain('qwerty'); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); + const output = getPrintedLines(); + const errs = getErrorLines(); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs.join('')).to.be.empty; + chai.expect(output.join('')).to.contain('No pipelines found'); + nock.isDone(); + }); + + it('lists pipelines', async () => { + const response = { + success: true, + pipelines: [ + { name: 'pipeline1', gitRepoName: 'repo1', sha: 'qwerty' }, + { name: 'pipeline2', gitRepoName: 'repo2', sha: 'abcd' }, + ], + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines.*/).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain('pipeline1'); + chai.expect(output).to.contain('qwerty'); + chai.expect(output).to.contain('pipeline2'); + chai.expect(output).to.contain('qwerty'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('lists pipelines in a repo', async () => { + const response = { + success: true, + pipelines: [ + { name: 'pipeline1', gitRepoName: 'repo1', sha: 'qwerty' }, + { name: 'pipeline2', gitRepoName: 'repo1', sha: 'abcd' }, + ], + }; + // NOTE: '--repo' is a shortcut for '--filter', and all query params are + // required by nock for the match to be succesful + nock(serverUrl) + .get(/\/fabric\/v4\/projects\/.*\/pipelines.*/) + .query({ + filter: JSON.stringify({ gitRepoName: 'repo1' }), + limit: 20, + sort: JSON.stringify({ updatedAt: -1 }), + skip: 0, + }).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT, '--repo', 'repo1']); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain('pipeline1'); + chai.expect(output).to.contain('qwerty'); + chai.expect(output).to.contain('pipeline2'); + chai.expect(output).to.contain('qwerty'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('warns that --filter has a higher priority that --repo when listing pipelines', async () => { + const response = { + success: true, + pipelines: [ + { name: 'pipeline1', gitRepoName: 'repo1', sha: 'qwerty' }, + { name: 'pipeline2', gitRepoName: 'repo1', sha: 'abcd' }, + ], + }; + nock(serverUrl) + .get(/\/fabric\/v4\/projects\/.*\/pipelines/) + .query({ + filter: JSON.stringify({ name: 'pipeline' }), // matches --filter + limit: 20, + sort: JSON.stringify({ updatedAt: -1 }), + skip: 0, + }) + .reply(200, response); + await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT, '--repo', 'repo1', '--filter', '{"name":"pipeline"}']); + const output = getPrintedLines().join(''); + const warn = getWarningLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.contain('pipeline1'); + chai.expect(output).to.contain('qwerty'); + chai.expect(output).to.contain('pipeline2'); + chai.expect(output).to.contain('qwerty'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + chai.expect(warn).to.contain('WARNING: --repo and --filter options are incompatible! The --filter option will be used'); + nock.isDone(); + }); }); it('describes a pipeline', async () => { @@ -143,20 +213,68 @@ describe('Pipelines', () => { } }); - xit('trigger pipeline run', async () => { - const response = { - success: true, - activationId: '3d77f2d3-90ef-4061-a17d-fa2aecb3c6a4', - }; - nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipelines\/.*\/run/).reply(200, response); - await create().parseAsync(['node', 'pipelines', 'run', 'pipeline1', 'repo1', '--project', PROJECT]); - const output = getPrintedLines().join(''); - const errs = getErrorLines().join(''); - const description = JSON.parse(output); - chai.expect(description).to.deep.equal(response); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); + describe('#runPipeline()', () => { + it('runs a Pipeline', async () => { + const response = { + success: true, + activationId: '3d77f2d3-90ef-4061-a17d-fa2aecb3c6a4', + }; + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipelines\/.*\/run/).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'run', 'pipeline1', 'repo1', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.equal(`Pipeline Run Submitted!\n\nUse "cortex pipelines describe-run ${response.activationId}" to inspect the Pipeline Run`); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('runs a Pipeline and prints the output as JSON', async () => { + const response = { + success: true, + activationId: '3d77f2d3-90ef-4061-a17d-fa2aecb3c6a4', + }; + nock(serverUrl).post(/\/fabric\/v4\/projects\/.*\/pipelines\/.*\/run/).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'run', 'pipeline1', 'repo1', '--project', PROJECT, '--json']); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + + const expected = { ...response }; + expected.runId = expected.activationId; // output includes runId NOT activationId + delete expected.activationId; + + const actual = JSON.parse(output); + chai.expect(actual).to.deep.equal(expected); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('fails to run a Pipeline due to params-file not found', async () => { + try { + await create().parseAsync(['node', 'pipelines', 'run', 'pipeline1', 'repo1', '--project', PROJECT, '--params-file', '/tmp/not-found.json']); + } catch { + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(errs).to.include('File does not exist at: /tmp/not-found.json'); + // eslint-disable-next-line no-unused-expressions + chai.expect(output).to.be.empty; + nock.isDone(); + } + }); + + it('fails to run a Pipeline due to invalid params', async () => { + try { + await create().parseAsync(['node', 'pipelines', 'run', 'pipeline1', 'repo1', '--project', PROJECT, '--params', '{']); + } catch { + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(errs).to.include('Failed to parse params: {. Error: YAMLException: unexpected end of the stream within a flow collection (2:1)'); + // eslint-disable-next-line no-unused-expressions + chai.expect(output).to.be.empty; + nock.isDone(); + } + }); }); xit('list pipeline runs', async () => { @@ -180,46 +298,48 @@ describe('Pipelines', () => { nock.isDone(); }); - xit('describe pipeline run', async () => { - const response = { - success: true, - agentName: 'toy-pipeline', - channelId: 'd9e97efc-c663-43e7-a435-2b85d6977d1c', - payload: { + describe('#describePipelineRun()', () => { + xit('describe pipeline run', async () => { + const response = { + success: true, + agentName: 'toy-pipeline', + channelId: 'd9e97efc-c663-43e7-a435-2b85d6977d1c', + payload: { config: '/app/conf/spark-conf-sensa-data-pipeline.json', app_command: [ - '--var', - 'key=value', - '--pipeline', - 'claro_pipeline', - '--config', - 'config_catalog.yml', - '.', - '--repo', - 'git@github.com:CognitiveScale/sensa-data-pipelines.git', - '--block', - 'someblock', + '--var', + 'key=value', + '--pipeline', + 'claro_pipeline', + '--config', + 'config_catalog.yml', + '.', + '--repo', + 'git@github.com:CognitiveScale/sensa-data-pipelines.git', + '--block', + 'someblock', ], - }, - projectId: 'mc-test', - requestId: '54ea4199-1590-46ca-b49d-2f2574ef5873', - serviceName: 'input', - sessionId: '54ea4199-1590-46ca-b49d-2f2574ef5873', - sync: false, - timestamp: 1696875227736, - token: 'eyJhbGciOiJxm_K3fAA', - username: 'cortex@example.com', - start: 1696875227868, - status: 'COMPLETE', - end: 1696875239664, - response: {}, - }; - nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines\/.*\/run\/.*/).query({ gitRepoName: 'repo1' }).reply(200, response); - await create().parseAsync(['node', 'pipelines', 'describe-run', 'pipeline1', 'repo1', 'd9e97efc-c663-43e7-a435-2b85d6977d1c', '--project', PROJECT]); - const errs = getErrorLines().join(''); - // eslint-disable-next-line no-unused-expressions - chai.expect(errs).to.be.empty; - nock.isDone(); + }, + projectId: 'mc-test', + requestId: '54ea4199-1590-46ca-b49d-2f2574ef5873', + serviceName: 'input', + sessionId: '54ea4199-1590-46ca-b49d-2f2574ef5873', + sync: false, + timestamp: 1696875227736, + token: 'eyJhbGciOiJxm_K3fAA', + username: 'cortex@example.com', + start: 1696875227868, + status: 'COMPLETE', + end: 1696875239664, + response: {}, + }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines\/.*\/run\/.*/).query({ gitRepoName: 'repo1' }).reply(200, response); + await create().parseAsync(['node', 'pipelines', 'describe-run', 'pipeline1', 'repo1', 'd9e97efc-c663-43e7-a435-2b85d6977d1c', '--project', PROJECT]); + const errs = getErrorLines().join(''); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); }); }); }); From 24b829b52b2493990b676ea6fac8676689b12a78 Mon Sep 17 00:00:00 2001 From: Yashwanth <yreddy@cognitivescale.com> Date: Thu, 22 Feb 2024 23:21:28 +0530 Subject: [PATCH 857/864] bump up version --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index de671502..bff0a5f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.3.0", + "version": "2.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.3.0", + "version": "2.4.0", "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "3.1.0", diff --git a/package.json b/package.json index d2ef4f7f..ed5821cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.3.0", + "version": "2.4.0", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "type": "module", From 481d8f797b2a0e8bb4d7b6745119c7ec9120fd49 Mon Sep 17 00:00:00 2001 From: Yashwanth <yreddy@cognitivescale.com> Date: Mon, 26 Feb 2024 17:32:07 +0530 Subject: [PATCH 858/864] fix typo --- bin/cortex-applications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-applications.js b/bin/cortex-applications.js index c9c488da..2983b4cd 100755 --- a/bin/cortex-applications.js +++ b/bin/cortex-applications.js @@ -49,7 +49,7 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .option('-f --output-file <file>', 'Write output to file instead of stdout') + .option('-f, --output-file <file>', 'Write output to file instead of stdout') .option('-o, --output <pretty|json|yaml>', 'Format output as yaml or k8s resource', 'pretty') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) From 5c698c3e509437ccf18a9b9d5f07fb983973de36 Mon Sep 17 00:00:00 2001 From: Yashwanth <yreddy@cognitivescale.com> Date: Mon, 26 Feb 2024 17:40:26 +0530 Subject: [PATCH 859/864] adding k8s option to app describe --- bin/cortex-applications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/cortex-applications.js b/bin/cortex-applications.js index 2983b4cd..1d1f3eab 100755 --- a/bin/cortex-applications.js +++ b/bin/cortex-applications.js @@ -50,7 +50,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-f, --output-file <file>', 'Write output to file instead of stdout') - .option('-o, --output <pretty|json|yaml>', 'Format output as yaml or k8s resource', 'pretty') + .option('-o, --output <pretty|json|yaml|k8s>', 'Format output as yaml or k8s resource', 'pretty') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output', false) From 8e54e8c5c4ded830df3f6b6b8d7ecae57e4474d4 Mon Sep 17 00:00:00 2001 From: Parth Joshi <101707583+pjoshi-cs@users.noreply.github.com> Date: Tue, 12 Mar 2024 12:37:07 +0530 Subject: [PATCH 860/864] FAB-6536 - Fix on action save or deploy (#743) * FAB-6536 - Fix on action save or deploy * FAB-6536 - Fix on action save or deploy --- src/commands/actions.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/commands/actions.js b/src/commands/actions.js index 35a45628..d19b23e9 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -149,6 +149,10 @@ export const DeployActionCommand = class { if (actionInst.type === 'daemon' && _.has(actionInst, 'jobTimeout')) { printError('Option jobTimeout not valid on daemon action types'); } + if (_.has(actionInst, 'environmentVariables') && _.isEmpty(actionInst.environmentVariables)) { + // README: allowing user to ignore/skip environmentVariables by keeping it empty/null ("", [], null) + actionInst = _.omit(actionInst, 'environmentVariables'); + } const actions = new Actions(profile.url); const response = await actions.deployAction(options.project || profile.project, profile.token, actionInst); if (response.success) { From 2b7c60c5acd782df53e437707f1a0c21ce66941e Mon Sep 17 00:00:00 2001 From: Parth Joshi <101707583+pjoshi-cs@users.noreply.github.com> Date: Tue, 12 Mar 2024 12:37:25 +0530 Subject: [PATCH 861/864] FAB-6451 - Task Log updated cli with follow (#742) * FAB-6451 - Task Log updated cli with follow * FAB-6451 - Addingf follow support for live logs --------- Co-authored-by: Yashwanth Reddy <yreddy@cognitivescale.com> --- bin/cortex-tasks.js | 6 +++-- src/client/tasks.js | 38 ++++++++++++++++++++------------ src/commands/tasks.js | 51 +++++++++++++++++++++++++++++++++++++++---- 3 files changed, 75 insertions(+), 20 deletions(-) diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index b082d9a3..c9a3f6f4 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -70,12 +70,14 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') + .option('--follow [boolean]', 'Stream live logs', false) // TODO enable when we want to support tasks // .option('--type [type]', 'The type of action logs to fetch [skill|task]') - .action(withCompatibilityCheck((taskName, options) => { + .action(withCompatibilityCheck(async (taskName, options) => { try { checkForEmptyArgs({ taskName }); - new TaskLogsCommand(program).execute(taskName, options); + + await new TaskLogsCommand(program).execute(taskName, options); } catch (err) { console.error(chalk.red(err.message)); } diff --git a/src/client/tasks.js b/src/client/tasks.js index 46f47829..249a82f4 100644 --- a/src/client/tasks.js +++ b/src/client/tasks.js @@ -14,7 +14,9 @@ * limitations under the License. */ import debugSetup from 'debug'; -import { got, defaultHeaders } from './apiutils.js'; +// eslint-disable-next-line import/no-unresolved +import got from 'got'; +import { got as gotAPIUtils, defaultHeaders } from './apiutils.js'; import { constructError, checkProject } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); @@ -34,7 +36,7 @@ export default (class Tasks { if (params) { opts.searchParams = params; } - return got.get(endpoint, opts).json(); + return gotAPIUtils.get(endpoint, opts).json(); } getTask(projectId, taskName, token, params) { @@ -47,29 +49,37 @@ export default (class Tasks { if (params) { opts.searchParams = params; } - return got + return gotAPIUtils .get(endpoint, opts).json() .catch((err) => constructError(err)); } - taskLogs(projectId, token, taskName, verbose = false) { + taskLogs(projectId, token, taskName, follow = false, verbose = false) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}/logs`; debug('taskLogs(%s) => %s', taskName, endpoint); - return got - .get(endpoint, { - headers: defaultHeaders(token), - searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + if (follow) { + return got.stream(endpoint, { + headers: defaultHeaders(token), + searchParams: { follow, verbose }, + }); + // eslint-disable-next-line no-else-return + } else { + return gotAPIUtils + .get(endpoint, { + headers: defaultHeaders(token), + searchParams: { follow, verbose }, + }).json() + .then((res) => ({ ...res })) + .catch((err) => constructError(err)); + } } deleteTask(projectId, token, taskName, verbose = false) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}`; debug('deleteTask(%s) => %s', taskName, endpoint); - return got + return gotAPIUtils .delete(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, @@ -82,7 +92,7 @@ export default (class Tasks { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}/pause`; debug('pauseTask(%s) => %s', taskName, endpoint); - return got + return gotAPIUtils .post(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, @@ -95,7 +105,7 @@ export default (class Tasks { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/tasks/${taskName}/resume`; debug('resumeTask(%s) => %s', taskName, endpoint); - return got + return gotAPIUtils .post(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, diff --git a/src/commands/tasks.js b/src/commands/tasks.js index 619eff5b..df348729 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -134,11 +134,54 @@ export class TaskLogsCommand { debug('%s.executeTaskLogs(%s)', profile.name, taskName); const tasks = new Tasks(profile.url); try { - const response = await tasks.taskLogs(options.project || profile.project, profile.token, taskName, options.verbose); - if (response.success) { - return printSuccess(response.logs, options); + const { task } = await tasks.getTask(options.project || profile.project, taskName, profile.token); + const isFollow = options.follow && (_.lowerCase(task?.state) === 'active' || _.lowerCase(task?.state) === 'queued'); + + const response = await tasks.taskLogs(options.project || profile.project, profile.token, taskName, isFollow, options.verbose); + if (isFollow) { + return new Promise((resolve, reject) => { + response.on('data', (chunk) => { + let data; + try { + data = chunk.toString(); + + // TODO: Improve following with proper standardized log response from pwgy & express-common + const eventDataLines = _.filter(data.split('\n'), (d) => !_.isEmpty(d)); + eventDataLines.forEach((edl) => { + let eventData; + if (edl.startsWith('data:')) { + // Extract the data part of SSE event + eventData = edl.substring(5).trim(); + } + + let parsedEventData = JSON.parse(eventData); + + if (typeof parsedEventData === 'string' && parsedEventData.startsWith('{')) { + parsedEventData = JSON.parse(parsedEventData); + } + // Split the data into individual lines + const lines = _.filter(parsedEventData?.log ? parsedEventData.log.split('\n') : parsedEventData.split('\n'), (d) => !_.isEmpty(d) && d !== '\n'); + + lines.forEach((line) => { + printSuccess(line); + }); + }); + } catch (e) { + printError(`${e.message}`, options); + } + }); + + response.on('error', (error) => reject(error)); + + response.on('end', () => resolve()); + }); + // eslint-disable-next-line no-else-return + } else { + if (response.success) { + return printSuccess(response.logs, options); + } + return printError(`Failed to List Task Logs "${taskName}": ${response.message}`, options); } - return printError(`Failed to List Task Logs "${taskName}": ${response.message}`, options); } catch (err) { return printError(`Failed to query Task Logs "${taskName}": ${err.status} ${err.message}`, options); } From 67456b61ba6c8f69799f6798214f0d42c3df0bb7 Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Wed, 20 Mar 2024 11:37:55 -0500 Subject: [PATCH 862/864] Add --scheduleCron and --scheduleName options to Pipeline run CLI command (#744) --- bin/cortex-pipelines.js | 2 ++ src/client/pipelines.js | 9 +++++++++ src/commands/pipelines.js | 27 ++++++++++++++++---------- test/pipelines.js | 41 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 10 deletions(-) diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js index 479b00a4..67c6d182 100644 --- a/bin/cortex-pipelines.js +++ b/bin/cortex-pipelines.js @@ -81,6 +81,8 @@ export function create() { .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') .option('--commit <commit>', 'Git SHA for pipeline repository') .option('--block <block>', 'Block name to run a specific block') + .option('--scheduleName <name>', 'Identifier to uniquely identify a Pipelines schedule') + .option('--scheduleCron <cron>', 'Schedule Pipeline to run periodically using a cron schedule string for example: "0 0 * * *", @hourly, or @daily') .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { try { checkForEmptyArgs({ pipelineName, gitRepoName }); diff --git a/src/client/pipelines.js b/src/client/pipelines.js index 154bb187..118f4cd2 100644 --- a/src/client/pipelines.js +++ b/src/client/pipelines.js @@ -54,6 +54,14 @@ export default class Pipelines { const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}/run`; debug('runPipeline(%s, %s) => %s', name, gitRepoName, endpoint); const { commit, block } = options; + const query = { }; + if (options?.scheduleName) { + query.scheduleName = options.scheduleName; + } + if (options?.scheduleCron) { + query.scheduleCron = options.scheduleCron; + } + const body = { gitRepoName, ...params }; if (commit) { body.commit = commit; @@ -65,6 +73,7 @@ export default class Pipelines { return await got.post(endpoint, { headers: defaultHeaders(token), json: body, + searchParams: query, }).json(); } catch (err) { return constructError(err); diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js index ba113545..27ed2dc3 100644 --- a/src/commands/pipelines.js +++ b/src/commands/pipelines.js @@ -108,18 +108,25 @@ export const RunPipelineCommand = class { const pipelines = new Pipelines(profile.url); try { const response = await pipelines.runPipeline(options.project || profile.project, profile.token, pipelineName, gitRepoName, params, options); - if (response.success) { - // TODO: Should replacment of activationId -> runId be done at the API level ? - response.runId = response?.runId || response?.activationId; // support runId and activationId - delete response.activationId; - if (options.json) { - getFilteredOutput(response, options); - } else { - printSuccess(`Pipeline Run Submitted!\n\nUse "cortex pipelines describe-run ${response.runId}" to inspect the Pipeline Run`); - } + if (!response.success) { + printError(`Failed to run pipeline: ${response.status} ${response.message}`, options); return; } - printError(`Failed to run pipeline: ${response.status} ${response.message}`, options); + + // Prefer 'runId' but support 'activationId' as a fallback + if (response?.activationId) { + response.runId = response?.runId || response?.activationId; + delete response.activationId; + } + + if (options.json) { + getFilteredOutput(response, options); + } else if (response?.runId) { + printSuccess(`Pipeline Run Submitted!\n\nUse "cortex pipelines describe-run ${response.runId}" to inspect the Pipeline Run`); + } else if (response?.message) { + // Print the message from server - expected when a Pipeline is scheduled + printSuccess(response.message); + } } catch (err) { printError(`Failed to run pipeline: ${err.status} ${err.message}`, options); } diff --git a/test/pipelines.js b/test/pipelines.js index 5a135eec..a9e28482 100644 --- a/test/pipelines.js +++ b/test/pipelines.js @@ -250,6 +250,47 @@ describe('Pipelines', () => { nock.isDone(); }); + it('runs a Pipeline on a set schedule with a default schedule name', async () => { + const pipeline = 'pipeline-name'; + const cron = '@hourly'; + const response = { + success: true, + message: `Scheduled Pipeline "pipeline1" with task "project-pipeline1" using cron "${cron}"`, + }; + nock(serverUrl) + .post(`/fabric/v4/projects/${PROJECT}/pipelines/${pipeline}/run`) + .query({ scheduleCron: cron }) + .reply(200, response); + await create().parseAsync(['node', 'pipelines', 'run', pipeline, 'repo1', '--project', PROJECT, '--scheduleCron', cron]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.equal(response.message); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('runs a Pipeline on a set schedule with a user specified schedule name', async () => { + const pipeline = 'pipeline-name'; + const name = 'my-custom-schedule'; + const cron = '@hourly'; + const response = { + success: true, + message: `Scheduled Pipeline "pipeline1" with task "${name}" using cron "${cron}"`, + }; + nock(serverUrl) + .post(`/fabric/v4/projects/${PROJECT}/pipelines/${pipeline}/run`) + .query({ scheduleCron: cron, scheduleName: name }) + .reply(200, response); + await create().parseAsync(['node', 'pipelines', 'run', pipeline, 'repo1', '--project', PROJECT, '--scheduleCron', cron, '--scheduleName', name]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + chai.expect(output).to.equal(response.message); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + it('fails to run a Pipeline due to params-file not found', async () => { try { await create().parseAsync(['node', 'pipelines', 'run', 'pipeline1', 'repo1', '--project', PROJECT, '--params-file', '/tmp/not-found.json']); From e6c84e1b9c662b3c49d985ace3a89118d5ff3895 Mon Sep 17 00:00:00 2001 From: Johan Gielstra <jgielstra@cognitivescale.com> Date: Mon, 1 Apr 2024 04:12:47 -0500 Subject: [PATCH 863/864] Cli cleanup (#746) * Only guess docker registry if a value hasnot been provided by the cortex /v4/info + workspaces * WIP * Fix worksapces registry selection * WIP enable more commands * Tweak publish to use taskr and docker cli * Do not docker login if --skip-push * Rebase develop, cleanup some odd code * Remove extra error handling/redundant code * Remove useless try catch bin/*.js Remove generate command * . * rebase, broken test * . * . * Fix merge/test breakages * Bump deps * 2.4.1 * . * FAB-6568 fix get application output --- bin/cortex-actions.js | 27 +- bin/cortex-agents.js | 92 +- bin/cortex-applications.js | 49 +- bin/cortex-assessments.js | 69 +- bin/cortex-campaigns.js | 39 +- bin/cortex-configure.js | 9 - bin/cortex-connections.js | 33 +- bin/cortex-content.js | 31 +- bin/cortex-deploy.js | 33 +- bin/cortex-docker.js | 10 +- bin/cortex-experiments.js | 63 +- bin/cortex-generate.js | 23 - bin/cortex-missions.js | 39 +- bin/cortex-models.js | 45 +- bin/cortex-pipelines-repos.js | 38 +- bin/cortex-pipelines.js | 36 +- bin/cortex-projects.js | 31 +- bin/cortex-roles.js | 102 +-- bin/cortex-secrets.js | 34 +- bin/cortex-sessions.js | 27 +- bin/cortex-skills.js | 57 +- bin/cortex-stereotypes.js | 10 +- bin/cortex-tasks.js | 42 +- bin/cortex-types.js | 27 +- bin/cortex-users.js | 51 +- bin/cortex-workspaces.js | 75 +- bin/cortex.js | 2 +- env.json | 13 - package-lock.json | 928 ++++++++++++--------- package.json | 15 +- src/client/actions.js | 52 +- src/client/agents.js | 21 +- src/client/assessments.js | 40 +- src/client/catalog.js | 129 +-- src/client/connections.js | 29 +- src/client/content.js | 8 +- src/client/dockerClient.js | 208 +++++ src/client/experiments.js | 61 +- src/client/models.js | 29 +- src/client/pipelines.js | 54 +- src/client/roles.js | 61 +- src/client/secrets.js | 14 +- src/client/sessions.js | 18 +- src/client/tasks.js | 17 +- src/client/users.js | 41 +- src/commands/actions.js | 110 +-- src/commands/agents.js | 272 +++--- src/commands/applications.js | 32 +- src/commands/assessments.js | 165 ++-- src/commands/campaigns.js | 90 +- src/commands/configure.js | 1 + src/commands/connections.js | 129 ++- src/commands/content.js | 76 +- src/commands/deploy.js | 191 ++--- src/commands/docker.js | 19 +- src/commands/experiments.js | 266 +++--- src/commands/models.js | 144 ++-- src/commands/pipelineRepositories.js | 34 +- src/commands/pipelines.js | 81 +- src/commands/roles.js | 222 ++--- src/commands/secrets.js | 76 +- src/commands/sessions.js | 84 +- src/commands/skills.js | 49 +- src/commands/tasks.js | 38 +- src/commands/types.js | 76 +- src/commands/users.js | 154 ++-- src/commands/utils.js | 153 +++- src/commands/workspaces/build.js | 170 +--- src/commands/workspaces/publish.js | 418 ++++------ src/commands/workspaces/workspace-utils.js | 1 + src/compatibility.js | 34 +- src/config.js | 4 +- src/test.js | 5 + test.json | 6 - test/configure.js | 17 +- test/pipelines.js | 4 +- test/uploadDirectory.js | 4 +- 77 files changed, 2478 insertions(+), 3479 deletions(-) delete mode 100644 bin/cortex-generate.js delete mode 100644 env.json create mode 100644 src/client/dockerClient.js create mode 100644 src/test.js delete mode 100644 test.json diff --git a/bin/cortex-actions.js b/bin/cortex-actions.js index 9ee271ae..fd59cb21 100755 --- a/bin/cortex-actions.js +++ b/bin/cortex-actions.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { ListActionsCommand, DescribeActionCommand, DeleteActionCommand, DeployActionCommand, } from '../src/commands/actions.js'; @@ -30,12 +29,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListActionsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Action program @@ -49,13 +44,9 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('-d, --download', 'Download code binary in response') - .action(withCompatibilityCheck((actionName, options) => { - try { + .action(callCommand((actionName, options) => { checkForEmptyArgs({ actionName }); new DescribeActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Delete Action program @@ -65,13 +56,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((actionName, options) => { - try { + .action(callCommand((actionName, options) => { checkForEmptyArgs({ actionName }); new DeleteActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Deploy Action program @@ -97,12 +84,8 @@ export function create() { // TODO this command is non-functional, comment for now to avoid confusion // .option('--push-docker', 'Push Docker image to the Cortex registry.') .option('-y, --yaml', 'Use YAML format') - .action(withCompatibilityCheck((actionName, options) => { - try { + .action(callCommand((actionName, options) => { new DeployActionCommand(program).execute(actionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-agents.js b/bin/cortex-agents.js index 7eefb18c..baf83f2e 100755 --- a/bin/cortex-agents.js +++ b/bin/cortex-agents.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SKIP_COUNT, @@ -42,13 +41,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action(withCompatibilityCheck((agentDefinitions, options) => { - try { - new SaveAgentCommand(program).execute(agentDefinitions, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); + .action(callCommand( + (agentDefinitions, options) => new SaveAgentCommand(program).execute(agentDefinitions, options))); // List Agents program .command('list') @@ -64,12 +58,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - new ListAgentsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } + .action(callCommand((options) => { + new ListAgentsCommand(program).execute(options); })); // Deploy agent program @@ -78,13 +68,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentNames, options) => { - try { + .action(callCommand((agentNames, options) => { checkForEmptyArgs({ agentNames }); new DeployAgentCommand(program).execute(agentNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Agent program @@ -101,13 +87,9 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--versions', 'To get list of versions of an agent') .option('--verbose', 'Verbose output', false) - .action(withCompatibilityCheck((agentName, options) => { - try { + .action(callCommand((agentName, options) => { checkForEmptyArgs({ agentName }); new DescribeAgentCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Invoke Agent Service program @@ -122,13 +104,9 @@ export function create() { .option('--scheduleName <name>', 'Identifier to uniquely identify an agents schedule, defaults to the agent\'s name') .option('--scheduleCron <cron>', 'Schedule agent invoke periodically using a cron schedule string for example: "0 0 * * *", @hourly, or @daily') .option('--sync', 'Invoke the agent synchronously', false) - .action(withCompatibilityCheck((agentName, serviceName, options) => { - try { + .action(callCommand((agentName, serviceName, options) => { checkForEmptyArgs({ agentName, serviceName }); new InvokeAgentServiceCommand(program).execute(agentName, serviceName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Delete Agent program @@ -138,13 +116,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentName, options) => { - try { + .action(callCommand((agentName, options) => { checkForEmptyArgs({ agentName }); new DeleteAgentCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Undeploy agent program @@ -153,13 +127,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((agentNames, options) => { - try { + .action(callCommand((agentNames, options) => { checkForEmptyArgs({ agentNames }); new UndeployAgentCommand(program).execute(agentNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Get activation program @@ -173,13 +143,9 @@ export function create() { .option('--report [boolean]', 'Get additional debugging info in activation response') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((activationId, options) => { - try { + .action(callCommand((activationId, options) => { checkForEmptyArgs({ activationId }); new GetActivationCommand(program).execute(activationId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Cancel activation program @@ -190,13 +156,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--inFlight [boolean]', 'Leave inflight jobs running', false) - .action(withCompatibilityCheck((activationId, options) => { - try { + .action(callCommand((activationId, options) => { checkForEmptyArgs({ activationId }); new CancelActivationCommand(program).execute(activationId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // List activations @@ -222,12 +184,8 @@ export function create() { // eslint-disable-next-line max-len .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.start)) .option('--filter <filter>', 'A Mongo style filter to use.') - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListActivationsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('list-services <agentName>') @@ -238,13 +196,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((agentName, options) => { - try { + .action(callCommand((agentName, options) => { checkForEmptyArgs({ agentName }); new ListServicesCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Create Agent Snapshot program @@ -256,12 +210,8 @@ export function create() { .option('--project <project>', 'The project to use') .option('--agentName <name[:version]>', 'The name of the agent to snapshot') .option('--title <title>', 'A descriptive title for the snapshot') - .action(withCompatibilityCheck((snapshotDefinition, options) => { - try { + .action(callCommand((snapshotDefinition, options) => { new CreateAgentSnapshotCommand(program).execute(snapshotDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('list-snapshots <agentName>') @@ -276,13 +226,9 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((agentName, options) => { - try { + .action(callCommand((agentName, options) => { checkForEmptyArgs({ agentName }); new ListAgentSnapshotsCommand(program).execute(agentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('describe-snapshot <snapshotId>') @@ -293,13 +239,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') - .action(withCompatibilityCheck((snapshotId, options) => { - try { + .action(callCommand((snapshotId, options) => { checkForEmptyArgs({ snapshotId }); new DescribeAgentSnapshotCommand(program).execute(snapshotId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-applications.js b/bin/cortex-applications.js index 1d1f3eab..f8fba527 100755 --- a/bin/cortex-applications.js +++ b/bin/cortex-applications.js @@ -1,9 +1,8 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SKIP_COUNT, @@ -33,12 +32,8 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (names, options) => { - try { + .action(callCommand(async (names, options) => { await new DeployAppCommand(program).execute(names, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Application program @@ -54,12 +49,8 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output', false) - .action(withCompatibilityCheck(async (name, options) => { - try { + .action(callCommand(async (name, options) => { await new DescribeAppCommand(program).execute(name, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // List Applications program @@ -77,12 +68,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck(async (options) => { - try { + .action(callCommand(async (options) => { await new ListAppsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Delete Application program @@ -93,12 +80,8 @@ export function create() { .option('--json', 'Output results using JSON') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (name, options) => { - try { + .action(callCommand(async (name, options) => { await new DeleteAppCommand(program).execute(name, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Save Application program @@ -113,12 +96,8 @@ export function create() { .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the application definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('-y, --yaml', 'Use YAML for application definition format') .option('--scaleCount <count>', 'Scale count, only used for daemon action types') - .action(withCompatibilityCheck(async (definitions, options) => { - try { + .action(callCommand(async (definitions, options) => { await new SaveAppCommand(program).execute(definitions, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Undeploy Application program @@ -127,13 +106,7 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (names, options) => { - try { - return await new UndeployAppCommand(program).execute(names, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((names, options) => new UndeployAppCommand(program).execute(names, options))); // Get Application logs program .command('logs <name>') @@ -142,13 +115,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--raw', 'Get raw logs as a stream') - .action(withCompatibilityCheck(async (name, options) => { - try { - return await new AppLogsCommand(program).execute(name, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((name, options) => new AppLogsCommand(program).execute(name, options))); return program; } if (esMain(import.meta)) { diff --git a/bin/cortex-assessments.js b/bin/cortex-assessments.js index edcacaf9..2ff4a8f1 100755 --- a/bin/cortex-assessments.js +++ b/bin/cortex-assessments.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { CreateAssessmentCommand, DeleteAssessmentCommand, @@ -38,12 +37,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListResourceTypesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('dependency-tree [dependencyFile]') @@ -58,12 +53,8 @@ export function create() { .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--missing [boolean]', 'Filter only missing dependencies') - .action(withCompatibilityCheck((dependencyFile, options) => { - try { + .action(callCommand((dependencyFile, options) => { new DependencyTreeCommand(program).execute(dependencyFile, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('list-resources') @@ -81,12 +72,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListResourcesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('create [assessmentDefinition]') @@ -103,12 +90,8 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('-y, --yaml', 'Use YAML format') - .action(withCompatibilityCheck((assessmentDefinition, options) => { - try { + .action(callCommand((assessmentDefinition, options) => { new CreateAssessmentCommand(program).execute(assessmentDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('list') @@ -125,12 +108,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListAssessmentCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('describe <assessmentName>') @@ -139,13 +118,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, options) => { - try { + .action(callCommand((assessmentName, options) => { checkForEmptyArgs({ assessmentName }); new DescribeAssessmentCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('delete <assessmentName>') @@ -153,13 +128,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, options) => { - try { + .action(callCommand((assessmentName, options) => { checkForEmptyArgs({ assessmentName }); new DeleteAssessmentCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('report <assessmentName>') @@ -167,13 +138,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, options) => { - try { + .action(callCommand((assessmentName, options) => { checkForEmptyArgs({ assessmentName }); new RunAssessmentCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('list-report <assessmentName>') @@ -186,13 +153,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((assessmentName, options) => { - try { + .action(callCommand((assessmentName, options) => { checkForEmptyArgs({ assessmentName }); new ListAssessmentReportCommand(program).execute(assessmentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('get-report <assessmentName> <reportId>') @@ -203,13 +166,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((assessmentName, reportId, options) => { - try { + .action(callCommand((assessmentName, reportId, options) => { checkForEmptyArgs({ assessmentName, reportId }); new GetAssessmentReportCommand(program).execute(assessmentName, reportId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('export-report <assessmentName> <reportId>') @@ -220,13 +179,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((assessmentName, reportId, options) => { - try { + .action(callCommand((assessmentName, reportId, options) => { checkForEmptyArgs({ assessmentName, reportId }); new ExportAssessmentReportCommand(program).execute(assessmentName, reportId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-campaigns.js b/bin/cortex-campaigns.js index 2a612917..f8b43cc5 100755 --- a/bin/cortex-campaigns.js +++ b/bin/cortex-campaigns.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; @@ -30,12 +29,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListCampaignsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Get|Describe Campaign program @@ -48,13 +43,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((campaignName, options) => { - try { + .action(callCommand((campaignName, options) => { checkForEmptyArgs({ campaignName }); new DescribeCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('export <campaignName>') @@ -65,13 +56,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--deployable [boolean]', 'Export only deployable missions', true) .option('--o <output>', 'Export file name') - .action(withCompatibilityCheck(async (campaignName, options) => { - try { + .action(callCommand(async (campaignName, options) => { checkForEmptyArgs({ campaignName }); await new ExportCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('import <campaignExportFilepath>') @@ -82,13 +69,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--deploy [boolean]', 'Set missions status Ready To Deploy', true) .option('--overwrite [boolean]', 'Overwrite existing deployed missions with the imported one', false) - .action(withCompatibilityCheck((campaignName, options) => { - try { + .action(callCommand((campaignName, options) => { checkForEmptyArgs({ campaignName }); new ImportCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('deploy <campaignName>') @@ -97,13 +80,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, options) => { - try { + .action(callCommand((campaignName, options) => { checkForEmptyArgs({ campaignName }); new DeployCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('undeploy <campaignName>') @@ -112,13 +91,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, options) => { - try { + .action(callCommand((campaignName, options) => { checkForEmptyArgs({ campaignName }); new UndeployCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-configure.js b/bin/cortex-configure.js index cc259e96..0f379e9d 100755 --- a/bin/cortex-configure.js +++ b/bin/cortex-configure.js @@ -1,4 +1,3 @@ -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; import { @@ -15,11 +14,7 @@ export function create() { .option('--profile <profile>', 'The profile to configure', 'default') .option('--project <project>', 'The default project') .action(async (options, command) => { - try { await new ConfigureCommand(command).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } }); program .command('token') @@ -29,11 +24,7 @@ export function create() { .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .action(async (options) => { - try { await new GetAccessToken(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } }); program .command('list') diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 258be252..7100b7d1 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; @@ -29,12 +28,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListConnections(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Save Connections program @@ -45,12 +40,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action(withCompatibilityCheck((connDefinition, options) => { - try { + .action(callCommand((connDefinition, options) => { new SaveConnectionCommand(program).execute(connDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Connection program @@ -63,13 +54,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((connectionName, options) => { - try { + .action(callCommand((connectionName, options) => { checkForEmptyArgs({ connectionName }); new DescribeConnectionCommand(program).execute(connectionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // List Connections Types program @@ -84,12 +71,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListConnectionsTypes(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Delete Connection program @@ -99,13 +82,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((connectionName, options) => { - try { + .action(callCommand((connectionName, options) => { checkForEmptyArgs({ connectionName }); new DeleteConnectionCommand(program).execute(connectionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 1112ea30..62056878 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { ListContent, UploadContent, DeleteContent, DownloadContent, } from '../src/commands/content.js'; @@ -24,12 +23,8 @@ export function create() { .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--prefix <prefix>', 'Filter contents with the given prefix.') - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListContent(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Upload Content program @@ -44,13 +39,7 @@ export function create() { .option('--project <project>', 'The project to use') .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) - .action(withCompatibilityCheck(async (contentKey, filePath, options) => { - try { - return await new UploadContent(program).execute(contentKey, filePath, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((contentKey, filePath, options) => new UploadContent(program).execute(contentKey, filePath, options))); // Delete Content program .command('delete <contentKey>') @@ -59,13 +48,7 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((contentKey, options) => { - try { - new DeleteContent(program).execute(contentKey, options); - } catch (err) { - console.error(chalk.red(err.message)); - } - })); + .action(callCommand((contentKey, options) => new DeleteContent(program).execute(contentKey, options))); // Download Content program .command('download <contentKey>') @@ -75,12 +58,8 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((contentKey, options) => { - try { + .action(callCommand((contentKey, options) => { new DownloadContent(program).execute(contentKey, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-deploy.js b/bin/cortex-deploy.js index efaf397e..539e6022 100755 --- a/bin/cortex-deploy.js +++ b/bin/cortex-deploy.js @@ -1,9 +1,8 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DeploySnapshotCommand, DeployCampaignCommand, DeployConnectionCommand, DeployExperimentCommand, DeploySkillCommand, } from '../src/commands/deploy.js'; @@ -23,12 +22,8 @@ export function create() { .option('-y, --yaml', 'Use YAML for snapshot export format') .option('-f, --force', 'Force delete existing exported files') .option('--latestRun [boolean]', 'Export latest run of Experiment(s) if not specified') - .action(withCompatibilityCheck((snapshotIds, options) => { - try { + .action(callCommand((snapshotIds, options) => { new DeploySnapshotCommand(program).execute(snapshotIds, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('campaign <campaignName>') @@ -38,12 +33,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--deployable [boolean]', 'Export only ready to deploy Campaigns', true) - .action(withCompatibilityCheck((campaignName, options) => { - try { + .action(callCommand((campaignName, options) => { new DeployCampaignCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('connection <connectionName>') @@ -52,12 +43,8 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((connectionName, options) => { - try { + .action(callCommand((connectionName, options) => { new DeployConnectionCommand(program).execute(connectionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('skill <skillName>') @@ -67,12 +54,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') - .action(withCompatibilityCheck((skillName, options) => { - try { + .action(callCommand((skillName, options) => { new DeploySkillCommand(program).execute(skillName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('experiment <experimentName> [runId]') @@ -82,12 +65,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--latestRun [boolean]', 'Export latest run of experiment if not specified') - .action(withCompatibilityCheck((experimentName, runId, options) => { - try { + .action(callCommand((experimentName, runId, options) => { new DeployExperimentCommand(program).execute(experimentName, runId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-docker.js b/bin/cortex-docker.js index 3949b5ef..b109dc89 100755 --- a/bin/cortex-docker.js +++ b/bin/cortex-docker.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import DockerLoginCommand from '../src/commands/docker.js'; export function create() { @@ -15,15 +14,12 @@ export function create() { .description('Docker login to the Cortex registry with your jwt token') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') + .option('--dockerCli <string>', 'Specify the docker client, the following are supported [docker, nerdctl, podman]. If not specified the cli will scan the PATH for available clients') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--ttl <time>', 'The amount of time for this login to remain active, expressed as a number of hours, days, or weeks (e.g. 1h, 2d, 2w)', '14d') - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new DockerLoginCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js index 81601824..27301e2e 100644 --- a/bin/cortex-experiments.js +++ b/bin/cortex-experiments.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SKIP_COUNT, @@ -45,12 +44,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListExperiments(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Experiment program @@ -63,13 +58,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((experimentName, options) => { - try { + .action(callCommand((experimentName, options) => { checkForEmptyArgs({ experimentName }); new DescribeExperimentCommand(program).execute(experimentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Delete Experiment program @@ -79,13 +70,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((experimentName, options) => { - try { + .action(callCommand((experimentName, options) => { checkForEmptyArgs({ experimentName }); new DeleteExperimentCommand(program).execute(experimentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // List Runs program @@ -101,13 +88,9 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((experimentName, options) => { - try { + .action(callCommand((experimentName, options) => { checkForEmptyArgs({ experimentName }); new ListRuns(program).execute(experimentName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Run program @@ -120,13 +103,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((experimentName, runId, options) => { - try { + .action(callCommand((experimentName, runId, options) => { checkForEmptyArgs({ experimentName, runId }); new DescribeRunCommand(program).execute(experimentName, runId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Delete Run program @@ -136,13 +115,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((experimentName, runId, options) => { - try { + .action(callCommand((experimentName, runId, options) => { checkForEmptyArgs({ experimentName, runId }); new DeleteRunCommand(program).execute(experimentName, runId, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Download Artifact program @@ -152,13 +127,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((experimentName, runId, artifactName, options) => { - try { + .action(callCommand((experimentName, runId, artifactName, options) => { checkForEmptyArgs({ experimentName, runId, artifactName }); new DownloadArtifactCommand(program).execute(experimentName, runId, artifactName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Save Experiment program @@ -169,12 +140,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for experiment definition format') - .action(withCompatibilityCheck((experimentDefinition, options) => { - try { + .action(callCommand((experimentDefinition, options) => { new SaveExperimentCommand(program).execute(experimentDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Save Experiment program @@ -185,12 +152,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for run definition format') - .action(withCompatibilityCheck((runDefinition, options) => { - try { + .action(callCommand((runDefinition, options) => { new CreateRunCommand(program).execute(runDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Upload Artifact program @@ -202,8 +165,7 @@ export function create() { .option('--project <project>', 'The project to use') .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') .option('--chunkSize <int>', 'Number of files to simultaneous upload', 10) - .action(withCompatibilityCheck((experimentName, runId, filePath, artifactKey, options) => { - try { + .action(callCommand((experimentName, runId, filePath, artifactKey, options) => { checkForEmptyArgs({ experimentName, runId, @@ -211,9 +173,6 @@ export function create() { artifactKey, }); new UploadArtifactCommand(program).execute(experimentName, runId, filePath, artifactKey, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-generate.js b/bin/cortex-generate.js deleted file mode 100644 index 92c1ff6f..00000000 --- a/bin/cortex-generate.js +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env node -import chalk from 'chalk'; -import { Command } from 'commander'; -import esMain from 'es-main'; - -function create() { - const program = new Command(); - - program.name('cortex generate'); - program.description('Scaffolding Cortex Components [DEPRECATED]'); - program - .command('skill [skillName] [type]') - .description('Generates the structure and top level build script for a skill in current directory') - .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') - .action(() => { - console.error(chalk.red('Generate command has been superceded by the Workspaces command.')); - }); - return program; -} -if (esMain(import.meta)) { - create().showHelpAfterError().parseAsync(process.argv); -} -export default create(); diff --git a/bin/cortex-missions.js b/bin/cortex-missions.js index 35b4de64..8042ca5d 100755 --- a/bin/cortex-missions.js +++ b/bin/cortex-missions.js @@ -1,10 +1,9 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import fs from 'node:fs'; import { Command } from 'commander'; import { checkForEmptyArgs, parseObject, printError } from '../src/commands/utils.js'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; @@ -33,13 +32,9 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((campaignName, options) => { - try { + .action(callCommand((campaignName, options) => { checkForEmptyArgs({ campaignName }); new ListMissionsCommand(program).execute(campaignName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('describe <campaignName> <missionName>') @@ -49,13 +44,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { + .action(callCommand((campaignName, missionName, options) => { checkForEmptyArgs({ campaignName, missionName }); new DescribeMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('deploy <campaignName> <missionName>') @@ -64,13 +55,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { + .action(callCommand((campaignName, missionName, options) => { checkForEmptyArgs({ campaignName, missionName }); new DeployMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('invoke <campaignName> <missionName>') @@ -81,9 +68,8 @@ export function create() { .option('--project <project>', 'The project to use') .option('--params <params>', 'JSON params to send to the action') .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') - .action(withCompatibilityCheck((campaignName, missionName, options) => { + .action(callCommand((campaignName, missionName, options) => { checkForEmptyArgs({ campaignName, missionName }); - try { let params = {}; if (options.params) { try { @@ -111,9 +97,6 @@ export function create() { throw new Error('Empty payload received in params'); } new InvokeAgentServiceCommand(program).execute(`${campaignName}-${missionName}`, 'mission_manager_service', options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('undeploy <campaignName> <missionName>') @@ -122,13 +105,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((campaignName, missionName, options) => { - try { + .action(callCommand((campaignName, missionName, options) => { checkForEmptyArgs({ campaignName, missionName }); new UndeployMissionCommand(program).execute(campaignName, missionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('status <activationId>') @@ -137,13 +116,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((activationId, options) => { - try { + .action(callCommand((activationId, options) => { checkForEmptyArgs({ activationId }); new DownloadContent(program).execute(`mission_runtime/${activationId}/status.chk`, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-models.js b/bin/cortex-models.js index c26d638f..ce5f3c19 100755 --- a/bin/cortex-models.js +++ b/bin/cortex-models.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DeleteModelCommand, SaveModelCommand, DescribeModelCommand, ListModelsCommand, UpdateModelStatusCommand, ListModelRunsCommand, } from '../src/commands/models.js'; @@ -32,12 +31,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListModelsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Model program @@ -51,13 +46,9 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((modelName, options) => { - try { + .action(callCommand((modelName, options) => { checkForEmptyArgs({ modelName }); new DescribeModelCommand(program).execute(modelName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Delete Model program @@ -67,13 +58,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((modelName, options) => { - try { + .action(callCommand((modelName, options) => { checkForEmptyArgs({ modelName }); new DeleteModelCommand(program).execute(modelName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Save Model program @@ -84,12 +71,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for model definition format') - .action(withCompatibilityCheck((modelDefinition, options) => { - try { + .action(callCommand((modelDefinition, options) => { new SaveModelCommand(program).execute(modelDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Publish a Model program @@ -101,13 +84,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for model definition format') .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .action(withCompatibilityCheck((modelName, options) => { - try { + .action(callCommand((modelName, options) => { checkForEmptyArgs({ modelName }); new UpdateModelStatusCommand(program).execute(modelName, options, 'publish'); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Unpublish a Model program @@ -119,13 +98,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for model definition format') .option('--content-type <MIME type>', 'Sets the `Content-Type` or MIME type of the content ( default: application/octet-stream )') - .action(withCompatibilityCheck((modelName, options) => { - try { + .action(callCommand((modelName, options) => { checkForEmptyArgs({ modelName }); new UpdateModelStatusCommand(program).execute(modelName, options, 'unpublish'); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // List model runs program @@ -141,13 +116,9 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((modelName, options) => { - try { + .action(callCommand((modelName, options) => { checkForEmptyArgs({ modelName }); new ListModelRunsCommand(program).execute(modelName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js index 816d2646..210e5d80 100644 --- a/bin/cortex-pipelines-repos.js +++ b/bin/cortex-pipelines-repos.js @@ -1,7 +1,7 @@ #!/usr/bin/env node import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { ListPipelineRepoCommand, DescribePipelineRepoCommand, @@ -12,7 +12,7 @@ import { import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SORT_PARAMS, GET_DEFAULT_SORT_CLI_OPTION, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; -import { printError, checkForEmptyArgs } from '../src/commands/utils.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const repos = new Command(); @@ -33,13 +33,7 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - return new ListPipelineRepoCommand(repos).execute(options); - } catch (err) { - return printError(err.message); - } - })); + .action(callCommand((options) => new ListPipelineRepoCommand(repos).execute(options))); // Describe repos @@ -51,13 +45,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .action(withCompatibilityCheck((pipelineRepoName, options) => { - try { + .action(callCommand((pipelineRepoName, options) => { checkForEmptyArgs({ pipelineRepoName }); return new DescribePipelineRepoCommand(repos).execute(pipelineRepoName, options); - } catch (err) { - return printError(err.message); - } })); // Delete @@ -68,13 +58,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((pipelineRepoName, options) => { - try { + .action(callCommand((pipelineRepoName, options) => { checkForEmptyArgs({ pipelineRepoName }); return new DeletePipelineRepoCommand(repos).execute(pipelineRepoName, options); - } catch (err) { - return printError(err.message); - } })); // Save @@ -90,13 +76,7 @@ export function create() { .option('--branch <branch>', 'Git branch to checkout') .option('-y, --yaml', 'Use YAML for Pipeline Repository definition format') // TODO: should this have CLI args for <repo> & <branch>?? - .action(withCompatibilityCheck((pipelineRepoDefinition, options) => { - try { - return new SavePipelineRepoCommand(repos).execute(pipelineRepoDefinition, options); - } catch (err) { - return printError(err.message); - } - })); + .action(callCommand((pipelineRepoDefinition, options) => new SavePipelineRepoCommand(repos).execute(pipelineRepoDefinition, options))); // Update pipelines repos @@ -109,13 +89,9 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--skill <skillName>', 'Name of the underlying Skill in the same Project to use for running the Pipeline') .option('--force-recreate', 'Whether to force Pipelines to be recreated even if the Pipeline\'s state (git SHA) has not has not changed.') - .action(withCompatibilityCheck((pipelineRepoName, options) => { - try { + .action(callCommand((pipelineRepoName, options) => { checkForEmptyArgs({ pipelineRepoName }); return new UpdateRepoPipelinesCommand(repos).execute(pipelineRepoName, options); - } catch (err) { - return printError(err.message); - } })); return repos; diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js index 67c6d182..10eec48e 100644 --- a/bin/cortex-pipelines.js +++ b/bin/cortex-pipelines.js @@ -8,7 +8,7 @@ import { DescribePipelineRunCommand, ListPipelineRunsCommand, } from '../src/commands/pipelines.js'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { LIST_JSON_HELP_TEXT, DEFAULT_LIST_LIMIT_COUNT, @@ -17,7 +17,7 @@ import { DEFAULT_LIST_SORT_PARAMS, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; -import { printError, checkForEmptyArgs } from '../src/commands/utils.js'; +import { checkForEmptyArgs } from '../src/commands/utils.js'; export function create() { const pipelines = new Command(); @@ -40,13 +40,7 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - return new ListPipelineCommand(pipelines).execute(options); - } catch (err) { - return printError(err.message); - } - })); + .action(callCommand((options) => new ListPipelineCommand(pipelines).execute(options))); // Describe pipelines @@ -59,13 +53,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { - try { + .action(callCommand((pipelineName, gitRepoName, options) => { checkForEmptyArgs({ pipelineName, gitRepoName }); return new DescribePipelineCommand(pipelines).execute(pipelineName, gitRepoName, options); - } catch (err) { - return printError(err.message); - } })); // Run Pipeline @@ -83,13 +73,9 @@ export function create() { .option('--block <block>', 'Block name to run a specific block') .option('--scheduleName <name>', 'Identifier to uniquely identify a Pipelines schedule') .option('--scheduleCron <cron>', 'Schedule Pipeline to run periodically using a cron schedule string for example: "0 0 * * *", @hourly, or @daily') - .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { - try { + .action(callCommand((pipelineName, gitRepoName, options) => { checkForEmptyArgs({ pipelineName, gitRepoName }); return new RunPipelineCommand(pipelines).execute(pipelineName, gitRepoName, options); - } catch (err) { - return printError(err.message); - } })); // Describe Pipeline Run @@ -102,13 +88,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) - .action(withCompatibilityCheck((runId, options) => { - try { + .action(callCommand((runId, options) => { checkForEmptyArgs({ runId }); return new DescribePipelineRunCommand(pipelines).execute(runId, options); - } catch (err) { - return printError(err.message); - } })); // List Pipeline Run @@ -123,13 +105,9 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) - .action(withCompatibilityCheck((pipelineName, gitRepoName, options) => { - try { + .action(callCommand((pipelineName, gitRepoName, options) => { checkForEmptyArgs({ pipelineName, gitRepoName }); return new ListPipelineRunsCommand(pipelines).execute(pipelineName, gitRepoName, options); - } catch (err) { - return printError(err.message); - } })); return pipelines; diff --git a/bin/cortex-projects.js b/bin/cortex-projects.js index 26428fad..24744ae7 100755 --- a/bin/cortex-projects.js +++ b/bin/cortex-projects.js @@ -1,9 +1,8 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { CreateProjectCommand, ListProjectsCommand, DescribeProjectCommand, DeleteProjectCommand, } from '../src/commands/projects.js'; @@ -29,13 +28,7 @@ export function create() { .option('-t, --title <string>', 'The project title') .option('-d, --description <string>', 'The project description') .option('-y, --yaml', 'Use YAML for project definition format') - .action(withCompatibilityCheck((projectDefinition, options) => { - try { - return new CreateProjectCommand(program).execute(projectDefinition, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((projectDefinition, options) => new CreateProjectCommand(program).execute(projectDefinition, options))); // List Projects program .command('list') @@ -50,13 +43,7 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS._updatedAt)) - .action(withCompatibilityCheck((options) => { - try { - return new ListProjectsCommand(program).execute(options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((options) => new ListProjectsCommand(program).execute(options))); // Get|Describe Project program .command('describe <projectName>') @@ -67,13 +54,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((projectName, options) => { - try { + .action(callCommand((projectName, options) => { checkForEmptyArgs({ projectName }); return new DescribeProjectCommand(program).execute(projectName, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } })); // Delete Project program @@ -83,13 +66,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((projectName, options) => { - try { + .action(callCommand((projectName, options) => { checkForEmptyArgs({ projectName }); return new DeleteProjectCommand(program).execute(projectName, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-roles.js b/bin/cortex-roles.js index 3d99e929..702e0736 100755 --- a/bin/cortex-roles.js +++ b/bin/cortex-roles.js @@ -1,9 +1,8 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { nonEmptyStringParser } from '../src/parsers.js'; import { ExternalGroupAssignCommand, @@ -34,13 +33,8 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'Project to list roles for') - .action(withCompatibilityCheck((options) => { - try { - return new RoleListCommand(program).execute(options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((options) => new RoleListCommand(program).execute(options))); + program.command('describe <role>') .alias('get') .description('Describe role grants and users') @@ -49,25 +43,15 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--users', 'List users associated with role') .option('--no-grants', 'Ignore grants associated with role') - .action(withCompatibilityCheck((role, options) => { - try { - return new RoleDescribeCommand(program).execute(role, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((role, options) => new RoleDescribeCommand(program).execute(role, options))); + program.command('delete <role>') .description('Delete a role and remove grants/assignments') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((role, options) => { - try { - return new RoleDeleteCommand(program).execute(role, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((role, options) => new RoleDeleteCommand(program).execute(role, options))); + program.command('create <role>') .description('Create a role with the given grant') .option('--no-compat', 'Ignore API compatibility checks') @@ -77,13 +61,8 @@ export function create() { .requiredOption('--resource <resource>', 'Grant resource') .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') .option('--deny', 'Explicit deny of action(s)') - .action(withCompatibilityCheck((role, options) => { - try { - return new RoleCreateCommand(program).execute(role, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((role, options) => new RoleCreateCommand(program).execute(role, options))); + program.command('grant <role>') .description('Manage grants on an existing role') .option('--no-compat', 'Ignore API compatibility checks') @@ -94,13 +73,8 @@ export function create() { .requiredOption('--actions <actions...>', 'Grant actions read | write | execute | *') .option('--delete', 'Remove grant from role') .option('--deny', 'Explicit deny of action(s)') - .action(withCompatibilityCheck((role, options) => { - try { - return new RoleGrantCommand(program).execute(role, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((role, options) => new RoleGrantCommand(program).execute(role, options))); + program.command('assign <role>') .description('Manage a list of user assignments on a role') .option('--no-compat', 'Ignore API compatibility checks') @@ -111,13 +85,8 @@ export function create() { variadic: true, })) .option('--delete', 'Unassign users from role') - .action(withCompatibilityCheck((role, options) => { - try { - return new RoleAssignCommand(program).execute(role, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((role, options) => new RoleAssignCommand(program).execute(role, options))); + program.command('project <project>') .description('Manage a list of role assignments on a project') .option('--no-compat', 'Ignore API compatibility checks') @@ -125,13 +94,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .requiredOption('--roles <roles...>', 'Roles to add/remove on project') .option('--delete', 'Unassign roles from project') - .action(withCompatibilityCheck((project, options) => { - try { - return new RoleProjectAssignCommand(program).execute(project, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((project, options) => new RoleProjectAssignCommand(program).execute(project, options))); + program.command('list-external') .description('List external groups') .option('--no-compat', 'Ignore API compatibility checks') @@ -139,13 +103,8 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((options) => { - try { - return new ExternalGroupListCommand(program).execute(options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((options) => new ExternalGroupListCommand(program).execute(options))); + program.command('describe-external <externalGroup>') .alias('get-external') .description('Describe external group roles and users') @@ -154,25 +113,15 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--users', 'List users associated with external group') .option('--roles', 'List roles associated with external group') - .action(withCompatibilityCheck((externalGroup, options) => { - try { - return new ExternalGroupDescribeCommand(program).execute(externalGroup, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((externalGroup, options) => new ExternalGroupDescribeCommand(program).execute(externalGroup, options))); + program.command('delete-external <externalGroup>') .description('Delete an external group and remove assignments') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((externalGroup, options) => { - try { - return new ExternalGroupDeleteCommand(program).execute(externalGroup, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((externalGroup, options) => new ExternalGroupDeleteCommand(program).execute(externalGroup, options))); + program.command('assign-external') .description('Manage an external group assignment on a role') .option('--no-compat', 'Ignore API compatibility checks') @@ -181,13 +130,8 @@ export function create() { .requiredOption('--role <role>', 'Role to add/remove assignment') .requiredOption('--externalGroup <externalGroup>', 'External group to add/remove on role') .option('--delete', 'Unassign external group from role') - .action(withCompatibilityCheck((options) => { - try { - return new ExternalGroupAssignCommand(program).execute(options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((options) => new ExternalGroupAssignCommand(program).execute(options))); + return program; } if (esMain(import.meta)) { diff --git a/bin/cortex-secrets.js b/bin/cortex-secrets.js index 24e4f558..74240efb 100755 --- a/bin/cortex-secrets.js +++ b/bin/cortex-secrets.js @@ -1,9 +1,8 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { ListSecretsCommand, ReadSecretsCommand, WriteSecretsCommand, DeleteSecretCommand, } from '../src/commands/secrets.js'; @@ -26,13 +25,8 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((options) => { - try { - return new ListSecretsCommand(program).execute(options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((options) => new ListSecretsCommand(program).execute(options))); + // Read Secure Value program .command('describe <keyName>') @@ -43,13 +37,9 @@ export function create() { .option('--json', 'Output results using JSON') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((keyName, options) => { - try { + .action(callCommand((keyName, options) => { checkForEmptyArgs({ keyName }); return new ReadSecretsCommand(program).execute(keyName, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } })); // Write Secure Value program @@ -61,13 +51,7 @@ export function create() { .option('--data-file <dataFile>', 'A file containing either JSON or YAML formatted value to save') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((keyName, value, options) => { - try { - return new WriteSecretsCommand(program).execute(keyName, value, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } - })); + .action(callCommand((keyName, value, options) => new WriteSecretsCommand(program).execute(keyName, value, options))); // Delete Secret program .command('delete <keyName>') @@ -76,17 +60,13 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((keyName, options) => { - try { + .action(callCommand((keyName, options) => { checkForEmptyArgs({ keyName }); return new DeleteSecretCommand(program).execute(keyName, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } })); return program; } if (esMain(import.meta)) { - create().showHelpAfterError().parseAsync(process.argv); + await create().showHelpAfterError().parseAsync(process.argv); } export default create(); diff --git a/bin/cortex-sessions.js b/bin/cortex-sessions.js index bf62dc20..68214087 100755 --- a/bin/cortex-sessions.js +++ b/bin/cortex-sessions.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DeleteSessionCommand, SaveSessionCommand, DescribeSessionCommand, ListSessionsCommand, } from '../src/commands/sessions.js'; @@ -26,12 +25,8 @@ export function create() { .option('--project <project>', 'The project to use') .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new ListSessionsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Session program @@ -45,13 +40,9 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output') - .action(withCompatibilityCheck((sessionName, options) => { - try { + .action(callCommand((sessionName, options) => { checkForEmptyArgs({ sessionName }); new DescribeSessionCommand(program).execute(sessionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Delete Session program @@ -61,13 +52,9 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck((sessionName, options) => { - try { + .action(callCommand((sessionName, options) => { checkForEmptyArgs({ sessionName }); new DeleteSessionCommand(program).execute(sessionName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Save Session program @@ -78,12 +65,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for session definition format') - .action(withCompatibilityCheck((sessionDefinition, options) => { - try { + .action(callCommand((sessionDefinition, options) => { new SaveSessionCommand(program).execute(sessionDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-skills.js b/bin/cortex-skills.js index ceadcb1e..7c7d4649 100755 --- a/bin/cortex-skills.js +++ b/bin/cortex-skills.js @@ -1,9 +1,8 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SKIP_COUNT, @@ -37,13 +36,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--dryrun', 'Return the K8S skill resource and skip deployment to the cluster') .option('--stereotypes <stereotypes...>', 'Stereotype(s) to apply during deployment: use "none" to remove ALL stereotypes.\nNOTE: These will not be persisted with the skill definition') - .action(withCompatibilityCheck(async (skillNames, options) => { - try { + .action(callCommand(async (skillNames, options) => { checkForEmptyArgs({ skillNames }); await new DeploySkillCommand(program).execute(skillNames, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Skill program @@ -59,13 +54,9 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output', false) - .action(withCompatibilityCheck(async (skillName, options) => { - try { + .action(callCommand(async (skillName, options) => { checkForEmptyArgs({ skillName }); await new DescribeSkillCommand(program).execute(skillName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Invoke Skill program @@ -78,13 +69,9 @@ export function create() { .option('--params <params>', 'JSON params to send to the action') .option('--params-file <paramsFile>', 'A file containing either JSON or YAML formatted params') .option('--sync', 'Invoke the skill synchronously', false) - .action(withCompatibilityCheck(async (skillName, inputName, options) => { - try { + .action(callCommand(async (skillName, inputName, options) => { checkForEmptyArgs({ skillName, inputName }); await new InvokeSkillCommand(program).execute(skillName, inputName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // List Skills program @@ -103,12 +90,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck(async (options) => { - try { + .action(callCommand(async (options) => { await new ListSkillsCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Delete Skill program @@ -119,13 +102,9 @@ export function create() { .option('--json', 'Output results using JSON') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillName, options) => { - try { + .action(callCommand(async (skillName, options) => { checkForEmptyArgs({ skillName }); await new DeleteSkillCommand(program).execute(skillName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Save Skill program @@ -140,12 +119,8 @@ export function create() { .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('-y, --yaml', 'Use YAML for skill definition format') .option('--scaleCount <count>', 'Scale count, only used for daemon action types') - .action(withCompatibilityCheck(async (skillDefinitions, options) => { - try { + .action(callCommand(async (skillDefinitions, options) => { await new SaveSkillCommand(program).execute(skillDefinitions, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Undeploy Skill program @@ -154,13 +129,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillNames, options) => { - try { + .action(callCommand((skillNames, options) => { checkForEmptyArgs({ skillNames }); - return await new UndeploySkillCommand(program).execute(skillNames, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } + return new UndeploySkillCommand(program).execute(skillNames, options); })); // Get Skill/action logs program @@ -172,17 +143,13 @@ export function create() { .option('--raw', 'Get raw logs as a stream') // TODO enable when we want to support tasks // .option('--type [type]', 'The type of action logs to fetch [skill|task]') - .action(withCompatibilityCheck(async (skillName, actionName, options) => { - try { + .action(callCommand((skillName, actionName, options) => { checkForEmptyArgs({ skillName, actionName }); - return await new SkillLogsCommand(program).execute(skillName, actionName, options); - } catch (err) { - return console.error(chalk.red(err.message)); - } + return new SkillLogsCommand(program).execute(skillName, actionName, options); })); return program; } if (esMain(import.meta)) { - create().showHelpAfterError().parseAsync(process.argv); + await create().showHelpAfterError().parseAsync(process.argv); } export default create(); diff --git a/bin/cortex-stereotypes.js b/bin/cortex-stereotypes.js index 05ad14e8..27968588 100755 --- a/bin/cortex-stereotypes.js +++ b/bin/cortex-stereotypes.js @@ -2,7 +2,7 @@ import esMain from 'es-main'; import process from 'node:process'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DEFAULT_LIST_LIMIT_COUNT, DEFAULT_LIST_SKIP_COUNT, @@ -33,7 +33,7 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--verbose', 'Verbose output', false) - .action(withCompatibilityCheck(async (skillName, options) => { + .action(callCommand(async (skillName, options) => { await new DescribeStereotypeCommand(program).execute(skillName, options); })); // List Stereotypes @@ -52,7 +52,7 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck(async (options) => { + .action(callCommand(async (options) => { await new ListStereotypesCommand(program).execute(options); })); // Delete Stereotype @@ -64,7 +64,7 @@ export function create() { .option('--json', 'Output results using JSON') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (skillName, options) => { + .action(callCommand(async (skillName, options) => { await new DeleteStereotypeCommand(program).execute(skillName, options); })); // Save Stereotype @@ -80,7 +80,7 @@ export function create() { .option('--podspec <podspec>', 'A file containing either a JSON or YAML formatted pod spec to merge with the skill definition, used for specifying resources (like memory, ephemeral storage, CPUs, and GPUs) and tolerations (like allowing pods to be scheduled on tainted nodes).') .option('-y, --yaml', 'Use YAML for skill definition format') .option('--scaleCount <count>', 'Scale count, only used for daemon action types') - .action(withCompatibilityCheck(async (skillDefinitions, options) => { + .action(callCommand(async (skillDefinitions, options) => { await new SaveStereotypeCommand(program).execute(skillDefinitions, options); })); return program; diff --git a/bin/cortex-tasks.js b/bin/cortex-tasks.js index c9a3f6f4..97634364 100755 --- a/bin/cortex-tasks.js +++ b/bin/cortex-tasks.js @@ -1,7 +1,6 @@ -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { ListTasksCommand, DescribeTaskCommand, TaskLogsCommand, TaskDeleteCommand, TaskPauseCommand, TaskResumeCommand, } from '../src/commands/tasks.js'; @@ -38,12 +37,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.startTime)) - .action(withCompatibilityCheck(async (options) => { - try { + .action(callCommand(async (options) => { await new ListTasksCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('describe <taskName>') @@ -55,13 +50,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--k8s', 'Return the full k8sResource in the response') // .option('-o, --output <json|yaml|k8s>', 'Format output as yaml or k8s resources') - .action(withCompatibilityCheck((taskName, options) => { - try { + .action(callCommand((taskName, options) => { checkForEmptyArgs({ taskName }); new DescribeTaskCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Get task logs program @@ -73,14 +64,9 @@ export function create() { .option('--follow [boolean]', 'Stream live logs', false) // TODO enable when we want to support tasks // .option('--type [type]', 'The type of action logs to fetch [skill|task]') - .action(withCompatibilityCheck(async (taskName, options) => { - try { + .action(callCommand((taskName, options) => { checkForEmptyArgs({ taskName }); - - await new TaskLogsCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } + new TaskLogsCommand(program).execute(taskName, options); })); // Delete a task program @@ -89,13 +75,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (taskName, options) => { - try { + .action(callCommand(async (taskName, options) => { checkForEmptyArgs({ taskName }); await new TaskDeleteCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Pause a task program @@ -104,13 +86,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (taskName, options) => { - try { + .action(callCommand(async (taskName, options) => { checkForEmptyArgs({ taskName }); await new TaskPauseCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Resume a task program @@ -119,13 +97,9 @@ export function create() { .option('--no-compat', 'Ignore API compatibility checks') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (taskName, options) => { - try { + .action(callCommand(async (taskName, options) => { checkForEmptyArgs({ taskName }); await new TaskResumeCommand(program).execute(taskName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-types.js b/bin/cortex-types.js index ae835482..b3ed51f4 100755 --- a/bin/cortex-types.js +++ b/bin/cortex-types.js @@ -1,9 +1,8 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import process from 'node:process'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { DEFAULT_LIST_SKIP_COUNT, DEFAULT_LIST_LIMIT_COUNT, GET_DEFAULT_SORT_CLI_OPTION, DEFAULT_LIST_SORT_PARAMS, LIST_JSON_HELP_TEXT, QUERY_JSON_HELP_TEXT, } from '../src/constants.js'; @@ -25,12 +24,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for type definition format') - .action(withCompatibilityCheck(async (typeDefinition, options) => { - try { + .action(callCommand(async (typeDefinition, options) => { await new SaveTypeCommand(program).execute(typeDefinition, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // List Types program @@ -46,12 +41,8 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(withCompatibilityCheck(async (options) => { - try { + .action(callCommand(async (options) => { await new ListTypesCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); // Describe Type program @@ -64,13 +55,9 @@ export function create() { .option('--project <project>', 'The project to use') .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) - .action(withCompatibilityCheck(async (typeName, options) => { - try { + .action(callCommand(async (typeName, options) => { checkForEmptyArgs({ typeName }); await new DescribeTypeCommand(program).execute(typeName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program .command('delete <typeName>') @@ -80,13 +67,9 @@ export function create() { .option('--json', 'Output results using JSON') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(withCompatibilityCheck(async (typeName, options) => { - try { + .action(callCommand(async (typeName, options) => { checkForEmptyArgs({ typeName }); await new DeleteTypeCommand(program).execute(typeName, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-users.js b/bin/cortex-users.js index 8918fd9b..a0cd4ff5 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -1,8 +1,7 @@ #!/usr/bin/env node -import chalk from 'chalk'; import esMain from 'es-main'; import { Command } from 'commander'; -import { withCompatibilityCheck } from '../src/compatibility.js'; +import { callCommand } from '../src/compatibility.js'; import { UserProjectAssignCommand, UserDescribeCommand, UserGrantCommand, UserCreateCommand, UserListCommand, UserDeleteCommand, UserResetPATCommand, UserGetPATCommand, } from '../src/commands/users.js'; @@ -22,12 +21,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--user <user>', 'The user to describe, self for default') .option('--roles', 'Include grant inheritance from roles') - .action(withCompatibilityCheck(async (user, options) => { - try { + .action(callCommand(async (user, options) => { await new UserDescribeCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program.command('grant <user>') .description('Manage user grants') @@ -39,13 +34,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--delete', 'Remove grant from user') .option('--deny', 'Explicit deny of action(s)') - .action(withCompatibilityCheck((user, options) => { - try { + .action(callCommand((user, options) => { checkForEmptyArgs({ user }); new UserGrantCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program.command('project <project>') .description('Manage a list of user assignments on a project') @@ -54,39 +45,27 @@ export function create() { .option('--profile <profile>', 'The profile to use') .requiredOption('--users <users...>', 'Users to add/remove on project') .option('--delete', 'Unassign users from project') - .action(withCompatibilityCheck((project, options) => { - try { + .action(callCommand((project, options) => { checkForEmptyArgs({ project }); new UserProjectAssignCommand(program).execute(project, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program.command('delete <user>') .description('Deletes a service user and disables any existing tokens created by the user') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((user, options) => { - try { + .action(callCommand((user, options) => { checkForEmptyArgs({ user }); new UserDeleteCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program.command('create <user>') .description('Creates a service user (with no assigned roles/grants) that can authenticate with and call Fabric API\'s') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((user, options) => { - try { + .action(callCommand((user, options) => { checkForEmptyArgs({ user }); new UserCreateCommand(program).execute(user, options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program.command('list') .description('Lists all service users created within Cortex') @@ -96,12 +75,8 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new UserListCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program.command('reset-pat') .description('Invalidates personal access token (PAT) for a specified user within Cortex') @@ -109,12 +84,8 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--user <user>', 'The user to reset personal access token') - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new UserResetPATCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); program.command('get-pat') .description('Fetch personal access token (PAT) for a specified user within Cortex') @@ -122,12 +93,8 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--user <user>', 'The user to reset personal access token (admins only)') - .action(withCompatibilityCheck((options) => { - try { + .action(callCommand((options) => { new UserGetPATCommand(program).execute(options); - } catch (err) { - console.error(chalk.red(err.message)); - } })); return program; } diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js index f032ac52..dcdd0310 100644 --- a/bin/cortex-workspaces.js +++ b/bin/cortex-workspaces.js @@ -8,7 +8,6 @@ import WorkspacePublishCommand from '../src/commands/workspaces/publish.js'; import { WorkspaceAddRegistryCommand, WorkspaceRemoveRegistryCommand, WorkspaceActivateRegistryCommand, WorkspaceListRegistryCommand, } from '../src/commands/workspaces/registry.js'; -import { printError } from '../src/commands/utils.js'; export function create() { const program = new Command(); @@ -20,54 +19,38 @@ export function create() { .option('--refresh', 'Refresh the Github access token') .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Configures the Cortex Template System for generating skill templates') - .action((options) => { - try { - return new WorkspaceConfigureCommand(program).execute(options); - } catch (err) { - return printError(err.message); - } - }); + .action((options) => (new WorkspaceConfigureCommand(program)).execute(options)); + program .command('generate [name] [destination]') .option('--color [boolean]', 'Turn on/off colors', 'true') .option('--notree [boolean]', 'Do not display generated file tree', 'false') .option('--template <templateName>', 'Name of template to use') .description('Generates a workspace based on a template from the template repository') - .action((name, destination, options) => { - try { - return new WorkspaceGenerateCommand(program).execute(name, destination, options); - } catch (err) { - return printError(err.message); - } - }); + .action((name, destination, options) => new WorkspaceGenerateCommand(program).execute(name, destination, options)); + program .command('build [folder]') .option('--profile <profile>', 'The profile to use') .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--dockerCli <string>', 'Specify the docker client, the following are supported [docker, nerdctl, podman]. If not specified the cli will scan the PATH for available clients') .option('--skill <skill name>', 'Build only the specified skill') .description('Builds all skills in the workspace, or optionally only the specified skill') - .action((folder, options) => { - try { - return new WorkspaceBuildCommand(program).execute(folder, options); - } catch (err) { - return printError(err.message); - } - }); + .action((folder, options) => (new WorkspaceBuildCommand(program)).execute(folder, options)); + program .command('publish [folder]') .option('--profile <profile>', 'The profile to use') .option('--project <project name>', 'Publish to the specified project') .option('--color [boolean]', 'Turn on/off colors', 'true') + .option('--dockerCli <string>', 'Specify the docker client, the following are supported [docker, nerdctl, podman]. If not specified the cli will scan the PATH for available clients') .option('--skip-push', 'Don\'t push images to docker registry') .option('--skill <skill name>', 'Publish only the specified skill') .description('Publishes all skills and resources in the workspace') - .action((folder, options) => { - try { - return new WorkspacePublishCommand(program).execute(folder, options); - } catch (err) { - return printError(err.message); - } + .action(async (folder, options) => { + await (new WorkspacePublishCommand(program)).execute(folder, options); }); + const registry = program .command('registry') .description('Manage image repositories.'); @@ -78,52 +61,30 @@ export function create() { .option('--url <registry url>', 'Registry URL') .option('--namespace <registry namespace>', 'Registry Namespace') .description('Adds an image registry to publish to.') - .action((name, options) => { - try { - return new WorkspaceAddRegistryCommand(program).execute(name, options); - } catch (err) { - return printError(err.message); - } - }); + .action((name, options) => new WorkspaceAddRegistryCommand(program).execute(name, options)); + registry .command('remove [name]') .option('--profile <profile>', 'The profile to use') .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Removes the specified image registry.') - .action((name, options) => { - try { - return new WorkspaceRemoveRegistryCommand(program).execute(name, options); - } catch (err) { - return printError(err.message); - } - }); + .action((name, options) => new WorkspaceRemoveRegistryCommand(program).execute(name, options)); + registry .command('activate [name]') .option('--profile <profile>', 'The profile to use') .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Activates the specified image registry.') - .action((name, options) => { - try { - return new WorkspaceActivateRegistryCommand(program).execute(name, options); - } catch (err) { - return printError(err.message); - } - }); + .action((name, options) => new WorkspaceActivateRegistryCommand(program).execute(name, options)); registry .command('list') .option('--profile <profile>', 'The profile to use') .option('--color [boolean]', 'Turn on/off colors', 'true') .description('Lists all image registries') - .action((options) => { - try { - return new WorkspaceListRegistryCommand(program).execute(options); - } catch (err) { - return printError(err.message); - } - }); + .action((options) => new WorkspaceListRegistryCommand(program).execute(options)); return program; } if (esMain(import.meta)) { - create().showHelpAfterError().parseAsync(process.argv); + await create().showHelpAfterError().parseAsync(process.argv); } export default create(); diff --git a/bin/cortex.js b/bin/cortex.js index 44788305..49c03c76 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -5,7 +5,7 @@ import { readPackageJSON, printError } from '../src/commands/utils.js'; import { loadProfileWithoutFailure } from '../src/config.js'; import { getAllSubcommands, FeatureController } from '../src/features.js'; -// Global varible storing the users profile, used to avoid redundantly loading the Profile +// Global variable storing the users profile, used to avoid redundantly loading the Profile let profile; async function resolveAvailableSubcommands(profileName) { diff --git a/env.json b/env.json deleted file mode 100644 index 14eb65c4..00000000 --- a/env.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "env1", - "title": "Environment 1", - "description": "This is my description", - "label": "env1", - "consoleUrl": "http://console.localhost:8000", - "apiUrl": "http://api.localhost:8000", - "whiteList": ["127.0.0.1"], - "blackList": ["10.255.255.255"], - "provisionToken": "token-token-token", - "type": "foo", - "properties": [{"name":"p1", "value":"v1"}] -} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index bff0a5f2..b640ccd7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cortex-cli", - "version": "2.4.0", + "version": "2.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cortex-cli", - "version": "2.4.0", + "version": "2.4.1", "license": "Apache-2.0", "dependencies": { "@supercharge/promise-pool": "3.1.0", @@ -17,7 +17,6 @@ "commander": "11.1.0", "dayjs": "1.11.10", "debug": "4.3.4", - "dockerode": "3.3.5", "es-main": "1.3.0", "form-data": "4.0.0", "get-stream": "8.0.1", @@ -26,26 +25,28 @@ "got": "13.0.0", "graphql": "16.8.1", "graphql-request": "6.1.0", - "inquirer": "9.2.12", + "inquirer": "9.2.16", "is-installed-globally": "1.0.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", "joi": "17.11.0", - "jose": "5.2.0", + "jose": "5.2.3", "js-yaml": "4.1.0", "keytar": "7.9.0", + "listr2": "6.4.2", "lodash": "4.17.21", "minimatch": "9.0.3", "npm-registry-fetch": "16.1.0", - "open": "9.1.0", + "open": "10.1.0", "prompts": "2.4.2", - "qs": "6.11.2", + "qs": "6.12.0", "semver": "7.5.4", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", "uuid": "9.0.1", - "yauzl": "2.10.0" + "which": "3.0.0", + "yauzl": "3.1.2" }, "bin": { "cortex": "bin/cortex.js" @@ -98,10 +99,6 @@ "node": ">=6.9.0" } }, - "node_modules/@balena/dockerignore": { - "version": "1.0.2", - "license": "Apache-2.0" - }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "dev": true, @@ -727,10 +724,11 @@ } }, "node_modules/@ljharb/through": { - "version": "2.3.11", - "license": "MIT", + "version": "2.3.13", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", + "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" }, "engines": { "node": ">= 0.4" @@ -1269,13 +1267,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asn1": { - "version": "0.2.6", - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, "node_modules/assertion-error": { "version": "1.1.0", "dev": true, @@ -1355,20 +1346,6 @@ ], "license": "MIT" }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "license": "BSD-3-Clause", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/big-integer": { - "version": "1.6.51", - "license": "Unlicense", - "engines": { - "node": ">=0.6" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "dev": true, @@ -1400,16 +1377,6 @@ "version": "3.2.0", "license": "MIT" }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "license": "MIT", - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "dev": true, @@ -1464,13 +1431,6 @@ "node": "*" } }, - "node_modules/buildcheck": { - "version": "0.0.3", - "optional": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/builtins": { "version": "5.0.1", "license": "MIT", @@ -1479,13 +1439,14 @@ } }, "node_modules/bundle-name": { - "version": "3.0.0", - "license": "MIT", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", "dependencies": { - "run-applescript": "^5.0.0" + "run-applescript": "^7.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1593,11 +1554,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1919,6 +1887,67 @@ "@colors/colors": "1.5.0" } }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/cli-width": { "version": "4.1.0", "license": "ISC", @@ -1969,6 +1998,11 @@ "color-support": "bin.js" } }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, "node_modules/combined-stream": { "version": "1.0.8", "license": "MIT", @@ -2020,18 +2054,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cpu-features": { - "version": "0.0.4", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "buildcheck": "0.0.3", - "nan": "^2.15.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/crc-32": { "version": "1.2.2", "dev": true, @@ -2091,6 +2113,20 @@ "node": ">= 8" } }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/crypto-random-string": { "version": "5.0.0", "dev": true, @@ -2187,30 +2223,26 @@ "license": "MIT" }, "node_modules/default-browser": { - "version": "4.0.0", - "license": "MIT", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/default-browser-id": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2234,16 +2266,19 @@ } }, "node_modules/define-data-property": { - "version": "1.1.0", - "dev": true, - "license": "MIT", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-lazy-prop": { @@ -2305,31 +2340,6 @@ "node": ">=8" } }, - "node_modules/docker-modem": { - "version": "3.0.6", - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^1.11.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/dockerode": { - "version": "3.3.5", - "license": "Apache-2.0", - "dependencies": { - "@balena/dockerignore": "^1.0.2", - "docker-modem": "^3.0.0", - "tar-fs": "~2.0.1" - }, - "engines": { - "node": ">= 8.0" - } - }, "node_modules/doctrine": { "version": "3.0.0", "dev": true, @@ -2436,6 +2446,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-main": { "version": "1.3.0", "license": "MIT" @@ -2846,59 +2875,10 @@ "through": "^2.3.8" } }, - "node_modules/execa": { - "version": "7.1.1", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/execa/node_modules/mimic-fn": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/execa/node_modules/onetime": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" }, "node_modules/expand-template": { "version": "2.0.3", @@ -2980,45 +2960,26 @@ "reusify": "^1.0.4" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/figures": { - "version": "5.0.0", - "license": "MIT", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=14" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/is-unicode-supported": { - "version": "1.3.0", - "license": "MIT", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, "node_modules/file-entry-cache": { @@ -3269,13 +3230,18 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "license": "MIT", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3481,7 +3447,6 @@ }, "node_modules/gopd": { "version": "1.0.1", - "dev": true, "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" @@ -3553,6 +3518,7 @@ }, "node_modules/has": { "version": "1.0.3", + "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1" @@ -3577,11 +3543,11 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "dev": true, - "license": "MIT", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3623,7 +3589,6 @@ }, "node_modules/hasown": { "version": "2.0.0", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -3710,13 +3675,6 @@ "node": ">= 6" } }, - "node_modules/human-signals": { - "version": "4.3.1", - "license": "Apache-2.0", - "engines": { - "node": ">=14.18.0" - } - }, "node_modules/husky": { "version": "8.0.3", "dev": true, @@ -3818,16 +3776,17 @@ } }, "node_modules/inquirer": { - "version": "9.2.12", - "license": "MIT", + "version": "9.2.16", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.16.tgz", + "integrity": "sha512-qzgbB+yNjgSzk2omeqMDtO9IgJet/UL67luT1MaaggRpGK73DBQct5Q4pipwFQcIKK1GbMODYd4UfsRCkSP1DA==", "dependencies": { - "@ljharb/through": "^2.3.11", + "@ljharb/through": "^2.3.13", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", "cli-width": "^4.1.0", "external-editor": "^3.1.0", - "figures": "^5.0.0", + "figures": "^3.2.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", "ora": "^5.4.1", @@ -3838,7 +3797,7 @@ "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=14.18.0" + "node": ">=18" } }, "node_modules/inquirer/node_modules/wrap-ansi": { @@ -3990,22 +3949,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, + "node_modules/is-extglob": { + "version": "2.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4172,6 +4118,7 @@ }, "node_modules/is-stream": { "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -4244,13 +4191,17 @@ } }, "node_modules/is-wsl": { - "version": "2.2.0", - "license": "MIT", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dependencies": { - "is-docker": "^2.0.0" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/isarray": { @@ -4361,9 +4312,9 @@ } }, "node_modules/jose": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/jose/-/jose-5.2.0.tgz", - "integrity": "sha512-oW3PCnvyrcm1HMvGTzqjxxfnEs9EoFOFWi2HsEGhlFVOXxTE3K9GKWVMFoFw06yPUqwpvEWic1BmtUZBI/tIjw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.2.3.tgz", + "integrity": "sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA==", "funding": { "url": "https://github.com/sponsors/panva" } @@ -4549,6 +4500,103 @@ "node": ">= 0.8.0" } }, + "node_modules/listr2": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.4.2.tgz", + "integrity": "sha512-v55SFIDP7SiPEYFeIFGbKW44B4NPpqGEklbAc1EKacMxIqFVXpDlc93e/Q6hE3IgIGRu5870rh5yJc+ESwGUpQ==", + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", + "rfdc": "^1.3.0", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/locate-path": { "version": "6.0.0", "dev": true, @@ -4630,6 +4678,151 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dependencies": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/loupe": { "version": "2.3.6", "dev": true, @@ -4706,6 +4899,7 @@ }, "node_modules/merge-stream": { "version": "2.0.0", + "dev": true, "license": "MIT" }, "node_modules/merge2": { @@ -5092,11 +5286,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/nan": { - "version": "2.17.0", - "license": "MIT", - "optional": true - }, "node_modules/nanoid": { "version": "3.3.3", "dev": true, @@ -5266,6 +5455,7 @@ }, "node_modules/npm-run-path": { "version": "5.1.0", + "dev": true, "license": "MIT", "dependencies": { "path-key": "^4.0.0" @@ -5279,6 +5469,7 @@ }, "node_modules/npm-run-path/node_modules/path-key": { "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -5288,10 +5479,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "license": "MIT", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5398,16 +5588,17 @@ } }, "node_modules/open": { - "version": "9.1.0", - "license": "MIT", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", "dependencies": { - "default-browser": "^4.0.0", + "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" + "is-wsl": "^3.1.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5631,7 +5822,8 @@ }, "node_modules/pend": { "version": "1.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -5927,11 +6119,11 @@ } }, "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", + "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -6164,6 +6356,11 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==" + }, "node_modules/rimraf": { "version": "3.0.2", "dev": true, @@ -6209,83 +6406,16 @@ } }, "node_modules/run-applescript": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/execa": { - "version": "5.1.1", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/run-applescript/node_modules/get-stream": { - "version": "6.0.1", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-applescript/node_modules/human-signals": { - "version": "2.1.0", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/run-applescript/node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/run-applescript/node_modules/npm-run-path": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/run-applescript/node_modules/strip-final-newline": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/run-async": { "version": "3.0.0", "license": "MIT", @@ -6401,6 +6531,22 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-function-name": { "version": "2.0.1", "dev": true, @@ -6441,12 +6587,17 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6542,6 +6693,43 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/slugify": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", @@ -6668,30 +6856,11 @@ "node": "*" } }, - "node_modules/split-ca": { - "version": "1.0.1", - "license": "ISC" - }, "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" }, - "node_modules/ssh2": { - "version": "1.11.0", - "hasInstallScript": true, - "dependencies": { - "asn1": "^0.2.4", - "bcrypt-pbkdf": "^1.0.2" - }, - "engines": { - "node": ">=10.16.0" - }, - "optionalDependencies": { - "cpu-features": "~0.0.4", - "nan": "^2.16.0" - } - }, "node_modules/ssri": { "version": "10.0.5", "license": "ISC", @@ -6864,6 +7033,7 @@ }, "node_modules/strip-final-newline": { "version": "3.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -7037,16 +7207,6 @@ "dev": true, "license": "MIT" }, - "node_modules/titleize": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/tmp": { "version": "0.0.33", "license": "MIT", @@ -7113,10 +7273,6 @@ "node": "*" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "license": "Unlicense" - }, "node_modules/type-check": { "version": "0.4.0", "dev": true, @@ -7250,13 +7406,6 @@ "node": ">= 10.0.0" } }, - "node_modules/untildify": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/uri-js": { "version": "4.4.1", "dev": true, @@ -7338,16 +7487,17 @@ } }, "node_modules/which": { - "version": "2.0.2", - "license": "ISC", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", + "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", "dependencies": { "isexe": "^2.0.0" }, "bin": { - "node-which": "bin/node-which" + "node-which": "bin/which.js" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/which-boxed-primitive": { @@ -7512,11 +7662,15 @@ } }, "node_modules/yauzl": { - "version": "2.10.0", - "license": "MIT", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.2.tgz", + "integrity": "sha512-621iCPgEG1wXViDZS/L3h9F8TgrdQV1eayJlJ8j5A2SZg8OdY/1DLf+VxNeD+q5QbMFEAbjjR8nITj7g4nKa0Q==", "dependencies": { "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/yocto-queue": { diff --git a/package.json b/package.json index ed5821cb..291de06e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cortex-cli", - "version": "2.4.0", + "version": "2.4.1", "description": "Command line tool for CognitiveScale Cortex.", "main": "./bin/cortex.js", "type": "module", @@ -55,7 +55,6 @@ "commander": "11.1.0", "dayjs": "1.11.10", "debug": "4.3.4", - "dockerode": "3.3.5", "es-main": "1.3.0", "form-data": "4.0.0", "get-stream": "8.0.1", @@ -64,26 +63,28 @@ "got": "13.0.0", "graphql": "16.8.1", "graphql-request": "6.1.0", - "inquirer": "9.2.12", + "inquirer": "9.2.16", "is-installed-globally": "1.0.0", "istextorbinary": "6.0.0", "jmespath": "0.16.0", "joi": "17.11.0", - "jose": "5.2.0", + "jose": "5.2.3", "js-yaml": "4.1.0", "keytar": "7.9.0", + "listr2": "6.4.2", "lodash": "4.17.21", "minimatch": "9.0.3", "npm-registry-fetch": "16.1.0", - "open": "9.1.0", + "open": "10.1.0", "prompts": "2.4.2", - "qs": "6.11.2", + "qs": "6.12.0", "semver": "7.5.4", "treeify": "1.1.0", "url-join": "5.0.0", "url-parse": "1.5.10", "uuid": "9.0.1", - "yauzl": "2.10.0" + "which": "3.0.0", + "yauzl": "3.1.2" }, "devDependencies": { "audit-ci": "6.6.1", diff --git a/src/client/actions.js b/src/client/actions.js index 3e79d4ac..c3b1a23a 100644 --- a/src/client/actions.js +++ b/src/client/actions.js @@ -1,7 +1,8 @@ import _ from 'lodash'; import debugSetup from 'debug'; import { got, defaultHeaders } from './apiutils.js'; -import { constructError, callMe, checkProject } from '../commands/utils.js'; +import { checkProject, printWarning } from '../commands/utils.js'; +import dockerCli from './dockerClient.js'; const debug = debugSetup('cortex:cli'); export default class Actions { @@ -18,7 +19,7 @@ export default class Actions { } debug('deployAction(%s, docker=%s, ttl=%s) => %s', actionInst.name, actionInst.image, actionInst.ttl, endpoint); const body = { ...actionInst }; - // image & docker floating around fixup just in case.. + // image & docker floating around fixup just in case. if (body.docker) { body.image = body.docker; delete body.docker; @@ -32,9 +33,7 @@ export default class Actions { .post(endpoint, { headers: defaultHeaders(token), json: body, - }).json() - .then((res) => ({ success: true, message: res })) - .catch((err) => constructError(err)); + }).json(); } listActions(projectId, token, filter, limit, skip, sort) { @@ -49,9 +48,7 @@ export default class Actions { .get(this.endpointV4(projectId), { headers: defaultHeaders(token), searchParams: query, - }).json() - .then((actions) => actions) - .catch((err) => constructError(err)); + }).json(); } describeAction(projectId, token, actionName) { @@ -60,9 +57,7 @@ export default class Actions { debug('describeAction(%s) => %s', actionName, endpoint); return got .get(endpoint, { headers: defaultHeaders(token) }) - .json() - .then((action) => action) - .catch((err) => constructError(err)); + .json(); } getLogsAction(projectId, token, actionName) { @@ -71,15 +66,7 @@ export default class Actions { debug('getLogsAction(%s) => %s', actionName, endpoint); return got .get(endpoint, { headers: defaultHeaders(token) }) - .json() - .then((logs) => { - if (_.isArray(logs)) { - // returns plain array for Rancher daemons - return { success: true, logs }; - } - return logs; - }) - .catch((err) => constructError(err)); + .json(); } deleteAction(projectId, token, actionName) { @@ -90,9 +77,7 @@ export default class Actions { .delete(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((action) => ({ success: true, action })) - .catch((err) => constructError(err)); + .json(); } getConfig(projectId, token) { @@ -103,9 +88,7 @@ export default class Actions { .get(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((config) => ({ success: true, config })) - .catch((err) => constructError(err)); + .json(); } static getCanonicalJobId(jobId) { @@ -129,18 +112,23 @@ export default class Actions { } async _maybePushDockerImage(image, token, pushDocker) { + // This is a helper to push a local or remote image to a private registry if (!image || !pushDocker) { return image; } const registryUrl = await this._cortexRegistryUrl(token); const imageName = image.replace(/.+\..+\//, ''); - // const { payload } = jwtVerify(token); - // TODO fix path const cortexImageUrl = this._cortexRegistryImagePath(registryUrl, imageName, ''); - await callMe(`docker login -u cli --password ${token} ${registryUrl}`); - await callMe(`docker pull ${image} || echo "Docker pull failed using local image"`); - await callMe(`docker tag ${image} ${cortexImageUrl}`); - await callMe(`docker push ${cortexImageUrl}`); + // TODO support non cortex registry !! + await dockerCli().login(registryUrl, 'cli', token); + try { + await dockerCli() + .pull(image); + } catch (err) { + printWarning(`Docker pull failed using local image: ${err.message}`); + } + await dockerCli().tag(image, cortexImageUrl); + await dockerCli().push(cortexImageUrl); return cortexImageUrl; } } diff --git a/src/client/agents.js b/src/client/agents.js index 1d80505f..46e81cde 100644 --- a/src/client/agents.js +++ b/src/client/agents.js @@ -15,7 +15,7 @@ */ import debugSetup from 'debug'; import { got, defaultHeaders } from './apiutils.js'; -import { constructError, checkProject } from '../commands/utils.js'; +import { checkProject } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); export default (class Agents { @@ -62,9 +62,7 @@ export default (class Agents { opts.searchParams = { report }; } return got - .get(endpoint, opts).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + .get(endpoint, opts).json(); } cancelActivation(projectId, token, activationId, inFlight) { @@ -89,9 +87,7 @@ export default (class Agents { opts.searchParams = params; } return got - .get(endpoint, opts).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + .get(endpoint, opts).json(); } listAgentSnapshots(projectId, token, agentName, filter, limit, skip, sort) { @@ -110,9 +106,7 @@ export default (class Agents { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } describeAgentSnapshot(projectId, token, snapshotId, output) { @@ -123,8 +117,7 @@ export default (class Agents { .get(endpoint, { headers: defaultHeaders(token), searchParams: { output, deps: true }, - }).text() - .catch((err) => constructError(err)); + }).text(); } createAgentSnapshot(projectId, token, snapshot) { @@ -135,8 +128,6 @@ export default (class Agents { .post(endpoint, { headers: defaultHeaders(token), json: snapshot, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } }); diff --git a/src/client/assessments.js b/src/client/assessments.js index 01b81fde..8ad804f4 100644 --- a/src/client/assessments.js +++ b/src/client/assessments.js @@ -22,9 +22,7 @@ export default (class Assessments { } return got .post(url, body) - .json() - .then((res) => res) - .catch((err) => constructError(err)); + .json(); } queryResources(token, name, projectId, type, skip, limit, filter, sort) { @@ -40,9 +38,7 @@ export default (class Assessments { debug('queryResources => %s', url); return got .get(url, { headers: defaultHeaders(token) }) - .json() - .then((res) => res) - .catch((err) => constructError(err)); + .json(); } listResourceTypes(token) { @@ -50,9 +46,7 @@ export default (class Assessments { debug('listResourceTypes => %s', url); return got .get(url, { headers: defaultHeaders(token) }) - .json() - .then((res) => res) - .catch((err) => constructError(err)); + .json(); } createAssessment(token, name, title, description, scope, componentName, componentTypes, overwrite) { @@ -70,9 +64,7 @@ export default (class Assessments { componentTypes, overwrite, }), - }).json() - .then((res) => res) - .catch((err) => constructError(err)); + }).json(); } listAssessment(token, skip, limit, filter, sort) { @@ -81,9 +73,7 @@ export default (class Assessments { })}`; debug('listAssessment => %s', url); return got - .get(url, { headers: defaultHeaders(token) }).json() - .then((res) => res) - .catch((err) => constructError(err)); + .get(url, { headers: defaultHeaders(token) }).json(); } getAssessment(token, name) { @@ -92,9 +82,7 @@ export default (class Assessments { return got .get(url, { headers: defaultHeaders(token), - }).json() - .then((res) => res) - .catch((err) => constructError(err)); + }).json(); } deleteAssessment(token, name) { @@ -103,9 +91,7 @@ export default (class Assessments { return got .delete(url, { headers: defaultHeaders(token), - }).json() - .then((res) => res) - .catch((err) => constructError(err)); + }).json(); } runAssessment(token, name) { @@ -114,9 +100,7 @@ export default (class Assessments { return got .post(url, { headers: defaultHeaders(token), - }).json() - .then((res) => res) - .catch((err) => constructError(err)); + }).json(); } listAssessmentReports(token, name) { @@ -125,9 +109,7 @@ export default (class Assessments { return got .get(url, { headers: defaultHeaders(token), - }).json() - .then((res) => res) - .catch((err) => constructError(err)); + }).json(); } getAssessmentReport(token, name, reportId) { @@ -136,9 +118,7 @@ export default (class Assessments { return got .get(url, { headers: defaultHeaders(token), - }).json() - .then((res) => res) - .catch((err) => constructError(err)); + }).json(); } exportAssessmentReport(token, name, reportId, types) { diff --git a/src/client/catalog.js b/src/client/catalog.js index 2c820d68..3c281c45 100644 --- a/src/client/catalog.js +++ b/src/client/catalog.js @@ -49,9 +49,7 @@ export default class Catalog { .delete(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((skill) => skill) - .catch((err) => constructError(err)); + .json(); } saveSkill(projectId, token, skillObj) { @@ -61,9 +59,7 @@ export default class Catalog { .post(this.endpoints.skills(projectId), { headers: defaultHeaders(token), json: skillObj, - }).json() - .then((res) => ({ success: true, message: res })) - .catch((err) => constructError(err)); + }).json(); } listSkills(projectId, token, query, filter, limit, skip, sort) { @@ -89,16 +85,12 @@ export default class Catalog { searchParams.verbose = verbose; searchParams.status = verbose; } - try { - const res = got.get(endpoint, { - headers: defaultHeaders(token), - searchParams, - }); - if (output.toLocaleLowerCase() === 'json') return res.json(); - return res.text(); - } catch (err) { - return constructError(err); - } + const res = got.get(endpoint, { + headers: defaultHeaders(token), + searchParams, + }); + if (output.toLocaleLowerCase() === 'json') return res.json(); + return res.text(); } deploySkill(projectId, token, skillName, stereotypes, dryrun = false, verbose = false) { @@ -135,6 +127,17 @@ export default class Catalog { return raw ? got.get(endpoint, gotOptions).text() : got.get(endpoint, gotOptions).json(); } + applicationLogs(projectId, token, name, raw = false) { + checkProject(projectId); + const endpoint = `${this.endpoints.applications(projectId)}/${encodeURIComponent(name)}/logs`; + debug('applicationLogs(%s, %s) => %s', name, endpoint); + const gotOptions = { + headers: defaultHeaders(token), + searchParams: { raw }, + }; + return raw ? got.get(endpoint, gotOptions).text() : got.get(endpoint, gotOptions).json(); + } + // Agent deleteAgent(projectId, token, agentName) { checkProject(projectId); @@ -144,9 +147,7 @@ export default class Catalog { .delete(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((agent) => ({ success: true, agent })) - .catch((err) => constructError(err)); + .json(); } listAgents(projectId, token, filter, limit, skip, sort) { @@ -163,9 +164,7 @@ export default class Catalog { headers: defaultHeaders(token), searchParams: query, }) - .json() - .then((agentResp) => ({ success: true, ...agentResp })) - .catch((err) => constructError(err)); + .json(); } async listServices(projectId, token, agentName) { @@ -190,9 +189,7 @@ export default class Catalog { .post(endpoint, { headers: defaultHeaders(token), json: agentObj, - }).json() - .then((res) => ({ success: true, message: res })) - .catch((err) => constructError(err)); + }).json(); } describeAgent(projectId, token, agentName, verbose = false, output = 'json') { @@ -235,9 +232,7 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + }).json(); } unDeployAgent(projectId, token, agentName, verbose = false) { @@ -248,9 +243,7 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + }).json(); } // Type @@ -264,9 +257,7 @@ export default class Catalog { headers: defaultHeaders(token), json: types, }) - .json() - .then((message) => ({ success: true, message })) - .catch((err) => constructError(err)); + .json(); } describeType(projectId, token, typeName) { @@ -277,9 +268,7 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((type) => ({ success: true, type })) - .catch((err) => constructError(err)); + .json(); } listTypes(projectId, token, limit, skip, sort) { @@ -295,9 +284,7 @@ export default class Catalog { headers: defaultHeaders(token), searchParams: query, }) - .json() - .then((types) => ({ success: true, ...types })) - .catch((err) => constructError(err)); + .json(); } deleteType(projectId, token, typeName) { @@ -308,9 +295,7 @@ export default class Catalog { .delete(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((type) => ({ success: true, type })) - .catch((err) => constructError(err)); + .json(); } // Campaign @@ -376,9 +361,7 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((res) => ({ success: true, data: res })) - .catch((err) => constructError(err)); + .json(); } deployCampaign(projectId, token, campaign) { @@ -389,9 +372,7 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((res) => ({ success: true, data: res })) - .catch((err) => constructError(err)); + .json(); } // Mission @@ -403,9 +384,7 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((res) => ({ success: true, data: res })) - .catch((err) => constructError(err)); + .json(); } listMissions(projectId, token, campaign, filter, limit, skip, sort) { @@ -422,9 +401,7 @@ export default class Catalog { headers: defaultHeaders(token), searchParams: query, }) - .json() - .then((res) => ({ success: true, data: res })) - .catch((err) => constructError(err)); + .json(); } deployMission(projectId, token, campaign, mission) { @@ -435,9 +412,7 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((res) => ({ success: true, data: res })) - .catch((err) => constructError(err)); + .json(); } getMission(projectId, token, campaign, mission) { @@ -448,9 +423,7 @@ export default class Catalog { .get(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((res) => ({ success: true, data: res })) - .catch((err) => constructError(err)); + .json(); } // Application @@ -472,9 +445,7 @@ export default class Catalog { .post(this.endpoints.applications(projectId), { headers: defaultHeaders(token), json: appObj, - }).json() - .then((res) => ({ success: true, message: res })) - .catch((err) => constructError(err)); + }).json(); } listApplications(projectId, token, query, filter, limit, skip, sort) { @@ -500,31 +471,23 @@ export default class Catalog { searchParams.verbose = verbose; searchParams.status = verbose; } - try { - const res = got.get(endpoint, { - headers: defaultHeaders(token), - searchParams, - }); - if (['json', 'pretty'].includes(output.toLocaleLowerCase())) return res.json(); - return res.text(); - } catch (err) { - return constructError(err); - } + const res = got.get(endpoint, { + headers: defaultHeaders(token), + searchParams, + }); + if (['json', 'pretty'].includes(output.toLocaleLowerCase())) return res.json(); + return res.text(); } deployApplication(projectId, token, name) { checkProject(projectId); const endpoint = `${this.endpoints.applications(projectId)}/${encodeURIComponent(name)}/deploy`; debug('deployApplication(%s) => %s', name, endpoint); - try { - return got - .get(endpoint, { - headers: defaultHeaders(token), - }) - .json(); - } catch (err) { - return constructError(err); - } + return got + .get(endpoint, { + headers: defaultHeaders(token), + }) + .json(); } unDeployApplication(projectId, token, name) { diff --git a/src/client/connections.js b/src/client/connections.js index dcd86079..7c379775 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -37,25 +37,18 @@ export default (class Connections { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } - async saveConnection(projectId, token, connObj) { + saveConnection(projectId, token, connObj) { checkProject(projectId); const endpoint = `${this.endpoint(projectId)}`; debug('saveConnection(%s) => %s', connObj.name, endpoint); - try { - const message = await got - .post(endpoint, { - headers: defaultHeaders(token), - json: connObj, - }).json(); - return { success: true, message }; - } catch (err) { - return constructError(err); - } + return got + .post(endpoint, { + headers: defaultHeaders(token), + json: connObj, + }).json(); } describeConnection(projectId, token, connectionName) { @@ -65,9 +58,7 @@ export default (class Connections { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } deleteConnection(projectId, token, connectionName) { @@ -77,9 +68,7 @@ export default (class Connections { return got .delete(endpoint, { headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } listConnectionsTypes(token, limit, skip, sort) { diff --git a/src/client/content.js b/src/client/content.js index 5fb5304f..23ad28c4 100644 --- a/src/client/content.js +++ b/src/client/content.js @@ -28,9 +28,7 @@ export default (class Content { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }).json() - .then((message) => ({ success: true, message })) - .catch((err) => constructError(err)); + }).json(); } // eslint-disable-next-line no-unused-vars @@ -62,9 +60,7 @@ export default (class Content { return got .delete(endpoint, { headers: defaultHeaders(token), - }).json() - .then((message) => ({ success: true, message })) - .catch((err) => constructError(err)); + }).json(); } // TODO progress diff --git a/src/client/dockerClient.js b/src/client/dockerClient.js new file mode 100644 index 00000000..454c28f7 --- /dev/null +++ b/src/client/dockerClient.js @@ -0,0 +1,208 @@ +import debugSetup from 'debug'; +import which from 'which'; +import { callMe, printError } from '../commands/utils.js'; +import { generateJwt, loadProfile } from '../config.js'; +import { getCurrentRegistry } from '../commands/workspaces/workspace-utils.js'; + +const debug = debugSetup('cortex:cli'); + +/** + * Interface for docker clients + */ +let currentClient; +/* + Will likely remove this in favor of third party clients as this is missing many features + */ + +class DockerCli { + async login(registryUrl, user, password) { + const command = `docker login -u ${user} --password ${password} ${registryUrl}`; + debug('%s', command); + await callMe(command, () => {}); // suppress warnings + return 'Login Succeeded'; + } + + build(opts) { + const { + imageTag, dockerFile, contextPath, stdoutHandler, + } = opts; + // TODO --platform=amd64,arm64,darwin/arm64 + const command = `docker build --progress plain --tag ${imageTag} -f ${dockerFile} ${contextPath}`; + debug('%s', command); + return callMe(command, stdoutHandler); + } + + pull(image) { + const command = `docker pull ${image}`; + debug('%s', command); + return callMe(command); + } + + tag(source, target) { + const command = `docker tag ${source} ${target}`; + debug('%s', command); + return callMe(command); + } + + push(image, stdOutHandler = () => {}) { + const command = `docker push ${image}`; + debug('%s', command); + return callMe(command, stdOutHandler); + } + + async listImages(image = undefined) { + const command = `docker images ${image ?? ''} --format "{{json .}}"`; + const lines = []; + await callMe(command, (s) => { + if (s.startsWith('{')) lines.push(s); + }); + const str = lines.join(); + const images = []; + str.split('\n').forEach((l) => { if (l.startsWith('{')) images.push(JSON.parse(l)); }); + return images; + } +} + +class NerdCtl { + async login(registryUrl, user, password) { + const command = `nerdctl login -u ${user} --password ${password} ${registryUrl}`; + debug('%s', command); + await callMe(command, () => {}); // suppress warnings + return 'Login Succeeded'; + } + + build(opts) { + const { imageTag, dockerFile, contextPath } = opts; + // TODO namespace + // TODO --platform=amd64,arm64,darwin/arm64 + const command = `nerdctl build --output type=image,name=${imageTag} -f ${dockerFile} ${contextPath}`; + debug('%s', command); + return callMe(command); + } + + tag(source, target) { + const command = `nerdctl tag ${source} ${target}`; + debug('%s', command); + return callMe(command); + } + + pull(image) { + const command = `nerdctl pull ${image}`; + debug('%s', command); + return callMe(command); + } + + push(image, stdOutHandler = () => {}) { + const command = `nerdctl push ${image}`; + debug('%s', command); + return callMe(command, stdOutHandler); + } + + async listImages(image = undefined) { + const command = `nerdctl images ${image ?? ''} --format "{{json .}}"`; + const lines = []; + await callMe(command, (s) => { + if (s.startsWith('{')) lines.push(s); + }); + const str = lines.join(); + const images = []; + str.split('\n').forEach((l) => { if (l.startsWith('{')) images.push(JSON.parse(l)); }); + return images; + } +} + +class PodMan { + async login(registryUrl, user, password) { + // TODO validate this + const command = `podman login -u ${user} --password ${password} ${registryUrl}`; + debug('%s', command); + await callMe(command, () => {}); // suppress warnings + return 'Login Succeeded'; + } + + build() {} + + tag(source, target) { + const command = `podman tag ${source} ${target}`; + debug('%s', command); + return callMe(command); + } + + pull(image) { + const command = `podman pull ${image}`; + debug('%s', command); + return callMe(command); + } + + push(image, stdOutHandler = () => {}) { + const command = `podman push ${image}`; + debug('%s', command); + return callMe(command, stdOutHandler); + } + + async listImages(image = undefined) { + const command = `podman images ${image ?? ''} --format "{{json .}}"`; + const lines = []; + await callMe(command, (s) => { + if (s.startsWith('{')) lines.push(s); + }); + const str = lines.join(); + const images = []; + str.split('\n').forEach((l) => { if (l.startsWith('{')) images.push(JSON.parse(l)); }); + return images; + } +} + +const SUPPORTED_CLIS = { docker: DockerCli, nerdctl: NerdCtl, podman: PodMan }; +export default function getClient(opts = {}) { + const { dockerCli } = opts; + if (currentClient) return currentClient; + // TODO add client to profile || support environment variable + // TODO add namespace support ( podman & nerdctl ) + if (dockerCli) { + debug(`User specified docker client ${dockerCli}`); + const found = Object.keys(SUPPORTED_CLIS).find((e) => e === dockerCli?.toLowerCase()); + if (!found) { + printError(`Unsupported docker client "${dockerCli}" use: ${Object.keys(SUPPORTED_CLIS).join(', ')}`); + } + const resolved = which.sync(found, { nothrow: true }); + if (!resolved) { + printError(`Docker client executable "${dockerCli}" not found in PATH`); + } + currentClient = new SUPPORTED_CLIS[found](opts); + return currentClient; + } + debug('No docker client specified, checking available ones'); + // If not specified check for supported OCI clients + Object.entries(SUPPORTED_CLIS).every(([exe, ClientClass]) => { + const resolved = which.sync(exe, { nothrow: true }); + if (resolved) { + debug(`Found ${exe} in PATH ${resolved} using ${ClientClass.name} client`); + currentClient = new ClientClass(opts); + return false; // break + } + return true; + }); + if (currentClient === undefined) { + return printError(`No docker client found in PATH, checked ${Object.keys(SUPPORTED_CLIS).join(',')}`); + } + return currentClient; +} + +export async function privateRegLogin(options) { + const profile = await loadProfile(options.profile); + const ttl = options?.ttl ?? '14d'; + // First try to see if we have of registries in out profile + const registry = await getCurrentRegistry(profile); + const registryUrl = registry?.url; + if (registryUrl === undefined) { + throw Error(`No docker registry configured in current profile ${profile.name}`); + } + if (!registry.isCortex) { + return getClient(options).login(registryUrl); // Login with registry URI and use existing credentials.. + } + // Sensa private registries are configured with JWT authentication ... + const jwt = await generateJwt(profile, ttl); + return getClient(options) + .login(registryUrl, 'cli', jwt); +} diff --git a/src/client/experiments.js b/src/client/experiments.js index 8e00a2aa..4c976848 100644 --- a/src/client/experiments.js +++ b/src/client/experiments.js @@ -2,7 +2,7 @@ import fs from 'node:fs'; import { pipeline } from 'node:stream/promises'; import debugSetup from 'debug'; import { got, defaultHeaders } from './apiutils.js'; -import { constructError, checkProject } from '../commands/utils.js'; +import { checkProject } from '../commands/utils.js'; import Content from './content.js'; const debug = debugSetup('cortex:cli'); @@ -25,9 +25,7 @@ export default (class Experiments { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } describeExperiment(projectId, token, name) { @@ -37,9 +35,7 @@ export default (class Experiments { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } deleteExperiment(projectId, token, name) { @@ -49,9 +45,7 @@ export default (class Experiments { return got .delete(endpoint, { headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } listRuns(projectId, token, experimentName, filter, limit, sort, skip) { @@ -67,9 +61,7 @@ export default (class Experiments { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } describeRun(projectId, token, experimentName, runId) { @@ -79,9 +71,7 @@ export default (class Experiments { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } deleteRun(projectId, token, experimentName, runId) { @@ -91,9 +81,7 @@ export default (class Experiments { return got .delete(endpoint, { headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } _artifactKey(experimentName, runId, artifact) { @@ -103,16 +91,12 @@ export default (class Experiments { // eslint-disable-next-line no-unused-vars async downloadArtifact(projectId, token, experimentName, runId, artifactName, showProgress = false) { checkProject(projectId); - try { // Check if run exists.. - await this.describeRun(projectId, token, experimentName, runId); - // just generate the key and avoid hop to managed content.. - const key = this._artifactKey(experimentName, runId, artifactName); - const cont = new Content(this.cortexUrl); - return cont.downloadContent(projectId, token, key, showProgress); - } catch (err) { - return constructError(err); - } + await this.describeRun(projectId, token, experimentName, runId); + // just generate the key and avoid hop to managed content.. + const key = this._artifactKey(experimentName, runId, artifactName); + const cont = new Content(this.cortexUrl); + return cont.downloadContent(projectId, token, key, showProgress); } saveExperiment(projectId, token, experimentObj) { @@ -123,9 +107,7 @@ export default (class Experiments { .post(endpoint, { headers: defaultHeaders(token), json: experimentObj, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } createRun(projectId, token, runObj) { @@ -136,9 +118,7 @@ export default (class Experiments { .post(endpoint, { headers: defaultHeaders(token), json: runObj, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } updateRun(projectId, token, runObj) { @@ -149,22 +129,15 @@ export default (class Experiments { .post(endpoint, { headers: defaultHeaders(token), json: runObj, - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } - async uploadArtifact(projectId, token, experimentName, runId, content, artifact, contentType = 'application/octet-stream') { + uploadArtifact(projectId, token, experimentName, runId, content, artifact, contentType = 'application/octet-stream') { checkProject(projectId); const endpoint = `${this.endpoint(projectId)}/${encodeURIComponent(experimentName)}/runs/${encodeURIComponent(runId)}/artifacts/${artifact}`; debug('uploadArtifact(%s, %s) => %s', artifact, content, endpoint); - try { - const message = await pipeline(fs.createReadStream(content), got.stream.put(endpoint, { + return pipeline(fs.createReadStream(content), got.stream.put(endpoint, { headers: defaultHeaders(token, { 'Content-Type': contentType }), })); - return { success: true, message }; - } catch (err) { - return constructError(err); - } } }); diff --git a/src/client/models.js b/src/client/models.js index 5268a9fc..ea50aaf3 100644 --- a/src/client/models.js +++ b/src/client/models.js @@ -15,7 +15,7 @@ */ import debugSetup from 'debug'; import { got, defaultHeaders } from './apiutils.js'; -import { constructError, checkProject } from '../commands/utils.js'; +import { checkProject } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); export default (class Models { @@ -32,9 +32,7 @@ export default (class Models { .post(endpoint, { headers: defaultHeaders(token), json: modelObj, - }).json() - .then((res) => ({ success: true, message: res })) - .catch((err) => constructError(err)); + }).json(); } updateModelStatus(projectId, token, modelName, status) { @@ -45,9 +43,7 @@ export default (class Models { .post(endpoint, { headers: defaultHeaders(token), json: {}, - }).json() - .then((res) => ({ success: true, message: res })) - .catch((err) => constructError(err)); + }).json(); } deleteModel(projectId, token, modelName) { @@ -57,10 +53,7 @@ export default (class Models { return got .delete(endpoint, { headers: defaultHeaders(token), - }) - .json() - .then((model) => ({ success: true, model })) - .catch((err) => constructError(err)); + }).json(); } describeModel(projectId, token, modelName, verbose) { @@ -71,9 +64,7 @@ export default (class Models { .get(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, - }).json() - .then((model) => ({ success: true, model })) - .catch((err) => constructError(err)); + }).json(); } listModels(projectId, skip, limit, filter, sort, tags, token) { @@ -90,10 +81,7 @@ export default (class Models { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }) - .json() - .then((modelsResp) => ({ success: true, ...modelsResp })) - .catch((err) => constructError(err)); + }).json(); } listModelRuns(projectId, modelName, token, filter, limit, skip, sort) { @@ -109,9 +97,6 @@ export default (class Models { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }) - .json() - .then((modelsResp) => ({ success: true, ...modelsResp })) - .catch((err) => constructError(err)); + }).json(); } }); diff --git a/src/client/pipelines.js b/src/client/pipelines.js index 118f4cd2..deabed15 100644 --- a/src/client/pipelines.js +++ b/src/client/pipelines.js @@ -1,5 +1,5 @@ import debugSetup from 'debug'; -import { constructError, checkProject } from '../commands/utils.js'; +import { checkProject } from '../commands/utils.js'; import { got, defaultHeaders } from './apiutils.js'; import PipelineRepos from './pipelineRepositories.js'; @@ -12,7 +12,7 @@ export default class Pipelines { this.endpointV4 = (projectId) => `${cortexUrl}/fabric/v4/projects/${projectId}/${PIPELINE_API}`; } - async listPipelines(projectId, token, filter, limit, skip, sort) { + listPipelines(projectId, token, filter, limit, skip, sort) { checkProject(projectId); const endpoint = this.endpointV4(projectId); debug('listPipelines() => %s', endpoint); @@ -21,17 +21,13 @@ export default class Pipelines { if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - try { - return await got.get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json(); - } catch (err) { - return constructError(err); - } + return got.get(endpoint, { + headers: defaultHeaders(token), + searchParams: query, + }).json(); } - async describePipeline(projectId, token, name, gitRepoName, sha) { + describePipeline(projectId, token, name, gitRepoName, sha) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}`; debug('describePipeline(%s, %s) => %s', name, gitRepoName, endpoint); @@ -39,17 +35,13 @@ export default class Pipelines { if (sha) { searchParams.sha = sha; } - try { - return await got.get(endpoint, { + return got.get(endpoint, { headers: defaultHeaders(token), searchParams: { ...searchParams }, }).json(); - } catch (err) { - return constructError(err); - } } - async runPipeline(projectId, token, name, gitRepoName, params, options) { + runPipeline(projectId, token, name, gitRepoName, params, options) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}/run`; debug('runPipeline(%s, %s) => %s', name, gitRepoName, endpoint); @@ -69,31 +61,23 @@ export default class Pipelines { if (block) { body.block = block; } - try { - return await got.post(endpoint, { + return got.post(endpoint, { headers: defaultHeaders(token), json: body, searchParams: query, }).json(); - } catch (err) { - return constructError(err); - } } - async describePipelineRun(projectId, token, runId) { + describePipelineRun(projectId, token, runId) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/run/${runId}`; debug('describePipeline(%s) => %s', runId, endpoint); - try { - return await got.get(endpoint, { + return got.get(endpoint, { headers: defaultHeaders(token), }).json(); - } catch (err) { - return constructError(err); - } } - async listPipelineRuns(projectId, token, name, gitRepoName, limit, skip, sort, filter) { + listPipelineRuns(projectId, token, name, gitRepoName, limit, skip, sort, filter) { checkProject(projectId); const endpoint = `${this.endpointV4(projectId)}/${encodeURIComponent(name)}/run`; debug('listPipelineRuns(%s, %s) => %s', name, gitRepoName, endpoint); @@ -102,14 +86,10 @@ export default class Pipelines { if (limit) query.limit = limit; if (sort) query.sort = sort; if (skip) query.skip = skip; - try { - return await got.get(endpoint, { - headers: defaultHeaders(token), - searchParams: query, - }).json(); - } catch (err) { - return constructError(err); - } + return got.get(endpoint, { + headers: defaultHeaders(token), + searchParams: query, + }).json(); } repos() { diff --git a/src/client/roles.js b/src/client/roles.js index 066d39ec..2a077ea2 100644 --- a/src/client/roles.js +++ b/src/client/roles.js @@ -15,7 +15,6 @@ */ import debugSetup from 'debug'; import { got, defaultHeaders } from './apiutils.js'; -import { constructError } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); export default class Roles { @@ -50,9 +49,7 @@ export default class Roles { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } deleteRole(token) { @@ -61,9 +58,7 @@ export default class Roles { return got .delete(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } createRole(token, body) { @@ -73,9 +68,7 @@ export default class Roles { .post(endpoint, { headers: defaultHeaders(token), json: body, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } addUsersToRole(token, users) { @@ -85,9 +78,7 @@ export default class Roles { .post(endpoint, { headers: defaultHeaders(token), json: { users }, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } removeUsersFromRole(token, users) { @@ -97,9 +88,7 @@ export default class Roles { .delete(endpoint, { headers: defaultHeaders(token), json: { users }, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } createGrantForRole(token, body) { @@ -109,9 +98,7 @@ export default class Roles { .post(endpoint, { headers: defaultHeaders(token), json: body, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } removeGrantFromRole(token, body) { @@ -121,9 +108,7 @@ export default class Roles { .delete(endpoint, { headers: defaultHeaders(token), json: body, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } listRoles(token, project) { @@ -135,9 +120,7 @@ export default class Roles { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } addRolesToProject(token, project, roles) { @@ -147,9 +130,7 @@ export default class Roles { .post(endpoint, { headers: defaultHeaders(token), json: { project, roles }, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } removeRolesFromProject(token, project, roles) { @@ -159,9 +140,7 @@ export default class Roles { .delete(endpoint, { headers: defaultHeaders(token), json: { project, roles }, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } listExternalGroups(token) { @@ -170,9 +149,7 @@ export default class Roles { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } describeExternalGroup(token, externalGroup) { @@ -181,9 +158,7 @@ export default class Roles { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } deleteExternalGroup(token, externalGroup) { @@ -192,9 +167,7 @@ export default class Roles { return got .delete(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } addExternalGroupToRole(token, externalGroup) { @@ -204,9 +177,7 @@ export default class Roles { .post(endpoint, { headers: defaultHeaders(token), json: { externalGroup }, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } removeExternalGroupFromRole(token, externalGroup) { @@ -215,8 +186,6 @@ export default class Roles { return got .delete(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } } diff --git a/src/client/secrets.js b/src/client/secrets.js index 7ca6689d..6be6627a 100644 --- a/src/client/secrets.js +++ b/src/client/secrets.js @@ -16,7 +16,7 @@ import debugSetup from 'debug'; import urljoin from 'url-join'; import { got, defaultHeaders } from './apiutils.js'; -import { constructError, checkProject } from '../commands/utils.js'; +import { checkProject } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); export default (class Secrets { @@ -32,9 +32,7 @@ export default (class Secrets { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } readSecret(projectId, token, keyName) { @@ -44,9 +42,7 @@ export default (class Secrets { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((result) => ({ success: true, result })) - .catch((err) => constructError(err)); + }).json(); } deleteSecret(projectId, token, keyName) { @@ -68,8 +64,6 @@ export default (class Secrets { .post(endpoint, { headers: defaultHeaders(token), json: body, - }).json() - .then((result) => ({ ...result })) - .catch((err) => constructError(err)); + }).json(); } }); diff --git a/src/client/sessions.js b/src/client/sessions.js index c472978b..98980b01 100644 --- a/src/client/sessions.js +++ b/src/client/sessions.js @@ -15,7 +15,7 @@ */ import debugSetup from 'debug'; import { got, defaultHeaders } from './apiutils.js'; -import { constructError, checkProject } from '../commands/utils.js'; +import { checkProject } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); export default (class Sessions { @@ -32,9 +32,7 @@ export default (class Sessions { .post(endpoint, { headers: defaultHeaders(token), json: sessionObj, - }).json() - .then((res) => ({ success: true, message: res })) - .catch((err) => constructError(err)); + }).json(); } deleteSession(projectId, token, sessionName) { @@ -45,9 +43,7 @@ export default (class Sessions { .delete(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((session) => ({ success: true, session })) - .catch((err) => constructError(err)); + .json(); } describeSession(projectId, token, sessionName, verbose) { @@ -58,9 +54,7 @@ export default (class Sessions { .get(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, - }).json() - .then((session) => ({ success: true, session })) - .catch((err) => constructError(err)); + }).json(); } listSessions(projectId, token, limit) { @@ -71,8 +65,6 @@ export default (class Sessions { .get(endpoint, { headers: defaultHeaders(token), }) - .json() - .then((sessionsResp) => ({ success: true, ...sessionsResp })) - .catch((err) => constructError(err)); + .json(); } }); diff --git a/src/client/tasks.js b/src/client/tasks.js index 249a82f4..38ccb410 100644 --- a/src/client/tasks.js +++ b/src/client/tasks.js @@ -49,9 +49,8 @@ export default (class Tasks { if (params) { opts.searchParams = params; } - return gotAPIUtils - .get(endpoint, opts).json() - .catch((err) => constructError(err)); + return got + .get(endpoint, opts).json(); } taskLogs(projectId, token, taskName, follow = false, verbose = false) { @@ -83,9 +82,7 @@ export default (class Tasks { .delete(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + }).json(); } pauseTask(projectId, token, taskName, verbose = false) { @@ -96,9 +93,7 @@ export default (class Tasks { .post(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + }).json(); } resumeTask(projectId, token, taskName, verbose = false) { @@ -109,8 +104,6 @@ export default (class Tasks { .post(endpoint, { headers: defaultHeaders(token), searchParams: { verbose }, - }).json() - .then((res) => ({ ...res })) - .catch((err) => constructError(err)); + }).json(); } }); diff --git a/src/client/users.js b/src/client/users.js index b415f9be..da5422fb 100644 --- a/src/client/users.js +++ b/src/client/users.js @@ -16,7 +16,6 @@ import debugSetup from 'debug'; import _ from 'lodash'; import { got, defaultHeaders } from './apiutils.js'; -import { constructError } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); export default class Users { @@ -48,9 +47,7 @@ export default class Users { return got .post(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } deleteServiceUser(token, user) { @@ -59,9 +56,7 @@ export default class Users { return got .delete(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } listServiceUsers(token) { @@ -70,9 +65,7 @@ export default class Users { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } describeUser(token) { @@ -81,9 +74,7 @@ export default class Users { return got .get(endpoint, { headers: defaultHeaders(token), - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } createGrantForUser(token, body) { @@ -93,9 +84,7 @@ export default class Users { .post(endpoint, { headers: defaultHeaders(token), json: body, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } removeGrantFromUser(token, body) { @@ -105,9 +94,7 @@ export default class Users { .delete(endpoint, { headers: defaultHeaders(token), json: body, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } addUsersToProject(token, project, users) { @@ -117,9 +104,7 @@ export default class Users { .post(endpoint, { headers: defaultHeaders(token), json: { project, users }, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } removeUsersFromProject(token, project, users) { @@ -129,9 +114,7 @@ export default class Users { .delete(endpoint, { headers: defaultHeaders(token), json: { project, users }, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } resetUserPAT(token, user) { @@ -141,9 +124,7 @@ export default class Users { .post(endpoint, { headers: defaultHeaders(token), json: { user }, - }).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + }).json(); } getUserPAT(token, user) { @@ -156,8 +137,6 @@ export default class Users { requestOptions.searchParams = { user }; } return got - .get(endpoint, requestOptions).json() - .then((res) => ({ success: true, result: res })) - .catch((err) => constructError(err)); + .get(endpoint, requestOptions).json(); } } diff --git a/src/commands/actions.js b/src/commands/actions.js index d19b23e9..a1e167ef 100644 --- a/src/commands/actions.js +++ b/src/commands/actions.js @@ -6,7 +6,7 @@ import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Actions from '../client/actions.js'; import { - printSuccess, printError, filterObject, parseObject, isNumeric, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, + printSuccess, printError, filterObject, parseObject, isNumeric, handleTable, printExtendedLogs, getFilteredOutput, handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -21,32 +21,51 @@ export const ListActionsCommand = class { const profile = await loadProfile(options.profile); debug('%s.executeListActions()', profile.name); const actions = new Actions(profile.url); - actions.listActions(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort) + try { + const response = await actions.listActions(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort); // eslint-disable-next-line consistent-return - .then((response) => { - if (response.success) { - const result = response.actions; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Type', field: 'type', width: 8 }, - { column: 'Image', field: 'image', width: 50 }, - { column: 'Modified', field: 'updatedAt', width: 26 }, - { column: 'Author', field: 'createdBy', width: 26 }, - ]; - handleTable(tableSpec, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No actions found'); - } + const result = response.actions; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - return handleListFailure(response, options, 'Actions'); + printExtendedLogs(result, options); + const tableSpec = [ + { + column: 'Name', + field: 'name', + width: 30, + }, + { + column: 'Type', + field: 'type', + width: 8, + }, + { + column: 'Image', + field: 'image', + width: 50, + }, + { + column: 'Modified', + field: 'updatedAt', + width: 26, + }, + { + column: 'Author', + field: 'createdBy', + width: 26, + }, + ]; + handleTable(tableSpec, result, (o) => ({ + ...o, + updatedAt: o.updatedAt ? dayjs(o.updatedAt) + .fromNow() : '-', + }), 'No actions found'); } - }) - .catch((err) => { - printError(`Failed to list actions: ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list actions'); + } } }; export const DescribeActionCommand = class { @@ -58,17 +77,12 @@ export const DescribeActionCommand = class { const profile = await loadProfile(options.profile); debug('%s.executeDescribeAction(%s)', profile.name, actionName); const actions = new Actions(profile.url); - actions.describeAction(options.project || profile.project, profile.token, actionName) - .then((response) => { - if (response.success) { - getFilteredOutput(response.action, options); - } else { - printError(`Failed to describe action: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe action: ${err.status} ${err.message}`, options); - }); + try { + const response = await actions.describeAction(options.project || profile.project, profile.token, actionName); + getFilteredOutput(response.action, options); + } catch (err) { + handleError(err, options, `Failed to describe action "${actionName}"`); + } } }; export const DeployActionCommand = class { @@ -155,13 +169,9 @@ export const DeployActionCommand = class { } const actions = new Actions(profile.url); const response = await actions.deployAction(options.project || profile.project, profile.token, actionInst); - if (response.success) { - printSuccess(JSON.stringify(response.message, null, 2), options); - } else { - printError(`Action deployment failed: ${response.status} ${response.message}`, options); - } + printSuccess(JSON.stringify(response.message, null, 2), options); } catch (err) { - printError(`Failed to deploy action: ${err.status} ${err.message}`, options); + printError(err, options, 'Failed to deploy action'); } } }; @@ -174,16 +184,12 @@ export const DeleteActionCommand = class { const profile = await loadProfile(options.profile); debug('%s.executeDeleteAction(%s)', profile.name, actionName); const actions = new Actions(profile.url); - actions.deleteAction(options.project || profile.project, profile.token, actionName) - .then((response) => { - if (response.success) { - const result = filterObject(response, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Action'); - }) - .catch((err) => { - printError(`Failed to delete action: ${err.status} ${err.message}`, options); - }); + try { + const response = await actions.deleteAction(options.project || profile.project, profile.token, actionName); + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + return handleError(err, { ...options, tableformat: 'DEPENDENCYTABLEFORMAT' }, `Failed to delete action "${actionName}"`, options); + } } }; diff --git a/src/commands/agents.js b/src/commands/agents.js index a75955cf..6a0cb331 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -13,13 +13,16 @@ import { getFilteredOutput, getQueryOptions, handleDeleteFailure, - handleListFailure, handleTable, parseObject, printError, printExtendedLogs, printSuccess, - printTable, writeOutput, printErrorDetails, constructError, + printTable, + writeOutput, + printErrorDetails, + constructError, + handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -35,24 +38,17 @@ export class ListAgentsCommand { debug('%s.executeListAgents()', profile.name); const catalog = new Catalog(profile.url); // eslint-disable-next-line consistent-return - catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { - if (response.success) { - const result = response.agents; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No agents found'); - } + try { + const { agents } = await catalog.listAgents(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort); + if (options.json || options.query) { + getFilteredOutput(agents, options); } else { - return handleListFailure(response, options, 'Agents'); + printExtendedLogs(agents, options); + handleTable(LISTTABLEFORMAT, agents, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No agents found'); } - }) - .catch((err) => { - debug(err); - printError(`Failed to list agents: ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list agents'); + } } } export class DescribeAgentCommand { @@ -70,12 +66,9 @@ export class DescribeAgentCommand { try { debug('%s.executeDescribeAgentVersions(%s)', profile.name, agentName); const response = await catalog.describeAgentVersions(options.project || profile.project, profile.token, agentName); - if (response.success) { return writeOutput(getFilteredOutput(response.agent, options), options); - } - return printError(`Failed to describe agent versions ${agentName}: ${response.message}`, options); } catch (err) { - return printError(`Failed to describe agent versions ${agentName}: ${err.status} ${err.message}`, options); + return handleError(err, options, `Failed to describe agent versions ${agentName}`); } } else { debug('%s.executeDescribeAgent(%s)', profile.name, agentName); @@ -84,7 +77,7 @@ export class DescribeAgentCommand { if ((output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); return writeOutput(response, options); } catch (err) { - return printError(`Failed to describe agent ${agentName}: ${err.status} ${err.message}`, options); + return handleError(err, options, `Failed to describe agent ${agentName}`); } } } @@ -135,34 +128,55 @@ export class GetActivationCommand { async execute(activationId, options) { const profile = await loadProfile(options.profile); debug('%s.getActivation(%s, %s)', profile.name, activationId, JSON.stringify(options)); - const { report, verbose, project } = options; + const { + report, + verbose, + project, + } = options; const agents = new Agents(profile.url); - agents.getActivation(project || profile.project, profile.token, activationId, verbose, report).then((response) => { - if (response.success) { - if (options.report && !options.json) { - const result = filterObject(response.result, getQueryOptions(options)); - const tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Title', field: 'title', width: 40 }, - { column: 'Type', field: 'type', width: 20 }, - { column: 'Status', field: 'status', width: 20 }, - { column: 'Elapsed (ms)', field: 'elapsed', width: 30 }, - ]; - printSuccess(`Status: ${_.get(result, 'status')}`); - printSuccess(`Elapsed Time (ms): ${_.get(result, 'elapsed')}`); - printTable(tableSpec, _.sortBy(_.get(result, 'transits'), ['start', 'end'])); - } else { - getFilteredOutput(response.result, options); - } + try { + const activation = await agents.getActivation(project || profile.project, profile.token, activationId, verbose, report); + if (options.report && !options.json) { + const result = filterObject(activation, getQueryOptions(options)); + const tableSpec = [ + { + column: 'Name', + field: 'name', + width: 40, + }, + { + column: 'Title', + field: 'title', + width: 40, + }, + { + column: 'Type', + field: 'type', + width: 20, + }, + { + column: 'Status', + field: 'status', + width: 20, + }, + { + column: 'Elapsed (ms)', + field: 'elapsed', + width: 30, + }, + ]; + printSuccess(`Status: ${_.get(result, 'status')}`); + printSuccess(`Elapsed Time (ms): ${_.get(result, 'elapsed')}`); + printTable(tableSpec, _.sortBy(_.get(result, 'transits'), ['start', 'end'])); } else { - printError(`Failed to get activation ${activationId}: ${response.message}`, options); + getFilteredOutput(activation, options); } - }) - .catch((err) => { - printError(`Failed to get activation ${activationId}: ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, `Failed to get activation ${activationId}`); + } } } + export class CancelActivationCommand { constructor(program) { this.program = program; @@ -212,43 +226,56 @@ export class ListActivationsCommand { if (options.skip) queryParams.skip = options.skip; if (options.sort) queryParams.sort = _.toLower(options.sort); if (options.filter) queryParams.filter = options.filter; + try { // eslint-disable-next-line consistent-return - agents.listActivations(options.project || profile.project, profile.token, queryParams).then((response) => { - if (response.success) { - const result = response.result.activations; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - const tableSpec = [ - { column: 'Name', field: 'name', width: 30 }, - { column: 'Activation Id', field: 'activationId', width: 40 }, - { column: 'Status', field: 'status', width: 20 }, - { column: 'Started', field: 'start', width: 65 }, - ]; - const genName = (o) => { - if (o.agentName) { - return `${o.agentName} (Agent)`; - } - if (o.skillName) { - return `${o.skillName} (Skill)`; - } - return '-'; - }; - handleTable(tableSpec, _.map(result, (o) => ({ - ...o, - name: genName(o), - start: o.start ? dayjs(o.start).fromNow() : '-', - })), null, 'No activations found'); + const response = await agents.listActivations(options.project || profile.project, profile.token, queryParams); + const result = response.activations; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); + } else { + printExtendedLogs(result, options); + const tableSpec = [ + { + column: 'Name', + field: 'name', + width: 30, + }, + { + column: 'Activation Id', + field: 'activationId', + width: 40, + }, + { + column: 'Status', + field: 'status', + width: 20, + }, + { + column: 'Started', + field: 'start', + width: 65, + }, + ]; + const genName = (o) => { + if (o.agentName) { + return `${o.agentName} (Agent)`; } - } else { - return handleListFailure(response, options, 'Activations'); - } - }) - .catch((err) => { - printError(`Failed to list activations: ${err.status} ${err.message}`, options); - }); + if (o.skillName) { + return `${o.skillName} (Skill)`; + } + return '-'; + }; + handleTable(tableSpec, _.map(result, (o) => ({ + ...o, + name: genName(o), + start: o.start ? dayjs(o.start) + .fromNow() : '-', + })), null, 'No activations found'); + } + } catch (err) { + handleError(err, options, 'Failed to list activations'); + } } } export class ListServicesCommand { @@ -288,33 +315,48 @@ export class ListAgentSnapshotsCommand { const profile = await loadProfile(options.profile); debug('%s.listAgentSnapshots(%s)', profile.name, agentName); const agents = new Agents(profile.url); - agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, options.filter, options.limit, options.skip, options.sort) + try { + const response = await agents.listAgentSnapshots(options.project || profile.project, profile.token, agentName, options.filter, options.limit, options.skip, options.sort); // eslint-disable-next-line consistent-return - .then((response) => { - if (response.success) { - const result = response.result.snapshots; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - const tableSpec = [ - { column: 'Snapshot ID', field: 'snapshotId', width: 40 }, - { column: 'Title', field: 'title', width: 40 }, - // Removed as this is confusing for end users, agent version may not change - // { column: 'Agent Version', field: 'agentVersion', width: 15 }, - { column: 'Created', field: 'createdAt', width: 26 }, - { column: 'Author', field: 'createdBy', width: 26 }, - ]; - handleTable(tableSpec, result, (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), 'No snapshots found'); - } - } else { - return handleListFailure(response, options, 'Agent-snapshots'); - } - }) - .catch((err) => { - printError(`Failed to list agent snapshots ${agentName}: ${err.status} ${err.message}`, options); - }); + const result = response.result.snapshots; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); + } else { + printExtendedLogs(result, options); + const tableSpec = [ + { + column: 'Snapshot ID', + field: 'snapshotId', + width: 40, + }, + { + column: 'Title', + field: 'title', + width: 40, + }, + // Removed as this is confusing for end users, agent version may not change + // { column: 'Agent Version', field: 'agentVersion', width: 15 }, + { + column: 'Created', + field: 'createdAt', + width: 26, + }, + { + column: 'Author', + field: 'createdBy', + width: 26, + }, + ]; + handleTable(tableSpec, result, (o) => ({ + ...o, + createdAt: o.createdAt ? dayjs(o.createdAt) + .fromNow() : '-', + }), 'No snapshots found'); + } + } catch (err) { + handleError(err, options, `Failed to list agent snapshots ${agentName}`); + } } } export class DescribeAgentSnapshotCommand { @@ -329,9 +371,6 @@ export class DescribeAgentSnapshotCommand { const output = options?.output?.toLowerCase() ?? 'json'; try { const response = await agents.describeAgentSnapshot(options.project || profile.project, profile.token, snapshotId, output); - if (response.success === false) { - return printError(`Failed to describe agent snapshot ${snapshotId}: ${response.message}`); - } if (output === 'json') { const result = filterObject(JSON.parse(response), options); return printSuccess(JSON.stringify(result, null, 2), options); @@ -461,17 +500,10 @@ export class SaveAgentCommand { const catalog = new Catalog(profile.url); const project = options.project || profile.project; try { - const response = await catalog.saveAgent(project, profile.token, agent); - if (response.success) { - printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); - } else if (response.details) { - console.log(`Failed to save agent: ${response.status} ${response.message}`); - printErrorDetails(response, options); - } else { - printError(JSON.stringify(response)); - } + await catalog.saveAgent(project, profile.token, agent); + printSuccess(`Agent "${agent.name}" saved in project "${project}"`, options); } catch (err) { - printError(`Failed to save agent: ${err.status} ${err.message}`, options); + handleError(err, options, 'Failed to save agent'); } })); } diff --git a/src/commands/applications.js b/src/commands/applications.js index e5ac2bb1..b3528fe7 100644 --- a/src/commands/applications.js +++ b/src/commands/applications.js @@ -64,16 +64,10 @@ export class SaveAppCommand { app.actions.map((a) => a.podSpec = podSpec); } const response = await catalog.saveApplication(options.project || profile.project, profile.token, app); - if (response.success) { - printSuccess(`Application saved: ${JSON.stringify(response.message)}`, options); - } else { - console.log(`Failed to save application: ${response.message}`); - printErrorDetails(response, options); - printError(''); // Just exit - } + printSuccess(`Application saved: ${JSON.stringify(response.message)}`, options); })); } catch (err) { - printError(`Failed to save application: ${_.get(err, 'response.body.error', err.message)}`, options); + handleError(err, options, 'Failed to save application'); } } } @@ -132,8 +126,14 @@ export class DescribeAppCommand { const { verbose, output, project, json, } = options; - - const isPretty = (options?.output ?? 'pretty').toLowerCase() === 'pretty' && json === undefined; + let computedOutput = output; + // If I specify json/verbose/output=json json ensure output is json. + if (output.toLowerCase() === 'json' || verbose || json !== undefined) { + computedOutput = 'json'; + } else { + computedOutput = output; + } + const isPretty = (options?.output ?? 'pretty').toLowerCase() === 'pretty' && computedOutput !== 'json'; debug('%s.executeDescribeApplication(%s)', profile.name, name); const catalog = new Catalog(profile.url); try { @@ -141,7 +141,8 @@ export class DescribeAppCommand { project || profile.project, profile.token, name, verbose || isPretty, - json === undefined ? output : 'json'); // if --json use output JSON + computedOutput, + ); // if --json use output JSON if (isPretty) { // Strange spacing needed for output formatting printSuccess(`Name: ${app.name} @@ -157,8 +158,11 @@ Updated At: ${app._updatedAt}`, options); rTable.push(...app?.match?.map(parseMatch) ?? []); return console.log(rTable.toString()); } - if (options?.output?.toLowerCase() === 'json' || json !== undefined) return getFilteredOutput(app, options); - return writeOutput(app, options); + if (options?.output?.toLowerCase() === 'json' || json !== undefined) { + return getFilteredOutput(app, options); + } + // format output if json + return writeOutput(computedOutput === 'json' ? JSON.stringify(app, null, 2) : app, options); } catch (err) { return printError(`Failed to describe application ${name}: ${err.status ?? ''} ${err.message}`, options); } @@ -194,7 +198,7 @@ export class AppLogsCommand { debug('%s.executeApplicationLogs(%s,%s)', profile.name, name); const catalog = new Catalog(profile.url); - const response = await catalog.skillLogs(options.project || profile.project, profile.token, name, name, options.raw); + const response = await catalog.applicationLogs(options.project || profile.project, profile.token, name, options.raw); if (options.raw) { try { diff --git a/src/commands/assessments.js b/src/commands/assessments.js index 1aa3b1ce..caa8603e 100644 --- a/src/commands/assessments.js +++ b/src/commands/assessments.js @@ -10,7 +10,7 @@ import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Assessments from '../client/assessments.js'; import { - printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, getFilteredOutput, + printSuccess, printError, parseObject, handleTable, printExtendedLogs, getFilteredOutput, handleError, } from './utils.js'; const _ = { @@ -33,10 +33,9 @@ export const ListResourcesCommand = class { const profile = await loadProfile(options.profile); debug('%s.ListResourcesCommand()', profile.name); const client = new Assessments(profile.url); - client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, options.filter, options.sort) - // eslint-disable-next-line consistent-return - .then((response) => { - if (response.success === false) return handleListFailure(response, options, 'Cortex resources'); + try { + const response = await client.queryResources(profile.token, options.name, options.scope, options.type, options.skip, options.limit, options.filter, options.sort); + // eslint-disable-next-line consistent-return // TODO remove --query on deprecation if (options.json || options.query) { getFilteredOutput(response, options); @@ -50,10 +49,9 @@ export const ListResourcesCommand = class { ]; handleTable(tableSpec, response.data, null, 'No matching resources found'); } - }) - .catch((err) => { - printError(`Failed to list Cortex resources: ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list Cortex resources'); + } } }; export const ListResourceTypesCommand = class { @@ -66,24 +64,21 @@ export const ListResourceTypesCommand = class { const profile = await loadProfile(options.profile); debug('%s.ListResourceTypesCommand()', profile.name); const client = new Assessments(profile.url); - client.listResourceTypes(profile.token) - .then((response) => { - if (response.success === false) throw response; - const data = _.compact(response.data); - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(data, options); - } else { - const types = data.map((t) => ({ type: t })); - const tableSpec = [ - { column: 'Resource Type', field: 'type' }, - ]; - handleTable(tableSpec, types, null, 'Resource Types not available'); - } - }) - .catch((err) => { - printError(`Failed to list Cortex resource types: ${err.status} ${err.message}`, options); - }); + try { + const data = await client.listResourceTypes(profile.token); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(data, options); + } else { + const types = data.map((t) => ({ type: t })); + const tableSpec = [ + { column: 'Resource Type', field: 'type' }, + ]; + handleTable(tableSpec, types, null, 'Resource Types not available'); + } + } catch (err) { + handleError(err, options, 'Failed to list Cortex resource types'); + } } }; export const DependencyTreeCommand = class { @@ -100,26 +95,26 @@ export const DependencyTreeCommand = class { if (dependencyFile) { body = JSON.parse(fs.readFileSync(dependencyFile).toString()); } - client.getDependenciesOfResource(profile.token, options.scope, options.type, options.name, body, options.missing) - .then((response) => { - if (response.success === false) throw response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(response, options); - } else { - const tableSpec = [ - { column: 'Name', field: 'name' }, - { column: 'Title', field: 'title' }, - { column: 'Resource Type', field: 'type' }, - ]; - handleTable(tableSpec, response.data, null, 'No downstream dependency found'); - } - }) - .catch((err) => { - printError(`Failed to list dependency Cortex resource: ${err.status} ${err.message}`, options); - }); + try { + const response = await client.getDependenciesOfResource(profile.token, options.scope, options.type, options.name, body, options.missing); + + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(response, options); + } else { + const tableSpec = [ + { column: 'Name', field: 'name' }, + { column: 'Title', field: 'title' }, + { column: 'Resource Type', field: 'type' }, + ]; + handleTable(tableSpec, response.data, null, 'No downstream dependency found'); + } + } catch (err) { + handleError(err, options, 'Failed to list dependency Cortex resource'); + } } }; + export const CreateAssessmentCommand = class { constructor(program) { this.program = program; @@ -139,20 +134,22 @@ export const CreateAssessmentCommand = class { printError(`Failed to read assessment definition "${assessmentDef}": ${err.message}`, options); } } - client.createAssessment(profile.token, options.name || assessment.name, options.title || assessment.title, options.description || assessment.description, options.scope || assessment.scope, options.component || assessment.component, options.type || assessment.type, options.overwrite || assessment.overwrite) - .then((response) => { - if (response.success === false) throw response; - if (response.success) { - printSuccess(`Assessment ${options.name} saved successfully`, options); - } else { - printError(`Failed to save assessment: ${JSON.stringify(response)}`); - } - }) - .catch((err) => { - printError(`Failed to save assessment: ${err.status} ${err.message}`, options); - }); + try { + await client.createAssessment(profile.token, + options.name || assessment.name, + options.title || assessment.title, + options.description || assessment.description, + options.scope || assessment.scope, + options.component || assessment.component, + options.type || assessment.type, + options.overwrite || assessment.overwrite); + printSuccess(`Assessment ${options.name} saved successfully`, options); + } catch (err) { + handleError(err, options, 'Failed to save assessment'); + } } }; + export const ListAssessmentCommand = class { constructor(program) { this.program = program; @@ -163,10 +160,8 @@ export const ListAssessmentCommand = class { const profile = await loadProfile(options.profile); debug('%s.ListAssessmentCommand()', profile.name); const client = new Assessments(profile.url); - client.listAssessment(profile.token, options.skip, options.limit, options.filter, options.sort) - // eslint-disable-next-line consistent-return - .then((response) => { - if (response.success === false) return handleListFailure(response, options, 'Assessments'); + try { + const response = await client.listAssessment(profile.token, options.skip, options.limit, options.filter, options.sort); const result = response.data; // TODO remove --query on deprecation if (options.json || options.query) { @@ -174,20 +169,44 @@ export const ListAssessmentCommand = class { } else { printExtendedLogs(result, options); const tableSpec = [ - { column: 'Name', field: 'name' }, - { column: 'Title', field: 'title' }, - { column: 'Description', field: 'description' }, - { column: 'Projects', field: 'scope' }, - { column: '# Reports', field: 'reportCount' }, - { column: 'Modified', field: '_updatedAt' }, - { column: 'Author', field: '_createdBy' }, + { + column: 'Name', + field: 'name', + }, + { + column: 'Title', + field: 'title', + }, + { + column: 'Description', + field: 'description', + }, + { + column: 'Projects', + field: 'scope', + }, + { + column: '# Reports', + field: 'reportCount', + }, + { + column: 'Modified', + field: '_updatedAt', + }, + { + column: 'Author', + field: '_createdBy', + }, ]; - handleTable(tableSpec, result, (o) => ({ ...o, _updatedAt: o._updatedAt ? dayjs(o._updatedAt).fromNow() : '-' }), 'No Assessments found'); + handleTable(tableSpec, result, (o) => ({ + ...o, + _updatedAt: o._updatedAt ? dayjs(o._updatedAt) + .fromNow() : '-', + }), 'No Assessments found'); } - }) - .catch((err) => { - printError(`Failed to list assessment: ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list assessment'); + } } }; export const DescribeAssessmentCommand = class { diff --git a/src/commands/campaigns.js b/src/commands/campaigns.js index f2cb3c7d..456bf4e7 100644 --- a/src/commands/campaigns.js +++ b/src/commands/campaigns.js @@ -4,7 +4,7 @@ import { loadProfile } from '../config.js'; import ApiServerClient from '../client/apiServerClient.js'; import Catalog from '../client/catalog.js'; import { - printSuccess, printError, printTable, handleTable, printExtendedLogs, handleListFailure, getFilteredOutput, + printSuccess, printError, printTable, handleTable, printExtendedLogs, handleListFailure, getFilteredOutput, handleError, } from './utils.js'; /* * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. @@ -36,8 +36,7 @@ export class ListCampaignsCommand { try { const sortParam = (options.sort || '{}').replace(/"/g, '\''); const filterParam = (options.filter || '{}').replace(/"/g, '\''); - const response = await cli.listCampaigns(options.project || profile.project, profile.token, filterParam, options.limit, options.skip, sortParam); - const result = response; + const result = await cli.listCampaigns(options.project || profile.project, profile.token, filterParam, options.limit, options.skip, sortParam); // TODO remove --query on deprecation if (options.json || options.query) { getFilteredOutput(result, options); @@ -121,23 +120,20 @@ export class DeployCampaignCommand { debug('%s.executeDeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); try { - cli.deployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { - if (response.success === false) throw response; - const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); - if (!response.data.warnings || response.data.warnings.length === 0) { - printSuccess(output, options); - } else { - printError('Campaign deployed with warnings', options, false); - printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map((w) => ({ message: w }))); - } - }).catch((e) => { - printError(`Failed to deploy campaign: ${e.status} ${e.message}`, options); - }); + const response = await cli.deployCampaign(options.project || profile.project, profile.token, campaignName); + const output = response?.message ?? JSON.stringify(response, null, 2); + if (!response.warnings || response.warnings.length === 0) { + printSuccess(output, options); + } else { + printError('Campaign deployed with warnings', options, false); + printTable([{ column: 'Warnings', field: 'message' }], response.warnings.map((w) => ({ message: w }))); + } } catch (err) { - printError(`Failed to deploy campaign: ${err.status} ${err.message}`, options); + handleError(err, options, 'Failed to deploy campaign'); } } } + export class UndeployCampaignCommand { constructor(program) { this.program = program; @@ -149,20 +145,16 @@ export class UndeployCampaignCommand { debug('%s.executeUndeployCampaignCommand(%s)', profile.name, campaignName); const cli = new Catalog(profile.url); try { - cli.undeployCampaign(options.project || profile.project, profile.token, campaignName).then((response) => { - if (response.success === false) throw response; - const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); - if (!response.data.warnings || response.data.warnings.length === 0) { - printSuccess(output, options); - } else { - printError('Campaign undeployed with warnings', options, false); - printTable([{ column: 'Warnings', field: 'message' }], response.data.warnings.map((w) => ({ message: w }))); - } - }).catch((e) => { - printError(`Failed to undeploy campaign: ${e.status} ${e.message}`, options); - }); + const response = await cli.undeployCampaign(options.project || profile.project, profile.token, campaignName); + const output = response?.message ?? JSON.stringify(response || response, null, 2); + if (!response.warnings || response.warnings.length === 0) { + printSuccess(output, options); + } else { + printError('Campaign undeployed with warnings', options, false); + printTable([{ column: 'Warnings', field: 'message' }], response.warnings.map((w) => ({ message: w }))); + } } catch (err) { - printError(`Failed to undeploy campaign: ${err.status} ${err.message}`, options); + handleError(err, options, 'Failed to undeploy campaign'); } } } @@ -177,15 +169,11 @@ export class UndeployMissionCommand { debug('%s.executeUndeployMissionCommand(%s)', profile.name, missionName); const cli = new Catalog(profile.url); try { - cli.undeployMission(options.project || profile.project, profile.token, campaignName, missionName).then((response) => { - if (response.success === false) throw response; - const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); - printSuccess(output, options); - }).catch((e) => { - printError(`Failed to undeploy mission: ${e.status} ${e.message}`, options); - }); + const response = await cli.undeployMission(options.project || profile.project, profile.token, campaignName, missionName); + const output = response?.message ?? JSON.stringify(response, null, 2); + printSuccess(output, options); } catch (err) { - printError(`Failed to undeploy mission: ${err.status} ${err.message}`, options); + handleError(err, options, 'Failed to undeploy mission'); } } } @@ -203,9 +191,8 @@ export class ListMissionsCommand { try { const sortParam = (options.sort || '{}').replace(/"/g, '\''); const filterParam = (options.filter || '{}').replace(/"/g, '\''); - cli.listMissions(options.project || profile.project, profile.token, campaign, filterParam, options.limit, options.skip, sortParam).then((response) => { - if (response.success === false) throw response; - const data = Object.values(response.data); + const response = await cli.listMissions(options.project || profile.project, profile.token, campaign, filterParam, options.limit, options.skip, sortParam); + const data = Object.values(response); // TODO remove --query on deprecation if (options.json || options.query) { getFilteredOutput(data, options); @@ -219,9 +206,6 @@ export class ListMissionsCommand { ]; handleTable(tableSpec, data, null, 'No missions found'); } - }).catch((err) => { - handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Missions'); - }); } catch (err) { handleListFailure(_.get(err, 'response.errors[0]', err), options, 'Missions'); } @@ -237,11 +221,13 @@ export class DeployMissionCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeployMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.deployMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { - if (response.success === false) throw response; - const output = _.get(response, 'data.message') || JSON.stringify(response.data || response, null, 2); + try { + const response = await cli.deployMission(options.project || profile.project, profile.token, campaign, mission); + const output = response?.message ?? JSON.stringify(response, null, 2); printSuccess(output, options); - }).catch((err) => printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); + } catch (err) { + printError(`Failed to deploy mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options); + } } } export class DescribeMissionCommand { @@ -254,9 +240,11 @@ export class DescribeMissionCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeMissionCommand(%s)', profile.name, campaign); const cli = new Catalog(profile.url); - cli.getMission(options.project || profile.project, profile.token, campaign, mission).then((response) => { - if (response.success === false) throw response; - printSuccess(JSON.stringify(response.data, null, 2), options); - }).catch((err) => printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options)); + try { + const response = await cli.getMission(options.project || profile.project, profile.token, campaign, mission); + printSuccess(JSON.stringify(response, null, 2), options); + } catch (err) { + printError(`Failed to describe mission ${mission} of campaign ${campaign}: ${err.status} ${err.message}`, options); + } } } diff --git a/src/commands/configure.js b/src/commands/configure.js index e46a3f6f..3a1f7d64 100644 --- a/src/commands/configure.js +++ b/src/commands/configure.js @@ -108,6 +108,7 @@ export const DescribeProfileCommand = class { printSuccess(`Username: ${profile.username}`, options); printSuccess(`JWK: ${JSON.stringify(profile.jwk)}`, options); printSuccess(`Project: ${profile.project || 'undefined'}`, options); + printSuccess(`Container Registry:\n\tName: ${Object.keys(profile.registries)[0]}\n\tURL: ${Object.values(profile.registries)[0]?.url || 'undefined'}`, options); } }; export const ListProfilesCommand = class { diff --git a/src/commands/connections.js b/src/commands/connections.js index 547858c6..7dcd77c9 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -15,9 +15,9 @@ import { fileExists, handleTable, printExtendedLogs, - handleListFailure, - handleDeleteFailure, getFilteredOutput, + printErrorDetails, + handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -33,24 +33,20 @@ export class ListConnections { debug('%s.listConnections()', profile.name); const conns = new Connections(profile.url); // eslint-disable-next-line consistent-return - conns.listConnections(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { - if (response.success) { - const result = response.result.connections; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - handleTable(CONNECTIONTABLEFORMAT, result, (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), 'No connections found'); - } + try { + const response = await conns.listConnections(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort); + const result = response.connections; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - return handleListFailure(response, options, 'Connections'); + printExtendedLogs(result, options); + handleTable(CONNECTIONTABLEFORMAT, result, (o) => ({ ...o, createdAt: o.createdAt ? dayjs(o.createdAt).fromNow() : '-' }), 'No connections found'); } - }) - .catch((err) => { + } catch (err) { debug(err); - printError(`Failed to list connections: ${err.status} ${err.message}`, options); - }); + handleError(err, options, 'Failed to list connections'); + } } } export class SaveConnectionCommand { @@ -82,38 +78,25 @@ export class SaveConnectionCommand { const jdbcJarFilePath = this.getParamsValue(connObj, 'jdbc_jar_file'); const contentKey = this.getParamsValue(connObj, 'managed_content_key') || this.getParamsValue(connObj, 'plugin_jar'); if (jdbcJarFilePath && !jdbcJarFilePath.includes('--Insert jar file path--')) { - const content = new Content(profile.url); - const connection = new Connections(profile.url); - content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath) - .then(() => { + try { + const content = new Content(profile.url); + const connection = new Connections(profile.url); + await content.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, jdbcJarFilePath); const marshaledConnObj = connObj; marshaledConnObj.params = this.stripJarPathFromParams(marshaledConnObj.params); - connection.saveConnection(options.project || profile.project, profile.token, marshaledConnObj).then((response) => { - if (response.success) { - printSuccess('Connection saved', options); - } else { - printError(`Failed to save connection: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to save connection: ${err.response.body.message}`, options); - }); - }) - .catch((err) => { - printError(`Failed to upload jdbc jar: ${err.status} ${err.message}`, options); - }); + await connection.saveConnection(options.project || profile.project, profile.token, marshaledConnObj); + printSuccess('Connection saved', options); + } catch (err) { + handleError(err, options, 'Failed to upload jdbc jar'); + } } else { + try { const connection = new Connections(profile.url); - connection.saveConnection(options.project || profile.project, profile.token, connObj).then((response) => { - if (response.success) { - printSuccess('Connection saved', options); - } else { - printError(`Failed to save connection: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to save connection: ${err.response.body.message}`, options); - }); + await connection.saveConnection(options.project || profile.project, profile.token, connObj); + printSuccess('Connection saved', options); + } catch (err) { + handleError(err, options, 'Failed to save connection'); + } } } } @@ -126,16 +109,12 @@ export class DescribeConnectionCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeConnection(%s)', profile.name, connectionName); const connection = new Connections(profile.url); - connection.describeConnection(options.project || profile.project, profile.token, connectionName).then((response) => { - if (response.success) { - getFilteredOutput(response.result, options); - } else { - printError(`Failed to describe connection ${connectionName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe connection ${connectionName}: ${err.status} ${err.message}`, options); - }); + try { + const response = await connection.describeConnection(options.project || profile.project, profile.token, connectionName); + getFilteredOutput(response.result, options); + } catch (err) { + handleError(err, options, `Failed to describe connection ${connectionName}`); + } } } export class DeleteConnectionCommand { @@ -147,18 +126,16 @@ export class DeleteConnectionCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeleteConnection(%s)', profile.name, connectionName); const connection = new Connections(profile.url); - connection.deleteConnection(options.project || profile.project, profile.token, connectionName).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Connection'); - }) - .catch((err) => { - printError(`Failed to delete connection ${connectionName}: ${err.status} ${err.message}`, options); - }); + try { + const response = await connection.deleteConnection(options.project || profile.project, profile.token, connectionName); + const result = filterObject(response.result, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + return handleError(err, { ...options, tableformat: 'DEPENDENCYTABLEFORMAT' }, `Failed to delete connection ${connectionName}`); + } } } + export class ListConnectionsTypes { constructor(program) { this.program = program; @@ -169,11 +146,11 @@ export class ListConnectionsTypes { const profile = await loadProfile(options.profile); debug('%s.listConnectionsTypes()', profile.name); const conns = new Connections(profile.url); - conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort) // eslint-disable-next-line consistent-return - .then((response) => { - if (response.success) { - const result = response.connectionTypes; + try { + const response = await conns.listConnectionsTypes(profile.token, options.limit, options.skip, options.sort); + const result = response?.connectionTypes; + // TODO remove --query on deprecation if (options.json || options.query) { getFilteredOutput(result, options); } else { @@ -206,13 +183,11 @@ export class ListConnectionsTypes { }, ]; handleTable(tableSpec, result, null, 'No connection types found'); - } - } else { - return handleListFailure(response, options, 'Connections'); - } - }) - .catch((err) => { - printError(`Failed to list connection types: ${err.status} ${err.message}`, options); - }); + } + } catch (err) { + debug(err); + printError(`Failed to list connection types: ${err.status} ${err.message}`, options, false); + printErrorDetails(err?.response, options); + } } } diff --git a/src/commands/content.js b/src/commands/content.js index 8506df33..b4633288 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -6,24 +6,22 @@ import debugSetup from 'debug'; import { loadProfile } from '../config.js'; import Content from '../client/content.js'; import { - printSuccess, printError, getSourceFiles, humanReadableFileSize, handleTable, getFilteredOutput, checkProject, printNormalizedError, handleError, + printSuccess, printError, getSourceFiles, humanReadableFileSize, handleTable, getFilteredOutput, checkProject, handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); -async function upload(contentClient, profile, options, contentKey, filePath, exit = true) { +async function upload(contentClient, profile, options, contentKey, filePath) { if (fs.lstatSync(filePath).isDirectory()) { printError('Uploads of directories require the option --recursive | -r', options); } const showProgress = !!options.progress; const contentType = _.get(options, 'contentType', 'application/octet-stream'); - const response = await contentClient.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, filePath, showProgress, contentType); - if (response.success) { + try { + await contentClient.uploadContentStreaming(options.project || profile.project, profile.token, contentKey, filePath, showProgress, contentType); printSuccess('Content successfully uploaded.', options); - } else { - const message = `Failed to upload content ${filePath}: ${response.status} ${response.message}`; - printNormalizedError(response, options, `Failed to upload content ${filePath}`, exit); - throw Error(message); // Temp fix to make recursive upload stop uploading, until uploadContentStreaming() throws + } catch (err) { + handleError(err, options, `Failed to upload content ${filePath}`); } } @@ -36,29 +34,24 @@ export class ListContent { const profile = await loadProfile(options.profile); debug('%s.listContent()', profile.name); const content = new Content(profile.url); - content.listContent(options.project || profile.project, profile.token, options.prefix).then((response) => { - if (response.success) { - const result = response.message; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - const tableSpec = [ - { column: 'Key', field: 'Key', width: 70 }, - { column: 'Content Type', field: 'ContentType', width: 30 }, - { column: 'Last Modified', field: 'LastModified', width: 30 }, - { column: 'Size (bytes)', field: 'Size', width: 20 }, - ]; - handleTable(tableSpec, response.message, null, 'No content found'); - } - } else { - printError(`Failed to list content: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to list content: ${err.status} ${err.message}`, options); - }); + try { + const response = await content.listContent(options.project || profile.project, profile.token, options.prefix); + const result = response.message; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); + } else { + const tableSpec = [ + { column: 'Key', field: 'Key', width: 70 }, + { column: 'Content Type', field: 'ContentType', width: 30 }, + { column: 'Last Modified', field: 'LastModified', width: 30 }, + { column: 'Size (bytes)', field: 'Size', width: 20 }, + ]; + handleTable(tableSpec, response.message, null, 'No content found'); + } + } catch (err) { + handleError(err, options, 'Failed to list content'); + } } } export class UploadContent { @@ -75,10 +68,6 @@ export class UploadContent { const chunkSize = parseInt(options.chunkSize, 10); if (options.recursive) { const files = getSourceFiles(filePath); - // if (err) { - // debug(err); - // printError(`Failed to upload content: ${err.status} ${err.message}`, options); - // } const totalBytes = files.reduce((accum, current) => { console.log(`${humanReadableFileSize(current.size)}\t${current.relative} -> ${contentKey}/${current.relative}`); return accum + current.size; @@ -112,17 +101,12 @@ export class DeleteContent { const profile = await loadProfile(options.profile); debug('%s.deleteContent()', profile.name); const content = new Content(profile.url); - content.deleteContent(options.project || profile.project, profile.token, contentKey).then((response) => { - if (response.success) { - printSuccess('Content successfully deleted.', options); - } else { - printError(`Failed to delete content: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to delete content: ${err.status} ${err.message}`, options); - }); + try { + await content.deleteContent(options.project || profile.project, profile.token, contentKey); + printSuccess('Content successfully deleted.', options); + } catch (err) { + handleError(err, options, 'Failed to delete content'); + } } } export class DownloadContent { diff --git a/src/commands/deploy.js b/src/commands/deploy.js index 0035d027..a77d3f19 100644 --- a/src/commands/deploy.js +++ b/src/commands/deploy.js @@ -31,7 +31,7 @@ import Models from '../client/models.js'; import Actions from '../client/actions.js'; import Content from '../client/content.js'; import { - printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, filterObject, + printSuccess, printError, cleanInternalFields, jsonToYaml, writeToFile, fileExists, deleteFile, filterObject, handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -81,53 +81,41 @@ const DeployExperimentCommand = class { const model = new Models(profile.url); const content = new Content(profile.url); let modelName; - let response; - response = await experiments.describeExperiment(project, profile.token, experimentName); - if (response.success) { - const result = filterObject(response.result, options); + try { + let response = await experiments.describeExperiment(project, profile.token, experimentName); + let result = filterObject(response, options); const expDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, 'experiments', `${experimentName}.json`); + let filepath = path.join(artifactsDir, 'experiments', `${experimentName}.json`); writeToFile(expDesc, filepath); manifest.experiment = [filepath]; // TODO ??? module.exports ??? experimentName; modelName = result.modelId; - } else { - printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); - } - // export model if provided in experiment - if (modelName) { - response = await model.describeModel(project, profile.token, modelName, true); - if (response.success) { - const result = filterObject(response.model, options); + // export model if provided in experiment + if (modelName) { + response = await model.describeModel(project, profile.token, modelName, true); + result = filterObject(response, options); const modelDesc = cleanInternalFields(result); if (result.status && result.status === 'Published') { - const filepath = path.join(artifactsDir, 'models', `${modelName}.json`); + filepath = path.join(artifactsDir, 'models', `${modelName}.json`); writeToFile(modelDesc, filepath); manifest.model = [filepath]; // TODO ??? module.exports ??? modelName; } else { printError(`Only Published models can be exported. Model ${modelName} is in ${result.status}`); } - } else { - printError(`Failed to export model ${modelName}: ${response.message}`, options); } - } - let exportRun = runId; - if (!runId && options.latestRun) { - response = await experiments.listRuns(project, profile.token, experimentName, null, 1, JSON.stringify({ startTime: -1 })); - if (response.success) { - const { runs } = response.result; + let exportRun = runId; + if (!runId && options.latestRun) { + const { runs } = await experiments.listRuns(project, profile.token, experimentName, null, 1, JSON.stringify({ startTime: -1 })); if (_.size(runs)) { exportRun = runs[0].runId; } } - } - if (exportRun) { - response = await experiments.describeRun(project, profile.token, experimentName, exportRun); - if (response.success) { - const result = filterObject(response.result, options); + if (exportRun) { + response = await experiments.describeRun(project, profile.token, experimentName, exportRun); + result = filterObject(response, options); const runDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, `experiments/${experimentName}/runs`, `${exportRun}.json`); + filepath = path.join(artifactsDir, `experiments/${experimentName}/runs`, `${exportRun}.json`); writeToFile(runDesc, filepath); if (result.artifacts) { await Promise.all(Object.values(result.artifacts) @@ -136,15 +124,16 @@ const DeployExperimentCommand = class { manifest.run = [filepath]; // TODO ??? module.exports ??? exportRun; } else { - printError(`Failed to export experiment ${experimentName}: ${response.message}`, options); + printError('Provide runId or `--latestRun` option to export last run ', options); } - } else { - printError('Provide runId or `--latestRun` option to export last run ', options); + updateManifest(manifest); + printSuccess(`Successfully exported ${JSON.stringify(exports)} in ${artifactsDir} and updated manifest file ${manifestFile}`); + } catch (err) { + handleError(err, options, 'Deploy experiment failed'); } - updateManifest(manifest); - printSuccess(`Successfully exported ${JSON.stringify(exports)} in ${artifactsDir} and updated manifest file ${manifestFile}`); } }; + const DeployConnectionCommand = class { constructor(program) { this.program = program; @@ -155,21 +144,18 @@ const DeployConnectionCommand = class { const project = options.project || profile.project; debug('%s.exportDeploymentConnection%s)', profile.name, connectionName); const connection = new Connections(profile.url); - connection.describeConnection(project, profile.token, connectionName).then(async (response) => { - if (response.success) { - const result = filterObject(response.result, options); - const connectionDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, 'connections', `${connectionName}.json`); - writeToFile(connectionDesc, filepath); - updateManifest({ connection: [filepath] }); - await addDependencies(profile.url, profile.token, project, 'Connection', connectionName); - printSuccess(`Successfully exported Connection ${connectionName} in ${artifactsDir} and updated manifest file ${manifestFile}`); - } else { - printError(`Failed to export connection ${connectionName}: ${response.message}`, options); - } - }).catch((err) => { - printError(`Failed to export connection ${connectionName}: ${err.status} ${err.message}`, options); - }); + try { + const response = await connection.describeConnection(project, profile.token, connectionName); + const result = filterObject(response.result, options); + const connectionDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, 'connections', `${connectionName}.json`); + writeToFile(connectionDesc, filepath); + updateManifest({ connection: [filepath] }); + await addDependencies(profile.url, profile.token, project, 'Connection', connectionName); + printSuccess(`Successfully exported Connection ${connectionName} in ${artifactsDir} and updated manifest file ${manifestFile}`); + } catch (err) { + handleError(err, options, `Failed to export connection ${connectionName}`); + } } }; export const DeploySnapshotCommand = class { @@ -296,63 +282,60 @@ export const DeploySkillCommand = class { const manifest = {}; const exports = {}; const catalog = new Catalog(profile.url); - catalog.describeSkill(project, profile.token, skillName, false).then(async (response) => { - // check if response is valid skill and not error. - if (response.success === false) { - printError(`Failed to export skill ${skillName}: ${response.message}`, options); - } else { - const result = filterObject(response, options); - const skillDesc = cleanInternalFields(result); - const filepath = path.join(artifactsDir, 'skills', `${skillName}.json`); - writeToFile(skillDesc, filepath); - manifest.skill = [filepath]; - const dependencies = await addDependencies(profile.url, profile.token, project, 'Skill', skillName); - // export linked connections of skill - const connections = dependencies.data.filter((d) => d.type === 'Connection').map((d) => d.name); - if (connections) { - await Promise.all(connections.map((connection) => new DeployConnectionCommand(this.program).execute(connection, options))); - } - // export linked model/experiment of skill - const mlOps = Object.fromEntries(dependencies.data.filter((d) => ['Model', 'Experiment', 'ExperimentRun'].includes(d.type)).map((d) => [d.type, d.name])); - if (mlOps && mlOps.Experiment) { - await new DeployExperimentCommand(this.program).execute(mlOps.Experiment, (mlOps.ExperimentRun || '').split('-').pop(), options); - } - // export actions of the skill - const existingActions = result.actions.map((a) => a.name); - const actions = dependencies.data.filter((d) => d.type === 'Action' && !existingActions.includes(d.name)).map((d) => d.name); - if (actions.length > 0) { - const actionsClient = new Actions(profile.url); - await Promise.all(actions.map(async (a) => { + try { + let response = await catalog.describeSkill(project, profile.token, skillName, false); + // check if response is valid skill and not error. + const result = filterObject(response, options); + const skillDesc = cleanInternalFields(result); + const filepath = path.join(artifactsDir, 'skills', `${skillName}.json`); + writeToFile(skillDesc, filepath); + manifest.skill = [filepath]; + const dependencies = await addDependencies(profile.url, profile.token, project, 'Skill', skillName); + // export linked connections of skill + const connections = dependencies.data.filter((d) => d.type === 'Connection').map((d) => d.name); + if (connections) { + await Promise.all(connections.map((connection) => new DeployConnectionCommand(this.program).execute(connection, options))); + } + // export linked model/experiment of skill + const mlOps = Object.fromEntries(dependencies.data.filter((d) => ['Model', 'Experiment', 'ExperimentRun'].includes(d.type)).map((d) => [d.type, d.name])); + if (mlOps && mlOps.Experiment) { + await new DeployExperimentCommand(this.program).execute(mlOps.Experiment, (mlOps.ExperimentRun || '').split('-').pop(), options); + } + // export actions of the skill + const existingActions = result.actions.map((a) => a.name); + const actions = dependencies.data.filter((d) => d.type === 'Action' && !existingActions.includes(d.name)).map((d) => d.name); + if (actions.length > 0) { + const actionsClient = new Actions(profile.url); + await Promise.all(actions.map(async (a) => { + try { response = await actionsClient.describeAction(project, profile.token, a); - if (response.success) { - const actionDesc = cleanInternalFields(filterObject(response.action, options)); - writeToFile(actionDesc, path.join(artifactsDir, 'actions', `${a}.json`)); - } else { - printError(`Failed to export action ${a}: ${response.message}`, options); - } - })); - manifest.action = actions.map((a) => path.join(artifactsDir, 'actions', `${a}.json`)); - } - // export types of skill - const types = dependencies.data.filter((d) => d.type === 'Type').map((d) => d.name); - if (types.length > 0) { - await Promise.all(types.map(async (type) => { - response = await catalog.describeType(project, profile.token, type); - if (response.success) { - const typeDesc = cleanInternalFields(filterObject(response.type, options)); - writeToFile(typeDesc, path.join(artifactsDir, 'types', `${type}.json`)); - } else { - printError(`Failed to export type ${type}: ${JSON.stringify(response)}`, options); - } - })); - manifest.type = types.map((a) => path.join(artifactsDir, 'types', `${a}.json`)); - } - updateManifest(manifest); - printSuccess(`Successfully exported ${JSON.stringify(Object.assign(exports, mlOps))} in ${artifactsDir} and updated manifest file ${manifestFile}`); + const actionDesc = cleanInternalFields(filterObject(response.action, options)); + writeToFile(actionDesc, path.join(artifactsDir, 'actions', `${a}.json`)); + } catch (err) { + handleError(err, options, `Failed to export action ${a}`); + } + })); + manifest.action = actions.map((a) => path.join(artifactsDir, 'actions', `${a}.json`)); } - }).catch((err) => { - printError(`Failed to export skill ${skillName}: ${err.status} ${err.message}`, options); - }); + // export types of skill + const types = dependencies.data.filter((d) => d.type === 'Type').map((d) => d.name); + if (types.length > 0) { + await Promise.all(types.map(async (type) => { + try { + response = await catalog.describeType(project, profile.token, type); + const typeDesc = cleanInternalFields(filterObject(response.type, options)); + writeToFile(typeDesc, path.join(artifactsDir, 'types', `${type}.json`)); + } catch (err) { + handleError(err, options, `Failed to export type ${type}`); + } + })); + manifest.type = types.map((a) => path.join(artifactsDir, 'types', `${a}.json`)); + } + updateManifest(manifest); + printSuccess(`Successfully exported ${JSON.stringify(Object.assign(exports, mlOps))} in ${artifactsDir} and updated manifest file ${manifestFile}`); + } catch (err) { + handleError(err, options, `Failed to export skill ${skillName}}`); + } } }; export { DeployExperimentCommand as experiment }; diff --git a/src/commands/docker.js b/src/commands/docker.js index 9030ded5..6513e296 100644 --- a/src/commands/docker.js +++ b/src/commands/docker.js @@ -1,7 +1,3 @@ -import debugSetup from 'debug'; -import URL from 'url-parse'; -import { printSuccess, printError, callMe } from './utils.js'; -import { generateJwt, loadProfile } from '../config.js'; /* * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. * @@ -17,25 +13,20 @@ import { generateJwt, loadProfile } from '../config.js'; * See the License for the specific language governing permissions and * limitations under the License. */ -const debug = debugSetup('cortex:cli'); +import { printError, printSuccess } from './utils.js'; +import { privateRegLogin } from '../client/dockerClient.js'; + export default class DockerLoginCommand { constructor(program) { this.program = program; } async execute(options) { - const profile = await loadProfile(options.profile); - const ttl = options.ttl || '14d'; try { - // TODO fetch this from new endpoint or maybe store this in the profile?? - const registryUrl = (new URL(profile.url)).hostname.replace('api', 'private-registry'); - const jwt = await generateJwt(profile, ttl); - const command = `docker login -u cli --password ${jwt} ${registryUrl}`; - debug('%s.executeDockerLogin(%s)', profile.name, command); - await callMe(command); + await privateRegLogin(options); printSuccess(JSON.stringify('Login Succeeded', null, 2), options); } catch (err) { - printError(`Failed to docker login: ${err.message || err}`, options); + printError(`Failed to docker login: ${err?.message ?? err}`, options); } } } diff --git a/src/commands/experiments.js b/src/commands/experiments.js index 4f7f940f..689a03ec 100644 --- a/src/commands/experiments.js +++ b/src/commands/experiments.js @@ -14,16 +14,14 @@ import { fileExists, handleTable, printExtendedLogs, - handleListFailure, - handleDeleteFailure, getFilteredOutput, - printErrorDetails, + handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); dayjs.extend(duration); dayjs.extend(relativeTime); -class ListExperiments { +export class ListExperiments { constructor(program) { this.program = program; } @@ -33,34 +31,28 @@ class ListExperiments { const profile = await loadProfile(options.profile); debug('%s.listExperiments()', profile.name); const exp = new Experiments(profile.url); + try { // eslint-disable-next-line consistent-return - exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { - if (response.success) { - const { result } = response; + const result = await exp.listExperiments(options.project || profile.project, options.model, profile.token, options.filter, options.limit, options.skip, options.sort); // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result.experiments, options); - const tableSpec = [ - { column: 'Name', field: 'name', width: 40 }, - { column: 'Title', field: 'title', width: 50 }, - { column: 'Version', field: '_version', width: 25 }, - { column: 'Description', field: 'description', width: 50 }, - ]; - handleTable(tableSpec, result.experiments, null, 'No experiments found'); - } + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - return handleListFailure(response, options, 'Experiments'); + printExtendedLogs(result.experiments, options); + const tableSpec = [ + { column: 'Name', field: 'name', width: 40 }, + { column: 'Title', field: 'title', width: 50 }, + { column: 'Version', field: '_version', width: 25 }, + { column: 'Description', field: 'description', width: 50 }, + ]; + handleTable(tableSpec, result.experiments, null, 'No experiments found'); } - }) - .catch((err) => { - debug(err); - printError(`Failed to list experiments: ${err.status} - ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list experiments'); + } } } -class DescribeExperimentCommand { +export class DescribeExperimentCommand { constructor(program) { this.program = program; } @@ -69,19 +61,15 @@ class DescribeExperimentCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeExperiment(%s)', profile.name, experimentName); const exp = new Experiments(profile.url); - exp.describeExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { - if (response.success) { - getFilteredOutput(response.result, options); - } else { - printError(`Failed to describe experiment ${experimentName}: ${response.status} - ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe experiment ${experimentName}: ${err.status} - ${err.message}`, options); - }); + try { + const result = exp.describeExperiment(options.project || profile.project, profile.token, experimentName); + getFilteredOutput(result, options); + } catch (err) { + handleError(err, options, `Failed to describe experiment ${experimentName}`); + } } } -class DeleteExperimentCommand { +export class DeleteExperimentCommand { constructor(program) { this.program = program; } @@ -90,19 +78,16 @@ class DeleteExperimentCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeleteExperiment(%s)', profile.name, experimentName); const exp = new Experiments(profile.url); - exp.deleteExperiment(options.project || profile.project, profile.token, experimentName).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); + try { + const response = await exp.deleteExperiment(options.project || profile.project, profile.token, experimentName); + const result = filterObject(response, options); return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Experiment'); - }) - .catch((err) => { - printError(`Failed to delete experiment ${experimentName}: ${err.status} - ${err.message}`, options); - }); + } catch (err) { + return handleError(err, options, `Failed to delete experiment ${experimentName}`); + } } } -class ListRuns { +export class ListRuns { constructor(program) { this.program = program; } @@ -113,44 +98,38 @@ class ListRuns { debug('%s.listRuns()', profile.name); const exp = new Experiments(profile.url); const sort = options.sort || JSON.stringify({ startTime: -1 }); - // eslint-disable-next-line consistent-return - exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort, options.skip).then((response) => { - if (response.success) { - const { result } = response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result.runs, options); - } else { - printExtendedLogs(result.runs, options); - const tableSpec = [ - { column: 'Run ID', field: 'runId', width: 25 }, - { column: 'Start', field: 'startTime', width: 25 }, - { column: 'Took', field: 'took', width: 25 }, - { column: 'Params', field: 'params', width: 45 }, - { column: 'Metrics', field: 'metrics', width: 45 }, - { column: 'Artifacts', field: 'artifacts' }, - ]; - const trans = (o) => { - o.startTime = o.startTime ? dayjs.unix(o.startTime).format('YYYY-MM-DD HH:mm a') : ''; - o.took = o.took ? dayjs.duration(o.took, 'seconds').humanize() : ''; - o.params = _.map(o.params, (v, k) => `${k}: ${v}`).join('\n'); - o.metrics = _.map(o.metrics, (v, k) => `${k}: ${v}`).join('\n'); - o.artifacts = Object.keys(_.get(o, 'artifacts', {})).join(', '); - return o; - }; - handleTable(tableSpec, _.get(result, 'runs', []), trans, 'No runs found'); - } + try { + // eslint-disable-next-line consistent-return + const result = await exp.listRuns(options.project || profile.project, profile.token, experimentName, options.filter, options.limit, sort, options.skip); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result.runs, options); } else { - return handleListFailure(response, options, 'Experiment-runs'); + printExtendedLogs(result.runs, options); + const tableSpec = [ + { column: 'Run ID', field: 'runId', width: 25 }, + { column: 'Start', field: 'startTime', width: 25 }, + { column: 'Took', field: 'took', width: 25 }, + { column: 'Params', field: 'params', width: 45 }, + { column: 'Metrics', field: 'metrics', width: 45 }, + { column: 'Artifacts', field: 'artifacts' }, + ]; + const trans = (o) => { + o.startTime = o.startTime ? dayjs.unix(o.startTime).format('YYYY-MM-DD HH:mm a') : ''; + o.took = o.took ? dayjs.duration(o.took, 'seconds').humanize() : ''; + o.params = _.map(o.params, (v, k) => `${k}: ${v}`).join('\n'); + o.metrics = _.map(o.metrics, (v, k) => `${k}: ${v}`).join('\n'); + o.artifacts = Object.keys(_.get(o, 'artifacts', {})).join(', '); + return o; + }; + handleTable(tableSpec, _.get(result, 'runs', []), trans, 'No runs found'); } - }) - .catch((err) => { - debug(err); - printError(`Failed to list runs: ${err.status} - ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list runs'); + } } } -class DescribeRunCommand { +export class DescribeRunCommand { constructor(program) { this.program = program; } @@ -159,19 +138,16 @@ class DescribeRunCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeRun(%s)', profile.name, runId); const exp = new Experiments(profile.url); - exp.describeRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { - if (response.success) { - getFilteredOutput(response.result, options); - } else { - printError(`Failed to describe run ${experimentName}/${runId}: ${response.status} - ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); - }); + try { + const response = await exp.describeRun(options.project || profile.project, profile.token, experimentName, runId); + getFilteredOutput(response.result, options); + } catch (err) { + handleError(err, options, `Failed to describe run ${experimentName}/${runId}`); + } } } -class DeleteRunCommand { + +export class DeleteRunCommand { constructor(program) { this.program = program; } @@ -180,18 +156,15 @@ class DeleteRunCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeleteRun(%s)', profile.name, runId); const exp = new Experiments(profile.url); - exp.deleteRun(options.project || profile.project, profile.token, experimentName, runId).then((response) => { - if (response.success) { - return printSuccess(`Run ${runId} in experiment ${experimentName} deleted`, options); - } - return handleDeleteFailure(response, options, 'Run'); - }) - .catch((err) => { - printError(`Failed to delete run ${experimentName}/${runId}: ${err.status} - ${err.message}`, options); - }); + try { + await exp.deleteRun(options.project || profile.project, profile.token, experimentName, runId); + return printSuccess(`Run ${runId} in experiment ${experimentName} deleted`, options); + } catch (err) { + return handleError(err, options, `Failed to delete run ${experimentName}/${runId}`); + } } } -class DownloadArtifactCommand { +export class DownloadArtifactCommand { constructor(program) { this.program = program; } @@ -208,7 +181,7 @@ class DownloadArtifactCommand { }); } } -class SaveExperimentCommand { +export class SaveExperimentCommand { constructor(program) { this.program = program; } @@ -223,22 +196,15 @@ class SaveExperimentCommand { const experiment = parseObject(experimentDefStr, options); debug('%o', experiment); const experiments = new Experiments(profile.url); - experiments.saveExperiment(options.project || profile.project, profile.token, experiment).then((response) => { - if (response.success) { - printSuccess('Experiment saved', options); - } else if (response.details) { - console.log(`Failed to save experiment: ${response.status} ${response.message}`); - printErrorDetails(response, options); - } else { - printError(JSON.stringify(response)); - } - }) - .catch((err) => { - printError(`Failed to save experiment: ${err.status} ${err.message}`, options); - }); + try { + await experiments.saveExperiment(options.project || profile.project, profile.token, experiment); + printSuccess('Experiment saved', options); + } catch (err) { + handleError(err, options, 'Failed to save experiment'); + } } } -class CreateRunCommand { +export class CreateRunCommand { constructor(program) { this.program = program; } @@ -252,23 +218,16 @@ class CreateRunCommand { const runDefinitionStr = fs.readFileSync(runDefinition); const run = parseObject(runDefinitionStr, options); const experiments = new Experiments(profile.url); - experiments.createRun(options.project || profile.project, profile.token, run).then((response) => { - if (response.success) { - printSuccess('Run created', options); - printSuccess(JSON.stringify(response.result, null, 2), options); - } else if (response.details) { - console.log(`Failed to create run: ${response.status} ${response.message}`); - printErrorDetails(response, options); - } else { - printError(JSON.stringify(response)); - } - }) - .catch((err) => { - printError(`Failed to create run: ${err.status} ${err.message}`, options); - }); + try { + const response = await experiments.createRun(options.project || profile.project, profile.token, run); + printSuccess('Run created', options); + printSuccess(JSON.stringify(response, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to create run'); + } } } -class UploadArtifactCommand { +export class UploadArtifactCommand { constructor(program) { this.program = program; } @@ -281,41 +240,14 @@ class UploadArtifactCommand { upload(filePath, artifact, experimentName, runId); } - static upload(experiments, profile, options, filePath, artifact, experimentName, runId) { + static async upload(experiments, profile, options, filePath, artifact, experimentName, runId) { const contentType = _.get(options, 'contentType', 'application/octet-stream'); - return experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, filePath, artifact, contentType).then((response) => { - if (response.success) { - printSuccess('Artifact successfully uploaded.', options); - printSuccess(JSON.stringify(response, null, 2), options); - } else { - printError(`Failed to upload Artifact: ${response.status} ${response.message}`, options); - } - }) - .catch((err) => { - debug(err); - printError(`Failed to upload Artifact: ${err.status} ${err.message}`, options); - }); + try { + const response = await experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, filePath, artifact, contentType); + printSuccess('Artifact successfully uploaded.', options); + printSuccess(JSON.stringify(response, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to upload Artifact'); + } } } -export { ListExperiments }; -export { ListRuns }; -export { DescribeExperimentCommand }; -export { DescribeRunCommand }; -export { DeleteRunCommand }; -export { DeleteExperimentCommand }; -export { DownloadArtifactCommand }; -export { SaveExperimentCommand }; -export { CreateRunCommand }; -export { UploadArtifactCommand }; -export default { - ListExperiments, - ListRuns, - DescribeExperimentCommand, - DescribeRunCommand, - DeleteRunCommand, - DeleteExperimentCommand, - DownloadArtifactCommand, - SaveExperimentCommand, - CreateRunCommand, - UploadArtifactCommand, -}; diff --git a/src/commands/models.js b/src/commands/models.js index 6f307d43..617fd4bf 100644 --- a/src/commands/models.js +++ b/src/commands/models.js @@ -11,8 +11,6 @@ import { LISTTABLEFORMAT, RUNTABLEFORMAT, printExtendedLogs, - handleListFailure, - handleDeleteFailure, printSuccess, printError, filterObject, @@ -20,7 +18,7 @@ import { fileExists, handleTable, getFilteredOutput, - printErrorDetails, + handleError, } from './utils.js'; const _ = { @@ -44,21 +42,13 @@ export class SaveModelCommand { const model = parseObject(modelDefStr, options); debug('%o', model); const models = new Models(profile.url); - models.saveModel(options.project || profile.project, profile.token, model).then((response) => { - if (response.success) { - printSuccess('Model saved', options); - printSuccess(JSON.stringify(_.pick(response.message, ['version', 'created', 'modelId']), null, 2)); - } else if (response.details) { - console.log(`Failed to save model: ${response.status} ${response.message}`); - printErrorDetails(response, options); - printError(''); // Just exit - } else { - printError(JSON.stringify(response)); - } - }) - .catch((err) => { - printError(`Failed to save model: ${err.status} ${err.message}`, options); - }); + try { + const response = await models.saveModel(options.project || profile.project, profile.token, model); + printSuccess('Model saved', options); + printSuccess(JSON.stringify(_.pick(response, ['version', 'created', 'modelId']), null, 2)); + } catch (err) { + handleError(err, options, 'Failed to save model'); + } } } export class ListModelsCommand { @@ -72,24 +62,19 @@ export class ListModelsCommand { debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); // eslint-disable-next-line consistent-return - models.listModels(options.project || profile.project, options.skip, options.limit, options.filter, options.sort, options.tags, profile.token).then((response) => { - if (response.success) { - const result = response.models; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No models found'); - } + try { + const response = await models.listModels(options.project || profile.project, options.skip, options.limit, options.filter, options.sort, options.tags, profile.token); + const result = response.models; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - return handleListFailure(response, options, 'Models'); + printExtendedLogs(result, options); + handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No models found'); } - }) - .catch((err) => { - debug(err); - printError(`Failed to list models: ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list models'); + } } } export class ListModelRunsCommand { @@ -102,25 +87,20 @@ export class ListModelRunsCommand { const profile = await loadProfile(options.profile); debug('%s.executeListModels()', profile.name); const models = new Models(profile.url); + try { // eslint-disable-next-line consistent-return - models.listModelRuns(options.project || profile.project, modelName, profile.token, options.filter, options.limit, options.skip, options.sort).then((response) => { - if (response.success) { - const result = response.runs; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - handleTable(RUNTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No runs found'); - } + const response = await models.listModelRuns(options.project || profile.project, modelName, profile.token, options.filter, options.limit, options.skip, options.sort); + const result = response.runs; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - return handleListFailure(response, options, 'Model-runs'); + printExtendedLogs(result, options); + handleTable(RUNTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No runs found'); } - }) - .catch((err) => { - debug(err); - printError(`Failed to list model runs: ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list model runs'); + } } } @@ -133,16 +113,12 @@ export class DescribeModelCommand { const profile = await loadProfile(options.profile); const models = new Models(profile.url); debug('%s.executeDescribeModel(%s)', profile.name, modelName); - models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose).then((response) => { - if (response.success) { - getFilteredOutput(response.model, options); - } else { - printError(`Failed to describe model ${modelName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe model ${modelName}: ${err.status} ${err.message}`, options); - }); + try { + const response = await models.describeModel(options.project || profile.project, profile.token, modelName, options.verbose); + getFilteredOutput(response.model, options); + } catch (err) { + handleError(err, options, `Failed to describe model ${modelName}`); + } } } export const DeleteModelCommand = class { @@ -154,17 +130,13 @@ export const DeleteModelCommand = class { const profile = await loadProfile(options.profile); debug('%s.executeDeleteModel(%s)', profile.name, modelName); const models = new Models(profile.url); - models.deleteModel(options.project || profile.project, profile.token, modelName) - .then((response) => { - if (response && response.success) { - const result = filterObject(response, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Model'); - }) - .catch((err) => { - printError(`Failed to delete model: ${err.status} ${err.message}`, options); - }); + try { + const response = await models.deleteModel(options.project || profile.project, profile.token, modelName); + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + return handleError(err, { ...options, tableformat: 'DEPENDENCYTABLEFORMAT' }, `Failed to delete model "${modelName}"`); + } } }; export class UpdateModelStatusCommand { @@ -177,10 +149,7 @@ export class UpdateModelStatusCommand { const models = new Models(profile.url); debug('%s.executeUpdateModelStatus(%s)', profile.name, modelName, status); try { - const updateModelStatusObj = await models.updateModelStatus(options.project || profile.project, profile.token, modelName, status); - if (!updateModelStatusObj.success) { - printError(JSON.stringify(updateModelStatusObj)); - } + await models.updateModelStatus(options.project || profile.project, profile.token, modelName, status); printSuccess(`Model ${status}ed`, options); } catch (err) { printError(`Failed to publish model ${modelName}: ${err.status} ${err.message}`, options); @@ -201,32 +170,15 @@ export class RegisterModelCommand { const model = parseObject(modelDefStr, options); debug('%o', model); const saveExperimentResponse = await experiments.saveExperiment(options.project || profile.project, profile.token, model); - if (!saveExperimentResponse.success) { - printErrorDetails(saveExperimentResponse, options); - printError(JSON.stringify(saveExperimentResponse)); - return; - } const experimentName = _.get(saveExperimentResponse, 'result.name', ''); const saveRunResponse = await experiments.createRun(options.project || profile.project, profile.token, experimentName); - if (!saveRunResponse.success) { - if (saveRunResponse.details) { - printErrorDetails(saveRunResponse); - return; - } - printError(JSON.stringify(saveRunResponse)); - return; - } const runId = _.get(saveRunResponse, 'result.runId', ''); const contentType = _.get(options, 'contentType', 'application/octet-stream'); - const uploadArtifactResponse = await experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, model.filePath, model.artifact, contentType); - if (uploadArtifactResponse.success) { - printSuccess('Artifact successfully uploaded.', options); - printSuccess(JSON.stringify(saveRunResponse.result, null, 2), options); - return; - } - printError(`Failed to upload Artifact: ${uploadArtifactResponse.status} ${uploadArtifactResponse.message}`, options); + await experiments.uploadArtifact(options.project || profile.project, profile.token, experimentName, runId, model.filePath, model.artifact, contentType); + printSuccess('Artifact successfully uploaded.', options); + printSuccess(JSON.stringify(saveRunResponse.result, null, 2), options); } catch (err) { - printError(`Failed to upload model: ${err.status} ${err.message}`, options); + handleError(err, options, 'Failed to upload model'); } } } diff --git a/src/commands/pipelineRepositories.js b/src/commands/pipelineRepositories.js index d7c55234..28fb1a8b 100644 --- a/src/commands/pipelineRepositories.js +++ b/src/commands/pipelineRepositories.js @@ -5,7 +5,15 @@ import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Pipelines from '../client/pipelineRepositories.js'; import { - fileExists, printSuccess, printError, parseObject, handleTable, printExtendedLogs, handleListFailure, handleDeleteFailure, getFilteredOutput, printCrossTable, + fileExists, + printSuccess, + printError, + parseObject, + handleTable, + printExtendedLogs, + getFilteredOutput, + printCrossTable, + handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -35,13 +43,10 @@ export const SavePipelineRepoCommand = class { const repo = new Pipelines(profile.url); try { - const response = await repo.savePipelineRepo(options.project || profile.project, profile.token, repoObj); - if (response.success) { + await repo.savePipelineRepo(options.project || profile.project, profile.token, repoObj); return printSuccess('Pipeline Repository saved', options); - } - return printError(`Failed to save pipeline repository: ${response.status} ${response.message}`, options); } catch (err) { - return printError(`Failed to save pipeline repository: ${err.response.body.message}`, options); + return handleError(err, options, 'Failed to save pipeline repository'); } } }; @@ -57,7 +62,6 @@ export const ListPipelineRepoCommand = class { const repos = new Pipelines(profile.url); try { const response = await repos.listPipelineRepo(options.project || profile.project, profile.token, options.filter, options.limit, options.skip, options.sort); - if (response.success) { const result = response.pipelineRepositories; if (options.json) { return getFilteredOutput(result, options); @@ -71,8 +75,6 @@ export const ListPipelineRepoCommand = class { { column: 'Author', field: 'createdBy', width: 22 }, ]; return handleTable(tableSpec, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No pipeline repositories found'); - } - return handleListFailure(response, options, 'Pipeline Repositories'); } catch (err) { return printError(`Failed to list pipeline repositories: ${err.status} ${err.message}`, options); } @@ -90,12 +92,9 @@ export const DescribePipelineRepoCommand = class { const repos = new Pipelines(profile.url); try { const response = await repos.describePipelineRepo(options.project || profile.project, profile.token, pipelineRepoName); - if (response.success) { - return getFilteredOutput(response.pipelineRepository, options); - } - return printError(`Failed to describe pipeline repository: ${response.status} ${response.message}`, options); + return getFilteredOutput(response.pipelineRepository, options); } catch (err) { - return printError(`Failed to describe pipeline repository: ${err.status} ${err.message}`, options); + return handleError(err, options, 'Failed to describe pipeline repository'); } } }; @@ -111,12 +110,9 @@ export const DeletePipelineRepoCommand = class { const repos = new Pipelines(profile.url); try { const response = await repos.deletePipelineRepo(options.project || profile.project, profile.token, pipelineRepoName); - if (response.success) { - return printSuccess(response?.message ?? response, options); - } - return handleDeleteFailure(response, options, 'Pipeline Repository'); + return printSuccess(response?.message ?? response, options); } catch (err) { - return printError(`Failed to delete pipeline repository: ${err.status} ${err.message}`, options); + return handleError(err, { ...options, tableformat: 'DEPENDENCYTABLEFORMAT' }, 'Failed to delete pipeline repository'); } } }; diff --git a/src/commands/pipelines.js b/src/commands/pipelines.js index 27ed2dc3..dbe39670 100644 --- a/src/commands/pipelines.js +++ b/src/commands/pipelines.js @@ -5,18 +5,17 @@ import _ from 'lodash'; import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Pipelines from '../client/pipelines.js'; -import { - printError, - handleTable, - printExtendedLogs, - handleListFailure, - getFilteredOutput, - parseObject, - filterObject, - getQueryOptions, - printSuccess, - printTable, - printWarning, +import { + printError, + handleTable, + printExtendedLogs, + getFilteredOutput, + parseObject, + filterObject, + getQueryOptions, + printSuccess, + printTable, + printWarning, handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -39,9 +38,7 @@ export const ListPipelineCommand = class { if (options.repo && options.filter) { printWarning('WARNING: --repo and --filter options are incompatible! The --filter option will be used', options); } - const response = await pipelines.listPipelines(options.project || profile.project, profile.token, filter, options.limit, options.skip, options.sort); - if (response.success) { - const result = response.pipelines; + const { pipelines: result } = await pipelines.listPipelines(options.project || profile.project, profile.token, filter, options.limit, options.skip, options.sort); if (options.json) { return getFilteredOutput(result, options); } @@ -54,10 +51,8 @@ export const ListPipelineCommand = class { { column: 'Author', field: 'createdBy', width: 22 }, ]; return handleTable(tableSpec, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No pipelines found'); - } - return handleListFailure(response, options, 'Pipelines'); } catch (err) { - return printError(`Failed to list pipelines: ${err.status} ${err.message}`, options); + return handleError(err, options, 'Failed to list pipelines'); } } }; @@ -73,12 +68,9 @@ export const DescribePipelineCommand = class { const pipelines = new Pipelines(profile.url); try { const response = await pipelines.describePipeline(options.project || profile.project, profile.token, pipelineName, gitRepoName, options.sha); - if (response.success) { - return getFilteredOutput(response.pipeline, options); - } - return printError(`Failed to describe pipeline: ${response.status} ${response.message}`, options); + return getFilteredOutput(response.pipeline, options); } catch (err) { - return printError(`Failed to describe pipeline: ${err.status} ${err.message}`, options); + return handleError(err, options, 'Failed to describe pipeline'); } } }; @@ -88,19 +80,20 @@ export const RunPipelineCommand = class { this.program = program; } + // eslint-disable-next-line consistent-return async execute(pipelineName, gitRepoName, options) { const profile = await loadProfile(options.profile); debug('%s.executeRunPipeline(%s)', profile.name, pipelineName); let params = {}; if (options.params) { - try { - params = parseObject(options.params, options); - } catch (e) { - printError(`Failed to parse params: ${options.params}. Error: ${e}`, options); - } + try { + params = parseObject(options.params, options); + } catch (e) { + return printError(`Failed to parse params: ${options.params} Error: ${e}`, options); + } } else if (options.paramsFile) { if (!fs.existsSync(options.paramsFile)) { - printError(`File does not exist at: ${options.paramsFile}`, options); + return printError(`File does not exist at: ${options.paramsFile}`, options); } const paramsStr = fs.readFileSync(options.paramsFile); params = parseObject(paramsStr, options); @@ -108,11 +101,6 @@ export const RunPipelineCommand = class { const pipelines = new Pipelines(profile.url); try { const response = await pipelines.runPipeline(options.project || profile.project, profile.token, pipelineName, gitRepoName, params, options); - if (!response.success) { - printError(`Failed to run pipeline: ${response.status} ${response.message}`, options); - return; - } - // Prefer 'runId' but support 'activationId' as a fallback if (response?.activationId) { response.runId = response?.runId || response?.activationId; @@ -120,15 +108,17 @@ export const RunPipelineCommand = class { } if (options.json) { - getFilteredOutput(response, options); - } else if (response?.runId) { - printSuccess(`Pipeline Run Submitted!\n\nUse "cortex pipelines describe-run ${response.runId}" to inspect the Pipeline Run`); - } else if (response?.message) { + return getFilteredOutput(response, options); + } + if (response?.runId) { + return printSuccess(`Pipeline Run Submitted!\n\nUse "cortex pipelines describe-run ${response.runId}" to inspect the Pipeline Run`); + } + if (response?.message) { // Print the message from server - expected when a Pipeline is scheduled - printSuccess(response.message); + return printSuccess(response.message); } } catch (err) { - printError(`Failed to run pipeline: ${err.status} ${err.message}`, options); + return handleError(err, options, 'Failed to run pipeline'); } } }; @@ -181,7 +171,6 @@ export const DescribePipelineRunCommand = class { const pipelines = new Pipelines(profile.url); try { const response = await pipelines.describePipelineRun(options.project || profile.project, profile.token, runId); - if (response.success) { if (options.json) { getFilteredOutput(response, options); } else { @@ -203,11 +192,8 @@ export const DescribePipelineRunCommand = class { printSuccess('Details:'); printTable(tableSpec, _.sortBy(blocks, ['start', 'end'])); } - } else { - printError(`Failed to desribe pipeline run ${runId}: ${response.message}`, options); - } } catch (err) { - printError(`Failed to describe pipeline run ${runId}: ${err.status} ${err.message}`, options); + handleError(err, options, `Failed to describe pipeline run ${runId}`, options); } } }; @@ -224,7 +210,6 @@ export const ListPipelineRunsCommand = class { try { const response = await pipelines.listPipelineRuns(options.project || profile.project, profile.token, pipelineName, gitRepoName, options.limit, options.skip, options.sort, options.filter); - if (response.success) { const result = response.activations; // TODO remove --query on deprecation if (options.json || options.query) { @@ -251,10 +236,8 @@ export const ListPipelineRunsCommand = class { name: genName(o), start: o.start ? dayjs(o.start).fromNow() : '-', })), null, 'No pipeline runs found'); - } - return handleListFailure(response, options, 'PipelineRuns'); } catch (err) { - return printError(`Failed to list pipelne runs: ${err.status} ${err.message}`, options); + return handleError(err, options, 'Failed to list pipelne runs'); } } }; diff --git a/src/commands/roles.js b/src/commands/roles.js index da9f2955..f9df63ac 100644 --- a/src/commands/roles.js +++ b/src/commands/roles.js @@ -2,7 +2,7 @@ import debugSetup from 'debug'; import { loadProfile } from '../config.js'; import Roles from '../client/roles.js'; import { - printSuccess, printError, filterObject, EXTERNALROLESFORMAT, handleTable, getFilteredOutput, + printSuccess, printError, filterObject, EXTERNALROLESFORMAT, handleTable, getFilteredOutput, handleError, } from './utils.js'; /* * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. @@ -37,17 +37,13 @@ export const RoleDeleteCommand = class { const profile = await loadProfile(options.profile); debug('%s.deleteRole(%s)', profile.name, role); const client = new Roles(profile.url, role); - client.deleteRole(profile.token).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to delete role : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete role : ${err.status} ${err.message}`, options); - }); + try { + const response = await client.deleteRole(profile.token); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to delete role'); + } } }; export const RoleCreateCommand = class { @@ -61,17 +57,13 @@ export const RoleCreateCommand = class { form.role = role; debug('%s.createRole(%s)', profile.name); const client = new Roles(profile.url); - client.createRole(profile.token, form).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to create role : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to create role : ${err.status} ${err.message}`, options); - }); + try { + const response = await client.createRole(profile.token, form); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to create role'); + } } }; export const RoleAssignCommand = class { @@ -89,19 +81,14 @@ export const RoleAssignCommand = class { } return client.addUsersToRole(token, users); }; - call(options.delete, profile.token, options.users).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} user from role : ${response.message}`, options); - } - }) - .catch((err) => { + try { + const response = await call(options.delete, profile.token, options.users); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { const func = (options.delete) ? 'unassign' : 'assign'; printError(`Failed to ${func} user from role : ${err.status} ${err.message}`, options); - }); + } } }; export const RoleGrantCommand = class { @@ -120,19 +107,14 @@ export const RoleGrantCommand = class { } return client.createGrantForRole(token, body); }; - call(options.delete, profile.token, form).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const func = (options.delete) ? 'delete' : 'create'; - printError(`Failed to ${func} grant for role : ${response.message}`, options); - } - }) - .catch((err) => { + try { + const response = await call(options.delete, profile.token, form); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { const func = (options.delete) ? 'delete' : 'create'; - printError(`Failed to ${func} grant for role : ${err.status} ${err.message}`, options); - }); + handleError(err, options, `Failed to ${func} grant for role`); + } } }; export const RoleDescribeCommand = class { @@ -151,17 +133,13 @@ export const RoleDescribeCommand = class { flags.push('users'); } const client = new Roles(profile.url, role, flags); - client.describeRole(profile.token).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe role : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe role : ${err.status} ${err.message}`, options); - }); + try { + const response = await client.describeRole(profile.token); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to describe role'); + } } }; export const RoleListCommand = class { @@ -174,22 +152,18 @@ export const RoleListCommand = class { debug('%s.listRole(%s)', profile.name); const flags = []; const client = new Roles(profile.url, flags); - client.listRoles(profile.token, options.project).then((response) => { - if (response.success) { - const { result } = response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - handleTable([{ column: 'Role', field: 'role' }], result.roles.map((x) => ({ role: x })), null, 'No roles found'); - } - } else { - printError(`Failed to list roles : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list roles : ${err.status} ${err.message}`, options); - }); + try { + const response = await client.listRoles(profile.token, options.project); + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); + } else { + handleTable([{ column: 'Role', field: 'role' }], result.roles.map((x) => ({ role: x })), null, 'No roles found'); + } + } catch (err) { + handleError(err, options, 'Failed to list roles'); + } } }; export const RoleProjectAssignCommand = class { @@ -207,19 +181,14 @@ export const RoleProjectAssignCommand = class { } return client.addRolesToProject(token, assignProject, roles); }; - call(options.delete, profile.token, project, options.roles).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} roles from project : ${response.message}`, options); - } - }) - .catch((err) => { + try { + const response = await call(options.delete, profile.token, project, options.roles); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} roles from project : ${err.status} ${err.message}`, options); - }); + handleError(err, options, `Failed to ${func} roles from project`); + } } }; export const ExternalGroupListCommand = class { @@ -231,22 +200,18 @@ export const ExternalGroupListCommand = class { const profile = await loadProfile(options.profile); debug('%s.listExternalGroup(%s)', profile.name); const client = new Roles(profile.url, null); - client.listExternalGroups(profile.token).then((response) => { - if (response.success) { - const { result } = response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - handleTable(EXTERNALROLESFORMAT, result, (o) => ({ ...o, roles: o.roles.join(', ') }), null, 'No external roles found'); - } - } else { - printError(`Failed to list external groups : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to list external groups : ${err.status} ${err.message}`, options); - }); + try { + const response = await client.listExternalGroups(profile.token); + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); + } else { + handleTable(EXTERNALROLESFORMAT, result, (o) => ({ ...o, roles: o.roles.join(', ') }), null, 'No external roles found'); + } + } catch (err) { + handleError(err, options, 'Failed to list external groups'); + } } }; export const ExternalGroupDescribeCommand = class { @@ -265,17 +230,13 @@ export const ExternalGroupDescribeCommand = class { flags.push('users'); } const client = new Roles(profile.url, null, flags); - client.describeExternalGroup(profile.token, externalGroup).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe external group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe external group : ${err.status} ${err.message}`, options); - }); + try { + const response = await client.describeExternalGroup(profile.token, externalGroup); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to describe external group'); + } } }; export const ExternalGroupDeleteCommand = class { @@ -287,17 +248,13 @@ export const ExternalGroupDeleteCommand = class { const profile = await loadProfile(options.profile); debug('%s.deleteExternalGroup(%s)', profile.name, externalGroup); const client = new Roles(profile.url, null); - client.deleteExternalGroup(profile.token, externalGroup).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to delete external group : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete external group : ${err.status} ${err.message}`, options); - }); + try { + const response = await client.deleteExternalGroup(profile.token, externalGroup); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to delete external group'); + } } }; export const ExternalGroupAssignCommand = class { @@ -315,18 +272,13 @@ export const ExternalGroupAssignCommand = class { } return client.addExternalGroupToRole(token, externalGroup); }; - call(options.delete, profile.token, options.externalGroup).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} external group from role : ${response.message}`, options); - } - }) - .catch((err) => { + try { + const response = await call(options.delete, profile.token, options.externalGroup); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} external group from role : ${err.status} ${err.message}`, options); - }); + handleError(err, options, `Failed to ${func} external group from role`); + } } }; diff --git a/src/commands/secrets.js b/src/commands/secrets.js index 881d6d1d..304c9c0e 100644 --- a/src/commands/secrets.js +++ b/src/commands/secrets.js @@ -6,7 +6,7 @@ import map from 'lodash/fp/map.js'; import { loadProfile } from '../config.js'; import Secrets from '../client/secrets.js'; import { - printSuccess, printError, filterObject, parseObject, printTable, handleTable, handleDeleteFailure, getFilteredOutput, + printSuccess, printError, filterObject, parseObject, printTable, handleTable, getFilteredOutput, handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -19,26 +19,24 @@ export const ListSecretsCommand = class { const profile = await loadProfile(options.profile); debug('%s.listsecrets(%s)', profile.name); const secrets = new Secrets(profile.url); - secrets.listSecrets(options.project || profile.project, profile.token) - .then((response) => { - if (response.success) { - const { result } = response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - const tableSpec = [ - { column: 'Secret Key Name', field: 'keyName', width: 50 }, - ]; - handleTable(tableSpec, map((x) => ({ keyName: x }), result), null, 'No secrets found'); - } + try { + const result = await secrets.listSecrets(options.project || profile.project, profile.token); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - printError(`Failed to list secrets: ${response.message}`, options); + const tableSpec = [ + { + column: 'Secret Key Name', + field: 'keyName', + width: 50, + }, + ]; + handleTable(tableSpec, map((x) => ({ keyName: x }), result), null, 'No secrets found'); } - }) - .catch((err) => { - printError(`Failed to list secrets : ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list secrets'); + } } }; export const ReadSecretsCommand = class { @@ -50,9 +48,9 @@ export const ReadSecretsCommand = class { const profile = await loadProfile(options.profile); debug('%s.readsecret(%s)', profile.name, keyName); const secrets = new Secrets(profile.url); - secrets.readSecret(options.project || profile.project, profile.token, keyName).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); + try { + const response = await secrets.readSecret(options.project || profile.project, profile.token, keyName); + const result = filterObject(response, options); if (options.json) printSuccess(JSON.stringify(result, null, 2), options); else { const tableSpec = [ @@ -61,13 +59,9 @@ export const ReadSecretsCommand = class { ]; printTable(tableSpec, [{ keyName, value: JSON.stringify(getOr(undefined, 'value', result), null, 2) }]); } - } else { - printError(`Failed to read secure secret : ${response.message}`, options); + } catch (err) { + handleError(err, options, 'Failed to read secure secret'); } - }) - .catch((err) => { - printError(`Failed to read secure secret : ${err.status} ${err.message}`, options); - }); } }; export const WriteSecretsCommand = class { @@ -98,15 +92,12 @@ export const WriteSecretsCommand = class { return printError(`Failed to write secret : keyName did not conform to regex ${JSON.stringify(invalidCharsRegex)}`, options); } const secrets = new Secrets(profile.url); - return secrets.writeSecret(options.project || profile.project, profile.token, keyName, data).then((response) => { - if (response.success) { - return printSuccess(response.message, options); - } - return printError(`Failed to write secret: ${response.status} ${response.message}`, options); - }) - .catch((err) => { - printError(`Failed to write secret : ${err.status} ${err.message}`, options); - }); + try { + const response = secrets.writeSecret(options.project || profile.project, profile.token, keyName, data); + return printSuccess(response.message, options); + } catch (err) { + return handleError(err, options, 'Failed to write secret'); + } } }; export const DeleteSecretCommand = class { @@ -120,16 +111,9 @@ export const DeleteSecretCommand = class { const secretsClient = new Secrets(profile.url); try { const response = await secretsClient.deleteSecret(options.project || profile.project, profile.token, keyName); - if (response.success) { - return printSuccess(response?.message ?? response, options); - } - return handleDeleteFailure(response, options, 'Secret'); + printSuccess(response?.message ?? response, options); } catch (err) { - let message = err?.message; - if (err?.response?.body) { - message = JSON.parse(err?.response?.body)?.message ?? err.message; - } - return printError(`Secret deletion failed: ${err?.response?.statusCode ?? ''} ${message}.`, options); + handleError(err, options, `Secret "${keyName}" deletion failed`); } } }; diff --git a/src/commands/sessions.js b/src/commands/sessions.js index 9c0adbfc..990e7a1f 100644 --- a/src/commands/sessions.js +++ b/src/commands/sessions.js @@ -4,9 +4,9 @@ import debugSetup from 'debug'; import { loadProfile } from '../config.js'; import Sessions from '../client/sessions.js'; import { - SESSIONTABLEFORMAT, handleListFailure, getFilteredOutput, + SESSIONTABLEFORMAT, getFilteredOutput, - printSuccess, printError, filterObject, parseObject, handleTable, printErrorDetails, + printSuccess, printError, filterObject, parseObject, handleTable, handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -24,21 +24,13 @@ export class SaveSessionCommand { const sessionDefStr = fs.readFileSync(sessionDefinition); const session = parseObject(sessionDefStr, options); debug('%o', session); - const sessions = new Sessions(profile.url); - sessions.saveSession(options.project || profile.project, profile.token, session).then((response) => { - if (response.success) { - printSuccess(_.get(response, 'message.message', 'Session saved'), options); - } else if (response.details) { - console.log(`Failed to save session: ${response.status} ${response.message}`); - printErrorDetails(response, options); - printError(''); // Just exit - } else { - printError(JSON.stringify(response)); - } - }) - .catch((err) => { - printError(`Failed to save session: ${err.status} ${err.message}`, options); - }); + try { + const sessions = new Sessions(profile.url); + const response = await sessions.saveSession(options.project || profile.project, profile.token, session); + printSuccess(_.get(response, 'message.message', 'Session saved'), options); + } catch (err) { + handleError(err, options, 'Failed to save session'); + } } } export class ListSessionsCommand { @@ -50,21 +42,16 @@ export class ListSessionsCommand { const profile = await loadProfile(options.profile); debug('%s.executeListSessions()', profile.name); const sessions = new Sessions(profile.url); - sessions.listSessions(options.project || profile.project, profile.token, options.limit).then((response) => { - if (response.success) { - const result = response.sessions; - // TODO remove --query on deprecation - if (options.json || options.query) { - return getFilteredOutput(result, options); - } - return handleTable(SESSIONTABLEFORMAT, result, null, 'No sessions found'); + try { + const { sessions: result } = await sessions.listSessions(options.project || profile.project, profile.token, options.limit); + // TODO remove --query on deprecation + if (options.json || options.query) { + return getFilteredOutput(result, options); } - return handleListFailure(response, options, 'Sessions'); - }) - .catch((err) => { - debug(err); - printError(`Failed to list sessions: ${err.status} ${err.message}`, options); - }); + return handleTable(SESSIONTABLEFORMAT, result, null, 'No sessions found'); + } catch (err) { + return handleError(err, options, 'Failed to list sessions'); + } } } export class DescribeSessionCommand { @@ -76,16 +63,12 @@ export class DescribeSessionCommand { const profile = await loadProfile(options.profile); const sessions = new Sessions(profile.url); debug('%s.executeDescribeSession(%s)', profile.name, sessionName); - sessions.describeSession(options.project || profile.project, profile.token, sessionName, options.verbose).then((response) => { - if (response.success) { - getFilteredOutput(response.session, options); - } else { - printError(`Failed to describe session ${sessionName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe session ${sessionName}: ${err.status} ${err.message}`, options); - }); + try { + const response = await sessions.describeSession(options.project || profile.project, profile.token, sessionName, options.verbose); + getFilteredOutput(response.session, options); + } catch (err) { + handleError(err, options, `Failed to describe session ${sessionName}`); + } } } export class DeleteSessionCommand { @@ -97,17 +80,12 @@ export class DeleteSessionCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeleteSession(%s)', profile.name, sessionName); const sessions = new Sessions(profile.url); - sessions.deleteSession(options.project || profile.project, profile.token, sessionName) - .then((response) => { - if (response && response.success) { - const result = filterObject(response, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Session deletion failed: ${response.status} ${response.message}.`, options); - } - }) - .catch((err) => { - printError(`Failed to delete session: ${err.status} ${err.message}`, options); - }); + try { + const response = await sessions.deleteSession(options.project || profile.project, profile.token, sessionName); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to delete session'); + } } } diff --git a/src/commands/skills.js b/src/commands/skills.js index 55cd3ead..a90ff8b2 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -17,7 +17,6 @@ import { isNumeric, handleTable, printExtendedLogs, - handleDeleteFailure, getFilteredOutput, writeOutput, printErrorDetails, handleError, } from './utils.js'; @@ -66,16 +65,10 @@ export class SaveSkillCommand { skill.actions.map((a) => a.podSpec = podSpec); } const response = await catalog.saveSkill(options.project || profile.project, profile.token, skill); - if (response.success) { - printSuccess(`Skill saved: ${JSON.stringify(response.message)}`, options); - } else { - console.log(`Failed to save skill: ${response.message}`); - printErrorDetails(response, options); - printError(''); // Just exit - } + printSuccess(`Skill saved: ${JSON.stringify(response.message)}`, options); })); } catch (err) { - printError(`Failed to save skill: ${_.get(err, 'status', '')} ${_.get(err, 'response.body.error', err.message)}`, options); + handleError(err, options, 'Failed to save skill'); } } } @@ -91,11 +84,11 @@ export class ListSkillsCommand { try { const status = !_.get(options, 'nostatus', false); // default show status, if nostatus==true status == false const shared = !_.get(options, 'noshared', false); - const response = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort); - let result = response.skills; + const { skills } = await catalog.listSkills(options.project || profile.project, profile.token, { status, shared }, options.filter, options.limit, options.skip, options.sort); const tableFormat = LISTTABLEFORMAT; + let result = skills; if (options.nostatus === undefined) { - result = result.map((skillStat) => { + result = skills.map((skillStat) => { const statuses = _.isEmpty(skillStat.actionStatuses) ? skillStat.deployStatus : skillStat.actionStatuses.map((s) => `${s.name}: ${s.state}`).join(' '); return { ...skillStat, @@ -130,7 +123,7 @@ export class DescribeSkillCommand { const catalog = new Catalog(profile.url); try { const response = await catalog.describeSkill(project || profile.project, profile.token, skillName, verbose, output); - if ((options?.output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); + if ((output ?? 'json').toLowerCase() === 'json') return getFilteredOutput(response, options); return writeOutput(response, options); } catch (err) { return printError(`Failed to describe skill ${skillName}: ${err.status} ${err.message}`, options); @@ -178,14 +171,10 @@ export class SkillLogsCommand { } catch (err) { printSuccess(response, options); } - } else if (response.success) { - printSuccess(JSON.stringify(response.logs), options); - } else { - printError(`Failed to fetch Skill/Action Logs ${skillName}/${actionName}: ${response.body.message}`, options); + printSuccess(JSON.stringify(response.logs), options); } } catch (err) { - const { status, message } = constructError(err); - printError(`Failed to fetch Skill/Action Logs ${skillName}/${actionName}: ${status} ${message}`, options); + handleError(err, options, `Failed to fetch Skill/Action Logs ${skillName}/${actionName}`); } } } @@ -258,19 +247,15 @@ export class DeleteSkillCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeleteSkill(%s)', profile.name, skillName); const catalog = new Catalog(profile.url); - catalog.deleteSkill(options.project || profile.project, profile.token, skillName) - .then((response) => { - if (response.success) { - const result = filterObject(response, options); - if (options.json) { - return printSuccess(JSON.stringify(result, null, 2), options); - } - return printSuccess(result.message); + try { + const response = await catalog.deleteSkill(options.project || profile.project, profile.token, skillName); + const result = filterObject(response, options); + if (options.json) { + return printSuccess(JSON.stringify(result, null, 2), options); } - return handleDeleteFailure(response, options, 'Skill'); - }) - .catch((err) => { - printError(`Failed to delete skill: ${err.status} ${err.message}`, options); - }); + return printSuccess(result.message); + } catch (err) { + return handleError(err, { ...options, tableformat: 'DEPENDENCYTABLEFORMAT' }, `Failed to delete skill ${skillName}`); + } } } diff --git a/src/commands/tasks.js b/src/commands/tasks.js index df348729..b1026455 100644 --- a/src/commands/tasks.js +++ b/src/commands/tasks.js @@ -5,7 +5,7 @@ import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Tasks from '../client/tasks.js'; import { - printSuccess, printError, handleTable, printExtendedLogs, getFilteredOutput, handleListFailure, + printSuccess, printError, handleTable, printExtendedLogs, getFilteredOutput, handleListFailure, handleError, } from './utils.js'; /* * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. @@ -115,12 +115,9 @@ export const DescribeTaskCommand = class { const tasks = new Tasks(profile.url); try { const response = await tasks.getTask(options.project || profile.project, taskName, profile.token, queryParams); - if (response.success === false) { - return printError(`Failed to describe task ${taskName}: ${response.message}`); - } return printSuccess(JSON.stringify(response, null, 2), options); } catch (err) { - return printError(`Failed to fetch task ${taskName}: ${err.status} ${err.message}`, options); + return handleError(err, options, `Failed to describe task ${taskName}`); } } }; @@ -139,7 +136,7 @@ export class TaskLogsCommand { const response = await tasks.taskLogs(options.project || profile.project, profile.token, taskName, isFollow, options.verbose); if (isFollow) { - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { response.on('data', (chunk) => { let data; try { @@ -153,9 +150,9 @@ export class TaskLogsCommand { // Extract the data part of SSE event eventData = edl.substring(5).trim(); } - + let parsedEventData = JSON.parse(eventData); - + if (typeof parsedEventData === 'string' && parsedEventData.startsWith('{')) { parsedEventData = JSON.parse(parsedEventData); } @@ -170,7 +167,7 @@ export class TaskLogsCommand { printError(`${e.message}`, options); } }); - + response.on('error', (error) => reject(error)); response.on('end', () => resolve()); @@ -180,10 +177,10 @@ export class TaskLogsCommand { if (response.success) { return printSuccess(response.logs, options); } - return printError(`Failed to List Task Logs "${taskName}": ${response.message}`, options); + return printError(`Failed to List Task Logs "${taskName}": ${response.message}`, options); } } catch (err) { - return printError(`Failed to query Task Logs "${taskName}": ${err.status} ${err.message}`, options); + return printError(err, options, `Failed to query Task Logs "${taskName}"`); } } } @@ -198,12 +195,9 @@ export class TaskDeleteCommand { const tasks = new Tasks(profile.url); try { const response = await tasks.deleteTask(options.project || profile.project, profile.token, taskName, options.verbose); - if (response.success) { - return printSuccess(JSON.stringify(response), options); - } - return printError(`Failed to delete ${taskName}: ${response.message}`, options); + return printSuccess(JSON.stringify(response), options); } catch (err) { - return printError(`Error deleting ${taskName}: ${err.status} ${err.message}`, options); + return handleError(err, options, `Error deleting ${taskName}`); } } } @@ -219,13 +213,10 @@ export class TaskPauseCommand { try { return Promise.all(taskNames.map(async (taskName) => { const response = await tasks.pauseTask(options.project || profile.project, profile.token, taskName, options.verbose); - if (response.success) { return printSuccess(JSON.stringify(response), options); - } - return printError(`Failed to pause "${taskName}": ${response.message}`, options); })); } catch (err) { - return printError(`Error pausing "${taskNames.join(',')}": ${err.status} ${err.message}`, options); + return handleError(err, options, `Error pausing "${taskNames.join(',')}"`); } } } @@ -241,13 +232,10 @@ export class TaskResumeCommand { try { return Promise.all(taskNames.map(async (taskName) => { const response = await tasks.resumeTask(options.project || profile.project, profile.token, taskName, options.verbose); - if (response.success) { - return printSuccess(JSON.stringify(response), options); - } - return printError(`Failed to resume task "${taskName}": ${response.message}`, options); + return printSuccess(JSON.stringify(response), options); })); } catch (err) { - return printError(`Error resume tasks "${taskNames.join(',')}": ${err.status} ${err.message}`, options); + return handleError(err, options, `Error resume tasks "${taskNames.join(',')}`); } } } diff --git a/src/commands/types.js b/src/commands/types.js index 4ab51f66..28e1eb83 100644 --- a/src/commands/types.js +++ b/src/commands/types.js @@ -5,9 +5,9 @@ import relativeTime from 'dayjs/plugin/relativeTime.js'; import { loadProfile } from '../config.js'; import Catalog from '../client/catalog.js'; import { - LISTTABLEFORMAT, filterObject, printExtendedLogs, handleListFailure, getFilteredOutput, handleDeleteFailure, + LISTTABLEFORMAT, filterObject, printExtendedLogs, getFilteredOutput, - printSuccess, printError, parseObject, handleTable, + printSuccess, parseObject, handleTable, handleError, } from './utils.js'; const debug = debugSetup('cortex:cli'); @@ -28,13 +28,10 @@ export class SaveTypeCommand { if (!('types' in type)) normalizedType.types = [type]; else normalizedType = type; const catalog = new Catalog(profile.url); - const response = await catalog.saveType(options.project || profile.project, profile.token, normalizedType); - if (response.success) { - return printSuccess('Type definition saved', options); - } - return printError(`${response.message}: ${JSON.stringify(response.details || '')} `); + await catalog.saveType(options.project || profile.project, profile.token, normalizedType); + return printSuccess('Type definition saved', options); } catch (err) { - return printError(`Failed to save type: ${err.status} ${err.message}`, options); + return handleError(err, options, 'Failed to save type'); } } } @@ -43,29 +40,22 @@ export class ListTypesCommand { this.program = program; } - // eslint-disable-next-line consistent-return async execute(options) { const profile = await loadProfile(options.profile); debug('%s.executeListTypes()', profile.name); const catalog = new Catalog(profile.url); - // eslint-disable-next-line consistent-return - catalog.listTypes(options.project || profile.project, profile.token, options.limit, options.skip, options.sort).then((response) => { - if (response.success) { - const result = response.types; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - printExtendedLogs(result, options); - handleTable(LISTTABLEFORMAT, result, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No types found'); + try { + const { types } = await catalog.listTypes(options.project || profile.project, profile.token, options.limit, options.skip, options.sort); + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(types, options); + } else { + printExtendedLogs(types, options); + handleTable(LISTTABLEFORMAT, types, (o) => ({ ...o, updatedAt: o.updatedAt ? dayjs(o.updatedAt).fromNow() : '-' }), 'No types found'); } - } else { - return handleListFailure(response, options, 'Types'); - } - }) - .catch((err) => { - printError(`Failed to list types: ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list types'); + } } } export class DescribeTypeCommand { @@ -77,18 +67,15 @@ export class DescribeTypeCommand { const profile = await loadProfile(options.profile); debug('%s.executeDescribeType(%s)', profile.name, typeName); const catalog = new Catalog(profile.url); - catalog.describeType(options.project || profile.project, profile.token, typeName).then((response) => { - if (response.success) { - getFilteredOutput(response.type, options); - } else { - printError(`Failed to describe type ${typeName}: ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to describe type ${typeName}: ${err.status} ${err.message}`, options); - }); + try { + const response = await catalog.describeType(options.project || profile.project, profile.token, typeName); + getFilteredOutput(response, options); + } catch (err) { + handleError(err, options, `Failed to describe type ${typeName}`); + } } } + export class DeleteTypeCommand { constructor(program) { this.program = program; @@ -98,15 +85,12 @@ export class DeleteTypeCommand { const profile = await loadProfile(options.profile); debug('%s.executeDeleteType(%s)', profile.name, typeName); const catalog = new Catalog(profile.url); - catalog.deleteType(options.project || profile.project, profile.token, typeName).then((response) => { - if (response.success) { - const result = filterObject(response.type, options); - return printSuccess(JSON.stringify(result, null, 2), options); - } - return handleDeleteFailure(response, options, 'Types'); - }) - .catch((err) => { - printError(`Failed to delete type ${typeName}: ${err.status} ${err.message}`, options); - }); + try { + const response = await catalog.deleteType(options.project || profile.project, profile.token, typeName); + const result = filterObject(response, options); + return printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + return handleError(err, options, `Failed to delete type ${typeName}`); + } } } diff --git a/src/commands/users.js b/src/commands/users.js index 88ec9de0..191d22bb 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -2,7 +2,7 @@ import debugSetup from 'debug'; import { loadProfile } from '../config.js'; import Users from '../client/users.js'; import { - printSuccess, printError, printWarning, filterObject, handleTable, getFilteredOutput, + printSuccess, printError, printWarning, filterObject, handleTable, getFilteredOutput, handleError, } from './utils.js'; /* * Copyright 2023 Cognitive Scale, Inc. All Rights Reserved. @@ -38,25 +38,20 @@ export const UserGrantCommand = class { const form = createGrant(options); debug('%s.grantUser(%s)', profile.name, user || 'self'); const client = new Users(profile.url, user); - const call = (deleteFlag, token, body) => { - if (deleteFlag) { - return client.removeGrantFromUser(token, body); - } - return client.createGrantForUser(token, body); - }; - call(options.delete, profile.token, form).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const func = (options.delete) ? 'delete' : 'create'; - printError(`Failed to ${func} grant for user : ${response.message}`, options); - } - }) - .catch((err) => { + try { + const call = (deleteFlag, token, body) => { + if (deleteFlag) { + return client.removeGrantFromUser(token, body); + } + return client.createGrantForUser(token, body); + }; + const response = await call(options.delete, profile.token, form); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { const func = (options.delete) ? 'delete' : 'create'; - printError(`Failed to ${func} grant for user : ${err.status} ${err.message}`, options); - }); + handleError(err, options, `Failed to ${func} grant for user`); + } } }; export const UserDeleteCommand = class { @@ -68,17 +63,13 @@ export const UserDeleteCommand = class { const profile = await loadProfile(options.profile); debug('%s.deleteServiceUser(%s)', profile.name, user); const client = new Users(profile.url, user); - client.deleteServiceUser(profile.token, user).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to delete user ${user} : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to delete user : ${err.status} ${err.message}`, options); - }); + try { + const response = await client.deleteServiceUser(profile.token, user); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to delete user'); + } } }; export const UserCreateCommand = class { @@ -90,17 +81,13 @@ export const UserCreateCommand = class { const profile = await loadProfile(options.profile); debug('%s.createServiceUser(%s)', profile.name, user); const client = new Users(profile.url, user); - client.createServiceUser(profile.token, user).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result.config, null), options); - } else { - printError(`Failed to create user ${user} : ${response.message}`, options); - } - }) - .catch((err) => { - printError(`Failed to create user : ${err.status} ${err.message}`, options); - }); + try { + const response = await client.createServiceUser(profile.token, user); + const result = filterObject(response, options); + printSuccess(JSON.stringify(result.config, null), options); + } catch (err) { + handleError(err, options, 'Failed to create user'); + } } }; export const UserListCommand = class { @@ -112,24 +99,24 @@ export const UserListCommand = class { const profile = await loadProfile(options.profile); debug('%s.listServiceUsers', profile.name); const client = new Users(profile.url, 'self'); - client.listServiceUsers(profile.token).then((response) => { - if (response.success) { - const { result } = response; - // TODO remove --query on deprecation - if (options.json || options.query) { - getFilteredOutput(result, options); - } else { - handleTable([{ column: 'User', field: 'user' }], result.users.map((x) => ({ user: x })), null, 'No service users found'); - } + try { + const response = await client.listServiceUsers(profile.token); + const { result } = response; + // TODO remove --query on deprecation + if (options.json || options.query) { + getFilteredOutput(result, options); } else { - printError(`Failed to list service users : ${response.message}`, options); + handleTable([{ + column: 'User', + field: 'user', + }], result.users.map((x) => ({ user: x })), null, 'No service users found'); } - }) - .catch((err) => { - printError(`Failed to list service users : ${err.status} ${err.message}`, options); - }); + } catch (err) { + handleError(err, options, 'Failed to list service users'); + } } }; + export const UserDescribeCommand = class { constructor(program) { this.program = program; @@ -155,14 +142,10 @@ export const UserDescribeCommand = class { const client = new Users(profile.url, user, flags); try { const response = await client.describeUser(profile.token); - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to describe user : ${response.message}`, options); - } + const result = filterObject(response, options); + printSuccess(JSON.stringify(result, null, 2), options); } catch (err) { - printError(`Failed to describe user : ${err.status} ${err.message}`, options); + handleError(err, options, 'Failed to describe user'); } } }; @@ -181,19 +164,14 @@ export const UserProjectAssignCommand = class { } return client.addUsersToProject(token, assignProject, users); }; - call(options.delete, profile.token, project, options.users).then((response) => { - if (response.success) { - const result = filterObject(response.result, options); - printSuccess(JSON.stringify(result, null, 2), options); - } else { - const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} users from project : ${response.message}`, options); - } - }) - .catch((err) => { + try { + const response = await call(options.delete, profile.token, project, options.users); + const result = filterObject(response.result, options); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { const func = (options.delete) ? 'unassign' : 'assign'; - printError(`Failed to ${func} users from project : ${err.status} ${err.message}`, options); - }); + handleError(err, options, `Failed to ${func} users from project`); + } } }; export const UserResetPATCommand = class { @@ -206,14 +184,12 @@ export const UserResetPATCommand = class { const { user } = options; debug('%s.UserResetPATCommand(%s)', profile.name, user); const client = new Users(profile.url, 'self'); - client.resetUserPAT(profile.token, user).then((response) => { - if (response.success) { - const { result } = response; - printSuccess(JSON.stringify(result, null, 2), options); - } else { - printError(`Failed to invalidate user PAT: ${response.message}`, options); - } - }); + try { + const result = await client.resetUserPAT(profile.token, user); + printSuccess(JSON.stringify(result, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to invalidate user PAT'); + } } }; export const UserGetPATCommand = class { @@ -226,13 +202,11 @@ export const UserGetPATCommand = class { const { user } = options; debug('%s.UserGetPATCommand(%s)', profile.name); const client = new Users(profile.url, 'self'); - client.getUserPAT(profile.token, user).then((response) => { - if (response.success) { - const { result } = response; - printSuccess(JSON.stringify(result.config, null, 2), options); - } else { - printError(`Failed to fetch user PAT: ${response.message}`, options); - } - }); + try { + const result = await client.getUserPAT(profile.token, user); + printSuccess(JSON.stringify(result.config, null, 2), options); + } catch (err) { + handleError(err, options, 'Failed to fetch user PAT'); + } } }; diff --git a/src/commands/utils.js b/src/commands/utils.js index d00e8ca4..84b8eb81 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -78,7 +78,7 @@ function _extractValues(fields, obj) { * @returns {Promise<*>} */ // eslint-disable-next-line require-await -export async function callMe(commandStr) { +export async function callMe(commandStr, stdoutHandler) { return new Promise((resolve, reject) => { const proc = exec(commandStr, (err, stdout) => { if (err) { @@ -87,8 +87,17 @@ export async function callMe(commandStr) { resolve(stdout); } }); - // Pipe stdout to stderr in real time: - proc.stdout.pipe(process.stderr); + if (stdoutHandler) { + proc.stdout.on('data', (data) => { + stdoutHandler(data); + }); + proc.stderr.on('data', (data) => { + stdoutHandler(data); + }); + } else { + // Pipe stdout to stderr in real time: + proc.stderr.pipe(process.stderr); + } }); } function round(value, precision) { @@ -420,6 +429,17 @@ export const EXTERNALROLESFORMAT = [ { column: 'Group', field: 'group' }, { column: 'Roles', field: 'roles' }, ]; + +const TABLEFORMATS = { + OPTIONSTABLEFORMAT, + LISTTABLEFORMAT, + CONNECTIONTABLEFORMAT, + SESSIONTABLEFORMAT, + RUNTABLEFORMAT, + DEPENDENCYTABLEFORMAT, + EXTERNALROLESFORMAT, +}; + export const generateNameFromTitle = (title) => title.replace(specialCharsExceptHyphen, '') .replace(space, '-') .replace(beginAndEndWithHyphen, '') @@ -568,51 +588,104 @@ export function checkForEmptyArgs(args) { }); } -/** - * Prints the normalized error object (see `@constructError()`), then exits the - * program. - */ -export function printNormalizedError(normedError, options, prefix = 'Error', exit = true) { - debug(normedError); - printError(`${prefix}: ${normedError.status}, ${normedError.message}`, undefined, false); - if (normedError.details !== undefined && normedError.details !== null) { - if (typeof normedError.details === 'string' || normedError.details instanceof String) { - // Print details if its a string, and exit - printError(normedError.details); - } else if (!Array.isArray(normedError.details)) { - // TSOA API validation error case - const transformedResponse = transformTSOAValidation(normedError.details); - if (transformedResponse !== null) { - // eslint-disable-next-line no-param-reassign - normedError.details = transformedResponse; - } - } - printTable(OPTIONSTABLEFORMAT, normedError.details); - } - if (exit) { - printError(''); // Just exit - } -} + +// /** +// * Prints the normalized error object (see `@constructError()`), then exits the +// * program. +// */ +// export function printNormalizedError(normedError, options, prefix = 'Error', exit = true) { +// debug(normedError); +// printError(`${prefix}: ${normedError.status}, ${normedError.message}`, undefined, false); +// if (normedError.details !== undefined && normedError.details !== null) { +// if (typeof normedError.details === 'string' || normedError.details instanceof String) { +// // Print details if its a string, and exit +// printError(normedError.details); +// } else if (!Array.isArray(normedError.details)) { +// // TSOA API validation error case +// const transformedResponse = transformTSOAValidation(normedError.details); +// if (transformedResponse !== null) { +// // eslint-disable-next-line no-param-reassign +// normedError.details = transformedResponse; +// } +// } +// printTable(OPTIONSTABLEFORMAT, normedError.details); +// } +// if (exit) { +// printError(''); // Just exit +// } +// } + /** - * Creates a normalized error object (see `@constructError()` for how it is - * normalized), then prints the error and exits. + * Prints a normalized version of any given Error and exits the program (see + * `@constructError()` for how the error is normalized). * * @param {Error} error * @param {object} options * @param {string} prefix - * @param {bool} exit */ -export function handleError(error, options, prefix = 'Error', exit = true) { - debug(error); - let normedError; - const isNormedError = Object.keys(error).includes('success'); - if (isNormedError) { - normedError = error; // assume its already been normalized - } else { - normedError = constructError(error); +export function handleError(error, options, prefix = 'Error') { + let details; + let respCode; + // fallback to text in message or standard error message + const errResp = error?.response; + let errorText = errResp?.body; + if (errorText?.trim().length === 0 || error.name === 'RequestError') { + errorText = error.message; + } else if (error.name === 'ParseError' || error.code === 'ERR_BODY_PARSE_FAILURE') { + errorText = 'Unable to parse response from server. Try running again with "--debug" for more details.'; + details = error.message; + } + // if JSON was returned, look for either a message or error in it + try { + const resp = errResp ? JSON.parse(errorText) : {}; + respCode = resp.code; + if (resp?.message || resp?.error) { + errorText = resp?.message || resp?.error; + } else { + errorText = error.message; // perhaps a vanilla Error + } + // eslint-disable-next-line prefer-destructuring + details = resp.details; + } catch (e) { + // Guess it wasn't JSON! } - printNormalizedError(normedError, options, prefix, exit); + // todo make figuring out the status code more consistent? this might be a holdover from request vs got? + const status = errResp?.statusCode || respCode || error?.code || error?.status || ''; + printError(`${prefix}: ${status}, ${errorText}`, undefined, false); + if (details !== undefined && details !== null) { + const format = TABLEFORMATS[options.tableformat] ?? OPTIONSTABLEFORMAT; + // TSOA API validation error case + if (!Array.isArray(details)) { + const transformedResponse = transformTSOAValidation(details); + if (transformedResponse !== null) { + details = transformedResponse; + } + } + printTable(format, details); + } + printError(''); // Just exit } +// /** +// * Creates a normalized error object (see `@constructError()` for how it is +// * normalized), then prints the error and exits. +// * +// * @param {Error} error +// * @param {object} options +// * @param {string} prefix +// * @param {bool} exit +// */ +// export function handleError(error, options, prefix = 'Error', exit = true) { +// debug(error); +// let normedError; +// const isNormedError = Object.keys(error).includes('success'); +// if (isNormedError) { +// normedError = error; // assume its already been normalized +// } else { +// normedError = constructError(error); +// } +// printNormalizedError(normedError, options, prefix, exit); +// } + export { deleteFolderRecursive as deleteFile }; diff --git a/src/commands/workspaces/build.js b/src/commands/workspaces/build.js index e6bd5127..e9f5b3cd 100644 --- a/src/commands/workspaces/build.js +++ b/src/commands/workspaces/build.js @@ -1,158 +1,26 @@ -import _ from 'lodash'; import fs from 'node:fs'; import path from 'node:path'; -import { globSync } from 'glob'; -import Docker from 'dockerode'; -import cliProgress from 'cli-progress'; +import { Listr } from 'listr2'; import { printError, printSuccess } from '../utils.js'; import { getSkillInfo, buildImageTag } from './workspace-utils.js'; import { loadProfile } from '../../config.js'; +import dockerCli from '../../client/dockerClient.js'; -const { BarFormat } = cliProgress.Format; - -class DockerBuildProgressTracker { - constructor(data) { - this.layers = { download: {}, extract: {} }; - this.downloaded = 0; - this.extracted = 0; - this.streamData = ''; - this.eventData = data || ''; - this.bars = new cliProgress.MultiBar({ - clearOnComplete: false, - hideCursor: true, - format: (opts, params, payload) => this.statusFormatter(opts, params, payload), - }, cliProgress.Presets.shades_grey); - this.sectionBar = this.bars.create(0, 0, { type: 'section' }); - this.dlBar = this.bars.create(100, 0, { type: 'download' }); - this.exBar = this.bars.create(100, 0, { type: 'extract' }); - this.statusBar = this.bars.create(0, 0, { type: 'status' }); - } - - statusFormatter(barOpts, params, payload) { - switch (payload.type) { - case 'download': - if (params.progress >= 1) { - return 'Downloading: Complete'; - } - return `Downloading: [${BarFormat(params.progress, barOpts)}]`; - case 'extract': - if (params.progress >= 1) { - return 'Extracting: Complete'; - } - return `Extracting: [${BarFormat(params.progress, barOpts)}]`; - case 'status': - return `Status: ${this.streamData.trim()}`; - case 'section': - return `Building: ${this.eventData || ''}`; - default: - return ''; - } - } - - updateProgress() { - this.sectionBar.update(null); - this.dlBar.update(this.downloaded); - this.exBar.update(this.extracted); - this.statusBar.update(null); - } - - stop() { - this.bars.stop(); - } - - complete() { - this.downloaded = 100; - this.extracted = 100; - this.updateProgress(); - } - - processEvent(evt, data) { - const { progressDetail } = evt; - let { status, id } = evt; - status = status || ''; - id = id || ''; - if (data) { - this.eventData = data; - } - if (evt.stream) { - const newStr = evt.stream.replace(/\n|\r/g, ''); - if (newStr) { - this.streamData = newStr; - } - } - if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { - this.downloaded = 100; - this.extracted = 100; - } - if (status === 'Pulling fs layer') { - this.layers.download[id] = { progress: 0 }; - this.layers.extract[id] = { progress: 0 }; - } - if (status === 'Downloading' && this.layers.download[id]) { - this.layers.download[id].progress = progressDetail.current / progressDetail.total || 0; - } - if (status === 'Extracting' && this.layers.extract[id]) { - this.layers.extract[id].progress = progressDetail.current / progressDetail.total || 0; - } - if (status === 'Download complete' && this.layers.download[id]) { - this.layers.download[id].progress = 1; - } - if (status === 'Pull complete' && this.layers.extract[id]) { - this.layers.extract[id].progress = 1; - } - if (status === 'Already exists' && this.layers.download[id] && this.layers.extract[id]) { - this.layers.download[id].progress = 1; - this.layers.extract[id].progress = 1; - } - const dlmap = _.map(this.layers.download, 'progress'); - const exmap = _.map(this.layers.extract, 'progress'); - this.downloaded = Math.round(100 * _.mean(dlmap)); - this.extracted = Math.round(100 * _.mean(exmap)); - return this.updateProgress(); - } -} export default class WorkspaceBuildCommand { constructor(program) { this.program = program; } - async buildAction(target, action, status, options) { + async buildAction(target, action, stdoutHandler, options) { const actionPath = path.join(target, 'actions', action.name); const expectedDockerfile = path.join(actionPath, 'Dockerfile'); try { if (!fs.existsSync(expectedDockerfile)) { throw Error(`Unable to build action '${action.name}': Missing Dockerfile '${expectedDockerfile}', \nCheck that the 'actions/<name>' folder and action's name match or add a 'Dockerfile' in the path provided`); } - const globList = globSync('./**/*', { - cwd: actionPath, - absolute: true, - }); - const buildList = _.map(globList, (g) => path.posix.join(...(path.relative(actionPath, g)).split(path.sep))); - const docker = new Docker(); const imageTag = await buildImageTag(this.profile, action.image); - const stream = await docker.buildImage({ - context: actionPath, - src: buildList, - }, { t: imageTag }); - return new Promise((resolve, reject) => { - try { - docker.modem.followProgress(stream, (err) => { - if (err) { - return reject(err); - } - status.complete(); - return resolve(true); - }, (evt) => { - if (evt.error) { - reject(evt.error); - return; - } - status.processEvent(evt); - }); - } catch (err) { - printError(`${expectedDockerfile}:\n\t ${err.message}`, options); - reject(err); - } + return dockerCli(options).build({ + imageTag, contextPath: actionPath, dockerFile: expectedDockerfile, stdoutHandler, }); } catch (err) { printError(`${expectedDockerfile}:\n\t ${err.message}`, options); @@ -177,17 +45,23 @@ export default class WorkspaceBuildCommand { } const skillInfo = await getSkillInfo(target); if (skillInfo.length > 0) { - const skillNameList = _.map(skillInfo, 'skill.name'); - const status = new DockerBuildProgressTracker(skillNameList.join(', ')); - try { - await Promise.all(_.map(skillInfo, (info) => { - const actions = info.skill.actions ? info.skill.actions : []; - return Promise.all(_.map(actions, (action) => this.buildAction(path.dirname(info.uri), action, status, options))); - })); - } finally { - status.stop(); - } - printSuccess('Build Complete', options); + const tasks = new Listr([], { + }); + skillInfo.forEach((info) => { + const actions = info.skill.actions ? info.skill.actions : []; + actions.forEach((action) => { + tasks.add([ + { + title: `Building skill "${info.skill.name}" action "${action.name}"`, + task: async (ctx, task) => { + await this.buildAction(path.dirname(info.uri), action, (data) => task.output = data, options); + task.title = `Successfully built skill "${info.skill.name}" action "${action.name}"`; + }, + }, + ]); + }); + }); + await tasks.run(); } else { printSuccess('No skills found', options); } diff --git a/src/commands/workspaces/publish.js b/src/commands/workspaces/publish.js index 15e4b156..1e6dfabe 100644 --- a/src/commands/workspaces/publish.js +++ b/src/commands/workspaces/publish.js @@ -1,146 +1,35 @@ import { globSync } from 'glob'; import fs from 'node:fs'; import path from 'node:path'; -import Docker from 'dockerode'; import { readFile } from 'node:fs/promises'; import { v1 as uuid } from 'uuid'; -import inquirer from 'inquirer'; -import cliProgress from 'cli-progress'; -import chalk from 'chalk'; -import _ from 'lodash'; -import { parseObject, printSuccess, printError } from '../utils.js'; -import { getSkillInfo, buildImageTag, getCurrentRegistry } from './workspace-utils.js'; -import { loadProfile, generateJwt } from '../../config.js'; +import { Listr } from 'listr2'; +import { parseObject, printSuccess, printError, handleError } from '../utils.js'; +import { getSkillInfo, buildImageTag } from './workspace-utils.js'; +import { loadProfile } from '../../config.js'; import Catalog from '../../client/catalog.js'; import Models from '../../client/models.js'; import Content from '../../client/content.js'; import Experiments from '../../client/experiments.js'; import ApiServerClient from '../../client/apiServerClient.js'; +import getClient, { privateRegLogin } from '../../client/dockerClient.js'; -const { BarFormat } = cliProgress.Format; - -class DockerPushProgressTracker { - constructor() { - this.layers = { upload: {} }; - this.pushed = 0; - this.result = {}; - this.stage = ''; - this.bars = new cliProgress.MultiBar({ - clearOnComplete: false, - hideCursor: true, - format: (opts, params, payload) => this.statusFormatter(opts, params, payload), - }, cliProgress.Presets.shades_grey); - this.pushBar = this.bars.create(100, 0, { type: 'upload' }); - } - - statusFormatter(barOpts, params, payload) { - switch (payload.type) { - case 'upload': - if (params.progress >= 1) { - return chalk.green(`Pushing ${this.stage}: Complete`); - } - return chalk.green(`Pushing ${this.stage}: [${BarFormat(params.progress, barOpts)}]`); - case 'status': - return chalk.green(`Status: ${this.streamData.trim()}`); - default: - return ''; - } - } - - updateProgress() { - this.pushBar.update(this.pushed); - } - - stop() { - this.bars.stop(); - } - - complete() { - this.pushed = 100; - this.updateProgress(); - return this.result; - } - - processEvent(evt, imgtag) { - const { progressDetail } = evt; - let { status, id } = evt; - if (imgtag) { - this.stage = imgtag; - } - if (evt.aux) { - this.result = evt.aux; - } - status = status || ''; - id = id || ''; - if (evt.stream) { - const newStr = evt.stream.replace(/\n|\r/g, ''); - if (newStr) { - this.streamData = newStr; - } - } - if ((status === 'Image up to date') || (status === 'Downloaded newer image')) { - this.pushed = 100; - } - if (status === 'Preparing') { - this.layers.upload[id] = { progress: 0 }; - } - if (status === 'Pushing') { - this.layers.upload[id].progress = progressDetail.current / progressDetail.total || 0; - } - if ((status === 'Pushed') || (status === 'Layer already exists')) { - this.layers.upload[id].progress = 1; - } - const ulmap = _.map(this.layers.upload, 'progress'); - this.pushed = Math.round(100 * _.mean(ulmap)); - return this.updateProgress(); - } -} export default class WorkspacePublishCommand { constructor(program) { this.program = program; - this.docker = new Docker(); + // this.docker = getClient(program.opts()); } - async getRegistryAuth(profile, options) { - const reg = await getCurrentRegistry(profile); - if (!profile.token) { - if (reg.isCortex) { - const ttl = options.ttl || '1d'; - profile.token = await generateJwt(profile, ttl); - } else { - const answers = await inquirer.prompt([ - { - type: 'input', - name: 'username', - message: `Enter user name for ${reg.name}:`, - }, - { - type: 'password', - name: 'password', - message: `Enter password for ${reg.name}:`, - }, - ]).catch(() => { }); - if (answers) { - return answers; - } - } - } - return { - username: 'cli', - password: profile.token, - }; - } - - async pushAction(action, imageTag, registryAuth, { skipPush }) { - let img = this.docker.getImage(imageTag); + async pushAction(action, imageTag, options) { + const { skipPush, stdOutHandler } = options; /// ------------------------------------- /// RETAGGING IMAGE SO CORTEX PICKS IT UP - /// The cortex backend has a bug where the new image wont be used if the tag hasnt changed - /// Remove this when this problem is fixed. + /// The K8s will not download new images unless the tag has changed ( unless ALWAYS PULL is specified) + /// TODO use git hash instead... const buildId = uuid().substr(0, 6); const newTag = `${imageTag}:${buildId}`; - await img.tag({ repo: newTag }); - img = this.docker.getImage(newTag); + const dockerCli = getClient(options); + await dockerCli.tag(imageTag, newTag); /// ------------------------------------- // Set image tag to new image tag for skill/action deployment later // eslint-disable-next-line no-param-reassign @@ -149,166 +38,175 @@ export default class WorkspacePublishCommand { printSuccess(`Skipping docker push for: ${newTag}`); return true; } - const status = new DockerPushProgressTracker(); - const imgPush = await img - .push({ - authconfig: registryAuth, - }); - return new Promise((resolve, reject) => { - this.docker.modem.followProgress(imgPush, (err) => { - if (err) { - return reject(err); - } - status.complete(); - status.stop(); - return resolve(true); - }, (evt) => { - if (evt.error) { - status.stop(); - reject(new Error(evt.error)); - return; - } - status.processEvent(evt, newTag); - }); - }); + return dockerCli.push(newTag, stdOutHandler); } async execute(folder, options) { this.options = options; let target = process.cwd(); - try { - if (folder) { - const fldr = folder.replace(/'|"/g, ''); - target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + const tasks = new Listr([], {}); + const globOpts = { + cwd: target, + absolute: true, + }; + if (folder) { + const fldr = folder.replace(/'|"/g, ''); + target = path.isAbsolute(fldr) ? folder : path.resolve(target, fldr); + } + if (options.skill) { + target = path.join(target, 'skills', options.skill, 'skill.yaml'); + if (!fs.existsSync(target)) { + throw new Error(`Skill ${options.skill} not found!`); } - if (options.skill) { - target = path.join(target, 'skills', options.skill, 'skill.yaml'); - if (!fs.existsSync(target)) { - throw new Error(`Skill ${options.skill} not found!`); + } + const skillInfo = await getSkillInfo(target); + if (skillInfo.length > 0) { + const profile = await loadProfile(options.profile); + /// If the user passed in a project name, validate it with the cluster + const project = options.project || profile.project; + if (project) { + const apiServer = new ApiServerClient(profile.url); + try { + await apiServer.getProject(profile.token, project); + } catch (err) { + handleError(err, options, `Project ${project} not found`); } + } else { + throw new Error('Project must be specified'); } - const skillInfo = await getSkillInfo(target); - if (skillInfo.length > 0) { - const profile = await loadProfile(options.profile); - /// If the user passed in a project name, validate it with the cluster - let project = options.project || profile.project; - if (project) { - const apiServer = new ApiServerClient(profile.url); - await apiServer.getProject(profile.token, project) - .then((prj) => project = prj.name) - .catch(() => printError(`Project ${project} not found.`, options)); - } else { - throw new Error('Project must be specified'); - } - this.catalogClient = new Catalog(profile.url); - this.modelsClient = new Models(profile.url); - this.experimentClient = new Experiments(profile.url); - this.contentClient = new Content(profile.url); - const published = await Promise.all(_.map(skillInfo, async (info) => { - const skillName = info.skill.name; - const actions = info.skill.actions ? info.skill.actions : []; - const actionsPublished = await Promise.all(_.map(actions, async (action) => { - const tag = await buildImageTag(profile, action.image); - const imglist = await this.docker.listImages({ - filters: JSON.stringify({ - reference: [tag], - }), - }); - if (imglist.length !== 0) { - const globOpts = { - cwd: target, - absolute: true, - }; - const regAuth = await this.getRegistryAuth(profile, action.image, options); - const typesFiles = globSync(`types/${skillName}/**/*.yaml`, globOpts); - await Promise.all(_.map(typesFiles, async (f) => { - const typeData = await readFile(f).catch(() => { }); + this.catalogClient = new Catalog(profile.url); + this.modelsClient = new Models(profile.url); + this.experimentClient = new Experiments(profile.url); + this.contentClient = new Content(profile.url); + try { + if (options?.skipPush !== true) await privateRegLogin(options); + } catch (err) { + printError(err.message, options); + } + tasks.add(skillInfo.map((info) => { + const skillName = info.skill.name; + return { + title: `Publishing skill ${skillName}`, + task: (sCtx, sTask) => { // Per skill + const subTasks = []; + const actions = info.skill.actions ? info.skill.actions : []; + subTasks.push(actions.map((action) => ({ + title: `Pushing docker images for ${action.name}`, + task: async (aCtx, aTask) => { + const tag = await buildImageTag(profile, action.image); + const imglist = await getClient(options).listImages(tag); + if (imglist.length !== 0) { + try { + await this.pushAction(action, tag, { + ...options, + stdOutHandler: (d) => aTask.output = d, + }); + aTask.title = `Pushed docker image ${action.name}`; + } catch (err) { + throw Error(`Unable to push docker image: ${err.message}`); + } + } else { + throw Error(`No image found for action ${action.name}. Has it been built?`); + } + }, + }))); + const typesFiles = globSync(`types/${skillName}/**/*.yaml`, globOpts); + subTasks.push(typesFiles.map((f) => ({ + title: `Publishing type ${path.basename(f)}`, + task: async (tCtx, tTask) => { + const typeData = await readFile(f); if (typeData) { const type = parseObject(typeData.toString()); let normalizedType = {}; - if (!('types' in type)) normalizedType.types = [type]; - else normalizedType = type; + if (!('types' in type)) { + normalizedType.types = [type]; + } else { + normalizedType = type; + } await this.catalogClient.saveType(project, profile.token, normalizedType); - printSuccess(`Published type ${path.basename(f)}`, options); + tTask.title = `Published type ${path.basename(f)}`; } - })); - const modelsFiles = globSync(`models/${skillName}/**/*.yaml`, globOpts); - await Promise.all(_.map(modelsFiles, async (f) => { - const modelData = await readFile(f).catch(() => { }); + }, + }))); + const modelsFiles = globSync(`models/${skillName}/**/*.yaml`, globOpts); + subTasks.push(modelsFiles.map((f) => ({ + title: `Publishing model ${path.basename(f)}`, + task: async (mCtx, mTask) => { + const modelData = await readFile(f); if (modelData) { const model = parseObject(modelData.toString()); await this.modelsClient.saveModel(project, profile.token, model); - printSuccess(`Published model ${model.name}`, options); + mTask.tile = `Published model ${model.name}`; } - })); - const experimentsFiles = globSync(`experiments/${skillName}/*/*.yaml`, globOpts); - await Promise.all(_.map(experimentsFiles, async (expFile) => { - const experimentData = await readFile(expFile).catch(() => { }); + }, + }))); + const experimentsFiles = globSync(`experiments/${skillName}/*/*.yaml`, globOpts); + subTasks.push(experimentsFiles.map((expFile) => ({ + title: `Publishing experiment ${path.basename(expFile)}`, + task: async (eCtx, eTask) => { + const experimentData = await readFile(expFile); if (experimentData) { const experiment = parseObject(experimentData.toString()); - const result = await this.experimentClient.saveExperiment(project, profile.token, experiment).then((response) => response.success) - .catch(() => false); - if (result) { - printSuccess(`Published experiment ${experiment.name}`, options); - const runsFiles = globSync(`experiments/${skillName}/${experiment.name}/runs/**/*.yaml`, globOpts); - await Promise.all(_.map(runsFiles, async (runFile) => { - const runData = await readFile(runFile).catch(() => { }); - if (runData) { - const run = parseObject(runData.toString()); - /// - /// Note: I would prefer to do an Update operation here instead, but the update endpoint - /// for experiment runs is currently broken. - /// - /// In the interim, I just delete the run (if it exists) and then re-add it. - /// - await this.experimentClient.deleteRun(project, profile.token, experiment.name, run.runId); - run.experimentName = experiment.name; - await this.experimentClient.createRun(project, profile.token, run); - printSuccess(`Published run ${run.runId}`, options); - const artifacts = globSync(`experiments/${skillName}/${experiment.name}/runs/${run.runId}/artifacts/*`, globOpts); - await Promise.all(_.map(artifacts, async (artifactUri) => { - const artifactName = path.basename(artifactUri).split('.')[0]; - await this.experimentClient.uploadArtifact(project, profile.token, experiment.name, run.runId, artifactUri, artifactName); - printSuccess(`Published artifact ${artifactName}`, options); - })); - } - })); - } else { - printError('Failed to save experiment', options); - } + await this.experimentClient.saveExperiment(project, profile.token, experiment); + eTask.title = `Published experiment ${experiment.name}`; + const runsFiles = globSync(`experiments/${skillName}/${experiment.name}/runs/**/*.yaml`, globOpts); + await Promise.all(runsFiles.map(async (runFile) => { + const runData = await readFile(runFile); + if (runData) { + const run = parseObject(runData.toString()); + /// + /// Note: I would prefer to do an Update operation here instead, but the update endpoint + /// for experiment runs is currently broken. + /// + /// In the interim, I just delete the run (if it exists) and then re-add it. + /// + await this.experimentClient.deleteRun(project, profile.token, experiment.name, run.runId); + run.experimentName = experiment.name; + await this.experimentClient.createRun(project, profile.token, run); + eTask.title = `Published run ${run.runId}`; + const artifacts = globSync(`experiments/${skillName}/${experiment.name}/runs/${run.runId}/artifacts/*`, globOpts); + await Promise.all(artifacts.map(async (artifactUri) => { + const artifactName = path.basename(artifactUri) + .split('.')[0]; + await this.experimentClient.uploadArtifact(project, profile.token, experiment.name, run.runId, artifactUri, artifactName); + eTask.title = `Published artifact ${artifactName}`; + })); + } + })); + } else { + throw new Error('Failed to save experiment'); } - })); - const contentFiles = globSync(`content/${skillName}/*`, globOpts); - await Promise.all(_.map(contentFiles, async (f) => { + }, + }))); + const contentFiles = globSync(`content/${skillName}/*`, globOpts); + subTasks.push(contentFiles.map((f) => ({ + title: `Uploading ${f} to managed content`, + task: async (mcCtx, mcTask) => { const key = `content/${skillName}/${path.posix.basename(f, path.posix.extname(f))}`; await this.contentClient.uploadContentStreaming(project, profile.token, key, f); - printSuccess(`Published content ${key}`, options); - })); - // pass options if we want to skip docker push for example - await this.pushAction(action, tag, regAuth, options); - } else { - printError(`No image found for action ${action.name}. Has it been built?`, options); - return false; - } - return true; - })); - if (_.every(actionsPublished)) { - const saveResult = await this.catalogClient.saveSkill(project, profile.token, info.skill); - if (saveResult.success) return true; - printError(`Skill save failed for ${info.skill.name}: ${saveResult.message}`, false); - return false; - } - printError('Publish Failed', options); - return false; - })); - return _.every(published); + mcTask.tile = `Uploaded ${f}`; + }, + }))); + subTasks.push({ + title: `Saving skill ${skillName}`, + task: async (dCtx, dTask) => { + // pass options if we want to skip docker push for example + + await this.catalogClient.saveSkill(project, profile.token, info.skill); + dTask.title = `Skill ${info.skill.name} saved`; + }, + }); + return sTask.newListr(subTasks.flat(), { concurrent: false, rendererOptions: { collapseSubtasks: false } }); + }, + }; + })); + try { + await tasks.run(); + } catch (e) { + printError('Publication Failed', options, false); } - console.log('No skills found'); - return false; - } catch (err) { - printError(err.message, options); - printError('Publish Failed', options); - return false; + } else { + printError('No skills found', options); } } } diff --git a/src/commands/workspaces/workspace-utils.js b/src/commands/workspaces/workspace-utils.js index 53f4dede..1b14301f 100644 --- a/src/commands/workspaces/workspace-utils.js +++ b/src/commands/workspaces/workspace-utils.js @@ -110,6 +110,7 @@ export async function getCurrentRegistry(profile = undefined) { // use internal name instead of key/label return Object.values(regProfile.registries).find((r) => r.name = regProfile.currentRegistry); } + export async function buildImageTag(profile, actionName) { if (actionName.includes('/')) { return actionName; diff --git a/src/compatibility.js b/src/compatibility.js index 473d5b7d..c2caa9a7 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -117,18 +117,28 @@ export async function doCompatibilityCheck(profile, doCheck = true) { return Promise.resolve(); } -export function withCompatibilityCheck(fn) { - return (...args) => { - const command = args.find((a) => a !== undefined && typeof a.opts === 'function'); - const options = command.opts(); - // Explicit duplicate compatibility check to avoid unnecessarily loading the Profile - if (shouldDoCompatibilityCheck(options.compat)) { - const { profile: profileName } = options; - return loadProfile(profileName) - .then((profile) => doCompatibilityCheck(profile)) - .then(() => fn(...args)) - .catch((error) => printError(error)); +/** + * Call the cli command + * 1) Check cli/server compability + * 2) Pass parsed args call command + * 3) handle exceptions + * @param fn + * @returns {(function(...[*]): Promise<*|undefined>)|*} + */ +export function callCommand(fn) { + return async (...args) => { + try { + const command = args.find((a) => a !== undefined && typeof a.opts === 'function'); + const options = command.opts(); + // Explicit duplicate compatibility check to avoid unnecessarily loading the Profile + if (shouldDoCompatibilityCheck(options.compat)) { + const { profile: profileName } = options; + const profile = await loadProfile(profileName); + await doCompatibilityCheck(profile); + } + return fn(...args); + } catch (err) { + handleError(err); } - return Promise.resolve().then(() => fn(...args)); }; } diff --git a/src/config.js b/src/config.js index ffb7034e..8955e1e0 100644 --- a/src/config.js +++ b/src/config.js @@ -349,13 +349,13 @@ class ProfileV5 { this.audience = audience; this.project = project; this.registries = registries || { - 'Cortex Private Registry': { + 'Cortex Private Registry (generated from URL)': { url: new URL(url).hostname.replace('api', 'private-registry'), name: 'Cortex Private Registry', isCortex: true, }, }; - this.currentRegistry = currentRegistry || 'Cortex Private Registry'; + this.currentRegistry = currentRegistry || 'Cortex Private Registry (generated from URL)'; this.templateConfig = templateConfig || templateConfigV4 || { repo: 'CognitiveScale/cortex-code-templates', branch: 'main', diff --git a/src/test.js b/src/test.js new file mode 100644 index 00000000..24142313 --- /dev/null +++ b/src/test.js @@ -0,0 +1,5 @@ +import getClient from './client/dockerClient.js'; + +const docker = getClient(); + +console.log(await docker.listImages('registry.k8s.io/pause')); diff --git a/test.json b/test.json deleted file mode 100644 index d3583fb7..00000000 --- a/test.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "type-5", - "title": "1", - "camel": "1.0.0", - "parameters": [{"name": "t2", "type": "string"}] -} diff --git a/test/configure.js b/test/configure.js index d1e89336..65177f62 100644 --- a/test/configure.js +++ b/test/configure.js @@ -76,7 +76,7 @@ describe('configure', () => { it('get profile other', async () => { await create().parseAsync(['node', 'configure', 'describe', 'other']); const output = getPrintedLines(); - expect(output).to.length(5); + expect(output).to.length(6); expect(output[4]).to.eql('Project: otherProj'); }); it('ttl token default ttl', async () => { @@ -109,12 +109,23 @@ describe('configure', () => { expect(payload.exp).to.equal((iatDate / 1000) + (5 * 60)); }); it('ttl token with bad ttl', async () => { - await create().parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); + try { + await create() + .parseAsync(['node', 'configure', 'token', '--ttl', '99mx']); + assert.fail('Should have thrown'); + } catch (err) { + // NOP + } const output = getErrorLines(); expect(output[0]).to.contain('Invalid --ttl'); }); it('ttl token default with bad profile', async () => { - await create().parseAsync(['node', 'configure', 'token', '--profile', 'nothere']); + try { + await create().parseAsync(['node', 'configure', 'token', '--profile', 'nothere']); + assert.fail('Should have thrown'); + } catch (err) { + // NOP + } const output = getErrorLines(); expect(output[0]).to.contain('Profile with name "nothere" could not be located in your configuration.'); assert(process.exit.calledWith(1)); diff --git a/test/pipelines.js b/test/pipelines.js index a9e28482..f3c9fbff 100644 --- a/test/pipelines.js +++ b/test/pipelines.js @@ -208,7 +208,7 @@ describe('Pipelines', () => { const errs = getErrorLines().join(''); // eslint-disable-next-line no-unused-expressions chai.expect(output).to.be.empty; - chai.expect(errs).to.contain('Failed to describe pipeline: 404 pipeline with name nonExistentPipeline not found'); + chai.expect(errs).to.contain('Failed to describe pipeline: 404, pipeline with name nonExistentPipeline not found'); nock.isDone(); } }); @@ -310,7 +310,7 @@ describe('Pipelines', () => { } catch { const output = getPrintedLines().join(''); const errs = getErrorLines().join(''); - chai.expect(errs).to.include('Failed to parse params: {. Error: YAMLException: unexpected end of the stream within a flow collection (2:1)'); + chai.expect(errs).to.include('Failed to parse params: { Error: YAMLException: unexpected end of the stream within a flow collection (2:1)'); // eslint-disable-next-line no-unused-expressions chai.expect(output).to.be.empty; nock.isDone(); diff --git a/test/uploadDirectory.js b/test/uploadDirectory.js index 514cd694..bd5d9f9c 100644 --- a/test/uploadDirectory.js +++ b/test/uploadDirectory.js @@ -66,7 +66,7 @@ describe('Upload Directory', () => { // eslint-disable-next-line no-unused-expressions expect(getErrorLines()).is.empty; // Assume no errors }); - it('test upload error', async () => { + it('test upload chunkSize 1', async () => { const program = create(); const contentKey = '.shared'; // can't contact cluster.. @@ -80,7 +80,7 @@ describe('Upload Directory', () => { expect(lines).to.include('1.6K\tconfig -> .shared/config'); expect(lines).to.include('483B\tsample/upload/config -> .shared/sample/upload/config'); // eslint-disable-next-line no-unused-expressions - expect(errLines).to.have.length(1); + expect(errLines).to.have.length(0); // Don't understand why this would error ? }); }); From 01b50b27448da7432e5a6b1ffdc2a2d011bd160b Mon Sep 17 00:00:00 2001 From: Luis Aguirre <51457952+laguirre-cs@users.noreply.github.com> Date: Wed, 10 Apr 2024 00:38:34 -0500 Subject: [PATCH 864/864] Tweaks from earlier CLI cleanup - Fix connections describe command (#747) * Bump which to 4.0.0 - see https://www.npmjs.com/package/which/v/4.0.0 * Remove src/test.js - likely for debugging * Add execution flag to experiments, pipelines, pipeline repos, and workspaces CLI entrypoints * Delete commented code in commands/utils.js and include timeout handling in handleError that was in constructError * Work towards removing constructError() - remove usage from agents, connections, and skills * Fix output of 'cortex connections describe' - output was being hidden * Fix output of 'cortex content list' * Update debugging output when initializing profile, and print an error message to alert the user when the cluster is unreachable * Fix cortex users list subcommand * Add unit tests covering listing of connections * Add return statements to all Connection CLI command wrappers * Add TODO about investigating slow startup * Remove reference to publicKey (already deactivated), and add unit test for describe connection * Move uploadDirectory.js -> to content.js * Add happypath unit tests for listing cortex content * Add unit tests for listing service users * Fix broke timeout error message by separating printing of details from 1) TSOA error cases, 2) HTTP error case. Lower timeout error message to debug --- bin/cortex-connections.js | 20 +-- bin/cortex-content.js | 8 +- bin/cortex-experiments.js | 0 bin/cortex-pipelines-repos.js | 0 bin/cortex-pipelines.js | 0 bin/cortex-users.js | 29 ++-- bin/cortex-workspaces.js | 0 bin/cortex.js | 38 +++-- package-lock.json | 20 ++- package.json | 2 +- src/client/connections.js | 6 +- src/client/info.js | 5 +- src/commands/agents.js | 4 +- src/commands/connections.js | 10 +- src/commands/content.js | 5 +- src/commands/skills.js | 4 +- src/commands/users.js | 5 +- src/commands/utils.js | 174 ++++++++------------- src/compatibility.js | 2 +- src/config.js | 12 +- src/features.js | 5 +- src/test.js | 5 - test/connections.js | 199 ++++++++++++++++++++++++ test/{uploadDirectory.js => content.js} | 104 ++++++++++++- test/pipelines.js | 1 - test/users.js | 103 ++++++++++++ 26 files changed, 556 insertions(+), 205 deletions(-) mode change 100644 => 100755 bin/cortex-experiments.js mode change 100644 => 100755 bin/cortex-pipelines-repos.js mode change 100644 => 100755 bin/cortex-pipelines.js mode change 100644 => 100755 bin/cortex-workspaces.js delete mode 100644 src/test.js create mode 100644 test/connections.js rename test/{uploadDirectory.js => content.js} (58%) create mode 100644 test/users.js diff --git a/bin/cortex-connections.js b/bin/cortex-connections.js index 7100b7d1..63df1453 100755 --- a/bin/cortex-connections.js +++ b/bin/cortex-connections.js @@ -28,9 +28,7 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.', GET_DEFAULT_SORT_CLI_OPTION(DEFAULT_LIST_SORT_PARAMS.updatedAt)) - .action(callCommand((options) => { - new ListConnections(program).execute(options); - })); + .action(callCommand((options) => new ListConnections(program).execute(options))); // Save Connections program .command('save <connectionDefinition>') @@ -40,9 +38,7 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .option('-y, --yaml', 'Use YAML for agent definition format') - .action(callCommand((connDefinition, options) => { - new SaveConnectionCommand(program).execute(connDefinition, options); - })); + .action(callCommand((connDefinition, options) => new SaveConnectionCommand(program).execute(connDefinition, options))); // Describe Connection program .command('describe <connectionName>') @@ -55,8 +51,8 @@ export function create() { .option('--json [searchPath]', QUERY_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .action(callCommand((connectionName, options) => { - checkForEmptyArgs({ connectionName }); - new DescribeConnectionCommand(program).execute(connectionName, options); + checkForEmptyArgs({ connectionName }); + return new DescribeConnectionCommand(program).execute(connectionName, options); })); // List Connections Types program @@ -71,9 +67,7 @@ export function create() { .option('--limit <limit>', 'Limit number of records', DEFAULT_LIST_LIMIT_COUNT) .option('--skip <skip>', 'Skip number of records', DEFAULT_LIST_SKIP_COUNT) .option('--sort <sort>', 'A Mongo style sort statement to use in the query.') - .action(callCommand((options) => { - new ListConnectionsTypes(program).execute(options); - })); + .action(callCommand((options) => new ListConnectionsTypes(program).execute(options))); // Delete Connection program .command('delete <connectionName>') @@ -83,8 +77,8 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') .action(callCommand((connectionName, options) => { - checkForEmptyArgs({ connectionName }); - new DeleteConnectionCommand(program).execute(connectionName, options); + checkForEmptyArgs({ connectionName }); + return new DeleteConnectionCommand(program).execute(connectionName, options); })); return program; } diff --git a/bin/cortex-content.js b/bin/cortex-content.js index 62056878..c59b3f48 100755 --- a/bin/cortex-content.js +++ b/bin/cortex-content.js @@ -23,9 +23,7 @@ export function create() { .option('--json [searchQuery]', LIST_JSON_HELP_TEXT) .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--prefix <prefix>', 'Filter contents with the given prefix.') - .action(callCommand((options) => { - new ListContent(program).execute(options); - })); + .action(callCommand((options) => new ListContent(program).execute(options))); // Upload Content program .command('upload <contentKey> <filePath>') @@ -58,9 +56,7 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--project <project>', 'The project to use') - .action(callCommand((contentKey, options) => { - new DownloadContent(program).execute(contentKey, options); - })); + .action(callCommand((contentKey, options) => new DownloadContent(program).execute(contentKey, options))); return program; } if (esMain(import.meta)) { diff --git a/bin/cortex-experiments.js b/bin/cortex-experiments.js old mode 100644 new mode 100755 diff --git a/bin/cortex-pipelines-repos.js b/bin/cortex-pipelines-repos.js old mode 100644 new mode 100755 diff --git a/bin/cortex-pipelines.js b/bin/cortex-pipelines.js old mode 100644 new mode 100755 diff --git a/bin/cortex-users.js b/bin/cortex-users.js index a0cd4ff5..246a2b78 100755 --- a/bin/cortex-users.js +++ b/bin/cortex-users.js @@ -21,8 +21,9 @@ export function create() { .option('--profile <profile>', 'The profile to use') .option('--user <user>', 'The user to describe, self for default') .option('--roles', 'Include grant inheritance from roles') - .action(callCommand(async (user, options) => { - await new UserDescribeCommand(program).execute(user, options); + .action(callCommand((user, options) => { + checkForEmptyArgs({ user }); + return new UserDescribeCommand(program).execute(user, options); })); program.command('grant <user>') .description('Manage user grants') @@ -35,8 +36,8 @@ export function create() { .option('--delete', 'Remove grant from user') .option('--deny', 'Explicit deny of action(s)') .action(callCommand((user, options) => { - checkForEmptyArgs({ user }); - new UserGrantCommand(program).execute(user, options); + checkForEmptyArgs({ user }); + return new UserGrantCommand(program).execute(user, options); })); program.command('project <project>') .description('Manage a list of user assignments on a project') @@ -46,8 +47,8 @@ export function create() { .requiredOption('--users <users...>', 'Users to add/remove on project') .option('--delete', 'Unassign users from project') .action(callCommand((project, options) => { - checkForEmptyArgs({ project }); - new UserProjectAssignCommand(program).execute(project, options); + checkForEmptyArgs({ project }); + return new UserProjectAssignCommand(program).execute(project, options); })); program.command('delete <user>') .description('Deletes a service user and disables any existing tokens created by the user') @@ -64,8 +65,8 @@ export function create() { .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .action(callCommand((user, options) => { - checkForEmptyArgs({ user }); - new UserCreateCommand(program).execute(user, options); + checkForEmptyArgs({ user }); + return new UserCreateCommand(program).execute(user, options); })); program.command('list') .description('Lists all service users created within Cortex') @@ -75,27 +76,21 @@ export function create() { .option('--query <query>', `[DEPRECATION WARNING] ${QUERY_JSON_HELP_TEXT}`) .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') - .action(callCommand((options) => { - new UserListCommand(program).execute(options); - })); + .action(callCommand((options) => new UserListCommand(program).execute(options))); program.command('reset-pat') .description('Invalidates personal access token (PAT) for a specified user within Cortex') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--user <user>', 'The user to reset personal access token') - .action(callCommand((options) => { - new UserResetPATCommand(program).execute(options); - })); + .action(callCommand((options) => new UserResetPATCommand(program).execute(options))); program.command('get-pat') .description('Fetch personal access token (PAT) for a specified user within Cortex') .option('--no-compat', 'Ignore API compatibility checks') .option('--color [boolean]', 'Turn on/off colors for JSON output.', 'true') .option('--profile <profile>', 'The profile to use') .option('--user <user>', 'The user to reset personal access token (admins only)') - .action(callCommand((options) => { - new UserGetPATCommand(program).execute(options); - })); + .action(callCommand((options) => new UserGetPATCommand(program).execute(options))); return program; } if (esMain(import.meta)) { diff --git a/bin/cortex-workspaces.js b/bin/cortex-workspaces.js old mode 100644 new mode 100755 diff --git a/bin/cortex.js b/bin/cortex.js index 49c03c76..c9799424 100755 --- a/bin/cortex.js +++ b/bin/cortex.js @@ -1,33 +1,40 @@ #!/usr/bin/env node import { Command } from 'commander'; +import debugSetup from 'debug'; import esMain from 'es-main'; import { readPackageJSON, printError } from '../src/commands/utils.js'; -import { loadProfileWithoutFailure } from '../src/config.js'; +import { loadProfileAllowingUnconfiguredCLI } from '../src/config.js'; import { getAllSubcommands, FeatureController } from '../src/features.js'; -// Global variable storing the users profile, used to avoid redundantly loading the Profile +// NOTE: The Commander CLI framework will executes this module multiple initializing +// CLI subcommands. This global variable stores the users profile, to avoid +// redundantly loading the Profile (avoid slow startup). let profile; +// TODO: Investigate slow startup when using custom SSL certs (NODE_EXTRA_CA_CERTS) - might be related to timeouts/retrys or SSL3? + async function resolveAvailableSubcommands(profileName) { + const debug = debugSetup('cortex:cli'); let supportedCommands; if (process.env.CORTEX_SKIP_INIT_PROFILE) { // Provide all subcommands - mostly intended as workaround for Docgen // testing + debug('Skipping profile initialization, all subcommands will be available (CORTEX_SKIP_INIT_PROFILE=%s}).', process.env.CORTEX_SKIP_INIT_PROFILE); supportedCommands = getAllSubcommands(); } else { - if (profile === undefined || profile === null) { - // Alert the user that CORTEX_TOKEN is set, this has a higher - // priority than other methods of retrieving the token. The Alert - // happens at startup, rather than downstream when getting the value - // from the env, as to only alert the user once (avoid duplicate - // messages in cases where the variable is loaded multiple times). - if (process.env.CORTEX_TOKEN) { - printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); - } - // Check to only Load the users Profile & do a compatibility check - // once on startup - profile = await loadProfileWithoutFailure(profileName); - } + // Load profile if it isn't already defined + if (profile === undefined || profile === null) { + // Alert the user that CORTEX_TOKEN is set, this has a higher + // priority than other methods of retrieving the token. The Alert + // happens at startup, rather than downstream when getting the value + // from the env, as to only alert the user once (avoid duplicate + // messages in cases where the variable is loaded multiple times). + if (process.env.CORTEX_TOKEN) { + printError('Using token from "CORTEX_TOKEN" environment variable', {}, false); + } + // Load profile, but support the "fresh install" scenario where the Profile doesn't exist + profile = await loadProfileAllowingUnconfiguredCLI(profileName); + } if (profile) { // if the profile was found, then side-load the token & feature // flags to avoid future calls to the server @@ -42,6 +49,7 @@ async function resolveAvailableSubcommands(profileName) { // made, then we expect the CLI to try again & fail when the Profile // is needed. If the subcommand doesn't need the users Profile, its // likely just printing help messages. + debug('Unable to load CLI Profile, so making all subcommands available to the user (allowing failures to be handled downstream).'); supportedCommands = getAllSubcommands(); } } diff --git a/package-lock.json b/package-lock.json index b640ccd7..bded87c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ "url-join": "5.0.0", "url-parse": "1.5.10", "uuid": "9.0.1", - "which": "3.0.0", + "which": "4.0.0", "yauzl": "3.1.2" }, "bin": { @@ -7487,17 +7487,17 @@ } }, "node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/which-boxed-primitive": { @@ -7533,6 +7533,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" + } + }, "node_modules/workerpool": { "version": "6.2.1", "dev": true, diff --git a/package.json b/package.json index 291de06e..b7432d84 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "url-join": "5.0.0", "url-parse": "1.5.10", "uuid": "9.0.1", - "which": "3.0.0", + "which": "4.0.0", "yauzl": "3.1.2" }, "devDependencies": { diff --git a/src/client/connections.js b/src/client/connections.js index 7c379775..c16e10de 100644 --- a/src/client/connections.js +++ b/src/client/connections.js @@ -15,7 +15,7 @@ */ import debugSetup from 'debug'; import { got, defaultHeaders } from './apiutils.js'; -import { constructError, checkProject } from '../commands/utils.js'; +import { checkProject } from '../commands/utils.js'; const debug = debugSetup('cortex:cli'); export default (class Connections { @@ -82,8 +82,6 @@ export default (class Connections { .get(endpoint, { headers: defaultHeaders(token), searchParams: query, - }).json() - .then((conns) => conns) - .catch((err) => constructError(err)); + }).json(); } }); diff --git a/src/client/info.js b/src/client/info.js index 31736c25..833a8fc3 100644 --- a/src/client/info.js +++ b/src/client/info.js @@ -32,9 +32,10 @@ export default (class Info { .get({ url: endpoint }) .json(); } catch (err) { - // return error object and let caller deal with failure + // Return error object and let caller deal with the failure, however alert the user const e = constructError(err); - debug(`Failed to retrieve cluster information from ${this.cortexUrl}: ${e.message}`); + // printError('Failed to communicate with Cortex server. This may limit available CLI features!\n', null, false); + debug(`Failed to communicate with Cortex server for getInfo() call. Cluster "%s" - ${e.message}`, this.cortexUrl); return e; } } diff --git a/src/commands/agents.js b/src/commands/agents.js index 6a0cb331..01bc2db5 100644 --- a/src/commands/agents.js +++ b/src/commands/agents.js @@ -21,7 +21,6 @@ import { printTable, writeOutput, printErrorDetails, - constructError, handleError, } from './utils.js'; @@ -191,8 +190,7 @@ export class CancelActivationCommand { const response = await agents.cancelActivation(project || profile.project, profile.token, activationId, inFlight); printSuccess(response.message); } catch (err) { - const { message } = constructError(err); - printError(`Failed to cancel activation ${activationId}: ${message}`, options); + handleError(err, options, `Failed to cancel activation ${activationId}`); } } } diff --git a/src/commands/connections.js b/src/commands/connections.js index 7dcd77c9..475392fe 100644 --- a/src/commands/connections.js +++ b/src/commands/connections.js @@ -111,7 +111,7 @@ export class DescribeConnectionCommand { const connection = new Connections(profile.url); try { const response = await connection.describeConnection(options.project || profile.project, profile.token, connectionName); - getFilteredOutput(response.result, options); + getFilteredOutput(response, options); } catch (err) { handleError(err, options, `Failed to describe connection ${connectionName}`); } @@ -184,10 +184,10 @@ export class ListConnectionsTypes { ]; handleTable(tableSpec, result, null, 'No connection types found'); } - } catch (err) { - debug(err); - printError(`Failed to list connection types: ${err.status} ${err.message}`, options, false); - printErrorDetails(err?.response, options); + } catch (err) { + debug(err); + printErrorDetails(err?.response, options, false); + handleError(err, options, 'Failed to list connection types'); } } } diff --git a/src/commands/content.js b/src/commands/content.js index b4633288..cc491688 100644 --- a/src/commands/content.js +++ b/src/commands/content.js @@ -36,10 +36,9 @@ export class ListContent { const content = new Content(profile.url); try { const response = await content.listContent(options.project || profile.project, profile.token, options.prefix); - const result = response.message; // TODO remove --query on deprecation if (options.json || options.query) { - getFilteredOutput(result, options); + getFilteredOutput(response, options); } else { const tableSpec = [ { column: 'Key', field: 'Key', width: 70 }, @@ -47,7 +46,7 @@ export class ListContent { { column: 'Last Modified', field: 'LastModified', width: 30 }, { column: 'Size (bytes)', field: 'Size', width: 20 }, ]; - handleTable(tableSpec, response.message, null, 'No content found'); + handleTable(tableSpec, response, null, 'No content found'); } } catch (err) { handleError(err, options, 'Failed to list content'); diff --git a/src/commands/skills.js b/src/commands/skills.js index a90ff8b2..5af76a26 100644 --- a/src/commands/skills.js +++ b/src/commands/skills.js @@ -7,7 +7,6 @@ import { loadProfile } from '../config.js'; import Catalog from '../client/catalog.js'; import Agent from '../client/agents.js'; import { - constructError, printSuccess, printError, printWarning, @@ -144,8 +143,7 @@ export class UndeploySkillCommand { const response = await catalog.unDeploySkill(options.project || profile.project, profile.token, skillName, options.verbose); printSuccess(`Undeploy Skill ${skillName}: ${response.message}`, options); } catch (err) { - const { status, message } = constructError(err); - printError(`Failed to Undeploy Skill ${skillName}: ${status} ${message}`, options); + handleError(err, options, `Failed to undeploy Skill ${skillName}`); } })); } diff --git a/src/commands/users.js b/src/commands/users.js index 191d22bb..ab2bb8e2 100644 --- a/src/commands/users.js +++ b/src/commands/users.js @@ -101,15 +101,14 @@ export const UserListCommand = class { const client = new Users(profile.url, 'self'); try { const response = await client.listServiceUsers(profile.token); - const { result } = response; // TODO remove --query on deprecation if (options.json || options.query) { - getFilteredOutput(result, options); + getFilteredOutput(response, options); } else { handleTable([{ column: 'User', field: 'user', - }], result.users.map((x) => ({ user: x })), null, 'No service users found'); + }], response.users.map((x) => ({ user: x })), null, 'No service users found'); } } catch (err) { handleError(err, options, 'Failed to list service users'); diff --git a/src/commands/utils.js b/src/commands/utils.js index 84b8eb81..09bc0604 100644 --- a/src/commands/utils.js +++ b/src/commands/utils.js @@ -135,47 +135,6 @@ const deleteFolderRecursive = (filepath) => { } }; -/** - * Returns an error object (with `success`, `message`, `details`, and `status` fields), from a given `Error`. - * - * @param {Error} error - * @return {object} An object describing the original error with additional details - */ -export const constructError = (error) => { - let details; - let respCode; - // fallback to text in message or standard error message - const errResp = error?.response; - let errorText = errResp?.body; - if (errorText?.trim().length === 0 || error.name === 'RequestError') { - errorText = error.message; - } else if (error.name === 'ParseError' || error.code === 'ERR_BODY_PARSE_FAILURE') { - errorText = 'Unable to parse response from server. Try running again with "--debug" for more details.'; - details = error.message; - } else if (error.name === 'TimeoutError' || error.code === 'ETIMEDOUT') { - errorText = error.message; - details = '\nTry running the command again with \'--no-timeout\' or increase\n' - + 'the network timeout values via environment variables. Run\n' - + '"cortex configure env" to view the environment variables\n' - + 'controlling the network timeout settings.'; - } - // if JSON was returned, look for either a message or error in it - try { - const resp = errResp ? JSON.parse(errorText) : {}; - respCode = resp.code; - if (resp?.message || resp?.error) errorText = resp?.message || resp?.error; - // eslint-disable-next-line prefer-destructuring - details = details || resp.details; - } catch (e) { - // Guess it wasn't JSON! - } - // todo make figuring out the status code more consistent? this might be a holdover from request vs got? - const status = errResp?.statusCode || respCode || error?.code || error?.status || ''; - return { - success: false, message: errorText, details, status, - }; -}; - export function writeToFile(content, filepath, createDir = true) { const dir = path.dirname(filepath); if (createDir && !fs.existsSync(dir)) { @@ -571,58 +530,70 @@ export function printErrorDetails(response, options, exit = true) { function checkForEmptyString(key, value) { if (!value.trim()) { - printError(`error: <${key}> cannot be empty.`); - process.exit(1); // Exit with an error code + printError(`error: <${key}> cannot be empty.`); + process.exit(1); // Exit with an error code } - } +} export function checkForEmptyArgs(args) { Object.keys(args).forEach((key) => { - if (typeof args[key] === 'object') { - args[key].forEach((val) => { - checkForEmptyString(key, val); - }); - } else { + if (typeof args[key] === 'object') { + args[key].forEach((val) => { + checkForEmptyString(key, val); + }); + } else { checkForEmptyString(key, args[key]); - } + } }); - } - - -// /** -// * Prints the normalized error object (see `@constructError()`), then exits the -// * program. -// */ -// export function printNormalizedError(normedError, options, prefix = 'Error', exit = true) { -// debug(normedError); -// printError(`${prefix}: ${normedError.status}, ${normedError.message}`, undefined, false); -// if (normedError.details !== undefined && normedError.details !== null) { -// if (typeof normedError.details === 'string' || normedError.details instanceof String) { -// // Print details if its a string, and exit -// printError(normedError.details); -// } else if (!Array.isArray(normedError.details)) { -// // TSOA API validation error case -// const transformedResponse = transformTSOAValidation(normedError.details); -// if (transformedResponse !== null) { -// // eslint-disable-next-line no-param-reassign -// normedError.details = transformedResponse; -// } -// } -// printTable(OPTIONSTABLEFORMAT, normedError.details); -// } -// if (exit) { -// printError(''); // Just exit -// } -// } +} +/** + * Returns an error object (with `success`, `message`, `details`, and `status` fields), from a given `Error`. + * + * @param {Error} error + * @return {object} An object describing the original error with additional details + */ +export const constructError = (error) => { + let details; + let respCode; + // fallback to text in message or standard error message + const errResp = error?.response; + let errorText = errResp?.body; + if (errorText?.trim().length === 0 || error.name === 'RequestError') { + errorText = error.message; + } else if (error.name === 'ParseError' || error.code === 'ERR_BODY_PARSE_FAILURE') { + errorText = 'Unable to parse response from server. Try running again with "--debug" for more details.'; + details = error.message; + } else if (error.name === 'TimeoutError' || error.code === 'ETIMEDOUT') { + errorText = error.message; + details = '\nTry running the command again with \'--no-timeout\' or increase\n' + + 'the network timeout values via environment variables. Run\n' + + '"cortex configure env" to view the environment variables\n' + + 'controlling the network timeout settings.'; + } + // if JSON was returned, look for either a message or error in it + try { + const resp = errResp ? JSON.parse(errorText) : {}; + respCode = resp.code; + if (resp?.message || resp?.error) errorText = resp?.message || resp?.error; + // eslint-disable-next-line prefer-destructuring + details = details || resp.details; + } catch (e) { + // Guess it wasn't JSON! + } + // todo make figuring out the status code more consistent? this might be a holdover from request vs got? + const status = errResp?.statusCode || respCode || error?.code || error?.status || ''; + return { + success: false, message: errorText, details, status, + }; +}; /** - * Prints a normalized version of any given Error and exits the program (see - * `@constructError()` for how the error is normalized). + * Prints a normalized version of any given Error and exits the program. * * @param {Error} error - * @param {object} options - * @param {string} prefix + * @param {object} options Options for printing the erorr (`tableFormat`) + * @param {string} prefix String to prefix the actual error message */ export function handleError(error, options, prefix = 'Error') { let details; @@ -635,8 +606,15 @@ export function handleError(error, options, prefix = 'Error') { } else if (error.name === 'ParseError' || error.code === 'ERR_BODY_PARSE_FAILURE') { errorText = 'Unable to parse response from server. Try running again with "--debug" for more details.'; details = error.message; + } else if (error.name === 'TimeoutError' || error.code === 'ETIMEDOUT') { + errorText = error.message; + details = '\nTry running the command again with \'--no-timeout\' or increase\n' + + 'the network timeout values via environment variables. Run\n' + + '"cortex configure env" to view the environment variables\n' + + 'controlling the network timeout settings.'; } // if JSON was returned, look for either a message or error in it + let responseDetails; try { const resp = errResp ? JSON.parse(errorText) : {}; respCode = resp.code; @@ -645,15 +623,14 @@ export function handleError(error, options, prefix = 'Error') { } else { errorText = error.message; // perhaps a vanilla Error } - // eslint-disable-next-line prefer-destructuring - details = resp.details; + responseDetails = resp.details; } catch (e) { // Guess it wasn't JSON! } - // todo make figuring out the status code more consistent? this might be a holdover from request vs got? + // TODO: make figuring out the status code more consistent? this might be a holdover from request vs got? const status = errResp?.statusCode || respCode || error?.code || error?.status || ''; - printError(`${prefix}: ${status}, ${errorText}`, undefined, false); - if (details !== undefined && details !== null) { + printError(`${prefix}: ${status}, ${errorText}`, options, false); + if (responseDetails !== undefined && responseDetails !== null) { const format = TABLEFORMATS[options.tableformat] ?? OPTIONSTABLEFORMAT; // TSOA API validation error case if (!Array.isArray(details)) { @@ -663,29 +640,10 @@ export function handleError(error, options, prefix = 'Error') { } } printTable(format, details); + } else if (details) { + printError(details, options, false); } printError(''); // Just exit } -// /** -// * Creates a normalized error object (see `@constructError()` for how it is -// * normalized), then prints the error and exits. -// * -// * @param {Error} error -// * @param {object} options -// * @param {string} prefix -// * @param {bool} exit -// */ -// export function handleError(error, options, prefix = 'Error', exit = true) { -// debug(error); -// let normedError; -// const isNormedError = Object.keys(error).includes('success'); -// if (isNormedError) { -// normedError = error; // assume its already been normalized -// } else { -// normedError = constructError(error); -// } -// printNormalizedError(normedError, options, prefix, exit); -// } - export { deleteFolderRecursive as deleteFile }; diff --git a/src/compatibility.js b/src/compatibility.js index c2caa9a7..cbd6a0a6 100644 --- a/src/compatibility.js +++ b/src/compatibility.js @@ -12,7 +12,7 @@ import npmFetch from 'npm-registry-fetch'; import Semver from 'semver'; import { got } from './client/apiutils.js'; import { loadProfile } from './config.js'; -import { handleError, constructError, printError, printWarning, readPackageJSON } from './commands/utils.js'; +import { handleError, printWarning, readPackageJSON } from './commands/utils.js'; const debug = debugSetup('cortex:cli'); diff --git a/src/config.js b/src/config.js index 8955e1e0..208d7133 100644 --- a/src/config.js +++ b/src/config.js @@ -510,8 +510,8 @@ async function loadProfile(profileName, useenv = true) { return profile; } -async function loadProfileWithoutFailure(profileName, useenv = true) { - debug(`loadProfileWithoutFailure() => ${profileName} (using env: ${useenv})`); +async function loadProfileAllowingUnconfiguredCLI(profileName, useenv = true) { + debug('loadProfileAllowingUnconfiguredCLI() => %s (using env: %s)', profileName, useenv); const config = readConfig(); if (config === undefined) { debug('Cortex CLI not configured'); @@ -519,16 +519,16 @@ async function loadProfileWithoutFailure(profileName, useenv = true) { } const name = profileName || config.currentProfile || 'default'; const profile = await config.getProfile(name, useenv); - debug(`Loaded profile with name "${name}"`); + debug('Loaded profile with name "%s"', name); if (!profile) { - debug(`Profile with name "${name}" not found in configuration`); + debug('Profile with name "%s" not found in configuration', name); } return profile; // return even if its undefined } export { durationRegex }; export { loadProfile }; -export { loadProfileWithoutFailure }; +export { loadProfileAllowingUnconfiguredCLI }; export { generateJwt }; export { fetchInfoForProfile }; export { defaultConfig }; @@ -537,7 +537,7 @@ export { readConfig }; export default { durationRegex, loadProfile, - loadProfileWithoutFailure, + loadProfileAllowingUnconfiguredCLI, defaultConfig, configDir, readConfig, diff --git a/src/features.js b/src/features.js index 936906af..79a094ed 100644 --- a/src/features.js +++ b/src/features.js @@ -95,9 +95,10 @@ export class FeatureController { getSupportedSubCommands() { // Collect GA Features & Preview Features, but always include defaults const previewSubcommands = this.collectSubcommands(this.profile.featureFlags?.preview ?? {}, FLAG_SUBCOMMANDS.preview, previewFeaturesEnabled(this.profile.featureFlags)); - debug(`collected preview subcommands: ${JSON.stringify(previewSubcommands)}`); + debug('Collected Preview subcommands: %s', JSON.stringify(previewSubcommands)); const gaSubcommands = this.collectSubcommands(this.profile.featureFlags?.ga ?? {}, FLAG_SUBCOMMANDS.ga, allGAFeaturesEnabled(this.profile.featureFlags)); - debug(`collected ga subcommands: ${JSON.stringify(gaSubcommands)}`); + debug('Collected GA subcommands: %s', JSON.stringify(gaSubcommands)); + debug('Collected default commands: %s', JSON.stringify(FLAG_SUBCOMMANDS.default.all)); const supportedCommands = [ ...FLAG_SUBCOMMANDS.default.all, ...gaSubcommands, diff --git a/src/test.js b/src/test.js deleted file mode 100644 index 24142313..00000000 --- a/src/test.js +++ /dev/null @@ -1,5 +0,0 @@ -import getClient from './client/dockerClient.js'; - -const docker = getClient(); - -console.log(await docker.listImages('registry.k8s.io/pause')); diff --git a/test/connections.js b/test/connections.js new file mode 100644 index 00000000..8b135736 --- /dev/null +++ b/test/connections.js @@ -0,0 +1,199 @@ +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import nock from 'nock'; +import _ from 'lodash'; +import sinon from 'sinon'; +import { create } from '../bin/cortex-connections.js'; +import { + compatibilityApi, compatiblityResponse, infoApi, infoResponse, stripAnsi, +} from './utils.js'; + +const PROJECT = 'project'; + +describe('Connections', () => { + let restoreEnv; + let sandbox; + let printSpy; + let errorSpy; + let warnSpy; + const serverUrl = 'http://localhost:8000'; + beforeEach(() => { + if (!nock.isActive()) { + nock.activate(); + } + restoreEnv = mockedEnv({ + CORTEX_CONFIG_DIR: './test/cortex', + }); + sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit').throws(Error('EXIT')); + printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); + warnSpy = sandbox.spy(console, 'warn'); + nock(serverUrl).get(compatibilityApi()).reply(200, compatiblityResponse()); + nock(serverUrl).persist().get(infoApi()).reply(200, infoResponse()); + }); + + afterEach(() => { + // clean up mocks that may not have been called + restoreEnv(); + nock.cleanAll(); + sandbox.restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + + // eslint-disable-next-line no-unused-vars + function getWarningLines() { + return _.flatten(warnSpy.args).map((s) => stripAnsi(s)); + } + + describe('List Connections', () => { + const response = { + success: true, + connections: [ + { + name: 'content', + title: 'Cortex Managed Content', + connectionType: 'managedContent', + description: 'Built in storage for files managed by the platform.connectionType: managedContent', + allowWrite: true, + }, + { + _id: '661111111187c46c78a93a95', + name: 'json-f2251', + title: 'json', + connectionType: 's3', + allowWrite: false, + contentType: 'json', + params: [ + { name: 'json/multiline', value: 'true', _id: '661021b7c087c46c78a93a96' }, { name: 'secretKey', value: '#SECURE.super-secret', _id: '661021b7c087c46c78a93a97' }, + { name: 'json/style', value: 'lines', _id: '661021b7c087c46c78a93a98' }, + { name: 'uri', value: 's3a://dev-bucket/datasets/file.json', _id: '661021b7c087c46c78a93a99' }, + { name: 'publicKey', value: '00000000000000000000', _id: '661021b7c087c46c78a93a9a' }, + ], + description: 'asdf', + tags: [], + createdAt: '2024-04-05T16:07:19.160Z', + updatedAt: '2024-04-05T16:07:19.160Z', + _version: 1, + }, + ], + }; + + it('lists connections - empty', async () => { + const empty = { success: true, connections: [] }; + nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/connections.*/).reply(200, empty); + await create().parseAsync(['node', 'connections', 'list', '--project', PROJECT]); + const output = getPrintedLines(); + const errs = getErrorLines(); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs.join('')).to.be.empty; + chai.expect(output.join('')).to.contain('No connections found'); + nock.isDone(); + }); + + it('lists connections', async () => { + nock(serverUrl) + .get(/\/fabric\/v4\/projects\/.*\/connections/) + .query({ + limit: 20, + skip: 0, + sort: JSON.stringify({ updatedAt: -1 }), + }) + .reply(200, response); + await create().parseAsync(['node', 'connections', 'list', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // Only check for expected strings - would be better to compare the table length + const expectedKeys = [ + 'Name', 'Title', 'Description', 'Connection Type', 'Created On', // Table fields + 'content', 'Cortex Managed Content', 'Built in storage for files managed by the', 'managedContent', '-', // MC connection + 'json-f2251', 'json', 'asdf', 's3', // JSON connection - minus created on + ]; + expectedKeys.forEach((k) => { + chai.expect(output).to.contain(k, `Expected string ${k} not found!`); + }); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('lists connections in JSON', async () => { + nock(serverUrl) + .get(/\/fabric\/v4\/projects\/.*\/connections/) + .query({ + limit: 20, + skip: 0, + sort: JSON.stringify({ updatedAt: -1 }), + }) + .reply(200, response); + await create().parseAsync(['node', 'connections', 'list', '--project', PROJECT, '--json']); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + const jsonOutput = JSON.parse(output); + chai.expect(jsonOutput).to.deep.equal(response.connections); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + }); + + describe('Describe Connection', () => { + const connName = 'json-f2251'; + const response = { + success: true, + name: connName, + title: 'json', + description: 'asdf', + tags: [], + connectionType: 's3', + contentType: 'json', + allowRead: true, + allowWrite: false, + params: [ + { + name: 'json/multiline', + value: 'true', + }, + { + name: 'secretKey', + value: '#SECURE.super-secret', + }, + { + name: 'json/style', + value: 'lines', + }, + { + name: 'uri', + value: 's3a://dev-bucket/datasets/file.json', + }, + { + name: 'publicKey', + value: '00000000000000000000', + }, + ], + createdAt: '2024-04-05T16:07:19.160Z', + _version: 1, + }; + + it('should describe a Connection', async () => { + nock(serverUrl) + .get(/\/fabric\/v4\/projects\/.*\/connections\/json-f2251/) + .reply(200, response); + await create().parseAsync(['node', 'connections', 'describe', connName, '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + const jsonOutput = JSON.parse(output); + chai.expect(jsonOutput).to.deep.equal(response); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + }); +}); diff --git a/test/uploadDirectory.js b/test/content.js similarity index 58% rename from test/uploadDirectory.js rename to test/content.js index bd5d9f9c..4f09cfc2 100644 --- a/test/uploadDirectory.js +++ b/test/content.js @@ -7,10 +7,13 @@ import nock from 'nock'; import _ from 'lodash'; import { create } from '../bin/cortex-content.js'; import { humanReadableFileSize } from '../src/commands/utils.js'; -import { compatibilityApi, compatiblityResponse, stripAnsi } from './utils.js'; +import { + compatibilityApi, compatiblityResponse, infoApi, infoResponse, stripAnsi, +} from './utils.js'; import Info from '../src/client/info.js'; import Content from '../src/client/content.js'; +const PROJECT = 'project'; const { expect } = chai; describe('Upload Directory', () => { let restoreEnv; @@ -84,6 +87,105 @@ describe('Upload Directory', () => { }); }); +describe('List Content', () => { + let restoreEnv; + let sandbox; + let printSpy; + let errorSpy; + let warnSpy; + const serverUrl = 'http://localhost:8000'; + beforeEach(() => { + if (!nock.isActive()) { + nock.activate(); + } + restoreEnv = mockedEnv({ + CORTEX_CONFIG_DIR: './test/cortex', + }); + sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit').throws(Error('EXIT')); + printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); + warnSpy = sandbox.spy(console, 'warn'); + nock(serverUrl).get(compatibilityApi()).reply(200, compatiblityResponse()); + nock(serverUrl).persist().get(infoApi()).reply(200, infoResponse()); + }); + + afterEach(() => { + // clean up mocks that may not have been called + restoreEnv(); + nock.cleanAll(); + sandbox.restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + + // eslint-disable-next-line no-unused-vars + function getWarningLines() { + return _.flatten(warnSpy.args).map((s) => stripAnsi(s)); + } + + const response = [ + { + Key: 'hello_world.bundle', + Size: 4176, + ContentType: 'application/octet-stream', + LastModified: '2024-04-04T21:22:31.000Z', + ETag: '0x8D1111111111110', + ContentLength: 4176, + }, + { + Key: 'someKey', + Size: 4057177, + ContentType: 'application/octet-stream', + LastModified: '2024-04-02T19:01:38.000Z', + ETag: '0x8DC111111111111', + ContentLength: 4057177, + }, + ]; + + it('should list content - EMPTY', async () => { + nock(serverUrl) + .get(/\/fabric\/v4\/projects\/.*\/content/) + .reply(200, []); + await create().parseAsync(['node', 'content', 'list', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // Only check for expected strings - would be better to compare the table length + chai.expect(output).to.contain('No content found'); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('should list content', async () => { + nock(serverUrl) + .get(/\/fabric\/v4\/projects\/.*\/content/) + .reply(200, response); + await create().parseAsync(['node', 'content', 'list', '--project', PROJECT]); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // Only check for expected strings - would be better to compare the table length + const extractKeys = ['Key', 'Size', 'ContentType', 'LastModified']; + const expectedKeys = [ + 'Key', 'Content Type', 'Last Modified', 'Size (bytes)', + ...Object.values(_.pick(response[0], extractKeys)), + ...Object.values(_.pick(response[1], extractKeys)), + ]; + expectedKeys.forEach((k) => { + chai.expect(output).to.contain(k, `Expected string ${k} not found!`); + }); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); +}); + describe('Human Readable File Size', () => { it('bytes', (done) => { const sizeInBytes = 260; diff --git a/test/pipelines.js b/test/pipelines.js index f3c9fbff..b4b5e31c 100644 --- a/test/pipelines.js +++ b/test/pipelines.js @@ -77,7 +77,6 @@ describe('Pipelines', () => { it('lists pipelines - empty', async () => { const response = { success: true, pipelines: [] }; nock(serverUrl).get(/\/fabric\/v4\/projects\/.*\/pipelines.*/).reply(200, response); - create(); await create().parseAsync(['node', 'pipelines', 'list', '--project', PROJECT]); const output = getPrintedLines(); diff --git a/test/users.js b/test/users.js new file mode 100644 index 00000000..8ef99eaa --- /dev/null +++ b/test/users.js @@ -0,0 +1,103 @@ +import chai from 'chai'; +import mockedEnv from 'mocked-env'; +import nock from 'nock'; +import _ from 'lodash'; +import sinon from 'sinon'; +import { create } from '../bin/cortex-users.js'; +import { + compatibilityApi, compatiblityResponse, infoApi, infoResponse, stripAnsi, +} from './utils.js'; + +describe('Users', () => { + let restoreEnv; + let sandbox; + let printSpy; + let errorSpy; + let warnSpy; + const serverUrl = 'http://localhost:8000'; + beforeEach(() => { + if (!nock.isActive()) { + nock.activate(); + } + restoreEnv = mockedEnv({ + CORTEX_CONFIG_DIR: './test/cortex', + }); + sandbox = sinon.createSandbox(); + sandbox.stub(process, 'exit').throws(Error('EXIT')); + printSpy = sandbox.spy(console, 'log'); + errorSpy = sandbox.spy(console, 'error'); + warnSpy = sandbox.spy(console, 'warn'); + nock(serverUrl).get(compatibilityApi()).reply(200, compatiblityResponse()); + nock(serverUrl).persist().get(infoApi()).reply(200, infoResponse()); + }); + + afterEach(() => { + // clean up mocks that may not have been called + restoreEnv(); + nock.cleanAll(); + sandbox.restore(); + }); + + function getPrintedLines() { + return _.flatten(printSpy.args).map((s) => stripAnsi(s)); + } + + function getErrorLines() { + return _.flatten(errorSpy.args).map((s) => stripAnsi(s)); + } + + // eslint-disable-next-line no-unused-vars + function getWarningLines() { + return _.flatten(warnSpy.args).map((s) => stripAnsi(s)); + } + + describe('List Users', () => { + const response = { + success: true, + users: ['test-service', 'abc1', 'asdf', 'abc3'], + }; + + it('lists users - empty', async () => { + const empty = { success: true, users: [] }; + nock(serverUrl).get(/\/fabric\/v4\/accounts\/service/).reply(200, empty); + await create().parseAsync(['node', 'users', 'list']); + const output = getPrintedLines(); + const errs = getErrorLines(); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs.join('')).to.be.empty; + chai.expect(output.join('')).to.contain('No service users found'); + nock.isDone(); + }); + + it('lists users', async () => { + nock(serverUrl) + .get(/\/fabric\/v4\/accounts\/service/) + .reply(200, response); + await create().parseAsync(['node', 'users', 'list']); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + // Only check for expected strings - would be better to compare the table length + const expectedKeys = ['User', ...response.users]; + expectedKeys.forEach((k) => { + chai.expect(output).to.contain(k, `Expected string ${k} not found!`); + }); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + + it('lists users in JSON', async () => { + nock(serverUrl) + .get(/\/fabric\/v4\/accounts\/service/) + .reply(200, response); + await create().parseAsync(['node', 'users', 'list', '--json']); + const output = getPrintedLines().join(''); + const errs = getErrorLines().join(''); + const jsonOutput = JSON.parse(output); + chai.expect(jsonOutput).to.deep.equal(response); + // eslint-disable-next-line no-unused-expressions + chai.expect(errs).to.be.empty; + nock.isDone(); + }); + }); +});